diff --git a/apps/common/Analytics.js b/apps/common/Analytics.js index f2985be6c..8c7bc4cd8 100644 --- a/apps/common/Analytics.js +++ b/apps/common/Analytics.js @@ -30,8 +30,8 @@ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ -if (Common === undefined) - var Common = {}; +if (window.Common === undefined) + window.Common = {}; Common.component = Common.component || {}; diff --git a/apps/common/Gateway.js b/apps/common/Gateway.js index 2f13594b6..14d7de3b8 100644 --- a/apps/common/Gateway.js +++ b/apps/common/Gateway.js @@ -31,8 +31,8 @@ * */ -if (Common === undefined) { - var Common = {}; +if (window.Common === undefined) { + window.Common = {}; } Common.Gateway = new(function() { diff --git a/apps/common/main/lib/util/LanguageInfo.js b/apps/common/main/lib/util/LanguageInfo.js index b672b15c6..7a6031c5b 100644 --- a/apps/common/main/lib/util/LanguageInfo.js +++ b/apps/common/main/lib/util/LanguageInfo.js @@ -38,10 +38,11 @@ * */ -if (Common === undefined) { - var Common = {}; +if ( window.Common === undefined ) { + window.Common = {}; } +// TODO: move to Common.Utils Common.util = Common.util||{}; Common.util.LanguageInfo = new(function() { diff --git a/apps/common/main/lib/util/utils.js b/apps/common/main/lib/util/utils.js index a494fd29d..695d4ce48 100644 --- a/apps/common/main/lib/util/utils.js +++ b/apps/common/main/lib/util/utils.js @@ -30,15 +30,26 @@ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ -if (Common === undefined) { - var Common = {}; +if (window.Common === undefined) { + window.Common = {}; } if (Common.Utils === undefined) { Common.Utils = {}; } -Common.Utils = _.extend(new(function() { +function _extend_object(dest, source) { + if ( typeof _ != "undefined" ) { + return _.extend({}, dest, source); + } else + if ( !!Object ) { + return Object.assign({}, dest, source); + } + + return source; +} + +var utils = new(function() { var userAgent = navigator.userAgent.toLowerCase(), check = function(regex){ return regex.test(userAgent); @@ -237,7 +248,9 @@ Common.Utils = _.extend(new(function() { croppedGeometry: function() {return {left:0, top: Common.Utils.InternalSettings.get('window-inactive-area-top'), width: me.innerWidth, height: me.innerHeight - Common.Utils.InternalSettings.get('window-inactive-area-top')}} } -})(), Common.Utils || {}); +})(); + +Common.Utils = _extend_object(Common.Utils, utils); Common.Utils.ThemeColor = new(function() { return { @@ -322,7 +335,7 @@ Common.Utils.ThemeColor = new(function() { } })(); -Common.Utils.Metric = _.extend( new(function() { +var metrics = new(function() { var me = this; me.c_MetricUnits = { @@ -393,7 +406,9 @@ Common.Utils.Metric = _.extend( new(function() { return value; } } -})(), Common.Utils.Metric || {}); +})(); + +Common.Utils.Metric = _extend_object(Common.Utils.Metric, metrics); Common.Utils.RGBColor = function(colorString) { var r, g, b; @@ -572,7 +587,8 @@ Common.Utils.String = new (function() { }, htmlEncode: function(string) { - return _.escape(string); + //return _.escape(string); + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string }, htmlDecode: function(string) { @@ -727,9 +743,9 @@ Common.Utils.applyCustomizationPlugins = function(plugins) { Common.Utils.fillUserInfo = function(info, lang, defname) { var _user = info || {}; !_user.id && (_user.id = ('uid-' + Date.now())); - _user.fullname = _.isEmpty(_user.name) ? defname : _user.name; + _user.fullname = !_user.name ? defname : _user.name; _user.group && (_user.fullname = (_user.group).toString() + AscCommon.UserInfoParser.getSeparator() + _user.fullname); - _user.guest = _.isEmpty(_user.name); + _user.guest = !_user.name; return _user; }; @@ -981,3 +997,35 @@ Common.Utils.ModalWindow = new(function() { } } })(); + +Common.Utils.UserInfoParser = new(function() { + var parse = false; + var separator = String.fromCharCode(160); + return { + setParser: function(value) { + parse = !!value; + }, + + getSeparator: function() { + return separator; + }, + + getParsedName: function(username) { + if (parse && username) { + return username.substring(username.indexOf(separator)+1); + } else + return username; + }, + + getParsedGroups: function(username) { + if (parse && username) { + var idx = username.indexOf(separator), + groups = (idx>-1) ? username.substring(0, idx).split(',') : []; + for (var i=0; i { + return ( +
+ {themeColors.map((row, rowIndex) => { + return( +
+ {row.map((effect, index) => { + return( + {onColorClick(effect.color, effect.effectId, effect.effectValue)}} + > + ) + })} +
+ ) + })} +
+ ) +}; + +const StandartColors = ({ options, standartColors, onColorClick, curColor }) => { + return ( +
+ {standartColors.map((color, index) => { + return( + index === 0 && options.transparent ? + {onColorClick('transparent')}} + > : + {onColorClick(color)}} + > + ) + })} +
+ ) +}; + +const CustomColors = ({ options, customColors, onColorClick, curColor }) => { + const colors = customColors.length > 0 ? customColors : []; + const emptyItems = []; + if (colors.length < options.customcolors) { + for (let i = colors.length; i < options.customcolors; i++) { + emptyItems.push( {onColorClick('empty')}} + >) + } + } + return ( +
+ {colors && colors.length > 0 && colors.map((color, index) => { + return( + {onColorClick(color)}} + > + ) + })} + {emptyItems.length > 0 && emptyItems} +
+ ) +}; + +const ThemeColorPalette = props => { + const {t} = useTranslation(); + const _t = t('Common.ThemeColorPalette', {returnObjects: true}); + const options = { + customcolors: props.customcolors || 10, + standardcolors: props.standardcolors || 10, + themecolors: props.themecolors || 10, + effects: props.effects || 5, + //allowReselect: props.allowReselect !== false, + transparent: props.transparent || false, + value: props.value || '000000', + cls: props.cls || '' + }; + const curColor = props.curColor; + const themeColors = []; + const effectColors = Common.Utils.ThemeColor.getEffectColors(); + let row = -1; + effectColors.forEach((effect, index) => { + if (0 == index % options.themecolors) { + themeColors.push([]); + row++; + } + themeColors[row].push(effect); + }); + const standartColors = Common.Utils.ThemeColor.getStandartColors(); + // custom color + let customColors = props.customColors; + if (customColors.length < 1) { + customColors = localStorage.getItem('mobile-custom-colors'); + customColors = customColors ? customColors.toLowerCase().split(',') : []; + } + + return ( +
+ + +
{ _t.textThemeColors }
+ +
+ +
{ _t.textStandartColors }
+ +
+ +
{ _t.textCustomColors }
+ +
+
+
+ ) +}; + +const CustomColorPicker = props => { + //Function to convert rgb color to hex format + const hexDigits = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"); + const hex = x => { + return isNaN(x) ? "00" : hexDigits[(x - x % 16) / 16] + hexDigits[x % 16]; + }; + const rgb2hex = rgb => { + rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); + return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); + }; + + let currentColor = props.currentColor; + if (props.autoColor) { + currentColor = rgb2hex(props.autoColor); + } + if (currentColor === 'transparent' || !currentColor) { + currentColor = 'ffffff'; + } + const countDynamicColors = props.countdynamiccolors || 10; + const [stateColor, setColor] = useState(`#${currentColor}`); + useEffect(() => { + if (document.getElementsByClassName('color-picker-wheel').length < 1) { + const colorPicker = f7.colorPicker.create({ + containerEl: document.getElementsByClassName('color-picker-container')[0], + value: { + hex: `#${currentColor}` + }, + on: { + change: function (value) { + setColor(value.getValue().hex); + } + } + }); + } + }); + const addNewColor = (color) => { + let colors = localStorage.getItem('mobile-custom-colors'); + colors = colors ? colors.split(',') : []; + const newColor = color.slice(1); + if (colors.push(newColor) > countDynamicColors) colors.shift(); // 10 - dynamiccolors + localStorage.setItem('mobile-custom-colors', colors.join().toLowerCase()); + props.onAddNewColor && props.onAddNewColor(colors, newColor); + }; + return( +
+
+
+
+
+
+
+ {addNewColor(stateColor)}}> + + +
+
+ ) +}; + +export { ThemeColorPalette, CustomColorPicker }; \ No newline at end of file diff --git a/apps/common/mobile/lib/controller/ContextMenu.jsx b/apps/common/mobile/lib/controller/ContextMenu.jsx new file mode 100644 index 000000000..9b05db8a8 --- /dev/null +++ b/apps/common/mobile/lib/controller/ContextMenu.jsx @@ -0,0 +1,245 @@ +import React, { Component, Fragment } from 'react'; +import { f7 } from 'framework7-react'; +import {observer, inject} from "mobx-react"; +import { Device } from '../../../../common/mobile/utils/device'; + +import ContextMenuView, { idContextMenuElement, ActionsWithExtraItems } from '../view/ContextMenu'; + +const idCntextMenuTargetElement = '#idx-context-menu-target'; + +class ContextMenuController extends Component { + constructor(props) { + super(props); + + this.state = { + opened: false, + items: [], + openedMore: false, + extraItems: [] + }; + + this.onMenuItemClick = this.onMenuItemClick.bind(this); + this.onMenuClosed = this.onMenuClosed.bind(this); + this.onActionClosed = this.onActionClosed.bind(this); + this.onDocumentReady = this.onDocumentReady.bind(this); + this.onApiOpenContextMenu = this.onApiOpenContextMenu.bind(this); + this.onApiHideContextMenu = this.onApiHideContextMenu.bind(this); + this.onApiShowForeignCursorLabel = this.onApiShowForeignCursorLabel.bind(this); + this.onApiHideForeignCursorLabel = this.onApiHideForeignCursorLabel.bind(this); + } + + onDocumentReady() { + this.$targetEl = $$(idCntextMenuTargetElement); + if ( !this.$targetEl.length ) { + // this.$targetEl = $$('
'); + this.$targetEl = $$(`
`); + this.$targetEl.css({left: '-10000px', top: '-10000px'}); + + $$('#editor_sdk').append(this.$targetEl); + } + + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onShowPopMenu', this.onApiOpenContextMenu); + api.asc_registerCallback('asc_onHidePopMenu', this.onApiHideContextMenu); + api.asc_registerCallback('asc_onShowForeignCursorLabel', this.onApiShowForeignCursorLabel); + api.asc_registerCallback('asc_onHideForeignCursorLabel', this.onApiHideForeignCursorLabel); + } + + offsetPopoverTop(popover) { + var app = popover.app, + $el = popover.$el, + $targetEl = popover.$targetEl; + + const width = $el.width(), + height = $el.height(); + + $el.removeClass('popover-on-left popover-on-right popover-on-top popover-on-bottom popover-on-middle').css({ + left: '', + top: '' + }); + + let targetOffsetLeft, targetOffsetTop; + // var safeAreaTop = parseInt($('html').css('--f7-safe-area-top'), 10); + let safeAreaLeft = parseInt($('html').css('--f7-safe-area-left'), 10), + safeAreaRight = parseInt($('html').css('--f7-safe-area-right'), 10); + // if (Number.isNaN(safeAreaTop)) safeAreaTop = 0; + if (Number.isNaN(safeAreaLeft)) safeAreaLeft = 0; + if (Number.isNaN(safeAreaRight)) safeAreaRight = 0; + + if ($targetEl && $targetEl.length > 0) { + let targetOffset = $targetEl.offset(); + targetOffsetLeft = targetOffset.left - app.left; + targetOffsetTop = targetOffset.top - app.top; + let targetParentPage = $targetEl.parents('.page'); + + if (targetParentPage.length > 0) { + targetOffsetTop -= targetParentPage[0].scrollTop; + } + } + + let position = 'top'; + + let top = targetOffsetTop - height - 10; + top = Math.max(8, Math.min(top, app.height - height - 8)); // Horizontal Position + + let hPosition; + + // if (targetOffsetLeft < app.width / 2) { + // hPosition = 'right'; + // left = position === 'middle' ? targetOffsetLeft + targetWidth : targetOffsetLeft; + // } else { + // hPosition = 'left'; + // left = position === 'middle' ? targetOffsetLeft - width : targetOffsetLeft + targetWidth - width; + // } + + hPosition = 'middle'; + let left = targetOffsetLeft - width / 2; + + left = Math.max(8, Math.min(left, app.width - width - 8 - safeAreaRight), safeAreaLeft); + $el.addClass(`popover-on-${position} popover-on-${hPosition}`); + + $el.css({top: `${top}px`, + left: `${left}px`}); + } + + onApiOpenContextMenu(x, y) { + if ( !this.state.opened && $$('.dialog.modal-in').length < 1) { + this.setState({ + items: this.initMenuItems(), + extraItems: this.initExtraItems() + }); + + if ( this.state.items.length > 0 ) { + this.$targetEl.css({left: `${x}px`, top: `${y}px`}); + const popover = f7.popover.open(idContextMenuElement, idCntextMenuTargetElement); + + if (Device.android) + this.offsetPopoverTop(popover); + + this.setState(state => { + return {opened: true} + }); + } + } + } + + onApiHideContextMenu() { + if ( this.state.opened ) { + $$(idContextMenuElement).hide(); + f7.popover.close(idContextMenuElement, false); + + this.$targetEl.css({left: '-10000px', top: '-10000px'}); + this.setState({opened: false}); + } + } + + onMenuClosed() { + this.$targetEl.css({left: '-10000px', top: '-10000px'}); + this.setState({opened: false}); + + // (async () => { + // await 1 && this.setState(state => { + // this.$targetEl.css({left: '-10000px', top: '-10000px'}); + // return ({opened: false}); + // }); + // })(); + } + + onActionClosed() { + this.setState({openedMore: false}); + } + + onMenuItemClick(action) { + this.onApiHideContextMenu(); + + if (action === 'showActionSheet') { + this.setState({openedMore: true}); + } + } + + onApiShowForeignCursorLabel(UserId, X, Y, color) { + /** coauthoring begin **/ + const tipHeight = 20; + + if (!this.fastCoAuthTips) { + this.fastCoAuthTips = []; + } + let src; + for (let i=0; i`); + src.attr('userid', UserId); + src.css({'background-color': '#'+Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b())}); + src.text(this.getUserName(UserId)); + $$('#id_main_parent').append(src); + this.fastCoAuthTips.push(src); + //src.fadeIn(150); + src[0].classList.add('active'); + + $$('#id_main_view').append(src); + } + src.css({ + top: (Y - tipHeight) + 'px', + left: X + 'px'}); + /** coauthoring end **/ + } + + onApiHideForeignCursorLabel(userId) { + /** coauthoring begin **/ + for (let i=0; i {src.remove()}); + src[0].classList.remove('active'); + src.remove(); + this.fastCoAuthTips.splice(i, 1); + break; + } + } + /** coauthoring end **/ + } + + componentWillUnmount() { + Common.Notifications.off('document:ready', this.onDocumentReady); + + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onShowPopMenu', this.onApiOpenContextMenu); + api.asc_unregisterCallback('asc_onHidePopMenu', this.onApiHideContextMenu); + api.asc_unregisterCallback('asc_onShowForeignCursorLabel', this.onApiShowForeignCursorLabel); + api.asc_unregisterCallback('asc_onHideForeignCursorLabel', this.onApiHideForeignCursorLabel); + } + + componentDidMount() { + if ( !Common.EditorApi ) { + Common.Notifications.on({ + 'document:ready': this.onDocumentReady + }); + } else { + this.onDocumentReady(); + } + } + + initMenuItems() { + return []; + } + + initExtraItems () { + return []; + } + + render() { + return ( + + + + + ) + } +} + +export default ContextMenuController; \ No newline at end of file diff --git a/apps/common/mobile/lib/controller/Plugins.jsx b/apps/common/mobile/lib/controller/Plugins.jsx new file mode 100644 index 000000000..d01ac617f --- /dev/null +++ b/apps/common/mobile/lib/controller/Plugins.jsx @@ -0,0 +1,283 @@ +import React, { useEffect, useState } from 'react'; +import { inject, observer } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { Device } from '../../utils/device'; + +const PluginsController = inject('storeAppOptions')(observer(props => { + const { storeAppOptions } = props; + let configPlugins = {autostart:[]}, + serverPlugins = {autostart:[]}, + modal, + iframe; + + useEffect(() => { + const onDocumentReady = () => { + Common.Notifications.on('engineCreated', api => { + api.asc_registerCallback("asc_onPluginShow", showPluginModal); + api.asc_registerCallback("asc_onPluginClose", pluginClose); + api.asc_registerCallback("asc_onPluginResize", pluginResize); + api.asc_registerCallback('asc_onPluginsInit', registerPlugins); + + if(!storeAppOptions.customization || storeAppOptions.plugins !== false) { + loadPlugins(); + } + }); + + Common.Gateway.on('init', loadConfig); + }; + + onDocumentReady(); + + return () => { + const api = Common.EditorApi.get(); + + api.asc_unregisterCallback("asc_onPluginShow", showPluginModal); + api.asc_unregisterCallback("asc_onPluginClose", pluginClose); + api.asc_unregisterCallback("asc_onPluginResize", pluginResize); + api.asc_unregisterCallback('asc_onPluginsInit', registerPlugins); + + Common.Gateway.off('init', loadConfig); + }; + }); + + const onDlgBtnClick = e => { + const api = Common.EditorApi.get(); + let index = $$(e.currentTarget).index(); + api.asc_pluginButtonClick(index); + }; + + + const showPluginModal = (plugin, variationIndex, frameId, urlAddition) => { + let isAndroid = Device.android; + let variation = plugin.get_Variations()[variationIndex]; + + if (variation.get_Visual()) { + let url = variation.get_Url(); + url = ((plugin.get_BaseUrl().length == 0) ? url : plugin.get_BaseUrl()) + url; + + if (urlAddition) + url += urlAddition; + + let isCustomWindow = variation.get_CustomWindow(), + arrBtns = variation.get_Buttons(), + newBtns = [], + size = variation.get_Size(); + + if (arrBtns.length) { + arrBtns.forEach((b, index) => { + if ((storeAppOptions.isEdit || b.isViewer !== false)) { + newBtns[index] = { + text: b.text, + attributes: {result: index} + }; + } + }); + } + + f7.popover.close('.document-menu.modal-in', false); + + modal = f7.dialog.create({ + title: '', + text: '', + content: '
'+'
', + buttons : isCustomWindow ? undefined : newBtns + }).open(); + + iframe = document.createElement("iframe"); + + iframe.id = frameId; + iframe.name = 'pluginFrameEditor'; + iframe.width = '100%'; + iframe.height = '100%'; + iframe.align = "top"; + iframe.frameBorder = 0; + iframe.scrolling = "no"; + iframe.src = url; + + $$('#plugin-frame').append(iframe); + + modal.$el.find('.dialog-button').on('click', onDlgBtnClick); + + modal.$el.css({ + margin: '0', + width: '90%', + left: '5%', + height: 'auto' + }); + + modal.$el.find('.dialog-inner').css({padding: '0'}); + + if (Device.phone) { + let height = Math.min(size[1], 240); + modal.$el.find('#plugin-frame').css({height: height + 'px'}); + } else { + let height = Math.min(size[1], 500); + modal.$el.find('#plugin-frame').css({height: height + 'px'}); + } + + if (isAndroid) { + $$('.view.collaboration-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); + $$('.view.collaboration-root-view .navbar').prependTo('.view.collaboration-root-view > .pages > .page'); + } + } + }; + + const pluginClose = plugin => { + if (iframe) { + iframe = null; + } + }; + + const pluginResize = size => { + if (Device.phone) { + let height = Math.min(size[1], 240); + modal.$el.find('#plugin-frame').css({height: height + 'px'}); + } else { + let height = Math.min(size[1], 500); + modal.$el.find('#plugin-frame').css({height: height + 'px'}); + } + }; + + const getPlugins = (pluginsData, fetchFunction) => { + if (!pluginsData || pluginsData.length < 1) + return Promise.resolve([]); + + fetchFunction = fetchFunction || function (url) { + return fetch(url) + .then(function(response) { + if (response.ok) return response.json(); + else return Promise.reject(url); + }).then(function(json) { + json.baseUrl = url.substring(0, url.lastIndexOf("config.json")); + return json; + }); + }; + + let loaded = []; + + return pluginsData.map(fetchFunction).reduce(function (previousPromise, currentPromise) { + return previousPromise + .then(function() + { + return currentPromise; + }) + .then(function(item) + { + loaded.push(item); + return Promise.resolve(item); + }) + .catch(function(item) + { + return Promise.resolve(item); + }); + + }, Promise.resolve()) + .then(function () + { + return Promise.resolve(loaded); + }); + }; + + const loadConfig = data => { + configPlugins.config = data.config.plugins; + }; + + const registerPlugins = plugins => { + let arr = []; + + plugins.forEach(item => { + let plugin = new Asc.CPlugin(); + + plugin.set_Name(item['name']); + plugin.set_Guid(item['guid']); + plugin.set_BaseUrl(item['baseUrl']); + + let variations = item['variations'], + variationsArr = []; + + variations.forEach(itemVar => { + let variation = new Asc.CPluginVariation(); + + variation.set_Description(itemVar['description']); + variation.set_Url(itemVar['url']); + variation.set_Icons(itemVar['icons']); + variation.set_Visual(itemVar['isVisual']); + variation.set_CustomWindow(itemVar['isCustomWindow']); + variation.set_System(itemVar['isSystem']); + variation.set_Viewer(itemVar['isViewer']); + variation.set_EditorsSupport(itemVar['EditorsSupport']); + variation.set_Modal(itemVar['isModal']); + variation.set_InsideMode(itemVar['isInsideMode']); + variation.set_InitDataType(itemVar['initDataType']); + variation.set_InitData(itemVar['initData']); + variation.set_UpdateOleOnResize(itemVar['isUpdateOleOnResize']); + variation.set_Buttons(itemVar['buttons']); + variation.set_Size(itemVar['size']); + variation.set_InitOnSelectionChanged(itemVar['initOnSelectionChanged']); + variation.set_Events(itemVar['events']); + + variationsArr.push(variation); + }); + + plugin["set_Variations"](variationsArr); + arr.push(plugin); + }); + + const api = Common.EditorApi.get(); + api.asc_pluginsRegister('', arr); + }; + + const mergePlugins = () => { + if (serverPlugins.plugins !== undefined && configPlugins.plugins !== undefined) { + let arr = [], + plugins = configPlugins; + + if (plugins.plugins && plugins.plugins.length > 0) { + arr = plugins.plugins; + } + + plugins = serverPlugins; + + if (plugins.plugins && plugins.plugins.length > 0) { + arr = arr.concat(plugins.plugins); + } + + registerPlugins(arr); + } + }; + + const loadPlugins = () => { + if (configPlugins.config) { + getPlugins(configPlugins.config.pluginsData) + .then(function(loaded) + { + configPlugins.plugins = loaded; + mergePlugins(); + }); + } else { + configPlugins.plugins = false; + } + + let server_plugins_url = '../../../../plugins.json'; + + Common.Utils.loadConfig(server_plugins_url, function (obj) { + if (obj != 'error') { + serverPlugins.config = obj; + getPlugins(serverPlugins.config.pluginsData) + .then(function(loaded) + { + serverPlugins.plugins = loaded; + mergePlugins(); + }); + } else + serverPlugins.plugins = false; + }); + }; + + return <> +})); + +export default PluginsController; + + + diff --git a/apps/common/mobile/lib/controller/Search.jsx b/apps/common/mobile/lib/controller/Search.jsx new file mode 100644 index 000000000..8727aa450 --- /dev/null +++ b/apps/common/mobile/lib/controller/Search.jsx @@ -0,0 +1,12 @@ +import React from 'react'; +import {SearchView, SearchSettingsView} from '../view/Search'; + +const SearchController = props => { + const onSearchQuery = params => { + console.log('on search: ' + params); + }; + + return +}; + +export {SearchController, SearchView, SearchSettingsView}; diff --git a/apps/common/mobile/lib/controller/collaboration/Collaboration.jsx b/apps/common/mobile/lib/controller/collaboration/Collaboration.jsx new file mode 100644 index 000000000..8104543e3 --- /dev/null +++ b/apps/common/mobile/lib/controller/collaboration/Collaboration.jsx @@ -0,0 +1,92 @@ +import React, { Component } from 'react' +import { f7 } from 'framework7-react'; +import {observer, inject} from "mobx-react" +import { LocalStorage } from '../../../utils/LocalStorage'; +import { withTranslation } from 'react-i18next'; + +class CollaborationController extends Component { + constructor(props){ + super(props); + + Common.Notifications.on('engineCreated', (api) => { + api.asc_registerCallback('asc_onAuthParticipantsChanged', this.onChangeEditUsers.bind(this)); + api.asc_registerCallback('asc_onParticipantsChanged', this.onChangeEditUsers.bind(this)); + api.asc_registerCallback('asc_onConnectionStateChanged', this.onUserConnection.bind(this)); + api.asc_registerCallback('asc_onCoAuthoringDisconnect', this.onCoAuthoringDisconnect.bind(this)); + + api.asc_registerCallback('asc_OnTryUndoInFastCollaborative', this.onTryUndoInFastCollaborative.bind(this)); + }); + + Common.Notifications.on('document:ready', this.onDocumentReady.bind(this)); + } + + onDocumentReady() { + const api = Common.EditorApi.get(); + const appOptions = this.props.storeAppOptions; + /** coauthoring begin **/ + let isFastCoauth; + if (appOptions.isEdit && appOptions.canLicense && !appOptions.isOffline && appOptions.canCoAuthoring) { + // Force ON fast co-authoring mode + isFastCoauth = true; + api.asc_SetFastCollaborative(isFastCoauth); + + if (window.editorType === 'de') { + const value = LocalStorage.getItem((isFastCoauth) ? "de-settings-showchanges-fast" : "de-settings-showchanges-strict"); + if (value !== null) { + api.SetCollaborativeMarksShowType( + value === 'all' ? Asc.c_oAscCollaborativeMarksShowType.All : + value === 'none' ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges); + } else { + api.SetCollaborativeMarksShowType(isFastCoauth ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges); + } + } + } else if (!appOptions.isEdit && appOptions.isRestrictedEdit) { + isFastCoauth = true; + api.asc_SetFastCollaborative(isFastCoauth); + window.editorType === 'de' && api.SetCollaborativeMarksShowType(Asc.c_oAscCollaborativeMarksShowType.None); + api.asc_setAutoSaveGap(1); + } else { + isFastCoauth = false; + api.asc_SetFastCollaborative(isFastCoauth); + window.editorType === 'de' && api.SetCollaborativeMarksShowType(Asc.c_oAscCollaborativeMarksShowType.None); + } + + if (appOptions.isEdit) { + let value; + if (window.editorType === 'sse') { + value = appOptions.canAutosave ? 1 : 0; // FORCE AUTOSAVE + } else { + value = isFastCoauth; // Common.localStorage.getItem("de-settings-autosave"); + value = (!isFastCoauth && value !== null) ? parseInt(value) : (appOptions.canCoAuthoring ? 1 : 0); + } + api.asc_setAutoSaveGap(value); + } + /** coauthoring end **/ + } + + onChangeEditUsers(users) { + const storeUsers = this.props.users; + storeUsers.reset(users); + storeUsers.setCurrentUser(this.props.storeAppOptions.user.id); + } + + onUserConnection(change) { + this.props.users.connection(change); + } + + onCoAuthoringDisconnect() { + this.props.users.resetDisconnected(true); + } + + onTryUndoInFastCollaborative() { + const { t } = this.props; + const _t = t("Common.Collaboration", { returnObjects: true }); + f7.dialog.alert(_t.textTryUndoRedo, _t.notcriticalErrorTitle); + } + + render() { + return null + } +} + +export default inject('users', 'storeAppOptions')(observer(withTranslation()(CollaborationController))); \ No newline at end of file diff --git a/apps/common/mobile/lib/controller/collaboration/Comments.jsx b/apps/common/mobile/lib/controller/collaboration/Comments.jsx new file mode 100644 index 000000000..125112339 --- /dev/null +++ b/apps/common/mobile/lib/controller/collaboration/Comments.jsx @@ -0,0 +1,585 @@ +import React, {Component, Fragment} from 'react'; +import { inject, observer } from "mobx-react"; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; +import { LocalStorage } from '../../../utils/LocalStorage'; + +import {AddComment, EditComment, AddReply, EditReply, ViewComments, ViewCurrentComments} from '../../view/collaboration/Comments'; + +// utils +const timeZoneOffsetInMs = (new Date()).getTimezoneOffset() * 60000; +const utcDateToString = (date) => { + if (Object.prototype.toString.call(date) === '[object Date]') + return (date.getTime() - timeZoneOffsetInMs).toString(); + return ''; +}; +const ooDateToString = (date) => { + if (Object.prototype.toString.call(date) === '[object Date]') + return (date.getTime()).toString(); + return ''; +}; +const stringOOToLocalDate = (date) => { + if (typeof date === 'string') + return parseInt(date); + return 0; +}; +const stringUtcToLocalDate = (date) => { + if (typeof date === 'string') + return parseInt(date) + timeZoneOffsetInMs; + return 0; +}; +const dateToLocaleTimeString = (date) => { + const format = (date) => { + let hours = date.getHours(); + let minutes = date.getMinutes(); + let ampm = hours >= 12 ? 'pm' : 'am'; + + hours = hours % 12; + hours = hours ? hours : 12; // the hour '0' should be '12' + minutes = minutes < 10 ? '0' + minutes : minutes; + return hours + ':' + minutes + ' ' + ampm; + }; + // MM/dd/yyyy hh:mm AM + return (date.getMonth() + 1) + '/' + (date.getDate()) + '/' + date.getFullYear() + ' ' + format(date); +}; +//end utils + +class CommentsController extends Component { + constructor(props) { + super(props); + this.usersStore = this.props.users; + this.appOptions = this.props.storeAppOptions; + this.storeComments = this.props.storeComments; + + Common.Notifications.on('engineCreated', api => { + api.asc_registerCallback('asc_onAddComment', this.addComment.bind(this)); + api.asc_registerCallback('asc_onAddComments', this.addComments.bind(this)); + api.asc_registerCallback('asc_onRemoveComment', this.removeComment.bind(this)); + api.asc_registerCallback('asc_onRemoveComments', this.removeComments.bind(this)); + api.asc_registerCallback('asc_onChangeCommentData', this.changeCommentData.bind(this)); + api.asc_registerCallback('asc_onShowComment', this.changeShowComments.bind(this)); + api.asc_registerCallback('asc_onHideComment', this.hideComments.bind(this)); + + if (window.editorType === 'sse') { + api.asc_registerCallback('asc_onActiveSheetChanged', this.onApiActiveSheetChanged.bind(this)); + Common.Notifications.on('comments:filterchange', this.onFilterChange.bind(this)); + Common.Notifications.on('sheet:active', this.onApiActiveSheetChanged.bind(this)); + } + }); + + Common.Notifications.on('document:ready', () => { + if (window.editorType === 'de' || window.editorType === 'sse') { + const api = Common.EditorApi.get(); + /** coauthoring begin **/ + const isLiveCommenting = LocalStorage.getBool(`${window.editorType}-mobile-settings-livecomment`, true); + const resolved = LocalStorage.getBool(`${window.editorType}-settings-resolvedcomment`, true); + isLiveCommenting ? api.asc_showComments(resolved) : api.asc_hideComments(); + /** coauthoring end **/ + } + + this.curUserId = this.props.users.currentUser.asc_getIdOriginal(); + }); + } + onApiActiveSheetChanged (index) { + this.onFilterChange(['doc', 'sheet' + Common.EditorApi.get().asc_getWorksheetId(index)]); + } + addComment (id, data) { + const comment = this.readSDKComment(id, data); + if (comment) { + this.storeComments.addComment(comment); + } + } + addComments (data) { + for (let i = 0; i < data.length; ++i) { + const comment = this.readSDKComment(data[i].asc_getId(), data[i]); + this.storeComments.addComment(comment); + } + } + removeComment (id) { + this.storeComments.removeComment(id); + } + removeComments (data) { + for (let i = 0; i < data.length; i++) { + this.removeComment(data[i]); + } + } + changeShowComments (id) { + this.storeComments.changeShowComment(id); + } + hideComments () { + //Common.Notifications.trigger('closeviewcomment'); + } + changeCommentData (id, data) { + const changeComment = {}; + + const date = (data.asc_getOnlyOfficeTime()) ? new Date(stringOOToLocalDate(data.asc_getOnlyOfficeTime())) : + ((data.asc_getTime() === '') ? new Date() : new Date(stringUtcToLocalDate(data.asc_getTime()))); + + let user = this.usersStore.searchUserById(data.asc_getUserId()); + + changeComment.comment = data.asc_getText(); + changeComment.userId = data.asc_getUserId(); + changeComment.userName = data.asc_getUserName(); + changeComment.userColor = (user) ? user.asc_getColor() : null; + changeComment.resolved = data.asc_getSolved(); + changeComment.quote = data.asc_getQuoteText(); + changeComment.time = date.getTime(); + changeComment.date = dateToLocaleTimeString(date); + changeComment.editable = this.appOptions.canEditComments || (data.asc_getUserId() === this.curUserId); + changeComment.removable = this.appOptions.canDeleteComments || (data.asc_getUserId() === this.curUserId); + + let dateReply = null; + const replies = []; + + const repliesCount = data.asc_getRepliesCount(); + for (let i = 0; i < repliesCount; ++i) { + + dateReply = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) : + ((data.asc_getReply(i).asc_getTime() === '') ? new Date() : new Date(stringUtcToLocalDate(data.asc_getReply(i).asc_getTime()))); + + user = this.usersStore.searchUserById(data.asc_getReply(i).asc_getUserId()); + const userName = data.asc_getReply(i).asc_getUserName(); + replies.push({ + ind: i, + userId: data.asc_getReply(i).asc_getUserId(), + userName: userName, + userColor: (user) ? user.asc_getColor() : null, + date: dateToLocaleTimeString(dateReply), + reply: data.asc_getReply(i).asc_getText(), + time: dateReply.getTime(), + userInitials: this.usersStore.getInitials(userName), + editable: this.appOptions.canEditComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId), + removable: this.appOptions.canDeleteComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId) + }); + } + changeComment.replies = replies; + + this.props.storeComments.changeComment(id, changeComment); + } + onFilterChange (filter) { + this.storeComments.changeFilter(filter); + } + readSDKComment (id, data) { + const date = (data.asc_getOnlyOfficeTime()) ? new Date(stringOOToLocalDate(data.asc_getOnlyOfficeTime())) : + ((data.asc_getTime() === '') ? new Date() : new Date(stringUtcToLocalDate(data.asc_getTime()))); + const user = this.usersStore.searchUserById(data.asc_getUserId()); + const groupName = id.substr(0, id.lastIndexOf('_')+1).match(/^(doc|sheet[0-9_]+)_/); + const userName = data.asc_getUserName(); + const comment = { + uid : id, + userId : data.asc_getUserId(), + userName : userName, + userColor : (user) ? user.asc_getColor() : null, + date : dateToLocaleTimeString(date), + quote : data.asc_getQuoteText(), + comment : data.asc_getText(), + resolved : data.asc_getSolved(), + unattached : !!data.asc_getDocumentFlag ? data.asc_getDocumentFlag() : false, + time : date.getTime(), + replies : [], + groupName : (groupName && groupName.length>1) ? groupName[1] : null, + userInitials : this.usersStore.getInitials(userName), + editable : this.appOptions.canEditComments || (data.asc_getUserId() === this.curUserId), + removable : this.appOptions.canDeleteComments || (data.asc_getUserId() === this.curUserId) + }; + if (comment) { + const replies = this.readSDKReplies(data); + if (replies.length > 0) { + comment.replies = replies; + } + } + return comment; + } + readSDKReplies (data) { + const replies = []; + const repliesCount = data.asc_getRepliesCount(); + let i = 0; + let date = null; + if (repliesCount) { + for (i = 0; i < repliesCount; ++i) { + date = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) : + ((data.asc_getReply(i).asc_getTime() === '') ? new Date() : new Date(stringUtcToLocalDate(data.asc_getReply(i).asc_getTime()))); + const user = this.usersStore.searchUserById(data.asc_getReply(i).asc_getUserId()); + const userName = data.asc_getReply(i).asc_getUserName(); + replies.push({ + ind : i, + userId : data.asc_getReply(i).asc_getUserId(), + userName : userName, + userColor : (user) ? user.asc_getColor() : null, + date : dateToLocaleTimeString(date), + reply : data.asc_getReply(i).asc_getText(), + time : date.getTime(), + userInitials : this.usersStore.getInitials(userName), + editable : this.appOptions.canEditComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId), + removable : this.appOptions.canDeleteComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId) + }); + } + } + return replies; + } + render() { + return null; + } +} + +class AddCommentController extends Component { + constructor(props) { + super(props); + this.closeAddComment = this.closeAddComment.bind(this); + this.getUserInfo = this.getUserInfo.bind(this); + this.onAddNewComment = this.onAddNewComment.bind(this); + + this.state = { + isOpen: false + }; + + Common.Notifications.on('addcomment', () => { + this.setState({isOpen: true}); + }); + } + closeAddComment () { + this.setState({isOpen: false}); + } + getUserInfo () { + this.currentUser = this.props.users.currentUser; + if (!this.currentUser) { + this.currentUser = this.props.users.setCurrentUser(this.props.storeAppOptions.user.id); + } + const name = this.currentUser.asc_getUserName(); + return { + name: name, + initials: this.props.users.getInitials(name), + color: this.currentUser.asc_getColor() + }; + } + onAddNewComment (commentText, documentFlag) { + const api = Common.EditorApi.get(); + let comment; + if (typeof Asc.asc_CCommentDataWord !== 'undefined') { + comment = new Asc.asc_CCommentDataWord(null); + } else { + comment = new Asc.asc_CCommentData(null); + } + if (commentText.length > 0) { + comment.asc_putText(commentText); + comment.asc_putTime(utcDateToString(new Date())); + comment.asc_putOnlyOfficeTime(ooDateToString(new Date())); + comment.asc_putUserId(this.currentUser.asc_getIdOriginal()); + comment.asc_putUserName(this.currentUser.asc_getUserName()); + comment.asc_putSolved(false); + + !!comment.asc_putDocumentFlag && comment.asc_putDocumentFlag(documentFlag); + + api.asc_addComment(comment); + } + } + render() { + return( + this.state.isOpen ? : null + ) + } +} + +class EditCommentController extends Component { + constructor (props) { + super(props); + this.onEditComment = this.onEditComment.bind(this); + this.onAddReply = this.onAddReply.bind(this); + this.onEditReply = this.onEditReply.bind(this); + } + getUserInfo () { + this.currentUser = this.props.users.currentUser; + const name = this.currentUser.asc_getUserName(); + return { + name: name, + initials: this.props.users.getInitials(name), + color: this.currentUser.asc_getColor() + }; + } + onChangeComment (comment) { + const ascComment = typeof Asc.asc_CCommentDataWord !== 'undefined' ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null); + if (ascComment && comment) { + ascComment.asc_putText(comment.comment); + ascComment.asc_putQuoteText(comment.quote); + ascComment.asc_putTime(utcDateToString(new Date(comment.time))); + ascComment.asc_putOnlyOfficeTime(ooDateToString(new Date(comment.time))); + ascComment.asc_putUserId(comment.userId); + ascComment.asc_putUserName(comment.userName); + ascComment.asc_putSolved(comment.resolved); + ascComment.asc_putGuid(comment.guid); + + if (!!ascComment.asc_putDocumentFlag) { + ascComment.asc_putDocumentFlag(comment.unattached); + } + + const reply = comment.replies; + if (reply && reply.length > 0) { + reply.forEach((reply) => { + const addReply = (typeof Asc.asc_CCommentDataWord !== 'undefined' ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + if (addReply) { + addReply.asc_putText(reply.reply); + addReply.asc_putTime(utcDateToString(new Date(reply.time))); + addReply.asc_putOnlyOfficeTime(ooDateToString(new Date(reply.time))); + addReply.asc_putUserId(reply.userId); + addReply.asc_putUserName(reply.userName); + + ascComment.asc_addReply(addReply); + } + }); + } + const api = Common.EditorApi.get(); + api.asc_changeComment(comment.uid, ascComment); + } + } + onEditComment (comment, text) { + const changeComment = {...comment}; + changeComment.comment = text.trim(); + const user = this.props.users.currentUser; + changeComment.userid = user.asc_getIdOriginal(); + changeComment.username = user.asc_getUserName(); + this.onChangeComment(changeComment); + } + onAddReply (comment, replyVal) { + let reply = null; + let addReply = null; + const ascComment = (typeof Asc.asc_CCommentDataWord !== 'undefined' ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + + if (ascComment) { + ascComment.asc_putText(comment.comment); + ascComment.asc_putQuoteText(comment.quote); + ascComment.asc_putTime(utcDateToString(new Date(comment.time))); + ascComment.asc_putOnlyOfficeTime(ooDateToString(new Date(comment.time))); + ascComment.asc_putUserId(comment.userId); + ascComment.asc_putUserName(comment.userName); + ascComment.asc_putSolved(comment.resolved); + ascComment.asc_putGuid(comment.guid); + + if (!!ascComment.asc_putDocumentFlag) { + ascComment.asc_putDocumentFlag(comment.unattached); + } + + reply = comment.replies; + if (reply && reply.length) { + reply.forEach(function (reply) { + + addReply = (typeof Asc.asc_CCommentDataWord !== 'undefined' ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + if (addReply) { + addReply.asc_putText(reply.reply); + addReply.asc_putTime(utcDateToString(new Date(reply.time))); + addReply.asc_putOnlyOfficeTime(ooDateToString(new Date(reply.time))); + addReply.asc_putUserId(reply.userId); + addReply.asc_putUserName(reply.userName); + + ascComment.asc_addReply(addReply); + } + }); + } + + addReply = (typeof Asc.asc_CCommentDataWord !== 'undefined' ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + if (addReply) { + addReply.asc_putText(replyVal); + addReply.asc_putTime(utcDateToString(new Date())); + addReply.asc_putOnlyOfficeTime(ooDateToString(new Date())); + const currentUser = this.props.users.currentUser; + addReply.asc_putUserId(currentUser.asc_getIdOriginal()); + addReply.asc_putUserName(currentUser.asc_getUserName()); + + ascComment.asc_addReply(addReply); + + const api = Common.EditorApi.get(); + api.asc_changeComment(comment.uid, ascComment); + } + } + } + onEditReply (comment, reply, textReply) { + const currentUser = this.props.users.currentUser; + const indReply = reply.ind; + const changeComment = {...comment}; + changeComment.replies = [...comment.replies]; + changeComment.replies[indReply] = {...reply}; + changeComment.replies[indReply].reply = textReply; + changeComment.replies[indReply].userid = currentUser.asc_getIdOriginal(); + changeComment.replies[indReply].username = currentUser.asc_getUserName(); + this.onChangeComment(changeComment); + } + render() { + const storeComments = this.props.storeComments; + const comment = storeComments.currentComment; + return ( + + {storeComments.isOpenEditComment && } + {storeComments.isOpenAddReply && } + {storeComments.isOpenEditReply && } + + ) + } +} + +class ViewCommentsController extends Component { + constructor (props) { + super(props); + this.onCommentMenuClick = this.onCommentMenuClick.bind(this); + this.onResolveComment = this.onResolveComment.bind(this); + this.closeViewCurComments = this.closeViewCurComments.bind(this); + + this.state = { + isOpenViewCurComments: false + }; + + Common.Notifications.on('viewcomment', () => { + this.setState({isOpenViewCurComments: true}); + }); + Common.Notifications.on('closeviewcomment', () => { + this.closeViewCurComments(); + }); + } + closeViewCurComments () { + f7.sheet.close('#view-comment-sheet'); + this.setState({isOpenViewCurComments: false}); + } + onResolveComment (comment) { + let reply = null, + addReply = null, + ascComment = (typeof Asc.asc_CCommentDataWord !== 'undefined' ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + + if (ascComment && comment) { + ascComment.asc_putText(comment.comment); + ascComment.asc_putQuoteText(comment.quote); + ascComment.asc_putTime(utcDateToString(new Date(comment.time))); + ascComment.asc_putOnlyOfficeTime(ooDateToString(new Date(comment.time))); + ascComment.asc_putUserId(comment.userId); + ascComment.asc_putUserName(comment.userName); + ascComment.asc_putSolved(!comment.resolved); + ascComment.asc_putGuid(comment.guid); + + if (!!ascComment.asc_putDocumentFlag) { + ascComment.asc_putDocumentFlag(comment.unattached); + } + + reply = comment.replies; + if (reply && reply.length > 0) { + reply.forEach((reply) => { + addReply = (typeof Asc.asc_CCommentDataWord !== 'undefined' ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + if (addReply) { + addReply.asc_putText(reply.reply); + addReply.asc_putTime(utcDateToString(new Date(reply.time))); + addReply.asc_putOnlyOfficeTime(ooDateToString(new Date(reply.time))); + addReply.asc_putUserId(reply.userId); + addReply.asc_putUserName(reply.userName); + + ascComment.asc_addReply(addReply); + } + }); + } + const api = Common.EditorApi.get(); + api.asc_changeComment(comment.uid, ascComment); + } + } + deleteComment (comment) { + const api = Common.EditorApi.get(); + comment && api.asc_removeComment(comment.uid); + } + deleteReply (comment, reply) { + let replies = null, + addReply = null, + ascComment = (!!Asc.asc_CCommentDataWord ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + + const indReply = reply.ind; + + if (ascComment && comment) { + ascComment.asc_putText(comment.comment); + ascComment.asc_putQuoteText(comment.quote); + ascComment.asc_putTime(utcDateToString(new Date(comment.time))); + ascComment.asc_putOnlyOfficeTime(ooDateToString(new Date(comment.time))); + ascComment.asc_putUserId(comment.userId); + ascComment.asc_putUserName(comment.userName); + ascComment.asc_putSolved(comment.resolved); + ascComment.asc_putGuid(comment.guid); + + if (!!ascComment.asc_putDocumentFlag) { + ascComment.asc_putDocumentFlag(comment.unattached); + } + + replies = comment.replies; + if (replies && replies.length) { + replies.forEach((reply) => { + if (reply.ind !== indReply) { + addReply = (!!Asc.asc_CCommentDataWord ? new Asc.asc_CCommentDataWord(null) : new Asc.asc_CCommentData(null)); + if (addReply) { + addReply.asc_putText(reply.reply); + addReply.asc_putTime(utcDateToString(new Date(reply.time))); + addReply.asc_putOnlyOfficeTime(ooDateToString(new Date(reply.time))); + addReply.asc_putUserId(reply.userId); + addReply.asc_putUserName(reply.userName); + + ascComment.asc_addReply(addReply); + } + } + }); + } + const api = Common.EditorApi.get(); + api.asc_changeComment(comment.uid, ascComment); + } + } + onCommentMenuClick (action, comment, reply) { + const { t } = this.props; + const _t = t("Common.Collaboration", { returnObjects: true }); + switch (action) { + case 'editComment': + this.props.storeComments.openEditComment(true, comment); + break; + case 'resolve': + this.onResolveComment(comment); + break; + case 'deleteComment': + f7.dialog.confirm( + _t.textMessageDeleteComment, + _t.textDeleteComment, + () => { + this.deleteComment(comment); + } + ); + break; + case 'editReply': + this.props.storeComments.openEditReply(true, comment, reply); + break; + case 'deleteReply': + f7.dialog.confirm( + _t.textMessageDeleteReply, + _t.textDeleteReply, + () => { + this.deleteReply(comment, reply); + } + ); + break; + case 'addReply': + this.props.storeComments.openAddReply(true, comment); + break; + } + } + render() { + return( + + {this.props.allComments && } + {this.state.isOpenViewCurComments && } + + ) + } +} + +const _CommentsController = inject('storeAppOptions', 'storeComments', 'users')(observer(CommentsController)); +const _AddCommentController = inject('storeAppOptions', 'storeComments', 'users')(observer(AddCommentController)); +const _EditCommentController = inject('storeComments', 'users')(observer(EditCommentController)); +const _ViewCommentsController = inject('storeComments', 'users')(observer(withTranslation()(ViewCommentsController))); + +export { + _CommentsController as CommentsController, + _AddCommentController as AddCommentController, + _EditCommentController as EditCommentController, + _ViewCommentsController as ViewCommentsController +}; \ No newline at end of file diff --git a/apps/common/mobile/lib/controller/collaboration/Review.jsx b/apps/common/mobile/lib/controller/collaboration/Review.jsx new file mode 100644 index 000000000..6f212ef94 --- /dev/null +++ b/apps/common/mobile/lib/controller/collaboration/Review.jsx @@ -0,0 +1,535 @@ +import React, { Component } from 'react' +import Notifications from '../../../utils/notifications.js' +import {observer, inject} from "mobx-react" +import { withTranslation } from 'react-i18next'; + +import {PageReview, PageReviewChange} from "../../view/collaboration/Review"; +import {LocalStorage} from "../../../utils/LocalStorage"; + +class InitReview extends Component { + constructor(props){ + super(props); + + Common.Notifications.on('engineCreated', api => { + api.asc_registerCallback('asc_onShowRevisionsChange', this.onChangeReview.bind(this)); + }); + + Common.Notifications.on('document:ready', () => { + const api = Common.EditorApi.get(); + const appOptions = props.storeAppOptions; + api.asc_SetTrackRevisions(appOptions.isReviewOnly || LocalStorage.getBool("de-mobile-track-changes-" + (appOptions.fileKey || ''))); + // Init display mode + if (!appOptions.canReview) { + const canViewReview = appOptions.isEdit || api.asc_HaveRevisionsChanges(true); + appOptions.setCanViewReview(canViewReview); + if (canViewReview) { + let viewReviewMode = LocalStorage.getItem("de-view-review-mode"); + if (viewReviewMode === null) + viewReviewMode = appOptions.customization && /^(original|final|markup)$/i.test(appOptions.customization.reviewDisplay) ? appOptions.customization.reviewDisplay.toLocaleLowerCase() : 'original'; + viewReviewMode = (appOptions.isEdit || appOptions.isRestrictedEdit) ? 'markup' : viewReviewMode; + const displayMode = viewReviewMode.toLocaleLowerCase(); + if (displayMode === 'final') { + api.asc_BeginViewModeInReview(true); + } else if (displayMode === 'original') { + api.asc_BeginViewModeInReview(false); + } else { + api.asc_EndViewModeInReview(); + } + props.storeReview.changeDisplayMode(displayMode); + } + } + }); + } + + onChangeReview (data) { + const storeReview = this.props.storeReview; + storeReview.changeArrReview(data); + } + + render() { + return null + } +} + +class Review extends Component { + constructor(props) { + super(props); + this.onTrackChanges = this.onTrackChanges.bind(this); + this.onDisplayMode = this.onDisplayMode.bind(this); + + this.appConfig = props.storeAppOptions; + this.editorPrefix = window.editorType || ''; + + let trackChanges = typeof this.appConfig.customization == 'object' ? this.appConfig.customization.trackChanges : undefined; + trackChanges = this.appConfig.isReviewOnly || trackChanges === true || trackChanges !== false + && LocalStorage.getBool(`${this.editorPrefix}-mobile-track-changes-${this.appConfig.fileKey || ''}`); + + this.state = { + trackChanges: trackChanges + } + } + + onTrackChanges (checked) { + const api = Common.EditorApi.get(); + if ( this.appConfig.isReviewOnly ) { + this.setState({trackChanges: true}); + } else { + this.setState({trackChanges: checked}); + api.asc_SetTrackRevisions(checked); + LocalStorage.setBool(`${this.editorPrefix}-mobile-track-changes-${this.appConfig.fileKey || ''}`, checked); + } + } + + onAcceptAll () { + const api = Common.EditorApi.get(); + api.asc_AcceptAllChanges(); + } + + onRejectAll () { + const api = Common.EditorApi.get(); + api.asc_RejectAllChanges(); + } + + onDisplayMode (mode) { + const api = Common.EditorApi.get(); + if (mode === 'final') { + api.asc_BeginViewModeInReview(true); + } else if (mode === 'original') { + api.asc_BeginViewModeInReview(false); + } else { + api.asc_EndViewModeInReview(); + } + !this.appConfig.canReview && LocalStorage.setItem("de-view-review-mode", mode); + this.props.storeReview.changeDisplayMode(mode); + } + + render() { + const displayMode = this.props.storeReview.displayMode; + const isReviewOnly = this.appConfig.isReviewOnly; + const canReview = this.appConfig.canReview; + const canUseReviewPermissions = this.appConfig.canUseReviewPermissions; + const isRestrictedEdit = this.appConfig.isRestrictedEdit; + return ( + + ) + } +} + +class ReviewChange extends Component { + constructor (props) { + super(props); + this.onAcceptCurrentChange = this.onAcceptCurrentChange.bind(this); + this.onRejectCurrentChange = this.onRejectCurrentChange.bind(this); + this.onGotoNextChange = this.onGotoNextChange.bind(this); + this.onDeleteChange = this.onDeleteChange.bind(this); + + this.appConfig = props.storeAppOptions; + + if (this.appConfig && this.appConfig.canUseReviewPermissions) { + const permissions = this.appConfig.customization.reviewPermissions; + let arr = []; + const groups = Common.Utils.UserInfoParser.getParsedGroups(Common.Utils.UserInfoParser.getCurrentName()); + groups && groups.forEach(function(group) { + const item = permissions[group.trim()]; + item && (arr = arr.concat(item)); + }); + this.currentUserGroups = arr; + } + } + intersection (arr1, arr2) { //Computes the list of values that are the intersection of all the arrays. + const arr = []; + arr1.forEach((item1) => { + arr2.forEach((item2) => { + if (item1 === item2) { + arr.push(item2); + } + }); + }); + return arr; + } + checkUserGroups (username) { + const groups = Common.Utils.UserInfoParser.getParsedGroups(username); + return this.currentUserGroups && groups && (this.intersection(this.currentUserGroups, (groups.length>0) ? groups : [""]).length>0); + } + dateToLocaleTimeString (date) { + const format = (date) => { + let strTime, + hours = date.getHours(), + minutes = date.getMinutes(), + ampm = hours >= 12 ? 'pm' : 'am'; + + hours = hours % 12; + hours = hours ? hours : 12; // the hour '0' should be '12' + minutes = minutes < 10 ? '0' + minutes : minutes; + strTime = hours + ':' + minutes + ' ' + ampm; + + return strTime; + }; + + // MM/dd/yyyy hh:mm AM + return (date.getMonth() + 1) + '/' + (date.getDate()) + '/' + date.getFullYear() + ' ' + format(date); + } + getArrChangeReview (data) { + const api = Common.EditorApi.get(); + + const { t } = this.props; + const _t = t("Common.Collaboration", { returnObjects: true }); + + if (data.length === 0) return []; + const arr = []; + const c_paragraphLinerule = { + LINERULE_LEAST: 0, + LINERULE_AUTO: 1, + LINERULE_EXACT: 2 + }; + data.forEach((item) => { + let changeText = [], proptext = [], + value = item.get_Value(), + movetype = item.get_MoveType(); + switch (item.get_Type()) { + case Asc.c_oAscRevisionsChangeType.TextAdd: + changeText.push(); + if (typeof value == 'object') { + value.forEach( (obj) => { + if (typeof obj === 'string') + changeText.push(); + else { + switch (obj) { + case 0: + changeText.push(); + break; + case 1: + changeText.push(); + break; + case 2: + changeText.push(); + break; + case 3: + changeText.push(); + break; + } + } + }) + } else if (typeof value === 'string') { + changeText.push(); + } + break; + case Asc.c_oAscRevisionsChangeType.TextRem: + changeText.push(); + if (typeof value == 'object') { + value.forEach( (obj) => { + if (typeof obj === 'string') + changeText.push(); + else { + switch (obj) { + case 0: + changeText.push(); + break; + case 1: + changeText.push(); + break; + case 2: + changeText.push(); + break; + case 3: + changeText.push(); + break; + } + } + }) + } else if (typeof value === 'string') { + changeText.push(); + } + break; + case Asc.c_oAscRevisionsChangeType.ParaAdd: + changeText.push(); + break; + case Asc.c_oAscRevisionsChangeType.ParaRem: + changeText.push(); + break; + case Asc.c_oAscRevisionsChangeType.TextPr: + if (value.Get_Bold() !== undefined) + proptext.push(); + if (value.Get_Italic() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Underline() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Strikeout() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_DStrikeout() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Caps() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_SmallCaps() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_VertAlign() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Color() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Highlight() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Shd() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_FontFamily() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_FontSize() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Spacing() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Position() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Lang() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + + if (proptext.length > 0) { + changeText.push(); + proptext.forEach((item) => { + changeText.push(item); + }); + } else { + changeText.push(); + } + break; + case Asc.c_oAscRevisionsChangeType.ParaPr: + if (value.Get_ContextualSpacing()) + proptext.push(); + if (value.Get_IndLeft() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_IndRight() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_IndFirstLine() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Jc() !== undefined) { + switch (value.Get_Jc()) { + case 0: + proptext.length > 0 && proptext.push(); + proptext.push(); + break; + case 1: + proptext.length > 0 && proptext.push(); + proptext.push(); + break; + case 2: + proptext.length > 0 && proptext.push(); + proptext.push(); + break; + case 3: + proptext.length > 0 && proptext.push(); + proptext.push(); + break; + } + } + if (value.Get_KeepLines() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_KeepNext()) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_PageBreakBefore()) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_SpacingLineRule() !== undefined && value.Get_SpacingLine() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + proptext.push(); + proptext.push(); + } + if (value.Get_SpacingBeforeAutoSpacing()) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + else if (value.Get_SpacingBefore() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_SpacingAfterAutoSpacing()) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + else if (value.Get_SpacingAfter() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_WidowControl()) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_Tabs() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + if (value.Get_NumPr() !== undefined) { + proptext.length > 0 && proptext.push(); + proptext.push() + } + if (value.Get_PStyle() !== undefined) { + const style = api.asc_GetStyleNameById(value.Get_PStyle()); + if (style.length > 0) { + proptext.length > 0 && proptext.push(); + proptext.push(); + } + } + + if (proptext.length > 0) { + changeText.push(); + proptext.forEach((item) => { + changeText.push(item); + }); + } else { + changeText.push(); + } + break; + case Asc.c_oAscRevisionsChangeType.TablePr: + changeText.push(); + break; + case Asc.c_oAscRevisionsChangeType.RowsAdd: + changeText.push(); + break; + case Asc.c_oAscRevisionsChangeType.RowsRem: + changeText.push(); + break; + + } + let date = (item.get_DateTime() == '') ? new Date() : new Date(item.get_DateTime()); + const user = item.get_UserName(); + const userColor = item.get_UserColor(); + const goto = (item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveTo || item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveFrom); + date = this.dateToLocaleTimeString(date); + const editable = this.appConfig.isReviewOnly && (item.get_UserId() == this.appConfig.user.id) || !this.appConfig.isReviewOnly && (!this.appConfig.canUseReviewPermissions || this.checkUserGroups(item.get_UserName())); + arr.push({date: date, user: user, userColor: userColor, changeText: changeText, goto: goto, editable: editable}); + }); + return arr; + } + + onPrevChange () { + const api = Common.EditorApi.get(); + api.asc_GetPrevRevisionsChange(); + } + + onNextChange () { + const api = Common.EditorApi.get(); + api.asc_GetNextRevisionsChange(); + } + + onAcceptCurrentChange () { + const api = Common.EditorApi.get(); + api.asc_AcceptChanges(this.dataChanges[0]); + setTimeout(() => { + api.asc_GetNextRevisionsChange(); + }); + } + + onRejectCurrentChange () { + const api = Common.EditorApi.get(); + api.asc_RejectChanges(this.dataChanges[0]); + setTimeout(() => { + api.asc_GetNextRevisionsChange(); + }); + } + + onGotoNextChange () { + const api = Common.EditorApi.get(); + api.asc_FollowRevisionMove(this.dataChanges[0]); + } + + onDeleteChange () { + const api = Common.EditorApi.get(); + api.asc_RejectChanges(this.dataChanges[0]); + } + + render() { + this.dataChanges = this.props.storeReview.dataChanges; + const arrChangeReview = this.getArrChangeReview(this.dataChanges); + let change; + let goto = false; + if (arrChangeReview.length > 0) { + change = { + date: arrChangeReview[0].date, + user: arrChangeReview[0].user, + userName: Common.Utils.String.htmlEncode(Common.Utils.UserInfoParser.getParsedName(arrChangeReview[0].user)), + color: arrChangeReview[0].userColor.get_hex(), + text: arrChangeReview[0].changeText, + initials: this.props.users.getInitials(arrChangeReview[0].user), + editable: arrChangeReview[0].editable + }; + goto = arrChangeReview[0].goto; + } + + const isReviewOnly = this.appConfig.isReviewOnly; + const canReview = this.appConfig.canReview; + const displayMode = this.props.storeReview.displayMode; + + return ( + + ) + } +} + + +const InitReviewController = inject("storeAppOptions", "storeReview")(observer(InitReview)); +const ReviewController = inject("storeAppOptions", "storeReview")(observer(Review)); +const ReviewChangeController = withTranslation()(inject("storeAppOptions", "storeReview", "users")(observer(ReviewChange))); + +export {InitReviewController, ReviewController, ReviewChangeController}; \ No newline at end of file diff --git a/apps/common/mobile/lib/store/comments.js b/apps/common/mobile/lib/store/comments.js new file mode 100644 index 000000000..86248d9d2 --- /dev/null +++ b/apps/common/mobile/lib/store/comments.js @@ -0,0 +1,127 @@ + +import {makeObservable, observable, action, computed} from 'mobx'; + +export class storeComments { + constructor() { + makeObservable(this, { + collectionComments: observable, + groupCollectionComments: observable, + filter: observable, + + showComments: observable, + changeShowComment: action, + + addComment: action, + removeComment: action, + changeComment: action, + changeFilter: action, + + groupCollectionFilter: computed, + + isOpenEditComment: observable, + openEditComment: action, + isOpenAddReply: observable, + openAddReply: action, + isOpenEditReply: observable, + openEditReply: action + }) + } + collectionComments = []; + groupCollectionComments = []; + + filter = undefined; + + showComments = []; + changeShowComment (uid) { + this.showComments.length = 0; + uid.forEach((item) => { + this.showComments.push(this.findComment(item)); + }); + } + + addComment (comment) { + comment.groupName ? this.groupCollectionComments.push(comment) : this.collectionComments.push(comment); + } + + removeComment (id) { + const collection = this.collectionComments.length > 0 ? this.collectionComments : this.groupCollectionComments; + const index = collection.findIndex((comment) => { + return comment.uid === id; + }); + if (index !== -1) { + collection.splice(index, 1); + } + } + + changeComment (id, changeComment) { + const comment = this.findComment(id); + if (comment) { + comment.comment = changeComment.comment; + comment.userId = changeComment.userId; + comment.userName = changeComment.userName; + comment.userColor = changeComment.userColor; + comment.resolved = changeComment.resolved; + comment.quote = changeComment.quote; + comment.time = changeComment.time; + comment.date = changeComment.date; + comment.editable = changeComment.editable; + comment.removable = changeComment.removable; + comment.replies = changeComment.replies; + } + } + + changeFilter (filter) { + this.filter = filter; + } + + findComment (id) { + const collection = this.collectionComments.length > 0 ? this.collectionComments : this.groupCollectionComments; + let comment = collection.find((item) => { + return item.uid === id; + }); + return comment; + } + + get groupCollectionFilter () { + if (this.filter && this.groupCollectionComments.length > 0) { + const arr = []; + this.filter.forEach((groupName) => { + this.groupCollectionComments.forEach((comment) => { + if (comment.groupName === groupName) { + arr.push(comment); + } + }); + }); + return arr; + } + return false; + } + + // Edit comment + currentComment = null; + isOpenEditComment = false; + openEditComment (open, comment) { + if (open !== this.isOpenEditComment) { + this.currentComment = open ? comment : null; + this.isOpenEditComment = open; + } + } + + currentReply = null; + isOpenAddReply = false; + openAddReply (open, comment) { + if (open !== this.isOpenAddReply) { + this.currentComment = open ? comment : null; + this.isOpenAddReply = open; + } + } + + isOpenEditReply = false; + openEditReply (open, comment, reply) { + if (open !== this.isOpenEditReply) { + this.currentComment = open ? comment : null; + this.currentReply = open ? reply : null; + this.isOpenEditReply = open; + } + } +} \ No newline at end of file diff --git a/apps/common/mobile/lib/store/users.js b/apps/common/mobile/lib/store/users.js new file mode 100644 index 000000000..ab8e3ebdb --- /dev/null +++ b/apps/common/mobile/lib/store/users.js @@ -0,0 +1,94 @@ + +import {makeObservable, observable, action, computed} from 'mobx'; + +export class storeUsers { + constructor() { + makeObservable(this, { + users: observable, + reset: action, + currentUser: observable, + setCurrentUser: action, + connection: action, + isDisconnected: observable, + resetDisconnected: action, + hasEditUsers: computed + }) + } + + users = []; + currentUser; + isDisconnected = false; + + reset (users) { + this.users = Object.values(users) + } + + setCurrentUser (id) { + this.users.forEach((item) => { + if (item.asc_getIdOriginal() === id) { + this.currentUser = item; + } + }); + return this.currentUser; + } + + connection (change) { + let changed = false; + for (let uid in this.users) { + if (undefined !== uid) { + const user = this.users[uid]; + if (user && user.asc_getId() === change.asc_getId()) { + this.users[uid] = change; + changed = true; + } + } + } + !changed && change && (this.users[change.asc_getId()] = change); + } + + resetDisconnected (isDisconnected) { + this.isDisconnected = isDisconnected; + } + + getInitials (name) { + const fio = Common.Utils.UserInfoParser.getParsedName(name).split(' '); + let initials = fio[0].substring(0, 1).toUpperCase(); + for (let i = fio.length-1; i>0; i--) { + if (fio[i][0]!=='(' && fio[i][0]!==')') { + initials += fio[i].substring(0, 1).toUpperCase(); + break; + } + } + return initials; + } + + searchUserById (id) { + let user = null; + this.users.forEach((item) => { + if (item.asc_getIdOriginal() === id) { + user = item; + } + }); + return user; + } + + searchUserByCurrentId (id) { + let user = null; + this.users.forEach((item) => { + if (item.asc_getId() === id) { + user = item; + } + }); + return user; + } + + get hasEditUsers () { + let length = 0; + this.users.forEach((item) => { + if ((item.asc_getState()!==false) && !item.asc_getView()) { + length++; + } + }); + return (length >= 1); + } +} diff --git a/apps/common/mobile/lib/view/About.jsx b/apps/common/mobile/lib/view/About.jsx new file mode 100644 index 000000000..a2fc8d61f --- /dev/null +++ b/apps/common/mobile/lib/view/About.jsx @@ -0,0 +1,126 @@ +import React, { Fragment } from 'react'; +import { observer, inject } from "mobx-react"; +import { Page, Navbar, Link } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const PageAbout = props => { + const { t } = useTranslation(); + const _t = t("About", { returnObjects: true }); + const store = props.storeAppOptions; + const isCanBranding = store.canBranding; + const licInfo = isCanBranding ? store.customization : null; + const customer = licInfo ? licInfo.customer : null; + const nameCustomer = customer ? customer.name : null; + const mailCustomer = customer ? customer.mail : null; + const addressCustomer = customer ? customer.address : null; + const urlCustomer = customer ? customer.www : null; + const infoCustomer = customer ? customer.info : null; + const logoCustomer = customer ? customer.logo : null; + + const publisherUrl = __PUBLISHER_URL__, + publisherPrintUrl = publisherUrl.replace(/https?:\/{2}|\/$/,""); + + const editors = { + de: 'DOCUMENT EDITOR', + pe: 'PRESENTATION EDITOR', + sse: 'SPREADSHEET EDITOR' + }; + + const nameEditor = editors[editorType]; + + return ( + + + {licInfo && typeof licInfo == 'object' && typeof(customer) == 'object' ? ( + +
+ {logoCustomer && logoCustomer.length ? ( + + ) : null} +
+
+

{nameEditor}

+

{_t.textVersion} {__PRODUCT_VERSION__}

+
+
+ {nameCustomer && nameCustomer.length ? ( +

{nameCustomer}

+ ) : null} + {addressCustomer && addressCustomer.length ? ( +

+ + {addressCustomer} +

+ ) : null} + {mailCustomer && mailCustomer.length ? ( +

+ + {mailCustomer} +

+ ) : null} + {urlCustomer && urlCustomer.length ? ( +

+ + {urlCustomer} + +

+ ) : null} + {infoCustomer && infoCustomer.length ? ( +

+ +

+ ) : null} +
+
+
+

+ +

+

{__PUBLISHER_NAME__}

+

+ {publisherPrintUrl} +

+
+
+ ) : ( + +
+
+
+
+

{nameEditor}

+

{_t.textVersion} {__PRODUCT_VERSION__}

+
+
+

{__PUBLISHER_NAME__}

+

+ + {__PUBLISHER_ADDRESS__} +

+

+ + {__SUPPORT_EMAIL__} +

+

+ + {__PUBLISHER_PHONE__} +

+

+ {publisherPrintUrl} +

+
+
+ )} +
+ ); +}; + +const About = inject("storeAppOptions")(observer(PageAbout)); +About.appVersion = () => (__PRODUCT_VERSION__); +About.compareVersions = () => /d$/.test(__PRODUCT_VERSION__); + + +export default About; \ No newline at end of file diff --git a/apps/common/mobile/lib/view/ContextMenu.jsx b/apps/common/mobile/lib/view/ContextMenu.jsx new file mode 100644 index 000000000..264565226 --- /dev/null +++ b/apps/common/mobile/lib/view/ContextMenu.jsx @@ -0,0 +1,62 @@ +import React, { Component } from 'react'; +import { Popover, List, ListItem, ListButton, Link, Icon, Actions, ActionsGroup, ActionsButton } from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; + +const idContextMenuElement = "idx-context-menu-popover"; + +class ContextMenuView extends Component { + constructor(props) { + super(props); + } + + componentDidMount() { + // f7.popover.open('#idx-context-menu-popover', '#idx-context-menu-target'); + } + + render() { + const buttons = this.props.items || {}; + + return ( + this.props.onMenuClosed()} + > + + {buttons.map((b, index) => + !b.icon ? + this.props.onMenuItemClick(b.event)} /> : + this.props.onMenuItemClick(b.event)}> + + + )} + + + ) + } +} + +const ActionsWithExtraItems = ({items, onMenuItemClick, opened, onActionClosed}) => { + const { t } = useTranslation(); + const _t = t('ContextMenu', {returnObjects: true}); + return ( + onActionClosed()}> + + {items.length > 0 && items.map((item, index)=>{ + return( + {onMenuItemClick(item.event)}}>{item.caption} + ) + })} + + + {_t.menuCancel} + + + ) +}; + +const exportedIdMenuElemen = `#${idContextMenuElement}`; +export {ContextMenuView as default, exportedIdMenuElemen as idContextMenuElement, ActionsWithExtraItems}; \ No newline at end of file diff --git a/apps/common/mobile/lib/view/Search.jsx b/apps/common/mobile/lib/view/Search.jsx new file mode 100644 index 000000000..72f69836c --- /dev/null +++ b/apps/common/mobile/lib/view/Search.jsx @@ -0,0 +1,324 @@ + +import React, { Component } from 'react'; +import { Searchbar, Popover, Popup, View, Page, List, ListItem, Navbar, NavRight, Link } from 'framework7-react'; +import { Toggle } from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { Dom7 } from 'framework7'; +import { Device } from '../../../../common/mobile/utils/device'; +import { observable, runInAction } from "mobx"; +import { observer } from "mobx-react"; + +const searchOptions = observable({ + usereplace: false, + isReplaceAll: false +}); + +const popoverStyle = { + height: '300px' +}; + +const SEARCH_BACKWARD = 'back'; +const SEARCH_FORWARD = 'next'; + +class SearchSettingsView extends Component { + constructor(props) { + super(props); + + this.state = { + useReplace: false, + // caseSensitive: false, + // markResults: false + searchIn: 0, + searchBy: 1, + lookIn: 1, + isMatchCase: false, + isMatchCell: false, + isReplaceAll: false + }; + } + + onFindReplaceClick(action) { + runInAction(() => { + searchOptions.usereplace = action == 'replace'; + searchOptions.isReplaceAll = action == 'replace-all'; + }); + + this.setState({ + useReplace: searchOptions.usereplace, + isReplaceAll: searchOptions.isReplaceAll + }); + + if (this.onReplaceChecked) {} + } + + extraSearchOptions() { + } + + render() { + const show_popover = !Device.phone; + // const navbar = + // + // {!show_popover && + // + // Done + // + // } + // ; + const extra = this.extraSearchOptions(); + const content = + + {/* + {navbar} */} + {extra} + {/* */} + ; + return ( + show_popover ? + {content} : + {content} + ) + } +} + +// @observer +class SearchView extends Component { + constructor(props) { + super(props); + + this.state = { + searchQuery: '', + replaceQuery: '' + }; + + const $$ = Dom7; + + $$(document).on('page:init', (e, page) => { + if ( page.name == 'home' ) { + this.searchbar = f7.searchbar.create({ + el: '.searchbar', + customSearch: true, + expandable: true, + backdrop: false, + on: { + search: (bar, curval, prevval) => { + }, + enable: this.onSearchbarShow.bind(this, true), + disable: this.onSearchbarShow.bind(this, false) + } + }); + + // function iOSVersion() { + // var ua = navigator.userAgent; + // var m; + // return (m = /(iPad|iPhone|iphone).*?(OS |os |OS\_)(\d+((_|\.)\d)?((_|\.)\d)?)/.exec(ua)) ? parseFloat(m[3]) : 0; + // } + + const $editor = $$('#editor_sdk'); + // const $replaceLink = $$('#replace-link'); + + if (false /* iOSVersion < 13 */) { + // $editor.on('mousedown touchstart', this.onEditorTouchStart.bind(this)); + // $editor.on('mouseup touchend', this.onEditorTouchEnd.bind(this)); + } else { + // $editor.on('pointerdown', this.onEditorTouchStart.bind(this)); + // $editor.on('pointerup', this.onEditorTouchEnd.bind(this)); + } + + $editor.on('pointerdown', this.onEditorTouchStart.bind(this)); + $editor.on('pointerup', this.onEditorTouchEnd.bind(this)); + // $replaceLink.on('click', this.onReplaceHold.bind(this)); + } + }); + + this.onSettingsClick = this.onSettingsClick.bind(this); + this.onSearchClick = this.onSearchClick.bind(this); + this.onReplaceClick = this.onReplaceClick.bind(this); + } + + componentDidMount(){ + const $$ = Dom7; + this.$replace = $$('#idx-replace-val'); + } + + onSettingsClick(e) { + if ( Device.phone ) { + f7.popup.open('.search-settings-popup'); + } else f7.popover.open('#idx-search-settings', '#idx-btn-search-settings'); + } + + searchParams() { + let params = { + find: this.searchbar.query + }; + + if (searchOptions.usereplace) { + params.replace = this.$replace.val(); + } + + return params; + } + + onSearchClick(action) { + if (this.searchbar && this.state.searchQuery) { + if (this.props.onSearchQuery) { + let params = this.searchParams(); + params.find = this.state.searchQuery; + params.forward = action != SEARCH_BACKWARD; + // console.log(params); + + this.props.onSearchQuery(params); + } + } + } + + onReplaceClick() { + if (this.searchbar && this.state.searchQuery) { + if (this.props.onReplaceQuery) { + let params = this.searchParams(); + params.find = this.state.searchQuery; + // console.log(params); + + this.props.onReplaceQuery(params); + } + } + } + + onReplaceAllClick() { + if (this.searchbar && this.state.searchQuery) { + if (this.props.onReplaceAllQuery) { + let params = this.searchParams(); + params.find = this.state.searchQuery; + // console.log(params); + + this.props.onReplaceAllQuery(params); + } + } + } + + onSearchbarShow(isshowed, bar) { + if ( !isshowed ) { + this.$replace.val(''); + } + } + + onEditorTouchStart(e) { + this.startPoint = this.pointerPosition(e); + // console.log(this.startPoint); + } + + onEditorTouchEnd(e) { + const endPoint = this.pointerPosition(e); + // console.log(endPoint); + + if (this.searchbar.enabled) { + let distance; + + if(this.startPoint) { + distance = (!!this.startPoint.x || !!this.startPoint.y) ? 0 : + Math.sqrt((endPoint.x -= this.startPoint.x) * endPoint.x + (endPoint.y -= this.startPoint.y) * endPoint.y); + } else { + distance = 0; + } + + // const distance = (this.startPoint === undefined || this.startPoint === undefined) ? 0 : + // Math.sqrt((endPoint.x -= this.startPoint.x) * endPoint.x + (endPoint.y -= this.startPoint.y) * endPoint.y); + + if (distance < 1) { + this.searchbar.disable(); + } + } + } + + pointerPosition(e) { + let out = {x:0, y:0}; + if ( e.type == 'touchstart' || e.type == 'touchend' ) { + const touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + out.x = touch.pageX; + out.y = touch.pageY; + } else if ( e.type == 'mousedown' || e.type == 'mouseup' ) { + out.x = e.pageX; + out.y = e.pageY; + } + + return out; + } + + changeSearchQuery(value) { + this.setState({ + searchQuery: value + }); + } + + changeReplaceQuery(value) { + this.setState({ + replaceQuery: value + }); + } + + render() { + const usereplace = searchOptions.usereplace; + const isReplaceAll = searchOptions.isReplaceAll; + const hidden = {display: "none"}; + const searchQuery = this.state.searchQuery; + // const replaceQuery = this.state.replaceQuery; + const isIos = Device.ios; + const { _t } = this.props; + + if(this.searchbar && this.searchbar.enabled) { + usereplace || isReplaceAll ? this.searchbar.el.classList.add('replace') : this.searchbar.el.classList.remove('replace'); + } + + return ( +
+ {isIos ?
: null} +
+
+ + + +
+
+
+ {this.changeSearchQuery(e.target.value)}} /> + {isIos ? : null} + this.changeSearchQuery('')} /> +
+ {/* {usereplace || isReplaceAll ? */} +
+ {/* style={!usereplace ? hidden: null} */} + {this.changeReplaceQuery(e.target.value)}} /> + {isIos ? : null} + this.changeReplaceQuery('')} /> +
+ {/* */} +
+ +
+ + ) + } +} + +const SearchViewWithObserver = observer(SearchView); + +export {SearchViewWithObserver as SearchView, SearchSettingsView}; diff --git a/apps/common/mobile/lib/view/collaboration/Collaboration.jsx b/apps/common/mobile/lib/view/collaboration/Collaboration.jsx new file mode 100644 index 000000000..f87e36b16 --- /dev/null +++ b/apps/common/mobile/lib/view/collaboration/Collaboration.jsx @@ -0,0 +1,170 @@ +import React, { Component, useEffect } from 'react'; +import { observer, inject } from "mobx-react"; +import { Popover, List, ListItem, Navbar, NavRight, Sheet, BlockTitle, Page, View, Icon, Link } from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../utils/device"; + +import {ReviewController, ReviewChangeController} from "../../controller/collaboration/Review"; +import {PageDisplayMode} from "./Review"; + +import {ViewCommentsController} from "../../controller/collaboration/Comments"; + +const PageUsers = inject("users")(observer(props => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const storeUsers = props.users; + return ( + + + {Device.phone && + + + + + + } + + {_t.textEditUser} + + {storeUsers.users.map((model, i) => ( + + + + ))} + + + ) +})); + +const routes = [ + { + path: '/users/', + component: PageUsers + }, + { + path: '/review/', + component: ReviewController + }, + { + path: '/cm-review/', + component: ReviewController, + options: { + props: { + noBack: true + } + } + }, + { + path: '/display-mode/', + component: PageDisplayMode + }, + { + path: '/review-change/', + component: ReviewChangeController + }, + { + path: '/cm-review-change/', + component: ReviewChangeController, + options: { + props: { + noBack: true + } + } + }, + { + path: '/comments/', + component: ViewCommentsController, + options: { + props: { + allComments: true + } + } + } +]; + +const PageCollaboration = inject('storeAppOptions')(observer(props => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const appOptions = props.storeAppOptions; + return ( + + + + {Device.phone && + + + + + + } + + + + + + {appOptions.canViewComments && + + + + } + {window.editorType === 'de' && (appOptions.canReview || appOptions.canViewReview) && + + + + } + + + + ) + +})); + +class CollaborationView extends Component { + constructor(props) { + super(props); + + this.onoptionclick = this.onoptionclick.bind(this); + } + onoptionclick(page){ + f7.views.current.router.navigate(page); + } + render() { + const show_popover = this.props.usePopover; + return ( + show_popover ? + this.props.onclosed()} closeByOutsideClick={false}> + + : + this.props.onclosed()}> + + + ) + } +} + +const Collaboration = props => { + useEffect(() => { + if ( Device.phone ) { + f7.sheet.open('.coauth__sheet'); + } else { + f7.popover.open('#coauth-popover', '#btn-coauth'); + } + + return () => { + // component will unmount + } + }); + + const onviewclosed = () => { + if ( props.onclosed ) props.onclosed(); + }; + + return ( + + ) +}; + +export {PageCollaboration} +export default Collaboration; diff --git a/apps/common/mobile/lib/view/collaboration/Comments.jsx b/apps/common/mobile/lib/view/collaboration/Comments.jsx new file mode 100644 index 000000000..dd1c5d031 --- /dev/null +++ b/apps/common/mobile/lib/view/collaboration/Comments.jsx @@ -0,0 +1,867 @@ +import React, {useState, useEffect, Fragment} from 'react'; +import {observer, inject} from "mobx-react"; +import { f7, Popup, Sheet, Popover, Page, Toolbar, Navbar, NavLeft, NavRight, NavTitle, Link, Input, Icon, List, ListItem, Actions, ActionsGroup, ActionsButton } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../utils/device'; + +// Utils +const sliceQuote = (text) => { + if (text) { + let sliced = text.slice(0, 100); + if (sliced.length < text.length) { + sliced += '...'; + return sliced; + } + return text; + } +}; + +// Add comment + +const AddCommentPopup = inject("storeComments")(observer(props => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + useEffect(() => { + f7.popup.open('.add-comment-popup'); + }); + const userInfo = props.userInfo; + const [stateText, setText] = useState(''); + return ( + + + + { + f7.popup.close('.add-comment-popup'); + setTimeout(() => { + props.closeAddComment(); + }, 500) + }}>{_t.textCancel} + + {_t.textAddComment} + + { + f7.popup.close('.add-comment-popup'); + setTimeout(() => { + props.closeAddComment(); + props.onAddNewComment(stateText, false) + }, 500); + }}> + {Device.android ? : _t.textDone} + + + +
+
+ {Device.android && +
{userInfo.initials}
+ } +
{userInfo.name}
+
+
+ {setText(event.target.value);}}> +
+
+
+ ) +})); + +const AddCommentDialog = inject("storeComments")(observer(props => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const userInfo = props.userInfo; + const templateInitials = `
${userInfo.initials}
`; + useEffect(() => { + f7.dialog.create({ + destroyOnClose: true, + containerEl: document.getElementById('add-comment-dialog'), + content: + ` +
+
+ ${Device.android ? templateInitials : ''} +
${userInfo.name}
+
+
+ +
+
`, + on: { + opened: () => { + const cancel = document.getElementById('comment-cancel'); + cancel.addEventListener('click', () => { + f7.dialog.close(); + props.closeAddComment(); + }); + const done = document.getElementById('comment-done'); + done.addEventListener('click', () => { + const value = document.getElementById('comment-text').value; + if (value.length > 0) { + f7.dialog.close(); + props.closeAddComment(); + props.onAddNewComment(value, false); + } + }); + const area = document.getElementById('comment-text'); + area.addEventListener('input', (event) => { + if (event.target.value.length === 0 && !done.classList.contains('disabled')) { + done.classList.add('disabled'); + } else if (event.target.value.length > 0 && done.classList.contains('disabled')) { + done.classList.remove('disabled'); + } + }); + done.classList.add('disabled'); + } + } + }).open(); + }); + return ( +
+ ); +})); + +const AddComment = props => { + return ( + Device.phone ? + : + + ) +}; + +// Actions +const CommentActions = ({comment, onCommentMenuClick, opened, openActionComment}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + return ( + openActionComment(false)}> + + {comment && + {comment.editable && {onCommentMenuClick('editComment', comment);}}>{_t.textEdit}} + {!comment.resolved ? + {onCommentMenuClick('resolve', comment);}}>{_t.textResolve} : + {onCommentMenuClick('resolve', comment);}}>{_t.textReopen} + } + {onCommentMenuClick('addReply', comment);}}>{_t.textAddReply} + {comment.removable && {onCommentMenuClick('deleteComment', comment);}}>{_t.textDeleteComment}} + + } + + + {_t.textCancel} + + + ) +}; + +const ReplyActions = ({comment, reply, onCommentMenuClick, opened, openActionReply}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + return ( + openActionReply(false)}> + + {reply && + {reply.editable && {onCommentMenuClick('editReply', comment, reply);}}>{_t.textEdit}} + {reply.removable && {onCommentMenuClick('deleteReply', comment, reply);}}>{_t.textDeleteReply}} + + } + + + {_t.textCancel} + + + ) +}; + +// Edit comment +const EditCommentPopup = inject("storeComments")(observer(({storeComments, comment, onEditComment}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + useEffect(() => { + f7.popup.open('.edit-comment-popup'); + }); + const [stateText, setText] = useState(comment.comment); + return ( + + + + { + f7.popup.close('.edit-comment-popup'); + setTimeout(() => { + storeComments.openEditComment(false); + }, 500); + }}>{_t.textCancel} + + {_t.textEditComment} + + { + f7.popup.close('.edit-comment-popup'); + setTimeout(() => { + storeComments.openEditComment(false); + onEditComment(comment, stateText); + }, 500); + }} + > + {Device.android ? : _t.textDone} + + + +
+
+ {Device.android && +
{comment.userInitials}
+ } +
+
{comment.userName}
+
{comment.date}
+
+
+
+ {setText(event.target.value);}}> +
+
+
+ ) +})); + +const EditCommentDialog = inject("storeComments")(observer(({storeComments, comment, onEditComment}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const templateInitials = `
${comment.userInitials}
`; + useEffect(() => { + f7.dialog.create({ + destroyOnClose: true, + containerEl: document.getElementById('edit-comment-dialog'), + content: + ` +
+
+ ${Device.android ? templateInitials : ''} +
+
${comment.userName}
+
${comment.date}
+
+
+
+ +
+
`, + on: { + opened: () => { + const cancel = document.getElementById('comment-cancel'); + cancel.addEventListener('click', () => { + f7.dialog.close(); + storeComments.openEditComment(false); + }); + const done = document.getElementById('comment-done'); + done.addEventListener('click', () => { + const value = document.getElementById('comment-text').value; + if (value.length > 0) { + onEditComment(comment, value); + f7.dialog.close(); + storeComments.openEditComment(false); + } + }); + const area = document.getElementById('comment-text'); + area.addEventListener('input', (event) => { + if (event.target.value.length === 0 && !done.classList.contains('disabled')) { + done.classList.add('disabled'); + } else if (event.target.value.length > 0 && done.classList.contains('disabled')) { + done.classList.remove('disabled'); + } + }); + }, + open: () => { + $$('.dialog-backdrop.backdrop-in')[0].classList.add('over-popover'); + }, + closed: () => { + $$('.dialog-backdrop.backdrop-in')[0].classList.remove('over-popover'); + } + } + }).open(); + }); + return ( +
+ ); +})); + +const EditComment = ({comment, onEditComment}) => { + return ( + Device.phone ? + : + + ) +}; + +const AddReplyPopup = inject("storeComments")(observer(({storeComments, userInfo, comment, onAddReply}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + useEffect(() => { + f7.popup.open('.add-reply-popup'); + }); + const [stateText, setText] = useState(''); + return ( + + + + { + f7.popup.close('.add-reply-popup'); + setTimeout(() => { + storeComments.openAddReply(false); + }, 500); + }}>{_t.textCancel} + + {_t.textAddReply} + + { + f7.popup.close('.add-reply-popup'); + setTimeout(() => { + storeComments.openAddReply(false); + onAddReply(comment, stateText); + }, 500); + }}> + {Device.android ? : _t.textDone} + + + +
+
+ {Device.android && +
{userInfo.initials}
+ } +
{userInfo.name}
+
+
+ {setText(event.target.value);}}> +
+
+
+ ) +})); + +const AddReplyDialog = inject("storeComments")(observer(({storeComments, userInfo, comment, onAddReply}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const templateInitials = `
${userInfo.initials}
`; + useEffect(() => { + f7.dialog.create({ + destroyOnClose: true, + containerEl: document.getElementById('add-reply-dialog'), + content: + ` +
+
+ ${Device.android ? templateInitials : ''} +
${userInfo.name}
+
+
+ +
+
`, + on: { + opened: () => { + const cancel = document.getElementById('reply-cancel'); + cancel.addEventListener('click', () => { + f7.dialog.close(); + storeComments.openAddReply(false); + }); + const done = document.getElementById('reply-done'); + done.addEventListener('click', () => { + const value = document.getElementById('reply-text').value; + if (value.length > 0) { + onAddReply(comment, value); + f7.dialog.close(); + storeComments.openAddReply(false); + } + }); + const area = document.getElementById('reply-text'); + area.addEventListener('input', (event) => { + if (event.target.value.length === 0 && !done.classList.contains('disabled')) { + done.classList.add('disabled'); + } else if (event.target.value.length > 0 && done.classList.contains('disabled')) { + done.classList.remove('disabled'); + } + }); + done.classList.add('disabled'); + }, + open: () => { + $$('.dialog-backdrop.backdrop-in')[0].classList.add('over-popover'); + }, + closed: () => { + $$('.dialog-backdrop.backdrop-in')[0].classList.remove('over-popover'); + } + } + }).open(); + }); + return ( +
+ ); +})); + +const AddReply = ({userInfo, comment, onAddReply}) => { + return ( + Device.phone ? + : + + ) +}; + +const EditReplyPopup = inject("storeComments")(observer(({storeComments, comment, reply, onEditReply}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + useEffect(() => { + f7.popup.open('.edit-reply-popup'); + }); + const [stateText, setText] = useState(reply.reply); + return ( + + + + { + f7.popup.close('.edit-reply-popup'); + setTimeout(() => { + storeComments.openEditReply(false); + }, 500); + }}>{_t.textCancel} + + {_t.textEditReply} + + { + f7.popup.close('.edit-reply-popup'); + setTimeout(() => { + storeComments.openEditReply(false); + onEditReply(comment, reply, stateText); + }, 500); + }} + > + {Device.android ? : _t.textDone} + + + +
+
+ {Device.android && +
{reply.userInitials}
+ } +
+
{reply.userName}
+
{reply.date}
+
+
+
+ {setText(event.target.value);}}> +
+
+
+ ) +})); + +const EditReplyDialog = inject("storeComments")(observer(({storeComments, comment, reply, onEditReply}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const templateInitials = `
${reply.userInitials}
`; + useEffect(() => { + f7.dialog.create({ + destroyOnClose: true, + containerEl: document.getElementById('edit-reply-dialog'), + content: + ` +
+
+ ${Device.android ? templateInitials : ''} +
+
${reply.userName}
+
${reply.date}
+
+
+
+ +
+
`, + on: { + opened: () => { + const cancel = document.getElementById('reply-cancel'); + cancel.addEventListener('click', () => { + f7.dialog.close(); + storeComments.openEditReply(false); + }); + const done = document.getElementById('reply-done'); + done.addEventListener('click', () => { + const value = document.getElementById('reply-text').value; + if (value.length > 0) { + onEditReply(comment, reply, value); + f7.dialog.close(); + storeComments.openEditReply(false); + } + }); + const area = document.getElementById('reply-text'); + area.addEventListener('input', (event) => { + if (event.target.value.length === 0 && !done.classList.contains('disabled')) { + done.classList.add('disabled'); + } else if (event.target.value.length > 0 && done.classList.contains('disabled')) { + done.classList.remove('disabled'); + } + }); + }, + open: () => { + $$('.dialog-backdrop.backdrop-in')[0].classList.add('over-popover'); + }, + closed: () => { + $$('.dialog-backdrop.backdrop-in')[0].classList.remove('over-popover'); + } + } + }).open(); + }); + return ( +
+ ); +})); + +const EditReply = ({comment, reply, onEditReply}) => { + return ( + Device.phone ? + : + + ) +}; + +// View comments +const ViewComments = ({storeComments, storeAppOptions, onCommentMenuClick, onResolveComment}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const isAndroid = Device.android; + + const viewMode = !storeAppOptions.canComments; + const comments = storeComments.groupCollectionFilter || storeComments.collectionComments; + const sortComments = comments.length > 0 ? [...comments].sort((a, b) => a.time > b.time ? 1 : -1) : null; + + const [clickComment, setComment] = useState(); + const [commentActionsOpened, openActionComment] = useState(false); + + const [reply, setReply] = useState(); + const [replyActionsOpened, openActionReply] = useState(false); + + return ( + + + {!sortComments ? +
{_t.textNoComments}
: + + {sortComments.map((comment, indexComment) => { + return ( + +
+
+ {isAndroid &&
{comment.userInitials}
} +
+
{comment.userName}
+
{comment.date}
+
+
+ {!viewMode && +
+
{onResolveComment(comment);}}>
+
{setComment(comment); openActionComment(true);}} + >
+
+ } +
+
+ {comment.quote &&
{sliceQuote(comment.quote)}
} +
{comment.comment}
+ {comment.replies.length > 0 && +
    + {comment.replies.map((reply, indexReply) => { + return ( +
  • +
    +
    +
    +
    +
    + {isAndroid &&
    {reply.userInitials}
    } +
    +
    {reply.userName}
    +
    {reply.date}
    +
    +
    + {!viewMode && +
    +
    {setComment(comment); setReply(reply); openActionReply(true);}} + > + +
    +
    + } +
    +
    +
    {reply.reply}
    +
    +
    +
    +
    +
  • + ) + })} +
+ } +
+
+ ) + })} +
+ } + + + +
+ ) +}; + +const _ViewComments = inject('storeComments', 'storeAppOptions')(observer(ViewComments)); + +const CommentList = inject("storeComments", "storeAppOptions")(observer(({storeComments, storeAppOptions, onCommentMenuClick, onResolveComment}) => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const isAndroid = Device.android; + + const viewMode = !storeAppOptions.canComments; + + const comments = storeComments.showComments; + + const [currentIndex, setCurrentIndex] = useState(0); + const comment = comments[currentIndex]; + + const [commentActionsOpened, openActionComment] = useState(false); + + const [reply, setReply] = useState(); + const [replyActionsOpened, openActionReply] = useState(false); + + const onViewPrevComment = () => { + if (currentIndex - 1 < 0) { + setCurrentIndex(comments.length - 1); + } else { + setCurrentIndex(currentIndex - 1); + } + }; + + const onViewNextComment = () => { + if (currentIndex + 1 === comments.length) { + setCurrentIndex(0); + } else { + setCurrentIndex(currentIndex + 1); + } + }; + + return ( + + + {!viewMode && + {onCommentMenuClick('addReply', comment);}}>{_t.textAddReply} + } +
+ + +
+
+ + + +
+
+ {isAndroid &&
{comment.userInitials}
} +
+
{comment.userName}
+
{comment.date}
+
+
+ {!viewMode && +
+
{onResolveComment(comment);}}>
+
{openActionComment(true);}} + >
+
+ } +
+
+ {comment.quote &&
{sliceQuote(comment.quote)}
} +
{comment.comment}
+ {comment.replies.length > 0 && +
    + {comment.replies.map((reply, indexReply) => { + return ( +
  • +
    +
    +
    +
    +
    + {isAndroid &&
    {reply.userInitials}
    } +
    +
    {reply.userName}
    +
    {reply.date}
    +
    +
    + {!viewMode && +
    +
    {setReply(reply); openActionReply(true);}} + > + +
    +
    + } +
    +
    +
    {reply.reply}
    +
    +
    +
    +
    +
  • + ) + })} +
+ } +
+
+
+ + +
+
+ ) +})); + +const ViewCommentSheet = ({closeCurComments, onCommentMenuClick, onResolveComment}) => { + useEffect(() => { + f7.sheet.open('#view-comment-sheet'); + }); + + const [stateHeight, setHeight] = useState('45%'); + const [stateOpacity, setOpacity] = useState(1); + + const [stateStartY, setStartY] = useState(); + const [isNeedClose, setNeedClose] = useState(false); + + const handleTouchStart = (event) => { + const touchObj = event.changedTouches[0]; + setStartY(parseInt(touchObj.clientY)); + }; + const handleTouchMove = (event) => { + const touchObj = event.changedTouches[0]; + const dist = parseInt(touchObj.clientY) - stateStartY; + if (dist < 0) { // to top + setHeight('90%'); + setOpacity(1); + setNeedClose(false); + } else if (dist < 80) { + setHeight('45%'); + setOpacity(1); + setNeedClose(false); + } else { + setNeedClose(true); + setOpacity(0.6); + } + }; + const handleTouchEnd = (event) => { + console.log('end'); + const touchObj = event.changedTouches[0]; + const swipeEnd = parseInt(touchObj.clientY); + const dist = swipeEnd - stateStartY; + if (isNeedClose) { + closeCurComments(); + } else if (stateHeight === '90%' && dist > 20) { + setHeight('45%'); + } + }; + return ( + +
+ +
+ +
+ ) +}; + +const ViewCommentPopover = ({onCommentMenuClick, onResolveComment}) => { + useEffect(() => { + f7.popover.open('#view-comment-popover', '#btn-coauth'); + }); + return ( + + + + ) +}; + +const ViewCurrentComments = props => { + return ( + Device.phone ? + : + + ) +}; + +export { + AddComment, + EditComment, + AddReply, + EditReply, + _ViewComments as ViewComments, + ViewCurrentComments +}; diff --git a/apps/common/mobile/lib/view/collaboration/Review.jsx b/apps/common/mobile/lib/view/collaboration/Review.jsx new file mode 100644 index 000000000..06390f556 --- /dev/null +++ b/apps/common/mobile/lib/view/collaboration/Review.jsx @@ -0,0 +1,184 @@ +import React, { Component, useEffect } from 'react'; +import { observer, inject } from "mobx-react"; +import { Page, Navbar, NavRight, List, ListItem, Icon, Toggle, Toolbar, Link } from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../utils/device"; + +const PageReview = props => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + + const isDisableAllSettings = props.isReviewOnly || props.displayMode === "final" || props.displayMode === "original"; + const canReview = !!props.canReview; + + return ( + + + {Device.phone && + + + + + + } + + + {canReview && + + { + props.onTrackChanges(!prev); + } + }/> + + } + {!props.isRestrictedEdit && + + } + + + + + + {canReview && !props.canUseReviewPermissions && + {props.onAcceptAll();}}> + + + } + {canReview && !props.canUseReviewPermissions && + {props.onRejectAll();}}> + + + } + + + ) +}; + +const DisplayMode = props => { + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const mode = props.storeReview.displayMode; + return ( + + + {Device.phone && + + + + + + } + + + { + props.onDisplayMode('markup'); + }} + > + { + props.onDisplayMode('final'); + }} + > + { + props.onDisplayMode('original'); + }} + > + + + ) +}; + +const PageReviewChange = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Common.Collaboration', {returnObjects: true}); + const change = props.change; + const displayMode = props.displayMode; + const isLockAcceptReject = (!change || (change && !change.editable) || (displayMode === "final" || displayMode === "original") || !props.canReview); + const isLockPrevNext = (displayMode === "final" || displayMode === "original"); + return ( + + + {Device.phone && + + + + + + } + + + + {!props.isReviewOnly && + + {props.onAcceptCurrentChange()}} + >{_t.textAccept} + {props.onRejectCurrentChange()}} + >{_t.textReject} + + } + {props.isReviewOnly && change && change.editable && + + {props.onDeleteChange()}}>{_t.textDelete} + + } + {props.goto && {props.onGotoNextChange()}}>} + + + {props.onPrevChange()}} + className={isLockPrevNext && 'disabled'} + > + {props.onNextChange()}} + className={isLockPrevNext && 'disabled'} + > + + + {change ? +
+
+ {isAndroid && +
{change.initials}
+ } +
+
{change.userName}
+
{change.date}
+
+
+
{change.text}
+
: +
{_t.textNoChanges}
+ } +
+ ) +}; + +const PageDisplayMode = inject("storeReview")(observer(DisplayMode)); + +export {PageReview, PageDisplayMode, PageReviewChange}; \ No newline at end of file diff --git a/apps/common/mobile/resources/img/themes/themes.png b/apps/common/mobile/resources/img/themes/themes.png new file mode 100644 index 000000000..fd3d77c53 Binary files /dev/null and b/apps/common/mobile/resources/img/themes/themes.png differ diff --git a/apps/common/mobile/resources/less/_mixins.less b/apps/common/mobile/resources/less/_mixins.less index 9e206f133..139fa586b 100644 --- a/apps/common/mobile/resources/less/_mixins.less +++ b/apps/common/mobile/resources/less/_mixins.less @@ -1,6 +1,16 @@ // Encoded SVG Background -.encoded-svg-mask(@svg) { +.encoded-svg-mask(@svg, @color: @themeColor) { @url: `encodeURIComponent(@{svg})`; - background-color: @themeColor; + background-color: @color; -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,@{url}"); +} + +.encoded-svg-uncolored-mask(@svg) { + @url: `encodeURIComponent(@{svg})`; + -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,@{url}"); +} + +.encoded-svg-background(@svg) { + @url: `encodeURIComponent(@{svg})`; + background-image: url("data:image/svg+xml;charset=utf-8,@{url}"); } \ No newline at end of file diff --git a/apps/common/mobile/resources/less/about.less b/apps/common/mobile/resources/less/about.less new file mode 100644 index 000000000..7234dcb25 --- /dev/null +++ b/apps/common/mobile/resources/less/about.less @@ -0,0 +1,41 @@ +@text-normal: #000; + +.about { + .page-content { + text-align: center; + } + + .content-block:first-child { + margin: 15px 0; + } + + .content-block { + margin: 0 auto 15px; + + a { + color: @text-normal; + } + } + + h3 { + font-weight: normal; + margin: 0; + + &.vendor { + color: @text-normal; + font-weight: bold; + margin-top: 15px; + } + } + + p > label { + margin-right: 5px; + } + + .logo { + display: inline-block; + width: 100%; + height: 55px; + background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center; + } +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/collaboration.less b/apps/common/mobile/resources/less/collaboration.less new file mode 100644 index 000000000..b7429dc4d --- /dev/null +++ b/apps/common/mobile/resources/less/collaboration.less @@ -0,0 +1,5 @@ +.coauth__list__icon { + width: 20px; + height: 20px; + border-radius: 10px; +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/comments.less b/apps/common/mobile/resources/less/comments.less new file mode 100644 index 000000000..bf433122a --- /dev/null +++ b/apps/common/mobile/resources/less/comments.less @@ -0,0 +1,204 @@ +@comment-date: #6d6d72; +@swipe-icon: rgba(0, 0, 0, 0.12); + +@import './ios/comments'; +@import './material/comments'; + +.wrap-comment { + padding: 16px 24px 0 16px; + .name { + font-weight: 600; + font-size: 16px; + } + .wrap-textarea { + margin-top: 6px; + textarea { + font-size: 14px; + margin-top: 0; + min-height: 100px; + padding: 5px 0; + } + } +} +#add-comment-dialog, #edit-comment-dialog, #add-reply-dialog, #edit-reply-dialog { + .dialog { + --f7-dialog-width: 400px; + z-index: 13700; + .dialog-inner { + padding: 0; + height: 400px; + .wrap-comment { + .name, .comment-date, .reply-date { + text-align: left; + } + .wrap-textarea { + textarea { + color: @black; + width: 100%; + } + } + } + } + } +} + +.comment-list { + .item-content .item-inner { + padding-right: 0; + padding-bottom: 0; + padding-top: 16px; + .comment-header { + display: flex; + justify-content: space-between; + padding-right: 16px; + .right { + display: flex; + justify-content: space-between; + width: 70px; + } + } + .reply-header { + display: flex; + justify-content: space-between; + padding-right: 16px; + } + } + .item-title { + width: 100%; + } + .user-name { + font-size: 16px; + line-height: 22px; + color: @black; + margin: 0; + font-weight: 700; + } + .comment-date, .reply-date { + font-size: 12px; + line-height: 18px; + color: @comment-date; + margin: 0; + } + .comment-quote { + color: @themeColor; + border-left: 1px solid @themeColor; + padding-left: 10px; + padding-right: 16px; + margin: 5px 0; + font-size: 14px; + } + .comment-text, .reply-text { + color: @black; + font-size: 14px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; + pre { + white-space: pre-wrap; + overflow-wrap: break-word; + } + } + .reply-list { + padding-left: 26px; + } +} + +.edit-comment-popup, .add-reply-popup, .edit-reply-popup { + z-index: 20000; +} + +#view-comment-sheet { + background-color: @white; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + height: 45%; + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.2), 0 4px 5px rgba(0, 0, 0, 0.12); + webkit-transition: height 200ms; + transition: height 200ms; + .top { + height: 90%; + } + .swipe-container { + display: flex; + justify-content: center; + height: 40px; + .icon-swipe { + margin-top: 8px; + width: 40px; + height: 4px; + background: @swipe-icon; + border-radius: 2px; + } + } +} + +#view-comment-popover, #view-comment-sheet { + .toolbar { + position: fixed; + background-color: @white; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); + .link { + --f7-toolbar-link-color: @themeColor; + } + .toolbar-inner { + padding: 0 16px; + } + .btn-add-reply { + padding: 0; + min-width: 80px; + font-size: 16px; + } + .comment-navigation { + min-width: 62px; + display: flex; + justify-content: space-between; + .link { + padding: 0 12px; + } + } + } +} + +#view-comment-popover { + background-color: @white; + .page .page-content { + padding: 16px; + padding-left: 0; + } + .comment-list { + .item-content { + .item-inner { + .comment-header, .reply-header { + padding-right: 0; + } + } + } + } +} + +.page-current-comment { + position: relative; + .page-content { + background-color: @white; + } + .comment-list { + ul { + &:before, &:after { + content: none; + } + .item-content .item-inner { + padding-top: 0; + .reply-list .item-content .item-inner { + padding-top: 13px; + } + } + } + } +} + +.dialog-backdrop.backdrop-in { + &.over-popover { + z-index: 13600; + } +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/common-ios.less b/apps/common/mobile/resources/less/common-ios.less new file mode 100644 index 000000000..5bea40077 --- /dev/null +++ b/apps/common/mobile/resources/less/common-ios.less @@ -0,0 +1,540 @@ + +.device-ios { + @blockTitleColor: #6d6d72; + @item-border-color: #c8c7cc; + --f7-list-item-border-color: @item-border-color; + @darkGreen: #40865c; + + --f7-navbar-link-color: @themeColor; + --f7-subnavbar-link-color: @themeColor; + --f7-navbar-text-color: @black; + --f7-navbar-title-line-height: 44px; + --f7-navbar-link-line-height: 44px; + --f7-navbar-title-font-size: 17px; + + --f7-list-bg-color: @white; + --f7-navbar-bg-color: #f7f7f8; + + --f7-tabbar-link-inactive-color: @themeColor; + + --f7-radio-active-color: @themeColor; + --f7-toggle-active-color: @themeColor; + --f7-range-bar-active-bg-color: @themeColor; + + --f7-list-button-text-color: @themeColor; + + --f7-dialog-button-text-color: @themeColor; + + // Main Toolbar + #editor-navbar.navbar .right a + a, + #editor-navbar.navbar .left a + a { + margin-left: 0; + } + + .navbar, .subnavbar { + a.btn-doc-back { + width: 22px; + } + background-color: var(--f7-navbar-bg-color); + .title { + font-weight: 600; + } + .navbar-inner, .subnavbar-inner { + z-index: auto; + } + .sheet-close { + width: 44px; + height: 44px; + display: flex; + justify-content: center; + } + } + + .popover__titled { + .list { + ul { + background-color: var(--f7-list-bg-color); + li:first-child, li:last-child { + border-radius: 0; + a { + border-radius: 0; + } + } + } + &:first-child, &:last-child { + ul { + border-radius: 0; + } + + li:first-child, li:last-child { + > label { + border-radius: 0; + } + } + } + } + + .popover-inner { + //border-radius: var(--f7-popover-border-radius); + + > .view { + border-radius: var(--f7-popover-border-radius); + } + } + + .navbar-bg { + //-webkit-backdrop-filter: none; + backdrop-filter: none; + } + + .list:first-child { + li:first-child { + a { + border-radius: 0; + } + } + } + + .list:last-child { + li:last-child { + a { + //border-radius: 0; + } + + &:after { + content: ''; + position: absolute; + background-color: var(--f7-navbar-border-color, var(--f7-bars-border-color)); + display: block; + //z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } + } + } + } + + // Bullets and numbers + .bullets, + .numbers { + .page-content { + background: @white; + } + + .row { + justify-content: space-around; + } + + ul { + margin-top: 10px; + } + + li { + width: 70px; + height: 70px; + margin-right: 1px; + border: 1px solid #c4c4c4; + html.pixel-ratio-2 & { + border: 0.5px solid #c4c4c4; + } + html.pixel-ratio-3 & { + border: 0.33px solid #c4c4c4; + } + + .thumb { + width: 100%; + height: 100%; + background-color: @white; + background-size: cover; + + label { + width: 100%; + text-align: center; + position: absolute; + top: 34%; + } + } + } + } + + .popover { + li:last-child { + .segmented a { + &:first-child { + border-radius: var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius); + } + + &:last-child { + border-radius: 0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0; + } + } + } + + .page-content { + > .list { + &:last-child { + margin-bottom: 30px; + } + } + } + } + + .list { + .item-content { + .color-preview { + width: 22px; + height: 8px; + display: inline-block; + margin-top: 21px; + box-sizing: border-box; + box-shadow: 0 0 0 1px rgba(0, 0, 0, .15) inset; + &.auto { + background-color: @autoColor; + } + } + .item-after { + .color-preview { + width: 75px; + height: 30px; + margin-top: -3px; + } + } + } + li.no-indicator { + .item-link { + .item-inner { + padding-right: 15px; + &:before { + content: none; + } + } + } + } + .item-inner { + padding-top: 7px; + .item-after { + color: @black; + .after-start { + margin: 0 5px; + } + .segmented { + min-width: 90px; + margin-left: 10px; + } + } + } + .buttons { + .item-inner { + padding-top: 0; + padding-bottom: 0; + align-items: stretch; + > .row { + width: 100%; + align-items: stretch; + .button { + flex: 1; + border: none; + height: inherit; + border-radius: 0; + font-size: 17px; + display: flex; + align-items: center; + justify-content: center; + } + } + } + } + .list-input-right input { + text-align: right; + } + } + + .tab-buttons { + width: 100%; + display: flex; + flex-wrap: nowrap; + align-self: center; + .tab-link { + display: block; + width: 100%; + line-height: 26px; + position: relative; + overflow: hidden; + -webkit-box-flex: 1; + border: 1px solid @themeColor; + text-decoration: none; + text-align: center; + margin: 0; + padding: 0 1px; + height: 29px; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 14px; + font-family: inherit; + cursor: pointer; + outline: 0; + font-weight: 600; + &:first-child { + border-radius: 5px 0 0 5px; + border-left-width: 1px; + border-left-style: solid; + } + &:last-child { + border-radius: 0 5px 5px 0; + } + &.tab-link-active { + background: @themeColor; + color: @white; + } + } + } + + .button { + border: 1px solid @themeColor; + color: @themeColor; + text-decoration: none; + text-align: center; + display: block; + border-radius: 5px; + line-height: 27px; + box-sizing: border-box; + background: 0 0; + padding: 0 10px; + margin: 0; + height: 29px; + white-space: nowrap; + position: relative; + overflow: hidden; + text-overflow: ellipsis; + font-size: 14px; + font-family: inherit; + cursor: pointer; + outline: 0; + &.active { + background: @themeColor; + color: @white; + i.icon { + background-color: @white; + } + } + } + + .button-fill { + color: @themeColor; + background-color: @white; + } + + .button-red { + color: @red; + background-color: @white; + } + + .buttons-list { + li { + border: 0; + border-radius: 0; + height: 43px; + min-height: 43px; + font-size: 17px; + text-transform: initial; + padding: 0; + box-shadow: none; + } + } + + .button-red .list-button { + color: red; + } + + .block-title { + position: relative; + overflow: hidden; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 14px; + text-transform: uppercase; + line-height: 1; + color: @blockTitleColor; + margin: 35px 15px 10px; + } + + .shapes { + .page-content { + background: @white; + } + } + + .dialog { + background-color: rgba(var(--f7-dialog-bg-color-rgb), 1); + } + + #color-picker { + .right-block { + .button-round { + .icon { + height: 30px; + width: 30px; + } + } + } + } + + .about { + .logo { + margin-top: 20px; + } + } + + .content-block { + color: @blockTitleColor; + } + + .dataview, #add-table, #add-shape, #add-slide, #add-chart { + &.page-content, .page-content { + background-color: @white; + } + } + + // input[type="number"] + + input[type="number"] { + &::placeholder, + &::-webkit-input-placeholder, + &::-moz-placeholder, + &:-moz-placeholder, + &:-ms-input-placeholder + { + color: @darkGreen; + } + } + + // Regional Settings + + .regional-settings { + .item-title-row { + display: flex; + justify-content: flex-start; + align-items: center; + .item-title { + margin-left: 20px; + white-space: normal; + } + } + } + + // Find and Replace + + .navbar { + .searchbar { + background: var(--f7-navbar-bg-color); + } + .searchbar-input-wrap { + margin-right: 10px; + height: 28px; + } + .buttons-row-replace a { + color: @themeColor; + } + } + + .searchbar input[type=search] { + box-sizing: border-box; + width: 100%; + height: 100%; + display: block; + border: none; + appearance: none; + border-radius: 5px; + font-family: inherit; + color: @black; + font-size: 14px; + font-weight: 400; + padding: 0 8px; + background-color: @white; + padding: 0 28px; + } + + .searchbar-inner { + &__left { + margin-right: 10px; + justify-content: center; + } + &__right { + .buttons-row a.next { + margin-left: 15px; + } + } + } + + .searchbar-expandable.searchbar-enabled { + &.replace { + .searchbar-inner { + &__right { + width: 28%; + } + } + } + } + + @media(max-width: 550px) { + .navbar { + .searchbar-input-wrap { + margin-right: 0; + } + } + .searchbar-expandable.searchbar-enabled { + top: 0; + .searchbar-inner { + &__center { + flex-direction: column; + } + &__right { + flex-direction: column-reverse; + margin-left: 10px; + } + } + &.replace { + height: 88px; + .searchbar-inner { + height: 100%; + &__center { + .searchbar-input-wrap { + margin: 8px 0; + } + } + &__right { + width: auto; + height: 100%; + justify-content: space-between; + .buttons-row-replace { + height: 50%; + } + } + } + } + } + } + + .actions-button { + background: rgba(255,255,255,.95); + } + + .actions-button-text { + height: 57px; + line-height: 57px; + font-size: 20px; + color: @themeColor; + white-space: normal; + text-overflow: ellipsis; + } +} diff --git a/apps/common/mobile/resources/less/common-material.less b/apps/common/mobile/resources/less/common-material.less new file mode 100644 index 000000000..512fe7a08 --- /dev/null +++ b/apps/common/mobile/resources/less/common-material.less @@ -0,0 +1,464 @@ + +.device-android { + @tabLinkColor: rgba(255,255,255,.7); + @red: #f44336; + @white: #fff; + @darkGreen: #40865c; + @darkGrey: #757575; + + --f7-navbar-shadow-image: none; + + --f7-navbar-bg-color: @themeColor; + --f7-navbar-link-color: @navBarIconColor; + --f7-navbar-text-color: @navBarIconColor; + --f7-navbar-height: 56px; + + --f7-subnavbar-bg-color: @themeColor; + --f7-subnavbar-link-color: @navBarIconColor; + --f7-subnavbar-text-color: @navBarIconColor; + --f7-subnavbar-height: 56px; + + --f7-radio-active-color: @themeColor; + --f7-toggle-active-color: @themeColor; + --f7-range-bar-active-bg-color: @themeColor; + --f7-range-knob-color: @themeColor; + --f7-range-knob-size: 16px; + + --f7-link-highlight-color: transparent; + --f7-touch-ripple-color: rgba(255,255,255,0.1); + + --f7-input-focused-border-color: @themeColor; + --f7-label-focused-text-color: @themeColor; + + --f7-dialog-button-text-color: @themeColor; + + .navbar { + .sheet-close { + width: 56px; + height: 56px; + display: flex; + justify-content: center; + } + } + + .page.page-with-subnavbar.page-with-logo { + .page-content { + --f7-page-navbar-offset: var(--f7-navbar-height); + } + } + + // Buttons + .segmented { + .decrement, .increment { + display: flex; + border: none; + min-width: 40px; + margin-left: 0; + border-radius: 0; + height: 32px; + } + label { + color: @black; + margin: 0 5px; + line-height: 32px; + } + } + .button { + --f7-button-text-color: @themeColor; + color: @themeColor; + text-align: center; + display: block; + border-radius: 2px; + line-height: 36px; + box-sizing: border-box; + appearance: none; + background: 0 0; + margin: 0; + height: 36px; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 14px; + text-transform: uppercase; + font-family: inherit; + cursor: pointer; + min-width: 64px; + padding: 0 8px; + position: relative; + overflow: hidden; + outline: 0; + -webkit-transition-duration: .3s; + transition-duration: .3s; + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + .button-fill { + color: @white; + background-color: @themeColor; + } + + .button-raised { + box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24); + } + + .button-red { + color: @white; + background-color: @red; + } + + .buttons-list { + li { + margin: 20px 16px; + color: @white; + border-radius: 2px; + text-transform: uppercase; + height: 36px; + min-height: 36px; + font-size: 14px; + } + } + + .table-presets { + .button { + min-width: 0; + } + } + .button-fill .list-button { + background-color: @themeColor; + color: @white; + height: 36px; + text-align: center; + line-height: 36px; + text-transform: uppercase; + font-size: 14px; + font-weight: 500; + border-radius: 2px; + margin: 20px 16px; + } + .button-raised .list-button { + box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24); + } + .button-red .list-button { + background-color: @red; + } + // Tabs + .tab-buttons { + position: relative; + display: flex; + height: 100%; + width: 100%; + justify-content: space-between; + .tab-link { + justify-content: center; + height: 100%; + box-sizing: border-box; + padding-left: 0; + padding-right: 0; + font-size: 14px; + font-weight: 500; + text-transform: uppercase; + align-items: center; + color: @tabLinkColor; + i.icon { + opacity: 0.5; + } + &.tab-link-active { + color: @white; + i.icon { + opacity: 1; + } + } + } + .tab-link-highlight { + --f7-tabbar-link-active-border-color: rgba(255,255,255,0.5); + position: absolute; + left: 0; + bottom: 0; + height: 3px; + } + } + // List + .list { + li.no-indicator { + .item-link { + .item-inner{ + padding-right: 15px; + &:before { + content: none; + } + } + } + } + .item-link { + .item-inner { + .item-after { + color: @black; + } + } + } + &.inputs-list { + .item-input, .item-link { + .item-inner { + display: block; + .item-title, .item-label { + width: 100%; + font-size: 12px; + } + .item-input-wrap { + margin-left: 0; + } + } + } + } + .buttons { + box-sizing: border-box; + min-height: 48px; + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + .item-content { + width: 100%; + .item-inner { + padding-bottom: 0; + padding-top: 0; + .row { + width: 100%; + .button { + flex: 1; + font-size: 17px; + margin-left: 5px; + &:first-child { + margin-left: 0; + } + &.active { + color: @white; + background-color: @themeColor; + i.icon { + background-color: @white; + } + } + } + } + } + } + } + .item-content { + .color-preview { + width: 30px; + height: 30px; + border-radius: 16px; + margin-top: -3px; + box-shadow: 0 0 0 1px rgba(0, 0, 0, .15) inset; + &.auto { + background-color: @autoColor; + } + } + } + } + // Bullets and numbers + .bullets, + .numbers { + .page-content { + background: @white; + } + + .row { + justify-content: space-around; + } + + ul { + margin-top: 10px; + } + + li { + width: 70px; + height: 70px; + margin-right: 1px; + border: 1px solid @gray; + html.pixel-ratio-2 & { + border: 0.5px solid @gray; + } + html.pixel-ratio-3 & { + border: 0.33px solid @gray; + } + + .thumb { + width: 100%; + height: 100%; + background-color: @white; + background-size: cover; + + label { + width: 100%; + text-align: center; + position: absolute; + top: 34%; + } + } + } + } + .popover__titled { + .list:last-child { + li:last-child { + a { + border-radius: 0; + } + } + } + } + + // Color palette + + #color-picker { + .right-block { + .button-round { + background-color: @themeColor; + } + } + } + + // Regional Settings + + .regional-settings { + .list { + .item-inner { + margin-left: 16px; + } + .item-title-row { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + flex-direction: row-reverse; + .item-title { + white-space: normal; + } + } + } + } + + // Find and Replace + + .searchbar-inner { + &__center { + flex-wrap: wrap; + } + // &__left { + // padding-top: 4px; + // } + } + + .navbar { + .searchbar-input-wrap { + height: 32px; + margin-right: 10px; + margin: 4px 0; + } + &-inner { + overflow: initial; + } + } + + .searchbar .input-clear-button { + width: 18px; + height: 18px; + &:after { + color: @white; + font-size: 19px; + } + } + + .searchbar-icon { + &:after { + color: @white; + font-size: 19px; + } + } + + .searchbar input[type=search] { + box-sizing: border-box; + width: 100%; + display: block; + border: none; + appearance: none; + border-radius: 0; + font-family: inherit; + color: @white; + font-size: 16px; + font-weight: 400; + padding: 0; + border-bottom: 1px solid @white; + height: 100%; + padding: 0 36px 0 24px; + background-color: transparent; + background-repeat: no-repeat; + background-position: 0 center; + opacity: 1; + background-size: 24px 24px; + transition-duration: .3s; + .encoded-svg-background(''); + } + + .searchbar input[type=search]::placeholder { + color: @white; + } + + .navbar { + .searchbar-expandable.searchbar-enabled { + top: 0; + // height: 100%; + .searchbar-inner { + height: 100%; + &__center { + flex-direction: column; + } + &__right { + flex-direction: column-reverse; + } + } + &.replace { + height: 96px; + } + } + a.link { + padding: 0 16px; + } + a.icon-only { + width: auto; + height: 56px; + } + .buttons-row-replace a { + color: @white; + padding: 0; + } + .searchbar .buttons-row { + align-self: flex-start; + } + } + + @media(max-width: 550px) { + .searchbar-expandable.searchbar-enabled { + .searchbar-inner { + &__left { + margin-right: 33px; + } + } + } + } + + .actions-button-text { + cursor: pointer; + line-height: 48px; + font-size: 16px; + color: rgba(0,0,0,.87); + } + + @media (min-width: 496px) { + .actions-modal { + width: 100%; + left: auto; + margin-left: 0; + } + } +} diff --git a/apps/common/mobile/resources/less/common.less b/apps/common/mobile/resources/less/common.less new file mode 100644 index 000000000..51ddd56ca --- /dev/null +++ b/apps/common/mobile/resources/less/common.less @@ -0,0 +1,775 @@ +@import './about'; + +@white: #ffffff; +@black: #000000; +@gray: #c4c4c4; +@darkGray: #6d6d72; +@green: #4cd964; +@red: #f00; +@autoColor: @black; + +.navbar.main-navbar { + height: 0; + &.navbar-with-logo { + height: 26px; + } + .navbar-inner { + display: flex; + justify-content: center; + padding-top: 8px; + } + .navbar-bg { + &:before, &:after { + content: none; + } + } +} + +.navbar { + .title { + text-overflow: initial; + white-space: normal; + } +} + +.subnavbar { + .subnavbar-inner { + padding: 0; + } +} + +.page.page-with-subnavbar { + .page-content { + --f7-page-subnavbar-offset: 0px; + } + &.page-with-logo .page-content { + --f7-page-subnavbar-offset: 26px; + } +} + +.popup, .popover, .sheet-modal { + .list { + &:first-child { + margin-top: 0; + } + .inner-range-title { + padding: 15px 0 0 15px; + } + } + .page-content { + &.no-padding-top { + padding-top: 0; + } + } +} + +.disabled, [disabled] { + opacity: .55; + pointer-events: none; +} + +.text-content { + padding: 14px 10px 0 10px; +} + +.list { + .item-text { + text-overflow: initial; + white-space: normal; + height: auto; + max-height: initial; + -webkit-line-clamp: initial; + } +} + +.shapes { + li { + width: 70px; + height: 70px; + margin: 0 1px; + + .thumb { + width: 100%; + height: 100%; + background-color: @themeColor; + } + } +} + +.chart-types { + width: 100%; + .row { + padding: 0 10px; + } + li { + width: 60px; + height: 60px; + margin: 6px; + + .thumb { + width: 100%; + height: 100%; + background-size: contain; + } + } +} + +.chart-styles { + .row { + li { + margin: 0; + padding: 1px; + } + img { + width: 50px; + height: 50px; + } + } +} + +.segmented { + .decrement, .increment { + text-overflow: clip; + } +} + +.about { + .content-block { + margin: 0 auto 15px; + a { + color: @black; + } + } +} + +.content-block { + margin: 32px 0; + padding: 0 16px; + box-sizing: border-box; +} + + +// Color Schemes + +.color-schemes-menu { + cursor: pointer; + display: block; + background-color: @white; + .item-inner { + justify-content: flex-start; + } + .color-schema-block { + display: flex; + } + .color { + min-width: 26px; + min-height: 26px; + margin: 0 2px 0 0; + box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset; + } + .item-title { + margin-left: 20px; + color: #212121; + } +} + + +// Layout + +.slide-layout { + &__list { + margin: auto; + } + ul { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + } + li { + position: relative; + z-index: 1; + margin-top: 12px; + img { + box-shadow: 0 0 0 1px rgba(0,0,0,.15); + } + } + .item-inner { + padding-top: 0; + } + .item-inner:after { + display: none; + } + .item-inner:before { + opacity: 0; + content: ''; + position: absolute; + width: 22px; + height: 22px; + right: 11px; + bottom: 0; + z-index: 1; + background-repeat: no-repeat; + .encoded-svg-background(''); + } + .active .item-inner:before { + opacity: 1; + } +} + +// Theme + +.slide-theme { + &__list { + margin: auto; + ul { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + padding-left: 18px; + padding-right: 18px; + padding-bottom: 14px; + } + } + .item-inner:after { + display: none; + } + .item-theme { + position: relative; + margin: 0; + box-shadow: 0 0 0 1px rgba(0,0,0,.15); + width: 88px; + height: 40px; + margin-top: 14px; + background-image: url(../img/themes/themes.png); + display: block; + } + .item-theme.active:before { + content: ''; + position: absolute; + width: 22px; + height: 22px; + right: -5px; + bottom: -5px; + z-index: 1; + .encoded-svg-background(''); + } +} + +// Transition + +.slide-transition { + .splitter { + display: flex; + align-items: center; + color: @black; + label { + margin: 0 5px; + } + } + .buttons-row { + display: flex; + margin: 0; + min-width: 90px; + margin-left: 10px; + .button { + width: 100%; + } + .button:first-child { + border-radius: 5px 0 0 5px; + border-left-width: 1px; + border-left-style: solid; + } + .button:last-child { + border-radius: 0 5px 5px 0; + } + } +} + +.style-effect, .style-type { + .list .item-title { + font-weight: normal; + } +} + +.range-slider-delay { + width: 100%; + margin: 4px 0 5px 0; + appearance: none; + background: linear-gradient(to right,#b7b8b7 0,#b7b8b7 100%); + background-position: center; + background-size: 100% 2px; + background-repeat: no-repeat; + outline: 0; + border: none; + box-sizing: content-box; + &:disabled { + opacity: .55; + } + &::-webkit-slider-thumb { + appearance: none; + height: 28px; + width: 28px; + border-radius: 50%; + background: @white; + cursor: pointer; + box-shadow: 0 2px 4px rgba(0, 0, 0, .3); + } + &::-ms-thumb { + appearance: none; + height: 28px; + width: 28px; + border-radius: 50%; + background: @white; + cursor: pointer; + box-shadow: 0 2px 4px rgba(0, 0, 0, .3); + } +} + +.buttons-list { + ul { + &::before, &::after { + display: none; + } + li { + border: 0; + font-weight: normal; + .item-link { + height: 100%; + .item-content { + min-height: initial; + height: 100%; + padding: 0; + } + .item-inner { + justify-content: center; + align-items: center; + padding: 0; + min-height: initial; + &::before { + display: none; + } + } + } + } + } +} + +.item-color-auto { + .color-auto { + width: 22px; + height: 22px; + background-color: @autoColor; + } + &.active { + .color-auto { + box-shadow: 0 0 0 1px @white, 0 0 0 4px @themeColor; + border-radius: 1px; + } + } +} + +.color-palettes { + .palette { + padding: 8px 0px; + a { + flex-grow: 1; + position: relative; + min-width: 10px; + min-height: 26px; + margin: 1px 1px 0 0; + box-shadow: 0 0 0 1px rgba(0, 0, 0, .15) inset; + &.active:after { + content: ' '; + position: absolute; + width: 100%; + height: 100%; + box-shadow: 0 0 0 1px @white, 0 0 0 4px @themeColor; + z-index: 1; + border-radius: 1px; + } + &.transparent { + background-repeat: no-repeat; + background-size: 100% 100%; + .encoded-svg-background(""); + } + } + } + .row { + padding: 0; + } + .list .item-inner { + display: block; + } + .standart-colors, .dynamic-colors { + .palette { + display: flex; + } + } + + .dynamic-colors { + .empty-color { + background-color: @white; + } + } +} + +#color-picker { + display: flex; + justify-content: space-around; + align-items: center; + max-width: 300px; + margin: 0 auto; + margin-top: 4px; + .color-picker-container { + width: calc(100% - 94px); + position: relative; + max-width: 100%; + height: auto; + font-size: 0; + .color-picker-module-wheel { + margin: 0; + } + } + .right-block { + margin-left: 20px; + .color-hsb-preview { + width: 72px; + height: 72px; + border-radius: 100px; + overflow: hidden; + border: 1px solid @gray; + .new-color-hsb-preview, .current-color-hsb-preview { + width: 100%; + height: 36px; + } + } + .button-round { + height: 72px; + width: 72px; + padding: 0; + display: flex; + justify-content: center; + align-items: center; + border-radius: 100px; + background-color: @white; + box-shadow: 0 4px 4px rgba(0,0,0,.25); + border-color: transparent; + margin-top: 20px; + } + } +} + +// Table styles + +.table-styles { + width: 100%; + .row { + &, li { + margin-bottom: 12px; + } + } + + li, + .row div { + margin: 0; + padding: 1px; + + img { + width: 70px; + height: 50px; + } + } +} + +// Cell styles + +.cell-styles-list { + ul { + display: flex; + justify-content: space-around; + flex-wrap: wrap; + padding-left: 5px; + padding-right: 5px; + padding-top: 5px; + } + li { + border: 0.5px solid #c8c7cc; + padding: 2px; + background-repeat: no-repeat; + width: 106px; + height: 56px; + margin-bottom: 10px; + background-position: center; + } + .item-inner:after { + display: none; + } + .item-theme.active:before { + content: ''; + position: absolute; + width: 22px; + height: 22px; + right: 2px; + bottom: 2px; + z-index: 1; + .encoded-svg-background(''); + } +} + +// input[type="number"] + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +// Regional Settings + +.icon.lang-flag { + background-size: 48px auto; + background-image: url(../img/controls/flags@2x.png); +} + +.icon.lang-flag { + width: 16px; + height: 12px; +} + +.lang-flag.ca, +.lang-flag.ca-ES { + background-position: 0 0; +} +.lang-flag.cs, +.lang-flag.cs-CZ { + background-position: -16px 0; +} +.lang-flag.da, +.lang-flag.da-DK { + background-position: -32px 0; +} +.lang-flag.de, +.lang-flag.de-DE { + background-position: 0 -12px; +} +.lang-flag.el, +.lang-flag.el-GR { + background-position: -16px -12px; +} +.lang-flag.en, +.lang-flag.en-US { + background-position: -32px -12px; +} +.lang-flag.fr, +.lang-flag.fr-FR { + background-position: 0 -24px; +} +.lang-flag.hu, +.lang-flag.hu-HU { + background-position: -16px -24px; +} +.lang-flag.it, +.lang-flag.it-IT { + background-position: -32px -24px; +} +.lang-flag.ko, +.lang-flag.ko-KR { + background-position: 0 -36px; +} +.lang-flag.nl, +.lang-flag.nl-NL { + background-position: -16px -36px; +} +.lang-flag.nb, +.lang-flag.nb-NO, +.lang-flag.nn, +.lang-flag.nn-NO { + background-position: -32px -36px; +} +.lang-flag.pl, +.lang-flag.pl-PL { + background-position: 0 -48px; +} +.lang-flag.pt, +.lang-flag.pt-BR { + background-position: -16px -48px; +} +.lang-flag.ro, +.lang-flag.ro-RO { + background-position: -32px -48px; +} +.lang-flag.ru, +.lang-flag.ru-RU { + background-position: 0 -60px; +} +.lang-flag.sv, +.lang-flag.sv-SE { + background-position: -32px -60px; +} +.lang-flag.tr, +.lang-flag.tr-TR { + background-position: 0 -72px; +} +.lang-flag.uk, +.lang-flag.uk-UA { + background-position: -16px -72px; +} +.lang-flag.lv, +.lang-flag.lv-LV { + background-position: -32px -72px; +} +.lang-flag.lt, +.lang-flag.lt-LT { + background-position: 0 -84px; +} +.lang-flag.vi, +.lang-flag.vi-VN { + background-position: -16px -84px; +} +.lang-flag.de-CH { + background-position: -32px -84px; +} +.lang-flag.pt-PT { + background-position: -16px -96px; +} +.lang-flag.de-AT { + background-position: -32px -96px; +} +.lang-flag.es, +.lang-flag.es-ES { + background-position: 0 -108px; +} +.lang-flag.en-GB { + background-position: -32px -108px; +} +.lang-flag.en-AU { + background-position: 0 -120px; +} +.lang-flag.az-Latn-AZ { + background-position: -16px -120px; +} +.lang-flag.id, +.lang-flag.id-ID { + background-position: -32px -120px; +} +.lang-flag.bg, +.lang-flag.bg-BG { + background-position: 0 -132px; +} +.lang-flag.ca-ES-valencia { + background-position: -16px -132px; +} +.lang-flag.en-CA { + background-position: -32px -132px; +} +.lang-flag.en-ZA { + background-position: 0 -144px; +} +.lang-flag.eu, +.lang-flag.eu-ES { + background-position: -16px -144px; +} +.lang-flag.gl, +.lang-flag.gl-ES { + background-position: -32px -144px; +} +.lang-flag.hr, +.lang-flag.hr-HR { + background-position: 0 -156px; +} +.lang-flag.lb, +.lang-flag.lb-LU { + background-position: -16px -156px; +} +.lang-flag.mn, +.lang-flag.mn-MN { + background-position: -32px -156px; +} +.lang-flag.sl, +.lang-flag.sl-SI { + background-position: 0 -168px; +} +.lang-flag.sr, +.lang-flag.sr-Cyrl-RS, +.lang-flag.sr-Latn-RS { + background-position: -16px -168px; +} +.lang-flag.sk, +.lang-flag.sk-SK { + background-position: -32px -168px; +} +.lang-flag.kk, +.lang-flag.kk-KZ { + background-position: 0 -180px; +} +.lang-flag.fi, +.lang-flag.fi-FI, +.lang-flag.sv-FI { + background-position: -16px -180px; +} +.lang-flag.zh, +.lang-flag.zh-CN { + background-position: -32px -180px; +} +.lang-flag.ja, +.lang-flag.ja-JP { + background-position: 0 -192px; +} +.lang-flag.es-MX { + background-position: -16px -192px; +} + +.checkbox-in-modal { + margin-top: 10px; + display: flex; + align-items: center; + .right-text { + margin-left: 10px; + } +} + +.username-tip { + height: 20px; + color: @white; + padding: 0 10px; + position: absolute; + z-index: 900; + display: none; + pointer-events: none; + transition: opacity 0.1ms ease-out; + opacity: 0; + &.active { + display: block; + opacity: 1; + } +} + +.dlg-adv-options { + z-index: 13700; + .content-block { + padding: 0; + } + .picker-3d { + .picker-item { + padding: 0; + text-align: left; + font-size: 16px; + span { + padding: 0; + } + } + } + .picker-center-highlight { + width: 100%; + left: 0; + right: 0; + } +} + + + + + + + + diff --git a/apps/common/mobile/resources/less/contextmenu.less b/apps/common/mobile/resources/less/contextmenu.less new file mode 100644 index 000000000..fae7b1fb6 --- /dev/null +++ b/apps/common/mobile/resources/less/contextmenu.less @@ -0,0 +1,11 @@ +@import './ios/contextmenu'; +@import './material/contextmenu'; + + +.document-menu { + width: auto; +} + +html.phone .document-menu .list-block .list-button { + padding: 0 10px; +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/dataview.less b/apps/common/mobile/resources/less/dataview.less new file mode 100644 index 000000000..104d04836 --- /dev/null +++ b/apps/common/mobile/resources/less/dataview.less @@ -0,0 +1,31 @@ +// Data view + +.dataview { + .row { + justify-content: space-around; + } + + ul { + padding: 0 10px; + list-style: none; + + li { + display: inline-block; + } + } + + .active { + position: relative; + z-index: 1; + + &::after { + content: ''; + position: absolute; + width: 22px; + height: 22px; + right: -5px; + bottom: -5px; + .encoded-svg-background(''); + } + } +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/icons.less b/apps/common/mobile/resources/less/icons.less new file mode 100644 index 000000000..234485c7a --- /dev/null +++ b/apps/common/mobile/resources/less/icons.less @@ -0,0 +1,28 @@ +@import "./ios/icons"; +@import "./material/icons"; + +i.icon { + &.icon-paste { + width: 24px; + height: 24px; + .encoded-svg-uncolored-mask(''); + } + &.icon-copy { + width: 24px; + height: 24px; + .encoded-svg-uncolored-mask(''); + } + &.icon-cut { + width: 24px; + height: 24px; + .encoded-svg-uncolored-mask(''); + } + &.icon-prev:after, &.icon-next:after { + content: none; + } + &.icon-collaboration { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } +} diff --git a/apps/common/mobile/resources/less/ios/comments.less b/apps/common/mobile/resources/less/ios/comments.less new file mode 100644 index 000000000..0f25bb353 --- /dev/null +++ b/apps/common/mobile/resources/less/ios/comments.less @@ -0,0 +1,24 @@ +.device-ios { + .comment-list { + .reply-item { + .item-inner:after { + content: none !important; + } + &:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + } + } + } +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/ios/contextmenu.less b/apps/common/mobile/resources/less/ios/contextmenu.less new file mode 100644 index 000000000..24fc89164 --- /dev/null +++ b/apps/common/mobile/resources/less/ios/contextmenu.less @@ -0,0 +1,102 @@ + +.device-ios { + .document-menu { + @contextMenuBg: rgba(0, 0, 0, 0.9); + @modalHairlineColor: rgba(230, 230, 230, 0.9); + @modalButtonColor: rgba(200, 200, 200, 0.9); + + background-color: @contextMenuBg; + border-radius: 8px; + + .popover-angle { + &:after { + background: @contextMenuBg; + } + } + + .list-block { + font-size: 14px; + white-space: pre; + + &:first-child { + ul { + .hairline-remove(left); + //border-radius: 7px 0 0 7px; + } + + li:first-child a { + //border-radius: 7px 0 0 7px; + border-radius: 0; + } + } + + //&:last-child { + // ul { + // .hairline-remove(right); + // border-radius: 0 7px 7px 0; + // } + // li:last-child a{ + // border-radius: 0 7px 7px 0; + // } + //} + + //&:first-child:last-child { + // li:first-child:last-child a, ul:first-child:last-child { + // border-radius: 7px; + // } + //} + + .item-link { + display: inline-block; + + html:not(.watch-active-state) &:active, &.active-state { + //.transition(0ms); + background-color: #d9d9d9; + .item-inner { + .hairline-color(right, transparent); + } + } + + html.phone & { + padding: 0 10px; + } + } + + .list-button { + color: @white; + line-height: 36px; + + .hairline(right, @modalHairlineColor); + } + + // List items + li { + display: inline-flex; + } + + // Last-childs + li { + &:last-child { + .list-button { + .hairline-remove(right); + } + } + + &:last-child, &:last-child li:last-child { + .item-inner { + .hairline-remove(right); + } + } + + li:last-child, &:last-child li { + .item-inner { + .hairline(right, @modalHairlineColor); + } + } + } + + //.no-hairlines(); + //.no-hairlines-between() + } + } +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/ios/icons.less b/apps/common/mobile/resources/less/ios/icons.less new file mode 100644 index 000000000..6022b7bf3 --- /dev/null +++ b/apps/common/mobile/resources/less/ios/icons.less @@ -0,0 +1,28 @@ +.device-ios { + i.icon { + &.icon_mask { + background-color: white; + } + &.icon-logo { + width: 100px; + height: 14px; + background: url('../../img/header/logo-ios.svg') no-repeat center; + } + &.icon-prev { + width: 22px; + height: 22px; + .encoded-svg-background(''); + &:after { + display: none; + } + } + &.icon-next { + width: 22px; + height: 22px; + .encoded-svg-background(''); + &:after { + display: none; + } + } + } +} diff --git a/apps/common/mobile/resources/less/material/comments.less b/apps/common/mobile/resources/less/material/comments.less new file mode 100644 index 000000000..90a0f1cfe --- /dev/null +++ b/apps/common/mobile/resources/less/material/comments.less @@ -0,0 +1,88 @@ +.device-android { + .wrap-comment, .comment-list, .reply-list { + .comment-header, .reply-header { + display: flex; + .initials { + border-radius: 50px; + color: @white; + display: flex; + justify-content: center; + align-items: center; + margin-right: 10px; + font-size: 14px; + } + } + } + + .wrap-comment { + .comment-header { + align-items: center; + .initials { + height: 30px; + width: 30px; + } + } + .wrap-textarea { + .input:not(.input-outline):after { + content: none; + } + } + } + + #add-comment-dialog, #edit-comment-dialog, #add-reply-dialog, #edit-reply-dialog { + .dialog { + --f7-dialog-text-color: @black; + .done { + padding-right: 6px; + } + } + } + + .comment-list { + ul:after, .item-inner:after, li:last-child li .item-inner:after { + content: none; + } + .comment-header { + .left { + display: flex; + align-items: center; + .initials { + width: 40px; + height: 40px; + font-size: 18px; + } + } + } + } + .reply-list { + .reply-header { + .left { + display: flex; + .initials { + margin-top: 5px; + width: 24px; + height: 24px; + font-size: 11px; + } + } + } + } + + .edit-comment-popup, .edit-reply-popup, #edit-comment-dialog, #edit-reply-dialog { + .wrap-comment { + .comment-header, .reply-header { + .initials { + height: 40px; + width: 40px; + } + } + } + } + + #view-comment-popover { + .toolbar-bottom:after { + content: none; + } + } + +} \ No newline at end of file diff --git a/apps/common/mobile/resources/less/material/contextmenu.less b/apps/common/mobile/resources/less/material/contextmenu.less new file mode 100644 index 000000000..95476f42a --- /dev/null +++ b/apps/common/mobile/resources/less/material/contextmenu.less @@ -0,0 +1,32 @@ + +.md { + .document-menu { + //line-height: 1 !important; + + .popover-inner { + overflow: hidden; + } + + .list-block { + white-space: pre; + + ul { + height: 48px; + } + + li { + display: inline-block; + } + + .list-button { + color: #212121; + } + + //.item-link { + // html.phone & { + //padding: 0 10px; + //} + //} + } + } +} diff --git a/apps/common/mobile/resources/less/material/icons.less b/apps/common/mobile/resources/less/material/icons.less new file mode 100644 index 000000000..d13a8b631 --- /dev/null +++ b/apps/common/mobile/resources/less/material/icons.less @@ -0,0 +1,37 @@ +.device-android { + i.icon { + &.icon_mask { + background-color: black; + } + &.icon-logo { + width: 100px; + height: 14px; + background: url('../../img/header/logo-android.svg') no-repeat center; + } + &.icon-prev { + width: 20px; + height: 20px; + .encoded-svg-background(''); + &:after { + display: none; + } + } + &.icon-next { + width: 20px; + height: 20px; + .encoded-svg-background(''); + &:after { + display: none; + } + } + } + .navbar { + i.icon { + &.icon-collaboration { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + } +} diff --git a/apps/common/mobile/resources/less/search.less b/apps/common/mobile/resources/less/search.less new file mode 100644 index 000000000..f322929d1 --- /dev/null +++ b/apps/common/mobile/resources/less/search.less @@ -0,0 +1,75 @@ +@statusBarBorderColor: #cbcbcb; + +.navbar { + .searchbar { + background-color: var(--f7-navbar-bg-color); + + .buttons-row { + align-self: center; + display: flex; + } + + .searchbar-bg { + .hairline(bottom, @statusBarBorderColor); + } + } + + .searchbar-inner { + justify-content: space-between; + &__center { + display: flex; + align-items: center; + width: 81%; + } + &__right { + display: flex; + align-items: center; + } + } + + .searchbar-expandable { + transition-duration: 0s; + } + + .buttons-row-replace { + display: flex; + flex-direction: column; + align-items: center; + // width: max-content; + width: 100%; + justify-content: center; + a { + font-size: 15px; + height: auto; + display: block; + line-height: normal; + } + } + + @media(max-width: 550px) + { + .searchbar-expandable.searchbar-enabled { + .searchbar-inner { + &__left { + min-width: 22px; + max-width: 22px; + } + &__center { + flex-direction: column; + } + &__right { + flex-direction: column-reverse; + } + } + &.replace { + top: 0; + .searchbar-inner { + height: 100%; + &__left { + align-self: flex-start; + } + } + } + } + } +} diff --git a/apps/common/mobile/resources/less/variables.less b/apps/common/mobile/resources/less/variables.less new file mode 100644 index 000000000..691855ff5 --- /dev/null +++ b/apps/common/mobile/resources/less/variables.less @@ -0,0 +1,9 @@ + +.md { + --background-normal: #f1f1f1; +} + +@background-normal: var(--background-normal, #fff); + +@border-regular-control: #cbcbcb; +@text-normal: #000; diff --git a/apps/common/mobile/utils/IrregularStack.js b/apps/common/mobile/utils/IrregularStack.js new file mode 100644 index 000000000..c252cad0e --- /dev/null +++ b/apps/common/mobile/utils/IrregularStack.js @@ -0,0 +1,50 @@ + +export default class IrregularStack { + constructor (config) { + this._stack = []; + + const _config = config || {}; + this._strongCompare = _config.strongCompare || this._compare; + this._weakCompare = _config.weakCompare || this._compare; + } + + _compare (obj1, obj2) { + if (typeof obj1 === 'object' && typeof obj2 === 'object' && window.JSON) + return window.JSON.stringify(obj1) === window.JSON.stringify(obj2); + return obj1 === obj2; + }; + + _indexOf (obj, compare) { + for (let i = this._stack.length - 1; i >= 0; i--) { + if (compare(this._stack[i], obj)) + return i; + } + return -1; + } + + push (obj) { + this._stack.push(obj); + } + + pop (obj) { + const index = this._indexOf(obj, this._strongCompare); + if (index !== -1) { + const removed = this._stack.splice(index, 1); + return removed[0]; + } + return undefined; + } + + get (obj) { + const index = this._indexOf(obj, this._weakCompare); + if (index !== -1) { + return this._stack[index]; + } + return undefined; + } + + exist (obj) { + return !(this._indexOf(obj, this._strongCompare) < 0); + } + +} \ No newline at end of file diff --git a/apps/common/mobile/utils/LocalStorage.js b/apps/common/mobile/utils/LocalStorage.js new file mode 100644 index 000000000..b4b9970b3 --- /dev/null +++ b/apps/common/mobile/utils/LocalStorage.js @@ -0,0 +1,80 @@ + +class LocalStorage { + constructor() { + Common.Gateway.on('internalcommand', data => { + if (data.type == 'localstorage') { + this._store = data.keys; + } + }); + + this._store = {}; + + try { + this._isAllowed = !!window.localStorage; + } catch (e) { + this._isAllowed = false; + } + } + + get id() { + return this._storeName; + } + + set id(name) { + this._storeName = name; + } + + set keysFilter(value) { + this._filter = value; + } + + get keysFilter() { + return this._filter; + } + + sync() { + if ( !this._isAllowed ) + Common.Gateway.internalMessage('localstorage', {cmd:'get', keys:this._filter}); + } + + save() { + if ( !this._isAllowed ) + Common.Gateway.internalMessage('localstorage', {cmd:'set', keys:this._store}); + } + + setItem(name, value, just) { + if ( this._isAllowed ) { + try { + localStorage.setItem(name, value); + } catch (error){} + } else { + this._store[name] = value; + + if ( just===true ) { + Common.Gateway.internalMessage('localstorage', {cmd:'set', keys: {name: value}}); + } + } + } + + getItem(name) { + if ( this._isAllowed ) + return localStorage.getItem(name); + else return this._store[name]===undefined ? null : this._store[name]; + }; + + setBool(name, value, just) { + this.setItem(name, value ? 1 : 0, just); + } + + getBool(name, defValue) { + const value = this.getItem(name); + return (value !== null) ? (parseInt(value) != 0) : !!defValue; + } + + itemExists(name) { + return this.getItem(name) !== null; + } +} + +const instance = new LocalStorage(); +export {instance as LocalStorage}; \ No newline at end of file diff --git a/apps/common/mobile/utils/device.jsx b/apps/common/mobile/utils/device.jsx new file mode 100644 index 000000000..fe22cbfe7 --- /dev/null +++ b/apps/common/mobile/utils/device.jsx @@ -0,0 +1,52 @@ + +import React from 'react'; +import { f7 } from 'framework7-react'; +import { Dom7 } from 'framework7' + +class WrapDevice { + constructor(){ + const ua = navigator.userAgent, + isMobile = /Mobile(\/|\s|;)/.test(ua); + + this.isPhone = /(iPhone|iPod)/.test(ua) || + (!/(Silk)/.test(ua) && (/(Android)/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) || + (/(BlackBerry|BB)/.test(ua) && isMobile) || + /(Windows Phone)/.test(ua); + + this.isTablet = !this.isPhone && (/iPad/.test(ua) || /Android/.test(ua) || /(RIM Tablet OS)/.test(ua) || + (/MSIE 10/.test(ua) && /; Touch/.test(ua))); + } + + initDom() { + const $$ = Dom7; + if ( this.sailfish ) { + $$('html').addClass('sailfish'); + } + + $$('html').addClass(this.phone ? 'phone' : 'tablet'); + // $$(window).on('resize', _.bind(this.onWindowResize, this)); + } + + get phone() { + return this.isPhone + } + + get tablet() { + return this.isTablet + } + + get sailfish() { + return /Sailfish/.test(navigator.userAgent) || /Jolla/.test(navigator.userAgent); + } + + get android() { + return f7.device.android; + } + + get ios() { + return f7.device.ios; + } +} + +const device = new WrapDevice(); +export {device as Device}; diff --git a/apps/common/mobile/utils/notifications.js b/apps/common/mobile/utils/notifications.js new file mode 100644 index 000000000..d86a60c75 --- /dev/null +++ b/apps/common/mobile/utils/notifications.js @@ -0,0 +1,32 @@ + +export default class Notifications { + constructor() { + this._events = {}; + } + + on(event, callback) { + const addevent = (e, c) => { + !this._events[e] && (this._events[e] = []); + this._events[e].push(c); + }; + + if ( typeof(event) == 'object' ) + for (const i in event) + addevent(i, event[i]) + else addevent(event, callback); + } + + off(event, callback) { + if ( this._events[event] && this._events[event].includes(callback) ) { + this._events[event].splice(this._events[event].indexOf(callback), 1); + } + } + + trigger(event/*, args*/) { + if ( this._events[event] ) { + this._events[event].forEach(callback => { + callback.apply(this, Array.prototype.slice.call(arguments, 1)); + }); + } + } +} diff --git a/apps/documenteditor/mobile/.gitignore b/apps/documenteditor/mobile/.gitignore new file mode 100644 index 000000000..7ba8786c6 --- /dev/null +++ b/apps/documenteditor/mobile/.gitignore @@ -0,0 +1,40 @@ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Dependency directories +node_modules/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# Misc +.DS_Store +Thumbs.db + + + +# Production build +www/ diff --git a/apps/documenteditor/mobile/README.md b/apps/documenteditor/mobile/README.md new file mode 100644 index 000000000..8d1ba7a39 --- /dev/null +++ b/apps/documenteditor/mobile/README.md @@ -0,0 +1,74 @@ +# Desktop Editor + +## Framework7 CLI Options + +Framework7 app created with following options: + +``` +{ + "cwd": "E:\\Work\\Projects\\WebOffice\\web-apps\\apps\\documenteditor\\mobile", + "type": [ + "web" + ], + "name": "Desktop Editor", + "framework": "react", + "template": "split-view", + "cssPreProcessor": "less", + "bundler": "webpack", + "webpack": { + "developmentSourceMap": true, + "productionSourceMap": true, + "hashAssets": false, + "preserveAssetsPaths": false, + "inlineAssets": true + }, + "theming": { + "customColor": false, + "color": "#007aff", + "darkTheme": false, + "iconFonts": true, + "fillBars": false + }, + "customBuild": false +} +``` + +## NPM Scripts + +* 🔥 `start` - run development server +* 🔧 `dev` - run development server +* 🔧 `build-dev` - build web app using development mode (faster build without minification and optimization) +* 🔧 `build-prod` - build web app for production + +## WebPack + +There is a webpack bundler setup. It compiles and bundles all "front-end" resources. You should work only with files located in `/src` folder. Webpack config located in `build/webpack.config.js`. + +Webpack has specific way of handling static assets (CSS files, images, audios). You can learn more about correct way of doing things on [official webpack documentation](https://webpack.js.org/guides/asset-management/). +## Assets + +Assets (icons, splash screens) source images located in `assets-src` folder. To generate your own icons and splash screen images, you will need to replace all assets in this directory with your own images (pay attention to image size and format), and run the following command in the project directory: + +``` +framework7 assets +``` + +Or launch UI where you will be able to change icons and splash screens: + +``` +framework7 assets --ui +``` + +## Documentation & Resources + +* [Framework7 Core Documentation](https://framework7.io/docs/) + +* [Framework7 React Documentation](https://framework7.io/react/) + +* [Framework7 Icons Reference](https://framework7.io/icons/) +* [Community Forum](https://forum.framework7.io) + +## Support Framework7 + +Love Framework7? Support project by donating or pledging on patreon: +https://patreon.com/vladimirkharlampidi \ No newline at end of file diff --git a/apps/documenteditor/mobile/app-dev.js b/apps/documenteditor/mobile/app-dev.js deleted file mode 100644 index 2cc307b68..000000000 --- a/apps/documenteditor/mobile/app-dev.js +++ /dev/null @@ -1,238 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - * Created by Alexander Yuzhin on 9/21/16 - * Copyright (c) 2018 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', - 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', - features : '../../web-apps-mobile/word/patch' - }, - - 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', - 'sockjs' -], function (Backbone, Framework7, Core) { - Backbone.history.start(); - - /** - * Application instance with DE namespace defined - */ - var app = new Backbone.Application({ - nameSpace: 'DE', - autoCreate: false, - controllers : [ - 'Common.Controllers.Plugins', - 'Editor', - 'Toolbar', - 'Search', - 'Main', - 'DocumentHolder', - 'Settings', - 'EditContainer', - 'EditText', - 'EditParagraph', - 'EditHeader', - 'EditTable', - 'EditImage', - 'EditShape', - 'EditChart', - 'EditHyperlink', - 'AddContainer', - 'AddTable', - 'AddShape', - 'AddImage', - 'AddOther', - 'Common.Controllers.Collaboration' - ] - }); - - 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', - - // Enable tap hold events - tapHold: true, - - // 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'); - - Common.Locale.apply(function() { - require([ - 'common/main/lib/util/LocalStorage', - 'common/main/lib/util/utils', - 'common/mobile/lib/controller/Plugins', - 'documenteditor/mobile/app/controller/Editor', - 'documenteditor/mobile/app/controller/Toolbar', - 'documenteditor/mobile/app/controller/Search', - 'documenteditor/mobile/app/controller/Main', - 'documenteditor/mobile/app/controller/DocumentHolder', - 'documenteditor/mobile/app/controller/Settings', - 'documenteditor/mobile/app/controller/edit/EditContainer', - 'documenteditor/mobile/app/controller/edit/EditText', - 'documenteditor/mobile/app/controller/edit/EditParagraph', - 'documenteditor/mobile/app/controller/edit/EditHeader', - 'documenteditor/mobile/app/controller/edit/EditTable', - 'documenteditor/mobile/app/controller/edit/EditImage', - 'documenteditor/mobile/app/controller/edit/EditShape', - 'documenteditor/mobile/app/controller/edit/EditChart', - 'documenteditor/mobile/app/controller/edit/EditHyperlink', - 'documenteditor/mobile/app/controller/add/AddContainer', - 'documenteditor/mobile/app/controller/add/AddTable', - 'documenteditor/mobile/app/controller/add/AddShape', - 'documenteditor/mobile/app/controller/add/AddImage', - 'documenteditor/mobile/app/controller/add/AddOther', - 'common/mobile/lib/controller/Collaboration' - ], function() { - window.compareVersions = true; - var _s = app.start.bind(app); - require(['features'], _s, _s); - }); - }); -}, function(err) { - if (err.requireType == 'timeout' && !reqerr && window.requireTimeourError) { - reqerr = window.requireTimeourError(); - window.alert(reqerr); - window.location.reload(); - } -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app.js b/apps/documenteditor/mobile/app.js deleted file mode 100644 index dba0a47b4..000000000 --- a/apps/documenteditor/mobile/app.js +++ /dev/null @@ -1,246 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - * Created by Alexander Yuzhin on 9/21/16 - * Copyright (c) 2018 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', - 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' - ] - }, - gateway: { - deps: [ - 'jquery' - ] - }, - analytics: { - deps: [ - 'jquery' - ] - } - } -}); - -require([ - 'backbone', - 'framework7', - 'core', - 'underscore', - 'extendes', - 'sdk', - 'api', - 'analytics', - 'gateway', - 'locale' -], function (Backbone, Framework7, Core) { - Backbone.history.start(); - - /** - * Application instance with DE namespace defined - */ - var app = new Backbone.Application({ - nameSpace: 'DE', - autoCreate: false, - controllers : [ - 'Common.Controllers.Plugins', - 'Editor', - 'Toolbar', - 'Search', - 'Main', - 'DocumentHolder', - 'Settings', - 'EditContainer', - 'EditText', - 'EditParagraph', - 'EditHeader', - 'EditTable', - 'EditImage', - 'EditShape', - 'EditChart', - 'EditHyperlink', - 'AddContainer', - 'AddTable', - 'AddShape', - 'AddImage', - 'AddOther', - 'Common.Controllers.Collaboration' - ] - }); - - 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: '{{APP_TITLE_TEXT}}', - - // Enable tap hold events - tapHold: true, - - // 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'); - - Common.Locale.apply(function() { - require([ - 'common/main/lib/util/LocalStorage', - 'common/main/lib/util/utils', - 'common/mobile/lib/controller/Plugins', - 'documenteditor/mobile/app/controller/Editor', - 'documenteditor/mobile/app/controller/Toolbar', - 'documenteditor/mobile/app/controller/Search', - 'documenteditor/mobile/app/controller/Main', - 'documenteditor/mobile/app/controller/DocumentHolder', - 'documenteditor/mobile/app/controller/Settings', - 'documenteditor/mobile/app/controller/edit/EditContainer', - 'documenteditor/mobile/app/controller/edit/EditText', - 'documenteditor/mobile/app/controller/edit/EditParagraph', - 'documenteditor/mobile/app/controller/edit/EditHeader', - 'documenteditor/mobile/app/controller/edit/EditTable', - 'documenteditor/mobile/app/controller/edit/EditImage', - 'documenteditor/mobile/app/controller/edit/EditShape', - 'documenteditor/mobile/app/controller/edit/EditChart', - 'documenteditor/mobile/app/controller/edit/EditHyperlink', - 'documenteditor/mobile/app/controller/add/AddContainer', - 'documenteditor/mobile/app/controller/add/AddTable', - 'documenteditor/mobile/app/controller/add/AddShape', - 'documenteditor/mobile/app/controller/add/AddImage', - 'documenteditor/mobile/app/controller/add/AddOther', - 'common/mobile/lib/controller/Collaboration' - ], function() { - app.start(); - }); - }); -}, function(err) { - if (err.requireType == 'timeout' && !reqerr && window.requireTimeourError) { - reqerr = window.requireTimeourError(); - window.alert(reqerr); - window.location.reload(); - } -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/DocumentHolder.js b/apps/documenteditor/mobile/app/controller/DocumentHolder.js deleted file mode 100644 index 772810169..000000000 --- a/apps/documenteditor/mobile/app/controller/DocumentHolder.js +++ /dev/null @@ -1,715 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentHolder.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/8/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'documenteditor/mobile/app/view/DocumentHolder', - 'common/main/lib/collection/Users' -], function (core, $, _, Backbone) { - 'use strict'; - - DE.Controllers.DocumentHolder = Backbone.Controller.extend(_.extend((function() { - // private - var _stack, - _view, - _fastCoAuthTips = [], - _actionSheets = [], - _isEdit = false, - _canReview = false, - _inRevisionChange = false, - _isComments = false, - _menuPos = [], - _timer = 0, - _canViewComments = true, - _isRestrictedEdit = false, - _canFillForms = true, - _stateDisplayMode = false; - - return { - models: [], - collections: [ - 'Common.Collections.Users' - ], - views: [ - 'DocumentHolder' - ], - - initialize: function() { - this.addListeners({ - 'DocumentHolder': { - 'contextmenu:click' : this.onContextMenuClick - } - }); - }, - - setApi: function(api) { - var me = this; - - me.api = api; - - me.api.asc_registerCallback('asc_onShowPopMenu', _.bind(me.onApiShowPopMenu, me)); - me.api.asc_registerCallback('asc_onHidePopMenu', _.bind(me.onApiHidePopMenu, me)); - me.api.asc_registerCallback('asc_onShowForeignCursorLabel', _.bind(me.onApiShowForeignCursorLabel, me)); - me.api.asc_registerCallback('asc_onHideForeignCursorLabel', _.bind(me.onApiHideForeignCursorLabel, me)); - me.api.asc_registerCallback('asc_onAuthParticipantsChanged',_.bind(me.onApiUsersChanged, me)); - me.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(me.onApiUserConnection, me)); - me.api.asc_registerCallback('asc_onDocumentContentReady', _.bind(me.onApiDocumentContentReady, me)); - Common.NotificationCenter.on('api:disconnect', _.bind(me.onCoAuthoringDisconnect, me)); - me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect,me)); - me.api.asc_registerCallback('asc_onShowRevisionsChange', _.bind(me.onApiShowChange, me)); - me.api.asc_registerCallback('asc_onShowComment', _.bind(me.onApiShowComment, me)); - me.api.asc_registerCallback('asc_onHideComment', _.bind(me.onApiHideComment, me)); - me.api.asc_coAuthoringGetUsers(); - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - _isRestrictedEdit = mode.isRestrictedEdit; - _canReview = mode.canReview; - _canViewComments = mode.canViewComments; - _canFillForms = mode.canFillForms; - if (_isEdit || _isRestrictedEdit && _canFillForms) { - this.api && this.api.asc_registerCallback('asc_onShowContentControlsActions',_.bind(this.onShowContentControlsActions, this)); - this.api && this.api.asc_registerCallback('asc_onHideContentControlsActions',_.bind(this.onHideContentControlsActions, this)); - } - }, - - // When our application is ready, lets get started - onLaunch: function() { - var me = this; - - _view = me.createView('DocumentHolder').render(); - - $$(window).on('resize', _.bind(me.onEditorResize, me)); - }, - - // Handlers - - onContextMenuClick: function (view, eventName) { - var me = this; - - if ('cut' == eventName) { - var res = me.api.Cut(); - if (!res) { - _view.hideMenu(); - if (!Common.localStorage.getBool("de-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-cut"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("de-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - } else if ('copy' == eventName) { - var res = me.api.Copy(); - if (!res) { - _view.hideMenu(); - if (!Common.localStorage.getBool("de-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-copy"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("de-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - } else if ('paste' == eventName) { - var res = me.api.Paste(); - if (!res) { - _view.hideMenu(); - if (!Common.localStorage.getBool("de-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-paste"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("de-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - } else if ('merge' == eventName) { - me.api.MergeCells(); - } else if ('split' == eventName) { - _view.hideMenu(); - me.showSplitModal(); - } else if ('delete' == eventName) { - me.api.asc_Remove(); - } else if('deletetable' == eventName) { - me.api.remTable(); - } else if ('edit' == eventName) { - _view.hideMenu(); - - DE.getController('EditContainer').showModal(); - } else if ('addlink' == eventName) { - _view.hideMenu(); - - DE.getController('AddContainer').showModal(); - DE.getController('AddOther').getView('AddOther').showLink(false); - } else if ('openlink' == eventName) { - _.some(_stack, function (item) { - if (item.get_ObjectType() == Asc.c_oAscTypeSelectElement.Hyperlink) { - me._openLink(item.get_ObjectValue().get_Value()); - return true; - } - }); - } else if ('review' == eventName) { - var getCollaboration = DE.getController('Common.Controllers.Collaboration'); - getCollaboration.showModal(); - getCollaboration.getView('Common.Views.Collaboration').showPage('#reviewing-settings-view', false); - } else if('reviewchange' == eventName) { - var getCollaboration = DE.getController('Common.Controllers.Collaboration'); - getCollaboration.showModal(); - getCollaboration.getView('Common.Views.Collaboration').showPage('#reviewing-settings-view', false); - getCollaboration.getView('Common.Views.Collaboration').showPage('#change-view', false); - } else if ('viewcomment' == eventName) { - var getCollaboration = DE.getController('Common.Controllers.Collaboration'); - getCollaboration.showCommentModal(); - } else if ('addcomment' == eventName) { - _view.hideMenu(); - DE.getController('AddContainer').showModal(); - DE.getController('AddOther').getView('AddOther').showPageComment(false); - } else if ('showActionSheet' == eventName && _actionSheets.length > 0) { - _.delay(function () { - _.each(_actionSheets, function (action) { - action.text = action.caption; - action.onClick = function () { - me.onContextMenuClick(null, action.event) - } - }); - - uiApp.actions([_actionSheets, [ - { - text: me.sheetCancel, - bold: true - } - ]]); - }, 100); - } - - _view.hideMenu(); - }, - - showSplitModal: function() { - var me = this, - picker; - uiApp.modal({ - title : me.menuSplit, - text: '', - afterText: - '
' + - '
' + - '
' + me.textColumns + '
' + - '
' + me.textRows + '
' + - '
' + - '
' + - '
', - buttons: [ - { - text: me.textCancel - }, - { - text: 'OK', - bold: true, - onClick: function () { - var size = picker.value; - if (me.api) { - me.api.SplitCell(parseInt(size[0]), parseInt(size[1])); - } - } - } - ] - }); - - picker = uiApp.picker({ - container: '#picker-split-size', - toolbar: false, - rotateEffect: true, - value: [3, 3], - cols: [{ - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }, { - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }] - }); - - }, - - // API Handlers - - onEditorResize: function(cmp) { - // Hide context menu - }, - - onApiShowPopMenu: function(posX, posY) { - if ($('.popover.settings, .popup.settings, .picker-modal.settings, .modal.modal-in, .actions-modal').length > 0) { - return; - } - var now = (new Date).getTime(); - if (now - _timer < 1000) return; - _timer = 0; - - _menuPos = [posX, posY]; - - var me = this, - items; - - _stack = me.api.getSelectedElements(); - items = me._initMenu(_stack); - - _view.showMenu(items, posX, posY); - }, - - onApiHidePopMenu: function() { - var now = (new Date).getTime(); - if (now - _timer < 1000) return; - _view && _view.hideMenu(); - }, - - onApiShowForeignCursorLabel: function(userId, X, Y, color) { - var me = this, - tipHeight = 20; - - var getUserName = function(id) { - var usersStore = DE.getCollection('Common.Collections.Users'); - - if (usersStore){ - var rec = usersStore.findUser(id); - if (rec) - return AscCommon.UserInfoParser.getParsedName(rec.get('username')); - } - return me.textGuest; - }; - - /** coauthoring begin **/ - var src = _.find(_fastCoAuthTips, function(tip){ return tip.attr('userid') == userId; }); - - if (!src) { - src = $(document.createElement('div')); - src.addClass('username-tip'); - src.attr('userid', userId); - src.css({ - height: tipHeight + 'px', - position: 'absolute', - zIndex: '900', - display: 'none', - 'pointer-events': 'none', - 'background-color': '#' + Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b())}); - src.text(getUserName(userId)); - $('#id_main_view').append(src); - - _fastCoAuthTips.push(src); - - src.fadeIn(150); - } - src.css({ - top: (Y - tipHeight) + 'px', - left: X + 'px'}); - /** coauthoring end **/ - }, - - onApiHideForeignCursorLabel: function(userId) { - /** coauthoring begin **/ - for (var i=0; i<_fastCoAuthTips.length; i++) { - if (_fastCoAuthTips[i].attr('userid') == userId) { - var src = _fastCoAuthTips[i]; - _fastCoAuthTips[i].fadeOut(150, function(){src.remove()}); - _fastCoAuthTips.splice(i, 1); - break; - } - } - /** coauthoring end **/ - }, - - onApiUsersChanged: function(users){ - var usersStore = this.getApplication().getCollection('Common.Collections.Users'); - - if (usersStore) { - var arrUsers = [], name, user; - - for (name in users) { - if (undefined !== name) { - user = users[name]; - if (user) { - arrUsers.push(new Common.Models.User({ - id : user.asc_getId(), - username : user.asc_getUserName(), - online : true, - color : user.asc_getColor(), - view : user.asc_getView() - })); - } - } - } - - usersStore[usersStore.size() > 0 ? 'add' : 'reset'](arrUsers); - } - }, - - onApiUserConnection: function(change){ - var usersStore = this.getApplication().getCollection('Common.Collections.Users'); - - if (usersStore){ - var user = usersStore.findUser(change.asc_getId()); - if (!user) { - usersStore.add(new Common.Models.User({ - id : change.asc_getId(), - username : change.asc_getUserName(), - online : change.asc_getState(), - color : change.asc_getColor(), - view : change.asc_getView() - })); - } else { - user.set({online: change.asc_getState()}); - user.set({username: change.asc_getUserName()}); - } - } - }, - - onApiDocumentContentReady: function () { - _view = this.createView('DocumentHolder').render(); - }, - - onApiShowChange: function(sdkchange) { - _inRevisionChange = sdkchange && sdkchange.length>0; - }, - - onApiShowComment: function(comments) { - _isComments = false; - if (comments && comments.length > 0) { - for (var i = 0; i < comments.length; ++i) { - if (this.getApplication().getController('Common.Controllers.Collaboration').findVisibleComment(comments[i])) { - _isComments = true; - break; - } - } - } - }, - - onApiHideComment: function() { - _isComments = false; - }, - - onShowContentControlsActions: function(obj, x, y) { - var type = obj.type; - if (type==Asc.c_oAscContentControlSpecificType.Picture) { - if (obj.pr && obj.pr.get_Lock) { - var lock = obj.pr.get_Lock(); - if (lock == Asc.c_oAscSdtLockType.SdtContentLocked || lock==Asc.c_oAscSdtLockType.ContentLocked) - return; - } - this.api.asc_addImage(obj); - } - }, - - onHideContentControlsActions: function() { - }, - - // Internal - - _openLink: function(url) { - if (this.api.asc_getUrlType(url) > 0) { - var newDocumentPage = window.open(url, '_blank'); - - if (newDocumentPage) { - newDocumentPage.focus(); - } - } - }, - - _initMenu: function (stack) { - var me = this, - arrItems = [], - arrItemsIcon = [], - canCopy = me.api.can_CopyCut(); - - _actionSheets = []; - - if (canCopy) { - arrItemsIcon.push({ - caption: me.menuCopy, - event: 'copy', - icon: 'icon-copy' - }); - } - if (_canViewComments && _isComments && !_isEdit) { - arrItems.push({ - caption: me.menuViewComment, - event: 'viewcomment' - }); - } - - var isText = false, - isTable = false, - isImage = false, - isChart = false, - isShape = false, - isLink = false, - lockedText = false, - lockedTable = false, - lockedImage = false, - lockedHeader = false; - - _.each(stack, function (item) { - var objectType = item.get_ObjectType(), - objectValue = item.get_ObjectValue(); - - if (objectType == Asc.c_oAscTypeSelectElement.Header) { - lockedHeader = objectValue.get_Locked(); - } - - if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { - isText = true; - lockedText = objectValue.get_Locked(); - } else if (objectType == Asc.c_oAscTypeSelectElement.Image) { - lockedImage = objectValue.get_Locked(); - if (objectValue && objectValue.get_ChartProperties()) { - isChart = true; - } else if (objectType && objectValue.get_ShapeProperties()) { - isShape = true; - } else { - isImage = true; - } - } else if (objectType == Asc.c_oAscTypeSelectElement.Table) { - isTable = true; - lockedTable = objectValue.get_Locked(); - } else if (objectType == Asc.c_oAscTypeSelectElement.Hyperlink) { - isLink = true; - } - }); - - if (stack.length > 0) { - - var swapItems = function(items, indexBefore, indexAfter) { - items[indexAfter] = items.splice(indexBefore, 1, items[indexAfter])[0]; - }; - - if (_isEdit && !me.isDisconnected && !_stateDisplayMode) { - if (!lockedText && !lockedTable && !lockedImage && !lockedHeader && canCopy) { - arrItemsIcon.push({ - caption: me.menuCut, - event: 'cut', - icon: 'icon-cut' - }); - - // Swap 'Copy' and 'Cut' - swapItems(arrItemsIcon, 0, 1); - } - - if (!lockedText && !lockedTable && !lockedImage && !lockedHeader) { - arrItemsIcon.push({ - caption: me.menuPaste, - event: 'paste', - icon: 'icon-paste' - }); - } - - if(isTable && me.api.CheckBeforeMergeCells() && !lockedTable && !lockedHeader) { - arrItems.push({ - caption: me.menuMerge, - event: 'merge' - }); - } - - if(isTable && me.api.CheckBeforeSplitCells() && !lockedTable && !lockedHeader) { - arrItems.push({ - caption: me.menuSplit, - event: 'split' - }); - } - - if(!lockedText && !lockedTable && !lockedImage && !lockedHeader) { - arrItems.push({ - caption: me.menuDelete, - event: 'delete' - }); - } - - if(isTable && !lockedTable && !lockedText && !lockedHeader) { - arrItems.push({ - caption: me.menuDeleteTable, - event: 'deletetable' - }); - } - - if(!lockedText && !lockedTable && !lockedImage && !lockedHeader){ - arrItems.push({ - caption: me.menuEdit, - event: 'edit' - }); - } - - if (!_.isEmpty(me.api.can_AddHyperlink()) && !lockedHeader) { - arrItems.push({ - caption: me.menuAddLink, - event: 'addlink' - }); - } - - if (_canReview) { - if (_inRevisionChange) { - arrItems.push({ - caption: me.menuReviewChange, - event: 'reviewchange' - }); - } else { - arrItems.push({ - caption: me.menuReview, - event: 'review' - }); - } - } - - if (_isComments && _canViewComments) { - arrItems.push({ - caption: me.menuViewComment, - event: 'viewcomment' - }); - } - - var isObject = isShape || isChart || isImage || isTable; - var hideAddComment = !_canViewComments || me.api.can_AddQuotedComment() === false || lockedText || lockedTable || lockedImage || lockedHeader || (!isText && isObject); - if (!hideAddComment) { - arrItems.push({ - caption: me.menuAddComment, - event: 'addcomment' - }); - } - } - } - - if (isLink) { - arrItems.push({ - caption: me.menuOpenLink, - event: 'openlink' - }); - } - - if (Common.SharedSettings.get('phone') && arrItems.length > 2) { - _actionSheets = arrItems.slice(2); - - arrItems = arrItems.slice(0, 2); - arrItems.push({ - caption: me.menuMore, - event: 'showActionSheet' - }); - } - - var menuItems = {itemsIcon: arrItemsIcon, items: arrItems}; - - return menuItems; - }, - - onCoAuthoringDisconnect: function() { - this.isDisconnected = true; - }, - - setDisplayMode: function(displayMode) { - _stateDisplayMode = displayMode == "final" || displayMode == "original" ? true : false; - }, - - textGuest: 'Guest', - textCancel: 'Cancel', - textColumns: 'Columns', - textRows: 'Rows', - menuCut: 'Cut', - menuCopy: 'Copy', - menuPaste: 'Paste', - menuEdit: 'Edit', - menuDelete: 'Delete', - menuAddLink: 'Add Link', - menuOpenLink: 'Open Link', - menuMore: 'More', - sheetCancel: 'Cancel', - menuReview: 'Review', - menuMerge: 'Merge Cells', - menuSplit: 'Split Cell', - menuDeleteTable: 'Delete Table', - menuReviewChange: 'Review Change', - menuViewComment: 'View Comment', - menuAddComment: 'Add Comment', - textCopyCutPasteActions: 'Copy, Cut and Paste Actions', - errorCopyCutPaste: 'Copy, cut and paste actions using the context menu will be performed within the current file only.', - textDoNotShowAgain: 'Don\'t show again' - } - })(), DE.Controllers.DocumentHolder || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/Editor.js b/apps/documenteditor/mobile/app/controller/Editor.js deleted file mode 100644 index 15c6c499a..000000000 --- a/apps/documenteditor/mobile/app/controller/Editor.js +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Editor.js - * Document Editor - * - * Created by Alexander Yuzhin on 9/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/Editor' -], function (core) { - 'use strict'; - - DE.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))); - } - - function isSailfish() { - var ua = navigator.userAgent; - return /Sailfish/.test(ua) || /Jolla/.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() { - // This most important part when we will tell our controller what events should be handled - }, - - setApi: function(api) { - this.api = api; - }, - - // When our application is ready, lets get started - onLaunch: function() { - // Device detection - var phone = isPhone(); - // console.debug('Layout profile:', phone ? 'Phone' : 'Tablet'); - - if ( isSailfish() ) { - Common.SharedSettings.set('sailfish', true); - $('html').addClass('sailfish'); - } - - 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)); - }, - - onWindowResize: function(e) { - this.api && this.api.Resize(); - } - } - })()); -}); diff --git a/apps/documenteditor/mobile/app/controller/Main.js b/apps/documenteditor/mobile/app/controller/Main.js deleted file mode 100644 index 8bf394223..000000000 --- a/apps/documenteditor/mobile/app/controller/Main.js +++ /dev/null @@ -1,1656 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Main.js - * Document Editor - * - * Created by Alexander Yuzhin on 9/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'irregularstack', - 'common/main/lib/util/LocalStorage' -], function (core, $, _, Backbone) { - 'use strict'; - - DE.Controllers.Main = Backbone.Controller.extend(_.extend((function() { - var ApplyEditRights = -255; - var LoadingDocument = -256; - - Common.localStorage.setId('text'); - Common.localStorage.setKeysFilter('de-,asc.text'); - Common.localStorage.sync(); - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - 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, - lostEditingRights : false, - licenseType : false, - isDocModified: false - }; - - // Initialize viewport - -// if (!Common.Utils.isBrowserSupported()){ -// Common.Utils.showBrowserRestriction(); -// Common.Gateway.reportError(undefined, this.unsupportedBrowserErrorText); -// return; -// } - - var value = Common.localStorage.getItem("de-settings-fontrender"); - - if (value === null) { - value = window.devicePixelRatio > 1 ? '1' : '0'; - } - - // Initialize api - - window["flat_desine"] = true; - - var styleNames = ['Normal', 'No Spacing', 'Heading 1', 'Heading 2', 'Heading 3', 'Heading 4', 'Heading 5', - 'Heading 6', 'Heading 7', 'Heading 8', 'Heading 9', 'Title', 'Subtitle', 'Quote', 'Intense Quote', 'List Paragraph', 'footnote text'], - translate = { - 'Series': this.txtSeries, - 'Diagram Title': this.txtDiagramTitle, - 'X Axis': this.txtXAxis, - 'Y Axis': this.txtYAxis, - 'Your text here': this.txtArt, - 'Header': this.txtHeader, - 'Footer': this.txtFooter, - "above": this.txtAbove, - "below": this.txtBelow, - "on page ": this.txtOnPage + " ", - " -Section ": " " + this.txtSection + " ", - "First Page ": this.txtFirstPage + " ", - "Even Page ": this.txtEvenPage + " ", - "Odd Page ": this.txtOddPage + " ", - "Same as Previous": this.txtSameAsPrev, - "Current Document": this.txtCurrentDocument - }; - styleNames.forEach(function(item){ - translate[item] = me['txtStyle_' + item.replace(/ /g, '_')] || item; - }); - - me.api = new Asc.asc_docs_api({ - 'id-view' : 'editor_sdk', - 'mobile' : true, - 'translate': translate - }); - - // Localization uiApp params - uiApp.params.modalButtonOk = me.textOK; - uiApp.params.modalButtonCancel = me.textCancel; - uiApp.params.modalPreloaderTitle = me.textPreloader; - uiApp.params.modalUsernamePlaceholder = me.textUsername; - uiApp.params.modalPasswordPlaceholder = me.textPassword; - uiApp.params.smartSelectBackText = me.textBack; - uiApp.params.smartSelectPopupCloseText = me.textClose; - uiApp.params.smartSelectPickerCloseText = me.textDone; - uiApp.params.notificationCloseButtonText = me.textClose; - - if (me.api){ - switch (value) { - case '0': me.api.SetFontRenderingMode(3); break; - case '1': me.api.SetFontRenderingMode(1); break; - case '2': me.api.SetFontRenderingMode(2); break; - } - - Common.Utils.Metric.setCurrentMetric(1); //pt - - me.api.asc_registerCallback('asc_onError', _.bind(me.onError, me)); - 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_onServerVersion', _.bind(me.onServerVersion, 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)); - - Common.NotificationCenter.on('api:disconnect', _.bind(me.onCoAuthoringDisconnect, me)); - Common.NotificationCenter.on('goback', _.bind(me.goBack, me)); - Common.NotificationCenter.on('download:advanced', _.bind(me.onAdvancedOptions, me)); - - // Initialize descendants - _.each(me.getApplication().controllers, function(controller) { - if (controller && _.isFunction(controller.setApi)) { - controller.setApi(me.api); - } - }); - - // Initialize api gateway - me.editorConfig = {}; - me.appOptions = {}; - me.plugins = undefined; - - 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.appReady(); - - Common.Gateway.on('internalcommand', function(data) { - if (data.command=='hardBack') { - if ($('.modal-in').length>0) { - if ( !$(me.loadMask).hasClass('modal-in') ) - uiApp.closeModal(); - Common.Gateway.internalMessage('hardBack', false); - } else - Common.Gateway.internalMessage('hardBack', true); - } - }); - Common.Gateway.internalMessage('listenHardBack'); - } - - me.defaultTitleText = '{{APP_TITLE_TEXT}}'; - me.warnNoLicense = me.warnNoLicense.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnNoLicenseUsers = me.warnNoLicenseUsers.replace(/%1/g, '{{COMPANY_NAME}}'); - me.textNoLicenseTitle = me.textNoLicenseTitle.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnLicenseExceeded = me.warnLicenseExceeded.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnLicenseUsersExceeded = me.warnLicenseUsersExceeded.replace(/%1/g, '{{COMPANY_NAME}}'); - }, - - loadConfig: function(data) { - var me = this; - - me.editorConfig = $.extend(me.editorConfig, data.config); - - me.appOptions.customization = me.editorConfig.customization; - me.appOptions.canRenameAnonymous = !((typeof (me.appOptions.customization) == 'object') && (typeof (me.appOptions.customization.anonymous) == 'object') && (me.appOptions.customization.anonymous.request===false)); - me.appOptions.guestName = (typeof (me.appOptions.customization) == 'object') && (typeof (me.appOptions.customization.anonymous) == 'object') && - (typeof (me.appOptions.customization.anonymous.label) == 'string') && me.appOptions.customization.anonymous.label.trim()!=='' ? - Common.Utils.String.htmlEncode(me.appOptions.customization.anonymous.label) : me.textGuest; - var value; - if (me.appOptions.canRenameAnonymous) { - value = Common.localStorage.getItem("guest-username"); - Common.Utils.InternalSettings.set("guest-username", value); - Common.Utils.InternalSettings.set("save-guest-username", !!value); - } - me.editorConfig.user = - me.appOptions.user = Common.Utils.fillUserInfo(me.editorConfig.user, me.editorConfig.lang, value ? (value + ' (' + me.appOptions.guestName + ')' ) : me.textAnonymous); - me.appOptions.isDesktopApp = me.editorConfig.targetApp == 'desktop'; - me.appOptions.canCreateNew = !_.isEmpty(me.editorConfig.createUrl) && !me.appOptions.isDesktopApp; - me.appOptions.canOpenRecent = 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.canRequestClose = me.editorConfig.canRequestClose; - 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.editorConfig.customization.goback.requestClose && me.appOptions.canRequestClose); - me.appOptions.canBack = 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 (!me.editorConfig.customization || !(me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo)) - $('#editor-container').append('
'); - - value = Common.localStorage.getItem("de-mobile-macros-mode"); - if (value === null) { - value = this.editorConfig.customization ? this.editorConfig.customization.macrosMode : 'warn'; - value = (value == 'enable') ? 1 : (value == 'disable' ? 2 : 0); - } else - value = parseInt(value); - Common.Utils.InternalSettings.set("de-mobile-macros-mode", value); - -// if (this.appOptions.location == 'us' || this.appOptions.location == 'ca') -// Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch); - }, - - loadDocument: function(data) { - this.permissions = {}; - this.document = data.doc; - - var docInfo = {}; - - if (data.doc) { - this.permissions = $.extend(this.permissions, data.doc.permissions); - - var _permissions = $.extend({}, data.doc.permissions), - _user = new Asc.asc_CUserInfo(); - _user.put_Id(this.appOptions.user.id); - _user.put_FullName(this.appOptions.user.fullname); - - docInfo = new Asc.asc_CDocInfo(); - docInfo.put_Id(data.doc.key); - docInfo.put_Url(data.doc.url); - docInfo.put_Title(data.doc.title); - docInfo.put_Format(data.doc.fileType); - docInfo.put_VKey(data.doc.vkey); - docInfo.put_Options(data.doc.options); - docInfo.put_UserInfo(_user); - docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); - docInfo.put_Token(data.doc.token); - docInfo.put_Permissions(_permissions); - docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); - - var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); - docInfo.asc_putIsEnabledMacroses(!!enable); - enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false); - docInfo.asc_putIsEnabledPlugins(!!enable); - - var type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType); - if (type && typeof type[1] === 'string') { - this.permissions.edit = this.permissions.review = false; - } - } - - this.api.asc_registerCallback('asc_onGetEditorPermissions', _.bind(this.onEditorPermissions, this)); - this.api.asc_registerCallback('asc_onLicenseChanged', _.bind(this.onLicenseChanged, this)); - this.api.asc_registerCallback('asc_onRunAutostartMacroses', _.bind(this.onRunAutostartMacroses, this)); - this.api.asc_setDocInfo(docInfo); - this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId); - - Common.SharedSettings.set('document', data.doc); - - if (data.doc) { - DE.getController('Toolbar').setDocumentTitle(data.doc.title); - } - }, - - setMode: function(mode){ - var me = this; - - Common.SharedSettings.set('mode', mode.isEdit ? 'edit' : 'view'); - - if (me.api) { - me.api.asc_enableKeyEvents(mode.isEdit); - me.api.asc_setViewMode(!mode.isEdit && !mode.isRestrictedEdit); - } - }, - - onProcessSaveResult: function(data) { - this.api.asc_OnSaveEnd(data.result); - - if (data && data.result === false) { - uiApp.alert( - _.isEmpty(data.message) ? this.errorProcessSaveResult : data.message, - this.criticalErrorTitle - ); - } - }, - - onProcessRightsChange: function(data) { - if (data && data.enabled === false) { - var me = this, - old_rights = this._state.lostEditingRights; - 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(); - } - ); - } - } - }, - - onDownloadAs: function() { - if ( !this.appOptions.canDownload && !this.appOptions.canDownloadOrigin) { - Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, this.errorAccessDeny); - return; - } - - this._state.isFromGatewayDownloadAs = true; - var type = /^(?:(pdf|djvu|xps))$/.exec(this.document.fileType); - - if (type && typeof type[1] === 'string') { - this.api.asc_DownloadOrigin(true) - } else { - this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.DOCX, true)); - } - }, - - onRequestClose: function() { - Common.Gateway.requestClose(); - }, - - goBack: function(current) { - if (this.appOptions.customization.goback.requestClose && this.appOptions.canRequestClose) { - Common.Gateway.requestClose(); - } else { - var href = this.appOptions.customization.goback.url; - if (!current && this.appOptions.customization.goback.blank!==false) { - window.open(href, "_blank"); - } else { - parent.location.href = href; - } - } - }, - - onEditComplete: function(cmp) { - // - }, - - onLongActionBegin: function(type, id) { - 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']) { - // me._state.timerSave = setTimeout(function () { - //console.debug('End long action'); - // }, 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']: - // clearTimeout(this._state.timerSave); - 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; - - case Asc.c_oAscAsyncAction['Print']: - title = me.printTitleText; - text = me.printTextText; - break; - - case Asc.c_oAscAsyncAction['UploadImage']: - title = me.uploadImageTitleText; - text = me.uploadImageTextText; - 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 Asc.c_oAscAsyncAction['MailMergeLoadFile']: - title = me.mailMergeLoadFileText; - text = me.mailMergeLoadFileTitle; - break; - - case Asc.c_oAscAsyncAction['DownloadMerge']: - title = me.downloadMergeTitle; - text = me.downloadMergeText; - break; - - case Asc.c_oAscAsyncAction['SendMailMerge']: - title = me.sendMergeTitle; - text = me.sendMergeText; - break; - - case Asc.c_oAscAsyncAction['Waiting']: - title = me.waitText; - text = me.waitText; - break; - - case ApplyEditRights: - title = me.txtEditingMode; - text = me.txtEditingMode; - break; - - case LoadingDocument: - title = me.loadingDocumentTitleText; - text = me.loadingDocumentTextText; - break; - default: - if (typeof action.id == 'string'){ - title = action.id; - text = action.id; - } - break; - } - - if (action.type == Asc.c_oAscAsyncActionType['BlockInteraction']) { - if (action.id == Asc.c_oAscAsyncAction['ApplyChanges']) { - return; - } - - 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; - - if (this._state.openDlg) - uiApp.closeModal(this._state.openDlg); - - var me = this, - value; - - me._isDocReady = true; - - me.api.SetDrawingFreeze(false); - me.hidePreloader(); - me.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); - - var trackChanges = typeof (me.appOptions.customization) == 'object' ? me.appOptions.customization.trackChanges : undefined; - me.api.asc_SetTrackRevisions(me.appOptions.isReviewOnly || trackChanges===true || (trackChanges!==false) && Common.localStorage.getBool("de-mobile-track-changes-" + (me.appOptions.fileKey || ''))); - - /** coauthoring begin **/ - this.isLiveCommenting = Common.localStorage.getBool("de-mobile-settings-livecomment", true); - var resolved = Common.localStorage.getBool("de-settings-resolvedcomment", true); - this.isLiveCommenting ? this.api.asc_showComments(resolved) : this.api.asc_hideComments(); - /** coauthoring end **/ - - value = Common.localStorage.getItem("de-settings-zoom"); - var zf = (value!==null) ? parseInt(value) : (this.appOptions.customization && this.appOptions.customization.zoom ? parseInt(this.appOptions.customization.zoom) : 100); - (zf == -1) ? this.api.zoomFitToPage() : ((zf == -2) ? this.api.zoomFitToWidth() : this.api.zoom(zf>0 ? zf : 100)); - - value = Common.localStorage.getBool("de-mobile-spellcheck", !(this.appOptions.customization && this.appOptions.customization.spellcheck===false)); - Common.Utils.InternalSettings.set("de-mobile-spellcheck", value); - me.api.asc_setSpellCheck(value); - - 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); - - me.api.SetTextBoxInputMode(Common.localStorage.getBool("de-settings-inputmode")); - - value = Common.localStorage.getItem("de-mobile-no-characters"); - me.api.put_ShowParaMarks(value==='true'); - - value = Common.localStorage.getItem("de-mobile-hidden-borders"); - me.api.put_ShowTableEmptyLine(value===null || value==='true'); - - /** 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; - me.api.asc_SetFastCollaborative(me._state.fastCoauth); - - value = Common.localStorage.getItem((me._state.fastCoauth) ? "de-settings-showchanges-fast" : "de-settings-showchanges-strict"); - if (value !== null) { - me.api.SetCollaborativeMarksShowType( - value == 'all' ? Asc.c_oAscCollaborativeMarksShowType.All : - value == 'none' ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges); - } else { - me.api.SetCollaborativeMarksShowType(me._state.fastCoauth ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges); - } - } else if (!me.appOptions.isEdit && me.appOptions.isRestrictedEdit) { - me._state.fastCoauth = true; - me.api.asc_SetFastCollaborative(me._state.fastCoauth); - me.api.SetCollaborativeMarksShowType(Asc.c_oAscCollaborativeMarksShowType.None); - me.api.asc_setAutoSaveGap(1); - } else { - me._state.fastCoauth = false; - me.api.asc_SetFastCollaborative(me._state.fastCoauth); - me.api.SetCollaborativeMarksShowType(Asc.c_oAscCollaborativeMarksShowType.None); - } - /** coauthoring end **/ - - 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.on('requestclose', _.bind(me.onRequestClose, me)); - - Common.Gateway.sendInfo({ - mode: me.appOptions.isEdit ? 'edit' : 'view' - }); - - if (me.api) { - me.api.Resize(); - me.api.zoomFitToWidth(); - me.api.asc_GetDefaultTableStyles && _.defer(function () {me.api.asc_GetDefaultTableStyles()}); - } - - me.applyLicense(); - - $(document).on('contextmenu', _.bind(me.onContextMenu, me)); - - if (!me.appOptions.canReview) { - me.appOptions.canViewReview = me.appOptions.isEdit || me.api.asc_HaveRevisionsChanges(true); - DE.getController('Common.Controllers.Collaboration').setCanViewReview(me.appOptions.canViewReview); - if (me.appOptions.canViewReview) { - var viewReviewMode = Common.localStorage.getItem("de-view-review-mode"); - if (viewReviewMode===null) - viewReviewMode = me.appOptions.customization && /^(original|final|markup)$/i.test(me.appOptions.customization.reviewDisplay) ? me.appOptions.customization.reviewDisplay.toLocaleLowerCase() : 'original'; - viewReviewMode = (me.appOptions.isEdit || me.appOptions.isRestrictedEdit) ? 'markup' : viewReviewMode; - DE.getController('Common.Controllers.Collaboration').turnDisplayMode(viewReviewMode); - } - } - DE.getController('Toolbar').displayCollaboration(); - - Common.Gateway.documentReady(); - - $('.doc-placeholder').remove(); - }, - - onLicenseChanged: function(params) { - var licType = params.asc_getLicenseType(); - if (licType !== undefined && this.appOptions.canEdit && this.editorConfig.mode !== 'view' && - (licType===Asc.c_oLicenseResult.Connections || licType===Asc.c_oLicenseResult.UsersCount || licType===Asc.c_oLicenseResult.ConnectionsOS || licType===Asc.c_oLicenseResult.UsersCountOS - || licType===Asc.c_oLicenseResult.SuccessLimit && (this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0)) - this._state.licenseType = licType; - - if (this._isDocReady && this._state.licenseType) - this.applyLicense(); - }, - - applyLicense: function() { - var me = this; - if (this.editorConfig.mode !== 'view' && !this.isSupportEditFeature()) { - var value = Common.localStorage.getItem("de-opensource-warning"); - value = (value!==null) ? parseInt(value) : 0; - var now = (new Date).getTime(); - if (now - value > 86400000) { - Common.localStorage.setItem("de-opensource-warning", now); - uiApp.modal({ - title: me.notcriticalErrorTitle, - text : me.errorOpensource, - buttons: [{text: 'OK'}] - }); - } - DE.getController('Toolbar').activateControls(); - return; - } - - if (this._state.licenseType) { - var license = this._state.licenseType, - buttons = [{text: 'OK'}]; - if ((this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0 && - (license===Asc.c_oLicenseResult.SuccessLimit || license===Asc.c_oLicenseResult.ExpiredLimited || this.appOptions.permissionsLicense===Asc.c_oLicenseResult.SuccessLimit)) { - license = (license===Asc.c_oLicenseResult.ExpiredLimited) ? this.warnLicenseLimitedNoAccess : this.warnLicenseLimitedRenewed; - } else if (license===Asc.c_oLicenseResult.Connections || license===Asc.c_oLicenseResult.UsersCount) { - license = (license===Asc.c_oLicenseResult.Connections) ? this.warnLicenseExceeded : this.warnLicenseUsersExceeded; - } else { - license = (license===Asc.c_oLicenseResult.ConnectionsOS) ? this.warnNoLicense : this.warnNoLicenseUsers; - buttons = [{ - text: me.textBuyNow, - bold: true, - onClick: function() { - window.open('{{PUBLISHER_URL}}', "_blank"); - } - }, - { - text: me.textContactUs, - onClick: function() { - window.open('mailto:{{SALES_EMAIL}}', "_blank"); - } - }]; - } - if (this._state.licenseType===Asc.c_oLicenseResult.SuccessLimit) { - DE.getController('Toolbar').activateControls(); - } else { - DE.getController('Toolbar').activateViewControls(); - DE.getController('Toolbar').deactivateEditControls(); - Common.NotificationCenter.trigger('api:disconnect'); - } - - var 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 : license, - buttons: buttons - }); - } - } else { - if (!me.appOptions.isDesktopApp && !me.appOptions.canBrandingExt && - me.editorConfig && me.editorConfig.customization && (me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo)) { - uiApp.modal({ - title: me.textPaidFeature, - text : me.textCustomLoader, - buttons: [{ - text: me.textContactUs, - bold: true, - onClick: function() { - window.open('mailto:{{SALES_EMAIL}}', "_blank"); - } - }, - { text: me.textClose }] - }); - } - DE.getController('Toolbar').activateControls(); - } - }, - - 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; - } - if (Asc.c_oLicenseResult.ExpiredLimited === licType) - me._state.licenseType = licType; - - if ( me.onServerVersion(params.asc_getBuildVersion()) ) return; - - me.appOptions.permissionsLicense = licType; - 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 || licType === Asc.c_oLicenseResult.SuccessLimit); - 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.isSupportEditFeature(); - 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.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 && (me.permissions.comment===undefined ? me.appOptions.isEdit : me.permissions.comment) && (me.editorConfig.mode !== 'view'); - me.appOptions.canComments = me.appOptions.canComments && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); - me.appOptions.canViewComments = me.appOptions.canComments || !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); - me.appOptions.canEditComments= me.appOptions.isOffline || !me.permissions.editCommentAuthorOnly; - me.appOptions.canDeleteComments= me.appOptions.isOffline || !me.permissions.deleteCommentAuthorOnly; - if ((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.commentAuthorOnly===true) { - console.log("Obsolete: The 'commentAuthorOnly' parameter of the 'customization' section is deprecated. Please use 'editCommentAuthorOnly' and 'deleteCommentAuthorOnly' parameters in the permissions instead."); - if (me.permissions.editCommentAuthorOnly===undefined && me.permissions.deleteCommentAuthorOnly===undefined) - me.appOptions.canEditComments = me.appOptions.canDeleteComments = me.appOptions.isOffline; - } - 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); - me.appOptions.fileKey = me.document.key; - me.appOptions.canFillForms = me.appOptions.canLicense && ((me.permissions.fillForms===undefined) ? me.appOptions.isEdit : me.permissions.fillForms) && (me.editorConfig.mode !== 'view'); - me.appOptions.isRestrictedEdit = !me.appOptions.isEdit && (me.appOptions.canComments || me.appOptions.canFillForms); - if (me.appOptions.isRestrictedEdit && me.appOptions.canComments && me.appOptions.canFillForms) // must be one restricted mode, priority for filling forms - me.appOptions.canComments = false; - me.appOptions.trialMode = params.asc_getLicenseMode(); - - var type = /^(?:(pdf|djvu|xps))$/.exec(me.document.fileType); - me.appOptions.canDownloadOrigin = me.permissions.download !== false && (type && typeof type[1] === 'string'); - me.appOptions.canDownload = me.permissions.download !== false && (!type || typeof type[1] !== 'string'); - me.appOptions.canReader = (!type || typeof type[1] !== 'string'); - - me.appOptions.canBranding = params.asc_getCustomization(); - me.appOptions.canBrandingExt = params.asc_getCanBranding() && (typeof me.editorConfig.customization == 'object'); - - if ( me.appOptions.isLightVersion ) { - me.appOptions.canUseHistory = me.appOptions.canReview = me.appOptions.isReviewOnly = false; - } - - me.appOptions.canUseReviewPermissions = me.appOptions.canLicense && (!!me.permissions.reviewGroups || - me.editorConfig.customization && me.editorConfig.customization.reviewPermissions && (typeof (me.editorConfig.customization.reviewPermissions) == 'object')); - me.appOptions.canUseCommentPermissions = me.appOptions.canLicense && !!me.permissions.commentGroups; - AscCommon.UserInfoParser.setParser(me.appOptions.canUseReviewPermissions || me.appOptions.canUseCommentPermissions); - AscCommon.UserInfoParser.setCurrentName(me.appOptions.user.fullname); - me.appOptions.canUseReviewPermissions && AscCommon.UserInfoParser.setReviewPermissions(me.permissions.reviewGroups, me.editorConfig.customization.reviewPermissions); - me.appOptions.canUseCommentPermissions && AscCommon.UserInfoParser.setCommentPermissions(me.permissions.commentGroups); - - me.applyModeCommonElements(); - me.applyModeEditorElements(); - - me.api.asc_setViewMode(!me.appOptions.isEdit && !me.appOptions.isRestrictedEdit); - me.appOptions.isRestrictedEdit && this.appOptions.canComments && me.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyComments); - me.appOptions.isRestrictedEdit && me.appOptions.canFillForms && me.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyForms); - me.api.asc_LoadDocument(); - me.api.Resize(); - - if (!me.appOptions.isEdit) { - me.hidePreloader(); - me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); - } - if (me.appOptions.canBrandingExt && (me.editorConfig.customization && (me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo))) { - $('#editor-navbar #navbar-logo').hide(); - $('#editor-navbar').removeClass('logo-navbar'); - $('#editor_sdk').removeClass('with-logo'); - } - }, - - applyModeCommonElements: function() { - var me = this; - - window.editor_elements_prepared = true; - - _.each(me.getApplication().controllers, function(controller) { - if (controller && _.isFunction(controller.setMode)) { - controller.setMode(me.appOptions); - } - }); - - if (me.api) { - me.api.asc_registerCallback('asc_onSendThemeColors', _.bind(me.onSendThemeColors, me)); - me.api.asc_registerCallback('asc_onDownloadUrl', _.bind(me.onDownloadUrl, me)); - me.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me)); - me.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me)); - me.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(me.onUserConnection, me)); - } - }, - - applyModeEditorElements: function() { - if (this.appOptions.isEdit) { - var me = this; - - var value = Common.localStorage.getItem('de-mobile-settings-unit'); - value = (value!==null) ? parseInt(value) : (this.appOptions.customization && this.appOptions.customization.unit ? Common.Utils.Metric.c_MetricUnits[this.appOptions.customization.unit.toLocaleLowerCase()] : Common.Utils.Metric.getDefaultMetric()); - (value===undefined) && (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)); - - me.api.asc_registerCallback('asc_onDocumentModifiedChanged', _.bind(me.onDocumentModifiedChanged, me)); - me.api.asc_registerCallback('asc_onDocumentCanSaveChanged', _.bind(me.onDocumentCanSaveChanged, me)); - /** coauthoring begin **/ - me.api.asc_registerCallback('asc_onCollaborativeChanges', _.bind(me.onCollaborativeChanges, me)); - me.api.asc_registerCallback('asc_OnTryUndoInFastCollaborative',_.bind(me.onTryUndoInFastCollaborative, 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); - } - }, - - onExternalMessage: function(msg) { - if (msg && msg.msg) { - msg.msg = (msg.msg).toString(); - uiApp.addNotification({ - title: uiApp.params.modalTitle, - message: [msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)] - }); - - Common.component.Analytics.trackEvent('External Error'); - } - }, - - onError: function(id, level, errData) { - if (id == Asc.c_oAscError.ID.LoadingScriptError) { - uiApp.addNotification({ - title: this.criticalErrorTitle, - message: this.scriptLoadError - }); - return; - } - - this.hidePreloader(); - this.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); - - var config = { - closable: false - }; - - switch (id) - { - case Asc.c_oAscError.ID.Unknown: - config.msg = this.unknownErrorText; - break; - - case Asc.c_oAscError.ID.ConvertationTimeout: - config.msg = this.convertationTimeoutText; - break; - - case Asc.c_oAscError.ID.ConvertationOpenError: - config.msg = this.openErrorText; - break; - - case Asc.c_oAscError.ID.ConvertationSaveError: - config.msg = this.saveErrorText; - break; - - case Asc.c_oAscError.ID.DownloadError: - config.msg = this.downloadErrorText; - break; - - case Asc.c_oAscError.ID.UplImageSize: - config.msg = this.uploadImageSizeMessage; - break; - - case Asc.c_oAscError.ID.UplImageExt: - config.msg = this.uploadImageExtMessage; - break; - - case Asc.c_oAscError.ID.UplImageFileCount: - config.msg = this.uploadImageFileCountMessage; - break; - - case Asc.c_oAscError.ID.SplitCellMaxRows: - config.msg = this.splitMaxRowsErrorText.replace('%1', errData.get_Value()); - break; - - case Asc.c_oAscError.ID.SplitCellMaxCols: - config.msg = this.splitMaxColsErrorText.replace('%1', errData.get_Value()); - break; - - case Asc.c_oAscError.ID.SplitCellRowsDivider: - config.msg = this.splitDividerErrorText.replace('%1', errData.get_Value()); - break; - - case Asc.c_oAscError.ID.VKeyEncrypt: - config.msg = this.errorKeyEncrypt; - break; - - case Asc.c_oAscError.ID.KeyExpire: - config.msg = this.errorKeyExpire; - break; - - case Asc.c_oAscError.ID.UserCountExceed: - config.msg = this.errorUsersExceed; - break; - - case Asc.c_oAscError.ID.CoAuthoringDisconnect: - config.msg = this.errorViewerDisconnect; - break; - - case Asc.c_oAscError.ID.ConvertationPassword: - config.msg = this.errorFilePassProtect; - 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.MailMergeLoadFile: - config.msg = this.errorMailMergeLoadFile; - break; - - case Asc.c_oAscError.ID.MailMergeSaveFile: - config.msg = this.errorMailMergeSaveFile; - break; - - case Asc.c_oAscError.ID.Warning: - config.msg = this.errorConnectToServer; - break; - - case Asc.c_oAscError.ID.UplImageUrl: - config.msg = this.errorBadImageUrl; - break; - - case Asc.c_oAscError.ID.SessionAbsolute: - config.msg = this.errorSessionAbsolute; - break; - - case Asc.c_oAscError.ID.SessionIdle: - config.msg = this.errorSessionIdle; - break; - - case Asc.c_oAscError.ID.SessionToken: - config.msg = this.errorSessionToken; - break; - - case Asc.c_oAscError.ID.DataEncrypted: - config.msg = this.errorDataEncrypted; - break; - - case Asc.c_oAscError.ID.AccessDeny: - config.msg = this.errorAccessDeny; - break; - - case Asc.c_oAscError.ID.EditingError: - config.msg = this.errorEditingDownloadas; - break; - - case Asc.c_oAscError.ID.ConvertationOpenLimitError: - config.msg = this.errorFileSizeExceed; - break; - - case Asc.c_oAscError.ID.UpdateVersion: - config.msg = this.errorUpdateVersionOnDisconnect; - break; - - default: - config.msg = this.errorDefaultMessage.replace('%1', id); - break; - } - - - if (level == Asc.c_oAscError.Level.Critical) { - - // report only critical errors - Common.Gateway.reportError(id, config.msg); - - config.title = this.criticalErrorTitle; -// config.iconCls = 'error'; - - if (this.appOptions.canBackToFolder && !this.appOptions.isDesktopApp) { - config.msg += '

' + this.criticalErrorExtText; - config.callback = function() { - Common.NotificationCenter.trigger('goback', true); - } - } - if (id == Asc.c_oAscError.ID.DataEncrypted) { - this.api.asc_coAuthoringDisconnect(); - Common.NotificationCenter.trigger('api:disconnect'); - } - } - else { - Common.Gateway.reportWarning(id, config.msg); - - config.title = this.notcriticalErrorTitle; - config.callback = _.bind(function(btn){ - 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); - } - - uiApp.modal({ - title : config.title, - text : config.msg, - buttons: [ - { - text: 'OK', - onClick: config.callback - } - ] - }); - - Common.component.Analytics.trackEvent('Internal Error', id.toString()); - }, - - onCoAuthoringDisconnect: function() { - this._state.isDisconnected = true; - }, - - 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; - - this._isDocReady && (this._state.isDocModified !== isModified) && Common.Gateway.setDocumentModified(isModified); - this._state.isDocModified = isModified; - } - }, - - onDocumentModifiedChanged: function() { - var isModified = this.api.asc_isDocumentCanSave(); - if (this._state.isDocModified !== isModified) { - this._isDocReady && Common.Gateway.setDocumentModified(this.api.isDocumentModified()); - } - - this.updateWindowTitle(); - }, - - onDocumentCanSaveChanged: function (isCanSave) { - // - }, - - onBeforeUnload: function() { - 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() { - $('#loading-mask').hide().remove(); - }, - - onDownloadUrl: function(url) { - if (this._state.isFromGatewayDownloadAs) { - Common.Gateway.downloadAs(url); - } - - 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); - }) - }); - }, - - onServerVersion: function(buildVersion) { - var me = this; - if (me.changeServerVersion) return true; - - if (DocsAPI.DocEditor.version() !== buildVersion && !window.compareVersions) { - me.changeServerVersion = true; - uiApp.alert( - me.errorServerVersion, - me.titleServerVersion, - function () { - _.defer(function() { - Common.Gateway.updateVersion(); - }) - }); - return true; - } - return false; - }, - - onCollaborativeChanges: function() { - // - }, - /** coauthoring end **/ - - updateThemeColors: function() { - // - }, - - onSendThemeColors: function(colors, standart_colors) { - }, - - onAdvancedOptions: function(type, advOptions, mode, formatOptions) { - if (this._state.openDlg) return; - - var me = this; - if (type == Asc.c_oAscAdvancedOptionsID.TXT) { - var picker, - pages = [], - pagesName = []; - - _.each(advOptions.asc_getCodePages(), function(page) { - pages.push(page.asc_getCodePage()); - pagesName.push(page.asc_getCodePageName()); - }); - - $(me.loadMask).hasClass('modal-in') && uiApp.closeModal(me.loadMask); - - me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - - var buttons = []; - if (mode === 2) { - buttons.push({ - text: me.textCancel, - onClick: function () { - me._state.openDlg = null; - } - }); - } - buttons.push({ - text: 'OK', - bold: true, - onClick: function() { - var encoding = picker.value; - - if (me.api) { - if (mode==2) { - formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(encoding)); - me.api.asc_DownloadAs(formatOptions); - } else { - me.api.asc_setAdvancedOptions(type, new Asc.asc_CTextOptions(encoding)); - } - - if (!me._isDocReady) { - me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); - } - } - me._state.openDlg = null; - } - }); - - me._state.openDlg = uiApp.modal({ - title: me.advTxtOptions, - text: '', - afterText: - '
' + - '
' + - '
Encoding
' + - '
' + - '
' + - '
', - buttons: buttons - }); - - picker = uiApp.picker({ - container: '#txt-encoding', - toolbar: false, - rotateEffect: true, - value: [advOptions.asc_getRecommendedSettings().asc_getCodePage()], - cols: [{ - values: pages, - displayValues: pagesName - }] - }); - - // Vertical align - $$(me._state.openDlg).css({ - marginTop: - Math.round($$(me._state.openDlg).outerHeight() / 2) + 'px' - }); - - } else if (type == Asc.c_oAscAdvancedOptionsID.DRM) { - $(me.loadMask).hasClass('modal-in') && uiApp.closeModal(me.loadMask); - - me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - - var buttons = [{ - text: 'OK', - bold: true, - close: false, - onClick: function () { - if (!me._state.openDlg) return; - $(me._state.openDlg).hasClass('modal-in') && uiApp.closeModal(me._state.openDlg); - var password = $(me._state.openDlg).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); - } - me._state.openDlg = null; - } - }]; - if (me.appOptions.canRequestClose) - buttons.push({ - text: me.closeButtonText, - onClick: function () { - Common.Gateway.requestClose(); - me._state.openDlg = null; - } - }); - - me._state.openDlg = uiApp.modal({ - title: me.advDRMOptions, - text: (typeof advOptions=='string' ? advOptions : me.txtProtected), - afterText: '
', - buttons: buttons - }); - - // Vertical align - $$(me._state.openDlg).css({ - marginTop: - Math.round($$(me._state.openDlg).outerHeight() / 2) + 'px' - }); - } - }, - - onTryUndoInFastCollaborative: function() { - uiApp.alert( - this.textTryUndoRedo, - this.notcriticalErrorTitle - ); - }, - - onAuthParticipantsChanged: function(users) { - var length = 0; - _.each(users, function(item){ - if (!item.asc_getView()) - length++; - }); - this._state.usersCount = length; - }, - - onUserConnection: function(change){ - if (change && this.appOptions.user.guest && this.appOptions.canRenameAnonymous && (change.asc_getIdOriginal() == this.appOptions.user.id)) { // change name of the current user - var name = change.asc_getUserName(); - if (name && name !== AscCommon.UserInfoParser.getCurrentName() ) { - AscCommon.UserInfoParser.setCurrentName(name); - } - } - }, - - onDocumentName: function(name) { -// this.getApplication().getController('Viewport').getView('Common.Views.Header').setDocumentCaption(name); - this.updateWindowTitle(true); - }, - - onPrint: function() { - if (!this.appOptions.canPrint) return; - - if (this.api) - this.api.asc_Print(); - Common.component.Analytics.trackEvent('Print'); - }, - - onPrintUrl: function(url) { - var me = this; - - if (me.iframePrint) { - me.iframePrint.parentNode.removeChild(me.iframePrint); - me.iframePrint = null; - } - - if (!me.iframePrint) { - 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(); - }; - } - - if (url) { - me.iframePrint.src = url; - } - }, - - onContextMenu: function(event){ - var canCopyAttr = event.target.getAttribute('data-can-copy'), - isInputEl = (event.target instanceof HTMLInputElement) || (event.target instanceof HTMLTextAreaElement); - - if ((isInputEl && canCopyAttr === 'false') || - (!isInputEl && canCopyAttr !== 'true')) { - event.stopPropagation(); - event.preventDefault(); - return false; - } - }, - - isSupportEditFeature: function() { - return false; - }, - - onRunAutostartMacroses: function() { - var me = this, - enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); - if (enable) { - var value = Common.Utils.InternalSettings.get("de-mobile-macros-mode"); - if (value==1) - this.api.asc_runAutostartMacroses(); - else if (value === 0) { - uiApp.modal({ - title: this.notcriticalErrorTitle, - text: this.textHasMacros, - afterText: '', - buttons: [{ - text: this.textYes, - onClick: function () { - var dontshow = $('input[name="checkbox-show-macros"]').prop('checked'); - if (dontshow) { - Common.Utils.InternalSettings.set("de-mobile-macros-mode", 1); - Common.localStorage.setItem("de-mobile-macros-mode", 1); - } - setTimeout(function() { - me.api.asc_runAutostartMacroses(); - }, 1); - } - }, - { - text: this.textNo, - onClick: function () { - var dontshow = $('input[name="checkbox-show-macros"]').prop('checked'); - if (dontshow) { - Common.Utils.InternalSettings.set("de-mobile-macros-mode", 2); - Common.localStorage.setItem("de-mobile-macros-mode", 2); - } - } - }] - }); - } - } - }, - - 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.', - criticalErrorTitle: 'Error', - notcriticalErrorTitle: 'Warning', - errorDefaultMessage: 'Error code: %1', - criticalErrorExtText: 'Press "OK" 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...', - savePreparingText: 'Preparing to save', - savePreparingTitle: 'Preparing to save. Please wait...', - uploadImageSizeMessage: 'Maximium image size limit exceeded.', - uploadImageExtMessage: 'Unknown image format.', - uploadImageFileCountMessage: 'No images uploaded.', - unknownErrorText: 'Unknown error.', - convertationTimeoutText: 'Convertation timeout exceeded.', - downloadErrorText: 'Download failed.', - unsupportedBrowserErrorText: 'Your browser is not supported.', - splitMaxRowsErrorText: 'The number of rows 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', - textLoadingDocument: 'Loading document', - applyChangesTitleText: 'Loading Data', - applyChangesTextText: 'Loading data...', - errorKeyEncrypt: 'Unknown key descriptor', - errorKeyExpire: 'Key descriptor expired', - errorUsersExceed: 'Count of users was exceed', - errorCoAuthoringDisconnect: 'Server connection lost. You can\'t edit anymore.', - errorFilePassProtect: 'The file is password protected and could not be opened.', - txtEditingMode: 'Set editing mode...', - textAnonymous: 'Anonymous', - loadingDocumentTitleText: 'Loading document', - loadingDocumentTextText: 'Loading document...', - warnProcessRightsChange: 'You have been denied the right to edit the file.', - errorProcessSaveResult: 'Saving is failed.', - errorStockChart: 'Incorrect row order. To build a stock chart place the data on the sheet in the following order:
opening price, max price, min price, closing price.', - errorDataRange: 'Incorrect data range.', - errorDatabaseConnection: 'External error.
Database connection error. Please, contact support.', - titleUpdateVersion: 'Version changed', - 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', - errorMailMergeLoadFile: 'Loading failed', - mailMergeLoadFileText: 'Loading Data Source...', - mailMergeLoadFileTitle: 'Loading Data Source', - errorMailMergeSaveFile: 'Merge failed.', - downloadMergeText: 'Downloading...', - downloadMergeTitle: 'Downloading', - sendMergeTitle: 'Sending Merge', - sendMergeText: 'Sending Merge...', - txtArt: 'Your text here', - errorConnectToServer: ' The document could not be saved. Please check connection settings or contact your administrator.
When you click the \'OK\' button, you will be prompted to download the document.', - textTryUndoRedo: 'The Undo/Redo functions are disabled for the Fast co-editing mode.', - textBuyNow: 'Visit website', - textNoLicenseTitle: 'License limit reached', - textContactUs: 'Contact sales', - errorViewerDisconnect: 'Connection is lost. You can still view the document,
but will not be able to download until the connection is restored and page is reloaded.', - warnLicenseExp: 'Your license has expired.
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', - advTxtOptions: 'Choose TXT Options', - advDRMOptions: 'Protected File', - advDRMEnterPassword: 'You password please:', - advDRMPassword: 'Password', - textOK: 'OK', - textCancel: 'Cancel', - textPreloader: 'Loading... ', - textUsername: 'Username', - textPassword: 'Password', - textBack: 'Back', - textClose: 'Close', - textDone: 'Done', - titleServerVersion: 'Editor updated', - errorServerVersion: 'The editor version has been updated. The page will be reloaded to apply the changes.', - errorBadImageUrl: 'Image url is incorrect', - txtStyle_Normal: 'Normal', - txtStyle_No_Spacing: 'No Spacing', - txtStyle_Heading_1: 'Heading 1', - txtStyle_Heading_2: 'Heading 2', - txtStyle_Heading_3: 'Heading 3', - txtStyle_Heading_4: 'Heading 4', - txtStyle_Heading_5: 'Heading 5', - txtStyle_Heading_6: 'Heading 6', - txtStyle_Heading_7: 'Heading 7', - txtStyle_Heading_8: 'Heading 8', - txtStyle_Heading_9: 'Heading 9', - txtStyle_Title: 'Title', - txtStyle_Subtitle: 'Subtitle', - txtStyle_Quote: 'Quote', - txtStyle_Intense_Quote: 'Intense Quote', - txtStyle_List_Paragraph: 'List Paragraph', - txtStyle_footnote_text: 'Footnote Text', - txtHeader: "Header", - txtFooter: "Footer", - txtProtected: 'Once you enter the password and open the file, the current password to the file will be reset', - warnNoLicense: "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
Contact %1 sales team for personal upgrade terms.", - warnNoLicenseUsers: "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", - warnLicenseExceeded: "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
Contact your administrator to learn more.", - warnLicenseUsersExceeded: "You've reached the user limit for %1 editors. Contact your administrator to learn more.", - errorDataEncrypted: 'Encrypted changes have been received, they cannot be deciphered.', - closeButtonText: 'Close File', - scriptLoadError: 'The connection is too slow, some of the components could not be loaded. Please reload the page.', - errorAccessDeny: 'You are trying to perform an action you do not have rights for.
Please contact your Document Server administrator.', - errorEditingDownloadas: 'An error occurred during the work with the document.
Use the \'Download\' option to save the file backup copy to your computer hard drive.', - textPaidFeature: 'Paid feature', - textCustomLoader: 'Please note that according to the terms of the license you are not entitled to change the loader.
Please contact our Sales Department to get a quote.', - waitText: 'Please, wait...', - errorFileSizeExceed: 'The file size exceeds the limitation set for your server.
Please contact your Document Server administrator for details.', - errorUpdateVersionOnDisconnect: 'Internet connection has been restored, and the file version has been changed.
Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.', - errorOpensource: 'Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.', - textHasMacros: 'The file contains automatic macros.
Do you want to run macros?', - textRemember: 'Remember my choice', - textYes: 'Yes', - textNo: 'No', - errorSessionAbsolute: 'The document editing session has expired. Please reload the page.', - errorSessionIdle: 'The document has not been edited for quite a long time. Please reload the page.', - errorSessionToken: 'The connection to the server has been interrupted. Please reload the page.', - warnLicenseLimitedRenewed: 'License needs to be renewed.
You have a limited access to document editing functionality.
Please contact your administrator to get full access', - warnLicenseLimitedNoAccess: 'License expired.
You have no access to document editing functionality.
Please contact your administrator.', - textGuest: 'Guest', - txtAbove: "above", - txtBelow: "below", - txtOnPage: "on page", - txtSection: "-Section", - txtFirstPage: "First Page", - txtEvenPage: "Even Page", - txtOddPage: "Odd Page", - txtSameAsPrev: "Same as Previous", - txtCurrentDocument: "Current Document" - } - })(), DE.Controllers.Main || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/Search.js b/apps/documenteditor/mobile/app/controller/Search.js deleted file mode 100644 index 6d3e7caca..000000000 --- a/apps/documenteditor/mobile/app/controller/Search.js +++ /dev/null @@ -1,369 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Search.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/15/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'documenteditor/mobile/app/view/Search' -], function (core, $, _, Backbone) { - 'use strict'; - - DE.Controllers.Search = Backbone.Controller.extend(_.extend((function() { - // private - - var _isShow = false, - _startPoint = {}; - - var pointerEventToXY = function(e){ - var out = {x:0, y:0}; - if(e.type == 'touchstart' || e.type == 'touchend'){ - var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - out.x = touch.pageX; - out.y = touch.pageY; - } else if (e.type == 'mousedown' || e.type == 'mouseup') { - out.x = e.pageX; - out.y = e.pageY; - } - return out; - }; - - function iOSVersion() { - var ua = navigator.userAgent.toLowerCase(); - var isAppleDevices = (ua.indexOf("ipad") > -1 || ua.indexOf("iphone") > -1 || ua.indexOf("ipod") > -1); - if (!isAppleDevices && Common.Utils.isSafari && Common.Utils.isMac && (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1)) - isAppleDevices = true; - - var iosversion = 0; - if (isAppleDevices) { - iosversion = 13; - try - { - var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/); - if (!v) v = (navigator.appVersion).match(/Version\/(\d+).(\d+)/); - iosversion = parseInt(v[1], 10); - } - catch (err) {} - } - return iosversion; - } - - return { - models: [], - collections: [], - views: [ - 'Search' - ], - - initialize: function() { - this.addListeners({ - 'Search': { - 'searchbar:show' : this.onSearchbarShow, - 'searchbar:hide' : this.onSearchbarHide, - 'searchbar:render' : this.onSearchbarRender, - 'searchbar:showsettings': this.onSearchbarSettings - } - }); - }, - - setApi: function(api) { - this.api = api; - }, - - setMode: function (mode) { - this.getView('Search').setMode(mode); - }, - - onLaunch: function() { - var me = this; - me.createView('Search').render(); - - if (iOSVersion()<13) { - $('#editor_sdk').single('mousedown touchstart', _.bind(me.onEditorTouchStart, me)); - $('#editor_sdk').single('mouseup touchend', _.bind(me.onEditorTouchEnd, me)); - } else { - $('#editor_sdk').single('pointerdown', _.bind(me.onEditorTouchStart, me)); - $('#editor_sdk').single('pointerup', _.bind(me.onEditorTouchEnd, me)); - } - - Common.NotificationCenter.on('readermode:change', function (reader) { - _startPoint = {}; - }); - }, - - showSearch: function () { - this.getView('Search').showSearch(); - }, - - hideSearch: function () { - this.getView('Search').hideSearch(); - }, - - // Handlers - - onEditorTouchStart: function (e) { - _startPoint = pointerEventToXY(e); - }, - - onEditorTouchEnd: function (e) { - var _endPoint = pointerEventToXY(e); - - if (_isShow) { - var distance = (_startPoint.x===undefined || _startPoint.y===undefined) ? 0 : - Math.sqrt((_endPoint.x -= _startPoint.x) * _endPoint.x + (_endPoint.y -= _startPoint.y) * _endPoint.y); - - if (distance < 1) { - this.hideSearch(); - } - } - }, - - onSearchbarRender: function(bar) { - var me = this, - searchString = Common.SharedSettings.get('search-search') || '', - replaceString = Common.SharedSettings.get('search-replace')|| ''; - - me.searchBar = uiApp.searchbar('.searchbar.document .searchbar.search', { - customSearch: true, - onSearch : _.bind(me.onSearchChange, me), - onEnable : _.bind(me.onSearchEnable, me), - onClear : _.bind(me.onSearchClear, me) - }); - - me.replaceBar = uiApp.searchbar('.searchbar.document .searchbar.replace', { - customSearch: true, - onSearch : _.bind(me.onReplaceChange, me), - onEnable : _.bind(me.onReplaceEnable, me), - onClear : _.bind(me.onReplaceClear, me) - }); - - me.searchPrev = $('.searchbar.document .prev'); - me.searchNext = $('.searchbar.document .next'); - me.replaceBtn = $('.searchbar.document .link.replace'); - - me.searchPrev.single('click', _.bind(me.onSearchPrev, me)); - me.searchNext.single('click', _.bind(me.onSearchNext, me)); - me.replaceBtn.single('click', _.bind(me.onReplace, me)); - - $$('.searchbar.document .link.replace').on('taphold', _.bind(me.onReplaceAll, me)); - - me.searchBar.search(searchString); - me.replaceBar.search(replaceString); - }, - - onSearchbarSettings: function (view) { - var strictBool = function (settingName) { - var value = Common.SharedSettings.get(settingName); - return !_.isUndefined(value) && (value === true); - }; - - var me = this, - isReplace = strictBool('search-is-replace'), - isCaseSensitive = strictBool('search-case-sensitive'), - isHighlight = strictBool('search-highlight'), - $pageSettings = $('.page[data-page=search-settings]'), - $inputType = $pageSettings.find('input[name=search-type]'), - $inputCase = $pageSettings.find('#search-case-sensitive input:checkbox'), - $inputHighlight = $pageSettings.find('#search-highlight-results input:checkbox'); - - $inputType.val([isReplace ? 'replace' : 'search']); - $inputCase.prop('checked', isCaseSensitive); - $inputHighlight.prop('checked', isHighlight); - - // init events - $inputType.single('change', _.bind(me.onTypeChange, me)); - $inputCase.single('change', _.bind(me.onCaseClick, me)); - $inputHighlight.single('change', _.bind(me.onHighlightClick, me)); - }, - - onSearchbarShow: function(bar) { - _isShow = true; - this.api.asc_selectSearchingResults(Common.SharedSettings.get('search-highlight')); - }, - - onSearchEnable: function (bar) { - this.replaceBar.container.removeClass('searchbar-active'); - }, - - onSearchbarHide: function(bar) { - _isShow = false; - this.api.asc_selectSearchingResults(false); - }, - - onSearchChange: function(search) { - var me = this, - isEmpty = (search.query.trim().length < 1); - - Common.SharedSettings.set('search-search', search.query); - - _.each([me.searchPrev, me.searchNext, me.replaceBtn], function(btn) { - btn.toggleClass('disabled', isEmpty); - }); - }, - - onSearchClear: function(search) { - Common.SharedSettings.set('search-search', ''); -// window.focus(); -// document.activeElement.blur(); - }, - - onReplaceChange: function(replace) { - var me = this, - isEmpty = (replace.query.trim().length < 1); - - Common.SharedSettings.set('search-replace', replace.query); - }, - - onReplaceEnable: function (bar) { - this.searchBar.container.removeClass('searchbar-active'); - }, - - onReplaceClear: function(replace) { - Common.SharedSettings.set('search-replace', ''); - }, - - onSearchPrev: function(btn) { - this.onQuerySearch(this.searchBar.query, 'back'); - }, - - onSearchNext: function(btn) { - this.onQuerySearch(this.searchBar.query, 'next'); - }, - - onReplace: function (btn) { - this.onQueryReplace(this.searchBar.query, this.replaceBar.query); - }, - - onReplaceAll: function (e) { - var me = this, - popover = [ - '' - ].join(''); - - popover = uiApp.popover(popover, $$(e.currentTarget)); - - $('#replace-all').single('click', _.bind(function () { - me.onQueryReplaceAll(this.searchBar.query, this.replaceBar.query); - uiApp.closeModal(popover); - }, me)) - }, - - onQuerySearch: function(query, direction) { - var matchcase = Common.SharedSettings.get('search-case-sensitive') || false, - matchword = Common.SharedSettings.get('search-highlight') || false; - - if (query && query.length) { - if (!this.api.asc_findText(query, direction != 'back', matchcase, matchword)) { - var me = this; - uiApp.alert( - '', - me.textNoTextFound, - function () { - me.searchBar.input.focus(); - } - ); - } - } - }, - - onQueryReplace: function(search, replace) { - var matchcase = Common.SharedSettings.get('search-case-sensitive') || false, - matchword = Common.SharedSettings.get('search-highlight') || false; - - if (search && search.length) { - if (!this.api.asc_replaceText(search, replace || '', false, matchcase, matchword)) { - var me = this; - uiApp.alert( - '', - me.textNoTextFound, - function () { - me.searchBar.input.focus(); - } - ); - } - } - }, - - onQueryReplaceAll: function(search, replace) { - var matchcase = Common.SharedSettings.get('search-case-sensitive') || false, - matchword = Common.SharedSettings.get('search-highlight') || false; - - if (search && search.length) { - this.api.asc_replaceText(search, replace || '', true, matchcase, matchword); - } - }, - - onTypeChange: function (e) { - var me = this, - $target = $(e.currentTarget), - isReplace = ($target.val() === 'replace'); - - Common.SharedSettings.set('search-is-replace', isReplace); - $('.searchbar.document').toggleClass('replace', isReplace); - }, - - onCaseClick: function (e) { - Common.SharedSettings.set('search-case-sensitive', $(e.currentTarget).is(':checked')); - }, - - onHighlightClick: function (e) { - Common.SharedSettings.set('search-highlight', $(e.currentTarget).is(':checked')); - this.api.asc_selectSearchingResults(Common.SharedSettings.get('search-highlight')); - }, - - // API handlers - - textNoTextFound: 'Text not found', - textReplaceAll: 'Replace All' - } - })(), DE.Controllers.Search || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/Settings.js b/apps/documenteditor/mobile/app/controller/Settings.js deleted file mode 100644 index 56075a122..000000000 --- a/apps/documenteditor/mobile/app/controller/Settings.js +++ /dev/null @@ -1,793 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Settings.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/7/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'documenteditor/mobile/app/view/Settings', - 'common/mobile/lib/controller/Collaboration' -], function (core, $, _, Backbone) { - 'use strict'; - - DE.Controllers.Settings = Backbone.Controller.extend(_.extend((function() { - // private - var rootView, - inProgress, - infoObj, - modalView, - _isPortrait = false, - _pageSizesIndex = 0, - _pageSizesCurrent = [0, 0], - txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm), - _pageSizes = [ - { caption: 'US Letter', subtitle: Common.Utils.String.format('21,59{0} x 27,94{0}', txtCm), value: [215.9, 279.4] }, - { caption: 'US Legal', subtitle: Common.Utils.String.format('21,59{0} x 35,56{0}', txtCm), value: [215.9, 355.6] }, - { caption: 'A4', subtitle: Common.Utils.String.format('21{0} x 29,7{0}', txtCm), value: [210, 297] }, - { caption: 'A5', subtitle: Common.Utils.String.format('14,8{0} x 21{0}', txtCm), value: [148, 210] }, - { caption: 'B5', subtitle: Common.Utils.String.format('17,6{0} x 25{0}', txtCm), value: [176, 250] }, - { caption: 'Envelope #10', subtitle: Common.Utils.String.format('10,48{0} x 24,13{0}', txtCm), value: [104.8, 241.3] }, - { caption: 'Envelope DL', subtitle: Common.Utils.String.format('11{0} x 22{0}', txtCm), value: [110, 220] }, - { caption: 'Tabloid', subtitle: Common.Utils.String.format('27,94{0} x 43,18{0}', txtCm), value: [279.4, 431.8] }, - { caption: 'A3', subtitle: Common.Utils.String.format('29,7{0} x 42{0}', txtCm), value: [297, 420] }, - { caption: 'Tabloid Oversize', subtitle: Common.Utils.String.format('30,48{0} x 45,71{0}', txtCm), value: [304.8, 457.1] }, - { caption: 'ROC 16K', subtitle: Common.Utils.String.format('19,68{0} x 27,3{0}', txtCm), value: [196.8, 273] }, - { caption: 'Envelope Choukei 3', subtitle: Common.Utils.String.format('11,99{0} x 23,49{0}', txtCm), value: [119.9, 234.9] }, - { caption: 'Super B/A3', subtitle: Common.Utils.String.format('33,02{0} x 48,25{0}', txtCm), value: [330.2, 482.5] }, - { caption: 'A0', subtitle: Common.Utils.String.format('84,1{0} x 118,9{0}', txtCm), value: [841, 1189] }, - { caption: 'A1', subtitle: Common.Utils.String.format('59,4{0} x 84,1{0}', txtCm), value: [594, 841] }, - { caption: 'A2', subtitle: Common.Utils.String.format('42{0} x 59,4{0}', txtCm), value: [420, 594] }, - { caption: 'A6', subtitle: Common.Utils.String.format('10,5{0} x 14,8{0}', txtCm), value: [105, 148] } - ], - _licInfo, - _canReview = false, - _isReviewOnly = false, - _fileKey, - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _isEdit, - _lang; - - var mm2Cm = function(mm) { - return parseFloat((mm/10.).toFixed(2)); - }; - - var cm2Mm = function(cm) { - return cm * 10.; - }; - - return { - models: [], - collections: [], - views: [ - 'Settings' - ], - - initialize: function () { - var me = this; - - Common.SharedSettings.set('readerMode', false); - Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this)); - - me.maxMarginsW = me.maxMarginsH = 0; - me.localSectionProps = null; - - me.addListeners({ - 'Settings': { - 'page:show' : me.onPageShow - } - }); - - uiApp.onPageAfterBack('margin-view', function (page) { - me.applyPageMarginsIfNeed() - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onGetDocInfoStart', _.bind(me.onApiGetDocInfoStart, me)); - me.api.asc_registerCallback('asc_onGetDocInfoStop', _.bind(me.onApiGetDocInfoEnd, me)); - me.api.asc_registerCallback('asc_onDocInfo', _.bind(me.onApiDocInfo, me)); - me.api.asc_registerCallback('asc_onGetDocInfoEnd', _.bind(me.onApiGetDocInfoEnd, me)); - me.api.asc_registerCallback('asc_onDocumentName', _.bind(me.onApiDocumentName, me)); - me.api.asc_registerCallback('asc_onDocSize', _.bind(me.onApiPageSize, me)); - me.api.asc_registerCallback('asc_onPageOrient', _.bind(me.onApiPageOrient, me)); - me.api.asc_registerCallback('asc_onSendThemeColorSchemes', _.bind(me.onSendThemeColorSchemes, me)); - }, - - onLaunch: function () { - this.createView('Settings').render(); - }, - - setMode: function (mode) { - this.getView('Settings').setMode(mode); - if (mode.isDisconnected) { - _canReview = _isReviewOnly = _isEdit = false; - } else { - if (mode.canBranding) - _licInfo = mode.customization; - _canReview = mode.canReview; - _isReviewOnly = mode.isReviewOnly; - _fileKey = mode.fileKey; - _isEdit = mode.isEdit; - _lang = mode.lang; - } - }, - - initEvents: function () { - }, - - rootView : function() { - return rootView; - }, - - showModal: function() { - uiApp.closeModal(); - - if (Common.SharedSettings.get('phone')) { - modalView = uiApp.popup( - '' - ); - } else { - modalView = uiApp.popover( - '
' + - '
' + - '
' + - '
' + - '' + - '
' + - '
' + - '
', - $$('#toolbar-settings') - ); - } - - if (Framework7.prototype.device.android === true) { - $$('.view.settings-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.settings-root-view .navbar').prependTo('.view.settings-root-view > .pages > .page'); - } - - rootView = uiApp.addView('.settings-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('settingscontainer:show'); - this.onPageShow(this.getView('Settings')); - }, - - hideModal: function() { - if (modalView) { - uiApp.closeModal(modalView); - } - }, - - onPageShow: function(view, pageId) { - var me = this; - - if ('#settings-document-view' == pageId) { - me.initPageDocumentSettings(); - Common.Utils.addScrollIfNeed('.page[data-page=settings-document-view]', '.page[data-page=settings-document-view] .page-content'); - } else if ('#settings-document-formats-view' == pageId) { - me.getView('Settings').renderPageSizes(_pageSizes, _pageSizesIndex); - $('.page[data-page=settings-document-formats-view] input:radio[name=document-format]').single('change', _.bind(me.onFormatChange, me)); - Common.Utils.addScrollIfNeed('.page[data-page=settings-document-formats-view]', '.page[data-page=settings-document-formats-view] .page-content'); - } else if ('#settings-download-view' == pageId) { - $(modalView).find('.formats a').single('click', _.bind(me.onSaveFormat, me)); - Common.Utils.addScrollIfNeed('.page[data-page=settings-download-view]', '.page[data-page=settings-download-view] .page-content'); - } else if ('#settings-info-view' == pageId) { - me.initPageInfo(); - Common.Utils.addScrollIfNeed('.page[data-page=settings-info-view]', '.page[data-page=settings-info-view] .page-content'); - } else if ('#settings-about-view' == pageId) { - // About - me.setLicInfo(_licInfo); - Common.Utils.addScrollIfNeed('.page[data-page=settings-about-view]', '.page[data-page=settings-about-view] .page-content'); - } else if ('#settings-advanced-view' == pageId) { - me.initPageAdvancedSettings(); - $('#settings-spellcheck input:checkbox').attr('checked', Common.Utils.InternalSettings.get("de-mobile-spellcheck")); - $('#settings-spellcheck input:checkbox').single('change', _.bind(me.onSpellcheck, me)); - $('#settings-no-characters input:checkbox').attr('checked', Common.localStorage.getItem("de-mobile-no-characters") === 'true'); - $('#settings-no-characters input:checkbox').single('change', _.bind(me.onNoCharacters, me)); - var value = Common.localStorage.getItem("de-mobile-hidden-borders"); - $('#settings-hidden-borders input:checkbox').attr('checked', value===null || value==='true'); - $('#settings-hidden-borders input:checkbox').single('change', _.bind(me.onShowTableEmptyLine, me)); - $('#settings-orthography').single('click', _.bind(me.onOrthographyCheck, me)); - var displayComments = Common.localStorage.getBool("de-mobile-settings-livecomment", true); - $('#settings-display-comments input:checkbox').attr('checked', displayComments); - $('#settings-display-comments input:checkbox').single('change', _.bind(me.onChangeDisplayComments, me)); - var displayResolved = Common.localStorage.getBool("de-settings-resolvedcomment", true); - if (!displayComments) { - $("#settings-display-resolved").addClass("disabled"); - displayResolved = false; - } - $('#settings-display-resolved input:checkbox').attr('checked', displayResolved); - $('#settings-display-resolved input:checkbox').single('change', _.bind(me.onChangeDisplayResolved, me)); - Common.Utils.addScrollIfNeed('.page[data-page=settings-advanced-view]', '.page[data-page=settings-advanced-view] .page-content'); - } else if ('#color-schemes-view' == pageId) { - me.initPageColorSchemes(); - Common.Utils.addScrollIfNeed('.page[data-page=color-schemes-view]', '.page[data-page=color-schemes-view] .page-content'); - } else if ('#margins-view' == pageId) { - me.initPageMargin(); - Common.Utils.addScrollIfNeed('.page[data-page=margin-view]', '.page[data-page=margin-view] .page-content'); - } else if ('#macros-settings-view' == pageId) { - me.initPageMacrosSettings(); - Common.Utils.addScrollIfNeed('.page[data-page=macros-settings-view]', '.page[data-page=macros-settings-view] .page-content'); - } else { - $('#settings-readermode input:checkbox').attr('checked', Common.SharedSettings.get('readerMode')); - $('#settings-search').single('click', _.bind(me.onSearch, me)); - $('#settings-readermode input:checkbox').single('change', _.bind(me.onReaderMode, me)); - $('#settings-help').single('click', _.bind(me.onShowHelp, me)); - $('#settings-download').single('click', _.bind(me.onDownloadOrigin, me)); - $('#settings-print').single('click', _.bind(me.onPrint, me)); - $('#settings-collaboration').single('click', _.bind(me.clickCollaboration, me)); - var _stateDisplayMode = DE.getController('Common.Controllers.Collaboration').getDisplayMode(); - if(_stateDisplayMode == "final" || _stateDisplayMode == "original") { - $('#settings-document').addClass('disabled'); - } - DE.getController('Toolbar').getDisplayCollaboration() && $('#settings-collaboration').show(); - } - }, - - initPageMacrosSettings: function() { - var me = this, - $pageMacrosSettings = $('.page[data-page="macros-settings-view"] input:radio[name=macros-settings]'), - value = Common.Utils.InternalSettings.get("de-mobile-macros-mode") || 0; - $pageMacrosSettings.single('change', _.bind(me.onChangeMacrosSettings, me)); - $pageMacrosSettings.val([value]); - }, - - onChangeMacrosSettings: function(e) { - var value = parseInt($(e.currentTarget).val()); - Common.Utils.InternalSettings.set("de-mobile-macros-mode", value); - Common.localStorage.setItem("de-mobile-macros-mode", value); - }, - - onChangeDisplayComments: function(e) { - var displayComments = $(e.currentTarget).is(':checked'); - if (!displayComments) { - this.api.asc_hideComments(); - $("#settings-display-resolved input").prop( "checked", false ); - Common.localStorage.setBool("de-settings-resolvedcomment", false); - $("#settings-display-resolved").addClass("disabled"); - } else { - var resolved = Common.localStorage.getBool("de-settings-resolvedcomment"); - this.api.asc_showComments(resolved); - $("#settings-display-resolved").removeClass("disabled"); - } - Common.localStorage.setBool("de-mobile-settings-livecomment", displayComments); - }, - - onChangeDisplayResolved: function(e) { - var displayComments = Common.localStorage.getBool("de-mobile-settings-livecomment"); - if (displayComments) { - var resolved = $(e.currentTarget).is(':checked'); - if (this.api) { - this.api.asc_showComments(resolved); - } - Common.localStorage.setBool("de-settings-resolvedcomment", resolved); - } - }, - - clickCollaboration: function() { - DE.getController('Common.Controllers.Collaboration').showModal(); - }, - - onNoCharacters: function(e) { - var me = this; - var $checkbox = $(e.currentTarget), - state = $checkbox.is(':checked'); - Common.localStorage.setItem("de-mobile-no-characters", state); - me.api.put_ShowParaMarks(state); - }, - - onShowTableEmptyLine: function(e) { - var me = this, - $checkbox = $(e.currentTarget), - state = $checkbox.is(':checked'); - Common.localStorage.setItem("de-mobile-hidden-borders", state); - me.api.put_ShowTableEmptyLine(state); - }, - - initPageMargin: function() { - var me = this; - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - - // Init page margins - me.localSectionProps = me.api.asc_GetSectionProps(); - - if (me.localSectionProps) { - me.maxMarginsH = me.localSectionProps.get_H() - 2.6; - me.maxMarginsW = me.localSectionProps.get_W() - 12.7; - - var top = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localSectionProps.get_TopMargin()).toFixed(2)), - bottom = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localSectionProps.get_BottomMargin()).toFixed(2)), - left = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localSectionProps.get_LeftMargin()).toFixed(2)), - right = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localSectionProps.get_RightMargin()).toFixed(2)); - - $('#document-margin-top .item-after label').text(top + ' ' + _metricText); - $('#document-margin-bottom .item-after label').text(bottom + ' ' + _metricText); - $('#document-margin-left .item-after label').text(left + ' ' + _metricText); - $('#document-margin-right .item-after label').text(right + ' ' + _metricText); - } - - _.each(["top", "left", "bottom", "right"], function(align) { - $(Common.Utils.String.format('#document-margin-{0} .button', align)).single('click', _.bind(me.onPageMarginsChange, me, align)); - }) - }, - - initPageColorSchemes: function() { - this.curSchemas = (this.api) ? this.api.asc_GetCurrentColorSchemeIndex() : 0; - this.getView('Settings').renderSchemaSettings(this.curSchemas, this.schemas); - $('.page[data-page=color-schemes-view] input:radio[name=color-schema]').single('change', _.bind(this.onColorSchemaChange, this)); - Common.Utils.addScrollIfNeed('.page[data-page=color-schemes-view', '.page[data-page=color-schemes-view] .page-content'); - }, - - onSendThemeColorSchemes: function (schemas) { - this.schemas = schemas; - }, - - onColorSchemaChange: function(event) { - if (this.api) { - var ind = $(event.currentTarget).val(); - if (this.curSchemas !== ind) - this.api.asc_ChangeColorSchemeByIdx(parseInt(ind)); - } - }, - - initPageAdvancedSettings: function() { - var me = this, - $unitMeasurement = $('.page[data-page=settings-advanced-view] input:radio[name=unit-of-measurement]'); - $unitMeasurement.single('change', _.bind(me.unitMeasurementChange, me)); - var value = Common.Utils.Metric.getCurrentMetric(); - $unitMeasurement.val([value]); - var _stateDisplayMode = DE.getController('Common.Controllers.Collaboration').getDisplayMode(); - if(_stateDisplayMode == "final" || _stateDisplayMode == "original") { - $('#settings-no-characters').addClass('disabled'); - $('#settings-hidden-borders').addClass('disabled'); - } - if (!_isEdit) { - $('.page[data-page=settings-advanced-view] .page-content > :not(.display-view)').hide(); - } - }, - - initPageDocumentSettings: function () { - var me = this, - $pageOrientation = $('.page[data-page=settings-document-view] input:radio[name=doc-orientation]'), - $pageSize = $('#settings-document-format'), - curMetricName = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()), - sizeW, - sizeH; - - // Init orientation - $pageOrientation.val([_isPortrait]); - $pageOrientation.single('change', _.bind(me.onOrientationChange, me)); - - // Init format - if (_pageSizesIndex === -1) { - $pageSize.find('.item-title').text(me.textCustomSize); - sizeW = parseFloat(Common.Utils.Metric.fnRecalcFromMM(_pageSizesCurrent[0]).toFixed(2)); - sizeH = parseFloat(Common.Utils.Metric.fnRecalcFromMM(_pageSizesCurrent[1]).toFixed(2)); - } else { - $pageSize.find('.item-title').text(_pageSizes[_pageSizesIndex]['caption']); - sizeW = parseFloat(Common.Utils.Metric.fnRecalcFromMM(_pageSizes[_pageSizesIndex]['value'][0]).toFixed(2)); - sizeH = parseFloat(Common.Utils.Metric.fnRecalcFromMM(_pageSizes[_pageSizesIndex]['value'][1]).toFixed(2)); - } - var pageSizeTxt = sizeW + ' ' + curMetricName + ' x ' + sizeH + ' ' + curMetricName; - $pageSize.find('.item-subtitle').text(pageSizeTxt); - }, - - initPageInfo: function () { - var me = this; - - if (me.api) { - me.api.startGetDocInfo(); - - var document = Common.SharedSettings.get('document') || {}, - info = document.info || {}; - - document.title ? $('#settings-document-title').html(document.title) : $('.display-document-title').remove(); - var value = info.owner; - value ? $('#settings-document-owner').html(value) : $('.display-owner').remove(); - value = info.uploaded; - value ? $('#settings-doc-uploaded').html(value) : $('.display-uploaded').remove(); - info.folder ? $('#settings-doc-location').html(info.folder) : $('.display-location').remove(); - - var appProps = (this.api) ? this.api.asc_getAppProps() : null; - if (appProps) { - var appName = (appProps.asc_getApplication() || '') + (appProps.asc_getAppVersion() ? ' ' : '') + (appProps.asc_getAppVersion() || ''); - appName ? $('#settings-doc-application').html(appName) : $('.display-application').remove(); - } - var props = (this.api) ? this.api.asc_getCoreProps() : null; - if (props) { - value = props.asc_getTitle(); - value ? $('#settings-doc-title').html(value) : $('.display-title').remove(); - value = props.asc_getSubject(); - value ? $('#settings-doc-subject').html(value) : $('.display-subject').remove(); - value = props.asc_getDescription(); - value ? $('#settings-doc-comment').html(value) : $('.display-comment').remove(); - value = props.asc_getModified(); - value ? $('#settings-doc-last-mod').html(value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'})) : $('.display-last-mode').remove(); - value = props.asc_getLastModifiedBy(); - value ? $('#settings-doc-mod-by').html(AscCommon.UserInfoParser.getParsedName(value)) : $('.display-mode-by').remove(); - value = props.asc_getCreated(); - value ? $('#settings-doc-date').html(value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'})) : $('.display-created-date').remove(); - value = props.asc_getCreator(); - var templateCreator = ""; - value && value.split(/\s*[,;]\s*/).forEach(function(item) { - templateCreator = templateCreator + "
  • " + item + "
  • "; - }); - templateCreator ? $('#list-creator').html(templateCreator) : $('.display-author').remove(); - } - } - }, - - setLicInfo: function(data){ - if (data && typeof data == 'object' && typeof(data.customer)=='object') { - $('.page[data-page=settings-about-view] .logo').hide(); - $('#settings-about-tel').parent().hide(); - $('#settings-about-licensor').show(); - - var customer = data.customer, - value = customer.name; - value && value.length ? - $('#settings-about-name').text(value) : - $('#settings-about-name').hide(); - - value = customer.address; - value && value.length ? - $('#settings-about-address').text(value) : - $('#settings-about-address').parent().hide(); - - (value = customer.mail) && value.length ? - $('#settings-about-email').attr('href', "mailto:"+value).text(value) : - $('#settings-about-email').parent().hide(); - - if ((value = customer.www) && value.length) { - var http = !/^https?:\/{2}/i.test(value) ? "http:\/\/" : ''; - $('#settings-about-url').attr('href', http+value).text(value); - } else - $('#settings-about-url').hide(); - - if ((value = customer.info) && value.length) { - $('#settings-about-info').show().text(value); - } - - if ( (value = customer.logo) && value.length ) { - $('#settings-about-logo').show().html(''); - } - } - }, - - // Utils - - applyPageMarginsIfNeed: function() { - var me = this, - originalMarginsProps = me.api.asc_GetSectionProps(), - originalMarginsChecksum = _.reduce([ - originalMarginsProps.get_TopMargin(), - originalMarginsProps.get_LeftMargin(), - originalMarginsProps.get_RightMargin(), - originalMarginsProps.get_BottomMargin() - ], function(memo, num){ return memo + num; }, 0), - localMarginsChecksum = _.reduce([ - me.localSectionProps.get_TopMargin(), - me.localSectionProps.get_LeftMargin(), - me.localSectionProps.get_RightMargin(), - me.localSectionProps.get_BottomMargin() - ], function(memo, num){ return memo + num; }, 0); - - if (Math.abs(originalMarginsChecksum - localMarginsChecksum) > 0.01) { - me.api.asc_SetSectionProps(me.localSectionProps); - } - }, - - // Handlers - - onSearch: function (e) { - var toolbarView = DE.getController('Toolbar').getView('Toolbar'); - - if (toolbarView) { - toolbarView.showSearch(); - } - - this.hideModal(); - }, - - onReaderMode: function (e) { - var me = this; - - Common.SharedSettings.set('readerMode', !Common.SharedSettings.get('readerMode')); - - me.api && me.api.ChangeReaderMode(); - - if (Common.SharedSettings.get('phone')) { - _.defer(function () { - me.hideModal(); - }, 1000); - } - - Common.NotificationCenter.trigger('readermode:change', Common.SharedSettings.get('readerMode')); - }, - - onSpellcheck: function (e) { - var $checkbox = $(e.currentTarget), - state = $checkbox.is(':checked'); - Common.localStorage.setItem("de-mobile-spellcheck", state ? 1 : 0); - Common.Utils.InternalSettings.set("de-mobile-spellcheck", state); - this.api && this.api.asc_setSpellCheck(state); - }, - - onOrthographyCheck: function (e) { - this.hideModal(); - - this.api && this.api.asc_pluginRun("asc.{B631E142-E40B-4B4C-90B9-2D00222A286E}", 0); - }, - - onShowHelp: function () { - var url = '{{HELP_URL}}'; - if (url.charAt(url.length-1) !== '/') { - url += '/'; - } - if (Common.SharedSettings.get('sailfish')) { - url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; - } else if (Common.SharedSettings.get('android')) { - url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; - } else { - url+='mobile-applications/documents/mobile-web-editors/ios/index.aspx'; - } - window.open(url, "_blank"); - this.hideModal(); - }, - - onSaveFormat: function(e) { - var me = this, - format = $(e.currentTarget).data('format'); - - if (format) { - if (format == Asc.c_oAscFileType.TXT || format == Asc.c_oAscFileType.RTF) { - _.defer(function () { - uiApp.confirm( - (format === Asc.c_oAscFileType.TXT) ? me.warnDownloadAs : me.warnDownloadAsRTF, - me.notcriticalErrorTitle, - function () { - if (format == Asc.c_oAscFileType.TXT) - Common.NotificationCenter.trigger('download:advanced', Asc.c_oAscAdvancedOptionsID.TXT, me.api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format)); - else - me.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); - } - ); - }); - } else { - _.delay(function () { - me.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); - }, 300); - } - - me.hideModal(); - } - }, - - onDownloadOrigin: function(e) { - var me = this; - - _.defer(function () { - me.api.asc_DownloadOrigin(); - }); - me.hideModal(); - }, - - onPrint: function(e) { - var me = this; - - _.delay(function () { - me.api.asc_Print(); - }, 300); - me.hideModal(); - }, - - onFormatChange: function (e) { - var me = this, - rawValue = $(e.currentTarget).val(), - value = rawValue.split(','); - - _.delay(function () { - me.api.change_DocSize(parseFloat(value[0]), parseFloat(value[1])); - }, 300); - }, - - onOrientationChange: function (e) { - var me = this, - value = $(e.currentTarget).val(); - - _.delay(function () { - me.api.change_PageOrient(value === 'true'); - }, 300); - }, - - unitMeasurementChange: function (e) { - var value = $(e.currentTarget).val(); - value = (value!==null) ? parseInt(value) : Common.Utils.Metric.getDefaultMetric(); - Common.Utils.Metric.setCurrentMetric(value); - Common.localStorage.setItem("de-mobile-settings-unit", value); - this.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)); - }, - - onPageMarginsChange: function (align, e) { - var me = this, - $button = $(e.currentTarget), - step, - txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm), - marginValue = null; - if(Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { - step = 1; - } else { - step = 0.1; - } - step = Common.Utils.Metric.fnRecalcToMM(step); - - switch (align) { - case 'left': marginValue = me.localSectionProps.get_LeftMargin(); break; - case 'top': marginValue = me.localSectionProps.get_TopMargin(); break; - case 'right': marginValue = me.localSectionProps.get_RightMargin(); break; - case 'bottom': marginValue = me.localSectionProps.get_BottomMargin(); break; - } - - if ($button.hasClass('decrement')) { - marginValue = Math.max(0, marginValue - step); - } else { - marginValue = Math.min((align == 'left' || align == 'right') ? me.maxMarginsW : me.maxMarginsH, marginValue + step); - } - - switch (align) { - case 'left': me.localSectionProps.put_LeftMargin(marginValue); break; - case 'top': me.localSectionProps.put_TopMargin(marginValue); break; - case 'right': me.localSectionProps.put_RightMargin(marginValue); break; - case 'bottom': me.localSectionProps.put_BottomMargin(marginValue); break; - } - - var valueCurrentMetric = parseFloat(Common.Utils.Metric.fnRecalcFromMM(marginValue).toFixed(2)); - $(Common.Utils.String.format('#document-margin-{0} .item-after label', align)).text(valueCurrentMetric + ' ' + _metricText); - - me.applyPageMarginsIfNeed() - }, - - // API handlers - - onApiGetDocInfoStart: function () { - var me = this; - inProgress = true; - infoObj = { - PageCount : 0, - WordsCount : 0, - ParagraphCount : 0, - SymbolsCount : 0, - SymbolsWSCount : 0 - }; - - _.defer(function(){ - if (!inProgress) - return; - - $('#statistic-pages').html(me.txtLoading); - $('#statistic-words').html(me.txtLoading); - $('#statistic-paragraphs').html(me.txtLoading); - $('#statistic-symbols').html(me.txtLoading); - $('#statistic-spaces').html(me.txtLoading); - }); - }, - - onApiGetDocInfoEnd: function() { - inProgress = false; - - $('#statistic-pages').html(infoObj.PageCount); - $('#statistic-words').html(infoObj.WordsCount); - $('#statistic-paragraphs').html(infoObj.ParagraphCount); - $('#statistic-symbols').html(infoObj.SymbolsCount); - $('#statistic-spaces').html(infoObj.SymbolsWSCount); - }, - - onApiDocInfo: function(obj) { - if (obj) { - if (obj.get_PageCount() > -1) - infoObj.PageCount = obj.get_PageCount(); - if (obj.get_WordsCount() > -1) - infoObj.WordsCount = obj.get_WordsCount(); - if (obj.get_ParagraphCount() > -1) - infoObj.ParagraphCount = obj.get_ParagraphCount(); - if (obj.get_SymbolsCount() > -1) - infoObj.SymbolsCount = obj.get_SymbolsCount(); - if (obj.get_SymbolsWSCount() > -1) - infoObj.SymbolsWSCount = obj.get_SymbolsWSCount(); - } - }, - - onApiDocumentName: function(name) { - $('#settings-document-title').html(name ? name : '-'); - }, - - onApiPageSize: function(w, h) { - if (!_isPortrait) { - var tempW = w; w = h; h = tempW; - } - - if (Math.abs(_pageSizesCurrent[0] - w) > 0.1 || - Math.abs(_pageSizesCurrent[1] - h) > 0.1) { - _pageSizesCurrent = [w, h]; - var ind = -1; - _.find(_pageSizes, function(size, index) { - if (Math.abs(size.value[0] - w) < 0.1 && Math.abs(size.value[1] - h) < 0.1) { - _pageSizesIndex = index; - ind = index; - } - }, this); - if (ind === -1) { - _pageSizesIndex = -1; - } - } - - this.initPageDocumentSettings(); - }, - - onApiPageOrient: function(isPortrait) { - _isPortrait = isPortrait; - }, - - unknownText: 'Unknown', - txtLoading : 'Loading...', - notcriticalErrorTitle : 'Warning', - warnDownloadAs : 'If you continue saving in this format all features except the text will be lost.
    Are you sure you want to continue?', - warnDownloadAsRTF : 'If you continue saving in this format some of the formatting might be lost.
    Are you sure you want to continue?', - textCustomSize : 'Custom Size' - } - })(), DE.Controllers.Settings || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/Toolbar.js b/apps/documenteditor/mobile/app/controller/Toolbar.js deleted file mode 100644 index 85d67bbbe..000000000 --- a/apps/documenteditor/mobile/app/controller/Toolbar.js +++ /dev/null @@ -1,244 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * Document Editor - * - * Created by Alexander Yuzhin on 9/23/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'documenteditor/mobile/app/view/Toolbar' -], function (core, $, _, Backbone) { - 'use strict'; - - DE.Controllers.Toolbar = Backbone.Controller.extend(_.extend((function() { - // private - var stateDisplayMode = false; - var _users = []; - var _displayCollaboration = false; - - 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 || data.config.customization.goback.requestClose && data.config.canRequestClose)) { - $('#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')); - this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this)); - this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect, this)); - this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onUsersChanged, this)); - this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onUsersChanged, this)); - this.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(this.onUserConnection, this)); - Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this)); - }, - - setMode: function (mode) { - this.mode = 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() { - Common.NotificationCenter.trigger('goback', true); - } - }, - { - text: me.stayButtonText, - bold: true - } - ] - }); - } else { - Common.NotificationCenter.trigger('goback', true); - } - }, - - 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 (this.isDisconnected) return; - - if (which == 'undo') { - $('#toolbar-undo').toggleClass('disabled', !can); - } else { - $('#toolbar-redo').toggleClass('disabled', !can); - } - }, - - setDisplayMode: function(displayMode) { - stateDisplayMode = displayMode == "final" || displayMode == "original" ? true : false; - var selected = this.api.getSelectedElements(); - this.onApiFocusObject(selected); - }, - - onApiFocusObject: function (objects) { - if (this.isDisconnected) return; - - if (objects.length > 0) { - var topObject = _.find(objects.reverse(), function (obj) { - return obj.get_ObjectType() != Asc.c_oAscTypeSelectElement.SpellCheck; - }), - topObjectValue = topObject.get_ObjectValue(), - objectLocked = _.isFunction(topObjectValue.get_Locked) ? topObjectValue.get_Locked() : false; - - $('#toolbar-add, #toolbar-edit').toggleClass('disabled', objectLocked || stateDisplayMode); - } - }, - - activateControls: function() { - $('#toolbar-edit, #toolbar-add, #toolbar-settings, #toolbar-search, #document-back, #toolbar-edit-document, #toolbar-collaboration').removeClass('disabled'); - }, - - activateViewControls: function() { - $('#toolbar-search, #document-back, #toolbar-collaboration').removeClass('disabled'); - }, - - deactivateEditControls: function(enableDownload) { - $('#toolbar-edit, #toolbar-add').addClass('disabled'); - if (enableDownload) - DE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); - else - $('#toolbar-settings').addClass('disabled'); - }, - - onCoAuthoringDisconnect: function(enableDownload) { - this.isDisconnected = true; - this.deactivateEditControls(enableDownload); - $('#toolbar-undo').toggleClass('disabled', true); - $('#toolbar-redo').toggleClass('disabled', true); - DE.getController('AddContainer').hideModal(); - DE.getController('EditContainer').hideModal(); - DE.getController('Settings').hideModal(); - }, - - displayCollaboration: function() { - if(_users !== undefined) { - var length = 0; - _.each(_users, function (item) { - if ((item.asc_getState()!==false) && !item.asc_getView()) - length++; - }); - _displayCollaboration = (length >= 1 || !this.mode || this.mode.canViewComments || this.mode.canReview || this.mode.canViewReview); - _displayCollaboration ? $('#toolbar-collaboration').show() : $('#toolbar-collaboration').hide(); - } - }, - - onUsersChanged: function(users) { - _users = users; - this.displayCollaboration(); - }, - - onUserConnection: function(change){ - var changed = false; - for (var uid in _users) { - if (undefined !== uid) { - var user = _users[uid]; - if (user && user.asc_getId() == change.asc_getId()) { - _users[uid] = change; - changed = true; - } - } - } - !changed && change && (_users[change.asc_getId()] = change); - this.displayCollaboration(); - }, - - getDisplayCollaboration: function() { - return _displayCollaboration; - }, - - 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' - } - })(), DE.Controllers.Toolbar || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/add/AddContainer.js b/apps/documenteditor/mobile/app/controller/add/AddContainer.js deleted file mode 100644 index c1d6bc969..000000000 --- a/apps/documenteditor/mobile/app/controller/add/AddContainer.js +++ /dev/null @@ -1,265 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddContainer.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/14/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core' -], function (core) { - 'use strict'; - - DE.Controllers.AddContainer = Backbone.Controller.extend(_.extend((function() { - // private - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - setApi: function(api) { - this.api = api; - }, - - onLaunch: function() { - // - }, - - showModal: function() { - var me = this; - - if ($$('.container-add.modal-in').length > 0) { - return; - } - - uiApp.closeModal(); - - me._showByStack(Common.SharedSettings.get('phone')); - uiApp.showTab('#add-other'); - - DE.getController('Toolbar').getView('Toolbar').hideSearch(); - }, - - hideModal: function () { - if (this.picker) { - uiApp.closeModal(this.picker); - } - }, - - _layoutEditorsByStack: function () { - var me = this, - addViews = []; - - addViews.push({ - caption: me.textTable, - id: 'add-table', - icon: 'icon-add-table', - layout: DE.getController('AddTable') - .getView('AddTable') - .rootLayout() - }); - - addViews.push({ - caption: me.textShape, - id: 'add-shape', - icon: 'icon-add-shape', - layout: DE.getController('AddShape') - .getView('AddShape') - .rootLayout() - }); - - addViews.push({ - caption: me.textImage, - id: 'add-image', - icon: 'icon-add-image', - layout: DE.getController('AddImage') - .getView('AddImage') - .rootLayout() - }); - - addViews.push({ - caption: me.textOther, - id: 'add-other', - icon: 'icon-add-other', - layout: DE.getController('AddOther') - .getView('AddOther') - .rootLayout() - }); - - return addViews; - }, - - _showByStack: function(isPhone) { - var me = this, - isAndroid = Framework7.prototype.device.android === true, - layoutAdds = me._layoutEditorsByStack(); - - if ($$('.container-add.modal-in').length > 0) { - return; - } - - // Navigation bar - var $layoutNavbar = $( - '
    ' - ); - - - if (isAndroid) { - $layoutNavbar - .find('.center') - .append('
    '); - - _.each(layoutAdds, function (layout, index) { - $layoutNavbar - .find('.toolbar-inner') - .append( - '' - ); - }); - $layoutNavbar - .find('.toolbar-inner') - .append(''); - } else { - $layoutNavbar - .find('.center') - .append('
    '); - - _.each(layoutAdds, function (layout, index) { - $layoutNavbar - .find('.buttons-row') - .append( - '' - ); - }); - } - - - // Content - - var $layoutPages = $( - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' - ); - - _.each(layoutAdds, function (addView, index) { - $layoutPages.find('.tabs').append( - '
    ' + - '
    ' + - '
    ' + - '
    ' + - addView.layout + - '
    ' + - '
    ' + - '
    ' + - '
    ' - ); - }); - - if (isPhone) { - me.picker = $$(uiApp.popup( - '' - )) - } else { - me.picker = uiApp.popover( - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + - '
    ' + - '
    ', - $$('#toolbar-add') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }); - } - - if (isAndroid) { - $$('.view.add-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.add-root-view .navbar').prependTo('.view.add-root-view > .pages > .page'); - } - - me.rootView = uiApp.addView('.add-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('addcontainer:show'); - }, - - textTable: 'Table', - textShape: 'Shape', - textImage: 'Image', - textOther: 'Other' - } - })(), DE.Controllers.AddContainer || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/add/AddImage.js b/apps/documenteditor/mobile/app/controller/add/AddImage.js deleted file mode 100644 index 16ab14528..000000000 --- a/apps/documenteditor/mobile/app/controller/add/AddImage.js +++ /dev/null @@ -1,131 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddImage.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/18/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'documenteditor/mobile/app/view/add/AddImage', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.AddImage = Backbone.Controller.extend(_.extend((function() { - // - - return { - models: [], - collections: [], - views: [ - 'AddImage' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddImage': { - 'page:show' : this.onPageShow - } - }); - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddImage').render(); - }, - - initEvents: function () { - var me = this; - $('#add-image-file').single('click', _.bind(me.onInsertByFile, me)); - }, - - onPageShow: function () { - var me = this; - - $('#addimage-insert a').single('click', _.buffered(me.onInsertByUrl, 100, me)); - $('#addimage-url input[type=url]').single('input', _.bind(me.onUrlChange, me)); - - _.delay(function () { - $('#addimage-link-url input[type=url]').focus(); - }, 1000); - }, - - // Handlers - - onInsertByFile: function (e) { - DE.getController('AddContainer').hideModal(); - }, - - onUrlChange: function (e) { - $('#addimage-insert').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, - - onInsertByUrl: function (e) { - var me = this, - $input = $('#addimage-link-url input[type=url]'); - - if ($input) { - var value = ($input.val()).replace(/ /g, ''); - - if (!_.isEmpty(value)) { - if ((/((^https?)|(^ftp)):\/\/.+/i.test(value))) { - DE.getController('AddContainer').hideModal(); - } else { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - } - } else { - uiApp.alert(me.textEmptyImgUrl, me.notcriticalErrorTitle); - } - } - }, - - textEmptyImgUrl : 'You need to specify image URL.', - txtNotUrl : 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - } - })(), DE.Controllers.AddImage || {})) -}); diff --git a/apps/documenteditor/mobile/app/controller/add/AddOther.js b/apps/documenteditor/mobile/app/controller/add/AddOther.js deleted file mode 100644 index 9dca563e3..000000000 --- a/apps/documenteditor/mobile/app/controller/add/AddOther.js +++ /dev/null @@ -1,475 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ -/** - * AddOther.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/17/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/add/AddOther', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.AddOther = Backbone.Controller.extend(_.extend((function() { - var c_pageNumPosition = { - PAGE_NUM_POSITION_TOP: 0x01, - PAGE_NUM_POSITION_BOTTOM: 0x02, - PAGE_NUM_POSITION_RIGHT: 0, - PAGE_NUM_POSITION_LEFT: 1, - PAGE_NUM_POSITION_CENTER: 2 - }; - - return { - models: [], - collections: [], - views: [ - 'AddOther' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddOther': { - 'page:show' : this.onPageShow - } - }); - this.toCustomFormat; - this.fromCustomFormat; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - setMode: function (mode) { - this.view = this.getView('AddOther'); - this.view.canViewComments = mode.canViewComments; - }, - - onLaunch: function () { - this.createView('AddOther').render(); - }, - - initEvents: function () { - this.setDisableMenuItem(); - }, - - setDisableMenuItem: function() { - var isDisableComment = true, - isDisableBreak = false, - isDisableFootnote = false; - var stack = this.api.getSelectedElements(); - var isText = false, - isTable = false, - isImage = false, - isChart = false, - isShape = false, - isLink = false, - lockedText = false, - lockedTable = false, - lockedImage = false, - lockedHeader = false; - _.each(stack, function (item) { - var objectType = item.get_ObjectType(), - objectValue = item.get_ObjectValue(); - if (objectType == Asc.c_oAscTypeSelectElement.Header) { - lockedHeader = objectValue.get_Locked(); - } - if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { - isText = true; - lockedText = objectValue.get_Locked(); - } else if (objectType == Asc.c_oAscTypeSelectElement.Image) { - lockedImage = objectValue.get_Locked(); - if (objectValue && objectValue.get_ChartProperties()) { - isChart = true; - } else if (objectType && objectValue.get_ShapeProperties()) { - isShape = true; - } else { - isImage = true; - } - } else if (objectType == Asc.c_oAscTypeSelectElement.Table) { - isTable = true; - lockedTable = objectValue.get_Locked(); - } else if (objectType == Asc.c_oAscTypeSelectElement.Hyperlink) { - isLink = true; - } - }); - if (stack.length > 0) { - var isObject = isShape || isChart || isImage || isTable; - isDisableComment = (this.api.can_AddQuotedComment() === false || lockedText || lockedTable || lockedImage || lockedHeader || (!isText && isObject)); - if (isShape && isText) { - isDisableBreak = isDisableFootnote = true; - } - } - this.view.isDisableComment = isDisableComment; - this.view.isDisableBreak = isDisableBreak; - this.view.isDisableFootnote = isDisableFootnote; - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('.page[data-page=addother-sectionbreak] li a').single('click', _.buffered(me.onInsertSectionBreak, 100, me)); - $('.page[data-page=addother-pagenumber] li a').single('click', _.buffered(me.onInsertPageNumber, 100, me)); - $('#add-link-insert').single('click', _.buffered(me.onInsertLink, 100, me)); - - - if (pageId == '#addother-link') { - if ($('#addother-link-view')) { - _.defer(function () { - var text = me.api.can_AddHyperlink(); - $('#add-link-display input').val(_.isString(text) ? text : ''); - }); - } - } else if (pageId == '#addother-insert-footnote') { - me.initInsertFootnote(); - } else if (pageId === "#addother-insert-comment") { - me.initInsertComment(false); - } else if (pageId === "#addother-insert-break") { - $('#add-other-pagebreak').single('click', _.bind(me.onPageBreak, me)); - $('#add-other-columnbreak').single('click', _.bind(me.onColumnBreak, me)); - } - }, - - // Handlers - initInsertComment: function (documentFlag) { - var comment = DE.getController('Common.Controllers.Collaboration').getCommentInfo(); - if (comment) { - this.getView('AddOther').renderComment(comment); - $('#done-comment').single('click', _.bind(this.onDoneComment, this, documentFlag)); - $('.back-from-add-comment').single('click', _.bind(function () { - if ($('#comment-text').val().length > 0) { - uiApp.modal({ - title: '', - text: this.textDeleteDraft, - buttons: [ - { - text: this.textCancel - }, - { - text: this.textDelete, - bold: true, - onClick: function () { - DE.getController('AddContainer').rootView.router.back(); - } - }] - }) - } else { - DE.getController('AddContainer').rootView.router.back(); - } - }, this)); - } - }, - - onDoneComment: function(documentFlag) { - var value = $('#comment-text').val().trim(); - if (value.length > 0) { - DE.getController('Common.Controllers.Collaboration').onAddNewComment(value, documentFlag); - DE.getController('AddContainer').hideModal(); - } - }, - - initInsertFootnote: function () { - var me = this, - dataFormatFootnote = [ - { text: '1, 2, 3,...', value: Asc.c_oAscNumberingFormat.Decimal }, - { text: 'a, b, c,...', value: Asc.c_oAscNumberingFormat.LowerLetter }, - { text: 'A, B, C,...', value: Asc.c_oAscNumberingFormat.UpperLetter }, - { text: 'i, ii, iii,...', value: Asc.c_oAscNumberingFormat.LowerRoman }, - { text: 'I, II, III,...', value: Asc.c_oAscNumberingFormat.UpperRoman } - ], - dataPosFootnote = [ - {value: Asc.c_oAscFootnotePos.PageBottom, displayValue: this.textBottomOfPage }, - {value: Asc.c_oAscFootnotePos.BeneathText, displayValue: this.textBelowText } - ], - props = me.api.asc_GetFootnoteProps(), - propsFormat = props.get_NumFormat(), - propsPos = props.get_Pos(); - - me.onFormatFootnoteChange(propsFormat); - - var view = me.getView('AddOther'); - view.renderNumFormat(dataFormatFootnote, propsFormat); - view.renderFootnotePos(dataPosFootnote, propsPos); - - $('#start-at-footnote .button').single('click', _.bind(me.onStartAt, me)); - $('.page[data-page=addother-insert-footnote] input:radio[name=doc-footnote-format]').single('change', _.bind(me.onFormatFootnoteChange, me)); - $('#footnote-insert').single('click', _.bind(this.onClickInsertFootnote, this)); - }, - - onClickInsertFootnote: function() { - DE.getController('AddContainer').hideModal(); - }, - - onFormatFootnoteChange: function(e) { - var me = this; - var value = e.currentTarget ? $(e.currentTarget).data('value') : e; - var startAt = $('#start-at-footnote .item-after label'), - currValue; - if(e.currentTarget) { - currValue = me.fromCustomFormat(startAt.text()); - } else { - currValue = me.api.asc_GetFootnoteProps().get_NumStart(); - } - switch (value) { - case Asc.c_oAscNumberingFormat.UpperRoman: // I, II, III, ... - me.toCustomFormat = me._10toRome; - me.fromCustomFormat = me._Rometo10; - break; - case Asc.c_oAscNumberingFormat.LowerRoman: // i, ii, iii, ... - me.toCustomFormat = function(value) { return me._10toRome(value).toLocaleLowerCase(); }; - me.fromCustomFormat = function(value) { return me._Rometo10(value.toLocaleUpperCase()); }; - break; - case Asc.c_oAscNumberingFormat.UpperLetter: // A, B, C, ... - me.toCustomFormat = me._10toS; - me.fromCustomFormat = me._Sto10; - break; - case Asc.c_oAscNumberingFormat.LowerLetter: // a, b, c, ... - me.toCustomFormat = function(value) { return me._10toS(value).toLocaleLowerCase(); }; - me.fromCustomFormat = function(value) { return me._Sto10(value.toLocaleUpperCase()); }; - break; - default: // 1, 2, 3, ... - me.toCustomFormat = function(value) { return value; }; - me.fromCustomFormat = function(value) { return value; }; - break; - } - var newValue = me.toCustomFormat(currValue); - startAt.text(newValue); - }, - - onStartAt: function(e) { - var $button = $(e.currentTarget), - value = $('#start-at-footnote .item-after label').text(), - intValue, - step = 1, - maxValue = 16383, - me = this; - if(me.fromCustomFormat) { - intValue = parseInt(me.fromCustomFormat(value)); - } else { - intValue = me.api.asc_GetFootnoteProps().get_NumStart(); - } - if ($button.hasClass('decrement')) { - intValue = Math.max(1, intValue - step); - } else { - intValue = Math.min(maxValue, intValue + step); - } - var newValue = me.toCustomFormat(intValue); - $('#start-at-footnote .item-after label').text(newValue); - }, - - onInsertLink: function (e) { - DE.getController('AddContainer').hideModal(); - }, - - onPageBreak: function (e) { - this.api && this.api.put_AddPageBreak(); - DE.getController('AddContainer').hideModal(); - }, - - onColumnBreak: function () { - this.api && this.api.put_AddColumnBreak(); - DE.getController('AddContainer').hideModal(); - }, - - onInsertSectionBreak: function (e) { - var $target = $(e.currentTarget); - - if ($target && this.api) { - var type = $target.data('type'), - value; - - if ('next' == type) { - value = Asc.c_oAscSectionBreakType.NextPage; - } else if ('continuous' == type) { - value = Asc.c_oAscSectionBreakType.Continuous; - } else if ('even' == type) { - value = Asc.c_oAscSectionBreakType.EvenPage; - } else if ('odd' == type) { - value = Asc.c_oAscSectionBreakType.OddPage; - } - - this.api.add_SectionBreak(value); - } - - DE.getController('AddContainer').hideModal(); - }, - - onInsertPageNumber: function (e) { - var $target = $(e.currentTarget); - - if ($target && this.api) { - var value = -1, - type = $target.data('type'); - - if (2 == type.length) { - value = {}; - - if (type[0] == 'l') { - value.subtype = c_pageNumPosition.PAGE_NUM_POSITION_LEFT; - } else if (type[0] == 'c') { - value.subtype = c_pageNumPosition.PAGE_NUM_POSITION_CENTER; - } else if (type[0] == 'r') { - value.subtype = c_pageNumPosition.PAGE_NUM_POSITION_RIGHT; - } - - if (type[1] == 't') { - value.type = c_pageNumPosition.PAGE_NUM_POSITION_TOP; - } else if (type[1] == 'b') { - value.type = c_pageNumPosition.PAGE_NUM_POSITION_BOTTOM; - } - - this.api.put_PageNum(value.type, value.subtype); - } else { - this.api.put_PageNum(value); - } - } - - DE.getController('AddContainer').hideModal(); - }, - - _10toS: function(value) { - value = parseInt(value); - var n = Math.ceil(value / 26), - code = String.fromCharCode((value-1) % 26 + "A".charCodeAt(0)) , - result = ''; - - for (var i=0; i0) { - val = digits[n][1]; - div = value - val; - if (div>=0) { - result += digits[n][0]; - value = div; - } else - n++; - } - - return result; - }, - - _Rometo10: function(str) { - if ( !/[IVXLCDM]/.test(str) || str.length<1 ) return 1; - - var digits = { - 'I': 1, - 'V': 5, - 'X': 10, - 'L': 50, - 'C': 100, - 'D': 500, - 'M': 1000 - }; - - var n = str.length-1, - result = digits[str.charAt(n)], - prev = result; - - for (var i=n-1; i>=0; i-- ) { - var val = digits[str.charAt(i)]; - if (val10) return 1; - val *= -1; - } - - result += val; - prev = Math.abs(val); - } - - return result; - }, - - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - textBottomOfPage: 'Bottom Of Page', - textBelowText: 'Below Text', - textDeleteDraft: 'Do you really want to delete draft?', - textCancel: 'Cancel', - //textContinue: 'Continue', - textDelete: 'Delete', - notcriticalErrorTitle: 'Warning' - } - })(), DE.Controllers.AddOther || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/add/AddShape.js b/apps/documenteditor/mobile/app/controller/add/AddShape.js deleted file mode 100644 index 32047d3dd..000000000 --- a/apps/documenteditor/mobile/app/controller/add/AddShape.js +++ /dev/null @@ -1,228 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddShape.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/18/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/add/AddShape', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.AddShape = Backbone.Controller.extend(_.extend((function() { - var _styles = []; - - return { - models: [], - collections: [], - views: [ - 'AddShape' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - // Fill shapes - - function randomColor() { - return '#' + Math.floor(Math.random()*16777215).toString(16); - } - - _styles = [ - { - title: 'Text', - thumb: 'shape-01.svg', - type: 'textRect' - }, - { - title: 'Line', - thumb: 'shape-02.svg', - type: 'line' - }, - { - title: 'Line with arrow', - thumb: 'shape-03.svg', - type: 'lineWithArrow' - }, - { - title: 'Line with two arrows', - thumb: 'shape-04.svg', - type: 'lineWithTwoArrows' - }, - { - title: 'Rect', - thumb: 'shape-05.svg', - type: 'rect' - }, - { - title: 'Hexagon', - thumb: 'shape-06.svg', - type: 'hexagon' - }, - { - title: 'Round rect', - thumb: 'shape-07.svg', - type: 'roundRect' - }, - { - title: 'Ellipse', - thumb: 'shape-08.svg', - type: 'ellipse' - }, - { - title: 'Triangle', - thumb: 'shape-09.svg', - type: 'triangle' - }, - { - title: 'Triangle', - thumb: 'shape-10.svg', - type: 'rtTriangle' - }, - { - title: 'Trapezoid', - thumb: 'shape-11.svg', - type: 'trapezoid' - }, - { - title: 'Diamond', - thumb: 'shape-12.svg', - type: 'diamond' - }, - { - title: 'Right arrow', - thumb: 'shape-13.svg', - type: 'rightArrow' - }, - { - title: 'Left-right arrow', - thumb: 'shape-14.svg', - type: 'leftRightArrow' - }, - { - title: 'Left arrow callout', - thumb: 'shape-15.svg', - type: 'leftArrow' - }, - { - title: 'Right arrow callout', - thumb: 'shape-16.svg', - type: 'bentUpArrow' - }, - { - title: 'Flow chart off page connector', - thumb: 'shape-17.svg', - type: 'flowChartOffpageConnector' - }, - { - title: 'Heart', - thumb: 'shape-18.svg', - type: 'heart' - }, - { - title: 'Math minus', - thumb: 'shape-19.svg', - type: 'mathMinus' - }, - { - title: 'Math plus', - thumb: 'shape-20.svg', - type: 'mathPlus' - }, - { - title: 'Parallelogram', - thumb: 'shape-21.svg', - type: 'parallelogram' - }, - { - title: 'Wedge rect callout', - thumb: 'shape-22.svg', - type: 'wedgeRectCallout' - }, - { - title: 'Wedge ellipse callout', - thumb: 'shape-23.svg', - type: 'wedgeEllipseCallout' - }, - { - title: 'Cloud callout', - thumb: 'shape-24.svg', - type: 'cloudCallout' - } - ]; - - var elementsInRow = 4; - var groups = _.chain(_styles).groupBy(function(element, index){ - return Math.floor(index/elementsInRow); - }).toArray().value(); - - Common.SharedSettings.set('shapes', groups); - Common.NotificationCenter.trigger('shapes:load', groups); - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddShape').render(); - }, - - initEvents: function () { - var me = this; - - $('#add-shape li').single('click', _.buffered(me.onShapeClick, 300, me)); - }, - - onShapeClick: function (e) { - DE.getController('AddContainer').hideModal(); - }, - - // Public - - getStyles: function () { - return _styles; - } - } - })(), DE.Controllers.AddShape || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/add/AddTable.js b/apps/documenteditor/mobile/app/controller/add/AddTable.js deleted file mode 100644 index fef864537..000000000 --- a/apps/documenteditor/mobile/app/controller/add/AddTable.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddTable.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/17/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'documenteditor/mobile/app/view/add/AddTable', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.AddTable = Backbone.Controller.extend(_.extend((function() { - return { - models: [], - collections: [], - views: [ - 'AddTable' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddTable': { - 'view:render' : this.onViewRender - } - }); - - this._styles = []; - this._initDefaultStyles = false; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('AddTable').render(); - }, - - initEvents: function () { - $('#add-table li').single('click', _.buffered(this.onStyleClick, 100, this)); - }, - - onViewRender: function () { - $('#add-table li').single('click', _.buffered(this.onStyleClick, 100, this)); - }, - - onStyleClick: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - if ($('.modal.modal-in').length > 0) { - return - } - - DE.getController('AddContainer').hideModal(); - - if ($target) { - var picker; - var modal = uiApp.modal({ - title: me.textTableSize, - text: '', - afterText: - '
    ' + - '
    ' + - '
    ' + me.textColumns + '
    ' + - '
    ' + me.textRows + '
    ' + - '
    ' + - '
    ' + - '
    ', - buttons: [ - { - text: me.textCancel - }, - { - text: 'OK', - bold: true, - onClick: function () { - var size = picker.value; - - if (me.api) { - me.api.put_Table(parseInt(size[0]), parseInt(size[1]), type.toString()); - } - } - } - ] - }); - - picker = uiApp.picker({ - container: '#picker-table-size', - toolbar: false, - rotateEffect: true, - value: [3, 3], - cols: [{ - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }, { - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }] - }); - - // Vertical align - $$(modal).css({ - marginTop: - Math.round($$(modal).outerHeight() / 2) + 'px' - }); - } - }, - - // Public - - getStyles: function () { - return this._styles; - }, - - textTableSize: 'Table Size', - textColumns: 'Columns', - textRows: 'Rows', - textCancel: 'Cancel' - } - })(), DE.Controllers.AddTable || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditChart.js b/apps/documenteditor/mobile/app/controller/edit/EditChart.js deleted file mode 100644 index 90b5fddd2..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditChart.js +++ /dev/null @@ -1,583 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditChart.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/7/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditChart', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditChart = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _shapeObject = undefined, - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _borderColor = 'transparent'; - - var wrapTypesTransform = (function() { - var map = [ - { ui:'inline', sdk: Asc.c_oAscWrapStyle2.Inline }, - { ui:'square', sdk: Asc.c_oAscWrapStyle2.Square }, - { ui:'tight', sdk: Asc.c_oAscWrapStyle2.Tight }, - { ui:'through', sdk: Asc.c_oAscWrapStyle2.Through }, - { ui:'top-bottom', sdk: Asc.c_oAscWrapStyle2.TopAndBottom }, - { ui:'behind', sdk: Asc.c_oAscWrapStyle2.Behind }, - { ui:'infront', sdk: Asc.c_oAscWrapStyle2.InFront } - ]; - - return { - sdkToUi: function(type) { - var record = map.filter(function(obj) { - return obj.sdk === type; - })[0]; - return record ? record.ui : ''; - }, - - uiToSdk: function(type) { - var record = map.filter(function(obj) { - return obj.ui === type; - })[0]; - return record ? record.sdk : 0; - } - } - })(); - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditChart' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditChart': { - 'page:show': this.onPageShow - } - }); - - this._chartObject = undefined; - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditChart').render(); - }, - - initEvents: function () { - var me = this; - - $('#chart-remove').single('click', _.bind(me.onRemoveChart, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('.chart-reorder a').single('click', _.bind(me.onReorder, me)); - $('.chart-replace li').single('click', _.buffered(me.onReplace, 100, me)); - $('.chart-wrap .chart-wrap-types li').single('click', _.buffered(me.onWrapType, 100, me)); - $('.chart-wrap .align a').single('click', _.bind(me.onAlign, me)); - $('#edit-chart-movetext input').single('change', _.bind(me.onMoveText, me)); - $('#edit-chart-overlap input').single('change', _.bind(me.onOverlap, me)); - $('.chart-wrap .distance input').single('change touchend', _.buffered(me.onWrapDistance, 100, me)); - $('.chart-wrap .distance input').single('input', _.bind(me.onWrapDistanceChanging, me)); - - $('#edit-chart-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-chart-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - - $('#tab-chart-type li').single('click', _.buffered(me.onType, 100, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - if (me._chartObject) { - if (pageId == '#edit-chart-wrap') { - me._initWrapView(); - } else if (pageId == '#edit-chart-style') { - me._updateChartStyles(me.api.asc_getChartPreviews(me._chartObject.get_ChartProperties().getType())); - me._initStyleView(); - } else if (pageId == '#edit-chart-border-color-view') { - me._initStyleView(); - } - } - }, - - _initWrapView: function() { - // Wrap type - var me = this, - wrapping = me._chartObject.get_WrappingStyle(), - $chartWrapInput = $('.chart-wrap input'), - chartWrapType = wrapTypesTransform.sdkToUi(wrapping); - - $chartWrapInput.val([chartWrapType]); - me._uiTransformByWrap(chartWrapType); - - // Wrap align - var chartHAlign = me._chartObject.get_PositionH().get_Align(); - - $('.chart-wrap .align a[data-type=left]').toggleClass('active', chartHAlign == Asc.c_oAscAlignH.Left); - $('.chart-wrap .align a[data-type=center]').toggleClass('active', chartHAlign == Asc.c_oAscAlignH.Center); - $('.chart-wrap .align a[data-type=right]').toggleClass('active', chartHAlign == Asc.c_oAscAlignH.Right); - - - // Wrap flags - $('#edit-chart-movetext input').prop('checked', me._chartObject.get_PositionV().get_RelativeFrom() == Asc.c_oAscRelativeFromV.Paragraph); - $('#edit-chart-overlap input').prop('checked', me._chartObject.get_AllowOverlap()); - - // Wrap distance - var paddings = me._chartObject.get_Paddings(); - if (paddings) { - var distance = Common.Utils.Metric.fnRecalcFromMM(paddings.get_Top()); - $('.chart-wrap .distance input').val(distance); - $('.chart-wrap .distance .item-after').text(distance + ' ' + _metricText); - } - }, - - _initStyleView: function (updateStyles) { - var me = this, - chartProperties = me._chartObject.get_ChartProperties(), - shapeProperties = _shapeObject.get_ShapeProperties(), - paletteFillColor = me.getView('EditChart').paletteFillColor, - paletteBorderColor = me.getView('EditChart').paletteBorderColor; - - - // Style - - var type = chartProperties.getType(); - $('.chart-types li').removeClass('active'); - $('.chart-types li[data-type=' + type + ']').addClass('active'); - - // Init style border size - var borderSize = shapeProperties.get_stroke().get_width() * 72.0 / 25.4; - var borderType = shapeProperties.get_stroke().get_type(); - $('#edit-chart-bordersize input').val([(borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize)]); - $('#edit-chart-bordersize .item-after').text(((borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize)) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - paletteFillColor && paletteFillColor.on('select', _.bind(me.onFillColor, me)); - paletteBorderColor && paletteBorderColor.on('select', _.bind(me.onBorderColor, me)); - - var sdkColor, color; - - // Init fill color - var fill = shapeProperties.get_fill(), - fillType = fill.get_type(); - - color = 'transparent'; - - if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { - fill = fill.get_fill(); - sdkColor = fill.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - - paletteFillColor && paletteFillColor.select(color); - - // Init border color - me._initBorderColorView(); - }, - - _initBorderColorView: function () { - if (!_shapeObject) return; - - var me = this, - paletteBorderColor = me.getView('EditChart').paletteBorderColor, - stroke = _shapeObject.get_ShapeProperties().get_stroke(); - - var color = 'transparent'; - - if (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var sdkColor = stroke.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } - else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - _borderColor = color; - - paletteBorderColor && paletteBorderColor.select(color); - $('#edit-chart-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))) - }, - - // Public - - getChart: function () { - return this._chartObject; - }, - - // Handlers - - onType: function (e) { - }, - - onStyle: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - var image = new Asc.asc_CImgProperty(), - chart = me._chartObject.get_ChartProperties(); - - chart.putStyle(type); - image.put_ChartProperties(chart); - - me.api.ImgApply(image); - }, - - onRemoveChart: function () { - this.api.asc_Remove(); - DE.getController('EditContainer').hideModal(); - }, - - onReorder: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - var properties = new Asc.asc_CImgProperty(); - - if ('all-up' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringToFront); - } else if ('all-down' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.SendToBack); - } else if ('move-up' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringForward); - } else if ('move-down' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringBackward); - } - - this.api.ImgApply(properties); - }, - - onWrapType: function (e) { - var me = this, - $target = $(e.currentTarget).find('input'), - value = $target.val(), - properties = new Asc.asc_CImgProperty(); - - me._uiTransformByWrap(value); - - var sdkType = wrapTypesTransform.uiToSdk(value); - - properties.put_WrappingStyle(sdkType); - - me.api.ImgApply(properties); - }, - - onAlign: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - $('.chart-wrap .align a').removeClass('active'); - $target.addClass('active'); - - var hAlign = Asc.c_oAscAlignH.Left; - - if ('center' == type) { - hAlign = Asc.c_oAscAlignH.Center; - } else if ('right' == type) { - hAlign = Asc.c_oAscAlignH.Right; - } - - var properties = new Asc.asc_CImgProperty(); - properties.put_PositionH(new Asc.CImagePositionH()); - properties.get_PositionH().put_UseAlign(true); - properties.get_PositionH().put_Align(hAlign); - properties.get_PositionH().put_RelativeFrom(Asc.c_oAscRelativeFromH.Page); - - me.api.ImgApply(properties); - }, - - onMoveText: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.asc_CImgProperty(); - - properties.put_PositionV(new Asc.CImagePositionV()); - properties.get_PositionV().put_UseAlign(true); - properties.get_PositionV().put_RelativeFrom($target.is(':checked') ? Asc.c_oAscRelativeFromV.Paragraph : Asc.c_oAscRelativeFromV.Page); - - me.api.ImgApply(properties); - }, - - onOverlap: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.asc_CImgProperty(); - - properties.put_AllowOverlap($target.is(':checked')); - - me.api.ImgApply(properties); - }, - - onWrapDistance: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.asc_CImgProperty(), - paddings = new Asc.asc_CPaddings(); - - - $('.chart-wrap .distance .item-after').text(value + ' ' + _metricText); - - value = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); - - paddings.put_Top(value); - paddings.put_Right(value); - paddings.put_Bottom(value); - paddings.put_Left(value); - - properties.put_Paddings(paddings); - - me.api.ImgApply(properties); - }, - - onWrapDistanceChanging: function (e) { - var $target = $(e.currentTarget); - $('.chart-wrap .distance .item-after').text($target.val() + ' ' + _metricText); - }, - - onBorderSize: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - value = borderSizeTransform.sizeByIndex(parseInt(value)); - - if (value < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - if (_borderColor == 'transparent') - stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); - else - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); - stroke.put_width(value * 25.4 / 72.0); - } - - shape.put_stroke(stroke); - image.put_ShapeProperties(shape); - - me.api.ImgApply(image); - me._initBorderColorView(); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-chart-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - onFillColor: function(palette, color) { - var me = this; - - if (me.api) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - fill = new Asc.asc_CShapeFill(); - - if (color == 'transparent') { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); - fill.put_fill(null); - } else { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); - fill.put_fill(new Asc.asc_CFillSolid()); - fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - shape.put_fill(fill); - image.put_ShapeProperties(shape); - - me.api.ImgApply(image); - } - }, - - onBorderColor: function (palette, color) { - var me = this, - currentShape = _shapeObject ? _shapeObject.get_ShapeProperties() : null; - - $('#edit-chart-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - _borderColor = color; - - if (me.api && currentShape && currentShape.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - if (currentShape.get_stroke().get_width() < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); - stroke.put_width(currentShape.get_stroke().get_width()); - stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); - } - - shape.put_stroke(stroke); - image.put_ShapeProperties(shape); - - me.api.ImgApply(image); - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var charts = [], - shapes = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - if (object.get_ObjectValue() && object.get_ObjectValue().get_ChartProperties()) { - charts.push(object); - } - if (object.get_ObjectValue() && object.get_ObjectValue().get_ShapeProperties()) { - shapes.push(object); - } - } - }); - - var getTopObject = function(array) { - if (array.length > 0) { - var object = array[array.length - 1]; // get top - return object.get_ObjectValue(); - } else { - return undefined; - } - }; - - this._chartObject = getTopObject(charts); - _shapeObject = getTopObject(shapes); - }, - - // Helpers - - _updateChartStyles: function(styles) { - }, - - _uiTransformByWrap: function(type) { - $('.chart-wrap .align')[('inline' == type) ? 'hide' : 'show'](); - $('.chart-wrap .distance')[('behind' == type || 'infront' == type) ? 'hide' : 'show'](); - $('#edit-chart-movetext').toggleClass('disabled', ('inline' == type)); - }, - - _closeIfNeed: function () { - if (!this._isChartInStack()) { - DE.getController('EditContainer').hideModal(); - } - }, - - _isChartInStack: function () { - var chartExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - if (object.get_ObjectValue() && object.get_ObjectValue().get_ChartProperties()) { - chartExist = true; - return true; - } - } - }); - - return chartExist; - } - }; - })(), DE.Controllers.EditChart || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditContainer.js b/apps/documenteditor/mobile/app/controller/edit/EditContainer.js deleted file mode 100644 index 02ae3cb64..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditContainer.js +++ /dev/null @@ -1,403 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditContainer.js - * Document Editor - * - * Created by Alexander Yuzhin on 9/27/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ -define([ - 'core', - 'jquery', - 'underscore', - 'backbone' -], function (core, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditContainer = Backbone.Controller.extend(_.extend((function() { - // Private - var _settings = [], - _headerType = 1, - _activeTab; - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - setApi: function(api) { - this.api = api; - this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this)); - }, - - onLaunch: function() { - // - }, - - showModal: function() { - var me = this, - mainView = DE.getController('Editor').getView('Editor').f7View, - isAndroid = Framework7.prototype.device.android === true; - - if ($$('.container-edit.modal-in').length > 0) { - // myApp.closeModal('.picker-modal.edit.modal-in'); - // me.fireEvent('editcontainer:error', [this, 'alreadyOpen']); - return; - } - - uiApp.closeModal(); - - me._showByStack(Common.SharedSettings.get('phone')); - - DE.getController('Toolbar').getView('Toolbar').hideSearch(); - }, - - hideModal: function () { - if (this.picker) { - uiApp.closeModal(this.picker); - } - }, - - _emptyEditController: function () { - var layout = - '
    ' + - '
    ' + - '

    Select object to edit

    ' + - '
    ' + - '
    '; - - return { - caption: this.textSettings, - layout: layout - } - }, - - _layoutEditorsByStack: function () { - var me = this, - editors = []; - - if (_settings.length < 1) { - editors.push(me._emptyEditController()); - } else { - if (_.contains(_settings, 'text')) { - editors.push({ - caption: me.textText, - id: 'edit-text', - layout: DE.getController('EditText').getView('EditText').rootLayout() - }) - } - if (_.contains(_settings, 'paragraph')) { - editors.push({ - caption: me.textParagraph, - id: 'edit-paragraph', - layout: DE.getController('EditParagraph').getView('EditParagraph').rootLayout() - }) - } - if (_.contains(_settings, 'table')) { - editors.push({ - caption: me.textTable, - id: 'edit-table', - layout: DE.getController('EditTable').getView('EditTable').rootLayout() - }) - } - if (_.contains(_settings, 'header')) { - editors.push({ - caption: _headerType==2 ? me.textFooter : me.textHeader, - id: 'edit-header', - layout: DE.getController('EditHeader').getView('EditHeader').rootLayout() - }) - } - if (_.contains(_settings, 'shape')) { - editors.push({ - caption: me.textShape, - id: 'edit-shape', - layout: DE.getController('EditShape').getView('EditShape').rootLayout() - }) - } - if (_.contains(_settings, 'image')) { - editors.push({ - caption: me.textImage, - id: 'edit-image', - layout: DE.getController('EditImage').getView('EditImage').rootLayout() - }) - } - if (_.contains(_settings, 'chart')) { - editors.push({ - caption: me.textChart, - id: 'edit-chart', - layout: DE.getController('EditChart').getView('EditChart').rootLayout() - }) - } - if (_.contains(_settings, 'hyperlink')) { - editors.push({ - caption: me.textHyperlink, - id: 'edit-link', - layout: DE.getController('EditHyperlink').getView('EditHyperlink').rootLayout() - }) - } - } - - return editors; - }, - - _showByStack: function(isPhone) { - var me = this, - mainView = DE.getController('Editor').getView('Editor').f7View, - isAndroid = Framework7.prototype.device.android === true, - layoutEditors = me._layoutEditorsByStack(); - - if ($$('.container-edit.modal-in').length > 0) { - return; - } - - // Navigation bar - var $layoutNavbar = $( - '' - ); - - if (layoutEditors.length < 2) { - $layoutNavbar - .find('.center') - .removeClass('categories') - .html(layoutEditors[0].caption); - } else { - if (isAndroid) { - $layoutNavbar - .find('.center') - .append('
    '); - - _.each(layoutEditors, function (layout, index) { - $layoutNavbar - .find('.toolbar-inner') - .append( - '' + layout.caption + '' - ); - }); - $layoutNavbar - .find('.toolbar-inner') - .append(''); - } else { - $layoutNavbar - .find('.center') - .append('
    '); - - _.each(layoutEditors, function (layout, index) { - $layoutNavbar - .find('.buttons-row') - .append( - '' + layout.caption + '' - ); - }); - } - } - - - // Content - - var $layoutPages = $( - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' - ); - - _.each(layoutEditors, function (editor, index) { - $layoutPages.find('.tabs').append( - '
    ' + - '
    ' + - '
    ' + - '
    ' + - editor.layout + - '
    ' + - '
    ' + - '
    ' + - '
    ' - ); - }); - - if (isPhone) { - me.picker = $$(uiApp.pickerModal( - '
    ' + - '' + - '
    ' - )).on('opened', function () { - if (_.isFunction(me.api.asc_OnShowContextMenu)) { - me.api.asc_OnShowContextMenu() - } - }).on('close', function (e) { - mainView.showNavbar(); - }).on('closed', function () { - if (_.isFunction(me.api.asc_OnHideContextMenu)) { - me.api.asc_OnHideContextMenu() - } - }); - mainView.hideNavbar(); - } else { - me.picker = uiApp.popover( - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + - '
    ' + - '
    ', - $$('#toolbar-edit') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - - if (_.isFunction(me.api.asc_OnShowContextMenu)) { - me.api.asc_OnShowContextMenu() - } - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }).on('closed', function () { - if (_.isFunction(me.api.asc_OnHideContextMenu)) { - me.api.asc_OnHideContextMenu() - } - }); - } - - $('.container-edit .tab').single('show', function (e) { - Common.NotificationCenter.trigger('editcategory:show', e); - }); - - if (isAndroid) { - $$('.view.edit-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.edit-root-view .navbar').prependTo('.view.edit-root-view > .pages > .page'); - } - - me.rootView = uiApp.addView('.edit-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('editcontainer:show'); - - if (_activeTab === 'edit-link') { - uiApp.showTab('#' + _activeTab, false); - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _settings = []; - _activeTab = undefined; - - // Paragraph : 0, - // Table : 1, - // Image : 2, - // Header : 3, - // Shape : 4, - // Slide : 5, - // Chart : 6, - // MailMerge : 7, - // TextArt : 8 - - _.each(objects, function(object) { - var type = object.get_ObjectType(); - - if (Asc.c_oAscTypeSelectElement.Paragraph == type) { - _settings.push('text', 'paragraph'); - } else if (Asc.c_oAscTypeSelectElement.Table == type) { - _settings.push('table'); - } else if (Asc.c_oAscTypeSelectElement.Image == type) { - if (object.get_ObjectValue().get_ChartProperties()) { - _settings.push('chart'); - } else if (object.get_ObjectValue().get_ShapeProperties()) { - _settings.push('shape'); - } else { - _settings.push('image'); - } - } else if (Asc.c_oAscTypeSelectElement.Hyperlink == type) { - _settings.push('hyperlink'); - if (_.isUndefined(_activeTab)) { - _activeTab = 'edit-link'; - } - } else if (Asc.c_oAscTypeSelectElement.Header == type) { - _settings.push('header'); - _headerType = object.get_ObjectValue().get_Type(); - } - }); - - // Exclude shapes if chart exist - if (_settings.indexOf('chart') > -1) { - _settings = _.without(_settings, 'shape'); - } - - _settings = _.uniq(_settings); - }, - - textSettings: 'Settings', - textText: 'Text', - textParagraph: 'Paragraph', - textTable: 'Table', - textShape: 'Shape', - textImage: 'Image', - textChart: 'Chart', - textHyperlink: 'Hyperlink', - textHeader: 'Header', - textFooter: 'Footer' - } - })(), DE.Controllers.EditContainer || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditHeader.js b/apps/documenteditor/mobile/app/controller/edit/EditHeader.js deleted file mode 100644 index 3a87c31f9..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditHeader.js +++ /dev/null @@ -1,194 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditHeader.js - * Document Editor - * - * Created by Julia Radzhabova on 2/15/19 - * Copyright (c) 2019 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditHeader', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditHeader = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _headerObject = undefined, - _startAt = 1; - - return { - models: [], - collections: [], - views: [ - 'EditHeader' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - - this.addListeners({ - 'EditHeader': { - 'page:show' : this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditHeader').render(); - }, - - initEvents: function () { - var me = this; - - $('#header-diff-first input:checkbox').single('change', _.bind(me.onDiffFirst, me)); - $('#header-diff-odd input:checkbox').single('change', _.bind(me.onDiffOdd, me)); - $('#header-same-as input:checkbox').single('change', _.bind(me.onSameAs, me)); - $('#header-numbering-continue input:checkbox').single('change', _.bind(me.onNumberingContinue, me)); - $('#header-numbering-start .button').single('click', _.bind(me.onStartAt, me)); - - me.initSettings(); - }, - - categoryShow: function (e) { - var $target = $(e.currentTarget); - - if ($target && $target.prop('id') === 'edit-header') { - this.initSettings(); - } - }, - - onPageShow: function () { - var me = this; - me.initSettings(); - }, - - initSettings: function () { - var me = this; - - if (_headerObject) { - $('#header-diff-first input:checkbox').prop('checked', _headerObject.get_DifferentFirst()); - $('#header-diff-odd input:checkbox').prop('checked', _headerObject.get_DifferentEvenOdd()); - - var value = _headerObject.get_LinkToPrevious(); - $('#header-same-as input:checkbox').prop('checked', !!value); - $('#header-same-as').toggleClass('disabled', value===null); - - value = _headerObject.get_StartPageNumber(); - $('#header-numbering-continue input:checkbox').prop('checked', value<0); - $('#header-numbering-start').toggleClass('disabled', value<0); - if (value>=0) - _startAt=value; - $('#header-numbering-start .item-after label').text(_startAt); - } - }, - - // Public - // Handlers - - onDiffFirst: function (e) { - var $checkbox = $(e.currentTarget); - this.api.HeadersAndFooters_DifferentFirstPage($checkbox.is(':checked')); - }, - - onDiffOdd: function (e) { - var $checkbox = $(e.currentTarget); - this.api.HeadersAndFooters_DifferentOddandEvenPage($checkbox.is(':checked')); - }, - - onSameAs: function (e) { - var $checkbox = $(e.currentTarget); - this.api.HeadersAndFooters_LinkToPrevious($checkbox.is(':checked')); - }, - - onNumberingContinue: function (e) { - var $checkbox = $(e.currentTarget); - $('#header-numbering-start').toggleClass('disabled', $checkbox.is(':checked')); - this.api.asc_SetSectionStartPage($checkbox.is(':checked') ? -1 : _startAt); - }, - - onStartAt: function (e) { - var $button = $(e.currentTarget), - start = _startAt; - - if ($button.hasClass('decrement')) { - start = Math.max(1, --start); - } else { - start = Math.min(2147483646, ++start); - } - _startAt = start; - - $('#header-numbering-start .item-after label').text(start); - - this.api.asc_SetSectionStartPage(start); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var headers = []; - - _.each(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Header) { - headers.push(object); - } - }); - - if (headers.length > 0) { - var object = headers[headers.length - 1]; // get top - _headerObject = object.get_ObjectValue(); - } else { - _headerObject = undefined; - } - } - } - })(), DE.Controllers.EditHeader || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditHyperlink.js b/apps/documenteditor/mobile/app/controller/edit/EditHyperlink.js deleted file mode 100644 index 29f6fe866..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditHyperlink.js +++ /dev/null @@ -1,179 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditLink.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/7/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditHyperlink' -], function (core) { - 'use strict'; - - DE.Controllers.EditHyperlink = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _linkObject = undefined; - - return { - models: [], - collections: [], - views: [ - 'EditHyperlink' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditHyperlink').render(); - }, - - initEvents: function () { - var me = this; - - $('#edit-link-edit').single('click', _.bind(me.onEditLink, me)); - $('#edit-link-remove').single('click', _.bind(me.onRemoveLink, me)); - - me.initSettings(); - }, - - initSettings: function () { - if (_linkObject) { - if (_linkObject.get_Value()) { - $('#edit-link-url input').val([_linkObject.get_Value().replace(new RegExp(" ", 'g'), "%20")]); - } else { - $('#edit-link-url input').val(''); - } - - if (!_.isNull(_linkObject.get_Text())) { - $('#edit-link-display input').val([_linkObject.get_Text()]); - } - - $('#edit-link-tip input').val([_linkObject.get_ToolTip()]); - - $('#edit-link-edit').toggleClass('disabled', _.isEmpty($('#edit-link-url input').val())); - } - }, - - - // Handlers - - onEditLink: function () { - var me = this, - url = $('#edit-link-url input').val(), - display = $('#edit-link-display input').val(), - tip = $('#edit-link-tip input').val(), - urltype = me.api.asc_getUrlType($.trim(url)), - isEmail = (urltype == 2); - - if (urltype < 1) { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - return; - } - - url = url.replace(/^\s+|\s+$/g,''); - - if (! /(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url) ) - url = (isEmail ? 'mailto:' : 'http://' ) + url; - - url = url.replace(new RegExp("%20",'g')," "); - - var props = new Asc.CHyperlinkProperty(); - props.put_Value(url); - props.put_Text(_.isEmpty(display) ? url : display); - props.put_ToolTip(tip); - if (_linkObject) - props.put_InternalHyperlink(_linkObject.get_InternalHyperlink()); - - me.api.change_Hyperlink(props); - - DE.getController('EditContainer').hideModal(); - }, - - onRemoveLink: function () { - this.api && this.api.remove_Hyperlink(_linkObject); - DE.getController('EditContainer').hideModal(); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var links = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Hyperlink) { - links.push(object); - } - }); - - if (links.length > 0) { - var object = links[links.length - 1]; // get top - _linkObject = object.get_ObjectValue(); - } else { - _linkObject = undefined; - } - }, - - // Helpers - - _closeIfNeed: function () { - if (!this._isImageInStack()) { - DE.getController('EditContainer').hideModal(); - } - }, - - textEmptyImgUrl: 'You need to specify image URL.', - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - }; - })(), DE.Controllers.EditHyperlink || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditImage.js b/apps/documenteditor/mobile/app/controller/edit/EditImage.js deleted file mode 100644 index 0c1f4c9be..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditImage.js +++ /dev/null @@ -1,408 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditImage.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/3/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditImage', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditImage = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _imageObject = undefined, - _metricText = Common.Utils.Metric.getCurrentMetricName(); - - var wrapTypesTransform = (function() { - var map = [ - { ui:'inline', sdk: Asc.c_oAscWrapStyle2.Inline }, - { ui:'square', sdk: Asc.c_oAscWrapStyle2.Square }, - { ui:'tight', sdk: Asc.c_oAscWrapStyle2.Tight }, - { ui:'through', sdk: Asc.c_oAscWrapStyle2.Through }, - { ui:'top-bottom', sdk: Asc.c_oAscWrapStyle2.TopAndBottom }, - { ui:'behind', sdk: Asc.c_oAscWrapStyle2.Behind }, - { ui:'infront', sdk: Asc.c_oAscWrapStyle2.InFront } - ]; - - return { - sdkToUi: function(type) { - var record = map.filter(function(obj) { - return obj.sdk === type; - })[0]; - return record ? record.ui : ''; - }, - - uiToSdk: function(type) { - var record = map.filter(function(obj) { - return obj.ui === type; - })[0]; - return record ? record.sdk : 0; - }, - } - })(); - - - return { - models: [], - collections: [], - views: [ - 'EditImage' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditImage': { - 'page:show': this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditImage').render(); - }, - - initEvents: function () { - var me = this; - - $('#image-default').single('click', _.bind(me.onDefaulSize, me)); - $('#image-remove').single('click', _.bind(me.onRemoveImage, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('.image-wrap .image-wrap-types li').single('click', _.buffered(me.onWrapType, 100, me)); - $('.image-wrap .align a').single('click', _.bind(me.onAlign, me)); - $('#edit-image-movetext input').single('change', _.bind(me.onMoveText, me)); - $('#edit-image-overlap input').single('change', _.bind(me.onOverlap, me)); - $('.image-wrap .distance input').single('change touchend', _.buffered(me.onWrapDistance, 100, me)); - $('.image-wrap .distance input').single('input', _.bind(me.onWrapDistanceChanging, me)); - - $('#edit-image-file').single('click', _.bind(me.onReplaceByFile, me)); - $('.edit-image-url-link .button, .edit-image-url-link .list-button').single('click', _.bind(me.onReplaceByUrl, me)); - - $('.image-reorder a').single('click', _.bind(me.onReorder, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - - if (_imageObject) { - if (pageId == '#edit-image-wrap-view') { - me._initWrapView(); - } - } - }, - - _initWrapView: function() { - // Wrap type - var me = this, - wrapping = _imageObject.get_WrappingStyle(), - $imageWrapInput = $('.image-wrap input'), - imageWrapType = wrapTypesTransform.sdkToUi(wrapping); - - $imageWrapInput.val([imageWrapType]); - me._uiTransformByWrap(imageWrapType); - - // Wrap align - var imageHAlign = _imageObject.get_PositionH().get_Align(); - - $('.image-wrap .align a[data-type=left]').toggleClass('active', imageHAlign == Asc.c_oAscAlignH.Left); - $('.image-wrap .align a[data-type=center]').toggleClass('active', imageHAlign == Asc.c_oAscAlignH.Center); - $('.image-wrap .align a[data-type=right]').toggleClass('active', imageHAlign == Asc.c_oAscAlignH.Right); - - - // Wrap flags - $('#edit-image-movetext input').prop('checked', _imageObject.get_PositionV().get_RelativeFrom() == Asc.c_oAscRelativeFromV.Paragraph); - $('#edit-image-overlap input').prop('checked', _imageObject.get_AllowOverlap()); - - // Wrap distance - var paddings = _imageObject.get_Paddings(); - if (paddings) { - var distance = Common.Utils.Metric.fnRecalcFromMM(paddings.get_Top()); - $('.image-wrap .distance input').val(distance); - $('.image-wrap .distance .item-after').text(distance + ' ' + _metricText); - } - }, - - // Public - - getImage: function () { - return _imageObject; - }, - - // Handlers - - onDefaulSize: function () { - var me = this; - - if (me.api) { - var imgsize = me.api.get_OriginalSizeImage(), - properties = new Asc.asc_CImgProperty(); - if (imgsize) { - properties.put_Width(imgsize.get_ImageWidth()); - properties.put_Height(imgsize.get_ImageHeight()); - properties.put_ResetCrop(true); - me.api.ImgApply(properties); - } - } - }, - - onRemoveImage: function () { - this.api.asc_Remove(); - DE.getController('EditContainer').hideModal(); - }, - - onWrapType: function (e) { - var me = this, - $target = $(e.currentTarget).find('input'), - value = $target.val(), - properties = new Asc.asc_CImgProperty(); - - me._uiTransformByWrap(value); - - var sdkType = wrapTypesTransform.uiToSdk(value); - - properties.put_WrappingStyle(sdkType); - - me.api.ImgApply(properties); - }, - - onAlign: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - $('.image-wrap .align a').removeClass('active'); - $target.addClass('active'); - - var hAlign = Asc.c_oAscAlignH.Left; - - if ('center' == type) { - hAlign = Asc.c_oAscAlignH.Center; - } else if ('right' == type) { - hAlign = Asc.c_oAscAlignH.Right; - } - - var properties = new Asc.asc_CImgProperty(); - properties.put_PositionH(new Asc.CImagePositionH()); - properties.get_PositionH().put_UseAlign(true); - properties.get_PositionH().put_Align(hAlign); - properties.get_PositionH().put_RelativeFrom(Asc.c_oAscRelativeFromH.Page); - - me.api.ImgApply(properties); - }, - - onMoveText: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.asc_CImgProperty(); - - properties.put_PositionV(new Asc.CImagePositionV()); - properties.get_PositionV().put_UseAlign(true); - properties.get_PositionV().put_RelativeFrom($target.is(':checked') ? Asc.c_oAscRelativeFromV.Paragraph : Asc.c_oAscRelativeFromV.Page); - - me.api.ImgApply(properties); - }, - - onOverlap: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.asc_CImgProperty(); - - properties.put_AllowOverlap($target.is(':checked')); - - me.api.ImgApply(properties); - }, - - onWrapDistance: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.asc_CImgProperty(), - paddings = new Asc.asc_CPaddings(); - - $('.image-wrap .distance .item-after').text(value + ' ' + _metricText); - - value = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); - - paddings.put_Top(value); - paddings.put_Right(value); - paddings.put_Bottom(value); - paddings.put_Left(value); - - properties.put_Paddings(paddings); - - me.api.ImgApply(properties); - }, - - onWrapDistanceChanging: function (e) { - var $target = $(e.currentTarget); - $('.image-wrap .distance .item-after').text($target.val() + ' ' + _metricText); - }, - - onReplaceByFile: function () { - this.api.ChangeImageFromFile(); - DE.getController('EditContainer').hideModal(); - }, - - onReplaceByUrl: function () { - var me = this, - $input = $('.edit-image-url-link input[type=url]'); - - if ($input) { - var value = ($input.val()).replace(/ /g, ''); - - if (!_.isEmpty(value)) { - if ((/((^https?)|(^ftp)):\/\/.+/i.test(value))) { - DE.getController('EditContainer').hideModal(); - _.defer(function () { - var image = new Asc.asc_CImgProperty(); - image.put_ImageUrl(value); - me.api.ImgApply(image); - }); - } else { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - } - } else { - uiApp.alert(me.textEmptyImgUrl, me.notcriticalErrorTitle); - } - } - }, - - onReorder: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - var properties = new Asc.asc_CImgProperty(); - - if ('all-up' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringToFront); - } else if ('all-down' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.SendToBack); - } else if ('move-up' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringForward); - } else if ('move-down' == type) { - properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringBackward); - } - - this.api.ImgApply(properties); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var images = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - var imageObject = object.get_ObjectValue(); - if (imageObject && _.isNull(imageObject.get_ShapeProperties()) && _.isNull(imageObject.get_ChartProperties())) { - images.push(object); - } - } - }); - - if (images.length > 0) { - var object = images[images.length - 1]; // get top - _imageObject = object.get_ObjectValue(); - } else { - _imageObject = undefined; - } - }, - - // Helpers - - _uiTransformByWrap: function(type) { - $('.image-wrap .align')[('inline' == type) ? 'hide' : 'show'](); - $('.image-wrap .distance')[('inline' == type || 'behind' == type || 'infront' == type) ? 'hide' : 'show'](); - $('#edit-image-movetext').toggleClass('disabled', ('inline' == type)); - }, - - _closeIfNeed: function () { - if (!this._isImageInStack()) { - DE.getController('EditContainer').hideModal(); - } - }, - - _isImageInStack: function () { - var imageExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - var imageObject = object.get_ObjectValue(); - if (imageObject && _.isNull(imageObject.get_imageProperties()) && _.isNull(imageObject.get_ChartProperties())) { - imageExist = true; - return true; - } - } - }); - - return imageExist; - }, - - textEmptyImgUrl: 'You need to specify image URL.', - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - } - })(), DE.Controllers.EditImage || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditParagraph.js b/apps/documenteditor/mobile/app/controller/edit/EditParagraph.js deleted file mode 100644 index 114601e6a..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditParagraph.js +++ /dev/null @@ -1,372 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditParagraph.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/14/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditParagraph', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditParagraph = Backbone.Controller.extend(_.extend((function() { - // Private - var _paragraphInfo = {}, - _paragraphProperty = undefined, - _styleName, - metricText = Common.Utils.Metric.getCurrentMetricName(); - - return { - models: [], - collections: [], - views: [ - 'EditParagraph' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - - this.addListeners({ - 'EditParagraph': { - 'page:show' : this.onPageShow, - 'style:click' : this.onStyleClick - } - }); - - this._styles = []; - this._styleThumbSize = undefined; - this._paragraphObject = undefined; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('EditParagraph').render(); - }, - - initEvents: function () { - var me = this; - - me.initSettings(); - }, - - categoryShow: function (e) { - var $target = $(e.currentTarget); - - if ($target && $target.prop('id') === 'edit-paragraph') { - this.initSettings(); - } - }, - - onPageShow: function () { - var me = this, - paletteBackgroundColor = me.getView('EditParagraph').paletteBackgroundColor; - - $('#paragraph-distance-before .button').single('click', _.bind(me.onDistanceBefore, me)); - $('#paragraph-distance-after .button').single('click', _.bind(me.onDistanceAfter, me)); - $('#paragraph-spin-first-line .button').single('click', _.bind(me.onSpinFirstLine, me)); - $('#paragraph-space input:checkbox').single('change', _.bind(me.onSpaceBetween, me)); - $('#paragraph-page-break input:checkbox').single('change', _.bind(me.onBreakBefore, me)); - $('#paragraph-page-orphan input:checkbox').single('change', _.bind(me.onOrphan, me)); - $('#paragraph-page-keeptogether input:checkbox').single('change',_.bind(me.onKeepTogether, me)); - $('#paragraph-page-keepnext input:checkbox').single('change', _.bind(me.onKeepNext, me)); - - paletteBackgroundColor && paletteBackgroundColor.on('select', _.bind(me.onBackgroundColor, me)); - - me.initSettings(); - }, - - initSettings: function () { - var me = this; - - metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - var selectedElements = me.api.getSelectedElements(); - if (selectedElements && _.isArray(selectedElements)) { - for (var i = selectedElements.length - 1; i >= 0; i--) { - if (Asc.c_oAscTypeSelectElement.Paragraph == selectedElements[i].get_ObjectType()) { - _paragraphProperty = selectedElements[i].get_ObjectValue(); - break; - } - } - } - - if (_paragraphProperty) { - if (_paragraphProperty.get_Ind()===null || _paragraphProperty.get_Ind()===undefined) { - _paragraphProperty.get_Ind().put_FirstLine(0); - } - var firstLineFix = parseFloat(Common.Utils.Metric.fnRecalcFromMM(_paragraphProperty.get_Ind().get_FirstLine()).toFixed(2)); - $('#paragraph-spin-first-line .item-after label').text(firstLineFix + ' ' + metricText); - } - - if (me._paragraphObject) { - _paragraphInfo.spaceBefore = me._paragraphObject.get_Spacing().get_Before() < 0 ? me._paragraphObject.get_Spacing().get_Before() : Common.Utils.Metric.fnRecalcFromMM(me._paragraphObject.get_Spacing().get_Before()); - _paragraphInfo.spaceAfter = me._paragraphObject.get_Spacing().get_After() < 0 ? me._paragraphObject.get_Spacing().get_After() : Common.Utils.Metric.fnRecalcFromMM(me._paragraphObject.get_Spacing().get_After()); - var distanceBeforeFix = parseFloat(_paragraphInfo.spaceBefore.toFixed(2)); - var distanceAfterFix = parseFloat(_paragraphInfo.spaceAfter.toFixed(2)); - $('#paragraph-distance-before .item-after label').text(_paragraphInfo.spaceBefore < 0 ? 'Auto' : distanceBeforeFix + ' ' + metricText); - $('#paragraph-distance-after .item-after label').text(_paragraphInfo.spaceAfter < 0 ? 'Auto' : distanceAfterFix + ' ' + metricText); - - $('#paragraph-space input:checkbox').prop('checked', !me._paragraphObject.get_ContextualSpacing()); - $('#paragraph-page-break input:checkbox').prop('checked', me._paragraphObject.get_PageBreakBefore()); - $('#paragraph-page-orphan input:checkbox').prop('checked', me._paragraphObject.get_WidowControl()); - $('#paragraph-page-keeptogether input:checkbox').prop('checked', me._paragraphObject.get_KeepLines()); - $('#paragraph-page-keepnext input:checkbox').prop('checked', me._paragraphObject.get_KeepNext()); - - - // Background color - var shade = me._paragraphObject.get_Shade(), - backColor = 'transparent'; - - if (!_.isNull(shade) && !_.isUndefined(shade) && shade.get_Value()===Asc.c_oAscShdClear) { - var color = shade.get_Color(); - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - backColor = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - }; - } else { - backColor = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } - } - - $('#paragraph-background .color-preview').css('background-color', (backColor === 'transparent') ? backColor : ('#' + (_.isObject(backColor) ? backColor.color : backColor))); - - var palette = me.getView('EditParagraph').paletteBackgroundColor; - - if (palette) { - palette.select(backColor); - } - - $('#paragraph-list input[name=paragraph-style]').val([_styleName]); - } - }, - - onStyleClick: function (view, e) { - var $item = $(e.currentTarget).find('input'); - - if ($item) { - this.api.put_Style($item.prop('value')); - } - }, - - // Public - getStyles: function () { - return this._styles || []; - }, - - getThumbSize: function () { - return this._styleThumbSize || {width: 0, height: 0}; - }, - - // Handlers - - onBackgroundColor: function (palette, color) { - var me = this; - - $('#paragraph-background .color-preview').css('background-color', (color === 'transparent') ? color : ('#' + (_.isObject(color) ? color.color : color))); - - if (me.api) { - var properties = new Asc.asc_CParagraphProperty(); - - properties.put_Shade(new Asc.asc_CParagraphShd()); - - if (color == 'transparent') { - properties.get_Shade().put_Value(Asc.c_oAscShdNil); - } else { - properties.get_Shade().put_Value(Asc.c_oAscShdClear); - properties.get_Shade().put_Color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - me.api.paraApply(properties); - } - }, - - onDistanceBefore: function (e) { - var $button = $(e.currentTarget), - distance = _paragraphInfo.spaceBefore, - step, - maxValue; - - if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { - step = 1; - } else { - step = 0.01; - } - - maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); - - if ($button.hasClass('decrement')) { - distance = Math.max(-1, distance - step); - } else { - distance = (distance<0) ? 0 : Math.min(maxValue, distance + step); - } - - var distanceFix = parseFloat(distance.toFixed(2)); - - _paragraphInfo.spaceBefore = distance; - - $('#paragraph-distance-before .item-after label').text(_paragraphInfo.spaceBefore < 0 ? 'Auto' : distanceFix + ' ' + metricText); - - this.api.put_LineSpacingBeforeAfter(0, (_paragraphInfo.spaceBefore < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(_paragraphInfo.spaceBefore)); - }, - - onDistanceAfter: function (e) { - var $button = $(e.currentTarget), - distance = _paragraphInfo.spaceAfter, - step, - maxValue; - - if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { - step = 1; - } else { - step = 0.01; - } - - maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); - - if ($button.hasClass('decrement')) { - distance = Math.max(-1, distance - step); - } else { - distance = (distance<0) ? 0 : Math.min(maxValue, distance + step); - } - - var distanceFix = parseFloat(distance.toFixed(2)); - - _paragraphInfo.spaceAfter = distance; - - $('#paragraph-distance-after .item-after label').text(_paragraphInfo.spaceAfter < 0 ? 'Auto' : distanceFix + ' ' + metricText); - this.api.put_LineSpacingBeforeAfter(1, (_paragraphInfo.spaceAfter < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(_paragraphInfo.spaceAfter)); - }, - - onSpinFirstLine: function(e) { - var $button = $(e.currentTarget), - distance = _paragraphProperty.get_Ind().get_FirstLine(), - step, - minValue, - maxValue; - - distance = Common.Utils.Metric.fnRecalcFromMM(distance); - - if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { - step = 1; - } else { - step = 0.1; - } - - minValue = Common.Utils.Metric.fnRecalcFromMM(-558.7); - maxValue = Common.Utils.Metric.fnRecalcFromMM(558.7); - - if ($button.hasClass('decrement')) { - distance = Math.max(minValue, distance - step); - } else { - distance = Math.min(maxValue, distance + step); - } - - var distanceFix = parseFloat(distance.toFixed(2)); - - $('#paragraph-spin-first-line .item-after label').text(distanceFix + ' ' + metricText); - - distance = Common.Utils.Metric.fnRecalcToMM(distance); - - var newParagraphProp = new Asc.asc_CParagraphProperty(); - - _paragraphProperty.get_Ind().put_FirstLine(distance); - - newParagraphProp.get_Ind().put_FirstLine(distance); - - this.api.paraApply(newParagraphProp); - }, - - onSpaceBetween: function (e) { - var $checkbox = $(e.currentTarget); - this.api.put_AddSpaceBetweenPrg(!$checkbox.is(':checked')); - }, - - onBreakBefore: function (e) { - var $checkbox = $(e.currentTarget); - var properties = new Asc.asc_CParagraphProperty(); - - properties.put_PageBreakBefore($checkbox.is(':checked')); - this.api.paraApply(properties); - }, - - onOrphan: function (e) { - var $checkbox = $(e.currentTarget); - var properties = new Asc.asc_CParagraphProperty(); - - properties.put_WidowControl($checkbox.is(':checked')); - this.api.paraApply(properties); - }, - - onKeepTogether: function (e) { - var $checkbox = $(e.currentTarget); - var properties = new Asc.asc_CParagraphProperty(); - - properties.put_KeepLines($checkbox.is(':checked')); - this.api.paraApply(properties); - }, - - onKeepNext: function (e) { - var $checkbox = $(e.currentTarget); - var properties = new Asc.asc_CParagraphProperty(); - - properties.put_KeepNext($checkbox.is(':checked')); - this.api.paraApply(properties); - }, - - - // API handlers - - onApiParagraphStyleChange: function(name) { - _styleName = name; - $('#paragraph-list input[name=paragraph-style]').val([_styleName]); - } - } - })(), DE.Controllers.EditParagraph || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditShape.js b/apps/documenteditor/mobile/app/controller/edit/EditShape.js deleted file mode 100644 index 996c13543..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditShape.js +++ /dev/null @@ -1,557 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditShape.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/21/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditShape', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditShape = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _shapeObject = undefined, - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _borderColor = 'transparent'; - - var wrapTypesTransform = (function() { - var map = [ - { ui:'inline', sdk: Asc.c_oAscWrapStyle2.Inline }, - { ui:'square', sdk: Asc.c_oAscWrapStyle2.Square }, - { ui:'tight', sdk: Asc.c_oAscWrapStyle2.Tight }, - { ui:'through', sdk: Asc.c_oAscWrapStyle2.Through }, - { ui:'top-bottom', sdk: Asc.c_oAscWrapStyle2.TopAndBottom }, - { ui:'behind', sdk: Asc.c_oAscWrapStyle2.Behind }, - { ui:'infront', sdk: Asc.c_oAscWrapStyle2.InFront } - ]; - - return { - sdkToUi: function(type) { - var record = map.filter(function(obj) { - return obj.sdk === type; - })[0]; - return record ? record.ui : ''; - }, - - uiToSdk: function(type) { - var record = map.filter(function(obj) { - return obj.ui === type; - })[0]; - return record ? record.sdk : 0; - } - } - })(); - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index; - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditShape' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditShape': { - 'page:show': this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditShape').render(); - }, - - initEvents: function () { - var me = this; - - $('#shape-remove').single('click', _.bind(me.onRemoveShape, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('.shape-reorder a').single('click', _.bind(me.onReorder, me)); - $('.shape-replace li').single('click', _.buffered(me.onReplace, 100, me)); - $('.shape-wrap .shape-wrap-types li').single('click', _.buffered(me.onWrapType, 100, me)); - $('.shape-wrap .align a').single('click', _.bind(me.onAlign, me)); - $('#edit-shape-movetext input').single('change', _.bind(me.onMoveText, me)); - $('#edit-shape-overlap input').single('change', _.bind(me.onOverlap, me)); - $('.shape-wrap .distance input').single('change touchend', _.buffered(me.onWrapDistance, 100, me)); - $('.shape-wrap .distance input').single('input', _.bind(me.onWrapDistanceChanging, me)); - - $('#edit-shape-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-shape-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - $('#edit-shape-effect input').single('change touchend', _.buffered(me.onOpacity, 100, me)); - $('#edit-shape-effect input').single('input', _.bind(me.onOpacityChanging, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - // me.api && me.api.UpdateInterfaceState(); - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - if (_shapeObject) { - if (pageId == '#edit-shape-wrap') { - me._initWrapView(); - } else if (pageId == '#edit-shape-style' || pageId == '#edit-shape-style-nofill' || pageId == '#edit-shape-border-color-view') { - me._initStyleView(); - } else { - me.getView('EditShape').isShapeCanFill = _shapeObject.get_ShapeProperties().get_CanFill(); - } - } - }, - - _initWrapView: function() { - // Wrap type - var me = this, - wrapping = _shapeObject.get_WrappingStyle(), - $shapeWrapInput = $('.shape-wrap input'), - shapeWrapType = wrapTypesTransform.sdkToUi(wrapping); - - $shapeWrapInput.val([shapeWrapType]); - me._uiTransformByWrap(shapeWrapType); - - // Wrap align - var shapeHAlign = _shapeObject.get_PositionH().get_Align(); - - $('.shape-wrap .align a[data-type=left]').toggleClass('active', shapeHAlign == Asc.c_oAscAlignH.Left); - $('.shape-wrap .align a[data-type=center]').toggleClass('active', shapeHAlign == Asc.c_oAscAlignH.Center); - $('.shape-wrap .align a[data-type=right]').toggleClass('active', shapeHAlign == Asc.c_oAscAlignH.Right); - - - // Wrap flags - $('#edit-shape-movetext input').prop('checked', _shapeObject.get_PositionV().get_RelativeFrom() == Asc.c_oAscRelativeFromV.Paragraph); - $('#edit-shape-overlap input').prop('checked', _shapeObject.get_AllowOverlap()); - - // Wrap distance - var paddings = _shapeObject.get_Paddings(); - if (paddings) { - var distance = Common.Utils.Metric.fnRecalcFromMM(paddings.get_Top()); - $('.shape-wrap .distance input').val(distance); - $('.shape-wrap .distance .item-after').text(distance + ' ' + _metricText); - } - }, - - _initStyleView: function () { - var me = this, - shapeProperties = _shapeObject.get_ShapeProperties(), - paletteFillColor = me.getView('EditShape').paletteFillColor, - paletteBorderColor = me.getView('EditShape').paletteBorderColor; - - // Init style border size - var borderSize = shapeProperties.get_stroke().get_width() * 72.0 / 25.4; - var borderType = shapeProperties.get_stroke().get_type(); - $('#edit-shape-bordersize input').val([(borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize)]); - $('#edit-shape-bordersize .item-after').text(((borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize)) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - // Init style opacity - var transparent = shapeProperties.get_fill().asc_getTransparent(); - $('#edit-shape-effect input').val([transparent!==null && transparent!==undefined ? transparent / 2.55 : 100]); - $('#edit-shape-effect .item-after').text($('#edit-shape-effect input').val() + ' ' + "%"); - - paletteFillColor && paletteFillColor.on('select', _.bind(me.onFillColor, me)); - paletteBorderColor && paletteBorderColor.on('select', _.bind(me.onBorderColor, me)); - - var sdkColor, color; - - // Init fill color - var fill = shapeProperties.get_fill(), - fillType = fill.get_type(); - - color = 'transparent'; - - if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { - fill = fill.get_fill(); - sdkColor = fill.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - - paletteFillColor && paletteFillColor.select(color); - - // Init border color - me._initBorderColorView(); - }, - - _initBorderColorView: function () { - if (!_shapeObject) return; - - var me = this, - paletteBorderColor = me.getView('EditShape').paletteBorderColor, - stroke = _shapeObject.get_ShapeProperties().get_stroke(); - - var color = 'transparent'; - - if (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var sdkColor = stroke.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } - else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - _borderColor = color; - - paletteBorderColor && paletteBorderColor.select(color); - $('#edit-shape-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))) - }, - - // Public - - getShape: function () { - return _shapeObject; - }, - - // Handlers - - onRemoveShape: function () { - this.api.asc_Remove(); - DE.getController('EditContainer').hideModal(); - }, - - onReorder: function (e) { - }, - - onReplace: function (e) { - }, - - onWrapType: function (e) { - var me = this, - $target = $(e.currentTarget).find('input'), - value = $target.val(), - properties = new Asc.asc_CImgProperty(); - - me._uiTransformByWrap(value); - - var sdkType = wrapTypesTransform.uiToSdk(value); - - properties.put_WrappingStyle(sdkType); - - me.api.ImgApply(properties); - }, - - onAlign: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - $('.shape-wrap .align a').removeClass('active'); - $target.addClass('active'); - - var hAlign = Asc.c_oAscAlignH.Left; - - if ('center' == type) { - hAlign = Asc.c_oAscAlignH.Center; - } else if ('right' == type) { - hAlign = Asc.c_oAscAlignH.Right; - } - - var properties = new Asc.asc_CImgProperty(); - properties.put_PositionH(new Asc.CImagePositionH()); - properties.get_PositionH().put_UseAlign(true); - properties.get_PositionH().put_Align(hAlign); - properties.get_PositionH().put_RelativeFrom(Asc.c_oAscRelativeFromH.Page); - - me.api.ImgApply(properties); - }, - - onMoveText: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.asc_CImgProperty(); - - properties.put_PositionV(new Asc.CImagePositionV()); - properties.get_PositionV().put_UseAlign(true); - properties.get_PositionV().put_RelativeFrom($target.is(':checked') ? Asc.c_oAscRelativeFromV.Paragraph : Asc.c_oAscRelativeFromV.Page); - - me.api.ImgApply(properties); - }, - - onOverlap: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.asc_CImgProperty(); - - properties.put_AllowOverlap($target.is(':checked')); - - me.api.ImgApply(properties); - }, - - onWrapDistance: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.asc_CImgProperty(), - paddings = new Asc.asc_CPaddings(); - - $('.shape-wrap .distance .item-after').text(value + ' ' + _metricText); - - value = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); - - paddings.put_Top(value); - paddings.put_Right(value); - paddings.put_Bottom(value); - paddings.put_Left(value); - - properties.put_Paddings(paddings); - - me.api.ImgApply(properties); - }, - - onWrapDistanceChanging: function (e) { - var $target = $(e.currentTarget); - $('.shape-wrap .distance .item-after').text($target.val() + ' ' + _metricText); - }, - - onBorderSize: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - value = borderSizeTransform.sizeByIndex(parseInt(value)); - - if (value < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - if (_borderColor == 'transparent') - stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); - else - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); - stroke.put_width(value * 25.4 / 72.0); - } - - shape.put_stroke(stroke); - image.put_ShapeProperties(shape); - - me.api.ImgApply(image); - me._initBorderColorView(); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-shape-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - onOpacity: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.asc_CImgProperty(), - fill = new Asc.asc_CShapeFill(), - shape = new Asc.asc_CShapeProperty(); - - fill.put_transparent(parseInt(value * 2.55)); - shape.put_fill(fill); - properties.put_ShapeProperties(shape); - - me.api.ImgApply(properties); - }, - - onOpacityChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-shape-effect .item-after').text($target.val() + ' %'); - }, - - onFillColor: function(palette, color) { - var me = this; - - if (me.api) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - fill = new Asc.asc_CShapeFill(); - - if (color == 'transparent') { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); - fill.put_fill(null); - } else { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); - fill.put_fill(new Asc.asc_CFillSolid()); - fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - shape.put_fill(fill); - image.put_ShapeProperties(shape); - - me.api.ImgApply(image); - } - }, - - onBorderColor: function (palette, color) { - var me = this, - currentShape = _shapeObject ? _shapeObject.get_ShapeProperties() : null; - - $('#edit-shape-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - _borderColor = color; - - if (me.api && currentShape && currentShape.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - if (currentShape.get_stroke().get_width() < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); - stroke.put_width(currentShape.get_stroke().get_width()); - stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); - } - - shape.put_stroke(stroke); - image.put_ShapeProperties(shape); - - me.api.ImgApply(image); - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var shapes = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - if (object.get_ObjectValue() && object.get_ObjectValue().get_ShapeProperties()) { - shapes.push(object); - } - } - }); - - if (shapes.length > 0) { - var object = shapes[shapes.length - 1]; // get top shape - _shapeObject = object.get_ObjectValue(); - this.getView('EditShape').isShapeCanFill = _shapeObject.get_ShapeProperties().get_CanFill(); - } else { - _shapeObject = undefined; - } - }, - - // Helpers - - _uiTransformByWrap: function(type) { - $('.shape-wrap .align')[('inline' == type) ? 'hide' : 'show'](); - $('.shape-wrap .distance')[('behind' == type || 'infront' == type) ? 'hide' : 'show'](); - $('#edit-shape-movetext').toggleClass('disabled', ('inline' == type)); - }, - - _closeIfNeed: function () { - if (!this._isShapeInStack()) { - DE.getController('EditContainer').hideModal(); - } - }, - - _isShapeInStack: function () { - var shapeExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - if (object.get_ObjectValue() && object.get_ObjectValue().get_ShapeProperties()) { - shapeExist = true; - return true; - } - } - }); - - return shapeExist; - } - }; - })(), DE.Controllers.EditShape || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditTable.js b/apps/documenteditor/mobile/app/controller/edit/EditTable.js deleted file mode 100644 index c94825acb..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditTable.js +++ /dev/null @@ -1,675 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditTable.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/20/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditTable', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditTable = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _tableObject = undefined, - _tableLook = {}, - _cellBorders = undefined, - _cellBorderColor = '000000', - _cellBorderWidth = 0.5; - - var c_tableWrap = { - TABLE_WRAP_NONE: 0, - TABLE_WRAP_PARALLEL: 1 - }; - - var c_tableAlign = { - TABLE_ALIGN_LEFT: 0, - TABLE_ALIGN_CENTER: 1, - TABLE_ALIGN_RIGHT: 2 - }; - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index; - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditTable' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditTable': { - 'page:show' : this.onPageShow - } - }); - - var me = this; - uiApp.onPageBack('edit-table-style-options', function (page) { - $('.dataview.table-styles .row div').single('click', _.bind(me.onStyleClick, me)); - me.initSettings('#edit-table-style'); - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('EditTable').render(); - }, - - initEvents: function () { - var me = this; - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this, - paletteFillColor = me.getView('EditTable').paletteFillColor, - paletteBorderColor = me.getView('EditTable').paletteBorderColor; - - $('#table-wrap-type li').single('click', _.buffered(me.onWrapType, 100, me)); - $('#table-move-text input:checkbox').single('change', _.bind(me.onWrapMoveText, me)); - $('#table-distance input').single('change touchend', _.buffered(me.onWrapDistance, 100, me)); - $('#table-distance input').single('input', _.bind(me.onWrapDistanceChanging, me)); - $('#table-align-left').single('click', _.bind(me.onWrapAlign, me, c_tableAlign.TABLE_ALIGN_LEFT)); - $('#table-align-center').single('click', _.bind(me.onWrapAlign, me, c_tableAlign.TABLE_ALIGN_CENTER)); - $('#table-align-right').single('click', _.bind(me.onWrapAlign, me, c_tableAlign.TABLE_ALIGN_RIGHT)); - - $('#table-option-repeatasheader input:checkbox').single('change', _.bind(me.onOptionRepeat, me)); - $('#table-option-resizetofit input:checkbox').single('change', _.bind(me.onOptionResize, me)); - $('#table-options-margins input').single('change touchend', _.buffered(me.onOptionMargin, 100, me)); - $('#table-options-margins input').single('input', _.bind(me.onOptionMarginChanging, me)); - - $('#table-options-header-row input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 0)); - $('#table-options-total-row input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 1)); - $('#table-options-banded-row input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 2)); - $('#table-options-first-column input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 3)); - $('#table-options-last-column input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 4)); - $('#table-options-banded-column input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 5)); - - $('#edit-table-bordertypes a').single('click', _.bind(me.onBorderTypeClick, me)); - - $('.dataview.table-styles .row div').single('click', _.bind(me.onStyleClick, me)); - $('#edit-table-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-table-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - - paletteFillColor && paletteFillColor.on('select', _.bind(me.onFillColor, me)); - paletteBorderColor && paletteBorderColor.on('select', _.bind(me.onBorderColor, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - - if (_tableObject) { - if (pageId == '#edit-table-wrap') { - me._initWrappView(); - Common.Utils.addScrollIfNeed('.page[data-page=edit-table-wrap]', '.page[data-page=edit-table-wrap] .page-content'); - } else if (pageId == "#edit-table-style" || pageId == '#edit-table-border-color-view') { - me._initStyleView(); - - if (pageId == '#edit-table-border-color-view') { - Common.Utils.addScrollIfNeed('.page[data-page=edit-table-border-color]', '.page[data-page=edit-table-border-color] .page-content'); - } else { - Common.Utils.addScrollIfNeed('.page[data-page=edit-table-style]', '.page[data-page=edit-table-style] .page-content'); - } - - Common.Utils.addScrollIfNeed('#tab-table-border .list-block', '#tab-table-border .list-block ul'); - Common.Utils.addScrollIfNeed('#tab-table-fill .list-block', '#tab-table-fill .list-block ul'); - Common.Utils.addScrollIfNeed('#tab-table-style .list-block', '#tab-table-style .list-block ul'); - } else if (pageId == '#edit-table-options') { - Common.Utils.addScrollIfNeed('.page[data-page=edit-table-wrap]', '.page[data-page=edit-table-wrap] .page-content'); - me._initTableOptionsView(); - } else if (pageId == '#edit-table-style-options-view') { - Common.Utils.addScrollIfNeed('.page[data-page=edit-table-style-options]', '.page[data-page=edit-table-style-options] .page-content'); - me._initStyleOptionsView(); - } - } - }, - - _initStyleOptionsView: function() { - $('#table-options-header-row input').prop('checked', _tableLook.get_FirstRow()); - $('#table-options-total-row input').prop('checked', _tableLook.get_LastRow()); - $('#table-options-banded-row input').prop('checked', _tableLook.get_BandHor()); - $('#table-options-first-column input').prop('checked', _tableLook.get_FirstCol()); - $('#table-options-last-column input').prop('checked', _tableLook.get_LastCol()); - $('#table-options-banded-column input').prop('checked', _tableLook.get_BandVer()); - }, - - _initTableOptionsView: function() { - $('#table-option-repeatasheader input').prop('checked', !!_tableObject.get_RowsInHeader()); - if (_tableObject.get_RowsInHeader() === null) - $('#table-option-repeatasheader').addClass('disabled'); - else - $('#table-option-repeatasheader').removeClass('disabled'); - $('#table-option-resizetofit input').prop('checked', _tableObject.get_TableLayout()==Asc.c_oAscTableLayout.AutoFit); - - var margins = _tableObject.get_CellMargins(); - if (margins) { - var distance = Common.Utils.Metric.fnRecalcFromMM(margins.get_Left()); - $('#table-options-margins input').val(distance); - $('#table-options-margins .item-after').text(distance + ' ' + _metricText); - } - }, - - _initWrappView: function() { - var me = this, - type = _tableObject.get_TableWrap() == c_tableWrap.TABLE_WRAP_NONE ? 'inline' : 'flow'; - - // wrap type - $('#table-wrap-type input').val([type]); - me._uiTransformByWrap(type); - - // wrap move text - $('#table-move-text input').prop('checked', (_tableObject.get_PositionV() && _tableObject.get_PositionV().get_RelativeFrom()==Asc.c_oAscVAnchor.Text)); - - // wrap align - var align = _tableObject.get_TableAlignment(); - $('#table-align-left').toggleClass('active', align == c_tableAlign.TABLE_ALIGN_LEFT); - $('#table-align-center').toggleClass('active', align == c_tableAlign.TABLE_ALIGN_CENTER); - $('#table-align-right').toggleClass('active', align == c_tableAlign.TABLE_ALIGN_RIGHT); - - // wrap distance - var paddings = _tableObject.get_TablePaddings(); - if (paddings) { - var distance = Common.Utils.Metric.fnRecalcFromMM(paddings.get_Top()); - $('#table-distance input').val(distance); - $('#table-distance .item-after').text(distance + ' ' + _metricText); - } - }, - - _initStyleView: function() { - var me = this; - - /** - * Style - */ - - var styleId = _tableObject.get_TableStyle(); - $('#edit-table-styles .table-styles div').removeClass('active'); - $('#edit-table-styles .table-styles div[data-type=' + styleId + ']').addClass('active'); - - /** - * Fill - */ - - var background = _tableObject.get_CellsBackground(), - fillColor = 'transparent'; - - if (background) { - if (background.get_Value()==0) { - var color = background.get_Color(); - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - fillColor = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value()}; - } else { - fillColor = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } - } - } - - var palette = me.getView('EditTable').paletteFillColor; - - if (palette) { - palette.select(fillColor); - } - - /** - * Border - */ - - // if (_.isUndefined(_cellBorderColor) || _.isUndefined(_cellBorderWidth)) { - // _cellBorders = _tableObject.get_CellBorders(); - // - // _.some([ - // _cellBorders.get_Left(), - // _cellBorders.get_Top(), - // _cellBorders.get_Right(), - // _cellBorders.get_Bottom(), - // _cellBorders.get_InsideV(), - // _cellBorders.get_InsideH() - // ], function (border) { - // if (border.get_Value() > 0) { - // var borderColor = border.get_Color(); - // - // if (borderColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - // borderColor = { - // color: Common.Utils.ThemeColor.getHexColor(borderColor.get_r(), borderColor.get_g(), borderColor.get_b()), - // effectValue: borderColor.get_value() - // }; - // } else { - // borderColor = Common.Utils.ThemeColor.getHexColor(borderColor.get_r(), borderColor.get_g(), borderColor.get_b()); - // } - // - // _cellBorderWidth = border.get_Size(); - // _cellBorderColor = borderColor; - // - // return true; - // } - // }); - // } - - $('#edit-table-bordersize input').val([borderSizeTransform.indexSizeByValue(_cellBorderWidth)]); - $('#edit-table-bordersize .item-after').text(borderSizeTransform.sizeByValue(_cellBorderWidth) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - var borderPalette = me.getView('EditTable').paletteBorderColor; - - if (borderPalette) { - borderPalette.select(_cellBorderColor); - } - - $('#edit-table-bordercolor .color-preview').css('background-color', ('transparent' == _cellBorderColor) ? _cellBorderColor : ('#' + (_.isObject(_cellBorderColor) ? _cellBorderColor.color : _cellBorderColor))); - }, - - _updateBordersStyle: function(border) { - _cellBorders = new Asc.CBorders(); - var updateBorders = _cellBorders; - - var visible = (border != ''); - - if (border.indexOf('l') > -1 || !visible) { - if (updateBorders.get_Left()===null || updateBorders.get_Left()===undefined) - updateBorders.put_Left(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Left(), visible); - } - if (border.indexOf('t') > -1 || !visible) { - if (updateBorders.get_Top()===null || updateBorders.get_Top()===undefined) - updateBorders.put_Top(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Top(), visible); - } - if (border.indexOf('r') > -1 || !visible) { - if (updateBorders.get_Right()===null || updateBorders.get_Right()===undefined) - updateBorders.put_Right(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Right(), visible); - } - if (border.indexOf('b') > -1 || !visible) { - if (updateBorders.get_Bottom()===null || updateBorders.get_Bottom()===undefined) - updateBorders.put_Bottom(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Bottom(), visible); - } - if (border.indexOf('c') > -1 || !visible) { - if (updateBorders.get_InsideV()===null || updateBorders.get_InsideV()===undefined) - updateBorders.put_InsideV(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_InsideV(), visible); - } - if (border.indexOf('m') > -1 || !visible) { - if (updateBorders.get_InsideH()===null || updateBorders.get_InsideH()===undefined) - updateBorders.put_InsideH(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_InsideH(), visible); - } - }, - - _updateBorderStyle: function(border, visible) { - if (_.isNull(border)) { - border = new Asc.asc_CTextBorder(); - } - - if (visible && _cellBorderWidth > 0){ - var size = parseFloat(_cellBorderWidth); - border.put_Value(1); - border.put_Size(size * 25.4 / 72.0); - var color = Common.Utils.ThemeColor.getRgbColor(_cellBorderColor); - border.put_Color(color); - } - else { - border.put_Value(0); - } - }, - - // Public - - getTable: function() { - return _tableObject; - }, - - // Handlers - - onWrapType: function (e) { - var me = this, - $target = $(e.currentTarget).find('input'), - value = $target.val(); - - me._uiTransformByWrap(value); - - var properties = new Asc.CTableProp(); - - if ('inline' == value) { - properties.put_TableWrap(c_tableWrap.TABLE_WRAP_NONE); - } else { - properties.put_TableWrap(c_tableWrap.TABLE_WRAP_PARALLEL); - } - - me.api.tblApply(properties); - }, - - onWrapMoveText :function (e) { - var me = this, - $target = $(e.currentTarget), - isOn = $target.is(':checked'), - properties = new Asc.CTableProp(), - position = new Asc.CTablePositionV(); - - position.put_UseAlign(false); - position.put_RelativeFrom(isOn ? Asc.c_oAscVAnchor.Text : Asc.c_oAscVAnchor.Page); - position.put_Value(_tableObject.get_Value_Y(isOn ? Asc.c_oAscVAnchor.Text : Asc.c_oAscVAnchor.Page)); - - properties.put_PositionV(position); - - me.api.tblApply(properties); - }, - - onWrapDistance: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.CTableProp(), - paddings = new Asc.asc_CPaddings(); - - $('#table-distance .item-after').text(value + ' ' + _metricText); - - value = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); - - paddings.put_Top(value); - paddings.put_Right(value); - paddings.put_Bottom(value); - paddings.put_Left(value); - - properties.put_TablePaddings(paddings); - - me.api.tblApply(properties); - }, - - onWrapDistanceChanging: function (e) { - var $target = $(e.currentTarget); - $('#table-distance .item-after').text($target.val() + ' ' + _metricText); - }, - - onWrapAlign: function (type, e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.CTableProp(); - - $('#table-align .button').removeClass('active'); - $target.addClass('active'); - - properties.put_TableAlignment(type); - me.api.tblApply(properties); - }, - - onOptionRepeat: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.CTableProp(); - - properties.put_RowsInHeader($target.is(':checked')); - me.api.tblApply(properties); - }, - - onOptionResize: function (e) { - var me = this, - $target = $(e.currentTarget), - properties = new Asc.CTableProp(); - - properties.put_TableLayout($target.is(':checked') ? Asc.c_oAscTableLayout.AutoFit : Asc.c_oAscTableLayout. Fixed); - me.api.tblApply(properties); - }, - - onOptionMargin: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.CTableProp(), - margins = new Asc.CMargins(); - - $('#table-options-margins .item-after').text(value + ' ' + _metricText); - - value = Common.Utils.Metric.fnRecalcToMM(value); - - margins.put_Top(value); - margins.put_Right(value); - margins.put_Bottom(value); - margins.put_Left(value); - margins.put_Flag(2); - - properties.put_CellMargins(margins); - - me.api.tblApply(properties); - }, - - onOptionMarginChanging: function (e) { - var $target = $(e.currentTarget); - $('#table-options-margins .item-after').text($target.val() + ' ' + _metricText); - }, - - onCheckTemplateChange: function(type, e) { - if (this.api) { - var properties = new Asc.CTableProp(); - - switch (type) { - case 0: - _tableLook.put_FirstRow($('#table-options-header-row input').is(':checked')); - break; - case 1: - _tableLook.put_LastRow($('#table-options-total-row input').is(':checked')); - break; - case 2: - _tableLook.put_BandHor($('#table-options-banded-row input').is(':checked')); - break; - case 3: - _tableLook.put_FirstCol($('#table-options-first-column input').is(':checked')); - break; - case 4: - _tableLook.put_LastCol($('#table-options-last-column input').is(':checked')); - break; - case 5: - _tableLook.put_BandVer($('#table-options-banded-column input').is(':checked')); - break; - } - - properties.put_TableLook(_tableLook); - this.api.tblApply(properties); - } - }, - - onBorderTypeClick: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - this._updateBordersStyle(type); - - if (me.api) { - var properties = new Asc.CTableProp(); - _cellBorders = _.isUndefined(_cellBorders) ? new Asc.CBorders() : _cellBorders; - - properties.put_CellBorders(_cellBorders); - properties.put_CellSelect(true); - - me.api.tblApply(properties); - } - }, - - onFillColor: function(palette, color) { - if (this.api) { - var properties = new Asc.CTableProp(), - background = new Asc.CBackground(); - - properties.put_CellsBackground(background); - - if ('transparent' == color) { - background.put_Value(1); - } else { - background.put_Value(0); - background.put_Color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - properties.put_CellSelect(true); - - this.api.tblApply(properties); - } - }, - - onBorderColor: function (palette, color) { - _cellBorderColor = color; - $('#edit-table-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - }, - - onStyleClick: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'), - properties = new Asc.CTableProp(); - - $('#edit-table-styles .table-styles div').removeClass('active'); - $target.addClass('active'); - - properties.put_TableStyle(type.toString()); - me.api.tblApply(properties); - }, - - - onBorderSize: function (e) { - var $target = $(e.currentTarget), - value = $target.val(); - - _cellBorderWidth = borderSizeTransform.sizeByIndex(parseInt(value)); - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-table-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var tables = []; - - _.each(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Table) { - tables.push(object); - } - }); - - if (tables.length > 0) { - var object = tables[tables.length - 1]; // get top table - - _tableObject = object.get_ObjectValue(); - _tableLook = _tableObject.get_TableLook(); - } else { - _tableObject = undefined; - } - }, - - // Helpers - - _closeIfNeed: function () { - if (!this._isTableInStack()) { - DE.getController('EditContainer').hideModal(); - } - }, - - _isTableInStack: function () { - var tableExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Table) { - tableExist = true; - return true; - } - }); - - return tableExist; - }, - - _uiTransformByWrap: function (type) { - if ('inline' == type) { - $('#edit-tablewrap-page .inline').show(); - $('#edit-tablewrap-page .flow').hide(); - $('#table-move-text').addClass('disabled'); - } else { - $('#edit-tablewrap-page .inline').hide(); - $('#edit-tablewrap-page .flow').show(); - $('#table-move-text').removeClass('disabled'); - } - } - } - })(), DE.Controllers.EditTable || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/controller/edit/EditText.js b/apps/documenteditor/mobile/app/controller/edit/EditText.js deleted file mode 100644 index 08f0ba0af..000000000 --- a/apps/documenteditor/mobile/app/controller/edit/EditText.js +++ /dev/null @@ -1,558 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditText.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/4/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'documenteditor/mobile/app/view/edit/EditText', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette' -], function (core, view, $, _, Backbone) { - 'use strict'; - - DE.Controllers.EditText = Backbone.Controller.extend(_.extend((function() { - var _stack = [], - _paragraphObject = undefined, - _fontInfo = {}; - - return { - models: [], - collections: [], - views: [ - 'EditText' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditText': { - 'page:show' : this.onPageShow, - 'font:click': this.onFontClick - } - }); - - this._fontsArray = []; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('EditText').render(); - }, - - initEvents: function () { - var me = this; - $('#font-bold').single('click', _.bind(me.onBold, me)); - $('#font-italic').single('click', _.bind(me.onItalic, me)); - $('#font-underline').single('click', _.bind(me.onUnderline, me)); - $('#font-strikethrough').single('click', _.bind(me.onStrikethrough, me)); - - $('#paragraph-align .button').single('click', _.bind(me.onParagraphAlign, me)); - $('#font-moveleft, #font-moveright').single('click', _.bind(me.onParagraphMove, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this, - paletteTextColor = me.getView('EditText').paletteTextColor, - paletteBackgroundColor = me.getView('EditText').paletteBackgroundColor; - - $('#text-additional li').single('click', _.buffered(me.onAdditional, 100, me)); - $('#page-text-linespacing li').single('click', _.buffered(me.onLineSpacing, 100, me)); - $('#font-size .button').single('click', _.bind(me.onFontSize, me)); - $('#letter-spacing .button').single('click', _.bind(me.onLetterSpacing, me)); - - $('.dataview.bullets li').single('click', _.buffered(me.onBullet, 100, me)); - $('.dataview.numbers li').single('click', _.buffered(me.onNumber, 100, me)); - - $('#font-color-auto').single('click', _.bind(me.onTextColorAuto, me)); - paletteTextColor && paletteTextColor.on('select', _.bind(me.onTextColor, me)); - paletteBackgroundColor && paletteBackgroundColor.on('select', _.bind(me.onBackgroundColor, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - me.api && me.api.UpdateInterfaceState(); - - if (_paragraphObject) { - var $inputStrikethrough = $('#text-additional input[name=text-strikethrough]'); - var $inputTextCaps = $('#text-additional input[name=text-caps]'); - - _paragraphObject.get_Strikeout() && $inputStrikethrough.val(['strikethrough']).prop('prevValue', 'strikethrough'); - _paragraphObject.get_DStrikeout() && $inputStrikethrough.val(['double-strikethrough']).prop('prevValue', 'double-strikethrough'); - - _paragraphObject.get_SmallCaps() && $inputTextCaps.val(['small']).prop('prevValue', 'small'); - _paragraphObject.get_AllCaps() && $inputTextCaps.val(['all']).prop('prevValue', 'all'); - - _fontInfo.letterSpacing = (_paragraphObject.get_TextSpacing()===null || _paragraphObject.get_TextSpacing()===undefined) ? _paragraphObject.get_TextSpacing() : Common.Utils.Metric.fnRecalcFromMM(_paragraphObject.get_TextSpacing()); - $('#letter-spacing .item-after label').text((_fontInfo.letterSpacing===null || _fontInfo.letterSpacing===undefined) ? '' : _fontInfo.letterSpacing + ' ' + Common.Utils.Metric.getCurrentMetricName()); - } - }, - - // Public - - getFonts: function() { - return this._fontsArray; - }, - - getStack: function() { - return _stack; - }, - - getFontInfo: function () { - return _fontInfo; - }, - - getParagraph: function () { - return _paragraphObject; - }, - - // Handlers - - onBold: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrBold(pressed); - } - }, - - onItalic: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrItalic(pressed); - } - }, - - onUnderline: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrUnderline(pressed); - } - }, - - onStrikethrough: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrStrikeout(pressed); - } - }, - - onParagraphAlign: function (e) { - var $target = $(e.currentTarget); - - if ($target) { - var id = $target.attr('id'), - type = 1; - - if ('font-just' == id) { - type = 3; - } else if ('font-right' == id) { - type = 0; - } else if ('font-center' == id) { - type = 2; - } - - $('#paragraph-align .button').removeClass('active'); - $target.addClass('active'); - - this.api.put_PrAlign(type); - } - }, - - onParagraphMove: function (e) { - var $target = $(e.currentTarget); - - if ($target && this.api) { - var id = $target.attr('id'); - - if ('font-moveleft' == id) { - this.api.DecreaseIndent(); - } else { - this.api.IncreaseIndent(); - } - } - }, - - onAdditionalStrikethrough : function ($target) { - var value = $target.prop('value'), - checked = $target.prop('checked'); - - if ('strikethrough' == value) { - this.api.put_TextPrStrikeout(checked); - } else { - this.api.put_TextPrDStrikeout(checked); - } - }, - - onAdditionalScript : function ($target) { - var value = $target.prop('value'), - checked = $target.prop('checked'); - - if ('superscript' == value) { - this.api.put_TextPrBaseline(checked ? 1 : 0); - } else { - this.api.put_TextPrBaseline(checked ? 2 : 0); - } - }, - - onAdditionalCaps : function ($target) { - var value = $target.prop('value'), - checked = $target.prop('checked'), - paragraphProps = new Asc.asc_CParagraphProperty(); - - if ('small' == value) { - paragraphProps.put_AllCaps(false); - paragraphProps.put_SmallCaps(checked); - } else { - paragraphProps.put_AllCaps(checked); - paragraphProps.put_SmallCaps(false); - } - - this.api.paraApply(paragraphProps); - }, - - onAdditional: function(e) { - var me = this, - $target = $(e.currentTarget).find('input'), - prevValue = $target.prop('prevValue'); - - if (prevValue == $target.prop('value')) { - $target.prop('checked', false); - prevValue = null; - } else { - $target.prop('checked', true); - prevValue = $target.prop('value'); - } - - $('#page-text-additional input[name="'+ $target.prop('name') +'"]').prop('prevValue', prevValue); - - var radioName = $target.prop('name'); - if ('text-strikethrough' == radioName) { - me.onAdditionalStrikethrough($target); - } else if ('text-script' == radioName) { - me.onAdditionalScript($target); - } else if ('text-caps' == radioName){ - me.onAdditionalCaps($target); - } - }, - - onLineSpacing: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - var value = parseFloat($target.prop('value')), - LINERULE_AUTO = 1; - - this.api.put_PrLineSpacing(LINERULE_AUTO, value); - } - }, - - onFontClick: function (view, e) { - var $item = $(e.currentTarget).find('input'); - - if ($item) { - this.api.put_TextPrFontName($item.prop('value')); - } - }, - - onFontSize: function (e) { - var $button = $(e.currentTarget), - fontSize = _fontInfo.size; - - if ($button.hasClass('decrement')) { - _.isUndefined(fontSize) ? this.api.FontSizeOut() : fontSize = Math.max(1, --fontSize); - } else { - _.isUndefined(fontSize) ? this.api.FontSizeIn() : fontSize = Math.min(100, ++fontSize); - } - - if (! _.isUndefined(fontSize)) { - this.api.put_TextPrFontSize(fontSize); - } - }, - - onLetterSpacing: function (e) { - var $button = $(e.currentTarget), - spacing = _fontInfo.letterSpacing; - - if ($button.hasClass('decrement')) { - spacing = (spacing===null || spacing===undefined) ? 0 : Math.max(-100, --spacing); - } else { - spacing = (spacing===null || spacing===undefined) ? 0 : Math.min(100, ++spacing); - } - _fontInfo.letterSpacing = spacing; - - $('#letter-spacing .item-after label').text(spacing + ' ' + Common.Utils.Metric.getCurrentMetricName()); - - var properties = new Asc.asc_CParagraphProperty(); - properties.put_TextSpacing(Common.Utils.Metric.fnRecalcToMM(spacing)); - - this.api.paraApply(properties); - }, - - onBullet: function (e) { - var $bullet = $(e.currentTarget), - type = $bullet.data('type'); - - $('.dataview.bullets li').removeClass('active'); - $bullet.addClass('active'); - - this.api.put_ListType(0, parseInt(type)); - }, - - onNumber: function (e) { - var $number = $(e.currentTarget), - type = $number.data('type'); - - $('.dataview.numbers li').removeClass('active'); - $number.addClass('active'); - - this.api.put_ListType(1, parseInt(type)); - }, - - onTextColorAuto: function (e) { - var me = this, - paletteTextColor = me.getView('EditText').paletteTextColor; - - if (paletteTextColor) { - paletteTextColor.clearSelection(); - } - - if (this.api) { - var color = new Asc.asc_CColor(); - color.put_auto(true); - this.api.put_TextColor(color); - } - }, - - onTextColor: function (palette, color) { - // $('.btn-color-value-line', this.toolbar.btnFontColor.cmpEl).css('background-color', '#' + clr); - - if (this.api) { - this.api.put_TextColor(Common.Utils.ThemeColor.getRgbColor(color)); - } - }, - - onBackgroundColor: function (palette, color) { - if (this.api) { - if (color == 'transparent') { - this.api.put_ParagraphShade(false); - } else { - this.api.put_ParagraphShade(true, Common.Utils.ThemeColor.getRgbColor(color)); - } - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var paragraphs = []; - - _.each(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Paragraph) { - paragraphs.push(object); - } - }); - - if (paragraphs.length > 0) { - var object = paragraphs[paragraphs.length - 1]; // get top - _paragraphObject = object.get_ObjectValue(); - } else { - _paragraphObject = undefined; - } - }, - - onApiChangeFont: function(font) { - var name = (_.isFunction(font.get_Name) ? font.get_Name() : font.asc_getName()) || this.textFonts; - _fontInfo.name = name; - - $('#font-fonts .item-title').html(name); - }, - - onApiFontSize: function(size) { - _fontInfo.size = size; - var displaySize = _fontInfo.size; - - _.isUndefined(displaySize) ? displaySize = this.textAuto : displaySize = displaySize + ' ' + this.textPt; - - $('#font-fonts .item-after span:first-child').html(displaySize); - $('#font-size .item-after label').html(displaySize); - }, - - onApiBold: function(on) { - $('#font-bold').toggleClass('active', on); - }, - - onApiItalic: function(on) { - $('#font-italic').toggleClass('active', on); - }, - - onApiUnderline: function(on) { - $('#font-underline').toggleClass('active', on); - }, - - onApiStrikeout: function(on) { - $('#font-strikethrough').toggleClass('active', on); - }, - - onApiBullets: function(data) { - var type = data.get_ListType(), - subtype = data.get_ListSubType(); - $('.dataview.bullets li').removeClass('active'); - $('.dataview.numbers li').removeClass('active'); - switch (type) { - case 0: - $('.dataview.bullets li[data-type=' + subtype + ']').addClass('active'); - break; - case 1: - $('.dataview.numbers li[data-type=' + subtype + ']').addClass('active'); - break; - default: - $('.dataview.bullets li[data-type="-1"]').addClass('active'); - $('.dataview.numbers li[data-type="-1"]').addClass('active'); - } - }, - - onApiParagraphAlign: function(align) { - $('#font-right').toggleClass('active', align===0); - $('#font-left').toggleClass('active', align===1); - $('#font-center').toggleClass('active', align===2); - $('#font-just').toggleClass('active', align===3); - }, - - onApiVerticalAlign: function(typeBaseline) { - var value; - - typeBaseline==1 && (value = 'superscript'); - typeBaseline==2 && (value = 'subscript'); - - if (!_.isUndefined(value)) { - $('#text-additional input[name=text-script]').val([value]).prop('prevValue', value); - } - }, - - onApiTextColor: function (color) { - var me = this; - var palette = this.getView('EditText').paletteTextColor; - - if (color.get_auto()) { - if (palette) { - palette.clearSelection(); - } - - $('#font-color .color-preview').css('background-color', '#000'); - $('#font-color-auto').addClass('active'); - } else { - var clr; - - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - clr = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - } - } else { - clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - - $('#font-color .color-preview').css('background-color', '#' + (_.isObject(clr) ? clr.color : clr)); - } - $('#font-color-auto').removeClass('active'); - if (palette) { - palette.select(clr); - } - } - }, - - onApiLineSpacing: function(vc) { - var line = (vc.get_Line() === null || vc.get_LineRule() === null || vc.get_LineRule() != 1) ? -1 : vc.get_Line(); - - $('#page-text-linespacing input').val([line]); - }, - - onApiTextShd: function(shd) { - var color = shd.get_Color(), - uiColor; - - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - uiColor = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - } - } else { - uiColor = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - - $('#font-background .color-preview').css('background-color', '#' + (_.isObject(uiColor) ? uiColor.color : uiColor)); - - var palette = this.getView('EditText').paletteBackgroundColor; - - if (palette) { - palette.select(uiColor); - } - }, - - // Helpers - _toggleButton: function (e) { - return $(e.currentTarget).toggleClass('active').hasClass('active'); - }, - - textFonts: 'Fonts', - textAuto: 'Auto', - textPt: 'pt' - } - })(), DE.Controllers.EditText || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/AddImage.template b/apps/documenteditor/mobile/app/template/AddImage.template deleted file mode 100644 index f5bbcb0c8..000000000 --- a/apps/documenteditor/mobile/app/template/AddImage.template +++ /dev/null @@ -1,71 +0,0 @@ - - - - -
    - -
    -
    - <% if (!android) { %>
    <%= scope.textAddress %>
    <% } %> -
    -
      -
    • - -
    • -
    -
    -
    - <% if (android) { %> - <%= scope.textInsertImage %> - <% } else { %> - - <% } %> -
    -
    -
    -
    \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/AddOther.template b/apps/documenteditor/mobile/app/template/AddOther.template deleted file mode 100644 index 773bdfd58..000000000 --- a/apps/documenteditor/mobile/app/template/AddOther.template +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - - - -
    - -
    -
    -
    <%= scope.textFormat %>
    -
    -
      -
    -
    -
    -
      -
    • -
      -
      -
      <%= scope.textStartFrom %>
      -
      - <% if (!android) { %><% } %> -

      - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

      -
      -
      -
      -
    • -
    -
    -
    <%= scope.textLocation %>
    -
    -
      -
    -
    -
    - <% if (android) { %> - <%= scope.textInsertFootnote %> - <% } else { %> - - <% } %> -
    -
    -
    -
    - - - - - - \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/AddShape.template b/apps/documenteditor/mobile/app/template/AddShape.template deleted file mode 100644 index 252e4163d..000000000 --- a/apps/documenteditor/mobile/app/template/AddShape.template +++ /dev/null @@ -1,14 +0,0 @@ - -
    -
    - <% _.each(shapes, function(row) { %> -
      - <% _.each(row, function(shape) { %> -
    • -
      -
    • - <% }); %> -
    - <% }); %> -
    -
    \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/AddTable.template b/apps/documenteditor/mobile/app/template/AddTable.template deleted file mode 100644 index 69398316d..000000000 --- a/apps/documenteditor/mobile/app/template/AddTable.template +++ /dev/null @@ -1,12 +0,0 @@ - -
    -
    -
      - <% _.each(styles, function(style) { %> -
    • - -
    • - <% }); %> -
    -
    -
    \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditChart.template b/apps/documenteditor/mobile/app/template/EditChart.template deleted file mode 100644 index 9041d6a12..000000000 --- a/apps/documenteditor/mobile/app/template/EditChart.template +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - -
    - -
    -
    -
    -
      -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    -
    -
    <%= scope.textAlign %>
    -
    -
      -
    • -
      -
      -
      - - - -
      -
      -
      -
    • -
    -
    -
    -
      -
    • -
      -
      -
      <%= scope.textMoveText %>
      -
      - -
      -
      -
      -
    • -
    • -
      -
      -
      <%= scope.textOverlap %>
      -
      - -
      -
      -
      -
    • -
    -
    -
    <%= scope.textDistanceText %>
    -
    -
      -
    • -
      -
      -
      -
      - -
      -
      -
      0 pt
      -
      -
      -
    • -
    -
    -
    -
    -
    - - -
    - -
    -
    -
    -
    - <% _.each(types, function(row) { %> -
      - <% _.each(row, function(type) { %> -
    • -
      -
    • - <% }); %> -
    - <% }); %> -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - - -
    - -
    -
    - -
    -
    -
    - - -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditHeader.template b/apps/documenteditor/mobile/app/template/EditHeader.template deleted file mode 100644 index 6303b0522..000000000 --- a/apps/documenteditor/mobile/app/template/EditHeader.template +++ /dev/null @@ -1,79 +0,0 @@ - -
    -
    -
      -
    • -
      -
      -
      <%= scope.textDiffFirst %>
      -
      - -
      -
      -
      -
    • -
    • -
      -
      -
      <%= scope.textDiffOdd %>
      -
      - -
      -
      -
      -
    • -
    • -
      -
      -
      <%= scope.textSameAs %>
      -
      - -
      -
      -
      -
    • -
    -
    -
    <%= scope.textPageNumbering %>
    -
    -
      -
    • -
      -
      -
      <%= scope.textPrev %>
      -
      - -
      -
      -
      -
    • -
    • -
      -
      -
      <%= scope.textFrom %>
      -
      - <% if (!android) { %><% } %> -

      - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

      -
      -
      -
      -
    • -
    -
    -
    \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditHyperlink.template b/apps/documenteditor/mobile/app/template/EditHyperlink.template deleted file mode 100644 index 34ef5b32f..000000000 --- a/apps/documenteditor/mobile/app/template/EditHyperlink.template +++ /dev/null @@ -1,52 +0,0 @@ - - \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditImage.template b/apps/documenteditor/mobile/app/template/EditImage.template deleted file mode 100644 index f19d7178e..000000000 --- a/apps/documenteditor/mobile/app/template/EditImage.template +++ /dev/null @@ -1,366 +0,0 @@ - -
    - -
    - -
    -
    - - - - - -
    - -
    -
    -
    -
      -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    -
    -
    <%= scope.textAlign %>
    -
    -
      -
    • -
      -
      -
      - - - -
      -
      -
      -
    • -
    -
    -
    -
      -
    • -
      -
      -
      <%= scope.textMoveText %>
      -
      - -
      -
      -
      -
    • -
    • -
      -
      -
      <%= scope.textOverlap %>
      -
      - -
      -
      -
      -
    • -
    -
    -
    <%= scope.textDistanceText %>
    -
    -
      -
    • -
      -
      -
      -
      - -
      -
      -
      0 pt
      -
      -
      -
    • -
    -
    -
    -
    -
    - - -
    - - -
    - - -
    - - -
    \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditParagraph.template b/apps/documenteditor/mobile/app/template/EditParagraph.template deleted file mode 100644 index b655baa3b..000000000 --- a/apps/documenteditor/mobile/app/template/EditParagraph.template +++ /dev/null @@ -1,203 +0,0 @@ - -
    - - -
    <%= scope.textPrgStyles %>
    -
    -
      -
      -
      - - -
      - -
      -
      -
      -
      -
      - - -
      - -
      -
      -
      <%= scope.textFromText %>
      -
      -
        -
      • -
        -
        -
        <%= scope.textBefore %>
        -
        - <% if (!android) { %><% } %> -

        - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

        -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textAfter %>
        -
        - <% if (!android) { %><% } %> -

        - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

        -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textFirstLine %>
        -
        - <% if (!android) { %><% } %> -

        - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

        -
        -
        -
        -
      • -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textSpaceBetween %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textPageBreak %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textOrphan %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textKeepLines %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textKeepNext %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      -
      -
      - - -
      - -
      -
      - -
      -
      -
      \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditShape.template b/apps/documenteditor/mobile/app/template/EditShape.template deleted file mode 100644 index 9817a01c9..000000000 --- a/apps/documenteditor/mobile/app/template/EditShape.template +++ /dev/null @@ -1,465 +0,0 @@ - - - - - - - -
      - -
      -
      - <% _.each(shapes, function(row) { %> -
        - <% _.each(row, function(shape) { %> -
      • -
        -
      • - <% }); %> -
      - <% }); %> -
      -
      -
      - - -
      - -
      -
      -
      -
        -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      -
      -
      <%= scope.textAlign %>
      -
      -
        -
      • -
        -
        -
        - - - -
        -
        -
        -
      • -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textWithText %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textOverlap %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      <%= scope.textFromText %>
      -
      -
        -
      • -
        -
        -
        -
        - -
        -
        -
        0 pt
        -
        -
        -
      • -
      -
      -
      -
      -
      - - -
      - -
      -
      -
      - -
      -
      -
      - -
      -
      -
      -
      -
        -
      • -
        <%= scope.textOpacity %>
        -
        -
        -
        -
        - -
        -
        -
        0 %
        -
        -
        -
      • -
      -
      -
      -
      -
      -
      - -
      - -
      -
      -
      - -
      -
      -
      -
      - - -
      - -
      -
      - -
      -
      -
      - - -
      - -
      -
      - -
      -
      -
      diff --git a/apps/documenteditor/mobile/app/template/EditTable.template b/apps/documenteditor/mobile/app/template/EditTable.template deleted file mode 100644 index 6dc95f580..000000000 --- a/apps/documenteditor/mobile/app/template/EditTable.template +++ /dev/null @@ -1,467 +0,0 @@ - -
      -
      - - <% if (android) { %> - <%= scope.textRemoveTable %> - <% } %> -
      - -
      - - -
      - -
      -
      -
      -
        -
      • - -
      • -
      • - -
      • -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textWithText %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      <%= scope.textFromText %>
      -
      -
        -
      • -
        -
        -
        -
        - -
        -
        -
        0 pt
        -
        -
        -
      • -
      -
      -
      <%= scope.textAlign %>
      -
      -
        -
      • -
        -
        -
        - - - -
        -
        -
        -
      • -
      -
      -
      -
      -
      - - -
      - -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textRepeatHeader %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textResizeFit %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      <%= scope.textCellMargins %>
      -
      -
        -
      • -
        -
        -
        -
        - -
        -
        -
        0 pt
        -
        -
        -
      • -
      -
      -
      -
      -
      - - -
      - -
      -
      -
      -
      -
        -
      • -
        -
        -
        -
      • -
      -
      - -
      -
      - -
      -
      -
      - -
      -
      -
      -
      -
      - - -
      - -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textHeaderRow %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textTotalRow %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textBandedRow %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textFirstColumn %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textLastColumn %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textBandedColumn %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      -
      -
      - - -
      - -
      -
      - -
      -
      -
      - - -
      - -
      -
      - -
      -
      -
      \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditText.template b/apps/documenteditor/mobile/app/template/EditText.template deleted file mode 100644 index 3cc739904..000000000 --- a/apps/documenteditor/mobile/app/template/EditText.template +++ /dev/null @@ -1,426 +0,0 @@ - - - - -
      - -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textSize %>
        -
        - <% if (!android) { %><% } %> -

        - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

        -
        -
        -
        -
      • -
      -
      -
      <%= scope.textFonts %>
      -
      - -
      -
      -
      -
      - - -
      - - -
      - - -
      - -
      -
      -
      -
      -
      - - - -
      - -
      -
      -
      -
        -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      -
      -
      -
        -
      • -
        -
        -
        <%= scope.textLetterSpacing %>
        -
        - <% if (!android) { %><% } %> -

        - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

        -
        -
        -
        -
      • -
      -
      -
      -
      -
      - - -
      - -
      -
      -
      -
        -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      -
      -
      -
      -
      - - -
      - -
      -
      - <% _.each(bullets, function(row) { %> -
        - <% _.each(row, function(bullet) { %> -
      • - <% if (bullet.thumb.length < 1) { %> -
        - <% } else { %> -
        - <% } %> -
      • - <% }); %> -
      - <% }); %> -
      -
      -
      - - -
      - -
      -
      - <% _.each(numbers, function(row) { %> -
        - <% _.each(row, function(number) { %> -
      • - <% if (number.thumb.length < 1) { %> -
        - <% } else { %> -
        - <% } %> -
      • - <% }); %> -
      - <% }); %> -
      -
      -
      - - -
      - -
      -
      - -
      -
      -
      \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/Editor.template b/apps/documenteditor/mobile/app/template/Editor.template deleted file mode 100644 index 9af8c3e02..000000000 --- a/apps/documenteditor/mobile/app/template/Editor.template +++ /dev/null @@ -1,9 +0,0 @@ -
      -
      - -
      -
      \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/Search.template b/apps/documenteditor/mobile/app/template/Search.template deleted file mode 100644 index 5f87582df..000000000 --- a/apps/documenteditor/mobile/app/template/Search.template +++ /dev/null @@ -1,107 +0,0 @@ - -
      - -
      - - -
      - -
      -
      - <% if (isEdit) { %> -
      -
        -
      • - -
      • -
      • - -
      • -
      -
      - <% } %> -
      -
        -
      • -
        -
        -
        <%= scope.textCase %>
        -
        - -
        -
        -
        -
      • -
      • -
        -
        -
        <%= scope.textHighlight %>
        -
        - -
        -
        -
        -
      • -
      -
      -
      -
      -
      \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/Settings.template b/apps/documenteditor/mobile/app/template/Settings.template deleted file mode 100644 index 1424ad858..000000000 --- a/apps/documenteditor/mobile/app/template/Settings.template +++ /dev/null @@ -1,940 +0,0 @@ - -
      - - -
      - - -
      - -
      -
      -
      -
      <%= scope.textOrientation %>
      -
      -
        -
      • - -
      • -
      • - -
      • -
      -
      -
      <%= scope.textFormat %>
      - - -
      -
      -
      -
      - - -
      - -
      -
      -
      -
      -
        -
        -
        -
        -
        -
        - - -
        - -
        -
        -
        -
        <%= scope.textDocTitle %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textOwner %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textLocation %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textUploaded %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textStatistic %>
        -
        -
          -
        • -
          -
          <%= scope.textPages %>
          -
          0
          -
          -
        • -
        • -
          -
          <%= scope.textParagraphs %>
          -
          0
          -
          -
        • -
        • -
          -
          <%= scope.textWords %>
          -
          0
          -
          -
        • -
        • -
          -
          <%= scope.textSymbols %>
          -
          0
          -
          -
        • -
        • -
          -
          <%= scope.textSpaces %>
          -
          0
          -
          -
        • -
        -
        - -
        <%= scope.textTitle %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textSubject %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textComment %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textLastModified %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textLastModifiedBy %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textCreated %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textApplication %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        <%= scope.textAuthor %>
        -
        -
          -
        • -
          -
          <%= scope.textLoading %>
          -
          -
        • -
        -
        -
        -
        -
        -
        - - - - - -
        - -
        -
        -
        -
        Saved versions
        -
        -
        -

        Under construction

        -
        -
        -
        -
        -
        -
        - - -
        - -
        -
        -
        -
        - - -
        -
        -

        DOCUMENT EDITOR

        -

        <%= scope.textVersion %> <%= prodversion %>

        -
        -
        -

        <%= publishername %>

        -

        <%= publisheraddr %>

        -

        <%= supportemail %>

        -

        <%= phonenum %>

        -

        <%= printed_url %>

        -

        -
        - -
        -
        -
        -
        - - -
        - -
        -
        -
        - -
        <%= scope.textUnitOfMeasurement %>
        -
        -
          -
        • - -
        • -
        • - -
        • -
        • - -
        • -
        -
        - -
        -
          -
          -
          -
          <%= scope.textSpellcheck %>
          -
          - -
          -
          -
          -
        -
        - -
        -
          -
          -
          -
          <%= scope.textNoCharacters %>
          -
          - -
          -
          -
          -
          -
          -
          <%= scope.textHiddenTableBorders %>
          -
          - -
          -
          -
          -
        -
        - -
        <%= scope.textCommentingDisplay %>
        -
        -
          -
          -
          -
          <%= scope.textDisplayComments %>
          -
          - -
          -
          -
          -
          -
          -
          <%= scope.textDisplayResolvedComments %>
          -
          - -
          -
          -
          -
        -
        - - - -
        -
        -
        -
        - - -
        - -
        -
        -
        -
        -
          -
          -
          -
          -
          -
          - - -
          - -
          -
          -
          -
          -
            -
          • -
            -
            -
            <%= scope.textTop %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textBottom %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textLeft %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textRight %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          -
          -
          -
          -
          -
          - - -
          - -
          -
          -
          -
          -
            -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          -
          - -
          -
          -
          -
          \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/Toolbar.template b/apps/documenteditor/mobile/app/template/Toolbar.template deleted file mode 100644 index 9cb6d2657..000000000 --- a/apps/documenteditor/mobile/app/template/Toolbar.template +++ /dev/null @@ -1,56 +0,0 @@ - diff --git a/apps/documenteditor/mobile/app/view/DocumentHolder.js b/apps/documenteditor/mobile/app/view/DocumentHolder.js deleted file mode 100644 index e06d16bcf..000000000 --- a/apps/documenteditor/mobile/app/view/DocumentHolder.js +++ /dev/null @@ -1,141 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentHolder.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/8/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/utils/utils' -], function ($, _, Backbone) { - 'use strict'; - - DE.Views.DocumentHolder = Backbone.View.extend((function() { - // private - var _anchorId = 'context-menu-target'; - - return { - el: '#editor_sdk', - - template: _.template('
          '), - // Delegated events for creating new items, and clearing completed ones. - events: { - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - // - }, - - // Render layout - render: function() { - var el = $(this.el); - - if (el.length > 0 && el.find('#' + _anchorId).length < 1) { - el.append(this.template()); - } - - return this; - }, - - showMenu: function (items, posX, posY) { - if (items.itemsIcon.length < 1 && items.items.length < 1) { - return; - } - - var menuItemTemplate = _.template([ - '<% if(menuItems.itemsIcon) {%>', - '<% _.each(menuItems.itemsIcon, function(item) { %>', - '
        • ', - '<% }); }%>', - '<% if(menuItems.items) {%>', - '<% _.each(menuItems.items, function(item) { %>', - '
        • <%= item.caption %>
        • ', - '<% }); }%>' - ].join('')); - - $('#' + _anchorId) - .css('left', posX) - .css('top', Math.max(0, posY)); - - uiApp.closeModal('.document-menu.modal-in'); - - var popoverHTML = - '
          '+ - '
          '+ - '
          '+ - '
            '+ - menuItemTemplate({menuItems: items}) + - '
          '+ - '
          '+ - '
          '+ - '
          '; - - var popover = uiApp.popover(popoverHTML, $('#' + _anchorId)); - - if (Common.SharedSettings.get('android')) { - Common.Utils.androidMenuTop($(popover), $('#' + _anchorId)); - } - - $('.modal-overlay').removeClass('modal-overlay-visible'); - - $('.document-menu li').single('click', _.buffered(function(e) { - var $target = $(e.currentTarget), - eventName = $target.data('event'); - - this.fireEvent('contextmenu:click', [this, eventName]); - }, 100, this)); - }, - - hideMenu: function () { - if ($('.document-menu').length > 0) { - $('#' + _anchorId) - .css('left', -1000) - .css('top', -1000); - - uiApp.closeModal('.document-menu.modal-in'); - } else if ($('.actions-modal').length > 0) { - uiApp.closeModal('.actions-modal.modal-in'); - } - } - } - })()); -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/Editor.js b/apps/documenteditor/mobile/app/view/Editor.js deleted file mode 100644 index 04855022b..000000000 --- a/apps/documenteditor/mobile/app/view/Editor.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Editor.js - * Document Editor - * - * Created by Alexander Yuzhin on 9/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!documenteditor/mobile/app/template/Editor.template', - 'jquery', - 'underscore', - 'backbone' -], function (editorTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.Editor = Backbone.View.extend({ - el: 'body', - - // Compile our stats template - template: _.template(editorTemplate), - - // Delegated events for creating new items, and clearing completed ones. - events: { - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - // - }, - - // Render layout - render: function() { - var el = $(this.el); - el.prepend(this.template({ - backTitle: Framework7.prototype.device.android ? '' : '' - })); - - this.f7View = uiApp.addView('.view-main', { - // params - }); - - return this; - } - }); -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/Search.js b/apps/documenteditor/mobile/app/view/Search.js deleted file mode 100644 index 54b4d4f1a..000000000 --- a/apps/documenteditor/mobile/app/view/Search.js +++ /dev/null @@ -1,200 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Search.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/15/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/Search.template', - 'jquery', - 'underscore', - 'backbone' -], function (searchTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.Search = Backbone.View.extend(_.extend((function() { - // private - var _isEdit = false, - _layout; - - return { - el: '.view-main', - - // Compile our stats template - template: _.template(searchTemplate), - - // Delegated events for creating new items, and clearing completed ones. - events: {}, - - // Set innerHTML and get the references to the DOM elements - initialize: function () { - this.on('searchbar:show', _.bind(this.initEvents, this)); - }, - - initEvents: function() { - $('#search-settings').single('click', _.bind(this.showSettings, this)); - }, - - // Render layout - render: function () { - _layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - isEdit : _isEdit, - scope : this - })); - - return this; - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - this.render(); - }, - - showSettings: function (e) { - var me = this; - - uiApp.closeModal(); - - if (Common.SharedSettings.get('phone')) { - me.picker = $$(uiApp.popup([ - ''].join('') - )) - } else { - me.picker = uiApp.popover([ - '
          ', - '
          ', - '
          ', - '
          ', - '', - '
          ', - '
          ', - '
          '].join(''), - $$('#search-settings') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }); - } - - if (Common.SharedSettings.get('android')) { - $$('.view.search-settings-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.search-settings-view .navbar').prependTo('.view.search-settings-view > .pages > .page'); - } - - me.fireEvent('searchbar:showsettings', me); - }, - - showSearch: function () { - var me = this, - searchBar = $$('.searchbar.document'); - - if (searchBar.length < 1) { - $(_layout.find('#search-panel-view').html()).insertAfter($(me.el).find('.pages')); - if ($('.logo-navbar').length > 0) { - $('.searchbar.document').css('margin-top', '27px'); - } - //$(me.el).find('.pages .page').first().prepend(_layout.find('#search-panel-view').html()); - - // Show replace mode if needed - var isReplace = Common.SharedSettings.get('search-is-replace'); - $('.searchbar.document').toggleClass('replace', !_.isUndefined(isReplace) && (isReplace === true)); - - me.fireEvent('searchbar:render', me); - me.fireEvent('searchbar:show', me); - - searchBar = $$('.searchbar.document'); - - if ($('.logo-navbar').length > 0) { - var top = Common.SharedSettings.get('android') ? '80px' : '68px'; - $('.navbar-through .page > .searchbar').css('top', top); - } - - uiApp.showNavbar(searchBar); - if (!searchBar.hasClass('navbar-hidden')) { - $('.searchbar.search input').focus(); - } - } - }, - - hideSearch: function () { - var me = this, - searchBar = $$('.searchbar.document'); - - if (searchBar.length > 0) { - // Animating - if (searchBar.hasClass('.navbar-hidding')) { - return; - } - - me.fireEvent('searchbar:hide', me); - searchBar.remove(); - uiApp.hideNavbar(searchBar); - - } - }, - - textFind: 'Find', - textFindAndReplace: 'Find and Replace', - textDone: 'Done', - textSearch: 'Search', - textReplace: 'Replace', - textCase: 'Case sensitive', - textHighlight: 'Highlight results' - } - })(), DE.Views.Search || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/Settings.js b/apps/documenteditor/mobile/app/view/Settings.js deleted file mode 100644 index ec3744151..000000000 --- a/apps/documenteditor/mobile/app/view/Settings.js +++ /dev/null @@ -1,357 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Settings.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/7/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/Settings.template', - 'jquery', - 'underscore', - 'backbone' -], function (settingsTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.Settings = Backbone.View.extend(_.extend((function() { - // private - var _isEdit = false, - _canEdit = false, - _canDownload = false, - _canDownloadOrigin = false, - _canReader = false, - _canAbout = true, - _canHelp = true, - _canPrint = false, - _canReview = false, - _isReviewOnly = false, - _isShowMacros = true; - - return { - // el: '.view-main', - - template: _.template(settingsTemplate), - - events: { - // - }, - - initialize: function() { - Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this)); - Common.Gateway.on('opendocument', _.bind(this.loadDocument, this)); - this.on('page:show', _.bind(this.updateItemHandlers, this)); - }, - - initEvents: function () { - var me = this; - - Common.Utils.addScrollIfNeed('.view[data-page=settings-root-view] .pages', '.view[data-page=settings-root-view] .page'); - me.updateItemHandlers(); - me.initControls(); - }, - - // Render layout - render: function() { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - orthography: Common.SharedSettings.get('sailfish'), - scope : this, - width : $(window).width(), - prodversion: '{{PRODUCT_VERSION}}', - publishername: '{{PUBLISHER_NAME}}', - publisheraddr: '{{PUBLISHER_ADDRESS}}', - publisherurl: '{{PUBLISHER_URL}}', - printed_url: ("{{PUBLISHER_URL}}").replace(/https?:\/{2}/, "").replace(/\/$/,""), - supportemail: '{{SUPPORT_EMAIL}}', - phonenum: '{{PUBLISHER_PHONE}}' - })); - - return this; - }, - - setMode: function (mode) { - if (mode.isDisconnected) { - _canEdit = _isEdit = false; - _canReview = false; - _isReviewOnly = false; - if (!mode.enableDownload) - _canPrint = _canDownload = _canDownloadOrigin = false; - } else { - _isEdit = mode.isEdit; - _canEdit = !mode.isEdit && mode.canEdit && mode.canRequestEditRights; - _canReader = !mode.isEdit && !mode.isRestrictedEdit && mode.canReader; - _canReview = mode.canReview; - _isReviewOnly = mode.isReviewOnly; - _canDownload = mode.canDownload; - _canDownloadOrigin = mode.canDownloadOrigin; - _canPrint = mode.canPrint; - if (mode.customization && mode.canBrandingExt) { - _canAbout = (mode.customization.about!==false); - } - - if (mode.customization) { - _canHelp = (mode.customization.help!==false); - _isShowMacros = (mode.customization.macros!==false); - } - } - }, - - rootLayout: function () { - if (this.layout) { - var $layour = this.layout.find('#settings-root-view'), - isPhone = Common.SharedSettings.get('phone'); - - if (_isEdit) { - $layour.find('#settings-search .item-title').text(this.textFindAndReplace) - } else { - $layour.find('#settings-document').hide(); - $layour.find('#color-schemes').hide(); - $layour.find('#settings-spellcheck').hide(); - $layour.find('#settings-orthography').hide(); - } - if (!_canReader) - $layour.find('#settings-readermode').hide(); - else { - $layour.find('#settings-readermode input:checkbox') - .prop('checked', Common.SharedSettings.get('readerMode')); - } - if (!_canDownload) $layour.find('#settings-download-as').hide(); - if (!_canDownloadOrigin) $layour.find('#settings-download').hide(); - if (!_canAbout) $layour.find('#settings-about').hide(); - if (!_canHelp) $layour.find('#settings-help').hide(); - if (!_canPrint) $layour.find('#settings-print').hide(); - if (!_canReview) $layour.find('#settings-review').hide(); - if (_isReviewOnly) $layour.find('#settings-review').addClass('disabled'); - if (!_isShowMacros) $layour.find('#settings-macros').hide(); - - return $layour.html(); - } - - return ''; - }, - - initControls: function() { - // - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '.page[data-page=settings-root-view]', - '.page[data-page=settings-document-view]', - '.page[data-page=settings-advanced-view]' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - }, - - showPage: function(templateId, suspendEvent) { - var rootView = DE.getController('Settings').rootView(); - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - renderPageSizes: function(sizes, selectIndex) { - var $pageFormats = $('.page[data-page=settings-document-formats-view]'), - $list = $pageFormats.find('ul'), - items = []; - - _.each(sizes, function (size, index) { - items.push(_.template([ - '
        • ', - '', - '
        • ' - ].join(''))({ - android: Framework7.prototype.device.android, - item: size, - index: index, - selectIndex: selectIndex - })); - }); - - $list.html(items.join('')); - }, - - loadDocument: function(data) { - var permissions = {}; - - if (data.doc) { - permissions = _.extend(permissions, data.doc.permissions); - - if (permissions.edit === false) { - } - } - }, - - renderSchemaSettings: function(currentSchema, arrSchemas) { - if (arrSchemas) { - var templateInsert = ""; - _.each(arrSchemas, function (schema, index) { - var colors = schema.get_colors(),//schema.colors; - name = schema.get_name(); - templateInsert += '
        • '; - }, this); - $('#color-schemes-content ul').html(templateInsert); - } - }, - - textFindAndReplace: 'Find and Replace', - textSettings: 'Settings', - textDone: 'Done', - textFind: 'Find', - textEditDoc: 'Edit Document', - textReader: 'Reader Mode', - textDownload: 'Download', - textDocInfo: 'Document Info', - textHelp: 'Help', - textAbout: 'About', - textBack: 'Back', - textDocTitle: 'Document title', - textLoading: 'Loading...', - textAuthor: 'Author', - textCreateDate: 'Create date', - textStatistic: 'Statistic', - textPages: 'Pages', - textParagraphs: 'Paragraphs', - textWords: 'Words', - textSymbols: 'Symbols', - textSpaces: 'Spaces', - textDownloadAs: 'Download As...', - textVersion: 'Version', - textAddress: 'address', - textEmail: 'email', - textTel: 'tel', - textDocumentSettings: 'Document Settings', - textPortrait: 'Portrait', - textLandscape: 'Landscape', - textFormat: 'Format', - textCustom: 'Custom', - textCustomSize: 'Custom Size', - textDocumentFormats: 'Document Formats', - textOrientation: 'Orientation', - textPoweredBy: 'Powered by', - textSpellcheck: 'Spell Checking', - textPrint: 'Print', - textReview: 'Review', - textMargins: 'Margins', - textTop: 'Top', - textLeft: 'Left', - textBottom: 'Bottom', - textRight: 'Right', - textAdvancedSettings: 'Application Settings', - textUnitOfMeasurement: 'Unit of Measurement', - textCentimeter: 'Centimeter', - textPoint: 'Point', - textInch: 'Inch', - textColorSchemes: 'Color Schemes', - textNoCharacters: 'Nonprinting Characters', - textHiddenTableBorders: 'Hidden Table Borders', - textCollaboration: 'Collaboration', - textCommentingDisplay: 'Commenting Display', - textDisplayComments: 'Comments', - textDisplayResolvedComments: 'Resolved Comments', - textSubject: 'Subject', - textTitle: 'Title', - textComment: 'Comment', - textOwner: 'Owner', - textApplication : 'Application', - textLocation: 'Location', - textUploaded: 'Uploaded', - textLastModified: 'Last Modified', - textLastModifiedBy: 'Last Modified By', - textCreated: 'Created', - textMacrosSettings: 'Macros Settings', - textDisableAll: 'Disable All', - textDisableAllMacrosWithoutNotification: 'Disable all macros without notification', - textShowNotification: 'Show Notification', - textDisableAllMacrosWithNotification: 'Disable all macros with notification', - textEnableAll: 'Enable All', - textEnableAllMacrosWithoutNotification: 'Enable all macros without notification' - - - } - })(), DE.Views.Settings || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/Toolbar.js b/apps/documenteditor/mobile/app/view/Toolbar.js deleted file mode 100644 index 5bfdd6df8..000000000 --- a/apps/documenteditor/mobile/app/view/Toolbar.js +++ /dev/null @@ -1,167 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * Document Editor - * - * Created by Alexander Yuzhin on 9/23/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/Toolbar.template', - 'jquery', - 'underscore', - 'backbone' -], function (toolbarTemplate, $, _, Backbone) { - 'use strict'; - - DE.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", - "click #toolbar-edit-document": "editDocument", - "click #toolbar-collaboration" : "showCollaboration" - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - var me = this; - - Common.NotificationCenter.on('readermode:change', function (reader) { - if (reader) { - me.hideSearch(); - $('#toolbar-search').addClass('disabled'); - } else { - $('#toolbar-search').removeClass('disabled'); - } - }); - }, - - // Render layout - render: function() { - var me = this, - $el = $(me.el); - - $el.prepend(me.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - backTitle : Common.SharedSettings.get('android') ? '' : me.textBack, - scope : me, - width : $(window).width() - })); - - $('.view-main .navbar').on('addClass removeClass', _.bind(me.onDisplayMainNavbar, me)); - $('#toolbar-edit, #toolbar-add, #toolbar-settings, #toolbar-search, #document-back, #toolbar-edit-document').addClass('disabled'); - - return me; - }, - - setMode: function (mode) { - if (mode.isEdit) { - $('#toolbar-edit, #toolbar-add, #toolbar-undo, #toolbar-redo').show(); - } else if (mode.canEdit && mode.canRequestEditRights){ - $('#toolbar-edit-document').show(); - } - }, - - onDisplayMainNavbar: function (e) { - var $target = $(e.currentTarget), - navbarHidden = $target.hasClass('navbar-hidden'), - pickerHeight = $('.picker-modal').height() || 260; - - $('#editor_sdk').css({ - top : navbarHidden ? 0 : '', - bottom : navbarHidden ? pickerHeight : '' - }); - }, - - // Search - searchToggle: function() { - if ($$('.searchbar.document').length > 0) { - this.hideSearch(); - } else { - this.showSearch(); - } - }, - - showSearch: function () { - DE.getController('Search').showSearch(); - }, - - hideSearch: function () { - DE.getController('Search').hideSearch(); - }, - - // Editor - showEdition: function () { - DE.getController('EditContainer').showModal(); - }, - - // Inserts - - showInserts: function () { - DE.getController('AddContainer').showModal(); - }, - - // Settings - showSettings: function () { - DE.getController('Settings').showModal(); - }, - - //Collaboration - showCollaboration: function () { - DE.getController('Common.Controllers.Collaboration').showModal(); - }, - - editDocument: function () { - Common.Gateway.requestEditRights(); - }, - - textBack: 'Back' - } - })(), DE.Views.Toolbar || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/add/AddImage.js b/apps/documenteditor/mobile/app/view/add/AddImage.js deleted file mode 100644 index 80da59c4d..000000000 --- a/apps/documenteditor/mobile/app/view/add/AddImage.js +++ /dev/null @@ -1,132 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddImage.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/18/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!documenteditor/mobile/app/template/AddImage.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.AddImage = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('#add-image-url').single('click', _.bind(me.showImageUrl, me)); - - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#addimage-root-view') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId) { - var rootView = DE.getController('AddContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - this.fireEvent('page:show', this); - } - }, - - showImageUrl: function () { - this.showPage('#addimage-url-view'); - }, - - textFromLibrary: 'Picture from Library', - textFromURL: 'Picture from URL', - textBack: 'Back', - textLinkSettings: 'Link Settings', - textAddress: 'Address', - textImageURL: 'Image URL', - textInsertImage: 'Insert Image' - } - })(), DE.Views.AddImage || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/add/AddOther.js b/apps/documenteditor/mobile/app/view/add/AddOther.js deleted file mode 100644 index 1bcb327e4..000000000 --- a/apps/documenteditor/mobile/app/view/add/AddOther.js +++ /dev/null @@ -1,301 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddOther.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/17/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/AddOther.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.AddOther = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('#add-other-link').single('click', _.bind(me.showLink, me)); - $('#add-other-pagenumber').single('click', _.bind(me.showPagePosition, me)); - if (this.isDisableComment) { - $('#item-comment').addClass('disabled'); - } else { - $('#item-comment').removeClass('disabled'); - $('#add-other-comment').single('click', _.bind(me.showPageComment, me)); - } - if (this.isDisableBreak) { - $('#item-break').addClass('disabled'); - } else { - $('#item-break').removeClass('disabled'); - $('#add-other-break').single('click', _.bind(me.showPageBreak, me)); - } - if (this.isDisableFootnote) { - $('#item-footnote').addClass('disabled'); - } else { - $('#item-footnote').removeClass('disabled'); - $('#add-other-footnote').single('click', _.bind(me.showPageFootnote, me)); - } - - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - if (!this.canViewComments) { - this.layout.find('#addother-root-view #item-comment').remove(); - } - return this.layout - .find('#addother-root-view') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, animate) { - var rootView = DE.getController('AddContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html(), - animatePages: animate !== false - }); - - this.fireEvent('page:show', [this, templateId]); - } - }, - - showPageBreak: function() { - this.showPage('#addother-insert-break'); - $('#add-other-section').single('click', _.bind(this.showSectionBreak, this)); - }, - - showSectionBreak: function () { - this.showPage('#addother-sectionbreak'); - }, - - showLink: function (animate) { - this.showPage('#addother-link', animate); - - $('.page[data-page=addother-link] input[type=url]').single('input', _.bind(function(e) { - $('#add-link-insert').toggleClass('disabled', _.isEmpty($('#add-link-url input').val())); - }, this)); - - _.delay(function () { - $('.page[data-page=addother-link] input[type=url]').focus(); - }, 1000); - }, - - showPagePosition: function () { - this.showPage('#addother-pagenumber'); - }, - - showPageFootnote: function () { - this.showPage('#addother-insert-footnote'); - }, - - showPageComment: function(animate) { - this.showPage('#addother-insert-comment', animate); - }, - - renderComment: function(comment) { - var me = this; - _.delay(function () { - var $commentInfo = $('#comment-info'); - var template = [ - '<% if (android) { %>
          <%= comment.userInitials %>
          <% } %>', - '
          <%= scope.getUserName(comment.username) %>
          ', - '
          <%= comment.date %>
          ', - '<% if (android) { %>
          <% } %>', - '
          ' - ].join(''); - var insert = _.template(template)({ - android: Framework7.prototype.device.android, - comment: comment, - textAddComment: me.textAddComment, - scope: me - }); - $commentInfo.html(insert); - _.defer(function () { - var $textarea = $('.comment-textarea')[0]; - var $btnAddComment = $('#done-comment'); - $btnAddComment.addClass('disabled'); - $textarea.focus(); - $textarea.oninput = function () { - if ($textarea.value.length < 1) { - if (!$btnAddComment.hasClass('disabled')) - $btnAddComment.addClass('disabled'); - } else { - if ($btnAddComment.hasClass('disabled')) { - $btnAddComment.removeClass('disabled'); - } - } - }; - }); - }, 100); - }, - - getUserName: function (username) { - return Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(username)); - }, - - renderNumFormat: function (dataFormat, selectFormat) { - var $listFormat = $('#list-format-footnote ul'), - items = []; - - _.each(dataFormat, function (formatItem) { - var itemTemplate = [ - '
        • ', - '', - '
        • ' - ].join(''); - items.push(_.template(itemTemplate)({ - android: Framework7.prototype.device.android, - item: formatItem, - select: selectFormat - })); - }); - - $listFormat.html(items); - }, - - renderFootnotePos: function (dataPosition, selectPosition) { - var $listPos = $('#position-footnote ul'), - items = []; - - _.each(dataPosition, function (posItem) { - var itemTemplate = [ - '
        • ', - '', - '
        • ' - ].join(''); - items.push(_.template(itemTemplate)({ - android: Framework7.prototype.device.android, - item: posItem, - select: selectPosition - })); - }); - - $listPos.html(items); - }, - - textPageBreak: 'Page Break', - textSectionBreak: 'Section Break', - textColumnBreak: 'Column Break', - textLink: 'Link', - textPageNumber: 'Page Number', - textBack: 'Back', - textAddLink: 'Add Link', - textDisplay: 'Display', - textTip: 'Screen Tip', - textInsert: 'Insert', - textPosition: 'Position', - textLeftTop: 'Left Top', - textCenterTop: 'Center Top', - textRightTop: 'Right Top', - textLeftBottom: 'Left Bottom', - textCenterBottom: 'Center Bottom', - textRightBottom: 'Right Bottom', - textCurrentPos: 'Current Position', - textNextPage: 'Next Page', - textContPage: 'Continuous Page', - textEvenPage: 'Even Page', - textOddPage: 'Odd Page', - textFootnote: 'Footnote', - textInsertFootnote: 'Insert Footnote', - textFormat: 'Format', - textStartFrom: 'Start At', - textLocation: 'Location', - textComment: 'Comment', - textAddComment: 'Add Comment', - textDone: 'Done', - textBreak: 'Break' - - } - })(), DE.Views.AddOther || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/add/AddShape.js b/apps/documenteditor/mobile/app/view/add/AddShape.js deleted file mode 100644 index 3f0fef87d..000000000 --- a/apps/documenteditor/mobile/app/view/add/AddShape.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddShape.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/18/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!documenteditor/mobile/app/template/AddShape.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.AddShape = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('shapes:load', _.bind(this.render, this)); - }, - - initEvents: function () { - this.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - shapes : Common.SharedSettings.get('shapes') - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#add-shapes-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - } - } - })(), DE.Views.AddShape || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/add/AddTable.js b/apps/documenteditor/mobile/app/view/add/AddTable.js deleted file mode 100644 index 570ab080d..000000000 --- a/apps/documenteditor/mobile/app/view/add/AddTable.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddTable.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/17/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/AddTable.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.AddTable = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - styles : DE.getController('AddTable').getStyles() - })); - - var $tableStyles = $('.container-add .table-styles'); - if ($tableStyles) { - $tableStyles.replaceWith(this.layout.find('#add-table-root').html()); - } - - this.fireEvent('view:render', this); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#add-table-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - } - } - })(), DE.Views.AddTable || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditChart.js b/apps/documenteditor/mobile/app/view/edit/EditChart.js deleted file mode 100644 index b10a76587..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditChart.js +++ /dev/null @@ -1,352 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditChart.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/7/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!documenteditor/mobile/app/template/EditChart.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditChart = Backbone.View.extend(_.extend((function() { - // private - var _styles = []; - - var _types = [ - { type: Asc.c_oAscChartTypeSettings.barNormal, thumb: 'chart-03.png'}, - { type: Asc.c_oAscChartTypeSettings.barStacked, thumb: 'chart-02.png'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer, thumb: 'chart-01.png'}, - { type: Asc.c_oAscChartTypeSettings.lineNormal, thumb: 'chart-06.png'}, - { type: Asc.c_oAscChartTypeSettings.lineStacked, thumb: 'chart-05.png'}, - { type: Asc.c_oAscChartTypeSettings.lineStackedPer, thumb: 'chart-04.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal, thumb: 'chart-09.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked, thumb: 'chart-08.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer, thumb: 'chart-07.png'}, - { type: Asc.c_oAscChartTypeSettings.areaNormal, thumb: 'chart-12.png'}, - { type: Asc.c_oAscChartTypeSettings.areaStacked, thumb: 'chart-11.png'}, - { type: Asc.c_oAscChartTypeSettings.areaStackedPer, thumb: 'chart-10.png'}, - { type: Asc.c_oAscChartTypeSettings.pie, thumb: 'chart-13.png'}, - { type: Asc.c_oAscChartTypeSettings.doughnut, thumb: 'chart-14.png'}, - { type: Asc.c_oAscChartTypeSettings.pie3d, thumb: 'chart-22.png'}, - { type: Asc.c_oAscChartTypeSettings.scatter, thumb: 'chart-15.png'}, - { type: Asc.c_oAscChartTypeSettings.stock, thumb: 'chart-16.png'}, - { type: Asc.c_oAscChartTypeSettings.line3d, thumb: 'chart-21.png'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3d, thumb: 'chart-17.png'}, - { type: Asc.c_oAscChartTypeSettings.barStacked3d, thumb: 'chart-18.png'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer3d, thumb: 'chart-19.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal3d, thumb: 'chart-25.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked3d, thumb: 'chart-24.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer3d, thumb: 'chart-23.png'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3dPerspective, thumb: 'chart-20.png'} - ]; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - Common.NotificationCenter.on('chartstyles:load', _.bind(this.onStylesLoad, this)); - }, - - initEvents: function () { - var me = this; - - $('#chart-style').single('click', _.bind(me.showStyle, me)); - $('#chart-wrap').single('click', _.bind(me.showWrap, me)); - $('#chart-reorder').single('click', _.bind(me.showReorder, me)); - $('#edit-chart-bordercolor').single('click', _.bind(me.showBorderColor, me)); - - $('.edit-chart-style .categories a').single('click', _.bind(me.showStyleCategory, me)); - - Common.Utils.addScrollIfNeed('#edit-chart .pages', '#edit-chart .page'); - me.initControls(); - me.renderStyles(); - }, - - categoryShow: function(e) { - // - }, - - onStylesLoad: function () { - _styles = Common.SharedSettings.get('chartstyles'); - this.renderStyles(); - }, - - // Render layout - render: function () { - var elementsInRow = 3; - var groupsOfTypes = _.chain(_types).groupBy(function(element, index){ - return Math.floor(index/elementsInRow); - }).toArray().value(); - - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - types : groupsOfTypes, - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-chart-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = DE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - showStyleCategory: function (e) { - // remove android specific style - $('.page[data-page=edit-chart-style] .list-block.inputs-list').removeClass('inputs-list'); - }, - - renderStyles: function() { - var $styleContainer = $('#tab-chart-style'); - - if ($styleContainer.length > 0) { - var columns = parseInt($styleContainer.width() / 70), // magic - row = -1, - styles = []; - - _.each(_styles, function (style, index) { - if (0 == index % columns) { - styles.push([]); - row++ - } - styles[row].push(style); - }); - - var template = _.template([ - '<% _.each(styles, function(row) { %>', - '
            ', - '<% _.each(row, function(style) { %>', - '
          • ', - '', - '
          • ', - '<% }); %>', - '
          ', - '<% }); %>' - ].join(''))({ - styles: styles - }); - - $styleContainer.html(template); - } - }, - - showStyle: function () { - var me = this; - var selector = '#edit-chart-style'; - this.showPage(selector, true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-chart-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-chart-fill').append(template({scope: this})); - $('#edit-chart-add-custom-color').single('click', _.bind(this.showCustomFillColor, this)); - - - this.fireEvent('page:show', [this, selector]); - }, - - showWrap: function () { - this.showPage('#edit-chart-wrap'); - Common.Utils.addScrollIfNeed('.page.chart-wrap', '.page.chart-wrap .page-content'); - }, - - showReorder: function () { - this.showPage('#edit-chart-reorder'); - Common.Utils.addScrollIfNeed('.page.chart-reorder', '.page.chart-reorder .page-content'); - }, - - showBorderColor: function () { - var me = this; - var selector = '#edit-chart-border-color-view'; - this.showPage(selector, true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-chart-border-color] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-chart-border-color] .page-content').append(template({scope: this})); - $('#edit-chart-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, selector]); - }, - - showCustomFillColor: function() { - var me = this, - selector = '#edit-chart-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-chart-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showCustomBorderColor: function() { - var me = this, - selector = '#edit-chart-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-chart-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - textStyle: 'Style', - textWrap: 'Wrap', - textReorder: 'Reorder', - textRemoveChart: 'Remove Chart', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textInline: 'Inline', - textSquare: 'Square', - textTight: 'Tight', - textThrough: 'Through', - textTopBottom: 'Top and Bottom', - textInFront: 'In Front', - textBehind: 'Behind', - textAlign: 'Align', - textMoveText: 'Move with Text', - textOverlap: 'Allow Overlap', - textDistanceText: 'Distance from Text', - textType: 'Type', - textFill: 'Fill', - textBorder: 'Border', - textSize: 'Size', - textColor: 'Color', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), DE.Views.EditChart || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditHeader.js b/apps/documenteditor/mobile/app/view/edit/EditHeader.js deleted file mode 100644 index 9b64072e8..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditHeader.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditHeader.js - * Document Editor - * - * Created by Julia Radzhabova on 2/15/19 - * Copyright (c) 2019 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/EditHeader.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditHeader = Backbone.View.extend(_.extend((function() { - // private - - return { - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - DE.getController('EditHeader').initSettings(); - Common.Utils.addScrollIfNeed('#edit-header .pages', '#edit-header .page'); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-header-root') - .html(); - } - - return ''; - }, - - showPage: function (templateId, customFireEvent) { - var rootView = DE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (customFireEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - textDiffFirst: 'Different first page', - textDiffOdd: 'Different odd and even pages', - textSameAs: 'Link to Previous', - textPageNumbering: 'Page Numbering', - textPrev: 'Continue from previous section', - textFrom: 'Start at' - } - })(), DE.Views.EditHeader || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditHyperlink.js b/apps/documenteditor/mobile/app/view/edit/EditHyperlink.js deleted file mode 100644 index 0ac483078..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditHyperlink.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditHyperlink.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/7/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!documenteditor/mobile/app/template/EditHyperlink.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditHyperlink = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - }, - - initEvents: function () { - $('#edit-link-url input[type=url]').single('input', _.bind(function(e) { - $('#edit-link-edit').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, this)); - Common.Utils.addScrollIfNeed('#edit-link .pages', '#edit-link .page'); - }, - - categoryShow: function(e) { - // - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-link-root') - .html(); - } - - return ''; - }, - - textLink: 'Link', - textDisplay: 'Display', - textTip: 'Screen Tip', - textEdit: 'Save Link', - textRemove: 'Remove Link' - } - })(), DE.Views.EditHyperlink || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditImage.js b/apps/documenteditor/mobile/app/view/edit/EditImage.js deleted file mode 100644 index c0e194fb3..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditImage.js +++ /dev/null @@ -1,188 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditImage.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/3/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/EditImage.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditImage = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - }, - - initEvents: function () { - var me = this; - - $('#image-wrap').single('click', _.bind(me.showWrap, me)); - $('#image-replace').single('click', _.bind(me.showReplace, me)); - $('#image-reorder').single('click', _.bind(me.showReorder, me)); - $('#edit-image-url').single('click', _.bind(me.showEditUrl, me)); - - Common.Utils.addScrollIfNeed('#edit-image .pages', '#edit-image .page'); - me.initControls(); - }, - - categoryShow: function(e) { - // - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-image-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = DE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - showWrap: function () { - this.showPage('#edit-image-wrap-view'); - $('.image-wrap .list-block.inputs-list').removeClass('inputs-list'); - Common.Utils.addScrollIfNeed('.page.image-wrap', '.page.image-wrap .page-content'); - }, - - showReplace: function () { - this.showPage('#edit-image-replace-view'); - }, - - showReorder: function () { - this.showPage('#edit-image-reorder-view'); - Common.Utils.addScrollIfNeed('.page.image-reorder', '.page.image-reorder .page-content'); - }, - - showEditUrl: function () { - this.showPage('#edit-image-url-view'); - - $('.edit-image-url-link input[type="url"]').single('input', _.bind(function(e) { - $('.edit-image-url-link .buttons').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, this)); - - _.delay(function () { - $('.edit-image-url-link input[type="url"]').focus(); - }, 1000); - Common.Utils.addScrollIfNeed('.page.edit-image-url-link', '.page.edit-image-url-link .page-content'); - }, - - textWrap: 'Wrap', - textReplace: 'Replace', - textReorder: 'Reorder', - textDefault: 'Actual Size', - textRemove: 'Remove Image', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textInline: 'Inline', - textSquare: 'Square', - textTight: 'Tight', - textThrough: 'Through', - textTopBottom: 'Top and Bottom', - textInFront: 'In Front', - textBehind: 'Behind', - textAlign: 'Align', - textMoveText: 'Move with Text', - textOverlap: 'Allow Overlap', - textDistanceText: 'Distance from Text', - textFromLibrary: 'Picture from Library', - textFromURL: 'Picture from URL', - textLinkSettings: 'Link Settings', - textAddress: 'Address', - textImageURL: 'Image URL', - textReplaceImg: 'Replace Image' - } - })(), DE.Views.EditImage || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditParagraph.js b/apps/documenteditor/mobile/app/view/edit/EditParagraph.js deleted file mode 100644 index 09efb0971..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditParagraph.js +++ /dev/null @@ -1,218 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditParagraph.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/14/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/EditParagraph.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditParagraph = Backbone.View.extend(_.extend((function() { - // private - // var _paragraphStyles; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - // "click #font-fonts" : "showPage", - // "click #font-color" : "showPage" - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('#paragraph-background').single('click', _.bind(me.showColors, me)); - $('#paragraph-advanced').single('click', _.bind(me.showAdvanced, me)); - - me.renderStyles(); - - DE.getController('EditParagraph').initSettings(); - Common.Utils.addScrollIfNeed('#edit-paragraph .pages', '#edit-paragraph .page'); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-paragraph-root') - .html(); - } - - return ''; - }, - - showPage: function (templateId, customFireEvent) { - var rootView = DE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (customFireEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - renderStyles: function () { - var me = this, - thumbSize = DE.getController('EditParagraph').getThumbSize(), - $styleList = $('#paragraph-list ul'), - template = _.template( - '
        • ' + - '' + - '
        • ' - ); - - _.each(DE.getController('EditParagraph').getStyles(), function(style) { - $(template(style)).appendTo($styleList).on('click', _.buffered(function (e) { - me.fireEvent('style:click', [me, e]); - }, 100)) - }); - }, - - showColors: function () { - var me = this; - this.showPage('#edit-paragraph-color', true); - - this.paletteBackgroundColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-paragraph-color] .page-content'), - transparent: true - }); - this.paletteBackgroundColor.on('customcolor', function () { - me.showCustomColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-paragraph-color] .page-content').append(template({scope: this})); - $('#edit-paragraph-add-custom-color').single('click', _.bind(this.showCustomColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-paragraph-color]', '.page[data-page=edit-paragraph-color] .page-content'); - this.fireEvent('page:show', [this, '#edit-paragraph-color']); - }, - - showAdvanced: function () { - this.showPage('#edit-paragraph-advanced'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-paragraph-advanced]', '.page[data-page=edit-paragraph-advanced] .page-content'); - }, - - showCustomColor: function () { - var me = this, - selector = '#edit-paragraph-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-paragraph-custom-color] .page-content'), - color: me.paletteBackgroundColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBackgroundColor.addNewDynamicColor(colorPicker, color); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - textBackground: 'Background', - textAdvSettings: 'Advanced settings', - textPrgStyles: 'Paragraph styles', - textBack: 'Back', - textAdvanced: 'Advanced', - textFromText: 'Distance from Text', - textBefore: 'Before', - textAuto: 'Auto', - textFirstLine: 'First Line', - textAfter: 'After', - textSpaceBetween: 'Space Between Paragraphs', - textPageBreak: 'Page Break Before', - textOrphan: 'Orphan Control', - textKeepLines: 'Keep Lines Together', - textKeepNext: 'Keep with Next', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), DE.Views.EditParagraph || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditShape.js b/apps/documenteditor/mobile/app/view/edit/EditShape.js deleted file mode 100644 index 6bf428bd8..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditShape.js +++ /dev/null @@ -1,293 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditShape.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/21/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/EditShape.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditShape = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - this.isShapeCanFill = true; - }, - - initEvents: function () { - var me = this; - - $('#shape-style').single('click', _.bind(me.showStyle, me)); - $('#shape-wrap').single('click', _.bind(me.showWrap, me)); - $('#shape-replace').single('click', _.bind(me.showReplace, me)); - $('#shape-reorder').single('click', _.bind(me.showReorder, me)); - $('#edit-shape-bordercolor').single('click', _.bind(me.showBorderColor, me)); - - $('.edit-shape-style .categories a').single('click', _.bind(me.showStyleCategory, me)); - - Common.Utils.addScrollIfNeed('#edit-shape .pages', '#edit-shape .page'); - me.initControls(); - }, - - categoryShow: function(e) { - // if ('edit-shape' == $(e.currentTarget).prop('id')) { - // this.initEvents(); - // } - }, - - // Render layout - render: function () { - var shapes = Common.SharedSettings.get('shapes').slice(); - shapes.splice(0, 1); // Remove line shapes - - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - shapes : shapes, - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-shape-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = DE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - showStyleCategory: function (e) { - // remove android specific style - $('.page[data-page=edit-shape-style] .list-block.inputs-list').removeClass('inputs-list'); - }, - - showStyle: function () { - var me = this; - var selector = this.isShapeCanFill ? '#edit-shape-style' : '#edit-shape-style-nofill'; - this.showPage(selector, true); - - if (!this.isShapeCanFill) - this.showStyleCategory(); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-shape-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-shape-fill').append(template({scope: this})); - $('#edit-shape-add-custom-color').single('click', _.bind(this.showCustomFillColor, this)); - Common.Utils.addScrollIfNeed('.page.shape-style', '.page.shape-style .page-content'); - this.fireEvent('page:show', [this, selector]); - }, - - showWrap: function () { - this.showPage('#edit-shape-wrap'); - Common.Utils.addScrollIfNeed('.page.shape-wrap', '.page.shape-wrap .page-content'); - }, - - showReplace: function () { - this.showPage('#edit-shape-replace'); - Common.Utils.addScrollIfNeed('.page.shape-replace', '.page.shape-replace .page-content'); - }, - - showReorder: function () { - this.showPage('#edit-shape-reorder'); - Common.Utils.addScrollIfNeed('.page.shape-reorder', '.page.shape-reorder .page-content'); - }, - - showBorderColor: function () { - var me = this; - var selector = '#edit-shape-border-color-view'; - this.showPage(selector, true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-shape-border-color] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-shape-border-color] .page-content').append(template({scope: this})); - $('#edit-shape-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, selector]); - }, - - showCustomFillColor: function() { - var me = this, - selector = '#edit-shape-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-shape-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showCustomBorderColor: function() { - var me = this, - selector = '#edit-shape-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-shape-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - textStyle: 'Style', - textWrap: 'Wrap', - textReplace: 'Replace', - textReorder: 'Reorder', - textRemoveShape: 'Remove Shape', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textInline: 'Inline', - textSquare: 'Square', - textTight: 'Tight', - textThrough: 'Through', - textTopAndBottom: 'Top and Bottom', - textInFront: 'In Front', - textBehind: 'Behind', - textAlign: 'Align', - textWithText: 'Move with Text', - textOverlap: 'Allow Overlap', - textFromText: 'Distance from Text', - textFill: 'Fill', - textBorder: 'Border', - textEffects: 'Effects', - textSize: 'Size', - textColor: 'Color', - textOpacity: 'Opacity', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), DE.Views.EditShape || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditTable.js b/apps/documenteditor/mobile/app/view/edit/EditTable.js deleted file mode 100644 index 50b6a1b00..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditTable.js +++ /dev/null @@ -1,324 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditTable.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/20/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/EditTable.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditTable = Backbone.View.extend(_.extend((function() { - // private - var _styles = []; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - }, - - initEvents: function () { - var me = this; - - $('#table-wrap').single('click', _.bind(me.showTableWrap, me)); - $('#table-style').single('click', _.bind(me.showTableStyle, me)); - $('#table-options').single('click', _.bind(me.showTableOptions, me)); - $('#edit-table-style-options').single('click', _.bind(me.showTableStyleOptions, me)); - $('#edit-table-bordercolor').single('click', _.bind(me.showBorderColor, me)); - $('.edit-table-style .categories a').single('click', _.bind(me.showStyleCategory, me)); - - Common.Utils.addScrollIfNeed('#edit-table .pages', '#edit-table .page'); - me.initControls(); - me.renderStyles(); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-table-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - updateStyles: function (styles) { - _styles = styles; - this.renderStyles(); - }, - - renderStyles: function() { - var $styleContainer = $('#edit-table-styles .item-inner'); - - if ($styleContainer.length > 0 && $styleContainer.is(':visible')) { - var columns = parseInt(($styleContainer.width() - 15) / 70), // magic - row = -1, - styles = []; - - _.each(_styles, function (style, index) { - if (0 == index % columns) { - styles.push([]); - row++ - } - styles[row].push(style); - }); - - var template = _.template([ - '
          ', - '<% _.each(styles, function(row) { %>', - '
          ', - '<% _.each(row, function(style) { %>', - '
          ', - '', - '
          ', - '<% }); %>', - '
          ', - '<% }); %>', - '
          ' - ].join(''))({ - styles: styles - }); - - $styleContainer.html(template); - } - }, - - categoryShow: function(e) { - // if ('edit-shape' == $(e.currentTarget).prop('id')) { - // this.initEvents(); - // } - }, - - showStyleCategory: function (e) { - // remove android specific style - $('.page[data-page=edit-table-style] .list-block.inputs-list').removeClass('inputs-list'); - if ($(e.currentTarget).data('type') == 'fill') { - this.fireEvent('page:show', [this, '#edit-table-style']); - } - // this.fireEvent('page:show', [this, '#edit-table-style']); - }, - - showPage: function (templateId, suspendEvent) { - var rootView = DE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - showTableWrap: function () { - this.showPage('#edit-table-wrap'); - }, - - showTableStyle: function () { - var me = this; - this.showPage('#edit-table-style', true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-table-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-table-fill').append(template({scope: this})); - $('#edit-table-add-custom-color').single('click', _.bind(this.showCustomFillColor, this)); - - this.fireEvent('page:show', [this, '#edit-table-style']); - }, - - showBorderColor: function () { - var me = this; - this.showPage('#edit-table-border-color-view', true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-table-border-color] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-table-border-color] .page-content').append(template({scope: this})); - $('#edit-table-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, '#edit-table-border-color-view']); - }, - - showTableOptions: function () { - this.showPage('#edit-table-options'); - }, - - showTableStyleOptions: function () { - this.showPage('#edit-table-style-options-view'); - }, - - showCustomFillColor: function () { - var me = this, - selector = '#edit-table-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-table-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showCustomBorderColor: function() { - var me = this, - selector = '#edit-table-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-table-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - textRemoveTable: 'Remove Table', - textTableOptions: 'Table Options', - textStyle: 'Style', - textWrap: 'Wrap', - textBack: 'Back', - textInline: 'Inline', - textFlow: 'Flow', - textWithText: 'Move with Text', - textFromText: 'Distance from Text', - textAlign: 'Align', - textOptions: 'Options', - textRepeatHeader: 'Repeat as Header Row', - textResizeFit: 'Resize to Fit Content', - textCellMargins: 'Cell Margins', - textFill: 'Fill', - textBorder: 'Border', - textStyleOptions: 'Style Options', - textSize: 'Size', - textColor: 'Color', - textHeaderRow: 'Header Row', - textTotalRow: 'Total Row', - textBandedRow: 'Banded Row', - textFirstColumn: 'First Column', - textLastColumn: 'Last Column', - textBandedColumn: 'Banded Column', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), DE.Views.EditTable || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/view/edit/EditText.js b/apps/documenteditor/mobile/app/view/edit/EditText.js deleted file mode 100644 index 1a4a8b5ca..000000000 --- a/apps/documenteditor/mobile/app/view/edit/EditText.js +++ /dev/null @@ -1,339 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditText.js - * Document Editor - * - * Created by Alexander Yuzhin on 10/4/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!documenteditor/mobile/app/template/EditText.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - DE.Views.EditText = Backbone.View.extend(_.extend((function() { - // private - var _fontsList, - _editTextController; - - var _bullets = [ - [ - {type: -1, thumb: ''}, - {type: 1, thumb: 'bullet-01.png'}, - {type: 2, thumb: 'bullet-02.png'}, - {type: 3, thumb: 'bullet-03.png'} - ], - [ - {type: 4, thumb: 'bullet-04.png'}, - {type: 5, thumb: 'bullet-05.png'}, - {type: 6, thumb: 'bullet-06.png'}, - {type: 7, thumb: 'bullet-07.png'} - ] - ]; - - var _numbers = [ - [ - {type: -1, thumb: ''}, - {type: 4, thumb: 'number-01.png'}, - {type: 5, thumb: 'number-02.png'}, - {type: 6, thumb: 'number-03.png'} - ], - [ - {type: 1, thumb: 'number-04.png'}, - {type: 2, thumb: 'number-05.png'}, - {type: 3, thumb: 'number-06.png'}, - {type: 7, thumb: 'number-07.png'} - ] - ]; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - _editTextController = DE.getController('EditText'); - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('#font-fonts').single('click', _.bind(me.showFonts, me)); - $('#font-color').single('click', _.bind(me.showFontColor, me)); - $('#font-background').single('click', _.bind(me.showBackgroundColor, me)); - $('#font-additional').single('click', _.bind(me.showAdditional, me)); - $('#font-line-spacing').single('click', _.bind(me.showLineSpacing, me)); - $('#font-bullets').single('click', _.bind(me.showBullets, me)); - $('#font-numbers').single('click', _.bind(me.showNumbers, me)); - - Common.Utils.addScrollIfNeed('#edit-text .pages', '#edit-text .page'); - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
          ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this, - bullets : _bullets, - numbers : _numbers - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-text-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = DE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - showFonts: function () { - this.showPage('#edit-text-fonts'); - - var me = this, - $template = $( - '
          ' + - '
        • ' + - '' + - '
        • ' + - '
          ' - ); - - _fontsList = uiApp.virtualList('#font-list.virtual-list', { - items: DE.getController('EditText').getFonts(), - template: $template.html(), - onItemsAfterInsert: function (list, fragment) { - var fontInfo = _editTextController.getFontInfo(); - $('#font-list input[name=font-name]').val([fontInfo.name]); - - $('#font-list li').single('click', _.buffered(function (e) { - me.fireEvent('font:click', [me, e]); - }, 100)); - } - }); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-font-page]', '.page[data-page=edit-text-font-page] .page-content'); - }, - - showFontColor: function () { - var me = this; - this.showPage('#edit-text-color', true); - - this.paletteTextColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-text-font-color] .page-content') - }); - this.paletteTextColor.on('customcolor', function () { - me.showCustomFontColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-text-font-color] .page-content').append(template({scope: this})); - $('#edit-text-add-custom-color').single('click', _.bind(this.showCustomFontColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-font-color]', '.page[data-page=edit-text-font-color] .page-content'); - this.fireEvent('page:show', [this, '#edit-text-color']); - }, - - showCustomFontColor: function () { - var me = this, - selector = '#edit-text-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-text-custom-color] .page-content'), - color: me.paletteTextColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteTextColor.addNewDynamicColor(colorPicker, color); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showBackgroundColor: function () { - var me = this; - this.showPage('#edit-text-background', true); - - this.paletteBackgroundColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-text-font-background] .page-content'), - transparent: true - }); - this.paletteBackgroundColor.on('customcolor', function () { - me.showCustomBackgroundColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-text-font-background] .page-content').append(template({scope: this})); - $('#edit-text-add-custom-background-color').single('click', _.bind(this.showCustomBackgroundColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-font-background]', '.page[data-page=edit-text-font-background] .page-content'); - this.fireEvent('page:show', [this, '#edit-text-background']); - }, - - showCustomBackgroundColor: function () { - var me = this, - selector = '#edit-text-custom-color-view'; - me.showPage(selector, true); - - me.customBackgroundColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-text-custom-color] .page-content'), - color: me.paletteBackgroundColor.currentColor - }); - me.customBackgroundColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBackgroundColor.addNewDynamicColor(colorPicker, color); - DE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showAdditional: function () { - this.showPage('#edit-text-additional'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-additional]', '.page[data-page=edit-text-additional] .page-content'); - }, - - showLineSpacing: function () { - this.showPage('#edit-text-linespacing'); - Common.Utils.addScrollIfNeed('#page-text-linespacing', '#page-text-linespacing .page-content'); - }, - - showBullets: function () { - this.showPage('#edit-text-bullets'); - }, - - showNumbers: function () { - this.showPage('#edit-text-numbers'); - }, - - textFonts: 'Fonts', - textFontColor: 'Font Color', - textHighlightColor: 'Highlight Color', - textAdditionalFormat: 'Additional Formatting', - textBack: 'Back', - textSize: 'Size', - textFontColors: 'Font Colors', - textAutomatic: 'Automatic', - textHighlightColors: 'Highlight Colors', - textAdditional: 'Additional', - textStrikethrough: 'Strikethrough', - textDblStrikethrough: 'Double Strikethrough', - textDblSuperscript: 'Superscript', - textSubscript: 'Subscript', - textSmallCaps: 'Small Caps', - textAllCaps: 'All Caps', - textLetterSpacing: 'Letter Spacing', - textLineSpacing: 'Line Spacing', - textBullets: 'Bullets', - textNone: 'None', - textNumbers: 'Numbers', - textCharacterBold: 'B', - textCharacterItalic: 'I', - textCharacterUnderline: 'U', - textCharacterStrikethrough: 'S', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), DE.Views.EditText || {})) -}); \ No newline at end of file diff --git a/apps/documenteditor/mobile/index.html b/apps/documenteditor/mobile/index.html deleted file mode 100644 index dfe1353d0..000000000 --- a/apps/documenteditor/mobile/index.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - ONLYOFFICE Documents - - - - - - - - - -
          - - - - - - - - - - - - - diff --git a/apps/documenteditor/mobile/index.html.deploy b/apps/documenteditor/mobile/index.html.deploy deleted file mode 100644 index 034a3c577..000000000 --- a/apps/documenteditor/mobile/index.html.deploy +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - ONLYOFFICE Document Editor - - - - - - - - -
          - - - - - - diff --git a/apps/documenteditor/mobile/index_loader.html b/apps/documenteditor/mobile/index_loader.html deleted file mode 100644 index 2e18c620f..000000000 --- a/apps/documenteditor/mobile/index_loader.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - ONLYOFFICE Documents - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/documenteditor/mobile/index_loader.html.deploy b/apps/documenteditor/mobile/index_loader.html.deploy deleted file mode 100644 index c73fa3754..000000000 --- a/apps/documenteditor/mobile/index_loader.html.deploy +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - - - - ONLYOFFICE Document Editor - - - - - - - - - - - - - diff --git a/apps/documenteditor/mobile/locale/backup/en.json b/apps/documenteditor/mobile/locale/backup/en.json new file mode 100644 index 000000000..bb01ccfbb --- /dev/null +++ b/apps/documenteditor/mobile/locale/backup/en.json @@ -0,0 +1,586 @@ +{ + "Common.Controllers.Collaboration.textAtLeast": "at least", + "Common.Controllers.Collaboration.textAuto": "auto", + "Common.Controllers.Collaboration.textBaseline": "Baseline", + "Common.Controllers.Collaboration.textBold": "Bold", + "Common.Controllers.Collaboration.textBreakBefore": "Page break before", + "Common.Controllers.Collaboration.textCaps": "All caps", + "Common.Controllers.Collaboration.textCenter": "Align center", + "Common.Controllers.Collaboration.textChart": "Chart", + "Common.Controllers.Collaboration.textColor": "Font color", + "Common.Controllers.Collaboration.textContextual": "Don't add interval between paragraphs of the same style", + "Common.Controllers.Collaboration.textDeleted": "Deleted:", + "Common.Controllers.Collaboration.textDStrikeout": "Double strikeout", + "Common.Controllers.Collaboration.textEditUser": "Users who are editing the file:", + "Common.Controllers.Collaboration.textCancel": "Cancel", + "Common.Controllers.Collaboration.textDone": "Done", + "Common.Controllers.Collaboration.textAddReply": "Add Reply", + "Common.Controllers.Collaboration.textEdit": "Edit", + "Common.Controllers.Collaboration.textResolve": "Resolve", + "Common.Controllers.Collaboration.textDeleteComment": "Delete comment", + "Common.Controllers.Collaboration.textDeleteReply": "Delete reply", + "Common.Controllers.Collaboration.textReopen": "Reopen", + "Common.Controllers.Collaboration.textMessageDeleteComment": "Do you really want to delete this comment?", + "Common.Controllers.Collaboration.textMessageDeleteReply": "Do you really want to delete this reply?", + "Common.Controllers.Collaboration.textYes": "Yes", + "Common.Controllers.Collaboration.textEquation": "Equation", + "Common.Controllers.Collaboration.textExact": "exactly", + "Common.Controllers.Collaboration.textFirstLine": "First line", + "Common.Controllers.Collaboration.textFormatted": "Formatted", + "Common.Controllers.Collaboration.textHighlight": "Highlight color", + "Common.Controllers.Collaboration.textImage": "Image", + "Common.Controllers.Collaboration.textIndentLeft": "Indent left", + "Common.Controllers.Collaboration.textIndentRight": "Indent right", + "Common.Controllers.Collaboration.textInserted": "Inserted:", + "Common.Controllers.Collaboration.textItalic": "Italic", + "Common.Controllers.Collaboration.textJustify": "Align justify", + "Common.Controllers.Collaboration.textKeepLines": "Keep lines together", + "Common.Controllers.Collaboration.textKeepNext": "Keep with next", + "Common.Controllers.Collaboration.textLeft": "Align left", + "Common.Controllers.Collaboration.textLineSpacing": "Line Spacing: ", + "Common.Controllers.Collaboration.textMultiple": "multiple", + "Common.Controllers.Collaboration.textNoBreakBefore": "No page break before", + "Common.Controllers.Collaboration.textNoContextual": "Add interval between paragraphs of the same style", + "Common.Controllers.Collaboration.textNoKeepLines": "Don't keep lines together", + "Common.Controllers.Collaboration.textNoKeepNext": "Don't keep with next", + "Common.Controllers.Collaboration.textNot": "Not", + "Common.Controllers.Collaboration.textNoWidow": "No widow control", + "Common.Controllers.Collaboration.textNum": "Change numbering", + "Common.Controllers.Collaboration.textParaDeleted": "Paragraph Deleted", + "Common.Controllers.Collaboration.textParaFormatted": "Paragraph Formatted", + "Common.Controllers.Collaboration.textParaInserted": "Paragraph Inserted", + "Common.Controllers.Collaboration.textParaMoveFromDown": "Moved Down:", + "Common.Controllers.Collaboration.textParaMoveFromUp": "Moved Up:", + "Common.Controllers.Collaboration.textParaMoveTo": "Moved:", + "Common.Controllers.Collaboration.textPosition": "Position", + "Common.Controllers.Collaboration.textRight": "Align right", + "Common.Controllers.Collaboration.textShape": "Shape", + "Common.Controllers.Collaboration.textShd": "Background color", + "Common.Controllers.Collaboration.textSmallCaps": "Small caps", + "Common.Controllers.Collaboration.textSpacing": "Spacing", + "Common.Controllers.Collaboration.textSpacingAfter": "Spacing after", + "Common.Controllers.Collaboration.textSpacingBefore": "Spacing before", + "Common.Controllers.Collaboration.textStrikeout": "Strikeout", + "Common.Controllers.Collaboration.textSubScript": "Subscript", + "Common.Controllers.Collaboration.textSuperScript": "Superscript", + "Common.Controllers.Collaboration.textTableChanged": "Table Settings Changed", + "Common.Controllers.Collaboration.textTableRowsAdd": "Table Rows Added", + "Common.Controllers.Collaboration.textTableRowsDel": "Table Rows Deleted", + "Common.Controllers.Collaboration.textTabs": "Change tabs", + "Common.Controllers.Collaboration.textUnderline": "Underline", + "Common.Controllers.Collaboration.textWidow": "Widow control", + "Common.Controllers.Collaboration.textDelete": "Delete", + "Common.Controllers.Collaboration.textNoChanges": "There are no changes.", + "Common.UI.ThemeColorPalette.textCustomColors": "Custom Colors", + "Common.UI.ThemeColorPalette.textStandartColors": "Standard Colors", + "Common.UI.ThemeColorPalette.textThemeColors": "Theme Colors", + "Common.Utils.Metric.txtCm": "cm", + "Common.Utils.Metric.txtPt": "pt", + "Common.Views.Collaboration.textAcceptAllChanges": "Accept All Changes", + "Common.Views.Collaboration.textBack": "Back", + "Common.Views.Collaboration.textChange": "Review Change", + "Common.Views.Collaboration.textCollaboration": "Collaboration", + "Common.Views.Collaboration.textDisplayMode": "Display Mode", + "Common.Views.Collaboration.textEditUsers": "Users", + "Common.Views.Collaboration.textFinal": "Final", + "Common.Views.Collaboration.textMarkup": "Markup", + "Common.Views.Collaboration.textNoComments": "This document doesn't contain comments", + "Common.Views.Collaboration.textOriginal": "Original", + "Common.Views.Collaboration.textRejectAllChanges": "Reject All Changes", + "Common.Views.Collaboration.textReview": "Track Changes", + "Common.Views.Collaboration.textReviewing": "Review", + "Common.Views.Collaboration.textСomments": "Сomments", + "Common.Views.Collaboration.textEditСomment": "Edit Comment", + "Common.Views.Collaboration.textDone": "Done", + "Common.Views.Collaboration.textAddReply": "Add Reply", + "Common.Views.Collaboration.textEditReply": "Edit Reply", + "Common.Views.Collaboration.textCancel": "Cancel", + "Common.Views.Collaboration.textAllChangesEditing": "All changes (Editing)", + "Common.Views.Collaboration.textAllChangesAcceptedPreview": "All changes accepted (Preview)", + "Common.Views.Collaboration.textAllChangesRejectedPreview": "All changes rejected (Preview)", + "Common.Views.Collaboration.textAccept": "Accept", + "Common.Views.Collaboration.textReject": "Reject", + "DE.Controllers.AddContainer.textImage": "Image", + "DE.Controllers.AddContainer.textOther": "Other", + "DE.Controllers.AddContainer.textShape": "Shape", + "DE.Controllers.AddContainer.textTable": "Table", + "DE.Controllers.AddImage.textEmptyImgUrl": "You need to specify image URL.", + "DE.Controllers.AddImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", + "DE.Controllers.AddOther.textBelowText": "Below Text", + "DE.Controllers.AddOther.textBottomOfPage": "Bottom Of Page", + "DE.Controllers.AddOther.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", + "DE.Controllers.AddOther.textDeleteDraft": "Do you really want to delete draft?", + "DE.Controllers.AddOther.textCancel": "Cancel", + "DE.Controllers.AddOther.textContinue": "Continue", + "DE.Controllers.AddOther.textDelete": "Delete", + "DE.Controllers.AddTable.textCancel": "Cancel", + "DE.Controllers.AddTable.textColumns": "Columns", + "DE.Controllers.AddTable.textRows": "Rows", + "DE.Controllers.AddTable.textTableSize": "Table Size", + "DE.Controllers.DocumentHolder.errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", + "DE.Controllers.DocumentHolder.menuAddLink": "Add Link", + "DE.Controllers.DocumentHolder.menuCopy": "Copy", + "DE.Controllers.DocumentHolder.menuCut": "Cut", + "DE.Controllers.DocumentHolder.menuDelete": "Delete", + "DE.Controllers.DocumentHolder.menuDeleteTable": "Delete Table", + "DE.Controllers.DocumentHolder.menuEdit": "Edit", + "DE.Controllers.DocumentHolder.menuMerge": "Merge Cells", + "DE.Controllers.DocumentHolder.menuMore": "More", + "DE.Controllers.DocumentHolder.menuOpenLink": "Open Link", + "DE.Controllers.DocumentHolder.menuPaste": "Paste", + "DE.Controllers.DocumentHolder.menuReview": "Review", + "DE.Controllers.DocumentHolder.menuReviewChange": "Review Change", + "DE.Controllers.DocumentHolder.menuSplit": "Split Cell", + "DE.Controllers.DocumentHolder.sheetCancel": "Cancel", + "DE.Controllers.DocumentHolder.textCancel": "Cancel", + "DE.Controllers.DocumentHolder.textColumns": "Columns", + "DE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copy, Cut and Paste Actions", + "DE.Controllers.DocumentHolder.textDoNotShowAgain": "Do not show again", + "DE.Controllers.DocumentHolder.textGuest": "Guest", + "DE.Controllers.DocumentHolder.textRows": "Rows", + "DE.Controllers.DocumentHolder.menuViewComment": "View Comment", + "DE.Controllers.DocumentHolder.menuAddComment": "Add Comment", + "DE.Controllers.EditContainer.textChart": "Chart", + "DE.Controllers.EditContainer.textFooter": "Footer", + "DE.Controllers.EditContainer.textHeader": "Header", + "DE.Controllers.EditContainer.textHyperlink": "Hyperlink", + "DE.Controllers.EditContainer.textImage": "Image", + "DE.Controllers.EditContainer.textParagraph": "Paragraph", + "DE.Controllers.EditContainer.textSettings": "Settings", + "DE.Controllers.EditContainer.textShape": "Shape", + "DE.Controllers.EditContainer.textTable": "Table", + "DE.Controllers.EditContainer.textText": "Text", + "DE.Controllers.EditImage.textEmptyImgUrl": "You need to specify image URL.", + "DE.Controllers.EditImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", + "DE.Controllers.EditText.textAuto": "Auto", + "DE.Controllers.EditText.textFonts": "Fonts", + "DE.Controllers.EditText.textPt": "pt", + "DE.Controllers.Main.advDRMEnterPassword": "Enter your password:", + "DE.Controllers.Main.advDRMOptions": "Protected File", + "DE.Controllers.Main.advDRMPassword": "Password", + "DE.Controllers.Main.advTxtOptions": "Choose TXT Options", + "DE.Controllers.Main.applyChangesTextText": "Loading data...", + "DE.Controllers.Main.applyChangesTitleText": "Loading Data", + "DE.Controllers.Main.closeButtonText": "Close File", + "DE.Controllers.Main.convertationTimeoutText": "Conversion timeout exceeded.", + "DE.Controllers.Main.criticalErrorExtText": "Press 'OK' to return to document list.", + "DE.Controllers.Main.criticalErrorTitle": "Error", + "DE.Controllers.Main.downloadErrorText": "Download failed.", + "DE.Controllers.Main.downloadMergeText": "Downloading...", + "DE.Controllers.Main.downloadMergeTitle": "Downloading", + "DE.Controllers.Main.downloadTextText": "Downloading document...", + "DE.Controllers.Main.downloadTitleText": "Downloading Document", + "DE.Controllers.Main.errorAccessDeny": "You are trying to perform an action you do not have rights for.
          Please contact your Document Server administrator.", + "DE.Controllers.Main.errorBadImageUrl": "Image URL is incorrect", + "DE.Controllers.Main.errorCoAuthoringDisconnect": "Server connection lost. You can't edit anymore.", + "DE.Controllers.Main.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.
          When you click the 'OK' button, you will be prompted to download the document.", + "DE.Controllers.Main.errorDatabaseConnection": "External error.
          Database connection error. Please, contact support.", + "DE.Controllers.Main.errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", + "DE.Controllers.Main.errorDataRange": "Incorrect data range.", + "DE.Controllers.Main.errorDefaultMessage": "Error code: %1", + "DE.Controllers.Main.errorEditingDownloadas": "An error occurred during the work with the document.
          Use the 'Download' option to save the file backup copy to your computer hard drive.", + "DE.Controllers.Main.errorFilePassProtect": "The file is password protected and cannot be opened.", + "DE.Controllers.Main.errorFileSizeExceed": "The file size exceeds the limitation set for your server.
          Please contact your Document Server administrator for details.", + "DE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor", + "DE.Controllers.Main.errorKeyExpire": "Key descriptor expired", + "DE.Controllers.Main.errorMailMergeLoadFile": "Loading the document failed. Please select a different file.", + "DE.Controllers.Main.errorMailMergeSaveFile": "Merge failed.", + "DE.Controllers.Main.errorProcessSaveResult": "Saving is failed.", + "DE.Controllers.Main.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", + "DE.Controllers.Main.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
          opening price, max price, min price, closing price.", + "DE.Controllers.Main.errorUpdateVersion": "The file version has been changed. The page will be reloaded.", + "DE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
          Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", + "DE.Controllers.Main.errorUserDrop": "The file cannot be accessed right now.", + "DE.Controllers.Main.errorUsersExceed": "The number of users was exceeded", + "DE.Controllers.Main.errorViewerDisconnect": "Connection is lost. You can still view the document,
          but will not be able to download it until the connection is restored and page is reloaded.", + "DE.Controllers.Main.errorOpensource": "Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.", + "DE.Controllers.Main.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.", + "DE.Controllers.Main.loadFontsTextText": "Loading data...", + "DE.Controllers.Main.loadFontsTitleText": "Loading Data", + "DE.Controllers.Main.loadFontTextText": "Loading data...", + "DE.Controllers.Main.loadFontTitleText": "Loading Data", + "DE.Controllers.Main.loadImagesTextText": "Loading images...", + "DE.Controllers.Main.loadImagesTitleText": "Loading Images", + "DE.Controllers.Main.loadImageTextText": "Loading image...", + "DE.Controllers.Main.loadImageTitleText": "Loading Image", + "DE.Controllers.Main.loadingDocumentTextText": "Loading document...", + "DE.Controllers.Main.loadingDocumentTitleText": "Loading document", + "DE.Controllers.Main.mailMergeLoadFileText": "Loading Data Source...", + "DE.Controllers.Main.mailMergeLoadFileTitle": "Loading Data Source", + "DE.Controllers.Main.notcriticalErrorTitle": "Warning", + "DE.Controllers.Main.openErrorText": "An error has occurred while opening the file.", + "DE.Controllers.Main.openTextText": "Opening document...", + "DE.Controllers.Main.openTitleText": "Opening Document", + "DE.Controllers.Main.printTextText": "Printing document...", + "DE.Controllers.Main.printTitleText": "Printing Document", + "DE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.", + "DE.Controllers.Main.savePreparingText": "Preparing to save", + "DE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...", + "DE.Controllers.Main.saveTextText": "Saving document...", + "DE.Controllers.Main.saveTitleText": "Saving Document", + "DE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.", + "DE.Controllers.Main.sendMergeText": "Sending Merge...", + "DE.Controllers.Main.sendMergeTitle": "Sending Merge", + "DE.Controllers.Main.splitDividerErrorText": "The number of rows must be a divisor of %1", + "DE.Controllers.Main.splitMaxColsErrorText": "The number of columns must be less than %1", + "DE.Controllers.Main.splitMaxRowsErrorText": "The number of rows must be less than %1", + "DE.Controllers.Main.textAnonymous": "Anonymous", + "DE.Controllers.Main.textBack": "Back", + "DE.Controllers.Main.textBuyNow": "Visit website", + "DE.Controllers.Main.textCancel": "Cancel", + "DE.Controllers.Main.textClose": "Close", + "DE.Controllers.Main.textContactUs": "Contact sales", + "DE.Controllers.Main.textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader.
          Please contact our Sales Department to get a quote.", + "DE.Controllers.Main.textDone": "Done", + "DE.Controllers.Main.textLoadingDocument": "Loading document", + "DE.Controllers.Main.textNoLicenseTitle": "License limit reached", + "DE.Controllers.Main.textOK": "OK", + "DE.Controllers.Main.textPaidFeature": "Paid feature", + "DE.Controllers.Main.textPassword": "Password", + "DE.Controllers.Main.textPreloader": "Loading... ", + "DE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", + "DE.Controllers.Main.textUsername": "Username", + "DE.Controllers.Main.titleLicenseExp": "License expired", + "DE.Controllers.Main.titleServerVersion": "Editor updated", + "DE.Controllers.Main.titleUpdateVersion": "Version changed", + "DE.Controllers.Main.txtArt": "Your text here", + "DE.Controllers.Main.txtDiagramTitle": "Chart Title", + "DE.Controllers.Main.txtEditingMode": "Set editing mode...", + "DE.Controllers.Main.txtFooter": "Footer", + "DE.Controllers.Main.txtHeader": "Header", + "DE.Controllers.Main.txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", + "DE.Controllers.Main.txtSeries": "Series", + "DE.Controllers.Main.txtStyle_footnote_text": "Footnote Text", + "DE.Controllers.Main.txtStyle_Heading_1": "Heading 1", + "DE.Controllers.Main.txtStyle_Heading_2": "Heading 2", + "DE.Controllers.Main.txtStyle_Heading_3": "Heading 3", + "DE.Controllers.Main.txtStyle_Heading_4": "Heading 4", + "DE.Controllers.Main.txtStyle_Heading_5": "Heading 5", + "DE.Controllers.Main.txtStyle_Heading_6": "Heading 6", + "DE.Controllers.Main.txtStyle_Heading_7": "Heading 7", + "DE.Controllers.Main.txtStyle_Heading_8": "Heading 8", + "DE.Controllers.Main.txtStyle_Heading_9": "Heading 9", + "DE.Controllers.Main.txtStyle_Intense_Quote": "Intense Quote", + "DE.Controllers.Main.txtStyle_List_Paragraph": "List Paragraph", + "DE.Controllers.Main.txtStyle_No_Spacing": "No Spacing", + "DE.Controllers.Main.txtStyle_Normal": "Normal", + "DE.Controllers.Main.txtStyle_Quote": "Quote", + "DE.Controllers.Main.txtStyle_Subtitle": "Subtitle", + "DE.Controllers.Main.txtStyle_Title": "Title", + "DE.Controllers.Main.txtXAxis": "X Axis", + "DE.Controllers.Main.txtYAxis": "Y Axis", + "DE.Controllers.Main.unknownErrorText": "Unknown error.", + "DE.Controllers.Main.unsupportedBrowserErrorText": "Your browser is not supported.", + "DE.Controllers.Main.uploadImageExtMessage": "Unknown image format.", + "DE.Controllers.Main.uploadImageFileCountMessage": "No images uploaded.", + "DE.Controllers.Main.uploadImageSizeMessage": "Maximium image size limit exceeded.", + "DE.Controllers.Main.uploadImageTextText": "Uploading image...", + "DE.Controllers.Main.uploadImageTitleText": "Uploading Image", + "DE.Controllers.Main.waitText": "Please, wait...", + "DE.Controllers.Main.warnLicenseExp": "Your license has expired.
          Please update your license and refresh the page.", + "DE.Controllers.Main.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
          Contact %1 sales team for personal upgrade terms.", + "DE.Controllers.Main.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", + "DE.Controllers.Main.warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
          Contact your administrator to learn more.", + "DE.Controllers.Main.warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.", + "DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", + "DE.Controllers.Main.textHasMacros": "The file contains automatic macros.
          Do you want to run macros?", + "DE.Controllers.Main.textRemember": "Remember my choice", + "DE.Controllers.Main.textYes": "Yes", + "DE.Controllers.Main.textNo": "No", + "DE.Controllers.Search.textNoTextFound": "Text not Found", + "DE.Controllers.Search.textReplaceAll": "Replace All", + "DE.Controllers.Settings.notcriticalErrorTitle": "Warning", + "DE.Controllers.Settings.txtLoading": "Loading...", + "DE.Controllers.Settings.unknownText": "Unknown", + "DE.Controllers.Settings.warnDownloadAs": "If you continue saving in this format all features except the text will be lost.
          Are you sure you want to continue?", + "DE.Controllers.Settings.warnDownloadAsRTF": "If you continue saving in this format some of the formatting might be lost.
          Are you sure you want to continue?", + "DE.Controllers.Settings.textCustomSize": "Custom Size", + "DE.Controllers.Toolbar.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.", + "DE.Controllers.Toolbar.dlgLeaveTitleText": "You leave the application", + "DE.Controllers.Toolbar.leaveButtonText": "Leave this Page", + "DE.Controllers.Toolbar.stayButtonText": "Stay on this Page", + "DE.Views.AddImage.textAddress": "Address", + "DE.Views.AddImage.textBack": "Back", + "DE.Views.AddImage.textFromLibrary": "Picture from Library", + "DE.Views.AddImage.textFromURL": "Picture from URL", + "DE.Views.AddImage.textImageURL": "Image URL", + "DE.Views.AddImage.textInsertImage": "Insert Image", + "DE.Views.AddImage.textLinkSettings": "Link Settings", + "DE.Views.AddOther.textAddLink": "Add Link", + "DE.Views.AddOther.textBack": "Back", + "DE.Views.AddOther.textCenterBottom": "Center Bottom", + "DE.Views.AddOther.textCenterTop": "Center Top", + "DE.Views.AddOther.textColumnBreak": "Column Break", + "DE.Views.AddOther.textContPage": "Continuous Page", + "DE.Views.AddOther.textCurrentPos": "Current Position", + "DE.Views.AddOther.textDisplay": "Display", + "DE.Views.AddOther.textEvenPage": "Even Page", + "DE.Views.AddOther.textFootnote": "Footnote", + "DE.Views.AddOther.textFormat": "Format", + "DE.Views.AddOther.textInsert": "Insert", + "DE.Views.AddOther.textInsertFootnote": "Insert Footnote", + "DE.Views.AddOther.textLeftBottom": "Left Bottom", + "DE.Views.AddOther.textLeftTop": "Left Top", + "DE.Views.AddOther.textLink": "Link", + "DE.Views.AddOther.textLocation": "Location", + "DE.Views.AddOther.textNextPage": "Next Page", + "DE.Views.AddOther.textOddPage": "Odd Page", + "DE.Views.AddOther.textPageBreak": "Page Break", + "DE.Views.AddOther.textPageNumber": "Page Number", + "DE.Views.AddOther.textPosition": "Position", + "DE.Views.AddOther.textRightBottom": "Right Bottom", + "DE.Views.AddOther.textRightTop": "Right Top", + "DE.Views.AddOther.textSectionBreak": "Section Break", + "DE.Views.AddOther.textStartFrom": "Start At", + "DE.Views.AddOther.textTip": "Screen Tip", + "DE.Views.AddOther.textComment": "Comment", + "DE.Views.AddOther.textAddComment": "Add Comment", + "DE.Views.AddOther.textDone": "Done", + "DE.Views.AddOther.textBreak": "Break", + "DE.Views.EditChart.textAddCustomColor": "Add Custom Color", + "DE.Views.EditChart.textAlign": "Align", + "DE.Views.EditChart.textBack": "Back", + "DE.Views.EditChart.textBackward": "Move Backward", + "DE.Views.EditChart.textBehind": "Behind", + "DE.Views.EditChart.textBorder": "Border", + "DE.Views.EditChart.textColor": "Color", + "DE.Views.EditChart.textCustomColor": "Custom Color", + "DE.Views.EditChart.textDistanceText": "Distance from Text", + "DE.Views.EditChart.textFill": "Fill", + "DE.Views.EditChart.textForward": "Move Forward", + "DE.Views.EditChart.textInFront": "In Front", + "DE.Views.EditChart.textInline": "Inline", + "DE.Views.EditChart.textMoveText": "Move with Text", + "DE.Views.EditChart.textOverlap": "Allow Overlap", + "DE.Views.EditChart.textRemoveChart": "Remove Chart", + "DE.Views.EditChart.textReorder": "Reorder", + "DE.Views.EditChart.textSize": "Size", + "DE.Views.EditChart.textSquare": "Square", + "DE.Views.EditChart.textStyle": "Style", + "DE.Views.EditChart.textThrough": "Through", + "DE.Views.EditChart.textTight": "Tight", + "DE.Views.EditChart.textToBackground": "Send to Background", + "DE.Views.EditChart.textToForeground": "Bring to Foreground", + "DE.Views.EditChart.textTopBottom": "Top and Bottom", + "DE.Views.EditChart.textType": "Type", + "DE.Views.EditChart.textWrap": "Wrap", + "DE.Views.EditHeader.textDiffFirst": "Different first page", + "DE.Views.EditHeader.textDiffOdd": "Different odd and even pages", + "DE.Views.EditHeader.textFrom": "Start at", + "DE.Views.EditHeader.textPageNumbering": "Page Numbering", + "DE.Views.EditHeader.textPrev": "Continue from previous section", + "DE.Views.EditHeader.textSameAs": "Link to Previous", + "DE.Views.EditHyperlink.textDisplay": "Display", + "DE.Views.EditHyperlink.textEdit": "Save Link", + "DE.Views.EditHyperlink.textLink": "Link", + "DE.Views.EditHyperlink.textRemove": "Remove Link", + "DE.Views.EditHyperlink.textTip": "Screen Tip", + "DE.Views.EditImage.textAddress": "Address", + "DE.Views.EditImage.textAlign": "Align", + "DE.Views.EditImage.textBack": "Back", + "DE.Views.EditImage.textBackward": "Move Backward", + "DE.Views.EditImage.textBehind": "Behind", + "DE.Views.EditImage.textDefault": "Actual Size", + "DE.Views.EditImage.textDistanceText": "Distance from Text", + "DE.Views.EditImage.textForward": "Move Forward", + "DE.Views.EditImage.textFromLibrary": "Picture from Library", + "DE.Views.EditImage.textFromURL": "Picture from URL", + "DE.Views.EditImage.textImageURL": "Image URL", + "DE.Views.EditImage.textInFront": "In Front", + "DE.Views.EditImage.textInline": "Inline", + "DE.Views.EditImage.textLinkSettings": "Link Settings", + "DE.Views.EditImage.textMoveText": "Move with Text", + "DE.Views.EditImage.textOverlap": "Allow Overlap", + "DE.Views.EditImage.textRemove": "Remove Image", + "DE.Views.EditImage.textReorder": "Reorder", + "DE.Views.EditImage.textReplace": "Replace", + "DE.Views.EditImage.textReplaceImg": "Replace Image", + "DE.Views.EditImage.textSquare": "Square", + "DE.Views.EditImage.textThrough": "Through", + "DE.Views.EditImage.textTight": "Tight", + "DE.Views.EditImage.textToBackground": "Send to Background", + "DE.Views.EditImage.textToForeground": "Bring to Foreground", + "DE.Views.EditImage.textTopBottom": "Top and Bottom", + "DE.Views.EditImage.textWrap": "Wrap", + "DE.Views.EditParagraph.textAddCustomColor": "Add Custom Color", + "DE.Views.EditParagraph.textAdvanced": "Advanced", + "DE.Views.EditParagraph.textAdvSettings": "Advanced settings", + "DE.Views.EditParagraph.textAfter": "After", + "DE.Views.EditParagraph.textAuto": "Auto", + "DE.Views.EditParagraph.textBack": "Back", + "DE.Views.EditParagraph.textBackground": "Background", + "DE.Views.EditParagraph.textBefore": "Before", + "DE.Views.EditParagraph.textCustomColor": "Custom Color", + "DE.Views.EditParagraph.textFirstLine": "First Line", + "DE.Views.EditParagraph.textFromText": "Distance from Text", + "DE.Views.EditParagraph.textKeepLines": "Keep Lines Together", + "DE.Views.EditParagraph.textKeepNext": "Keep with Next", + "DE.Views.EditParagraph.textOrphan": "Orphan Control", + "DE.Views.EditParagraph.textPageBreak": "Page Break Before", + "DE.Views.EditParagraph.textPrgStyles": "Paragraph styles", + "DE.Views.EditParagraph.textSpaceBetween": "Space Between Paragraphs", + "DE.Views.EditShape.textAddCustomColor": "Add Custom Color", + "DE.Views.EditShape.textAlign": "Align", + "DE.Views.EditShape.textBack": "Back", + "DE.Views.EditShape.textBackward": "Move Backward", + "DE.Views.EditShape.textBehind": "Behind", + "DE.Views.EditShape.textBorder": "Border", + "DE.Views.EditShape.textColor": "Color", + "DE.Views.EditShape.textCustomColor": "Custom Color", + "DE.Views.EditShape.textEffects": "Effects", + "DE.Views.EditShape.textFill": "Fill", + "DE.Views.EditShape.textForward": "Move Forward", + "DE.Views.EditShape.textFromText": "Distance from Text", + "DE.Views.EditShape.textInFront": "In Front", + "DE.Views.EditShape.textInline": "Inline", + "DE.Views.EditShape.textOpacity": "Opacity", + "DE.Views.EditShape.textOverlap": "Allow Overlap", + "DE.Views.EditShape.textRemoveShape": "Remove Shape", + "DE.Views.EditShape.textReorder": "Reorder", + "DE.Views.EditShape.textReplace": "Replace", + "DE.Views.EditShape.textSize": "Size", + "DE.Views.EditShape.textSquare": "Square", + "DE.Views.EditShape.textStyle": "Style", + "DE.Views.EditShape.textThrough": "Through", + "DE.Views.EditShape.textTight": "Tight", + "DE.Views.EditShape.textToBackground": "Send to Background", + "DE.Views.EditShape.textToForeground": "Bring to Foreground", + "DE.Views.EditShape.textTopAndBottom": "Top and Bottom", + "DE.Views.EditShape.textWithText": "Move with Text", + "DE.Views.EditShape.textWrap": "Wrap", + "DE.Views.EditTable.textAddCustomColor": "Add Custom Color", + "DE.Views.EditTable.textAlign": "Align", + "DE.Views.EditTable.textBack": "Back", + "DE.Views.EditTable.textBandedColumn": "Banded Column", + "DE.Views.EditTable.textBandedRow": "Banded Row", + "DE.Views.EditTable.textBorder": "Border", + "DE.Views.EditTable.textCellMargins": "Cell Margins", + "DE.Views.EditTable.textColor": "Color", + "DE.Views.EditTable.textCustomColor": "Custom Color", + "DE.Views.EditTable.textFill": "Fill", + "DE.Views.EditTable.textFirstColumn": "First Column", + "DE.Views.EditTable.textFlow": "Flow", + "DE.Views.EditTable.textFromText": "Distance from Text", + "DE.Views.EditTable.textHeaderRow": "Header Row", + "DE.Views.EditTable.textInline": "Inline", + "DE.Views.EditTable.textLastColumn": "Last Column", + "DE.Views.EditTable.textOptions": "Options", + "DE.Views.EditTable.textRemoveTable": "Remove Table", + "DE.Views.EditTable.textRepeatHeader": "Repeat as Header Row", + "DE.Views.EditTable.textResizeFit": "Resize to Fit Content", + "DE.Views.EditTable.textSize": "Size", + "DE.Views.EditTable.textStyle": "Style", + "DE.Views.EditTable.textStyleOptions": "Style Options", + "DE.Views.EditTable.textTableOptions": "Table Options", + "DE.Views.EditTable.textTotalRow": "Total Row", + "DE.Views.EditTable.textWithText": "Move with Text", + "DE.Views.EditTable.textWrap": "Wrap", + "DE.Views.EditText.textAddCustomColor": "Add Custom Color", + "DE.Views.EditText.textAdditional": "Additional", + "DE.Views.EditText.textAdditionalFormat": "Additional Formatting", + "DE.Views.EditText.textAllCaps": "All Caps", + "DE.Views.EditText.textAutomatic": "Automatic", + "DE.Views.EditText.textBack": "Back", + "DE.Views.EditText.textBullets": "Bullets", + "DE.Views.EditText.textCharacterBold": "B", + "DE.Views.EditText.textCharacterItalic": "I", + "DE.Views.EditText.textCharacterStrikethrough": "S", + "DE.Views.EditText.textCharacterUnderline": "U", + "DE.Views.EditText.textCustomColor": "Custom Color", + "DE.Views.EditText.textDblStrikethrough": "Double Strikethrough", + "DE.Views.EditText.textDblSuperscript": "Superscript", + "DE.Views.EditText.textFontColor": "Font Color", + "DE.Views.EditText.textFontColors": "Font Colors", + "DE.Views.EditText.textFonts": "Fonts", + "DE.Views.EditText.textHighlightColor": "Highlight Color", + "DE.Views.EditText.textHighlightColors": "Highlight Colors", + "DE.Views.EditText.textLetterSpacing": "Letter Spacing", + "DE.Views.EditText.textLineSpacing": "Line Spacing", + "DE.Views.EditText.textNone": "None", + "DE.Views.EditText.textNumbers": "Numbers", + "DE.Views.EditText.textSize": "Size", + "DE.Views.EditText.textSmallCaps": "Small Caps", + "DE.Views.EditText.textStrikethrough": "Strikethrough", + "DE.Views.EditText.textSubscript": "Subscript", + "DE.Views.Search.textCase": "Case sensitive", + "DE.Views.Search.textDone": "Done", + "DE.Views.Search.textFind": "Find", + "DE.Views.Search.textFindAndReplace": "Find and Replace", + "DE.Views.Search.textHighlight": "Highlight results", + "DE.Views.Search.textReplace": "Replace", + "DE.Views.Search.textSearch": "Search", + "DE.Views.Settings.textAbout": "About", + "DE.Views.Settings.textAddress": "address", + "DE.Views.Settings.textAdvancedSettings": "Application Settings", + "DE.Views.Settings.textApplication": "Application", + "DE.Views.Settings.textAuthor": "Author", + "DE.Views.Settings.textBack": "Back", + "DE.Views.Settings.textBottom": "Bottom", + "DE.Views.Settings.textCentimeter": "Centimeter", + "DE.Views.Settings.textCollaboration": "Collaboration", + "DE.Views.Settings.textColorSchemes": "Color Schemes", + "DE.Views.Settings.textComment": "Comment", + "DE.Views.Settings.textCommentingDisplay": "Commenting Display", + "DE.Views.Settings.textCreated": "Created", + "DE.Views.Settings.textCreateDate": "Creation date", + "DE.Views.Settings.textCustom": "Custom", + "DE.Views.Settings.textCustomSize": "Custom Size", + "DE.Views.Settings.textDisplayComments": "Comments", + "DE.Views.Settings.textDisplayResolvedComments": "Resolved Comments", + "DE.Views.Settings.textDocInfo": "Document Info", + "DE.Views.Settings.textDocTitle": "Document title", + "DE.Views.Settings.textDocumentFormats": "Document Formats", + "DE.Views.Settings.textDocumentSettings": "Document Settings", + "DE.Views.Settings.textDone": "Done", + "DE.Views.Settings.textDownload": "Download", + "DE.Views.Settings.textDownloadAs": "Download As...", + "DE.Views.Settings.textEditDoc": "Edit Document", + "DE.Views.Settings.textEmail": "email", + "DE.Views.Settings.textFind": "Find", + "DE.Views.Settings.textFindAndReplace": "Find and Replace", + "DE.Views.Settings.textFormat": "Format", + "DE.Views.Settings.textHelp": "Help", + "DE.Views.Settings.textHiddenTableBorders": "Hidden Table Borders", + "DE.Views.Settings.textInch": "Inch", + "DE.Views.Settings.textLandscape": "Landscape", + "DE.Views.Settings.textLastModified": "Last Modified", + "DE.Views.Settings.textLastModifiedBy": "Last Modified By", + "DE.Views.Settings.textLeft": "Left", + "DE.Views.Settings.textLoading": "Loading...", + "DE.Views.Settings.textLocation": "Location", + "DE.Views.Settings.textMargins": "Margins", + "DE.Views.Settings.textNoCharacters": "Nonprinting Characters", + "DE.Views.Settings.textOrientation": "Orientation", + "DE.Views.Settings.textOwner": "Owner", + "DE.Views.Settings.textPages": "Pages", + "DE.Views.Settings.textParagraphs": "Paragraphs", + "DE.Views.Settings.textPoint": "Point", + "DE.Views.Settings.textPortrait": "Portrait", + "DE.Views.Settings.textPoweredBy": "Powered by", + "DE.Views.Settings.textPrint": "Print", + "DE.Views.Settings.textReader": "Reader Mode", + "DE.Views.Settings.textReview": "Track Changes", + "DE.Views.Settings.textRight": "Right", + "DE.Views.Settings.textSettings": "Settings", + "DE.Views.Settings.textSpaces": "Spaces", + "DE.Views.Settings.textSpellcheck": "Spell Checking", + "DE.Views.Settings.textStatistic": "Statistic", + "DE.Views.Settings.textSubject": "Subject", + "DE.Views.Settings.textSymbols": "Symbols", + "DE.Views.Settings.textTel": "tel", + "DE.Views.Settings.textTitle": "Title", + "DE.Views.Settings.textTop": "Top", + "DE.Views.Settings.textUnitOfMeasurement": "Unit of Measurement", + "DE.Views.Settings.textUploaded": "Uploaded", + "DE.Views.Settings.textVersion": "Version", + "DE.Views.Settings.textWords": "Words", + "DE.Views.Settings.unknownText": "Unknown", + "DE.Views.Settings.textMacrosSettings": "Macros Settings", + "DE.Views.Settings.textDisableAll": "Disable All", + "DE.Views.Settings.textDisableAllMacrosWithoutNotification": "Disable all macros without notification", + "DE.Views.Settings.textShowNotification": "Show Notification", + "DE.Views.Settings.textDisableAllMacrosWithNotification": "Disable all macros with notification", + "DE.Views.Settings.textEnableAll": "Enable All", + "DE.Views.Settings.textEnableAllMacrosWithoutNotification": "Enable all macros without notification", + "DE.Views.Toolbar.textBack": "Back" +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/locale/backup/ru.json b/apps/documenteditor/mobile/locale/backup/ru.json new file mode 100644 index 000000000..f4e130890 --- /dev/null +++ b/apps/documenteditor/mobile/locale/backup/ru.json @@ -0,0 +1,540 @@ +{ + "Common.Controllers.Collaboration.textAtLeast": "минимум", + "Common.Controllers.Collaboration.textAuto": "авто", + "Common.Controllers.Collaboration.textBaseline": "Базовая линия", + "Common.Controllers.Collaboration.textBold": "Полужирный", + "Common.Controllers.Collaboration.textBreakBefore": "С новой страницы", + "Common.Controllers.Collaboration.textCaps": "Все прописные", + "Common.Controllers.Collaboration.textCenter": "Выравнивание по центру", + "Common.Controllers.Collaboration.textChart": "Диаграмма", + "Common.Controllers.Collaboration.textColor": "Цвет шрифта", + "Common.Controllers.Collaboration.textContextual": "Не добавлять интервал между абзацами одного стиля", + "Common.Controllers.Collaboration.textDeleted": "Удалено:", + "Common.Controllers.Collaboration.textDStrikeout": "Двойное зачеркивание", + "Common.Controllers.Collaboration.textEditUser": "Пользователи, редактирующие документ:", + "Common.Controllers.Collaboration.textEquation": "Уравнение", + "Common.Controllers.Collaboration.textExact": "точно", + "Common.Controllers.Collaboration.textFirstLine": "Первая строка", + "Common.Controllers.Collaboration.textFormatted": "Отформатировано", + "Common.Controllers.Collaboration.textHighlight": "Цвет выделения", + "Common.Controllers.Collaboration.textImage": "Рисунок", + "Common.Controllers.Collaboration.textIndentLeft": "Отступ слева", + "Common.Controllers.Collaboration.textIndentRight": "Отступ справа", + "Common.Controllers.Collaboration.textInserted": "Добавлено:", + "Common.Controllers.Collaboration.textItalic": "Курсив", + "Common.Controllers.Collaboration.textJustify": "Выравнивание по ширине", + "Common.Controllers.Collaboration.textKeepLines": "Не разрывать абзац", + "Common.Controllers.Collaboration.textKeepNext": "Не отрывать от следующего", + "Common.Controllers.Collaboration.textLeft": "Выравнивание по левому краю", + "Common.Controllers.Collaboration.textLineSpacing": "Междустрочный интервал: ", + "Common.Controllers.Collaboration.textMultiple": "множитель", + "Common.Controllers.Collaboration.textNoBreakBefore": "Не с новой страницы", + "Common.Controllers.Collaboration.textNoContextual": "Добавлять интервал между абзацами одного стиля", + "Common.Controllers.Collaboration.textNoKeepLines": "Разрешить разрывать абзац", + "Common.Controllers.Collaboration.textNoKeepNext": "Разрешить отрывать от следующего", + "Common.Controllers.Collaboration.textNot": "Не", + "Common.Controllers.Collaboration.textNoWidow": "Без запрета висячих строк", + "Common.Controllers.Collaboration.textNum": "Изменение нумерации", + "Common.Controllers.Collaboration.textParaDeleted": "Абзац удален ", + "Common.Controllers.Collaboration.textParaFormatted": "Абзац отформатирован", + "Common.Controllers.Collaboration.textParaInserted": "Абзац добавлен ", + "Common.Controllers.Collaboration.textParaMoveFromDown": "Перемещено вниз:", + "Common.Controllers.Collaboration.textParaMoveFromUp": "Перемещено вверх:", + "Common.Controllers.Collaboration.textParaMoveTo": "Перемещено:", + "Common.Controllers.Collaboration.textPosition": "Положение", + "Common.Controllers.Collaboration.textRight": "Выравнивание по правому краю", + "Common.Controllers.Collaboration.textShape": "Фигура", + "Common.Controllers.Collaboration.textShd": "Цвет фона", + "Common.Controllers.Collaboration.textSmallCaps": "Малые прописные", + "Common.Controllers.Collaboration.textSpacing": "Интервал", + "Common.Controllers.Collaboration.textSpacingAfter": "Интервал после абзаца", + "Common.Controllers.Collaboration.textSpacingBefore": "Интервал перед абзацем", + "Common.Controllers.Collaboration.textStrikeout": "Зачеркнутый", + "Common.Controllers.Collaboration.textSubScript": "Подстрочный", + "Common.Controllers.Collaboration.textSuperScript": "Надстрочный", + "Common.Controllers.Collaboration.textTableChanged": "Изменены настройки таблицы", + "Common.Controllers.Collaboration.textTableRowsAdd": "Добавлены строки таблицы", + "Common.Controllers.Collaboration.textTableRowsDel": "Удалены строки таблицы", + "Common.Controllers.Collaboration.textTabs": "Изменение табуляции", + "Common.Controllers.Collaboration.textUnderline": "Подчёркнутый", + "Common.Controllers.Collaboration.textWidow": "Запрет висячих строк", + "Common.UI.ThemeColorPalette.textCustomColors": "Пользовательские цвета", + "Common.UI.ThemeColorPalette.textStandartColors": "Стандартные цвета", + "Common.UI.ThemeColorPalette.textThemeColors": "Цвета темы", + "Common.Utils.Metric.txtCm": "см", + "Common.Utils.Metric.txtPt": "пт", + "Common.Views.Collaboration.textAcceptAllChanges": "Принять все изменения", + "Common.Views.Collaboration.textBack": "Назад", + "Common.Views.Collaboration.textChange": "Просмотр изменений", + "Common.Views.Collaboration.textCollaboration": "Совместная работа", + "Common.Views.Collaboration.textDisplayMode": "Отображение", + "Common.Views.Collaboration.textEditUsers": "Пользователи", + "Common.Views.Collaboration.textFinal": "Измененный документ", + "Common.Views.Collaboration.textMarkup": "Изменения", + "Common.Views.Collaboration.textNoComments": "Этот документ не содержит комментариев", + "Common.Views.Collaboration.textOriginal": "Исходный документ", + "Common.Views.Collaboration.textRejectAllChanges": "Отклонить все изменения", + "Common.Views.Collaboration.textReview": "Отслеживание изменений", + "Common.Views.Collaboration.textReviewing": "Рецензирование", + "Common.Views.Collaboration.textСomments": "Комментарии", + "DE.Controllers.AddContainer.textImage": "Рисунок", + "DE.Controllers.AddContainer.textOther": "Другое", + "DE.Controllers.AddContainer.textShape": "Фигура", + "DE.Controllers.AddContainer.textTable": "Таблица", + "DE.Controllers.AddImage.textEmptyImgUrl": "Необходимо указать URL рисунка.", + "DE.Controllers.AddImage.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", + "DE.Controllers.AddOther.textBelowText": "Под текстом", + "DE.Controllers.AddOther.textBottomOfPage": "Внизу страницы", + "DE.Controllers.AddOther.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", + "DE.Controllers.AddTable.textCancel": "Отмена", + "DE.Controllers.AddTable.textColumns": "Столбцы", + "DE.Controllers.AddTable.textRows": "Строки", + "DE.Controllers.AddTable.textTableSize": "Размер таблицы", + "DE.Controllers.DocumentHolder.errorCopyCutPaste": "Операции копирования, вырезания и вставки с помощью контекстного меню будут выполняться только в текущем файле.", + "DE.Controllers.DocumentHolder.menuAddLink": "Добавить ссылку", + "DE.Controllers.DocumentHolder.menuCopy": "Копировать", + "DE.Controllers.DocumentHolder.menuCut": "Вырезать", + "DE.Controllers.DocumentHolder.menuDelete": "Удалить", + "DE.Controllers.DocumentHolder.menuDeleteTable": "Удалить таблицу", + "DE.Controllers.DocumentHolder.menuEdit": "Редактировать", + "DE.Controllers.DocumentHolder.menuMerge": "Объединить ячейки", + "DE.Controllers.DocumentHolder.menuMore": "Ещё", + "DE.Controllers.DocumentHolder.menuOpenLink": "Перейти", + "DE.Controllers.DocumentHolder.menuPaste": "Вставить", + "DE.Controllers.DocumentHolder.menuReview": "Рецензирование", + "DE.Controllers.DocumentHolder.menuReviewChange": "Просмотр изменений", + "DE.Controllers.DocumentHolder.menuSplit": "Разделить ячейку", + "DE.Controllers.DocumentHolder.sheetCancel": "Отмена", + "DE.Controllers.DocumentHolder.textCancel": "Отмена", + "DE.Controllers.DocumentHolder.textColumns": "Колонки", + "DE.Controllers.DocumentHolder.textCopyCutPasteActions": "Операции копирования, вырезания и вставки", + "DE.Controllers.DocumentHolder.textDoNotShowAgain": "Больше не показывать", + "DE.Controllers.DocumentHolder.textGuest": "Гость", + "DE.Controllers.DocumentHolder.textRows": "Строки", + "DE.Controllers.EditContainer.textChart": "Диаграмма", + "DE.Controllers.EditContainer.textFooter": "Колонтитул", + "DE.Controllers.EditContainer.textHeader": "Колонтитул", + "DE.Controllers.EditContainer.textHyperlink": "Гиперссылка", + "DE.Controllers.EditContainer.textImage": "Рисунок", + "DE.Controllers.EditContainer.textParagraph": "Абзац", + "DE.Controllers.EditContainer.textSettings": "Настройки", + "DE.Controllers.EditContainer.textShape": "Фигура", + "DE.Controllers.EditContainer.textTable": "Таблица", + "DE.Controllers.EditContainer.textText": "Текст", + "DE.Controllers.EditImage.textEmptyImgUrl": "Необходимо указать URL рисунка.", + "DE.Controllers.EditImage.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", + "DE.Controllers.EditText.textAuto": "Авто", + "DE.Controllers.EditText.textFonts": "Шрифты", + "DE.Controllers.EditText.textPt": "пт", + "DE.Controllers.Main.advDRMEnterPassword": "Введите пароль:", + "DE.Controllers.Main.advDRMOptions": "Защищенный файл", + "DE.Controllers.Main.advDRMPassword": "Пароль", + "DE.Controllers.Main.advTxtOptions": "Выбрать параметры текстового файла", + "DE.Controllers.Main.applyChangesTextText": "Загрузка данных...", + "DE.Controllers.Main.applyChangesTitleText": "Загрузка данных", + "DE.Controllers.Main.closeButtonText": "Закрыть файл", + "DE.Controllers.Main.convertationTimeoutText": "Превышено время ожидания конвертации.", + "DE.Controllers.Main.criticalErrorExtText": "Нажмите 'OK' для возврата к списку документов.", + "DE.Controllers.Main.criticalErrorTitle": "Ошибка", + "DE.Controllers.Main.downloadErrorText": "Загрузка не удалась.", + "DE.Controllers.Main.downloadMergeText": "Загрузка...", + "DE.Controllers.Main.downloadMergeTitle": "Загрузка", + "DE.Controllers.Main.downloadTextText": "Загрузка документа...", + "DE.Controllers.Main.downloadTitleText": "Загрузка документа", + "DE.Controllers.Main.errorAccessDeny": "Вы пытаетесь выполнить действие, на которое у вас нет прав.
          Пожалуйста, обратитесь к администратору Сервера документов.", + "DE.Controllers.Main.errorBadImageUrl": "Неправильный URL-адрес рисунка", + "DE.Controllers.Main.errorCoAuthoringDisconnect": "Подключение к серверу прервано. Редактирование недоступно.", + "DE.Controllers.Main.errorConnectToServer": "Не удается сохранить документ. Проверьте параметры подключения или обратитесь к вашему администратору.
          Когда вы нажмете на кнопку 'OK', вам будет предложено скачать документ.", + "DE.Controllers.Main.errorDatabaseConnection": "Внешняя ошибка.
          Ошибка подключения к базе данных. Пожалуйста, обратитесь в службу технической поддержки.", + "DE.Controllers.Main.errorDataEncrypted": "Получены зашифрованные изменения, их нельзя расшифровать.", + "DE.Controllers.Main.errorDataRange": "Некорректный диапазон данных.", + "DE.Controllers.Main.errorDefaultMessage": "Код ошибки: %1", + "DE.Controllers.Main.errorEditingDownloadas": "В ходе работы с документом произошла ошибка.
          Используйте опцию 'Скачать', чтобы сохранить резервную копию файла на жестком диске компьютера.", + "DE.Controllers.Main.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.", + "DE.Controllers.Main.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.
          Обратитесь к администратору Сервера документов для получения дополнительной информации.", + "DE.Controllers.Main.errorKeyEncrypt": "Неизвестный дескриптор ключа", + "DE.Controllers.Main.errorKeyExpire": "Срок действия дескриптора ключа истек", + "DE.Controllers.Main.errorMailMergeLoadFile": "Загрузка документа не удалась. Выберите другой файл.", + "DE.Controllers.Main.errorMailMergeSaveFile": "Не удалось выполнить слияние.", + "DE.Controllers.Main.errorProcessSaveResult": "Не удалось завершить сохранение.", + "DE.Controllers.Main.errorServerVersion": "Версия редактора была обновлена. Страница будет перезагружена, чтобы применить изменения.", + "DE.Controllers.Main.errorStockChart": "Неверный порядок строк. Чтобы создать биржевую диаграмму, расположите данные на листе в следующем порядке:
          цена открытия, максимальная цена, минимальная цена, цена закрытия.", + "DE.Controllers.Main.errorUpdateVersion": "Версия файла была изменена. Страница будет перезагружена.", + "DE.Controllers.Main.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.
          Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.", + "DE.Controllers.Main.errorUserDrop": "В настоящий момент файл недоступен.", + "DE.Controllers.Main.errorUsersExceed": "Превышено количество пользователей", + "DE.Controllers.Main.errorViewerDisconnect": "Подключение прервано. Вы по-прежнему можете просматривать документ,
          но не сможете скачать его до восстановления подключения и обновления страницы.", + "DE.Controllers.Main.leavePageText": "В документе есть несохраненные изменения. Нажмите 'Остаться на странице', чтобы дождаться автосохранения документа. Нажмите 'Уйти со страницы', чтобы сбросить все несохраненные изменения.", + "DE.Controllers.Main.loadFontsTextText": "Загрузка данных...", + "DE.Controllers.Main.loadFontsTitleText": "Загрузка данных", + "DE.Controllers.Main.loadFontTextText": "Загрузка данных...", + "DE.Controllers.Main.loadFontTitleText": "Загрузка данных", + "DE.Controllers.Main.loadImagesTextText": "Загрузка рисунков...", + "DE.Controllers.Main.loadImagesTitleText": "Загрузка рисунков", + "DE.Controllers.Main.loadImageTextText": "Загрузка рисунка...", + "DE.Controllers.Main.loadImageTitleText": "Загрузка рисунка", + "DE.Controllers.Main.loadingDocumentTextText": "Загрузка документа...", + "DE.Controllers.Main.loadingDocumentTitleText": "Загрузка документа", + "DE.Controllers.Main.mailMergeLoadFileText": "Загрузка источника данных...", + "DE.Controllers.Main.mailMergeLoadFileTitle": "Загрузка источника данных", + "DE.Controllers.Main.notcriticalErrorTitle": "Внимание", + "DE.Controllers.Main.openErrorText": "При открытии файла произошла ошибка.", + "DE.Controllers.Main.openTextText": "Открытие документа...", + "DE.Controllers.Main.openTitleText": "Открытие документа", + "DE.Controllers.Main.printTextText": "Печать документа...", + "DE.Controllers.Main.printTitleText": "Печать документа", + "DE.Controllers.Main.saveErrorText": "При сохранении файла произошла ошибка.", + "DE.Controllers.Main.savePreparingText": "Подготовка к сохранению", + "DE.Controllers.Main.savePreparingTitle": "Подготовка к сохранению. Пожалуйста, подождите...", + "DE.Controllers.Main.saveTextText": "Сохранение документа...", + "DE.Controllers.Main.saveTitleText": "Сохранение документа", + "DE.Controllers.Main.scriptLoadError": "Слишком медленное подключение, некоторые компоненты не удалось загрузить. Пожалуйста, обновите страницу.", + "DE.Controllers.Main.sendMergeText": "Отправка результатов слияния...", + "DE.Controllers.Main.sendMergeTitle": "Отправка результатов слияния", + "DE.Controllers.Main.splitDividerErrorText": "Число строк должно являться делителем для %1", + "DE.Controllers.Main.splitMaxColsErrorText": "Число столбцов должно быть меньше, чем %1", + "DE.Controllers.Main.splitMaxRowsErrorText": "Число строк должно быть меньше, чем %1", + "DE.Controllers.Main.textAnonymous": "Анонимный пользователь", + "DE.Controllers.Main.textBack": "Назад", + "DE.Controllers.Main.textBuyNow": "Перейти на сайт", + "DE.Controllers.Main.textCancel": "Отмена", + "DE.Controllers.Main.textClose": "Закрыть", + "DE.Controllers.Main.textContactUs": "Отдел продаж", + "DE.Controllers.Main.textCustomLoader": "Обратите внимание, что по условиям лицензии у вас нет прав изменять экран, отображаемый при загрузке.
          Пожалуйста, обратитесь в наш отдел продаж, чтобы сделать запрос.", + "DE.Controllers.Main.textDone": "Готово", + "DE.Controllers.Main.textLoadingDocument": "Загрузка документа", + "DE.Controllers.Main.textNoLicenseTitle": "Лицензионное ограничение", + "DE.Controllers.Main.textOK": "OK", + "DE.Controllers.Main.textPaidFeature": "Платная функция", + "DE.Controllers.Main.textPassword": "Пароль", + "DE.Controllers.Main.textPreloader": "Загрузка...", + "DE.Controllers.Main.textTryUndoRedo": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.", + "DE.Controllers.Main.textUsername": "Имя пользователя", + "DE.Controllers.Main.titleLicenseExp": "Истек срок действия лицензии", + "DE.Controllers.Main.titleServerVersion": "Редактор обновлен", + "DE.Controllers.Main.titleUpdateVersion": "Версия изменилась", + "DE.Controllers.Main.txtArt": "Введите ваш текст", + "DE.Controllers.Main.txtDiagramTitle": "Заголовок диаграммы", + "DE.Controllers.Main.txtEditingMode": "Установка режима редактирования...", + "DE.Controllers.Main.txtFooter": "Нижний колонтитул", + "DE.Controllers.Main.txtHeader": "Верхний колонтитул", + "DE.Controllers.Main.txtProtected": "Как только вы введете пароль и откроете файл, текущий пароль к файлу будет сброшен", + "DE.Controllers.Main.txtSeries": "Ряд", + "DE.Controllers.Main.txtStyle_footnote_text": "Текст сноски", + "DE.Controllers.Main.txtStyle_Heading_1": "Заголовок 1", + "DE.Controllers.Main.txtStyle_Heading_2": "Заголовок 2", + "DE.Controllers.Main.txtStyle_Heading_3": "Заголовок 3", + "DE.Controllers.Main.txtStyle_Heading_4": "Заголовок 4", + "DE.Controllers.Main.txtStyle_Heading_5": "Заголовок 5", + "DE.Controllers.Main.txtStyle_Heading_6": "Заголовок 6", + "DE.Controllers.Main.txtStyle_Heading_7": "Заголовок 7", + "DE.Controllers.Main.txtStyle_Heading_8": "Заголовок 8", + "DE.Controllers.Main.txtStyle_Heading_9": "Заголовок 9", + "DE.Controllers.Main.txtStyle_Intense_Quote": "Выделенная цитата", + "DE.Controllers.Main.txtStyle_List_Paragraph": "Абзац списка", + "DE.Controllers.Main.txtStyle_No_Spacing": "Без интервала", + "DE.Controllers.Main.txtStyle_Normal": "Обычный", + "DE.Controllers.Main.txtStyle_Quote": "Цитата", + "DE.Controllers.Main.txtStyle_Subtitle": "Подзаголовок", + "DE.Controllers.Main.txtStyle_Title": "Название", + "DE.Controllers.Main.txtXAxis": "Ось X", + "DE.Controllers.Main.txtYAxis": "Ось Y", + "DE.Controllers.Main.unknownErrorText": "Неизвестная ошибка.", + "DE.Controllers.Main.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.", + "DE.Controllers.Main.uploadImageExtMessage": "Неизвестный формат рисунка.", + "DE.Controllers.Main.uploadImageFileCountMessage": "Ни одного рисунка не загружено.", + "DE.Controllers.Main.uploadImageSizeMessage": "Превышен максимальный размер рисунка.", + "DE.Controllers.Main.uploadImageTextText": "Загрузка рисунка...", + "DE.Controllers.Main.uploadImageTitleText": "Загрузка рисунка", + "DE.Controllers.Main.waitText": "Пожалуйста, подождите...", + "DE.Controllers.Main.warnLicenseExp": "Истек срок действия лицензии.
          Обновите лицензию, а затем обновите страницу.", + "DE.Controllers.Main.warnLicenseExceeded": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт только на просмотр.
          Свяжитесь с администратором, чтобы узнать больше.", + "DE.Controllers.Main.warnLicenseUsersExceeded": "Вы достигли лимита на количество пользователей редакторов %1.
          Свяжитесь с администратором, чтобы узнать больше.", + "DE.Controllers.Main.warnNoLicense": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт на просмотр.
          Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.", + "DE.Controllers.Main.warnNoLicenseUsers": "Вы достигли лимита на одновременные подключения к редакторам %1.
          Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.", + "DE.Controllers.Main.warnProcessRightsChange": "Вам было отказано в праве на редактирование этого файла.", + "DE.Controllers.Search.textNoTextFound": "Текст не найден", + "DE.Controllers.Search.textReplaceAll": "Заменить все", + "DE.Controllers.Settings.notcriticalErrorTitle": "Внимание", + "DE.Controllers.Settings.txtLoading": "Загрузка...", + "DE.Controllers.Settings.unknownText": "Неизвестно", + "DE.Controllers.Settings.warnDownloadAs": "Если Вы продолжите сохранение в этот формат, весь функционал, кроме текста, будет потерян.
          Вы действительно хотите продолжить?", + "DE.Controllers.Settings.warnDownloadAsRTF": "Если вы продолжите сохранение в этот формат, часть форматирования может быть потеряна.
          Вы действительно хотите продолжить?", + "DE.Controllers.Toolbar.dlgLeaveMsgText": "В документе есть несохраненные изменения. Нажмите 'Остаться на странице', чтобы дождаться автосохранения документа. Нажмите 'Уйти со страницы', чтобы сбросить все несохраненные изменения.", + "DE.Controllers.Toolbar.dlgLeaveTitleText": "Вы выходите из приложения", + "DE.Controllers.Toolbar.leaveButtonText": "Уйти со страницы", + "DE.Controllers.Toolbar.stayButtonText": "Остаться на странице", + "DE.Views.AddImage.textAddress": "Адрес", + "DE.Views.AddImage.textBack": "Назад", + "DE.Views.AddImage.textFromLibrary": "Рисунок из библиотеки", + "DE.Views.AddImage.textFromURL": "Рисунок по URL", + "DE.Views.AddImage.textImageURL": "URL рисунка", + "DE.Views.AddImage.textInsertImage": "Вставить рисунок", + "DE.Views.AddImage.textLinkSettings": "Настройки ссылки", + "DE.Views.AddOther.textAddLink": "Добавить ссылку", + "DE.Views.AddOther.textBack": "Назад", + "DE.Views.AddOther.textCenterBottom": "Снизу по центру", + "DE.Views.AddOther.textCenterTop": "Сверху по центру", + "DE.Views.AddOther.textColumnBreak": "Разрыв колонки", + "DE.Views.AddOther.textContPage": "На текущей странице", + "DE.Views.AddOther.textCurrentPos": "Текущая позиция", + "DE.Views.AddOther.textDisplay": "Отобразить", + "DE.Views.AddOther.textEvenPage": "С четной страницы", + "DE.Views.AddOther.textFootnote": "Сноска", + "DE.Views.AddOther.textFormat": "Формат", + "DE.Views.AddOther.textInsert": "Вставить", + "DE.Views.AddOther.textInsertFootnote": "Вставить сноску", + "DE.Views.AddOther.textLeftBottom": "Слева снизу", + "DE.Views.AddOther.textLeftTop": "Слева сверху", + "DE.Views.AddOther.textLink": "Ссылка", + "DE.Views.AddOther.textLocation": "Положение", + "DE.Views.AddOther.textNextPage": "Со следующей страницы", + "DE.Views.AddOther.textOddPage": "С нечетной страницы", + "DE.Views.AddOther.textPageBreak": "Разрыв страницы", + "DE.Views.AddOther.textPageNumber": "Номер страницы", + "DE.Views.AddOther.textPosition": "Положение", + "DE.Views.AddOther.textRightBottom": "Снизу справа", + "DE.Views.AddOther.textRightTop": "Справа сверху", + "DE.Views.AddOther.textSectionBreak": "Разрыв раздела", + "DE.Views.AddOther.textStartFrom": "Начать с", + "DE.Views.AddOther.textTip": "Подсказка", + "DE.Views.EditChart.textAddCustomColor": "Добавить пользовательский цвет", + "DE.Views.EditChart.textAlign": "Выравнивание", + "DE.Views.EditChart.textBack": "Назад", + "DE.Views.EditChart.textBackward": "Перенести назад", + "DE.Views.EditChart.textBehind": "За текстом", + "DE.Views.EditChart.textBorder": "Граница", + "DE.Views.EditChart.textColor": "Цвет", + "DE.Views.EditChart.textCustomColor": "Пользовательский цвет", + "DE.Views.EditChart.textDistanceText": "Расстояние до текста", + "DE.Views.EditChart.textFill": "Заливка", + "DE.Views.EditChart.textForward": "Перенести вперед", + "DE.Views.EditChart.textInFront": "Перед текстом", + "DE.Views.EditChart.textInline": "В тексте", + "DE.Views.EditChart.textMoveText": "Перемещать с текстом", + "DE.Views.EditChart.textOverlap": "Разрешить перекрытие", + "DE.Views.EditChart.textRemoveChart": "Удалить диаграмму", + "DE.Views.EditChart.textReorder": "Порядок", + "DE.Views.EditChart.textSize": "Толщина", + "DE.Views.EditChart.textSquare": "Вокруг рамки", + "DE.Views.EditChart.textStyle": "Стиль", + "DE.Views.EditChart.textThrough": "Сквозное", + "DE.Views.EditChart.textTight": "По контуру", + "DE.Views.EditChart.textToBackground": "Перенести на задний план", + "DE.Views.EditChart.textToForeground": "Перенести на передний план", + "DE.Views.EditChart.textTopBottom": "Сверху и снизу", + "DE.Views.EditChart.textType": "Тип", + "DE.Views.EditChart.textWrap": "Стиль обтекания", + "DE.Views.EditHeader.textDiffFirst": "Особый для первой страницы", + "DE.Views.EditHeader.textDiffOdd": "Разные для четных и нечетных", + "DE.Views.EditHeader.textFrom": "Начать с", + "DE.Views.EditHeader.textPageNumbering": "Нумерация страниц", + "DE.Views.EditHeader.textPrev": "Продолжить", + "DE.Views.EditHeader.textSameAs": "Связать с предыдущим", + "DE.Views.EditHyperlink.textDisplay": "Отобразить", + "DE.Views.EditHyperlink.textEdit": "Редактировать ссылку", + "DE.Views.EditHyperlink.textLink": "Ссылка", + "DE.Views.EditHyperlink.textRemove": "Удалить ссылку", + "DE.Views.EditHyperlink.textTip": "Подсказка", + "DE.Views.EditImage.textAddress": "Адрес", + "DE.Views.EditImage.textAlign": "Выравнивание", + "DE.Views.EditImage.textBack": "Назад", + "DE.Views.EditImage.textBackward": "Перенести назад", + "DE.Views.EditImage.textBehind": "За текстом", + "DE.Views.EditImage.textDefault": "Реальный размер", + "DE.Views.EditImage.textDistanceText": "Расстояние до текста", + "DE.Views.EditImage.textForward": "Перенести вперед", + "DE.Views.EditImage.textFromLibrary": "Рисунок из библиотеки", + "DE.Views.EditImage.textFromURL": "Рисунок по URL", + "DE.Views.EditImage.textImageURL": "URL рисунка", + "DE.Views.EditImage.textInFront": "Перед текстом", + "DE.Views.EditImage.textInline": "В тексте", + "DE.Views.EditImage.textLinkSettings": "Настройки ссылки", + "DE.Views.EditImage.textMoveText": "Перемещать с текстом", + "DE.Views.EditImage.textOverlap": "Разрешить перекрытие", + "DE.Views.EditImage.textRemove": "Удалить рисунок", + "DE.Views.EditImage.textReorder": "Порядок", + "DE.Views.EditImage.textReplace": "Заменить", + "DE.Views.EditImage.textReplaceImg": "Заменить рисунок", + "DE.Views.EditImage.textSquare": "Вокруг рамки", + "DE.Views.EditImage.textThrough": "Сквозное", + "DE.Views.EditImage.textTight": "По контуру", + "DE.Views.EditImage.textToBackground": "Перенести на задний план", + "DE.Views.EditImage.textToForeground": "Перенести на передний план", + "DE.Views.EditImage.textTopBottom": "Сверху и снизу", + "DE.Views.EditImage.textWrap": "Стиль обтекания", + "DE.Views.EditParagraph.textAddCustomColor": "Добавить пользовательский цвет", + "DE.Views.EditParagraph.textAdvanced": "Дополнительно", + "DE.Views.EditParagraph.textAdvSettings": "Дополнительно", + "DE.Views.EditParagraph.textAfter": "После", + "DE.Views.EditParagraph.textAuto": "Авто", + "DE.Views.EditParagraph.textBack": "Назад", + "DE.Views.EditParagraph.textBackground": "Фон", + "DE.Views.EditParagraph.textBefore": "Перед", + "DE.Views.EditParagraph.textCustomColor": "Пользовательский цвет", + "DE.Views.EditParagraph.textFirstLine": "Первая строка", + "DE.Views.EditParagraph.textFromText": "Расстояние до текста", + "DE.Views.EditParagraph.textKeepLines": "Не разрывать абзац", + "DE.Views.EditParagraph.textKeepNext": "Не отрывать от следующего", + "DE.Views.EditParagraph.textOrphan": "Запрет висячих строк", + "DE.Views.EditParagraph.textPageBreak": "С новой страницы", + "DE.Views.EditParagraph.textPrgStyles": "Стили абзаца", + "DE.Views.EditParagraph.textSpaceBetween": "Интервал между абзацами", + "DE.Views.EditShape.textAddCustomColor": "Добавить пользовательский цвет", + "DE.Views.EditShape.textAlign": "Выравнивание", + "DE.Views.EditShape.textBack": "Назад", + "DE.Views.EditShape.textBackward": "Перенести назад", + "DE.Views.EditShape.textBehind": "За текстом", + "DE.Views.EditShape.textBorder": "Граница", + "DE.Views.EditShape.textColor": "Цвет", + "DE.Views.EditShape.textCustomColor": "Пользовательский цвет", + "DE.Views.EditShape.textEffects": "Эффекты", + "DE.Views.EditShape.textFill": "Заливка", + "DE.Views.EditShape.textForward": "Перенести вперед", + "DE.Views.EditShape.textFromText": "Расстояние до текста", + "DE.Views.EditShape.textInFront": "Перед текстом", + "DE.Views.EditShape.textInline": "В тексте", + "DE.Views.EditShape.textOpacity": "Прозрачность", + "DE.Views.EditShape.textOverlap": "Разрешить перекрытие", + "DE.Views.EditShape.textRemoveShape": "Удалить фигуру", + "DE.Views.EditShape.textReorder": "Порядок", + "DE.Views.EditShape.textReplace": "Заменить", + "DE.Views.EditShape.textSize": "Толщина", + "DE.Views.EditShape.textSquare": "Вокруг рамки", + "DE.Views.EditShape.textStyle": "Стиль", + "DE.Views.EditShape.textThrough": "Сквозное", + "DE.Views.EditShape.textTight": "По контуру", + "DE.Views.EditShape.textToBackground": "Перенести на задний план", + "DE.Views.EditShape.textToForeground": "Перенести на передний план", + "DE.Views.EditShape.textTopAndBottom": "Сверху и снизу", + "DE.Views.EditShape.textWithText": "Перемещать с текстом", + "DE.Views.EditShape.textWrap": "Стиль обтекания", + "DE.Views.EditTable.textAddCustomColor": "Добавить пользовательский цвет", + "DE.Views.EditTable.textAlign": "Выравнивание", + "DE.Views.EditTable.textBack": "Назад", + "DE.Views.EditTable.textBandedColumn": "Чередовать столбцы", + "DE.Views.EditTable.textBandedRow": "Чередовать строки", + "DE.Views.EditTable.textBorder": "Граница", + "DE.Views.EditTable.textCellMargins": "Поля ячейки", + "DE.Views.EditTable.textColor": "Цвет", + "DE.Views.EditTable.textCustomColor": "Пользовательский цвет", + "DE.Views.EditTable.textFill": "Заливка", + "DE.Views.EditTable.textFirstColumn": "Первый столбец", + "DE.Views.EditTable.textFlow": "Плавающая", + "DE.Views.EditTable.textFromText": "Расстояние до текста", + "DE.Views.EditTable.textHeaderRow": "Строка заголовка", + "DE.Views.EditTable.textInline": "В тексте", + "DE.Views.EditTable.textLastColumn": "Последний столбец", + "DE.Views.EditTable.textOptions": "Параметры", + "DE.Views.EditTable.textRemoveTable": "Удалить таблицу", + "DE.Views.EditTable.textRepeatHeader": "Повторять как заголовок", + "DE.Views.EditTable.textResizeFit": "По размеру содержимого", + "DE.Views.EditTable.textSize": "Толщина", + "DE.Views.EditTable.textStyle": "Стиль", + "DE.Views.EditTable.textStyleOptions": "Настройки стиля", + "DE.Views.EditTable.textTableOptions": "Настройки таблицы", + "DE.Views.EditTable.textTotalRow": "Строка итогов", + "DE.Views.EditTable.textWithText": "Перемещать с текстом", + "DE.Views.EditTable.textWrap": "Стиль обтекания", + "DE.Views.EditText.textAddCustomColor": "Добавить пользовательский цвет", + "DE.Views.EditText.textAdditional": "Дополнительно", + "DE.Views.EditText.textAdditionalFormat": "Дополнительно", + "DE.Views.EditText.textAllCaps": "Все прописные", + "DE.Views.EditText.textAutomatic": "Автоматический", + "DE.Views.EditText.textBack": "Назад", + "DE.Views.EditText.textBullets": "Маркеры", + "DE.Views.EditText.textCharacterBold": "Ж", + "DE.Views.EditText.textCharacterItalic": "К", + "DE.Views.EditText.textCharacterStrikethrough": "Т", + "DE.Views.EditText.textCharacterUnderline": "Ч", + "DE.Views.EditText.textCustomColor": "Пользовательский цвет", + "DE.Views.EditText.textDblStrikethrough": "Двойное зачёркивание", + "DE.Views.EditText.textDblSuperscript": "Надстрочные", + "DE.Views.EditText.textFontColor": "Цвет шрифта", + "DE.Views.EditText.textFontColors": "Цвета шрифта", + "DE.Views.EditText.textFonts": "Шрифты", + "DE.Views.EditText.textHighlightColor": "Цвет выделения", + "DE.Views.EditText.textHighlightColors": "Цвета выделения", + "DE.Views.EditText.textLetterSpacing": "Интервал", + "DE.Views.EditText.textLineSpacing": "Междустрочный интервал", + "DE.Views.EditText.textNone": "Нет", + "DE.Views.EditText.textNumbers": "Нумерация", + "DE.Views.EditText.textSize": "Размер", + "DE.Views.EditText.textSmallCaps": "Малые прописные", + "DE.Views.EditText.textStrikethrough": "Зачеркнутый", + "DE.Views.EditText.textSubscript": "Подстрочные", + "DE.Views.Search.textCase": "С учетом регистра", + "DE.Views.Search.textDone": "Готово", + "DE.Views.Search.textFind": "Поиск", + "DE.Views.Search.textFindAndReplace": "Поиск и замена", + "DE.Views.Search.textHighlight": "Выделить результаты", + "DE.Views.Search.textReplace": "Заменить", + "DE.Views.Search.textSearch": "Найти", + "DE.Views.Settings.textAbout": "О программе", + "DE.Views.Settings.textAddress": "адрес", + "DE.Views.Settings.textAdvancedSettings": "Настройки приложения", + "DE.Views.Settings.textApplication": "Приложение", + "DE.Views.Settings.textAuthor": "Автор", + "DE.Views.Settings.textBack": "Назад", + "DE.Views.Settings.textBottom": "Нижнее", + "DE.Views.Settings.textCentimeter": "Сантиметр", + "DE.Views.Settings.textCollaboration": "Совместная работа", + "DE.Views.Settings.textColorSchemes": "Цветовые схемы", + "DE.Views.Settings.textComment": "Комментарий", + "DE.Views.Settings.textCommentingDisplay": "Отображение комментариев", + "DE.Views.Settings.textCreated": "Создан", + "DE.Views.Settings.textCreateDate": "Дата создания", + "DE.Views.Settings.textCustom": "Особый", + "DE.Views.Settings.textCustomSize": "Особый размер", + "DE.Views.Settings.textDisplayComments": "Комментарии", + "DE.Views.Settings.textDisplayResolvedComments": "Решенные комментарии", + "DE.Views.Settings.textDocInfo": "Информация о документе", + "DE.Views.Settings.textDocTitle": "Название документа", + "DE.Views.Settings.textDocumentFormats": "Размеры страницы", + "DE.Views.Settings.textDocumentSettings": "Настройки документа", + "DE.Views.Settings.textDone": "Готово", + "DE.Views.Settings.textDownload": "Скачать", + "DE.Views.Settings.textDownloadAs": "Скачать как...", + "DE.Views.Settings.textEditDoc": "Редактировать", + "DE.Views.Settings.textEmail": "email", + "DE.Views.Settings.textFind": "Поиск", + "DE.Views.Settings.textFindAndReplace": "Поиск и замена", + "DE.Views.Settings.textFormat": "Формат", + "DE.Views.Settings.textHelp": "Справка", + "DE.Views.Settings.textHiddenTableBorders": "Скрытые границы таблиц", + "DE.Views.Settings.textInch": "Дюйм", + "DE.Views.Settings.textLandscape": "Альбомная", + "DE.Views.Settings.textLastModified": "Последнее изменение", + "DE.Views.Settings.textLastModifiedBy": "Автор последнего изменения", + "DE.Views.Settings.textLeft": "Левое", + "DE.Views.Settings.textLoading": "Загрузка...", + "DE.Views.Settings.textLocation": "Размещение", + "DE.Views.Settings.textMargins": "Поля", + "DE.Views.Settings.textNoCharacters": "Непечатаемые символы", + "DE.Views.Settings.textOrientation": "Ориентация страницы", + "DE.Views.Settings.textOwner": "Владелец", + "DE.Views.Settings.textPages": "Страницы", + "DE.Views.Settings.textParagraphs": "Абзацы", + "DE.Views.Settings.textPoint": "Пункт", + "DE.Views.Settings.textPortrait": "Книжная", + "DE.Views.Settings.textPoweredBy": "Разработано", + "DE.Views.Settings.textPrint": "Печать", + "DE.Views.Settings.textReader": "Режим чтения", + "DE.Views.Settings.textReview": "Отслеживать изменения", + "DE.Views.Settings.textRight": "Правое", + "DE.Views.Settings.textSettings": "Настройки", + "DE.Views.Settings.textSpaces": "Пробелы", + "DE.Views.Settings.textSpellcheck": "Проверка орфографии", + "DE.Views.Settings.textStatistic": "Статистика", + "DE.Views.Settings.textSubject": "Тема", + "DE.Views.Settings.textSymbols": "Символы", + "DE.Views.Settings.textTel": "Телефон", + "DE.Views.Settings.textTitle": "Название", + "DE.Views.Settings.textTop": "Верхнее", + "DE.Views.Settings.textUnitOfMeasurement": "Единица измерения", + "DE.Views.Settings.textUploaded": "Загружен", + "DE.Views.Settings.textVersion": "Версия", + "DE.Views.Settings.textWords": "Слова", + "DE.Views.Settings.unknownText": "Неизвестно", + "DE.Views.Toolbar.textBack": "Назад" +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/locale/en.json b/apps/documenteditor/mobile/locale/en.json index 1502c85da..6bd1dfcf8 100644 --- a/apps/documenteditor/mobile/locale/en.json +++ b/apps/documenteditor/mobile/locale/en.json @@ -1,607 +1,516 @@ { - "Common.Controllers.Collaboration.textAddReply": "Add Reply", - "Common.Controllers.Collaboration.textAtLeast": "at least", - "Common.Controllers.Collaboration.textAuto": "auto", - "Common.Controllers.Collaboration.textBaseline": "Baseline", - "Common.Controllers.Collaboration.textBold": "Bold", - "Common.Controllers.Collaboration.textBreakBefore": "Page break before", - "Common.Controllers.Collaboration.textCancel": "Cancel", - "Common.Controllers.Collaboration.textCaps": "All caps", - "Common.Controllers.Collaboration.textCenter": "Align center", - "Common.Controllers.Collaboration.textChart": "Chart", - "Common.Controllers.Collaboration.textColor": "Font color", - "Common.Controllers.Collaboration.textContextual": "Don't add an interval between paragraphs of the same style", - "Common.Controllers.Collaboration.textDelete": "Delete", - "Common.Controllers.Collaboration.textDeleteComment": "Delete comment", - "Common.Controllers.Collaboration.textDeleted": "Deleted:", - "Common.Controllers.Collaboration.textDeleteReply": "Delete reply", - "Common.Controllers.Collaboration.textDone": "Done", - "Common.Controllers.Collaboration.textDStrikeout": "Double strikeout", - "Common.Controllers.Collaboration.textEdit": "Edit", - "Common.Controllers.Collaboration.textEditUser": "Users who are editing the file:", - "Common.Controllers.Collaboration.textEquation": "Equation", - "Common.Controllers.Collaboration.textExact": "exactly", - "Common.Controllers.Collaboration.textFirstLine": "First line", - "Common.Controllers.Collaboration.textFormatted": "Formatted", - "Common.Controllers.Collaboration.textHighlight": "Highlight color", - "Common.Controllers.Collaboration.textImage": "Image", - "Common.Controllers.Collaboration.textIndentLeft": "Indent left", - "Common.Controllers.Collaboration.textIndentRight": "Indent right", - "Common.Controllers.Collaboration.textInserted": "Inserted:", - "Common.Controllers.Collaboration.textItalic": "Italic", - "Common.Controllers.Collaboration.textJustify": "Align justify", - "Common.Controllers.Collaboration.textKeepLines": "Keep lines together", - "Common.Controllers.Collaboration.textKeepNext": "Keep with next", - "Common.Controllers.Collaboration.textLeft": "Align left", - "Common.Controllers.Collaboration.textLineSpacing": "Line Spacing: ", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Do you really want to delete this comment?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Do you really want to delete this reply?", - "Common.Controllers.Collaboration.textMultiple": "multiple", - "Common.Controllers.Collaboration.textNoBreakBefore": "No page break before", - "Common.Controllers.Collaboration.textNoChanges": "There are no changes.", - "Common.Controllers.Collaboration.textNoContextual": "Add interval between paragraphs of the same style", - "Common.Controllers.Collaboration.textNoKeepLines": "Don't keep lines together", - "Common.Controllers.Collaboration.textNoKeepNext": "Don't keep with next", - "Common.Controllers.Collaboration.textNot": "Not", - "Common.Controllers.Collaboration.textNoWidow": "No widow control", - "Common.Controllers.Collaboration.textNum": "Change numbering", - "Common.Controllers.Collaboration.textParaDeleted": "Paragraph Deleted", - "Common.Controllers.Collaboration.textParaFormatted": "Paragraph Formatted", - "Common.Controllers.Collaboration.textParaInserted": "Paragraph Inserted", - "Common.Controllers.Collaboration.textParaMoveFromDown": "Moved Down:", - "Common.Controllers.Collaboration.textParaMoveFromUp": "Moved Up:", - "Common.Controllers.Collaboration.textParaMoveTo": "Moved:", - "Common.Controllers.Collaboration.textPosition": "Position", - "Common.Controllers.Collaboration.textReopen": "Reopen", - "Common.Controllers.Collaboration.textResolve": "Resolve", - "Common.Controllers.Collaboration.textRight": "Align right", - "Common.Controllers.Collaboration.textShape": "Shape", - "Common.Controllers.Collaboration.textShd": "Background color", - "Common.Controllers.Collaboration.textSmallCaps": "Small caps", - "Common.Controllers.Collaboration.textSpacing": "Spacing", - "Common.Controllers.Collaboration.textSpacingAfter": "Spacing after", - "Common.Controllers.Collaboration.textSpacingBefore": "Spacing before", - "Common.Controllers.Collaboration.textStrikeout": "Strikeout", - "Common.Controllers.Collaboration.textSubScript": "Subscript", - "Common.Controllers.Collaboration.textSuperScript": "Superscript", - "Common.Controllers.Collaboration.textTableChanged": "Table Settings Changed", - "Common.Controllers.Collaboration.textTableRowsAdd": "Table Rows Added", - "Common.Controllers.Collaboration.textTableRowsDel": "Table Rows Deleted", - "Common.Controllers.Collaboration.textTabs": "Change tabs", - "Common.Controllers.Collaboration.textUnderline": "Underline", - "Common.Controllers.Collaboration.textWidow": "Widow control", - "Common.Controllers.Collaboration.textYes": "Yes", - "Common.UI.ThemeColorPalette.textCustomColors": "Custom Colors", - "Common.UI.ThemeColorPalette.textStandartColors": "Standard Colors", - "Common.UI.ThemeColorPalette.textThemeColors": "Theme Colors", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAccept": "Accept", - "Common.Views.Collaboration.textAcceptAllChanges": "Accept All Changes", - "Common.Views.Collaboration.textAddReply": "Add Reply", - "Common.Views.Collaboration.textAllChangesAcceptedPreview": "All changes accepted (Preview)", - "Common.Views.Collaboration.textAllChangesEditing": "All changes (Editing)", - "Common.Views.Collaboration.textAllChangesRejectedPreview": "All changes rejected (Preview)", - "Common.Views.Collaboration.textBack": "Back", - "Common.Views.Collaboration.textCancel": "Cancel", - "Common.Views.Collaboration.textChange": "Review Change", - "Common.Views.Collaboration.textCollaboration": "Collaboration", - "Common.Views.Collaboration.textDisplayMode": "Display Mode", - "Common.Views.Collaboration.textDone": "Done", - "Common.Views.Collaboration.textEditReply": "Edit Reply", - "Common.Views.Collaboration.textEditUsers": "Users", - "Common.Views.Collaboration.textEditСomment": "Edit Comment", - "Common.Views.Collaboration.textFinal": "Final", - "Common.Views.Collaboration.textMarkup": "Markup", - "Common.Views.Collaboration.textNoComments": "This document doesn't contain comments", - "Common.Views.Collaboration.textOriginal": "Original", - "Common.Views.Collaboration.textReject": "Reject", - "Common.Views.Collaboration.textRejectAllChanges": "Reject All Changes", - "Common.Views.Collaboration.textReview": "Track Changes", - "Common.Views.Collaboration.textReviewing": "Review", - "Common.Views.Collaboration.textСomments": "Сomments", - "DE.Controllers.AddContainer.textImage": "Image", - "DE.Controllers.AddContainer.textOther": "Other", - "DE.Controllers.AddContainer.textShape": "Shape", - "DE.Controllers.AddContainer.textTable": "Table", - "DE.Controllers.AddImage.notcriticalErrorTitle": "Warning", - "DE.Controllers.AddImage.textEmptyImgUrl": "You need to specify image URL.", - "DE.Controllers.AddImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", - "DE.Controllers.AddOther.notcriticalErrorTitle": "Warning", - "DE.Controllers.AddOther.textBelowText": "Below Text", - "DE.Controllers.AddOther.textBottomOfPage": "Bottom Of Page", - "DE.Controllers.AddOther.textCancel": "Cancel", - "DE.Controllers.AddOther.textContinue": "Continue", - "DE.Controllers.AddOther.textDelete": "Delete", - "DE.Controllers.AddOther.textDeleteDraft": "Do you really want to delete the draft?", - "DE.Controllers.AddOther.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", - "DE.Controllers.AddTable.textCancel": "Cancel", - "DE.Controllers.AddTable.textColumns": "Columns", - "DE.Controllers.AddTable.textRows": "Rows", - "DE.Controllers.AddTable.textTableSize": "Table Size", - "DE.Controllers.DocumentHolder.errorCopyCutPaste": "Copy, cut, and paste actions via context menu will be performed within the current file only.", - "DE.Controllers.DocumentHolder.menuAddComment": "Add Comment", - "DE.Controllers.DocumentHolder.menuAddLink": "Add Link", - "DE.Controllers.DocumentHolder.menuCopy": "Copy", - "DE.Controllers.DocumentHolder.menuCut": "Cut", - "DE.Controllers.DocumentHolder.menuDelete": "Delete", - "DE.Controllers.DocumentHolder.menuDeleteTable": "Delete Table", - "DE.Controllers.DocumentHolder.menuEdit": "Edit", - "DE.Controllers.DocumentHolder.menuMerge": "Merge Cells", - "DE.Controllers.DocumentHolder.menuMore": "More", - "DE.Controllers.DocumentHolder.menuOpenLink": "Open Link", - "DE.Controllers.DocumentHolder.menuPaste": "Paste", - "DE.Controllers.DocumentHolder.menuReview": "Review", - "DE.Controllers.DocumentHolder.menuReviewChange": "Review Change", - "DE.Controllers.DocumentHolder.menuSplit": "Split Cell", - "DE.Controllers.DocumentHolder.menuViewComment": "View Comment", - "DE.Controllers.DocumentHolder.sheetCancel": "Cancel", - "DE.Controllers.DocumentHolder.textCancel": "Cancel", - "DE.Controllers.DocumentHolder.textColumns": "Columns", - "DE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copy, Cut and Paste Actions", - "DE.Controllers.DocumentHolder.textDoNotShowAgain": "Do not show again", - "DE.Controllers.DocumentHolder.textGuest": "Guest", - "DE.Controllers.DocumentHolder.textRows": "Rows", - "DE.Controllers.EditContainer.textChart": "Chart", - "DE.Controllers.EditContainer.textFooter": "Footer", - "DE.Controllers.EditContainer.textHeader": "Header", - "DE.Controllers.EditContainer.textHyperlink": "Hyperlink", - "DE.Controllers.EditContainer.textImage": "Image", - "DE.Controllers.EditContainer.textParagraph": "Paragraph", - "DE.Controllers.EditContainer.textSettings": "Settings", - "DE.Controllers.EditContainer.textShape": "Shape", - "DE.Controllers.EditContainer.textTable": "Table", - "DE.Controllers.EditContainer.textText": "Text", - "DE.Controllers.EditHyperlink.notcriticalErrorTitle": "Warning", - "DE.Controllers.EditHyperlink.textEmptyImgUrl": "You need to specify image URL.", - "DE.Controllers.EditHyperlink.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", - "DE.Controllers.EditImage.notcriticalErrorTitle": "Warning", - "DE.Controllers.EditImage.textEmptyImgUrl": "You need to specify image URL.", - "DE.Controllers.EditImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", - "DE.Controllers.EditText.textAuto": "Auto", - "DE.Controllers.EditText.textFonts": "Fonts", - "DE.Controllers.EditText.textPt": "pt", - "DE.Controllers.Main.advDRMEnterPassword": "Enter your password:", - "DE.Controllers.Main.advDRMOptions": "Protected File", - "DE.Controllers.Main.advDRMPassword": "Password", - "DE.Controllers.Main.advTxtOptions": "Choose TXT Options", - "DE.Controllers.Main.applyChangesTextText": "Loading data...", - "DE.Controllers.Main.applyChangesTitleText": "Loading Data", - "DE.Controllers.Main.closeButtonText": "Close File", - "DE.Controllers.Main.convertationTimeoutText": "Conversion timeout exceeded.", - "DE.Controllers.Main.criticalErrorExtText": "Press 'OK' to return to document list.", - "DE.Controllers.Main.criticalErrorTitle": "Error", - "DE.Controllers.Main.downloadErrorText": "Download failed.", - "DE.Controllers.Main.downloadMergeText": "Downloading...", - "DE.Controllers.Main.downloadMergeTitle": "Downloading", - "DE.Controllers.Main.downloadTextText": "Downloading document...", - "DE.Controllers.Main.downloadTitleText": "Downloading Document", - "DE.Controllers.Main.errorAccessDeny": "You are trying to perform an action you do not have rights for.
          Please contact your Document Server administrator.", - "DE.Controllers.Main.errorBadImageUrl": "Image URL is incorrect", - "DE.Controllers.Main.errorCoAuthoringDisconnect": "Server connection lost. You can't edit anymore.", - "DE.Controllers.Main.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.
          When you click the 'OK' button, you will be prompted to download the document.", - "DE.Controllers.Main.errorDatabaseConnection": "External error.
          Database connection error. Please, contact support.", - "DE.Controllers.Main.errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", - "DE.Controllers.Main.errorDataRange": "Incorrect data range.", - "DE.Controllers.Main.errorDefaultMessage": "Error code: %1", - "DE.Controllers.Main.errorEditingDownloadas": "An error has occurred during the work with the document.
          Use the 'Download' option to save the file backup copy to your computer hard drive.", - "DE.Controllers.Main.errorFilePassProtect": "The file is password protected and cannot be opened.", - "DE.Controllers.Main.errorFileSizeExceed": "The file size exceeds the limitation set for your server.
          Please contact your Document Server administrator for details.", - "DE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor", - "DE.Controllers.Main.errorKeyExpire": "Key descriptor expired", - "DE.Controllers.Main.errorMailMergeLoadFile": "Loading the document failed. Please select a different file.", - "DE.Controllers.Main.errorMailMergeSaveFile": "Merge failed.", - "DE.Controllers.Main.errorOpensource": "Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.", - "DE.Controllers.Main.errorProcessSaveResult": "Saving is failed.", - "DE.Controllers.Main.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", - "DE.Controllers.Main.errorSessionAbsolute": "The document editing session has expired. Please reload the page.", - "DE.Controllers.Main.errorSessionIdle": "The document has not been edited for quite a long time. Please reload the page.", - "DE.Controllers.Main.errorSessionToken": "The connection to the server has been interrupted. Please reload the page.", - "DE.Controllers.Main.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
          opening price, max price, min price, closing price.", - "DE.Controllers.Main.errorUpdateVersion": "The file version has been changed. The page will be reloaded.", - "DE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
          Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", - "DE.Controllers.Main.errorUserDrop": "The file cannot be accessed right now.", - "DE.Controllers.Main.errorUsersExceed": "The number of users was exceeded", - "DE.Controllers.Main.errorViewerDisconnect": "The connection is lost. You can view the document,
          but you can't download it until the connection is restored and the page is reloaded.", - "DE.Controllers.Main.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.", - "DE.Controllers.Main.loadFontsTextText": "Loading data...", - "DE.Controllers.Main.loadFontsTitleText": "Loading Data", - "DE.Controllers.Main.loadFontTextText": "Loading data...", - "DE.Controllers.Main.loadFontTitleText": "Loading Data", - "DE.Controllers.Main.loadImagesTextText": "Loading images...", - "DE.Controllers.Main.loadImagesTitleText": "Loading Images", - "DE.Controllers.Main.loadImageTextText": "Loading image...", - "DE.Controllers.Main.loadImageTitleText": "Loading Image", - "DE.Controllers.Main.loadingDocumentTextText": "Loading document...", - "DE.Controllers.Main.loadingDocumentTitleText": "Loading document", - "DE.Controllers.Main.mailMergeLoadFileText": "Loading Data Source...", - "DE.Controllers.Main.mailMergeLoadFileTitle": "Loading Data Source", - "DE.Controllers.Main.notcriticalErrorTitle": "Warning", - "DE.Controllers.Main.openErrorText": "An error has occurred while opening the file.", - "DE.Controllers.Main.openTextText": "Opening document...", - "DE.Controllers.Main.openTitleText": "Opening Document", - "DE.Controllers.Main.printTextText": "Printing document...", - "DE.Controllers.Main.printTitleText": "Printing Document", - "DE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.", - "DE.Controllers.Main.savePreparingText": "Preparing to save", - "DE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...", - "DE.Controllers.Main.saveTextText": "Saving document...", - "DE.Controllers.Main.saveTitleText": "Saving Document", - "DE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.", - "DE.Controllers.Main.sendMergeText": "Sending Merge...", - "DE.Controllers.Main.sendMergeTitle": "Sending Merge", - "DE.Controllers.Main.splitDividerErrorText": "The number of rows must be a divisor of %1", - "DE.Controllers.Main.splitMaxColsErrorText": "The number of columns must be less than %1", - "DE.Controllers.Main.splitMaxRowsErrorText": "The number of rows must be less than %1", - "DE.Controllers.Main.textAnonymous": "Anonymous", - "DE.Controllers.Main.textBack": "Back", - "DE.Controllers.Main.textBuyNow": "Visit website", - "DE.Controllers.Main.textCancel": "Cancel", - "DE.Controllers.Main.textClose": "Close", - "DE.Controllers.Main.textContactUs": "Contact sales", - "DE.Controllers.Main.textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader.
          Please contact our Sales Department to get a quote.", - "DE.Controllers.Main.textDone": "Done", - "DE.Controllers.Main.textGuest": "Guest", - "DE.Controllers.Main.textHasMacros": "The file contains automatic macros.
          Do you want to run macros?", - "DE.Controllers.Main.textLoadingDocument": "Loading document", - "DE.Controllers.Main.textNo": "No", - "DE.Controllers.Main.textNoLicenseTitle": "License limit reached", - "DE.Controllers.Main.textOK": "OK", - "DE.Controllers.Main.textPaidFeature": "Paid feature", - "DE.Controllers.Main.textPassword": "Password", - "DE.Controllers.Main.textPreloader": "Loading... ", - "DE.Controllers.Main.textRemember": "Remember my choice for all files", - "DE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", - "DE.Controllers.Main.textUsername": "Username", - "DE.Controllers.Main.textYes": "Yes", - "DE.Controllers.Main.titleLicenseExp": "License expired", - "DE.Controllers.Main.titleServerVersion": "Editor updated", - "DE.Controllers.Main.titleUpdateVersion": "Version changed", - "DE.Controllers.Main.txtAbove": "above", - "DE.Controllers.Main.txtArt": "Your text here", - "DE.Controllers.Main.txtBelow": "below", - "DE.Controllers.Main.txtCurrentDocument": "Current Document", - "DE.Controllers.Main.txtDiagramTitle": "Chart Title", - "DE.Controllers.Main.txtEditingMode": "Set editing mode...", - "DE.Controllers.Main.txtEvenPage": "Even Page", - "DE.Controllers.Main.txtFirstPage": "First Page", - "DE.Controllers.Main.txtFooter": "Footer", - "DE.Controllers.Main.txtHeader": "Header", - "DE.Controllers.Main.txtOddPage": "Odd Page", - "DE.Controllers.Main.txtOnPage": "on page", - "DE.Controllers.Main.txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", - "DE.Controllers.Main.txtSameAsPrev": "Same as Previous", - "DE.Controllers.Main.txtSection": "-Section", - "DE.Controllers.Main.txtSeries": "Series", - "DE.Controllers.Main.txtStyle_footnote_text": "Footnote Text", - "DE.Controllers.Main.txtStyle_Heading_1": "Heading 1", - "DE.Controllers.Main.txtStyle_Heading_2": "Heading 2", - "DE.Controllers.Main.txtStyle_Heading_3": "Heading 3", - "DE.Controllers.Main.txtStyle_Heading_4": "Heading 4", - "DE.Controllers.Main.txtStyle_Heading_5": "Heading 5", - "DE.Controllers.Main.txtStyle_Heading_6": "Heading 6", - "DE.Controllers.Main.txtStyle_Heading_7": "Heading 7", - "DE.Controllers.Main.txtStyle_Heading_8": "Heading 8", - "DE.Controllers.Main.txtStyle_Heading_9": "Heading 9", - "DE.Controllers.Main.txtStyle_Intense_Quote": "Intense Quote", - "DE.Controllers.Main.txtStyle_List_Paragraph": "List Paragraph", - "DE.Controllers.Main.txtStyle_No_Spacing": "No Spacing", - "DE.Controllers.Main.txtStyle_Normal": "Normal", - "DE.Controllers.Main.txtStyle_Quote": "Quote", - "DE.Controllers.Main.txtStyle_Subtitle": "Subtitle", - "DE.Controllers.Main.txtStyle_Title": "Title", - "DE.Controllers.Main.txtXAxis": "X Axis", - "DE.Controllers.Main.txtYAxis": "Y Axis", - "DE.Controllers.Main.unknownErrorText": "Unknown error.", - "DE.Controllers.Main.unsupportedBrowserErrorText": "Your browser is not supported.", - "DE.Controllers.Main.uploadImageExtMessage": "Unknown image format.", - "DE.Controllers.Main.uploadImageFileCountMessage": "No images uploaded.", - "DE.Controllers.Main.uploadImageSizeMessage": "Maximium image size limit exceeded.", - "DE.Controllers.Main.uploadImageTextText": "Uploading image...", - "DE.Controllers.Main.uploadImageTitleText": "Uploading Image", - "DE.Controllers.Main.waitText": "Please, wait...", - "DE.Controllers.Main.warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
          Contact your administrator to learn more.", - "DE.Controllers.Main.warnLicenseExp": "Your license has expired.
          Please update your license and refresh the page.", - "DE.Controllers.Main.warnLicenseLimitedNoAccess": "License expired.
          You have no access to document editing functionality.
          Please contact your administrator.", - "DE.Controllers.Main.warnLicenseLimitedRenewed": "License needs to be renewed.
          You have a limited access to document editing functionality.
          Please contact your administrator to get full access", - "DE.Controllers.Main.warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.", - "DE.Controllers.Main.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
          Contact %1 sales team for personal upgrade terms.", - "DE.Controllers.Main.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", - "DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", - "DE.Controllers.Search.textNoTextFound": "Text not Found", - "DE.Controllers.Search.textReplaceAll": "Replace All", - "DE.Controllers.Settings.notcriticalErrorTitle": "Warning", - "DE.Controllers.Settings.textCustomSize": "Custom Size", - "DE.Controllers.Settings.txtLoading": "Loading...", - "DE.Controllers.Settings.unknownText": "Unknown", - "DE.Controllers.Settings.warnDownloadAs": "If you continue saving in this format all features except the text will be lost.
          Are you sure you want to continue?", - "DE.Controllers.Settings.warnDownloadAsRTF": "If you continue saving in this format some of the formatting might be lost.
          Are you sure you want to continue?", - "DE.Controllers.Toolbar.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.", - "DE.Controllers.Toolbar.dlgLeaveTitleText": "You leave the application", - "DE.Controllers.Toolbar.leaveButtonText": "Leave this Page", - "DE.Controllers.Toolbar.stayButtonText": "Stay on this Page", - "DE.Views.AddImage.textAddress": "Address", - "DE.Views.AddImage.textBack": "Back", - "DE.Views.AddImage.textFromLibrary": "Picture from Library", - "DE.Views.AddImage.textFromURL": "Picture from URL", - "DE.Views.AddImage.textImageURL": "Image URL", - "DE.Views.AddImage.textInsertImage": "Insert Image", - "DE.Views.AddImage.textLinkSettings": "Link Settings", - "DE.Views.AddOther.textAddComment": "Add Comment", - "DE.Views.AddOther.textAddLink": "Add Link", - "DE.Views.AddOther.textBack": "Back", - "DE.Views.AddOther.textBreak": "Break", - "DE.Views.AddOther.textCenterBottom": "Center Bottom", - "DE.Views.AddOther.textCenterTop": "Center Top", - "DE.Views.AddOther.textColumnBreak": "Column Break", - "DE.Views.AddOther.textComment": "Comment", - "DE.Views.AddOther.textContPage": "Continuous Page", - "DE.Views.AddOther.textCurrentPos": "Current Position", - "DE.Views.AddOther.textDisplay": "Display", - "DE.Views.AddOther.textDone": "Done", - "DE.Views.AddOther.textEvenPage": "Even Page", - "DE.Views.AddOther.textFootnote": "Footnote", - "DE.Views.AddOther.textFormat": "Format", - "DE.Views.AddOther.textInsert": "Insert", - "DE.Views.AddOther.textInsertFootnote": "Insert Footnote", - "DE.Views.AddOther.textLeftBottom": "Left Bottom", - "DE.Views.AddOther.textLeftTop": "Left Top", - "DE.Views.AddOther.textLink": "Link", - "DE.Views.AddOther.textLocation": "Location", - "DE.Views.AddOther.textNextPage": "Next Page", - "DE.Views.AddOther.textOddPage": "Odd Page", - "DE.Views.AddOther.textPageBreak": "Page Break", - "DE.Views.AddOther.textPageNumber": "Page Number", - "DE.Views.AddOther.textPosition": "Position", - "DE.Views.AddOther.textRightBottom": "Right Bottom", - "DE.Views.AddOther.textRightTop": "Right Top", - "DE.Views.AddOther.textSectionBreak": "Section Break", - "DE.Views.AddOther.textStartFrom": "Start At", - "DE.Views.AddOther.textTip": "Screen Tip", - "DE.Views.EditChart.textAddCustomColor": "Add Custom Color", - "DE.Views.EditChart.textAlign": "Align", - "DE.Views.EditChart.textBack": "Back", - "DE.Views.EditChart.textBackward": "Move Backward", - "DE.Views.EditChart.textBehind": "Behind", - "DE.Views.EditChart.textBorder": "Border", - "DE.Views.EditChart.textColor": "Color", - "DE.Views.EditChart.textCustomColor": "Custom Color", - "DE.Views.EditChart.textDistanceText": "Distance from Text", - "DE.Views.EditChart.textFill": "Fill", - "DE.Views.EditChart.textForward": "Move Forward", - "DE.Views.EditChart.textInFront": "In Front", - "DE.Views.EditChart.textInline": "Inline", - "DE.Views.EditChart.textMoveText": "Move with Text", - "DE.Views.EditChart.textOverlap": "Allow Overlap", - "DE.Views.EditChart.textRemoveChart": "Remove Chart", - "DE.Views.EditChart.textReorder": "Reorder", - "DE.Views.EditChart.textSize": "Size", - "DE.Views.EditChart.textSquare": "Square", - "DE.Views.EditChart.textStyle": "Style", - "DE.Views.EditChart.textThrough": "Through", - "DE.Views.EditChart.textTight": "Tight", - "DE.Views.EditChart.textToBackground": "Send to Background", - "DE.Views.EditChart.textToForeground": "Bring to Foreground", - "DE.Views.EditChart.textTopBottom": "Top and Bottom", - "DE.Views.EditChart.textType": "Type", - "DE.Views.EditChart.textWrap": "Wrap", - "DE.Views.EditHeader.textDiffFirst": "Different first page", - "DE.Views.EditHeader.textDiffOdd": "Different odd and even pages", - "DE.Views.EditHeader.textFrom": "Start at", - "DE.Views.EditHeader.textPageNumbering": "Page Numbering", - "DE.Views.EditHeader.textPrev": "Continue from previous section", - "DE.Views.EditHeader.textSameAs": "Link to Previous", - "DE.Views.EditHyperlink.textDisplay": "Display", - "DE.Views.EditHyperlink.textEdit": "Edit Link", - "DE.Views.EditHyperlink.textLink": "Link", - "DE.Views.EditHyperlink.textRemove": "Remove Link", - "DE.Views.EditHyperlink.textTip": "Screen Tip", - "DE.Views.EditImage.textAddress": "Address", - "DE.Views.EditImage.textAlign": "Align", - "DE.Views.EditImage.textBack": "Back", - "DE.Views.EditImage.textBackward": "Move Backward", - "DE.Views.EditImage.textBehind": "Behind", - "DE.Views.EditImage.textDefault": "Actual Size", - "DE.Views.EditImage.textDistanceText": "Distance from Text", - "DE.Views.EditImage.textForward": "Move Forward", - "DE.Views.EditImage.textFromLibrary": "Picture from Library", - "DE.Views.EditImage.textFromURL": "Picture from URL", - "DE.Views.EditImage.textImageURL": "Image URL", - "DE.Views.EditImage.textInFront": "In Front", - "DE.Views.EditImage.textInline": "Inline", - "DE.Views.EditImage.textLinkSettings": "Link Settings", - "DE.Views.EditImage.textMoveText": "Move with Text", - "DE.Views.EditImage.textOverlap": "Allow Overlap", - "DE.Views.EditImage.textRemove": "Remove Image", - "DE.Views.EditImage.textReorder": "Reorder", - "DE.Views.EditImage.textReplace": "Replace", - "DE.Views.EditImage.textReplaceImg": "Replace Image", - "DE.Views.EditImage.textSquare": "Square", - "DE.Views.EditImage.textThrough": "Through", - "DE.Views.EditImage.textTight": "Tight", - "DE.Views.EditImage.textToBackground": "Send to Background", - "DE.Views.EditImage.textToForeground": "Bring to Foreground", - "DE.Views.EditImage.textTopBottom": "Top and Bottom", - "DE.Views.EditImage.textWrap": "Wrap", - "DE.Views.EditParagraph.textAddCustomColor": "Add Custom Color", - "DE.Views.EditParagraph.textAdvanced": "Advanced", - "DE.Views.EditParagraph.textAdvSettings": "Advanced Settings", - "DE.Views.EditParagraph.textAfter": "After", - "DE.Views.EditParagraph.textAuto": "Auto", - "DE.Views.EditParagraph.textBack": "Back", - "DE.Views.EditParagraph.textBackground": "Background", - "DE.Views.EditParagraph.textBefore": "Before", - "DE.Views.EditParagraph.textCustomColor": "Custom Color", - "DE.Views.EditParagraph.textFirstLine": "First Line", - "DE.Views.EditParagraph.textFromText": "Distance from Text", - "DE.Views.EditParagraph.textKeepLines": "Keep Lines Together", - "DE.Views.EditParagraph.textKeepNext": "Keep with Next", - "DE.Views.EditParagraph.textOrphan": "Orphan Control", - "DE.Views.EditParagraph.textPageBreak": "Page Break Before", - "DE.Views.EditParagraph.textPrgStyles": "Paragraph styles", - "DE.Views.EditParagraph.textSpaceBetween": "Space Between Paragraphs", - "DE.Views.EditShape.textAddCustomColor": "Add Custom Color", - "DE.Views.EditShape.textAlign": "Align", - "DE.Views.EditShape.textBack": "Back", - "DE.Views.EditShape.textBackward": "Move Backward", - "DE.Views.EditShape.textBehind": "Behind", - "DE.Views.EditShape.textBorder": "Border", - "DE.Views.EditShape.textColor": "Color", - "DE.Views.EditShape.textCustomColor": "Custom Color", - "DE.Views.EditShape.textEffects": "Effects", - "DE.Views.EditShape.textFill": "Fill", - "DE.Views.EditShape.textForward": "Move Forward", - "DE.Views.EditShape.textFromText": "Distance from Text", - "DE.Views.EditShape.textInFront": "In Front", - "DE.Views.EditShape.textInline": "Inline", - "DE.Views.EditShape.textOpacity": "Opacity", - "DE.Views.EditShape.textOverlap": "Allow Overlap", - "DE.Views.EditShape.textRemoveShape": "Remove Shape", - "DE.Views.EditShape.textReorder": "Reorder", - "DE.Views.EditShape.textReplace": "Replace", - "DE.Views.EditShape.textSize": "Size", - "DE.Views.EditShape.textSquare": "Square", - "DE.Views.EditShape.textStyle": "Style", - "DE.Views.EditShape.textThrough": "Through", - "DE.Views.EditShape.textTight": "Tight", - "DE.Views.EditShape.textToBackground": "Send to Background", - "DE.Views.EditShape.textToForeground": "Bring to Foreground", - "DE.Views.EditShape.textTopAndBottom": "Top and Bottom", - "DE.Views.EditShape.textWithText": "Move with Text", - "DE.Views.EditShape.textWrap": "Wrap", - "DE.Views.EditTable.textAddCustomColor": "Add Custom Color", - "DE.Views.EditTable.textAlign": "Align", - "DE.Views.EditTable.textBack": "Back", - "DE.Views.EditTable.textBandedColumn": "Banded Column", - "DE.Views.EditTable.textBandedRow": "Banded Row", - "DE.Views.EditTable.textBorder": "Border", - "DE.Views.EditTable.textCellMargins": "Cell Margins", - "DE.Views.EditTable.textColor": "Color", - "DE.Views.EditTable.textCustomColor": "Custom Color", - "DE.Views.EditTable.textFill": "Fill", - "DE.Views.EditTable.textFirstColumn": "First Column", - "DE.Views.EditTable.textFlow": "Flow", - "DE.Views.EditTable.textFromText": "Distance from Text", - "DE.Views.EditTable.textHeaderRow": "Header Row", - "DE.Views.EditTable.textInline": "Inline", - "DE.Views.EditTable.textLastColumn": "Last Column", - "DE.Views.EditTable.textOptions": "Options", - "DE.Views.EditTable.textRemoveTable": "Remove Table", - "DE.Views.EditTable.textRepeatHeader": "Repeat as Header Row", - "DE.Views.EditTable.textResizeFit": "Resize to Fit Content", - "DE.Views.EditTable.textSize": "Size", - "DE.Views.EditTable.textStyle": "Style", - "DE.Views.EditTable.textStyleOptions": "Style Options", - "DE.Views.EditTable.textTableOptions": "Table Options", - "DE.Views.EditTable.textTotalRow": "Total Row", - "DE.Views.EditTable.textWithText": "Move with Text", - "DE.Views.EditTable.textWrap": "Wrap", - "DE.Views.EditText.textAddCustomColor": "Add Custom Color", - "DE.Views.EditText.textAdditional": "Additional", - "DE.Views.EditText.textAdditionalFormat": "Additional Formatting", - "DE.Views.EditText.textAllCaps": "All Caps", - "DE.Views.EditText.textAutomatic": "Automatic", - "DE.Views.EditText.textBack": "Back", - "DE.Views.EditText.textBullets": "Bullets", - "DE.Views.EditText.textCharacterBold": "B", - "DE.Views.EditText.textCharacterItalic": "I", - "DE.Views.EditText.textCharacterStrikethrough": "S", - "DE.Views.EditText.textCharacterUnderline": "U", - "DE.Views.EditText.textCustomColor": "Custom Color", - "DE.Views.EditText.textDblStrikethrough": "Double Strikethrough", - "DE.Views.EditText.textDblSuperscript": "Superscript", - "DE.Views.EditText.textFontColor": "Font Color", - "DE.Views.EditText.textFontColors": "Font Colors", - "DE.Views.EditText.textFonts": "Fonts", - "DE.Views.EditText.textHighlightColor": "Highlight Color", - "DE.Views.EditText.textHighlightColors": "Highlight Colors", - "DE.Views.EditText.textLetterSpacing": "Letter Spacing", - "DE.Views.EditText.textLineSpacing": "Line Spacing", - "DE.Views.EditText.textNone": "None", - "DE.Views.EditText.textNumbers": "Numbers", - "DE.Views.EditText.textSize": "Size", - "DE.Views.EditText.textSmallCaps": "Small Caps", - "DE.Views.EditText.textStrikethrough": "Strikethrough", - "DE.Views.EditText.textSubscript": "Subscript", - "DE.Views.Search.textCase": "Case sensitive", - "DE.Views.Search.textDone": "Done", - "DE.Views.Search.textFind": "Find", - "DE.Views.Search.textFindAndReplace": "Find and Replace", - "DE.Views.Search.textHighlight": "Highlight results", - "DE.Views.Search.textReplace": "Replace", - "DE.Views.Search.textSearch": "Search", - "DE.Views.Settings.textAbout": "About", - "DE.Views.Settings.textAddress": "address", - "DE.Views.Settings.textAdvancedSettings": "Application Settings", - "DE.Views.Settings.textApplication": "Application", - "DE.Views.Settings.textAuthor": "Author", - "DE.Views.Settings.textBack": "Back", - "DE.Views.Settings.textBottom": "Bottom", - "DE.Views.Settings.textCentimeter": "Centimeter", - "DE.Views.Settings.textCollaboration": "Collaboration", - "DE.Views.Settings.textColorSchemes": "Color Schemes", - "DE.Views.Settings.textComment": "Comment", - "DE.Views.Settings.textCommentingDisplay": "Comments Display", - "DE.Views.Settings.textCreated": "Created", - "DE.Views.Settings.textCreateDate": "Creation date", - "DE.Views.Settings.textCustom": "Custom", - "DE.Views.Settings.textCustomSize": "Custom Size", - "DE.Views.Settings.textDisableAll": "Disable All", - "DE.Views.Settings.textDisableAllMacrosWithNotification": "Disable all macros with a notification", - "DE.Views.Settings.textDisableAllMacrosWithoutNotification": "Disable all macros without a notification", - "DE.Views.Settings.textDisplayComments": "Comments", - "DE.Views.Settings.textDisplayResolvedComments": "Resolved Comments", - "DE.Views.Settings.textDocInfo": "Document Info", - "DE.Views.Settings.textDocTitle": "Document Title", - "DE.Views.Settings.textDocumentFormats": "Document Formats", - "DE.Views.Settings.textDocumentSettings": "Document Settings", - "DE.Views.Settings.textDone": "Done", - "DE.Views.Settings.textDownload": "Download", - "DE.Views.Settings.textDownloadAs": "Download As...", - "DE.Views.Settings.textEditDoc": "Edit Document", - "DE.Views.Settings.textEmail": "email", - "DE.Views.Settings.textEnableAll": "Enable All", - "DE.Views.Settings.textEnableAllMacrosWithoutNotification": "Enable all macros without a notification", - "DE.Views.Settings.textFind": "Find", - "DE.Views.Settings.textFindAndReplace": "Find and Replace", - "DE.Views.Settings.textFormat": "Format", - "DE.Views.Settings.textHelp": "Help", - "DE.Views.Settings.textHiddenTableBorders": "Hidden Table Borders", - "DE.Views.Settings.textInch": "Inch", - "DE.Views.Settings.textLandscape": "Landscape", - "DE.Views.Settings.textLastModified": "Last Modified", - "DE.Views.Settings.textLastModifiedBy": "Last Modified By", - "DE.Views.Settings.textLeft": "Left", - "DE.Views.Settings.textLoading": "Loading...", - "DE.Views.Settings.textLocation": "Location", - "DE.Views.Settings.textMacrosSettings": "Macros Settings", - "DE.Views.Settings.textMargins": "Margins", - "DE.Views.Settings.textNoCharacters": "Nonprinting Characters", - "DE.Views.Settings.textOrientation": "Orientation", - "DE.Views.Settings.textOwner": "Owner", - "DE.Views.Settings.textPages": "Pages", - "DE.Views.Settings.textParagraphs": "Paragraphs", - "DE.Views.Settings.textPoint": "Point", - "DE.Views.Settings.textPortrait": "Portrait", - "DE.Views.Settings.textPoweredBy": "Powered by", - "DE.Views.Settings.textPrint": "Print", - "DE.Views.Settings.textReader": "Reader Mode", - "DE.Views.Settings.textReview": "Track Changes", - "DE.Views.Settings.textRight": "Right", - "DE.Views.Settings.textSettings": "Settings", - "DE.Views.Settings.textShowNotification": "Show Notification", - "DE.Views.Settings.textSpaces": "Spaces", - "DE.Views.Settings.textSpellcheck": "Spell Checking", - "DE.Views.Settings.textStatistic": "Statistic", - "DE.Views.Settings.textSubject": "Subject", - "DE.Views.Settings.textSymbols": "Symbols", - "DE.Views.Settings.textTel": "tel", - "DE.Views.Settings.textTitle": "Title", - "DE.Views.Settings.textTop": "Top", - "DE.Views.Settings.textUnitOfMeasurement": "Unit of Measurement", - "DE.Views.Settings.textUploaded": "Uploaded", - "DE.Views.Settings.textVersion": "Version", - "DE.Views.Settings.textWords": "Words", - "DE.Views.Settings.unknownText": "Unknown", - "DE.Views.Toolbar.textBack": "Back" + "Main" : { + "SDK": { + "Series": "Series", + "Diagram Title": "Chart Title", + "X Axis": "X Axis XAS", + "Y Axis": "Y Axis", + "Your text here": "Your text here", + "Footer": "Footer", + "Header": "Header", + "Normal": "Normal", + "No Spacing": "No Spacing", + "Heading 1": "Heading 1", + "Heading 2": "Heading 2", + "Heading 3": "Heading 3", + "Heading 4": "Heading 4", + "Heading 5": "Heading 5", + "Heading 6": "Heading 6", + "Heading 7": "Heading 7", + "Heading 8": "Heading 8", + "Heading 9": "Heading 9", + "Title": "Title", + "Subtitle": "Subtitle", + "Quote": "Quote", + "Intense Quote": "Intense Quote", + "List Paragraph": "List Paragraph", + "footnote text": "Footnote Text" + }, + "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.", + "titleLicenseExp": "License expired", + "warnLicenseExp": "Your license has expired. Please update your license and refresh the page.", + "errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", + "titleServerVersion": "Editor updated", + "notcriticalErrorTitle": "Warning", + "errorOpensource": "Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.", + "warnLicenseLimitedNoAccess": "License expired. You have no access to document editing functionality. Please contact your administrator.", + "warnLicenseLimitedRenewed": "License needs to be renewed. You have a limited access to document editing functionality.
          Please contact your administrator to get full access", + "warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only. Contact your administrator to learn more.", + "warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.", + "warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only. Contact %1 sales team for personal upgrade terms.", + "warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", + "textBuyNow": "Visit website", + "textContactUs": "Contact sales", + "textNoLicenseTitle": "License limit reached", + "textPaidFeature": "Paid feature", + "textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader. Please contact our Sales Department to get a quote.", + "textClose": "Close", + + "errorProcessSaveResult": "Saving is failed.", + "criticalErrorTitle": "Error", + "warnProcessRightsChange": "You have been denied the right to edit the file.", + "errorAccessDeny": "You are trying to perform an action you do not have rights for.
          Please contact your Document Server administrator.", + + "errorUpdateVersion": "The file version has been changed. The page will be reloaded.", + "titleUpdateVersion": "Version changed", + "textHasMacros": "The file contains automatic macros.
          Do you want to run macros?", + "textRemember": "Remember my choice", + "textYes": "Yes", + "textNo": "No" + }, + "Error": { + "criticalErrorTitle": "Error", + "unknownErrorText": "Unknown error.", + "convertationTimeoutText": "Convertation timeout exceeded.", + "openErrorText": "An error has occurred while opening the file", + "saveErrorText": "An error has occurred while saving the file", + "downloadErrorText": "Download failed.", + "uploadImageSizeMessage": "Maximium image size limit exceeded.", + "uploadImageExtMessage": "Unknown image format.", + "uploadImageFileCountMessage": "No images uploaded.", + "splitMaxRowsErrorText": "The number of rows 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", + "errorKeyEncrypt": "Unknown key descriptor", + "errorKeyExpire": "Key descriptor expired", + "errorUsersExceed": "Count of users was exceed", + "errorViewerDisconnect": "Connection is lost. You can still view the document,
          but will not be able to download until the connection is restored and page is reloaded.", + "errorFilePassProtect": "The file is password protected and could not be opened.", + "errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
          opening price, max price, min price, closing price.", + "errorDataRange": "Incorrect data range.", + "errorDatabaseConnection": "External error.
          Database connection error. Please, contact support.", + "errorUserDrop": "The file cannot be accessed right now.", + "errorMailMergeLoadFile": "Loading failed", + "errorMailMergeSaveFile": "Merge failed.", + "errorConnectToServer": " The document could not be saved. Please check connection settings or contact your administrator.
          When you click the 'OK' button, you will be prompted to download the document.", + "errorBadImageUrl": "Image url is incorrect", + "errorSessionAbsolute": "The document editing session has expired. Please reload the page.", + "errorSessionIdle": "The document has not been edited for quite a long time. Please reload the page.", + "errorSessionToken": "The connection to the server has been interrupted. Please reload the page.", + "errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", + "errorAccessDeny": "You are trying to perform an action you do not have rights for.
          Please contact your Document Server administrator.", + "errorEditingDownloadas": "An error occurred during the work with the document.
          Use the 'Download' option to save the file backup copy to your computer hard drive.", + "errorFileSizeExceed": "The file size exceeds the limitation set for your server.
          Please contact your Document Server administrator for details.", + "errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
          Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", + "errorDefaultMessage": "Error code: %1", + "criticalErrorExtText": "Press 'OK' to back to document list.", + "notcriticalErrorTitle": "Warning", + "scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page." + }, + "LongActions": { + "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...", + "applyChangesTitleText": "Loading Data", + "applyChangesTextText": "Loading data...", + "savePreparingText": "Preparing to save", + "savePreparingTitle": "Preparing to save. Please wait...", + "mailMergeLoadFileText": "Loading Data Source...", + "mailMergeLoadFileTitle": "Loading Data Source", + "downloadMergeTitle": "Downloading", + "downloadMergeText": "Downloading...", + "sendMergeTitle": "Sending Merge", + "sendMergeText": "Sending Merge...", + "waitText": "Please, wait...", + "txtEditingMode": "Set editing mode...", + "loadingDocumentTitleText": "Loading document", + "loadingDocumentTextText": "Loading document...", + "textLoadingDocument": "Loading document" + }, + "Toolbar": { + "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" + }, + "Common": { + "ThemeColorPalette": { + "textThemeColors": "Theme Colors", + "textStandartColors": "Standart Colors", + "textCustomColors": "Custom Colors" + }, + "Collaboration": { + "textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", + "notcriticalErrorTitle": "Warning", + "textCollaboration": "Collaboration", + "textBack": "Back", + "textUsers": "Users", + "textEditUser": "Users who are editing the file:", + "textComments": "Comments", + "textReview": "Review", + "textTrackChanges": "Track Changes", + "textDisplayMode": "Display Mode", + "textReviewChange": "Review Change", + "textAcceptAllChanges": "Accept All Changes", + "textRejectAllChanges": "Reject All Changes", + "textMarkup": "Markup", + "textFinal": "Final", + "textOriginal": "Original", + "textAllChangesEditing": "All changes (Editing)", + "textAllChangesAcceptedPreview": "All changes accepted (Preview)", + "textAllChangesRejectedPreview": "All changes rejected (Preview)", + "textAccept": "Accept", + "textReject": "Reject", + "textNoChanges": "There are no changes.", + "textDelete": "Delete", + "textInserted": "Inserted:", + "textDeleted": "Deleted:", + "textParaInserted": "Paragraph Inserted", + "textParaDeleted": "Paragraph Deleted", + "textFormatted": "Formatted", + "textParaFormatted": "Paragraph Formatted", + "textNot": "Not ", + "textBold": "Bold", + "textItalic": "Italic", + "textStrikeout": "Strikeout", + "textUnderline": "Underline", + "textColor": "Font color", + "textBaseline": "Baseline", + "textSuperScript": "Superscript", + "textSubScript": "Subscript", + "textHighlight": "Highlight color", + "textSpacing": "Spacing", + "textDStrikeout": "Double strikeout", + "textCaps": "All caps", + "textSmallCaps": "Small caps", + "textPosition": "Position", + "textShd": "Background color", + "textContextual": "Don't add interval between paragraphs of the same style", + "textNoContextual": "Add interval between paragraphs of the same style", + "textIndentLeft": "Indent left", + "textIndentRight": "Indent right", + "textFirstLine": "First line", + "textRight": "Align right", + "textLeft": "Align left", + "textCenter": "Align center", + "textJustify": "Align justify", + "textBreakBefore": "Page break before", + "textKeepNext": "Keep with next", + "textKeepLines": "Keep lines together", + "textNoBreakBefore": "No page break before", + "textNoKeepNext": "Don't keep with next", + "textNoKeepLines": "Don't keep lines together", + "textLineSpacing": "Line Spacing: ", + "textMultiple": "multiple", + "textAtLeast": "at least", + "textExact": "exactly", + "textSpacingBefore": "Spacing before", + "textSpacingAfter": "Spacing after", + "textAuto": "auto", + "textWidow": "Widow control", + "textNoWidow": "No widow control", + "textTabs": "Change tabs", + "textNum": "Change numbering", + "textEquation": "Equation", + "textImage": "Image", + "textChart": "Chart", + "textShape": "Shape", + "textTableChanged": "Table Settings Changed", + "textTableRowsAdd": "Table Rows Added", + "textTableRowsDel": "Table Rows Deleted", + "textParaMoveTo": "Moved:", + "textParaMoveFromUp": "Moved Up:", + "textParaMoveFromDown": "Moved Down:", + "textAddComment": "Add Comment", + "textCancel": "Cancel", + "textDone": "Done", + "textNoComments": "This document doesn't contain comments", + "textEdit": "Edit", + "textResolve": "Resolve", + "textReopen": "Reopen", + "textAddReply": "Add Reply", + "textDeleteComment": "Delete Comment", + "textMessageDeleteComment": "Do you really want to delete this comment?", + "textMessageDeleteReply": "Do you really want to delete this reply?", + "textDeleteReply": "Delete Reply", + "textEditComment": "Edit Comment", + "textEditReply": "Edit Reply" + } + }, + "ContextMenu": { + "menuViewComment": "View Comment", + "menuAddComment": "Add Comment", + "menuMerge": "Merge", + "menuSplit": "Split", + "menuDelete": "Delete", + "menuDeleteTable": "Delete Table", + "menuEdit": "Edit", + "menuAddLink": "Add Link", + "menuReviewChange": "Review Change", + "menuReview": "Review", + "menuOpenLink": "Open Link", + "menuMore": "More", + "menuCancel": "Cancel", + "textCopyCutPasteActions": "Copy, Cut and Paste Actions", + "errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", + "textDoNotShowAgain": "Don't show again", + "textColumns": "Columns", + "textRows": "Rows" + }, + "Settings": { + "textCancel": "Cancel", + "textSettings": "Settings", + "textDone": "Done", + "textFind": "Find", + "textFindAndReplace": "Find and Replace", + "textReaderMode": "Reader Mode", + "textDocumentSettings": "Document Settings", + "textApplicationSettings": "Application Settings", + "textDownload": "Download", + "textPrint": "Print", + "textDocumentInfo": "Document Info", + "textHelp": "Help", + "textAbout": "About", + "textOrientation": "Orientation", + "textPortrait": "Portrait", + "textLandscape": "Landscape", + "textFormat": "Format", + "textMargins": "Margins", + "textBack": "Back", + "textCustomSize": "Custom Size", + "textTop": "Top", + "textBottom": "Bottom", + "textLeft": "Left", + "textRight": "Right", + "textDocumentTitle": "Document Title", + "textOwner": "Owner", + "textUploaded": "Uploaded", + "textStatistic": "Statistic", + "textLastModifiedBy": "Last Modified By", + "textLastModified": "Last Modified", + "textApplication": "Application", + "textLoading": "Loading...", + "textAuthor": "Author", + "textUnitOfMeasurement": "Unit Of Measurement", + "textCentimeter": "Centimeter", + "textPoint": "Point", + "textInch": "Inch", + "textSpellcheck": "Spell Checking", + "textNoCharacters": "Nonprinting Characters", + "textHiddenTableBorders": "Hidden Table Borders", + "textCommentsDisplay": "Comments Display", + "textComments": "Comments", + "textResolvedComments": "Resolved Comments", + "textMacrosSettings": "Macros Settings", + "textDisableAll": "Disable All", + "textDisableAllMacrosWithoutNotification": "Disable all macros without notification", + "textShowNotification": "Show Notification", + "textDisableAllMacrosWithNotification": "Disable all macros with notification", + "textEnableAll": "Enable All", + "textEnableAllMacrosWithoutNotification": "Enable all macros without notification", + "textDownloadAs": "Download As", + "notcriticalErrorTitle": "Warning", + "textDownloadTxt": "If you continue saving in this format all features except the text will be lost. Are you sure you want to continue?", + "textDownloadRtf": "If you continue saving in this format some of the formatting might be lost. Are you sure you want to continue?", + "textColorSchemes": "Color Schemes", + "textLocation": "Location", + "textTitle": "Title", + "textSubject": "Subject", + "textComment": "Comment", + "textCreated": "Created", + "advTxtOptions": "Choose TXT Options", + "textEncoding": "Encoding", + "advDRMPassword": "Password", + "closeButtonText": "Close File", + "advDRMOptions": "Protected File", + "txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", + "textNoTextFound": "Text not found", + "textReplace": "Replace", + "textReplaceAll": "Replace All", + "textCaseSensitive": "Case Sensitive", + "textHighlightResults": "Highlight Results", + "textSearch": "Search", + "textMarginsW": "Left and right margins are too high for a given page width", + "textMarginsH": "Top and bottom margins are too high for a given page height", + "textCollaboration": "Collaboration", + "textFindAndReplaceAll": "Find and Replace All" + }, + "Edit": { + "textClose": "Close", + "textBack": "Back", + "textText": "Text", + "textParagraph": "Paragraph", + "textTable": "Table", + "textFooter": "Footer", + "textHeader": "Header", + "textShape": "Shape", + "textImage": "Image", + "textChart": "Chart", + "textHyperlink": "Hyperlink", + "textSelectObjectToEdit": "Select object to edit", + "textSettings": "Settings", + "textFontColor": "Font Color", + "textHighlightColor": "Highlight Color", + "textAdditionalFormatting": "Additional Formatting", + "textAdditional": "Additional", + "textBullets": "Bullets", + "textNumbers": "Numbers", + "textLineSpacing": "Line Spacing", + "textFonts": "Fonts", + "textAuto": "Auto", + "textPt": "pt", + "textSize": "Size", + "textStrikethrough": "Strikethrough", + "textDoubleStrikethrough": "Double Strikethrough", + "textSuperscript": "Superscript", + "textSubscript": "Subscript", + "textSmallCaps": "Small Caps", + "textAllCaps": "All Caps", + "textLetterSpacing": "Letter Spacing", + "textNone": "None", + "textBackground": "Background", + "textAdvancedSettings": "Advanced Settings", + "textParagraphStyles": "Paragraph Styles", + "textAdvanced": "Advanced", + "textDistanceFromText": "Distance from text", + "textBefore": "Before", + "textAfter": "After", + "textFirstLine": "FirstLine", + "textSpaceBetweenParagraphs": "Space Between Paragraphs", + "textPageBreakBefore": "Page Break Before", + "textOrphanControl": "Orphan Control", + "textKeepLinesTogether": "Keep Lines Together", + "textKeepWithNext": "Keep with Next", + "textStyle": "Style", + "textWrap": "Wrap", + "textReplace": "Replace", + "textReorder": "Reorder", + "textRemoveShape": "Remove Shape", + "textInline": "Inline", + "textSquare": "Square", + "textTight": "Tight", + "textThrough": "Through", + "textTopAndBottom": "Top and Bottom", + "textInFront": "In Front", + "textBehind": "Behind", + "textAlign": "Align", + "textMoveWithText": "Move with Text", + "textAllowOverlap": "Allow Overlap", + "textBringToForeground": "Bring to Foreground", + "textSendToBackground": "Send to Background", + "textMoveForward": "Move Forward", + "textMoveBackward": "Move Backward", + "textActualSize": "Actual Size", + "textRemoveImage": "Remove Image", + "textPictureFromLibrary": "Picture from Library", + "textPictureFromURL": "Picture from URL", + "textLinkSettings": "Link Settings", + "textAddress": "Address", + "textImageURL": "Image URL", + "textReplaceImage": "Replace Image", + "textEmptyImgUrl": "You need to specify image URL.", + "textNotUrl": "This field should be a URL in the format \"http://www.example.com\"", + "notcriticalErrorTitle": "Warning", + "textRemoveTable": "Remove Table", + "textTableOptions": "Table Options", + "textOptions": "Options", + "textRepeatAsHeaderRow": "Repeat as Header Row", + "textResizeToFitContent": "Resize to Fit Content", + "textCellMargins": "Cell Margins", + "textFlow": "Flow", + "textRemoveChart": "Remove Chart", + "textEditLink": "Edit Link", + "textRemoveLink": "Remove Link", + "textLink": "Link", + "textDisplay": "Display", + "textScreenTip": "Screen Tip", + "textPageNumbering": "Page Numbering", + "textDifferentFirstPage": "Different first page", + "textDifferentOddAndEvenPages": "Different odd and even pages", + "textLinkToPrevious": "Link to Previous", + "textContinueFromPreviousSection": "Continue from previous section", + "textStartAt": "Start at", + "textFontColors": "Font Colors", + "textAutomatic": "Automatic", + "textAddCustomColor": "Add Custom Color", + "textCustomColor": "Custom Color", + "textFill": "Fill", + "textBorder": "Border", + "textEffects": "Effects", + "textColor": "Color", + "textOpacity": "Opacity", + "textStyleOptions": "Style Options", + "textHeaderRow": "Header Row", + "textTotalRow": "Total Row", + "textBandedRow": "Banded Row", + "textFirstColumn": "First Column", + "textLastColumn": "Last Column", + "textBandedColumn": "Banded Column", + "textType": "Type", + "textNoStyles": "No styles for this type of charts." + }, + "Add": { + "textTable": "Table", + "textShape": "Shape", + "textImage": "Image", + "textOther": "Other", + "textTableSize": "Table Size", + "textColumns": "Columns", + "textRows": "Rows", + "textCancel": "Cancel", + "textPictureFromLibrary": "Picture from Library", + "textPictureFromURL": "Picture from URL", + "textLinkSettings": "LinkSettings", + "textBack": "Back", + "textEmptyImgUrl": "You need to specify image URL.", + "txtNotUrl": "This field should be a URL in the format \"http://www.example.com\"", + "notcriticalErrorTitle": "Warning", + "textAddress": "Address", + "textImageURL": "Image URL", + "textInsertImage": "Insert Image", + "textComment": "Comment", + "textLink": "Link", + "textPageNumber": "Page Number", + "textBreak": "Break", + "textFootnote": "Footnote", + "textAddLink": "Add Link", + "textDisplay": "Display", + "textScreenTip": "Screen Tip", + "textInsert": "Insert", + "textPosition": "Position", + "textLeftTop": "Left Top", + "textCenterTop": "Center Top", + "textRightTop": "Right Top", + "textLeftBottom": "Left Bottom", + "textCenterBottom": "Center Bottom", + "textRightBottom": "Right Bottom", + "textCurrentPosition": "Current Position", + "textPageBreak": "Page Break", + "textColumnBreak": "Column Break", + "textSectionBreak": "Section Break", + "textNextPage": "Next Page", + "textContinuousPage": "Continuous Page", + "textEvenPage": "Even Page", + "textOddPage": "Odd Page", + "textInsertFootnote": "Insert Footnote", + "textBottomOfPage": "Bottom Of Page", + "textBelowText": "Below Text", + "textStartAt": "Start At", + "textLocation": "Location", + "textFormat": "Format" + }, + "About": { + "textAbout": "About", + "textVersion": "Version", + "textEmail": "Email", + "textAddress": "Address", + "textTel": "Tel", + "textPoweredBy": "Powered By", + "textBack": "Back" + } } \ No newline at end of file diff --git a/apps/documenteditor/mobile/locale/ru.json b/apps/documenteditor/mobile/locale/ru.json index a4ca73d86..c23c75be0 100644 --- a/apps/documenteditor/mobile/locale/ru.json +++ b/apps/documenteditor/mobile/locale/ru.json @@ -1,607 +1,14 @@ { - "Common.Controllers.Collaboration.textAddReply": "Добавить ответ", - "Common.Controllers.Collaboration.textAtLeast": "минимум", - "Common.Controllers.Collaboration.textAuto": "авто", - "Common.Controllers.Collaboration.textBaseline": "Базовая линия", - "Common.Controllers.Collaboration.textBold": "Полужирный", - "Common.Controllers.Collaboration.textBreakBefore": "С новой страницы", - "Common.Controllers.Collaboration.textCancel": "Отмена", - "Common.Controllers.Collaboration.textCaps": "Все прописные", - "Common.Controllers.Collaboration.textCenter": "Выравнивание по центру", - "Common.Controllers.Collaboration.textChart": "Диаграмма", - "Common.Controllers.Collaboration.textColor": "Цвет шрифта", - "Common.Controllers.Collaboration.textContextual": "Не добавлять интервал между абзацами одного стиля", - "Common.Controllers.Collaboration.textDelete": "Удалить", - "Common.Controllers.Collaboration.textDeleteComment": "Удалить комментарий", - "Common.Controllers.Collaboration.textDeleted": "Удалено:", - "Common.Controllers.Collaboration.textDeleteReply": "Удалить ответ", - "Common.Controllers.Collaboration.textDone": "Готово", - "Common.Controllers.Collaboration.textDStrikeout": "Двойное зачёркивание", - "Common.Controllers.Collaboration.textEdit": "Редактировать", - "Common.Controllers.Collaboration.textEditUser": "Пользователи, редактирующие документ:", - "Common.Controllers.Collaboration.textEquation": "Уравнение", - "Common.Controllers.Collaboration.textExact": "точно", - "Common.Controllers.Collaboration.textFirstLine": "Первая строка", - "Common.Controllers.Collaboration.textFormatted": "Отформатировано", - "Common.Controllers.Collaboration.textHighlight": "Цвет выделения", - "Common.Controllers.Collaboration.textImage": "Рисунок", - "Common.Controllers.Collaboration.textIndentLeft": "Отступ слева", - "Common.Controllers.Collaboration.textIndentRight": "Отступ справа", - "Common.Controllers.Collaboration.textInserted": "Добавлено:", - "Common.Controllers.Collaboration.textItalic": "Курсив", - "Common.Controllers.Collaboration.textJustify": "Выравнивание по ширине", - "Common.Controllers.Collaboration.textKeepLines": "Не разрывать абзац", - "Common.Controllers.Collaboration.textKeepNext": "Не отрывать от следующего", - "Common.Controllers.Collaboration.textLeft": "Выравнивание по левому краю", - "Common.Controllers.Collaboration.textLineSpacing": "Междустрочный интервал: ", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Вы действительно хотите удалить этот комментарий?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Вы действительно хотите удалить этот ответ?", - "Common.Controllers.Collaboration.textMultiple": "множитель", - "Common.Controllers.Collaboration.textNoBreakBefore": "Не с новой страницы", - "Common.Controllers.Collaboration.textNoChanges": "Изменений нет.", - "Common.Controllers.Collaboration.textNoContextual": "Добавлять интервал между абзацами одного стиля", - "Common.Controllers.Collaboration.textNoKeepLines": "Разрешить разрывать абзац", - "Common.Controllers.Collaboration.textNoKeepNext": "Разрешить отрывать от следующего", - "Common.Controllers.Collaboration.textNot": "Не", - "Common.Controllers.Collaboration.textNoWidow": "Без запрета висячих строк", - "Common.Controllers.Collaboration.textNum": "Изменение нумерации", - "Common.Controllers.Collaboration.textParaDeleted": "Абзац удален ", - "Common.Controllers.Collaboration.textParaFormatted": "Абзац отформатирован", - "Common.Controllers.Collaboration.textParaInserted": "Абзац добавлен ", - "Common.Controllers.Collaboration.textParaMoveFromDown": "Перемещено вниз:", - "Common.Controllers.Collaboration.textParaMoveFromUp": "Перемещено вверх:", - "Common.Controllers.Collaboration.textParaMoveTo": "Перемещено:", - "Common.Controllers.Collaboration.textPosition": "Положение", - "Common.Controllers.Collaboration.textReopen": "Переоткрыть", - "Common.Controllers.Collaboration.textResolve": "Решить", - "Common.Controllers.Collaboration.textRight": "Выравнивание по правому краю", - "Common.Controllers.Collaboration.textShape": "Фигура", - "Common.Controllers.Collaboration.textShd": "Цвет фона", - "Common.Controllers.Collaboration.textSmallCaps": "Малые прописные", - "Common.Controllers.Collaboration.textSpacing": "Интервал", - "Common.Controllers.Collaboration.textSpacingAfter": "Интервал после абзаца", - "Common.Controllers.Collaboration.textSpacingBefore": "Интервал перед абзацем", - "Common.Controllers.Collaboration.textStrikeout": "Зачёркивание", - "Common.Controllers.Collaboration.textSubScript": "Подстрочный", - "Common.Controllers.Collaboration.textSuperScript": "Надстрочный", - "Common.Controllers.Collaboration.textTableChanged": "Изменены настройки таблицы", - "Common.Controllers.Collaboration.textTableRowsAdd": "Добавлены строки таблицы", - "Common.Controllers.Collaboration.textTableRowsDel": "Удалены строки таблицы", - "Common.Controllers.Collaboration.textTabs": "Изменение табуляции", - "Common.Controllers.Collaboration.textUnderline": "Подчёркнутый", - "Common.Controllers.Collaboration.textWidow": "Запрет висячих строк", - "Common.Controllers.Collaboration.textYes": "Да", - "Common.UI.ThemeColorPalette.textCustomColors": "Пользовательские цвета", - "Common.UI.ThemeColorPalette.textStandartColors": "Стандартные цвета", - "Common.UI.ThemeColorPalette.textThemeColors": "Цвета темы", - "Common.Utils.Metric.txtCm": "см", - "Common.Utils.Metric.txtPt": "пт", - "Common.Views.Collaboration.textAccept": "Принять", - "Common.Views.Collaboration.textAcceptAllChanges": "Принять все изменения", - "Common.Views.Collaboration.textAddReply": "Добавить ответ", - "Common.Views.Collaboration.textAllChangesAcceptedPreview": "Все изменения приняты (просмотр)", - "Common.Views.Collaboration.textAllChangesEditing": "Все изменения (редактирование)", - "Common.Views.Collaboration.textAllChangesRejectedPreview": "Все изменения отклонены (просмотр)", - "Common.Views.Collaboration.textBack": "Назад", - "Common.Views.Collaboration.textCancel": "Отмена", - "Common.Views.Collaboration.textChange": "Просмотр изменений", - "Common.Views.Collaboration.textCollaboration": "Совместная работа", - "Common.Views.Collaboration.textDisplayMode": "Отображение", - "Common.Views.Collaboration.textDone": "Готово", - "Common.Views.Collaboration.textEditReply": "Редактировать ответ", - "Common.Views.Collaboration.textEditUsers": "Пользователи", - "Common.Views.Collaboration.textEditСomment": "Редактировать комментарий", - "Common.Views.Collaboration.textFinal": "Измененный документ", - "Common.Views.Collaboration.textMarkup": "Изменения", - "Common.Views.Collaboration.textNoComments": "Этот документ не содержит комментариев", - "Common.Views.Collaboration.textOriginal": "Исходный документ", - "Common.Views.Collaboration.textReject": "Отклонить", - "Common.Views.Collaboration.textRejectAllChanges": "Отклонить все изменения", - "Common.Views.Collaboration.textReview": "Отслеживание изменений", - "Common.Views.Collaboration.textReviewing": "Рецензирование", - "Common.Views.Collaboration.textСomments": "Комментарии", - "DE.Controllers.AddContainer.textImage": "Рисунок", - "DE.Controllers.AddContainer.textOther": "Другое", - "DE.Controllers.AddContainer.textShape": "Фигура", - "DE.Controllers.AddContainer.textTable": "Таблица", - "DE.Controllers.AddImage.notcriticalErrorTitle": "Внимание", - "DE.Controllers.AddImage.textEmptyImgUrl": "Необходимо указать URL рисунка.", - "DE.Controllers.AddImage.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "DE.Controllers.AddOther.notcriticalErrorTitle": "Внимание", - "DE.Controllers.AddOther.textBelowText": "Под текстом", - "DE.Controllers.AddOther.textBottomOfPage": "Внизу страницы", - "DE.Controllers.AddOther.textCancel": "Отмена", - "DE.Controllers.AddOther.textContinue": "Продолжить", - "DE.Controllers.AddOther.textDelete": "Удалить", - "DE.Controllers.AddOther.textDeleteDraft": "Вы действительно хотите удалить черновик?", - "DE.Controllers.AddOther.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "DE.Controllers.AddTable.textCancel": "Отмена", - "DE.Controllers.AddTable.textColumns": "Столбцы", - "DE.Controllers.AddTable.textRows": "Строки", - "DE.Controllers.AddTable.textTableSize": "Размер таблицы", - "DE.Controllers.DocumentHolder.errorCopyCutPaste": "Операции копирования, вырезания и вставки с помощью контекстного меню будут выполняться только в текущем файле.", - "DE.Controllers.DocumentHolder.menuAddComment": "Добавить комментарий", - "DE.Controllers.DocumentHolder.menuAddLink": "Добавить ссылку", - "DE.Controllers.DocumentHolder.menuCopy": "Копировать", - "DE.Controllers.DocumentHolder.menuCut": "Вырезать", - "DE.Controllers.DocumentHolder.menuDelete": "Удалить", - "DE.Controllers.DocumentHolder.menuDeleteTable": "Удалить таблицу", - "DE.Controllers.DocumentHolder.menuEdit": "Редактировать", - "DE.Controllers.DocumentHolder.menuMerge": "Объединить ячейки", - "DE.Controllers.DocumentHolder.menuMore": "Ещё", - "DE.Controllers.DocumentHolder.menuOpenLink": "Перейти", - "DE.Controllers.DocumentHolder.menuPaste": "Вставить", - "DE.Controllers.DocumentHolder.menuReview": "Рецензирование", - "DE.Controllers.DocumentHolder.menuReviewChange": "Просмотр изменений", - "DE.Controllers.DocumentHolder.menuSplit": "Разделить ячейку", - "DE.Controllers.DocumentHolder.menuViewComment": "Просмотреть комментарий", - "DE.Controllers.DocumentHolder.sheetCancel": "Отмена", - "DE.Controllers.DocumentHolder.textCancel": "Отмена", - "DE.Controllers.DocumentHolder.textColumns": "Колонки", - "DE.Controllers.DocumentHolder.textCopyCutPasteActions": "Операции копирования, вырезания и вставки", - "DE.Controllers.DocumentHolder.textDoNotShowAgain": "Больше не показывать", - "DE.Controllers.DocumentHolder.textGuest": "Гость", - "DE.Controllers.DocumentHolder.textRows": "Строки", - "DE.Controllers.EditContainer.textChart": "Диаграмма", - "DE.Controllers.EditContainer.textFooter": "Колонтитул", - "DE.Controllers.EditContainer.textHeader": "Колонтитул", - "DE.Controllers.EditContainer.textHyperlink": "Гиперссылка", - "DE.Controllers.EditContainer.textImage": "Рисунок", - "DE.Controllers.EditContainer.textParagraph": "Абзац", - "DE.Controllers.EditContainer.textSettings": "Настройки", - "DE.Controllers.EditContainer.textShape": "Фигура", - "DE.Controllers.EditContainer.textTable": "Таблица", - "DE.Controllers.EditContainer.textText": "Текст", - "DE.Controllers.EditHyperlink.notcriticalErrorTitle": "Внимание", - "DE.Controllers.EditHyperlink.textEmptyImgUrl": "Необходимо указать URL рисунка.", - "DE.Controllers.EditHyperlink.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "DE.Controllers.EditImage.notcriticalErrorTitle": "Внимание", - "DE.Controllers.EditImage.textEmptyImgUrl": "Необходимо указать URL рисунка.", - "DE.Controllers.EditImage.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "DE.Controllers.EditText.textAuto": "Авто", - "DE.Controllers.EditText.textFonts": "Шрифты", - "DE.Controllers.EditText.textPt": "пт", - "DE.Controllers.Main.advDRMEnterPassword": "Введите пароль:", - "DE.Controllers.Main.advDRMOptions": "Защищенный файл", - "DE.Controllers.Main.advDRMPassword": "Пароль", - "DE.Controllers.Main.advTxtOptions": "Выбрать параметры текстового файла", - "DE.Controllers.Main.applyChangesTextText": "Загрузка данных...", - "DE.Controllers.Main.applyChangesTitleText": "Загрузка данных", - "DE.Controllers.Main.closeButtonText": "Закрыть файл", - "DE.Controllers.Main.convertationTimeoutText": "Превышено время ожидания конвертации.", - "DE.Controllers.Main.criticalErrorExtText": "Нажмите 'OK' для возврата к списку документов.", - "DE.Controllers.Main.criticalErrorTitle": "Ошибка", - "DE.Controllers.Main.downloadErrorText": "Загрузка не удалась.", - "DE.Controllers.Main.downloadMergeText": "Загрузка...", - "DE.Controllers.Main.downloadMergeTitle": "Загрузка", - "DE.Controllers.Main.downloadTextText": "Загрузка документа...", - "DE.Controllers.Main.downloadTitleText": "Загрузка документа", - "DE.Controllers.Main.errorAccessDeny": "Вы пытаетесь выполнить действие, на которое у вас нет прав.
          Пожалуйста, обратитесь к администратору Сервера документов.", - "DE.Controllers.Main.errorBadImageUrl": "Неправильный URL-адрес рисунка", - "DE.Controllers.Main.errorCoAuthoringDisconnect": "Подключение к серверу прервано. Редактирование недоступно.", - "DE.Controllers.Main.errorConnectToServer": "Не удается сохранить документ. Проверьте параметры подключения или обратитесь к вашему администратору.
          Когда вы нажмете на кнопку 'OK', вам будет предложено скачать документ.", - "DE.Controllers.Main.errorDatabaseConnection": "Внешняя ошибка.
          Ошибка подключения к базе данных. Пожалуйста, обратитесь в службу технической поддержки.", - "DE.Controllers.Main.errorDataEncrypted": "Получены зашифрованные изменения, их нельзя расшифровать.", - "DE.Controllers.Main.errorDataRange": "Некорректный диапазон данных.", - "DE.Controllers.Main.errorDefaultMessage": "Код ошибки: %1", - "DE.Controllers.Main.errorEditingDownloadas": "В ходе работы с документом произошла ошибка.
          Используйте опцию 'Скачать', чтобы сохранить резервную копию файла на жестком диске компьютера.", - "DE.Controllers.Main.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.", - "DE.Controllers.Main.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.
          Обратитесь к администратору Сервера документов для получения дополнительной информации.", - "DE.Controllers.Main.errorKeyEncrypt": "Неизвестный дескриптор ключа", - "DE.Controllers.Main.errorKeyExpire": "Срок действия дескриптора ключа истек", - "DE.Controllers.Main.errorMailMergeLoadFile": "Загрузка документа не удалась. Выберите другой файл.", - "DE.Controllers.Main.errorMailMergeSaveFile": "Не удалось выполнить слияние.", - "DE.Controllers.Main.errorOpensource": "Используя бесплатную версию Community, вы можете открывать документы только на просмотр. Для доступа к мобильным веб-редакторам требуется коммерческая лицензия.", - "DE.Controllers.Main.errorProcessSaveResult": "Не удалось завершить сохранение.", - "DE.Controllers.Main.errorServerVersion": "Версия редактора была обновлена. Страница будет перезагружена, чтобы применить изменения.", - "DE.Controllers.Main.errorSessionAbsolute": "Время сеанса редактирования документа истекло. Пожалуйста, обновите страницу.", - "DE.Controllers.Main.errorSessionIdle": "Документ долгое время не редактировался. Пожалуйста, обновите страницу.", - "DE.Controllers.Main.errorSessionToken": "Подключение к серверу было прервано. Пожалуйста, обновите страницу.", - "DE.Controllers.Main.errorStockChart": "Неверный порядок строк. Чтобы создать биржевую диаграмму, расположите данные на листе в следующем порядке:
          цена открытия, максимальная цена, минимальная цена, цена закрытия.", - "DE.Controllers.Main.errorUpdateVersion": "Версия файла была изменена. Страница будет перезагружена.", - "DE.Controllers.Main.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.
          Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.", - "DE.Controllers.Main.errorUserDrop": "В настоящий момент файл недоступен.", - "DE.Controllers.Main.errorUsersExceed": "Превышено количество пользователей", - "DE.Controllers.Main.errorViewerDisconnect": "Подключение прервано. Вы можете просматривать документ,
          но не сможете скачать его до восстановления подключения и обновления страницы.", - "DE.Controllers.Main.leavePageText": "В документе есть несохраненные изменения. Нажмите 'Остаться на странице', чтобы дождаться автосохранения документа. Нажмите 'Уйти со страницы', чтобы сбросить все несохраненные изменения.", - "DE.Controllers.Main.loadFontsTextText": "Загрузка данных...", - "DE.Controllers.Main.loadFontsTitleText": "Загрузка данных", - "DE.Controllers.Main.loadFontTextText": "Загрузка данных...", - "DE.Controllers.Main.loadFontTitleText": "Загрузка данных", - "DE.Controllers.Main.loadImagesTextText": "Загрузка рисунков...", - "DE.Controllers.Main.loadImagesTitleText": "Загрузка рисунков", - "DE.Controllers.Main.loadImageTextText": "Загрузка рисунка...", - "DE.Controllers.Main.loadImageTitleText": "Загрузка рисунка", - "DE.Controllers.Main.loadingDocumentTextText": "Загрузка документа...", - "DE.Controllers.Main.loadingDocumentTitleText": "Загрузка документа", - "DE.Controllers.Main.mailMergeLoadFileText": "Загрузка источника данных...", - "DE.Controllers.Main.mailMergeLoadFileTitle": "Загрузка источника данных", - "DE.Controllers.Main.notcriticalErrorTitle": "Внимание", - "DE.Controllers.Main.openErrorText": "При открытии файла произошла ошибка.", - "DE.Controllers.Main.openTextText": "Открытие документа...", - "DE.Controllers.Main.openTitleText": "Открытие документа", - "DE.Controllers.Main.printTextText": "Печать документа...", - "DE.Controllers.Main.printTitleText": "Печать документа", - "DE.Controllers.Main.saveErrorText": "При сохранении файла произошла ошибка.", - "DE.Controllers.Main.savePreparingText": "Подготовка к сохранению", - "DE.Controllers.Main.savePreparingTitle": "Подготовка к сохранению. Пожалуйста, подождите...", - "DE.Controllers.Main.saveTextText": "Сохранение документа...", - "DE.Controllers.Main.saveTitleText": "Сохранение документа", - "DE.Controllers.Main.scriptLoadError": "Слишком медленное подключение, некоторые компоненты не удалось загрузить. Пожалуйста, обновите страницу.", - "DE.Controllers.Main.sendMergeText": "Отправка результатов слияния...", - "DE.Controllers.Main.sendMergeTitle": "Отправка результатов слияния", - "DE.Controllers.Main.splitDividerErrorText": "Число строк должно являться делителем для %1", - "DE.Controllers.Main.splitMaxColsErrorText": "Число столбцов должно быть меньше, чем %1", - "DE.Controllers.Main.splitMaxRowsErrorText": "Число строк должно быть меньше, чем %1", - "DE.Controllers.Main.textAnonymous": "Анонимный пользователь", - "DE.Controllers.Main.textBack": "Назад", - "DE.Controllers.Main.textBuyNow": "Перейти на сайт", - "DE.Controllers.Main.textCancel": "Отмена", - "DE.Controllers.Main.textClose": "Закрыть", - "DE.Controllers.Main.textContactUs": "Отдел продаж", - "DE.Controllers.Main.textCustomLoader": "Обратите внимание, что по условиям лицензии у вас нет прав изменять экран, отображаемый при загрузке.
          Пожалуйста, обратитесь в наш отдел продаж, чтобы сделать запрос.", - "DE.Controllers.Main.textDone": "Готово", - "DE.Controllers.Main.textGuest": "Гость", - "DE.Controllers.Main.textHasMacros": "Файл содержит автозапускаемые макросы.
          Хотите запустить макросы?", - "DE.Controllers.Main.textLoadingDocument": "Загрузка документа", - "DE.Controllers.Main.textNo": "Нет", - "DE.Controllers.Main.textNoLicenseTitle": "Лицензионное ограничение", - "DE.Controllers.Main.textOK": "OK", - "DE.Controllers.Main.textPaidFeature": "Платная функция", - "DE.Controllers.Main.textPassword": "Пароль", - "DE.Controllers.Main.textPreloader": "Загрузка...", - "DE.Controllers.Main.textRemember": "Запомнить мой выбор для всех файлов", - "DE.Controllers.Main.textTryUndoRedo": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.", - "DE.Controllers.Main.textUsername": "Имя пользователя", - "DE.Controllers.Main.textYes": "Да", - "DE.Controllers.Main.titleLicenseExp": "Истек срок действия лицензии", - "DE.Controllers.Main.titleServerVersion": "Редактор обновлен", - "DE.Controllers.Main.titleUpdateVersion": "Версия изменилась", - "DE.Controllers.Main.txtAbove": "выше", - "DE.Controllers.Main.txtArt": "Введите ваш текст", - "DE.Controllers.Main.txtBelow": "ниже", - "DE.Controllers.Main.txtCurrentDocument": "Текущий документ", - "DE.Controllers.Main.txtDiagramTitle": "Заголовок диаграммы", - "DE.Controllers.Main.txtEditingMode": "Установка режима редактирования...", - "DE.Controllers.Main.txtEvenPage": "С четной страницы", - "DE.Controllers.Main.txtFirstPage": "Первая страница", - "DE.Controllers.Main.txtFooter": "Нижний колонтитул", - "DE.Controllers.Main.txtHeader": "Верхний колонтитул", - "DE.Controllers.Main.txtOddPage": "С нечетной страницы", - "DE.Controllers.Main.txtOnPage": "на странице", - "DE.Controllers.Main.txtProtected": "Как только вы введете пароль и откроете файл, текущий пароль к файлу будет сброшен", - "DE.Controllers.Main.txtSameAsPrev": "Как в предыдущем", - "DE.Controllers.Main.txtSection": "-Раздел", - "DE.Controllers.Main.txtSeries": "Ряд", - "DE.Controllers.Main.txtStyle_footnote_text": "Текст сноски", - "DE.Controllers.Main.txtStyle_Heading_1": "Заголовок 1", - "DE.Controllers.Main.txtStyle_Heading_2": "Заголовок 2", - "DE.Controllers.Main.txtStyle_Heading_3": "Заголовок 3", - "DE.Controllers.Main.txtStyle_Heading_4": "Заголовок 4", - "DE.Controllers.Main.txtStyle_Heading_5": "Заголовок 5", - "DE.Controllers.Main.txtStyle_Heading_6": "Заголовок 6", - "DE.Controllers.Main.txtStyle_Heading_7": "Заголовок 7", - "DE.Controllers.Main.txtStyle_Heading_8": "Заголовок 8", - "DE.Controllers.Main.txtStyle_Heading_9": "Заголовок 9", - "DE.Controllers.Main.txtStyle_Intense_Quote": "Выделенная цитата", - "DE.Controllers.Main.txtStyle_List_Paragraph": "Абзац списка", - "DE.Controllers.Main.txtStyle_No_Spacing": "Без интервала", - "DE.Controllers.Main.txtStyle_Normal": "Обычный", - "DE.Controllers.Main.txtStyle_Quote": "Цитата", - "DE.Controllers.Main.txtStyle_Subtitle": "Подзаголовок", - "DE.Controllers.Main.txtStyle_Title": "Название", - "DE.Controllers.Main.txtXAxis": "Ось X", - "DE.Controllers.Main.txtYAxis": "Ось Y", - "DE.Controllers.Main.unknownErrorText": "Неизвестная ошибка.", - "DE.Controllers.Main.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.", - "DE.Controllers.Main.uploadImageExtMessage": "Неизвестный формат рисунка.", - "DE.Controllers.Main.uploadImageFileCountMessage": "Ни одного рисунка не загружено.", - "DE.Controllers.Main.uploadImageSizeMessage": "Превышен максимальный размер рисунка.", - "DE.Controllers.Main.uploadImageTextText": "Загрузка рисунка...", - "DE.Controllers.Main.uploadImageTitleText": "Загрузка рисунка", - "DE.Controllers.Main.waitText": "Пожалуйста, подождите...", - "DE.Controllers.Main.warnLicenseExceeded": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт только на просмотр.
          Свяжитесь с администратором, чтобы узнать больше.", - "DE.Controllers.Main.warnLicenseExp": "Истек срок действия лицензии.
          Обновите лицензию, а затем обновите страницу.", - "DE.Controllers.Main.warnLicenseLimitedNoAccess": "Истек срок действия лицензии.
          Нет доступа к функциональности редактирования документов.
          Пожалуйста, обратитесь к администратору.", - "DE.Controllers.Main.warnLicenseLimitedRenewed": "Необходимо обновить лицензию.
          У вас ограниченный доступ к функциональности редактирования документов.
          Пожалуйста, обратитесь к администратору, чтобы получить полный доступ", - "DE.Controllers.Main.warnLicenseUsersExceeded": "Вы достигли лимита на количество пользователей редакторов %1.
          Свяжитесь с администратором, чтобы узнать больше.", - "DE.Controllers.Main.warnNoLicense": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт на просмотр.
          Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.", - "DE.Controllers.Main.warnNoLicenseUsers": "Вы достигли лимита на одновременные подключения к редакторам %1.
          Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.", - "DE.Controllers.Main.warnProcessRightsChange": "Вам было отказано в праве на редактирование этого файла.", - "DE.Controllers.Search.textNoTextFound": "Текст не найден", - "DE.Controllers.Search.textReplaceAll": "Заменить все", - "DE.Controllers.Settings.notcriticalErrorTitle": "Внимание", - "DE.Controllers.Settings.textCustomSize": "Особый размер", - "DE.Controllers.Settings.txtLoading": "Загрузка...", - "DE.Controllers.Settings.unknownText": "Неизвестно", - "DE.Controllers.Settings.warnDownloadAs": "Если Вы продолжите сохранение в этот формат, весь функционал, кроме текста, будет потерян.
          Вы действительно хотите продолжить?", - "DE.Controllers.Settings.warnDownloadAsRTF": "Если вы продолжите сохранение в этот формат, часть форматирования может быть потеряна.
          Вы действительно хотите продолжить?", - "DE.Controllers.Toolbar.dlgLeaveMsgText": "В документе есть несохраненные изменения. Нажмите 'Остаться на странице', чтобы дождаться автосохранения документа. Нажмите 'Уйти со страницы', чтобы сбросить все несохраненные изменения.", - "DE.Controllers.Toolbar.dlgLeaveTitleText": "Вы выходите из приложения", - "DE.Controllers.Toolbar.leaveButtonText": "Уйти со страницы", - "DE.Controllers.Toolbar.stayButtonText": "Остаться на странице", - "DE.Views.AddImage.textAddress": "Адрес", - "DE.Views.AddImage.textBack": "Назад", - "DE.Views.AddImage.textFromLibrary": "Рисунок из библиотеки", - "DE.Views.AddImage.textFromURL": "Рисунок по URL", - "DE.Views.AddImage.textImageURL": "URL рисунка", - "DE.Views.AddImage.textInsertImage": "Вставить рисунок", - "DE.Views.AddImage.textLinkSettings": "Настройки ссылки", - "DE.Views.AddOther.textAddComment": "Добавить комментарий", - "DE.Views.AddOther.textAddLink": "Добавить ссылку", - "DE.Views.AddOther.textBack": "Назад", - "DE.Views.AddOther.textBreak": "Разрыв", - "DE.Views.AddOther.textCenterBottom": "Снизу по центру", - "DE.Views.AddOther.textCenterTop": "Сверху по центру", - "DE.Views.AddOther.textColumnBreak": "Разрыв колонки", - "DE.Views.AddOther.textComment": "Комментарий", - "DE.Views.AddOther.textContPage": "На текущей странице", - "DE.Views.AddOther.textCurrentPos": "Текущая позиция", - "DE.Views.AddOther.textDisplay": "Отобразить", - "DE.Views.AddOther.textDone": "Готово", - "DE.Views.AddOther.textEvenPage": "С четной страницы", - "DE.Views.AddOther.textFootnote": "Сноска", - "DE.Views.AddOther.textFormat": "Формат", - "DE.Views.AddOther.textInsert": "Вставить", - "DE.Views.AddOther.textInsertFootnote": "Вставить сноску", - "DE.Views.AddOther.textLeftBottom": "Слева снизу", - "DE.Views.AddOther.textLeftTop": "Слева сверху", - "DE.Views.AddOther.textLink": "Ссылка", - "DE.Views.AddOther.textLocation": "Положение", - "DE.Views.AddOther.textNextPage": "Со следующей страницы", - "DE.Views.AddOther.textOddPage": "С нечетной страницы", - "DE.Views.AddOther.textPageBreak": "Разрыв страницы", - "DE.Views.AddOther.textPageNumber": "Номер страницы", - "DE.Views.AddOther.textPosition": "Положение", - "DE.Views.AddOther.textRightBottom": "Снизу справа", - "DE.Views.AddOther.textRightTop": "Справа сверху", - "DE.Views.AddOther.textSectionBreak": "Разрыв раздела", - "DE.Views.AddOther.textStartFrom": "Начать с", - "DE.Views.AddOther.textTip": "Подсказка", - "DE.Views.EditChart.textAddCustomColor": "Добавить пользовательский цвет", - "DE.Views.EditChart.textAlign": "Выравнивание", - "DE.Views.EditChart.textBack": "Назад", - "DE.Views.EditChart.textBackward": "Перенести назад", - "DE.Views.EditChart.textBehind": "За текстом", - "DE.Views.EditChart.textBorder": "Граница", - "DE.Views.EditChart.textColor": "Цвет", - "DE.Views.EditChart.textCustomColor": "Пользовательский цвет", - "DE.Views.EditChart.textDistanceText": "Расстояние до текста", - "DE.Views.EditChart.textFill": "Заливка", - "DE.Views.EditChart.textForward": "Перенести вперед", - "DE.Views.EditChart.textInFront": "Перед текстом", - "DE.Views.EditChart.textInline": "В тексте", - "DE.Views.EditChart.textMoveText": "Перемещать с текстом", - "DE.Views.EditChart.textOverlap": "Разрешить перекрытие", - "DE.Views.EditChart.textRemoveChart": "Удалить диаграмму", - "DE.Views.EditChart.textReorder": "Порядок", - "DE.Views.EditChart.textSize": "Толщина", - "DE.Views.EditChart.textSquare": "Вокруг рамки", - "DE.Views.EditChart.textStyle": "Стиль", - "DE.Views.EditChart.textThrough": "Сквозное", - "DE.Views.EditChart.textTight": "По контуру", - "DE.Views.EditChart.textToBackground": "Перенести на задний план", - "DE.Views.EditChart.textToForeground": "Перенести на передний план", - "DE.Views.EditChart.textTopBottom": "Сверху и снизу", - "DE.Views.EditChart.textType": "Тип", - "DE.Views.EditChart.textWrap": "Стиль обтекания", - "DE.Views.EditHeader.textDiffFirst": "Особый для первой страницы", - "DE.Views.EditHeader.textDiffOdd": "Разные для четных и нечетных", - "DE.Views.EditHeader.textFrom": "Начать с", - "DE.Views.EditHeader.textPageNumbering": "Нумерация страниц", - "DE.Views.EditHeader.textPrev": "Продолжить", - "DE.Views.EditHeader.textSameAs": "Связать с предыдущим", - "DE.Views.EditHyperlink.textDisplay": "Отобразить", - "DE.Views.EditHyperlink.textEdit": "Редактировать ссылку", - "DE.Views.EditHyperlink.textLink": "Ссылка", - "DE.Views.EditHyperlink.textRemove": "Удалить ссылку", - "DE.Views.EditHyperlink.textTip": "Подсказка", - "DE.Views.EditImage.textAddress": "Адрес", - "DE.Views.EditImage.textAlign": "Выравнивание", - "DE.Views.EditImage.textBack": "Назад", - "DE.Views.EditImage.textBackward": "Перенести назад", - "DE.Views.EditImage.textBehind": "За текстом", - "DE.Views.EditImage.textDefault": "Реальный размер", - "DE.Views.EditImage.textDistanceText": "Расстояние до текста", - "DE.Views.EditImage.textForward": "Перенести вперед", - "DE.Views.EditImage.textFromLibrary": "Рисунок из библиотеки", - "DE.Views.EditImage.textFromURL": "Рисунок по URL", - "DE.Views.EditImage.textImageURL": "URL рисунка", - "DE.Views.EditImage.textInFront": "Перед текстом", - "DE.Views.EditImage.textInline": "В тексте", - "DE.Views.EditImage.textLinkSettings": "Настройки ссылки", - "DE.Views.EditImage.textMoveText": "Перемещать с текстом", - "DE.Views.EditImage.textOverlap": "Разрешить перекрытие", - "DE.Views.EditImage.textRemove": "Удалить рисунок", - "DE.Views.EditImage.textReorder": "Порядок", - "DE.Views.EditImage.textReplace": "Заменить", - "DE.Views.EditImage.textReplaceImg": "Заменить рисунок", - "DE.Views.EditImage.textSquare": "Вокруг рамки", - "DE.Views.EditImage.textThrough": "Сквозное", - "DE.Views.EditImage.textTight": "По контуру", - "DE.Views.EditImage.textToBackground": "Перенести на задний план", - "DE.Views.EditImage.textToForeground": "Перенести на передний план", - "DE.Views.EditImage.textTopBottom": "Сверху и снизу", - "DE.Views.EditImage.textWrap": "Стиль обтекания", - "DE.Views.EditParagraph.textAddCustomColor": "Добавить пользовательский цвет", - "DE.Views.EditParagraph.textAdvanced": "Дополнительно", - "DE.Views.EditParagraph.textAdvSettings": "Дополнительно", - "DE.Views.EditParagraph.textAfter": "После", - "DE.Views.EditParagraph.textAuto": "Авто", - "DE.Views.EditParagraph.textBack": "Назад", - "DE.Views.EditParagraph.textBackground": "Фон", - "DE.Views.EditParagraph.textBefore": "Перед", - "DE.Views.EditParagraph.textCustomColor": "Пользовательский цвет", - "DE.Views.EditParagraph.textFirstLine": "Первая строка", - "DE.Views.EditParagraph.textFromText": "Расстояние до текста", - "DE.Views.EditParagraph.textKeepLines": "Не разрывать абзац", - "DE.Views.EditParagraph.textKeepNext": "Не отрывать от следующего", - "DE.Views.EditParagraph.textOrphan": "Запрет висячих строк", - "DE.Views.EditParagraph.textPageBreak": "С новой страницы", - "DE.Views.EditParagraph.textPrgStyles": "Стили абзаца", - "DE.Views.EditParagraph.textSpaceBetween": "Интервал между абзацами", - "DE.Views.EditShape.textAddCustomColor": "Добавить пользовательский цвет", - "DE.Views.EditShape.textAlign": "Выравнивание", - "DE.Views.EditShape.textBack": "Назад", - "DE.Views.EditShape.textBackward": "Перенести назад", - "DE.Views.EditShape.textBehind": "За текстом", - "DE.Views.EditShape.textBorder": "Граница", - "DE.Views.EditShape.textColor": "Цвет", - "DE.Views.EditShape.textCustomColor": "Пользовательский цвет", - "DE.Views.EditShape.textEffects": "Эффекты", - "DE.Views.EditShape.textFill": "Заливка", - "DE.Views.EditShape.textForward": "Перенести вперед", - "DE.Views.EditShape.textFromText": "Расстояние до текста", - "DE.Views.EditShape.textInFront": "Перед текстом", - "DE.Views.EditShape.textInline": "В тексте", - "DE.Views.EditShape.textOpacity": "Прозрачность", - "DE.Views.EditShape.textOverlap": "Разрешить перекрытие", - "DE.Views.EditShape.textRemoveShape": "Удалить фигуру", - "DE.Views.EditShape.textReorder": "Порядок", - "DE.Views.EditShape.textReplace": "Заменить", - "DE.Views.EditShape.textSize": "Толщина", - "DE.Views.EditShape.textSquare": "Вокруг рамки", - "DE.Views.EditShape.textStyle": "Стиль", - "DE.Views.EditShape.textThrough": "Сквозное", - "DE.Views.EditShape.textTight": "По контуру", - "DE.Views.EditShape.textToBackground": "Перенести на задний план", - "DE.Views.EditShape.textToForeground": "Перенести на передний план", - "DE.Views.EditShape.textTopAndBottom": "Сверху и снизу", - "DE.Views.EditShape.textWithText": "Перемещать с текстом", - "DE.Views.EditShape.textWrap": "Стиль обтекания", - "DE.Views.EditTable.textAddCustomColor": "Добавить пользовательский цвет", - "DE.Views.EditTable.textAlign": "Выравнивание", - "DE.Views.EditTable.textBack": "Назад", - "DE.Views.EditTable.textBandedColumn": "Чередовать столбцы", - "DE.Views.EditTable.textBandedRow": "Чередовать строки", - "DE.Views.EditTable.textBorder": "Граница", - "DE.Views.EditTable.textCellMargins": "Поля ячейки", - "DE.Views.EditTable.textColor": "Цвет", - "DE.Views.EditTable.textCustomColor": "Пользовательский цвет", - "DE.Views.EditTable.textFill": "Заливка", - "DE.Views.EditTable.textFirstColumn": "Первый столбец", - "DE.Views.EditTable.textFlow": "Плавающая", - "DE.Views.EditTable.textFromText": "Расстояние до текста", - "DE.Views.EditTable.textHeaderRow": "Строка заголовка", - "DE.Views.EditTable.textInline": "В тексте", - "DE.Views.EditTable.textLastColumn": "Последний столбец", - "DE.Views.EditTable.textOptions": "Параметры", - "DE.Views.EditTable.textRemoveTable": "Удалить таблицу", - "DE.Views.EditTable.textRepeatHeader": "Повторять как заголовок", - "DE.Views.EditTable.textResizeFit": "По размеру содержимого", - "DE.Views.EditTable.textSize": "Толщина", - "DE.Views.EditTable.textStyle": "Стиль", - "DE.Views.EditTable.textStyleOptions": "Настройки стиля", - "DE.Views.EditTable.textTableOptions": "Настройки таблицы", - "DE.Views.EditTable.textTotalRow": "Строка итогов", - "DE.Views.EditTable.textWithText": "Перемещать с текстом", - "DE.Views.EditTable.textWrap": "Стиль обтекания", - "DE.Views.EditText.textAddCustomColor": "Добавить пользовательский цвет", - "DE.Views.EditText.textAdditional": "Дополнительно", - "DE.Views.EditText.textAdditionalFormat": "Дополнительно", - "DE.Views.EditText.textAllCaps": "Все прописные", - "DE.Views.EditText.textAutomatic": "Автоматический", - "DE.Views.EditText.textBack": "Назад", - "DE.Views.EditText.textBullets": "Маркеры", - "DE.Views.EditText.textCharacterBold": "Ж", - "DE.Views.EditText.textCharacterItalic": "К", - "DE.Views.EditText.textCharacterStrikethrough": "Т", - "DE.Views.EditText.textCharacterUnderline": "Ч", - "DE.Views.EditText.textCustomColor": "Пользовательский цвет", - "DE.Views.EditText.textDblStrikethrough": "Двойное зачёркивание", - "DE.Views.EditText.textDblSuperscript": "Надстрочные", - "DE.Views.EditText.textFontColor": "Цвет шрифта", - "DE.Views.EditText.textFontColors": "Цвета шрифта", - "DE.Views.EditText.textFonts": "Шрифты", - "DE.Views.EditText.textHighlightColor": "Цвет выделения", - "DE.Views.EditText.textHighlightColors": "Цвета выделения", - "DE.Views.EditText.textLetterSpacing": "Интервал", - "DE.Views.EditText.textLineSpacing": "Междустрочный интервал", - "DE.Views.EditText.textNone": "Нет", - "DE.Views.EditText.textNumbers": "Нумерация", - "DE.Views.EditText.textSize": "Размер", - "DE.Views.EditText.textSmallCaps": "Малые прописные", - "DE.Views.EditText.textStrikethrough": "Зачёркивание", - "DE.Views.EditText.textSubscript": "Подстрочные", - "DE.Views.Search.textCase": "С учетом регистра", - "DE.Views.Search.textDone": "Готово", - "DE.Views.Search.textFind": "Поиск", - "DE.Views.Search.textFindAndReplace": "Поиск и замена", - "DE.Views.Search.textHighlight": "Выделить результаты", - "DE.Views.Search.textReplace": "Заменить", - "DE.Views.Search.textSearch": "Найти", - "DE.Views.Settings.textAbout": "О программе", - "DE.Views.Settings.textAddress": "адрес", - "DE.Views.Settings.textAdvancedSettings": "Настройки приложения", - "DE.Views.Settings.textApplication": "Приложение", - "DE.Views.Settings.textAuthor": "Автор", - "DE.Views.Settings.textBack": "Назад", - "DE.Views.Settings.textBottom": "Нижнее", - "DE.Views.Settings.textCentimeter": "Сантиметр", - "DE.Views.Settings.textCollaboration": "Совместная работа", - "DE.Views.Settings.textColorSchemes": "Цветовые схемы", - "DE.Views.Settings.textComment": "Комментарий", - "DE.Views.Settings.textCommentingDisplay": "Отображение комментариев", - "DE.Views.Settings.textCreated": "Создан", - "DE.Views.Settings.textCreateDate": "Дата создания", - "DE.Views.Settings.textCustom": "Особый", - "DE.Views.Settings.textCustomSize": "Особый размер", - "DE.Views.Settings.textDisableAll": "Отключить все", - "DE.Views.Settings.textDisableAllMacrosWithNotification": "Отключить все макросы с уведомлением", - "DE.Views.Settings.textDisableAllMacrosWithoutNotification": "Отключить все макросы без уведомления", - "DE.Views.Settings.textDisplayComments": "Комментарии", - "DE.Views.Settings.textDisplayResolvedComments": "Решенные комментарии", - "DE.Views.Settings.textDocInfo": "Информация о документе", - "DE.Views.Settings.textDocTitle": "Название документа", - "DE.Views.Settings.textDocumentFormats": "Размеры страницы", - "DE.Views.Settings.textDocumentSettings": "Настройки документа", - "DE.Views.Settings.textDone": "Готово", - "DE.Views.Settings.textDownload": "Скачать", - "DE.Views.Settings.textDownloadAs": "Скачать как...", - "DE.Views.Settings.textEditDoc": "Редактировать", - "DE.Views.Settings.textEmail": "email", - "DE.Views.Settings.textEnableAll": "Включить все", - "DE.Views.Settings.textEnableAllMacrosWithoutNotification": "Включить все макросы без уведомления", - "DE.Views.Settings.textFind": "Поиск", - "DE.Views.Settings.textFindAndReplace": "Поиск и замена", - "DE.Views.Settings.textFormat": "Формат", - "DE.Views.Settings.textHelp": "Справка", - "DE.Views.Settings.textHiddenTableBorders": "Скрытые границы таблиц", - "DE.Views.Settings.textInch": "Дюйм", - "DE.Views.Settings.textLandscape": "Альбомная", - "DE.Views.Settings.textLastModified": "Последнее изменение", - "DE.Views.Settings.textLastModifiedBy": "Автор последнего изменения", - "DE.Views.Settings.textLeft": "Левое", - "DE.Views.Settings.textLoading": "Загрузка...", - "DE.Views.Settings.textLocation": "Размещение", - "DE.Views.Settings.textMacrosSettings": "Настройки макросов", - "DE.Views.Settings.textMargins": "Поля", - "DE.Views.Settings.textNoCharacters": "Непечатаемые символы", - "DE.Views.Settings.textOrientation": "Ориентация страницы", - "DE.Views.Settings.textOwner": "Владелец", - "DE.Views.Settings.textPages": "Страницы", - "DE.Views.Settings.textParagraphs": "Абзацы", - "DE.Views.Settings.textPoint": "Пункт", - "DE.Views.Settings.textPortrait": "Книжная", - "DE.Views.Settings.textPoweredBy": "Разработано", - "DE.Views.Settings.textPrint": "Печать", - "DE.Views.Settings.textReader": "Режим чтения", - "DE.Views.Settings.textReview": "Отслеживать изменения", - "DE.Views.Settings.textRight": "Правое", - "DE.Views.Settings.textSettings": "Настройки", - "DE.Views.Settings.textShowNotification": "Показывать уведомление", - "DE.Views.Settings.textSpaces": "Пробелы", - "DE.Views.Settings.textSpellcheck": "Проверка орфографии", - "DE.Views.Settings.textStatistic": "Статистика", - "DE.Views.Settings.textSubject": "Тема", - "DE.Views.Settings.textSymbols": "Символы", - "DE.Views.Settings.textTel": "Телефон", - "DE.Views.Settings.textTitle": "Название", - "DE.Views.Settings.textTop": "Верхнее", - "DE.Views.Settings.textUnitOfMeasurement": "Единица измерения", - "DE.Views.Settings.textUploaded": "Загружен", - "DE.Views.Settings.textVersion": "Версия", - "DE.Views.Settings.textWords": "Слова", - "DE.Views.Settings.unknownText": "Неизвестно", - "DE.Views.Toolbar.textBack": "Назад" + "ViewSettings": { + "textSettings": "Настройки", + "textDone": "Закрыть", + "textFindAndReplace": "Найти и заменить", + "textDocumentSettings": "Настройки документа", + "textApplicationSettings": "Настройки приложения", + "textDownload": "Скачать", + "textPrint": "Печать", + "textDocumentInfo": "Информация о документе", + "textHelp": "Помощь", + "textAbout": "О программе" + } } \ No newline at end of file diff --git a/apps/documenteditor/mobile/resources/css/app-ios.css b/apps/documenteditor/mobile/resources/css/app-ios.css deleted file mode 100644 index 33440b872..000000000 --- a/apps/documenteditor/mobile/resources/css/app-ios.css +++ /dev/null @@ -1,7798 +0,0 @@ -html, -body, -.framework7-root { - position: relative; - height: 100%; - width: 100%; - overflow-x: hidden; -} -body { - font-family: -apple-system, SF UI Text, Helvetica Neue, Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; - color: #000; - font-size: 14px; - line-height: 1.4; - width: 100%; - -webkit-text-size-adjust: 100%; - background: #fff; - overflow: hidden; -} -.framework7-root { - overflow: hidden; -} -@media all and (width: 1024px) and (height: 691px) and (orientation: landscape) { - html, - body, - .framework7-root { - height: 671px; - } -} -@media all and (width: 1024px) and (height: 692px) and (orientation: landscape) { - html, - body, - .framework7-root { - height: 672px; - } -} -* { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -a, -input, -textarea, -select { - outline: 0; -} -a { - text-decoration: none; - color: #446995; -} -p { - margin: 1em 0; -} -/* === Grid === */ -.row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.row > [class*="col-"] { - box-sizing: border-box; -} -.row .col-auto { - width: 100%; -} -.row .col-100 { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); -} -.row.no-gutter .col-100 { - width: 100%; -} -.row .col-95 { - width: 95%; - width: -webkit-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); -} -.row.no-gutter .col-95 { - width: 95%; -} -.row .col-90 { - width: 90%; - width: -webkit-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); -} -.row.no-gutter .col-90 { - width: 90%; -} -.row .col-85 { - width: 85%; - width: -webkit-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); -} -.row.no-gutter .col-85 { - width: 85%; -} -.row .col-80 { - width: 80%; - width: -webkit-calc((100% - 15px*0.25) / 1.25); - width: calc((100% - 15px*0.25) / 1.25); -} -.row.no-gutter .col-80 { - width: 80%; -} -.row .col-75 { - width: 75%; - width: -webkit-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); -} -.row.no-gutter .col-75 { - width: 75%; -} -.row .col-70 { - width: 70%; - width: -webkit-calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); -} -.row.no-gutter .col-70 { - width: 70%; -} -.row .col-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); -} -.row.no-gutter .col-66 { - width: 66.66666666666666%; -} -.row .col-65 { - width: 65%; - width: -webkit-calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); -} -.row.no-gutter .col-65 { - width: 65%; -} -.row .col-60 { - width: 60%; - width: -webkit-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); -} -.row.no-gutter .col-60 { - width: 60%; -} -.row .col-55 { - width: 55%; - width: -webkit-calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); -} -.row.no-gutter .col-55 { - width: 55%; -} -.row .col-50 { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); -} -.row.no-gutter .col-50 { - width: 50%; -} -.row .col-45 { - width: 45%; - width: -webkit-calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); -} -.row.no-gutter .col-45 { - width: 45%; -} -.row .col-40 { - width: 40%; - width: -webkit-calc((100% - 15px*1.5) / 2.5); - width: calc((100% - 15px*1.5) / 2.5); -} -.row.no-gutter .col-40 { - width: 40%; -} -.row .col-35 { - width: 35%; - width: -webkit-calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 15px*1.8571428571428572) / 2.857142857142857); -} -.row.no-gutter .col-35 { - width: 35%; -} -.row .col-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); -} -.row.no-gutter .col-33 { - width: 33.333333333333336%; -} -.row .col-30 { - width: 30%; - width: -webkit-calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); -} -.row.no-gutter .col-30 { - width: 30%; -} -.row .col-25 { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); -} -.row.no-gutter .col-25 { - width: 25%; -} -.row .col-20 { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); -} -.row.no-gutter .col-20 { - width: 20%; -} -.row .col-15 { - width: 15%; - width: -webkit-calc((100% - 15px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 15px*5.666666666666667) / 6.666666666666667); -} -.row.no-gutter .col-15 { - width: 15%; -} -.row .col-10 { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); -} -.row.no-gutter .col-10 { - width: 10%; -} -.row .col-5 { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); -} -.row.no-gutter .col-5 { - width: 5%; -} -.row .col-auto:nth-last-child(1), -.row .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); -} -.row.no-gutter .col-auto:nth-last-child(1), -.row.no-gutter .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; -} -.row .col-auto:nth-last-child(2), -.row .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); -} -.row.no-gutter .col-auto:nth-last-child(2), -.row.no-gutter .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; -} -.row .col-auto:nth-last-child(3), -.row .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); -} -.row.no-gutter .col-auto:nth-last-child(3), -.row.no-gutter .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; -} -.row .col-auto:nth-last-child(4), -.row .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); -} -.row.no-gutter .col-auto:nth-last-child(4), -.row.no-gutter .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; -} -.row .col-auto:nth-last-child(5), -.row .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); -} -.row.no-gutter .col-auto:nth-last-child(5), -.row.no-gutter .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; -} -.row .col-auto:nth-last-child(6), -.row .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 15px*5) / 6); - width: calc((100% - 15px*5) / 6); -} -.row.no-gutter .col-auto:nth-last-child(6), -.row.no-gutter .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; -} -.row .col-auto:nth-last-child(7), -.row .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 15px*6) / 7); - width: calc((100% - 15px*6) / 7); -} -.row.no-gutter .col-auto:nth-last-child(7), -.row.no-gutter .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; -} -.row .col-auto:nth-last-child(8), -.row .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 15px*7) / 8); - width: calc((100% - 15px*7) / 8); -} -.row.no-gutter .col-auto:nth-last-child(8), -.row.no-gutter .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; -} -.row .col-auto:nth-last-child(9), -.row .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 15px*8) / 9); - width: calc((100% - 15px*8) / 9); -} -.row.no-gutter .col-auto:nth-last-child(9), -.row.no-gutter .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; -} -.row .col-auto:nth-last-child(10), -.row .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); -} -.row.no-gutter .col-auto:nth-last-child(10), -.row.no-gutter .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; -} -.row .col-auto:nth-last-child(11), -.row .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 15px*10) / 11); - width: calc((100% - 15px*10) / 11); -} -.row.no-gutter .col-auto:nth-last-child(11), -.row.no-gutter .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; -} -.row .col-auto:nth-last-child(12), -.row .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 15px*11) / 12); - width: calc((100% - 15px*11) / 12); -} -.row.no-gutter .col-auto:nth-last-child(12), -.row.no-gutter .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; -} -.row .col-auto:nth-last-child(13), -.row .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 15px*12) / 13); - width: calc((100% - 15px*12) / 13); -} -.row.no-gutter .col-auto:nth-last-child(13), -.row.no-gutter .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; -} -.row .col-auto:nth-last-child(14), -.row .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 15px*13) / 14); - width: calc((100% - 15px*13) / 14); -} -.row.no-gutter .col-auto:nth-last-child(14), -.row.no-gutter .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; -} -.row .col-auto:nth-last-child(15), -.row .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 15px*14) / 15); - width: calc((100% - 15px*14) / 15); -} -.row.no-gutter .col-auto:nth-last-child(15), -.row.no-gutter .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; -} -.row .col-auto:nth-last-child(16), -.row .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 15px*15) / 16); - width: calc((100% - 15px*15) / 16); -} -.row.no-gutter .col-auto:nth-last-child(16), -.row.no-gutter .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; -} -.row .col-auto:nth-last-child(17), -.row .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 15px*16) / 17); - width: calc((100% - 15px*16) / 17); -} -.row.no-gutter .col-auto:nth-last-child(17), -.row.no-gutter .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; -} -.row .col-auto:nth-last-child(18), -.row .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 15px*17) / 18); - width: calc((100% - 15px*17) / 18); -} -.row.no-gutter .col-auto:nth-last-child(18), -.row.no-gutter .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; -} -.row .col-auto:nth-last-child(19), -.row .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 15px*18) / 19); - width: calc((100% - 15px*18) / 19); -} -.row.no-gutter .col-auto:nth-last-child(19), -.row.no-gutter .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; -} -.row .col-auto:nth-last-child(20), -.row .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); -} -.row.no-gutter .col-auto:nth-last-child(20), -.row.no-gutter .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; -} -.row .col-auto:nth-last-child(21), -.row .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 15px*20) / 21); - width: calc((100% - 15px*20) / 21); -} -.row.no-gutter .col-auto:nth-last-child(21), -.row.no-gutter .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; -} -@media all and (min-width: 768px) { - .row .tablet-100 { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); - } - .row.no-gutter .tablet-100 { - width: 100%; - } - .row .tablet-95 { - width: 95%; - width: -webkit-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - } - .row.no-gutter .tablet-95 { - width: 95%; - } - .row .tablet-90 { - width: 90%; - width: -webkit-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - } - .row.no-gutter .tablet-90 { - width: 90%; - } - .row .tablet-85 { - width: 85%; - width: -webkit-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - } - .row.no-gutter .tablet-85 { - width: 85%; - } - .row .tablet-80 { - width: 80%; - width: -webkit-calc((100% - 15px*0.25) / 1.25); - width: calc((100% - 15px*0.25) / 1.25); - } - .row.no-gutter .tablet-80 { - width: 80%; - } - .row .tablet-75 { - width: 75%; - width: -webkit-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - } - .row.no-gutter .tablet-75 { - width: 75%; - } - .row .tablet-70 { - width: 70%; - width: -webkit-calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - } - .row.no-gutter .tablet-70 { - width: 70%; - } - .row .tablet-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - } - .row.no-gutter .tablet-66 { - width: 66.66666666666666%; - } - .row .tablet-65 { - width: 65%; - width: -webkit-calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - } - .row.no-gutter .tablet-65 { - width: 65%; - } - .row .tablet-60 { - width: 60%; - width: -webkit-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - } - .row.no-gutter .tablet-60 { - width: 60%; - } - .row .tablet-55 { - width: 55%; - width: -webkit-calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - } - .row.no-gutter .tablet-55 { - width: 55%; - } - .row .tablet-50 { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); - } - .row.no-gutter .tablet-50 { - width: 50%; - } - .row .tablet-45 { - width: 45%; - width: -webkit-calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - } - .row.no-gutter .tablet-45 { - width: 45%; - } - .row .tablet-40 { - width: 40%; - width: -webkit-calc((100% - 15px*1.5) / 2.5); - width: calc((100% - 15px*1.5) / 2.5); - } - .row.no-gutter .tablet-40 { - width: 40%; - } - .row .tablet-35 { - width: 35%; - width: -webkit-calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - } - .row.no-gutter .tablet-35 { - width: 35%; - } - .row .tablet-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); - } - .row.no-gutter .tablet-33 { - width: 33.333333333333336%; - } - .row .tablet-30 { - width: 30%; - width: -webkit-calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - } - .row.no-gutter .tablet-30 { - width: 30%; - } - .row .tablet-25 { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); - } - .row.no-gutter .tablet-25 { - width: 25%; - } - .row .tablet-20 { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); - } - .row.no-gutter .tablet-20 { - width: 20%; - } - .row .tablet-15 { - width: 15%; - width: -webkit-calc((100% - 15px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 15px*5.666666666666667) / 6.666666666666667); - } - .row.no-gutter .tablet-15 { - width: 15%; - } - .row .tablet-10 { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); - } - .row.no-gutter .tablet-10 { - width: 10%; - } - .row .tablet-5 { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); - } - .row.no-gutter .tablet-5 { - width: 5%; - } - .row .tablet-auto:nth-last-child(1), - .row .tablet-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); - } - .row.no-gutter .tablet-auto:nth-last-child(1), - .row.no-gutter .tablet-auto:nth-last-child(1) ~ .tablet-auto { - width: 100%; - } - .row .tablet-auto:nth-last-child(2), - .row .tablet-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); - } - .row.no-gutter .tablet-auto:nth-last-child(2), - .row.no-gutter .tablet-auto:nth-last-child(2) ~ .tablet-auto { - width: 50%; - } - .row .tablet-auto:nth-last-child(3), - .row .tablet-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); - } - .row.no-gutter .tablet-auto:nth-last-child(3), - .row.no-gutter .tablet-auto:nth-last-child(3) ~ .tablet-auto { - width: 33.33333333%; - } - .row .tablet-auto:nth-last-child(4), - .row .tablet-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); - } - .row.no-gutter .tablet-auto:nth-last-child(4), - .row.no-gutter .tablet-auto:nth-last-child(4) ~ .tablet-auto { - width: 25%; - } - .row .tablet-auto:nth-last-child(5), - .row .tablet-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); - } - .row.no-gutter .tablet-auto:nth-last-child(5), - .row.no-gutter .tablet-auto:nth-last-child(5) ~ .tablet-auto { - width: 20%; - } - .row .tablet-auto:nth-last-child(6), - .row .tablet-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 15px*5) / 6); - width: calc((100% - 15px*5) / 6); - } - .row.no-gutter .tablet-auto:nth-last-child(6), - .row.no-gutter .tablet-auto:nth-last-child(6) ~ .tablet-auto { - width: 16.66666667%; - } - .row .tablet-auto:nth-last-child(7), - .row .tablet-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 15px*6) / 7); - width: calc((100% - 15px*6) / 7); - } - .row.no-gutter .tablet-auto:nth-last-child(7), - .row.no-gutter .tablet-auto:nth-last-child(7) ~ .tablet-auto { - width: 14.28571429%; - } - .row .tablet-auto:nth-last-child(8), - .row .tablet-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 15px*7) / 8); - width: calc((100% - 15px*7) / 8); - } - .row.no-gutter .tablet-auto:nth-last-child(8), - .row.no-gutter .tablet-auto:nth-last-child(8) ~ .tablet-auto { - width: 12.5%; - } - .row .tablet-auto:nth-last-child(9), - .row .tablet-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 15px*8) / 9); - width: calc((100% - 15px*8) / 9); - } - .row.no-gutter .tablet-auto:nth-last-child(9), - .row.no-gutter .tablet-auto:nth-last-child(9) ~ .tablet-auto { - width: 11.11111111%; - } - .row .tablet-auto:nth-last-child(10), - .row .tablet-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); - } - .row.no-gutter .tablet-auto:nth-last-child(10), - .row.no-gutter .tablet-auto:nth-last-child(10) ~ .tablet-auto { - width: 10%; - } - .row .tablet-auto:nth-last-child(11), - .row .tablet-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 15px*10) / 11); - width: calc((100% - 15px*10) / 11); - } - .row.no-gutter .tablet-auto:nth-last-child(11), - .row.no-gutter .tablet-auto:nth-last-child(11) ~ .tablet-auto { - width: 9.09090909%; - } - .row .tablet-auto:nth-last-child(12), - .row .tablet-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 15px*11) / 12); - width: calc((100% - 15px*11) / 12); - } - .row.no-gutter .tablet-auto:nth-last-child(12), - .row.no-gutter .tablet-auto:nth-last-child(12) ~ .tablet-auto { - width: 8.33333333%; - } - .row .tablet-auto:nth-last-child(13), - .row .tablet-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 15px*12) / 13); - width: calc((100% - 15px*12) / 13); - } - .row.no-gutter .tablet-auto:nth-last-child(13), - .row.no-gutter .tablet-auto:nth-last-child(13) ~ .tablet-auto { - width: 7.69230769%; - } - .row .tablet-auto:nth-last-child(14), - .row .tablet-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 15px*13) / 14); - width: calc((100% - 15px*13) / 14); - } - .row.no-gutter .tablet-auto:nth-last-child(14), - .row.no-gutter .tablet-auto:nth-last-child(14) ~ .tablet-auto { - width: 7.14285714%; - } - .row .tablet-auto:nth-last-child(15), - .row .tablet-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 15px*14) / 15); - width: calc((100% - 15px*14) / 15); - } - .row.no-gutter .tablet-auto:nth-last-child(15), - .row.no-gutter .tablet-auto:nth-last-child(15) ~ .tablet-auto { - width: 6.66666667%; - } - .row .tablet-auto:nth-last-child(16), - .row .tablet-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 15px*15) / 16); - width: calc((100% - 15px*15) / 16); - } - .row.no-gutter .tablet-auto:nth-last-child(16), - .row.no-gutter .tablet-auto:nth-last-child(16) ~ .tablet-auto { - width: 6.25%; - } - .row .tablet-auto:nth-last-child(17), - .row .tablet-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 15px*16) / 17); - width: calc((100% - 15px*16) / 17); - } - .row.no-gutter .tablet-auto:nth-last-child(17), - .row.no-gutter .tablet-auto:nth-last-child(17) ~ .tablet-auto { - width: 5.88235294%; - } - .row .tablet-auto:nth-last-child(18), - .row .tablet-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 15px*17) / 18); - width: calc((100% - 15px*17) / 18); - } - .row.no-gutter .tablet-auto:nth-last-child(18), - .row.no-gutter .tablet-auto:nth-last-child(18) ~ .tablet-auto { - width: 5.55555556%; - } - .row .tablet-auto:nth-last-child(19), - .row .tablet-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 15px*18) / 19); - width: calc((100% - 15px*18) / 19); - } - .row.no-gutter .tablet-auto:nth-last-child(19), - .row.no-gutter .tablet-auto:nth-last-child(19) ~ .tablet-auto { - width: 5.26315789%; - } - .row .tablet-auto:nth-last-child(20), - .row .tablet-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); - } - .row.no-gutter .tablet-auto:nth-last-child(20), - .row.no-gutter .tablet-auto:nth-last-child(20) ~ .tablet-auto { - width: 5%; - } - .row .tablet-auto:nth-last-child(21), - .row .tablet-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 15px*20) / 21); - width: calc((100% - 15px*20) / 21); - } - .row.no-gutter .tablet-auto:nth-last-child(21), - .row.no-gutter .tablet-auto:nth-last-child(21) ~ .tablet-auto { - width: 4.76190476%; - } -} -/* === Views === */ -.views, -.view { - position: relative; - width: 100%; - height: 100%; - z-index: 5000; -} -.views { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.view { - overflow: hidden; - box-sizing: border-box; -} -/* === Pages === */ -.pages { - position: relative; - width: 100%; - height: 100%; - overflow: hidden; - background: #000; -} -.page { - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #efeff4; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page.cached { - display: none; -} -.page-on-left { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); -} -.page-on-center .swipeback-page-shadow { - opacity: 1; -} -.page-on-right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} -.page-on-right .swipeback-page-shadow { - opacity: 0; -} -.page-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - box-sizing: border-box; - height: 100%; - position: relative; - z-index: 1; -} -.swipeback-page-shadow { - position: absolute; - right: 100%; - top: 0; - width: 16px; - height: 100%; - background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - z-index: -1; - content: ''; -} -html.android .swipeback-page-shadow { - display: none; - -webkit-animation: none; - animation: none; -} -.page-transitioning, -.page-transitioning .swipeback-page-shadow { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page-from-right-to-center:before, -.page-from-center-to-right:before { - position: absolute; - right: 100%; - top: 0; - width: 16px; - height: 100%; - background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - z-index: -1; - content: ''; -} -html.android .page-from-right-to-center:before, -html.android .page-from-center-to-right:before { - display: none; - -webkit-animation: none; - animation: none; -} -.page-from-right-to-center { - -webkit-animation: pageFromRightToCenter 400ms forwards; - animation: pageFromRightToCenter 400ms forwards; -} -.page-from-right-to-center:before { - -webkit-animation: pageFromRightToCenterShadow 400ms forwards; - animation: pageFromRightToCenterShadow 400ms forwards; -} -.page-from-center-to-right { - -webkit-animation: pageFromCenterToRight 400ms forwards; - animation: pageFromCenterToRight 400ms forwards; -} -.page-from-center-to-right:before { - -webkit-animation: pageFromCenterToRightShadow 400ms forwards; - animation: pageFromCenterToRightShadow 400ms forwards; -} -@-webkit-keyframes pageFromRightToCenter { - from { - -webkit-transform: translate3d(100%, 0, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromRightToCenter { - from { - transform: translate3d(100%, 0, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes pageFromRightToCenterShadow { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes pageFromRightToCenterShadow { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@-webkit-keyframes pageFromCenterToRight { - from { - -webkit-transform: translate3d(0, 0, 0); - } - to { - -webkit-transform: translate3d(100%, 0, 0); - } -} -@keyframes pageFromCenterToRight { - from { - transform: translate3d(0, 0, 0); - } - to { - transform: translate3d(100%, 0, 0); - } -} -@-webkit-keyframes pageFromCenterToRightShadow { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@keyframes pageFromCenterToRightShadow { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.page-from-center-to-left { - -webkit-animation: pageFromCenterToLeft 400ms forwards; - animation: pageFromCenterToLeft 400ms forwards; -} -.page-from-left-to-center { - -webkit-animation: pageFromLeftToCenter 400ms forwards; - animation: pageFromLeftToCenter 400ms forwards; -} -@-webkit-keyframes pageFromCenterToLeft { - from { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } - to { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - } -} -@keyframes pageFromCenterToLeft { - from { - transform: translate3d(0, 0, 0); - } - to { - opacity: 0.9; - transform: translate3d(-20%, 0, 0); - } -} -@-webkit-keyframes pageFromLeftToCenter { - from { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromLeftToCenter { - from { - transform: translate3d(-20%, 0, 0); - } - to { - opacity: 1; - transform: translate3d(0, 0, 0); - } -} -/* === Toolbars === */ -.navbar-inner, -.toolbar-inner { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - padding: 0 8px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.navbar-inner.cached { - display: none; -} -.navbar, -.toolbar { - height: 44px; - width: 100%; - box-sizing: border-box; - font-size: 17px; - position: relative; - margin: 0; - z-index: 500; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -.navbar b, -.toolbar b { - font-weight: 500; -} -html.ios-gt-8 .navbar b, -html.ios-gt-8 .toolbar b { - font-weight: 600; -} -.navbar, -.toolbar, -.subnavbar { - background: #f7f7f8; -} -.navbar a.link, -.toolbar a.link, -.subnavbar a.link { - line-height: 44px; - height: 44px; - text-decoration: none; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translateZ(0px); - transform: translateZ(0px); -} -html:not(.watch-active-state) .navbar a.link:active, -html:not(.watch-active-state) .toolbar a.link:active, -html:not(.watch-active-state) .subnavbar a.link:active, -.navbar a.link.active-state, -.toolbar a.link.active-state, -.subnavbar a.link.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.navbar a.link i + span, -.toolbar a.link i + span, -.subnavbar a.link i + span, -.navbar a.link i + i, -.toolbar a.link i + i, -.subnavbar a.link i + i, -.navbar a.link span + i, -.toolbar a.link span + i, -.subnavbar a.link span + i, -.navbar a.link span + span, -.toolbar a.link span + span, -.subnavbar a.link span + span { - margin-left: 7px; -} -.navbar a.icon-only, -.toolbar a.icon-only, -.subnavbar a.icon-only { - min-width: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - margin: 0; -} -.navbar i.icon, -.toolbar i.icon, -.subnavbar i.icon { - display: block; -} -.navbar { - left: 0; - top: 0; -} -.navbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .navbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .navbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.navbar:after { - backface-visibility: hidden; -} -.navbar.no-border:after { - display: none; -} -.navbar .center { - font-size: 17px; - font-weight: 500; - text-align: center; - margin: 0; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - line-height: 44px; - -webkit-flex-shrink: 10; - -ms-flex: 0 10 auto; - flex-shrink: 10; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -html.ios-gt-8 .navbar .center { - font-weight: 600; -} -.navbar .left, -.navbar .right { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar .left a + a, -.navbar .right a + a { - margin-left: 15px; -} -.navbar .left { - margin-right: 10px; -} -.navbar .right { - margin-left: 10px; -} -.navbar .right:first-child { - position: absolute; - right: 8px; - height: 100%; -} -.popup .navbar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.subnavbar { - height: 44px; - width: 100%; - position: absolute; - left: 0; - top: 100%; - margin-top: -1px; - z-index: 20; - box-sizing: border-box; - padding: 0 8px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.subnavbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .subnavbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .subnavbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.subnavbar.no-border:after { - display: none; -} -.navbar.no-border .subnavbar { - margin-top: 0; -} -.navbar-on-left .subnavbar, -.navbar-on-right .subnavbar { - pointer-events: none; -} -.navbar .subnavbar, -.page .subnavbar { - position: absolute; -} -.page > .subnavbar { - top: 0; - margin-top: 0; -} -.subnavbar > .buttons-row { - width: 100%; -} -.subnavbar .searchbar, -.subnavbar.searchbar { - position: absolute; -} -.subnavbar.searchbar, -.subnavbar .searchbar { - position: absolute; -} -.subnavbar .searchbar { - left: 0; - top: 0; -} -.toolbar { - left: 0; - bottom: 0; -} -.toolbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .toolbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .toolbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.toolbar.no-border:before { - display: none; -} -.toolbar a { - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -.tabbar { - color: #929292; - z-index: 5001; -} -.tabbar a { - color: #929292; -} -.tabbar a.active { - color: #446995; -} -.tabbar a.link { - line-height: 1.4; -} -.tabbar a.tab-link, -.tabbar a.link { - height: 100%; - width: 100%; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - overflow: visible; - -webkit-box-flex: 1; - -ms-flex: 1; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.tabbar i.icon { - height: 30px; -} -.tabbar-labels { - height: 50px; -} -.tabbar-labels a.tab-link, -.tabbar-labels a.link { - padding-top: 4px; - padding-bottom: 4px; - height: 100%; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.tabbar-labels a.tab-link i + span, -.tabbar-labels a.link i + span { - margin: 0; -} -.tabbar-labels span.tabbar-label { - line-height: 1; - display: block; - margin: 0; - letter-spacing: 0.01em; - font-size: 10px; - position: relative; - text-overflow: ellipsis; - white-space: nowrap; -} -.subnavbar input[type="text"], -.navbar input[type="text"], -.subnavbar input[type="password"], -.navbar input[type="password"], -.subnavbar input[type="search"], -.navbar input[type="search"], -.subnavbar input[type="email"], -.navbar input[type="email"], -.subnavbar input[type="tel"], -.navbar input[type="tel"], -.subnavbar input[type="url"], -.navbar input[type="url"] { - box-sizing: border-box; - width: 100%; - height: 28px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 5px; - font-family: inherit; - color: #000; - font-size: 14px; - font-weight: normal; - padding: 0 8px; - background-color: #fff; -} -@media all and (min-width: 768px) { - .tabbar .toolbar-inner { - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - } - .tabbar a.tab-link, - .tabbar a.link { - width: auto; - min-width: 105px; - } - .tabbar-labels { - height: 56px; - } - .tabbar-labels span.tabbar-label { - font-size: 14px; - } -} -.navbar-from-right-to-center .left, -.navbar-from-right-to-center .right, -.navbar-from-right-to-center .center, -.navbar-from-right-to-center .subnavbar, -.navbar-from-right-to-center .fading { - -webkit-animation: navbarElementFadeIn 400ms forwards; - animation: navbarElementFadeIn 400ms forwards; -} -.navbar-from-right-to-center .sliding { - opacity: 1; -} -.navbar-from-center-to-right .left, -.navbar-from-center-to-right .right, -.navbar-from-center-to-right .center, -.navbar-from-center-to-right .subnavbar, -.navbar-from-center-to-right .fading { - -webkit-animation: navbarElementFadeOut 400ms forwards; - animation: navbarElementFadeOut 400ms forwards; -} -.navbar-from-center-to-right .sliding { - opacity: 0; -} -.navbar-from-center-to-right .subnavbar.sliding { - opacity: 1; -} -@-webkit-keyframes navbarElementFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes navbarElementFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -.navbar-from-center-to-left .left, -.navbar-from-center-to-left .right, -.navbar-from-center-to-left .center, -.navbar-from-center-to-left .subnavbar, -.navbar-from-center-to-left .fading { - -webkit-animation: navbarElementFadeOut 400ms forwards; - animation: navbarElementFadeOut 400ms forwards; -} -.navbar-from-center-to-left .sliding { - opacity: 0; -} -.navbar-from-center-to-left .subnavbar.sliding { - opacity: 1; -} -.navbar-from-left-to-center .left, -.navbar-from-left-to-center .right, -.navbar-from-left-to-center .center, -.navbar-from-left-to-center .subnavbar, -.navbar-from-left-to-center .fading { - -webkit-animation: navbarElementFadeIn 400ms forwards; - animation: navbarElementFadeIn 400ms forwards; -} -.navbar-from-left-to-center .sliding { - opacity: 1; -} -.navbar-on-left .left, -.navbar-on-left .right, -.navbar-on-left .center, -.navbar-on-left .subnavbar, -.navbar-on-left .fading { - opacity: 0; -} -.navbar-on-left .sliding { - opacity: 0; -} -.navbar-on-left .subnavbar.sliding { - opacity: 1; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); -} -.navbar-on-right .left, -.navbar-on-right .right, -.navbar-on-right .center, -.navbar-on-right .subnavbar, -.navbar-on-right .fading { - opacity: 0; -} -.navbar-on-right .sliding { - opacity: 0; -} -.navbar-on-right .subnavbar.sliding { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} -@-webkit-keyframes navbarElementFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@keyframes navbarElementFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.navbar-from-right-to-center .left.sliding .back.link .icon, -.navbar-from-center-to-right .left.sliding .back.link .icon, -.navbar-from-center-to-left .left.sliding .back.link .icon, -.navbar-from-left-to-center .left.sliding .back.link .icon { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar-from-right-to-center .sliding, -.navbar-from-center-to-right .sliding, -.navbar-from-center-to-left .sliding, -.navbar-from-left-to-center .sliding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-animation: none; - animation: none; -} -/* === Relation between toolbar/navbar types and pages === */ -.page > .navbar, -.view > .navbar, -.views > .navbar, -.page > .toolbar, -.view > .toolbar, -.views > .toolbar { - position: absolute; -} -.subnavbar ~ .page-content { - padding-top: 44px; -} -.navbar-through .page-content, -.navbar-fixed .page-content { - padding-top: 44px; -} -.navbar-through .with-subnavbar .page-content, -.navbar-fixed .with-subnavbar .page-content, -.navbar-through .page-content.with-subnavbar, -.navbar-fixed .page-content.with-subnavbar, -.navbar-through .subnavbar ~ .page-content, -.navbar-fixed .subnavbar ~ .page-content { - padding-top: 88px; -} -.navbar-through .page .subnavbar, -.navbar-fixed .page .subnavbar, -.navbar-through.page .subnavbar, -.navbar-fixed.page .subnavbar { - top: 44px; -} -.toolbar-through .page-content, -.toolbar-fixed .page-content, -.tabbar-through .page-content, -.tabbar-fixed .page-content { - padding-bottom: 44px; -} -.tabbar-labels-fixed .page-content, -.tabbar-labels-through .page-content { - padding-bottom: 50px; -} -@media all and (min-width: 768px) { - .tabbar-labels-fixed .page-content, - .tabbar-labels-through .page-content { - padding-bottom: 56px; - } -} -.navbar.navbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar.navbar-hiding ~ .page-content .list-group-title, -.navbar.navbar-hiding ~ .pages .list-group-title, -.navbar.navbar-hiding ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .page-content .subnavbar, -.navbar.navbar-hiding ~ .pages .subnavbar, -.navbar.navbar-hiding ~ .page .subnavbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar.navbar-hidden ~ .page-content .list-group-title, -.navbar.navbar-hidden ~ .pages .list-group-title, -.navbar.navbar-hidden ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - top: -44px; -} -.navbar.navbar-hidden ~ .page-content .subnavbar, -.navbar.navbar-hidden ~ .pages .subnavbar, -.navbar.navbar-hidden ~ .page .subnavbar { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page.no-navbar .page-content { - padding-top: 0; -} -.page.no-navbar.with-subnavbar .page-content, -.with-subnavbar .page.no-navbar .page-content, -.page.no-navbar .page-content.with-subnavbar { - padding-top: 44px; -} -.toolbar.toolbar-hiding, -.tabbar.toolbar-hiding, -.toolbar.tabbar-hiding, -.tabbar.tabbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.page.no-toolbar .page-content, -.page.no-tabbar .page-content { - padding-bottom: 0; -} -/* === Search Bar === */ -.searchbar { - height: 44px; - width: 100%; - background: #c9c9ce; - box-sizing: border-box; - padding: 0 8px; - overflow: hidden; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.searchbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #b4b4b4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .searchbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .searchbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.searchbar .searchbar-input { - width: 100%; - height: 28px; - position: relative; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.searchbar input[type="search"] { - box-sizing: border-box; - width: 100%; - height: 28px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 5px; - font-family: inherit; - color: #000; - font-size: 14px; - font-weight: normal; - padding: 0 8px; - background-color: #fff; - padding: 0 28px; - height: 100%; - background-repeat: no-repeat; - background-position: 8px center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2013%2013'%20enable-background%3D'new%200%200%2013%2013'%3E%3Cg%3E%3Cpath%20fill%3D'%23939398'%20d%3D'M5%2C1c2.2%2C0%2C4%2C1.8%2C4%2C4S7.2%2C9%2C5%2C9S1%2C7.2%2C1%2C5S2.8%2C1%2C5%2C1%20M5%2C0C2.2%2C0%2C0%2C2.2%2C0%2C5s2.2%2C5%2C5%2C5s5-2.2%2C5-5S7.8%2C0%2C5%2C0%20L5%2C0z'%2F%3E%3C%2Fg%3E%3Cline%20stroke%3D'%23939398'%20stroke-miterlimit%3D'10'%20x1%3D'12.6'%20y1%3D'12.6'%20x2%3D'8.2'%20y2%3D'8.2'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 13px 13px; - background-size: 13px 13px; -} -.searchbar input[type="search"]::-webkit-input-placeholder { - color: #939398; - opacity: 1; -} -.searchbar input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -.searchbar .searchbar-clear { - position: absolute; - width: 28px; - height: 28px; - right: 0; - top: 0; - opacity: 0; - pointer-events: none; - background-position: center; - background-repeat: no-repeat; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2028%2028'%3E%3Ccircle%20cx%3D'14'%20cy%3D'14'%20r%3D'14'%20fill%3D'%238e8e93'%2F%3E%3Cline%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'8'%20y1%3D'8'%20x2%3D'20'%20y2%3D'20'%2F%3E%3Cline%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'20'%20y1%3D'8'%20x2%3D'8'%20y2%3D'20'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 14px 14px; - background-size: 14px 14px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - cursor: pointer; -} -.searchbar .searchbar-cancel { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - font-size: 17px; - cursor: pointer; - opacity: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 0; - pointer-events: none; - display: none; -} -.searchbar.searchbar-active .searchbar-cancel { - margin-left: 8px; - opacity: 1; - pointer-events: auto; -} -html:not(.watch-active-state) .searchbar.searchbar-active .searchbar-cancel:active, -.searchbar.searchbar-active .searchbar-cancel.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.searchbar.searchbar-not-empty .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 100; - opacity: 0; - pointer-events: none; - background: rgba(0, 0, 0, 0.4); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.searchbar-overlay.searchbar-overlay-active { - opacity: 1; - pointer-events: auto; -} -.searchbar-not-found { - display: none; -} -.hidden-by-searchbar, -.list-block .hidden-by-searchbar, -.list-block li.hidden-by-searchbar { - display: none; -} -.page > .searchbar { - position: absolute; - width: 100%; - left: 0; - top: 0; - z-index: 200; -} -.page > .searchbar ~ .page-content { - padding-top: 44px; -} -.navbar-fixed .page > .searchbar, -.navbar-through .page > .searchbar, -.navbar-fixed > .searchbar, -.navbar-through > .searchbar { - top: 44px; -} -.navbar-fixed .page > .searchbar ~ .page-content, -.navbar-through .page > .searchbar ~ .page-content, -.navbar-fixed > .searchbar ~ .page-content, -.navbar-through > .searchbar ~ .page-content { - padding-top: 88px; -} -/* === Message Bar === */ -.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background: #fff; -} -.messagebar:before { - display: none; -} -.messagebar textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #c8c8cd; - background: #fff; - border-radius: 17px; - box-shadow: none; - display: block; - padding: 6px 15px; - margin: 0; - width: 100%; - height: 34px; - color: #000; - font-size: 17px; - line-height: 20px; - font-family: inherit; - resize: none; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.messagebar .link { - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; -} -.messagebar .link.icon-only:first-child { - margin-left: -6px; -} -.messagebar .link:not(.icon-only) + textarea { - margin-left: 8px; -} -.messagebar textarea + .link { - margin-left: 8px; -} -.messagebar .link { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.messagebar ~ .page-content { - padding-bottom: 44px; -} -.page.no-toolbar .messagebar ~ .page-content { - padding-bottom: 44px; -} -.hidden-toolbar .messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -/* === Icons === */ -i.icon { - display: inline-block; - vertical-align: middle; - background-size: 100% auto; - background-position: center; - background-repeat: no-repeat; - font-style: normal; - position: relative; -} -i.icon.icon-back { - width: 12px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2012%2020'%3E%3Cpath%20d%3D'M10%2C0l2%2C2l-8%2C8l8%2C8l-2%2C2L0%2C10L10%2C0z'%20fill%3D'%23446995'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-forward { - width: 12px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2012%2020'%3E%3Cpath%20d%3D'M2%2C20l-2-2l8-8L0%2C2l2-2l10%2C10L2%2C20z'%20fill%3D'%23446995'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bars { - width: 21px; - height: 14px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2021%2014'%3E%3Cpath%20fill%3D'%23446995'%20d%3D'M0%2C0h2v2H0V0z%20M4%2C0h17v1H4V0z%20M0%2C6h2v2H0V6z%20M4%2C6h17v1H4V6z%20M0%2C12h2v2H0V12z%20M4%2C12h17v1H4V12z'%2F%3E%3C%2Fsvg%3E"); -} -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2ddpx) { - i.icon.icon-bars { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2042%2026'%3E%3Cpath%20fill%3D'%23446995'%20d%3D'M0%2C0h4v4H0V0z%20M8%2C1h34v2H8V1z%20M0%2C11h4v4H0V11z%20M8%2C12h34v2H8V12z%20M0%2C22h4v4H0V22z%20M8%2C23h34v2H8V23z'%2F%3E%3C%2Fsvg%3E"); - height: 13px; - } -} -i.icon.icon-camera { - width: 25px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2025%2020'%3E%3Cpath%20fill%3D'%238C8D92'%20d%3D'M13.3%2C5.5c-2.7%2C0-5%2C2.2-5%2C5s2.2%2C5%2C5%2C5c2.7%2C0%2C5-2.2%2C5-5S16%2C5.5%2C13.3%2C5.5z'%2F%3E%3Cpath%20fill%3D'%238C8D92'%20d%3D'M22.8%2C1.8h-3.3c-0.2-1.3-1-1.8-2-1.8H8.1c-1%2C0-1.8%2C0.4-2%2C1.8H2.8C1.4%2C1.8%2C0%2C2.8%2C0%2C4.2v12.6%20c0%2C1.4%2C1.4%2C2.5%2C2.8%2C2.5h20c1.4%2C0%2C2.2-1.1%2C2.2-2.5V4.2C25%2C2.8%2C24.2%2C1.8%2C22.8%2C1.8z%20M3.5%2C6.4C2.6%2C6.4%2C2%2C5.8%2C2%2C5c0-0.8%2C0.7-1.5%2C1.5-1.5%20S5%2C4.1%2C5%2C5C5%2C5.8%2C4.3%2C6.4%2C3.5%2C6.4z%20M13.3%2C16.8c-3.5%2C0-6.3-2.7-6.3-6.2c0-3.3%2C2.5-6.2%2C5.7-6.2h1.2c3.2%2C0%2C5.7%2C2.9%2C5.7%2C6.2%20C19.6%2C14.1%2C16.7%2C16.8%2C13.3%2C16.8z'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-f7 { - width: 29px; - height: 29px; - background-image: url("../img/i-f7-ios.png"); - border-radius: 6px; -} -i.icon.icon-next, -i.icon.icon-prev { - width: 15px; - height: 15px; -} -i.icon.icon-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2015%2015'%3E%3Cg%3E%3Cpath%20fill%3D'%23446995'%20d%3D'M1%2C1.6l11.8%2C5.8L1%2C13.4V1.6%20M0%2C0v15l15-7.6L0%2C0L0%2C0z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2015%2015'%3E%3Cg%3E%3Cpath%20fill%3D'%23446995'%20d%3D'M14%2C1.6v11.8L2.2%2C7.6L14%2C1.6%20M15%2C0L0%2C7.6L15%2C15V0L15%2C0z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 25px; - height: 25px; - font-size: 31px; - line-height: 20px; - text-align: center; - font-weight: 100; -} -.navbar .framework7-icons, -.navbar .f7-icons, -.toolbar .framework7-icons, -.toolbar .f7-icons { - font-size: 22px; -} -.tabbar .framework7-icons, -.tabbar .f7-icons, -.tabbar-labels .framework7-icons, -.tabbar-labels .f7-icons { - font-size: 25px; -} -/* === Content Block === */ -.content-block { - margin: 35px 0; - padding: 0 15px; - color: #6d6d72; - box-sizing: border-box; -} -.content-block.no-hairlines:before, -.content-block.no-hairlines ul:before, -.content-block.no-hairlines .content-block-inner:before { - display: none; -} -.content-block.no-hairlines:after, -.content-block.no-hairlines ul:after, -.content-block.no-hairlines .content-block-inner:after { - display: none; -} -.content-block-title { - position: relative; - overflow: hidden; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - line-height: 1; - color: #6d6d72; - margin: 35px 15px 10px; -} -.content-block-title + .list-block, -.content-block-title + .content-block, -.content-block-title + .card { - margin-top: 10px; -} -.content-block-inner { - background: #fff; - padding: 10px 15px; - margin-left: -15px; - width: 100%; - position: relative; - color: #000; -} -.content-block-inner:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .content-block-inner:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .content-block-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block.inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; -} -.content-block.inset .content-block-inner { - border-radius: 7px; -} -.content-block.inset .content-block-inner:before { - display: none; -} -.content-block.inset .content-block-inner:after { - display: none; -} -@media all and (min-width: 768px) { - .content-block.tablet-inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; - } - .content-block.tablet-inset .content-block-inner { - border-radius: 7px; - } - .content-block.tablet-inset .content-block-inner:before { - display: none; - } - .content-block.tablet-inset .content-block-inner:after { - display: none; - } -} -/* === Lists === */ -.list-block { - margin: 35px 0; - font-size: 17px; -} -.list-block ul { - background: #fff; - list-style: none; - padding: 0; - margin: 0; - position: relative; -} -.list-block ul:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block ul:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block ul:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul ul { - padding-left: 45px; -} -.list-block ul ul:before { - display: none; -} -.list-block ul ul:after { - display: none; -} -.list-block .align-top, -.list-block .align-top .item-content, -.list-block .align-top .item-inner { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.list-block.inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; -} -.list-block.inset .content-block-title { - margin-left: 0; - margin-right: 0; -} -.list-block.inset ul { - border-radius: 7px; -} -.list-block.inset ul:before { - display: none; -} -.list-block.inset ul:after { - display: none; -} -.list-block.inset li:first-child > a { - border-radius: 7px 7px 0 0; -} -.list-block.inset li:last-child > a { - border-radius: 0 0 7px 7px; -} -.list-block.inset li:first-child:last-child > a { - border-radius: 7px; -} -@media all and (min-width: 768px) { - .list-block.tablet-inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 7px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 7px 7px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 7px 7px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 7px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 7px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 7px 7px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 7px 7px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 7px; - } -} -.list-block li { - box-sizing: border-box; - position: relative; -} -.list-block .item-media { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - box-sizing: border-box; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - padding-top: 7px; - padding-bottom: 8px; -} -.list-block .item-media i + i { - margin-left: 5px; -} -.list-block .item-media i + img { - margin-left: 5px; -} -.list-block .item-media + .item-inner { - margin-left: 15px; -} -.list-block .item-inner { - padding-right: 15px; - position: relative; - width: 100%; - padding-top: 8px; - padding-bottom: 7px; - min-height: 44px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-flex: 1; - -ms-flex: 1; - overflow: hidden; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-title { - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - min-width: 0; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - max-width: 100%; -} -.list-block .item-after { - white-space: nowrap; - color: #8e8e93; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 5px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - max-height: 28px; -} -.list-block .smart-select .item-after, -.list-block .autocomplete-opener .item-after { - max-width: 70%; - overflow: hidden; - text-overflow: ellipsis; - position: relative; - display: block; -} -.list-block .item-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: block; - color: inherit; -} -.list-block .item-link .item-inner { - padding-right: 35px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; - background-repeat: no-repeat; - background-position: 95% center; - background-position: -webkit-calc(100% - 15px) center; - background-position: calc(100% - 15px) center; -} -html:not(.watch-active-state) .list-block .item-link:active, -.list-block .item-link.active-state { - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background-color: #d9d9d9; -} -html:not(.watch-active-state) .list-block .item-link:active .item-inner:after, -.list-block .item-link.active-state .item-inner:after { - background-color: transparent; -} -.list-block .item-link.list-button { - padding: 0 15px; - text-align: center; - color: #007aff; - display: block; - line-height: 43px; -} -.list-block .item-link.list-button:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-link.list-button:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-link.list-button:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-content { - box-sizing: border-box; - padding-left: 15px; - min-height: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.list-block .list-block-label { - margin: 10px 0 35px; - padding: 0 15px; - font-size: 14px; - color: #8f8f94; -} -.list-block .swipeout { - overflow: hidden; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.list-block .swipeout.deleting { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block .swipeout.deleting .swipeout-content { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout.transitioning .swipeout-content, -.list-block .swipeout.transitioning .swipeout-actions-right a, -.list-block .swipeout.transitioning .swipeout-actions-left a, -.list-block .swipeout.transitioning .swipeout-overswipe { - -webkit-transition: 300ms; - transition: 300ms; -} -.list-block .swipeout-content { - position: relative; - z-index: 10; -} -.list-block .swipeout-overswipe { - -webkit-transition: 200ms left; - transition: 200ms left; -} -.list-block .swipeout-actions-left, -.list-block .swipeout-actions-right { - position: absolute; - top: 0; - height: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; -} -.list-block .swipeout-actions-left a, -.list-block .swipeout-actions-right a { - padding: 0 30px; - color: #fff; - background: #c7c7cc; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - position: relative; - left: 0; -} -.list-block .swipeout-actions-left a:after, -.list-block .swipeout-actions-right a:after { - content: ''; - position: absolute; - top: 0; - width: 600%; - height: 100%; - background: inherit; - z-index: -1; -} -.list-block .swipeout-actions-left a.swipeout-delete, -.list-block .swipeout-actions-right a.swipeout-delete { - background: #ff3b30; -} -.list-block .swipeout-actions-right { - right: 0%; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} -.list-block .swipeout-actions-right a:after { - left: 100%; - margin-left: -1px; -} -.list-block .swipeout-actions-left { - left: 0%; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout-actions-left a:after { - right: 100%; - margin-right: -1px; -} -.list-block .item-subtitle { - font-size: 15px; - position: relative; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - text-overflow: ellipsis; -} -.list-block .item-text { - font-size: 15px; - color: #8e8e93; - line-height: 21px; - position: relative; - overflow: hidden; - height: 42px; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - display: -webkit-box; -} -.list-block.media-list .item-title, -.list-block li.media-item .item-title { - font-weight: 500; -} -html.ios-gt-8 .list-block.media-list .item-title, -html.ios-gt-8 .list-block li.media-item .item-title { - font-weight: 600; -} -.list-block.media-list .item-inner, -.list-block li.media-item .item-inner { - display: block; - padding-top: 10px; - padding-bottom: 9px; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block.media-list .item-link .item-inner, -.list-block li.media-item .item-link .item-inner { - background: none; - padding-right: 15px; -} -.list-block.media-list .item-link .item-title-row, -.list-block li.media-item .item-link .item-title-row { - padding-right: 20px; - background: no-repeat right center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; -} -.list-block.media-list .item-media, -.list-block li.media-item .item-media { - padding-top: 9px; - padding-bottom: 10px; -} -.list-block.media-list .item-media img, -.list-block li.media-item .item-media img { - display: block; -} -.list-block.media-list .item-title-row, -.list-block li.media-item .item-title-row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.list-block.media-list .item-content > .item-after, -.list-block li.media-item .item-content > .item-after { - margin-right: 15px; - margin-left: 15px; -} -.list-block .list-group ul:after, -.list-block .list-group ul:before { - z-index: 25; -} -.list-block .list-group + .list-group ul:before { - display: none; -} -.list-block .item-divider, -.list-block .list-group-title { - background: #F7F7F7; - margin-top: -1px; - padding: 4px 15px; - white-space: nowrap; - position: relative; - max-width: 100%; - text-overflow: ellipsis; - overflow: hidden; - color: #8e8e93; - z-index: 15; -} -.list-block .item-divider:before, -.list-block .list-group-title:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block .item-divider:before, -html.pixel-ratio-2 .list-block .list-group-title:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-divider:before, -html.pixel-ratio-3 .list-block .list-group-title:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .list-group-title { - position: relative; - position: -webkit-sticky; - position: -moz-sticky; - position: sticky; - top: 0px; - z-index: 20; - margin-top: 0; -} -.list-block .list-group-title:before { - display: none; -} -.list-block .sortable-handler { - position: absolute; - right: 0; - top: 0; - bottom: 1px; - z-index: 10; - background-repeat: no-repeat; - background-size: 18px 12px; - background-position: center; - width: 35px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2018%2012'%20fill%3D'%23c7c7cc'%3E%3Cpath%20d%3D'M0%2C2V0h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C7V5h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C12v-2h22v2H0z'%2F%3E%3C%2Fsvg%3E"); - opacity: 0; - visibility: hidden; - cursor: pointer; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable .item-inner { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable-opened .sortable-handler { - visibility: visible; - opacity: 1; -} -.list-block.sortable-opened .item-inner, -.list-block.sortable-opened .item-link .item-inner { - padding-right: 35px; -} -.list-block.sortable-opened .item-link .item-inner, -.list-block.sortable-opened .item-link .item-title-row { - background-image: none; -} -.list-block.sortable-sorting li { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block li.sorting { - z-index: 50; - background: rgba(255, 255, 255, 0.8); - box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.6); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.list-block li.sorting .item-inner:after { - display: none; -} -.list-block li:last-child .list-button:after { - display: none; -} -.list-block li:last-child .item-inner:after, -.list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.list-block li li:last-child .item-inner:after, -.list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block.no-hairlines:before, -.list-block.no-hairlines ul:before, -.list-block.no-hairlines .content-block-inner:before { - display: none; -} -.list-block.no-hairlines:after, -.list-block.no-hairlines ul:after, -.list-block.no-hairlines .content-block-inner:after { - display: none; -} -.list-block.no-hairlines-between .item-inner:after, -.list-block.no-hairlines-between .list-button:after, -.list-block.no-hairlines-between .item-divider:after, -.list-block.no-hairlines-between .list-group-title:after, -.list-block.no-hairlines-between .list-group-title:after { - display: none; -} -/* === Forms === */ -.list-block input[type="text"], -.list-block input[type="password"], -.list-block input[type="search"], -.list-block input[type="email"], -.list-block input[type="tel"], -.list-block input[type="url"], -.list-block input[type="date"], -.list-block input[type="datetime-local"], -.list-block input[type="time"], -.list-block input[type="number"], -.list-block select, -.list-block textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0 0 0 0; - box-shadow: none; - display: block; - padding: 0px; - margin: 0; - width: 100%; - height: 43px; - color: #000; - font-size: 17px; - font-family: inherit; -} -.list-block .item-title.label { - vertical-align: top; -} -.list-block .item-title.label + .item-input { - margin-left: 5px; -} -.list-block input[type="date"], -.list-block input[type="datetime-local"] { - line-height: 44px; -} -.list-block select { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -.list-block textarea { - height: 100px; - resize: none; - line-height: 1.4; - padding-top: 8px; - padding-bottom: 7px; -} -.list-block textarea.resizable { - height: 43px; -} -.list-block .item-input { - width: 100%; - margin-top: -8px; - margin-bottom: -7px; - -webkit-box-flex: 1; - -ms-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.list-block .item-title.label { - width: 35%; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.label-switch { - display: inline-block; - vertical-align: middle; - width: 52px; - border-radius: 16px; - box-sizing: border-box; - height: 32px; - position: relative; - cursor: pointer; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.label-switch .checkbox { - width: 52px; - border-radius: 16px; - box-sizing: border-box; - height: 32px; - background: #e5e5e5; - z-index: 0; - margin: 0; - padding: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - cursor: pointer; - position: relative; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch .checkbox:before { - content: ' '; - position: absolute; - left: 2px; - top: 2px; - width: 48px; - border-radius: 16px; - box-sizing: border-box; - height: 28px; - background: #fff; - z-index: 1; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: scale(1); - transform: scale(1); -} -.label-switch .checkbox:after { - content: ' '; - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - position: absolute; - z-index: 2; - top: 2px; - left: 2px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch input[type="checkbox"] { - display: none; -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: #4cd964; -} -.label-switch input[type="checkbox"]:checked + .checkbox:before { - -webkit-transform: scale(0); - transform: scale(0); -} -.label-switch input[type="checkbox"]:checked + .checkbox:after { - -webkit-transform: translateX(20px); - transform: translateX(20px); -} -html.android .label-switch input[type="checkbox"] + .checkbox { - -webkit-transition-duration: 0; - transition-duration: 0; -} -html.android .label-switch input[type="checkbox"] + .checkbox:after, -html.android .label-switch input[type="checkbox"] + .checkbox:before { - -webkit-transition-duration: 0; - transition-duration: 0; -} -.button { - border: 1px solid #446995; - color: #446995; - text-decoration: none; - text-align: center; - display: block; - border-radius: 5px; - line-height: 27px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 29px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - font-size: 14px; - font-family: inherit; - cursor: pointer; - outline: 0; -} -input[type="submit"].button, -input[type="button"].button { - width: 100%; -} -html:not(.watch-active-state) .button:active, -.button.active-state { - background: rgba(68, 105, 149, 0.15); -} -.button.button-round { - border-radius: 27px; -} -.button.active { - background: #446995; - color: #fff; -} -.button.button-big { - font-size: 17px; - height: 44px; - line-height: 42px; -} -.button.button-fill { - color: #fff; - background: #446995; - border-color: transparent; -} -html:not(.watch-active-state) .button.button-fill:active, -.button.button-fill.active-state { - opacity: 0.8; -} -.button i.icon:first-child { - margin-right: 10px; -} -.button i.icon:last-child { - margin-left: 10px; -} -.button i.icon:first-child:last-child { - margin-left: 0; - margin-right: 0; -} -.buttons-row { - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.buttons-row .button { - border-radius: 0 0 0 0; - border-left-width: 0; - width: 100%; - -webkit-box-flex: 1; - -ms-flex: 1; -} -.buttons-row .button:first-child { - border-radius: 5px 0 0 5px; - border-left-width: 1px; - border-left-style: solid; -} -.buttons-row .button:last-child { - border-radius: 0 5px 5px 0; -} -.buttons-row .button:first-child:last-child { - border-radius: 5px; -} -.buttons-row .button.button-round:first-child { - border-radius: 27px 0 0 27px; -} -.buttons-row .button.button-round:last-child { - border-radius: 0 27px 27px 0; -} -.range-slider { - width: 100%; - position: relative; - overflow: hidden; - padding-left: 3px; - padding-right: 3px; - margin-left: -1px; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.range-slider input[type="range"] { - position: relative; - height: 28px; - width: 100%; - margin: 4px 0 5px 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: -webkit-gradient(linear, 50% 0, 50% 100%, color-stop(0, #b7b8b7), color-stop(100%, #b7b8b7)); - background: linear-gradient(to right, #b7b8b7 0, #b7b8b7 100%); - background-position: center; - background-size: 100% 2px; - background-repeat: no-repeat; - outline: 0; - border: none; - box-sizing: content-box; - -ms-background-position-y: 500px; -} -.range-slider input[type="range"]:focus, -.range-slider input[type="range"]:active { - border: 0; - outline: 0; -} -.range-slider input[type="range"]:after { - height: 2px; - background: #fff; - content: ' '; - width: 5px; - top: 50%; - margin-top: -1px; - left: -5px; - z-index: 1; - position: absolute; -} -.range-slider input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - height: 28px; - width: 28px; - position: relative; - background: none; -} -.range-slider input[type="range"]::-webkit-slider-thumb:after { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - box-sizing: border-box; - content: ' '; - left: 0; - top: 0; -} -.range-slider input[type="range"]::-webkit-slider-thumb:before { - position: absolute; - top: 50%; - right: 100%; - width: 2000px; - height: 2px; - margin-top: -1px; - z-index: 1; - background: #446995; - content: ' '; -} -.range-slider input[type="range"]::-moz-range-track { - width: 100%; - height: 2px; - background: #b7b8b7; - border: none; - outline: 0; -} -.range-slider input[type="range"]::-moz-range-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - box-sizing: border-box; - content: ' '; -} -.range-slider input[type="range"]::-ms-track { - width: 100%; - height: 2px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; -} -.range-slider input[type="range"]::-ms-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - content: ' '; - box-shadow: none; - border: 1px solid rgba(0, 0, 0, 0.2); - box-sizing: border-box; - margin-top: 0; - top: 50%; -} -.range-slider input[type="range"]::-ms-fill-lower { - background: #446995; -} -.range-slider input[type="range"]::-ms-fill-upper { - background: #b7b8b7; -} -label.label-checkbox { - cursor: pointer; -} -label.label-checkbox i.icon-form-checkbox { - width: 22px; - height: 22px; - position: relative; - border-radius: 22px; - border: 1px solid #c7c7cc; - box-sizing: border-box; -} -label.label-checkbox i.icon-form-checkbox:after { - content: ' '; - position: absolute; - left: 50%; - margin-left: -6px; - top: 50%; - margin-top: -4px; - width: 12px; - height: 9px; -} -label.label-checkbox input[type="checkbox"], -label.label-checkbox input[type="radio"] { - display: none; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox { - border: none; - background-color: #446995; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox:after { - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2012%209'%20xml%3Aspace%3D'preserve'%3E%3Cpolygon%20fill%3D'%23ffffff'%20points%3D'12%2C0.7%2011.3%2C0%203.9%2C7.4%200.7%2C4.2%200%2C4.9%203.9%2C8.8%203.9%2C8.8%203.9%2C8.8%20'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 12px 9px; - background-size: 12px 9px; -} -label.label-radio { - cursor: pointer; -} -label.label-radio input[type="checkbox"], -label.label-radio input[type="radio"] { - display: none; -} -label.label-radio input[type="checkbox"] ~ .item-inner, -label.label-radio input[type="radio"] ~ .item-inner { - padding-right: 35px; -} -label.label-radio input[type="checkbox"]:checked ~ .item-inner, -label.label-radio input[type="radio"]:checked ~ .item-inner { - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2013%2010'%3E%3Cpolygon%20fill%3D'%23446995'%20points%3D'11.6%2C0%204.4%2C7.2%201.4%2C4.2%200%2C5.6%204.4%2C10%204.4%2C10%204.4%2C10%2013%2C1.4%20'%2F%3E%3C%2Fsvg%3E"); - background-position: 90% center; - background-position: -webkit-calc(100% - 15px) center; - background-position: calc(100% - 15px) center; - -webkit-background-size: 13px 10px; - background-size: 13px 10px; -} -label.label-checkbox, -label.label-radio { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -html:not(.watch-active-state) label.label-checkbox:active, -html:not(.watch-active-state) label.label-radio:active, -label.label-checkbox.active-state, -label.label-radio.active-state { - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background-color: #d9d9d9; -} -html:not(.watch-active-state) label.label-checkbox:active .item-inner:after, -html:not(.watch-active-state) label.label-radio:active .item-inner:after, -label.label-checkbox.active-state .item-inner:after, -label.label-radio.active-state .item-inner:after { - background-color: transparent; -} -.smart-select select { - display: none; -} -/* === Cards === */ -.cards-list ul, -.card .list-block ul { - background: none; -} -.cards-list > ul:before, -.card .list-block > ul:before { - display: none; -} -.cards-list > ul:after, -.card .list-block > ul:after { - display: none; -} -.card { - background: #fff; - box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3); - margin: 10px; - position: relative; - border-radius: 2px; - font-size: 14px; -} -.card .list-block, -.card .content-block { - margin: 0; -} -.row:not(.no-gutter) .col > .card { - margin-left: 0; - margin-right: 0; -} -.card-content { - position: relative; -} -.card-content-inner { - padding: 15px; - position: relative; -} -.card-content-inner > p:first-child { - margin-top: 0; -} -.card-content-inner > p:last-child { - margin-bottom: 0; -} -.card-content-inner > .list-block, -.card-content-inner > .content-block { - margin: -15px; -} -.card-header, -.card-footer { - min-height: 44px; - position: relative; - padding: 10px 15px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.card-header[valign="top"], -.card-footer[valign="top"] { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.card-header[valign="bottom"], -.card-footer[valign="bottom"] { - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.card-header a.link, -.card-footer a.link { - line-height: 44px; - height: 44px; - text-decoration: none; - position: relative; - margin-top: -10px; - margin-bottom: -10px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -html:not(.watch-active-state) .card-header a.link:active, -html:not(.watch-active-state) .card-footer a.link:active, -.card-header a.link.active-state, -.card-footer a.link.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.card-header a.link i + span, -.card-footer a.link i + span, -.card-header a.link i + i, -.card-footer a.link i + i, -.card-header a.link span + i, -.card-footer a.link span + i, -.card-header a.link span + span, -.card-footer a.link span + span { - margin-left: 7px; -} -.card-header a.link i.icon, -.card-footer a.link i.icon { - display: block; -} -.card-header a.icon-only, -.card-footer a.icon-only { - min-width: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - margin: 0; -} -.card-header { - border-radius: 2px 2px 0 0; - font-size: 17px; -} -.card-header:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #e1e1e1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .card-header:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .card-header:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.card-header.no-border:after { - display: none; -} -.card-footer { - border-radius: 0 0 2px 2px; - color: #6d6d72; -} -.card-footer:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #e1e1e1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .card-footer:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .card-footer:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.card-footer.no-border:before { - display: none; -} -/* === Modals === */ -.modal-overlay, -.preloader-indicator-overlay, -.popup-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.4); - z-index: 13000; - visibility: hidden; - opacity: 0; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.modal-overlay.modal-overlay-visible, -.preloader-indicator-overlay.modal-overlay-visible, -.popup-overlay.modal-overlay-visible { - visibility: visible; - opacity: 1; -} -.popup-overlay { - z-index: 10500; -} -.modal { - width: 270px; - position: absolute; - z-index: 13500; - left: 50%; - margin-left: -135px; - margin-top: 0; - top: 50%; - text-align: center; - border-radius: 13px; - overflow: hidden; - opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -ms-transition-property: -ms-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - color: #000; - display: none; -} -.modal.modal-in { - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal.modal-out { - opacity: 0; - z-index: 13499; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal-inner { - padding: 15px; - border-radius: 13px 13px 0 0; - position: relative; - background: rgba(255, 255, 255, 0.95); -} -.modal-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .modal-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .modal-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.modal-title { - font-weight: 500; - font-size: 18px; - text-align: center; -} -html.ios-gt-8 .modal-title { - font-weight: 600; -} -.modal-title + .modal-text { - margin-top: 5px; -} -.modal-buttons { - height: 44px; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; -} -.modal-buttons.modal-buttons-vertical { - display: block; - height: auto; -} -.modal-button { - width: 100%; - padding: 0 5px; - height: 44px; - font-size: 17px; - line-height: 44px; - text-align: center; - color: #446995; - display: block; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - cursor: pointer; - box-sizing: border-box; - -webkit-box-flex: 1; - -ms-flex: 1; - background: rgba(255, 255, 255, 0.95); -} -.modal-button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .modal-button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .modal-button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.modal-button:first-child { - border-radius: 0 0 0 13px; -} -.modal-button:last-child { - border-radius: 0 0 13px 0; -} -.modal-button:last-child:after { - display: none; -} -.modal-button:first-child:last-child { - border-radius: 0 0 13px 13px; -} -.modal-button.modal-button-bold { - font-weight: 500; -} -html.ios-gt-8 .modal-button.modal-button-bold { - font-weight: 600; -} -html:not(.watch-active-state) .modal-button:active, -.modal-button.active-state { - background: rgba(230, 230, 230, 0.95); -} -.modal-buttons-vertical .modal-button { - border-radius: 0; -} -.modal-buttons-vertical .modal-button:after { - display: none; -} -.modal-buttons-vertical .modal-button:before { - display: none; -} -.modal-buttons-vertical .modal-button:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .modal-buttons-vertical .modal-button:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .modal-buttons-vertical .modal-button:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.modal-buttons-vertical .modal-button:last-child { - border-radius: 0 0 13px 13px; -} -.modal-buttons-vertical .modal-button:last-child:after { - display: none; -} -.modal-no-buttons .modal-inner { - border-radius: 13px; -} -.modal-no-buttons .modal-inner:after { - display: none; -} -.modal-no-buttons .modal-buttons { - display: none; -} -.actions-modal { - position: absolute; - left: 0; - bottom: 0; - z-index: 13500; - width: 100%; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 100%; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -@media (min-width: 496px) { - .actions-modal { - width: 480px; - left: 50%; - margin-left: -240px; - } -} -.actions-modal.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal.modal-out { - z-index: 13499; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.actions-modal-group { - margin: 8px; - position: relative; - border-radius: 13px; - overflow: hidden; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal-button, -.actions-modal-label { - width: 100%; - text-align: center; - font-weight: normal; - margin: 0; - background: rgba(255, 255, 255, 0.95); - box-sizing: border-box; - display: block; - position: relative; - overflow: hidden; -} -.actions-modal-button:after, -.actions-modal-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-modal-button:after, -html.pixel-ratio-2 .actions-modal-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-modal-button:after, -html.pixel-ratio-3 .actions-modal-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-modal-button a, -.actions-modal-label a { - text-decoration: none; - color: inherit; - display: block; -} -.actions-modal-button b, -.actions-modal-label b { - font-weight: 500; -} -html.ios-gt-8 .actions-modal-button b, -html.ios-gt-8 .actions-modal-label b { - font-weight: 600; -} -.actions-modal-button.actions-modal-button-bold, -.actions-modal-label.actions-modal-button-bold { - font-weight: 500; -} -html.ios-gt-8 .actions-modal-button.actions-modal-button-bold, -html.ios-gt-8 .actions-modal-label.actions-modal-button-bold { - font-weight: 600; -} -.actions-modal-button.actions-modal-button-red, -.actions-modal-label.actions-modal-button-red { - color: #ff3b30; -} -.actions-modal-button:first-child, -.actions-modal-label:first-child { - border-radius: 13px 13px 0 0; -} -.actions-modal-button:last-child, -.actions-modal-label:last-child { - border-radius: 0 0 13px 13px; -} -.actions-modal-button:last-child:after, -.actions-modal-label:last-child:after { - display: none; -} -.actions-modal-button:first-child:last-child, -.actions-modal-label:first-child:last-child { - border-radius: 13px; -} -.actions-modal-button.disabled, -.actions-modal-label.disabled { - opacity: 0.9; - color: #8e8e93; -} -.actions-modal-button { - cursor: pointer; - height: 57px; - line-height: 57px; - font-size: 20px; - color: #446995; - white-space: normal; - text-overflow: ellipsis; -} -html:not(.watch-active-state) .actions-modal-button:active, -.actions-modal-button.active-state { - background: rgba(230, 230, 230, 0.9); -} -.actions-modal-label { - font-size: 13px; - line-height: 1.3; - min-height: 57px; - padding: 8px 10px; - color: #8a8a8a; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -@media (orientation: landscape) { - .actions-modal-label { - min-height: 44px; - } - .actions-modal-button { - height: 44px; - line-height: 44px; - } -} -input.modal-text-input { - box-sizing: border-box; - height: 26px; - background: #fff; - margin: 0; - margin-top: 15px; - padding: 0 5px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 0; - width: 100%; - font-size: 14px; - font-family: inherit; - display: block; - box-shadow: 0 0 0 rgba(0, 0, 0, 0); - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -input.modal-text-input + input.modal-text-input { - margin-top: 5px; -} -.modal-input-double + .modal-input-double input.modal-text-input { - border-top: 0; - margin-top: 0; -} -.popover { - width: 320px; - background: rgba(255, 255, 255, 0.95); - z-index: 13500; - margin: 0; - top: 0; - opacity: 0; - left: 0; - border-radius: 13px; - position: absolute; - display: none; - -webkit-transform: none; - transform: none; - -webkit-transition-property: opacity; - -moz-transition-property: opacity; - -ms-transition-property: opacity; - -o-transition-property: opacity; - transition-property: opacity; -} -.popover.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 1; -} -.popover .list-block { - margin: 0; -} -.popover .list-block ul { - background: none; -} -.popover .list-block:first-child ul { - border-radius: 13px 13px 0 0; -} -.popover .list-block:first-child ul:before { - display: none; -} -.popover .list-block:first-child li:first-child a { - border-radius: 13px 13px 0 0; -} -.popover .list-block:last-child ul { - border-radius: 0 0 13px 13px; -} -.popover .list-block:last-child ul:after { - display: none; -} -.popover .list-block:last-child li:last-child a { - border-radius: 0 0 13px 13px; -} -.popover .list-block:first-child:last-child li:first-child:last-child a, -.popover .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 13px; -} -.popover .list-block + .list-block { - margin-top: 35px; -} -.popover-angle { - width: 26px; - height: 26px; - position: absolute; - left: -26px; - top: 0; - z-index: 100; - overflow: hidden; -} -.popover-angle:after { - content: ' '; - background: rgba(255, 255, 255, 0.95); - width: 26px; - height: 26px; - position: absolute; - left: 0; - top: 0; - border-radius: 3px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} -.popover-angle.on-left { - left: -26px; -} -.popover-angle.on-left:after { - left: 19px; - top: 0; -} -.popover-angle.on-right { - left: 100%; -} -.popover-angle.on-right:after { - left: -19px; - top: 0; -} -.popover-angle.on-top { - left: 0; - top: -26px; -} -.popover-angle.on-top:after { - left: 0; - top: 19px; -} -.popover-angle.on-bottom { - left: 0; - top: 100%; -} -.popover-angle.on-bottom:after { - left: 0; - top: -19px; -} -.popover-inner { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-popover .list-block + .list-block { - margin-top: 20px; -} -.actions-popover .list-block ul { - background: #fff; -} -.actions-popover-label { - padding: 8px 10px; - color: #8a8a8a; - font-size: 13px; - line-height: 1.3; - text-align: center; - position: relative; -} -.actions-popover-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-popover-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-popover-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-popover-label:last-child:after { - display: none; -} -.popup, -.login-screen { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 11000; - background: #fff; - box-sizing: border-box; - display: none; - overflow: auto; - -webkit-overflow-scrolling: touch; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.popup.modal-in, -.login-screen.modal-in, -.popup.modal-out, -.login-screen.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.popup.modal-in, -.login-screen.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.popup.modal-out, -.login-screen.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.login-screen.modal-in, -.login-screen.modal-out { - display: block; -} -@media all and (min-width: 630px) and (min-height: 630px) { - .popup:not(.tablet-fullscreen) { - width: 630px; - height: 630px; - left: 50%; - top: 50%; - margin-left: -315px; - margin-top: -315px; - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } - .popup:not(.tablet-fullscreen).modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - .popup:not(.tablet-fullscreen).modal-out { - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } -} -@media all and (max-width: 629px), (max-height: 629px) { - html.with-statusbar-overlay .popup { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; - } - html.with-statusbar-overlay .popup-overlay { - z-index: 9500; - } -} -html.with-statusbar-overlay .login-screen, -html.with-statusbar-overlay .popup.tablet-fullscreen { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; -} -.modal .preloader { - width: 34px; - height: 34px; -} -.preloader-indicator-overlay { - visibility: visible; - opacity: 0; - background: none; -} -.preloader-indicator-modal { - position: absolute; - left: 50%; - top: 50%; - padding: 8px; - margin-left: -25px; - margin-top: -25px; - background: rgba(0, 0, 0, 0.8); - z-index: 13500; - border-radius: 5px; -} -.preloader-indicator-modal .preloader { - display: block; - width: 34px; - height: 34px; -} -.picker-modal { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 260px; - z-index: 12500; - display: none; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - background: #cfd5da; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal.modal-in, -.picker-modal.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.picker-modal.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal .picker-modal-inner { - height: 100%; - position: relative; -} -.picker-modal .toolbar { - position: relative; - width: 100%; - background: #f7f7f8; -} -.picker-modal .toolbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #929499; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-modal .toolbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal .toolbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-modal .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 44px); - height: -moz-calc(100% - 44px); - height: calc(100% - 44px); -} -.picker-modal.picker-modal-inline, -.popover .picker-modal { - display: block; - position: relative; - background: none; - z-index: inherit; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.picker-modal-inline .toolbar:before, -.popover .picker-modal .toolbar:before { - display: none; -} -.picker-modal.picker-modal-inline .toolbar:after, -.popover .picker-modal .toolbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #929499; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-modal.picker-modal-inline .toolbar:after, -html.pixel-ratio-2 .popover .picker-modal .toolbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal.picker-modal-inline .toolbar:after, -html.pixel-ratio-3 .popover .picker-modal .toolbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.popover .picker-modal { - width: auto; -} -.popover .picker-modal .toolbar { - background: none; -} -.picker-modal.smart-select-picker .page { - background: #fff; -} -.picker-modal.smart-select-picker .toolbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-modal.smart-select-picker .toolbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal.smart-select-picker .toolbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-modal.smart-select-picker .list-block { - margin: 0; -} -.picker-modal.smart-select-picker .list-block ul:before { - display: none; -} -.picker-modal.smart-select-picker .list-block ul:after { - display: none; -} -/* === Panels === */ -.panel-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0); - opacity: 0; - z-index: 5999; - display: none; -} -.panel { - z-index: 1000; - display: none; - background: #111; - box-sizing: border-box; - overflow: auto; - -webkit-overflow-scrolling: touch; - position: absolute; - width: 260px; - top: 0; - height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.panel.panel-left.panel-cover { - z-index: 6000; - left: -260px; -} -.panel.panel-left.panel-reveal { - left: 0; -} -.panel.panel-right.panel-cover { - z-index: 6000; - right: -260px; -} -.panel.panel-right.panel-reveal { - right: 0; -} -body.with-panel-left-cover .views, -body.with-panel-right-cover .views { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -body.with-panel-left-cover .panel-overlay, -body.with-panel-right-cover .panel-overlay { - display: block; -} -body.with-panel-left-reveal .views, -body.with-panel-right-reveal .views { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - transition-property: transform; -} -body.with-panel-left-reveal .panel-overlay, -body.with-panel-right-reveal .panel-overlay { - display: block; -} -body.with-panel-left-reveal .views { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-reveal .panel-overlay { - margin-left: 260px; -} -body.with-panel-left-cover .panel-left { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-right-reveal .views { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-reveal .panel-overlay { - margin-left: -260px; -} -body.with-panel-right-cover .panel-right { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.panel-closing .views { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - transition-property: transform; -} -/* === Tabs === */ -.tabs .tab { - display: none; -} -.tabs .tab.active { - display: block; -} -.tabs-animated-wrap { - position: relative; - width: 100%; - overflow: hidden; - height: 100%; -} -.tabs-animated-wrap > .tabs { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - height: 100%; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabs-animated-wrap > .tabs > .tab { - width: 100%; - display: block; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.tabs-swipeable-wrap { - height: 100%; -} -.tabs-swipeable-wrap > .tabs > .tab { - display: block; -} -/* === Messages === */ -.messages-content { - background: #fff; -} -.messages { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.messages-date { - text-align: center; - font-weight: 500; - font-size: 11px; - line-height: 1; - margin: 10px 15px; - color: #8e8e93; -} -html.ios-gt-8 .messages-date { - font-weight: 600; -} -.messages-date span { - font-weight: 400; -} -.message { - box-sizing: border-box; - margin: 1px 10px 0; - max-width: 70%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.message:first-child { - margin-top: 10px; -} -.message .message-text { - box-sizing: border-box; - border-radius: 16px; - padding: 6px 16px 9px; - min-width: 48px; - min-height: 35px; - font-size: 17px; - line-height: 1.2; - word-break: break-word; -} -.message .message-text img { - max-width: 100%; - height: auto; -} -.message.message-pic .message-text { - padding: 0; - background: none; -} -.message.message-pic img { - display: block; - border-radius: 16px; -} -.message-name { - font-size: 12px; - line-height: 1; - color: #8e8e93; - margin-bottom: 2px; - margin-top: 7px; -} -.message-hide-name .message-name { - display: none; -} -.message-label { - font-size: 12px; - line-height: 1; - color: #8e8e93; - margin-top: 4px; -} -.message-hide-label .message-label { - display: none; -} -.message-avatar { - width: 29px; - height: 29px; - border-radius: 100%; - margin-top: -29px; - position: relative; - top: 1px; - background-size: cover; - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.message-hide-avatar .message-avatar { - opacity: 0; -} -.message-date { - font-size: 12px; - margin-top: 4px; - opacity: 0.8; -} -.message-pic img + .message-date { - margin-top: 8px; -} -.message-sent .message-date { - text-align: right; -} -.message-sent { - -ms-flex-item-align: end; - -webkit-align-self: flex-end; - align-self: flex-end; - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.message-sent .message-name { - margin-right: 16px; -} -.message-sent .message-label { - margin-right: 6px; -} -.message-sent.message-with-avatar .message-text { - margin-right: 29px; -} -.message-sent.message-with-avatar .message-name { - margin-right: 45px; -} -.message-sent.message-with-avatar .message-label { - margin-right: 34px; -} -.message-sent .message-text { - padding-right: 22px; - background-color: #00d449; - color: white; - margin-left: auto; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; -} -.message-sent.message-last .message-text, -.message-sent.message-with-tail .message-text { - border-radius: 16px 16px 0 16px; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; -} -.message-sent.message-last.message-pic img, -.message-sent.message-with-tail.message-pic img { - border-radius: 16px 16px 0 16px; -} -.message-received { - -ms-flex-item-align: start; - -webkit-align-self: flex-start; - align-self: flex-start; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.message-received .message-text { - padding-left: 22px; - background-color: #e5e5ea; - color: #000; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; -} -.message-received .message-name { - margin-left: 16px; -} -.message-received .message-label { - margin-left: 6px; -} -.message-received.message-with-avatar .message-text { - margin-left: 29px; -} -.message-received.message-with-avatar .message-name { - margin-left: 45px; -} -.message-received.message-with-avatar .message-label { - margin-left: 34px; -} -.message-received.message-last .message-text, -.message-received.message-with-tail .message-text { - border-radius: 16px 16px 16px 0; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; -} -.message-received.message-last.message-pic img, -.message-received.message-with-tail.message-pic img { - border-radius: 16px 16px 16px 0; -} -.message-last { - margin-bottom: 8px; -} -.message-appear-from-bottom { - -webkit-animation: messageAppearFromBottom 400ms; - animation: messageAppearFromBottom 400ms; -} -.message-appear-from-top { - -webkit-animation: messageAppearFromTop 400ms; - animation: messageAppearFromTop 400ms; -} -.messages-auto-layout .message-name, -.messages-auto-layout .message-label { - display: none; -} -.messages-auto-layout .message-avatar { - opacity: 0; -} -.messages-auto-layout .message-first .message-name { - display: block; -} -.messages-auto-layout .message-last .message-avatar { - opacity: 1; -} -.messages-auto-layout .message-last .message-label { - display: block; -} -html.retina.ios-6 .message, -html.retina.ios-6 .message.message-pic img { - -webkit-mask-box-image: none; - border-radius: 16px; -} -@-webkit-keyframes messageAppearFromBottom { - from { - -webkit-transform: translate3d(0, 100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromBottom { - from { - transform: translate3d(0, 100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes messageAppearFromTop { - from { - -webkit-transform: translate3d(0, -100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromTop { - from { - transform: translate3d(0, -100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -/* === Statusbar overlay === */ -html.with-statusbar-overlay body { - padding-top: 20px; - box-sizing: border-box; -} -html.with-statusbar-overlay body .statusbar-overlay { - display: block; -} -html.with-statusbar-overlay body .panel { - padding-top: 20px; -} -.statusbar-overlay { - background: #f7f7f8; - z-index: 10000; - position: absolute; - left: 0; - top: 0; - height: 20px; - width: 100%; - display: none; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -/* === Preloader === */ -.preloader { - display: inline-block; - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); - background-position: 50%; - background-size: 100%; - background-repeat: no-repeat; - -webkit-animation: preloader-spin 1s steps(12, end) infinite; - animation: preloader-spin 1s steps(12, end) infinite; -} -@-webkit-keyframes preloader-spin { - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes preloader-spin { - 100% { - transform: rotate(360deg); - } -} -/* === Progress Bar === */ -.progressbar, -.progressbar-infinite { - height: 2px; - width: 100%; - overflow: hidden; - position: relative; - display: block; - background: #b6b6b6; - border-radius: 2px; - -webkit-transform-origin: center top; - transform-origin: center top; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.progressbar { - vertical-align: middle; -} -.progressbar span { - width: 100%; - background: #446995; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.progressbar-infinite:before { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #446995; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transform-origin: left center; - transform-origin: left center; - -webkit-animation: progressbar-infinite 1s linear infinite; - animation: progressbar-infinite 1s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite { - top: 20px; -} -.progressbar-infinite.color-multi { - background: none; -} -.progressbar-infinite.color-multi:before { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 400%; - height: 100%; - background-image: -webkit-linear-gradient(left, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); - background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); - background-size: 25% 100%; - background-repeat: repeat-x; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-animation: progressbar-infinite-multicolor 3s linear infinite; - animation: progressbar-infinite-multicolor 3s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite.color-multi, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite.color-multi { - top: 20px; -} -body > .progressbar, -.view > .progressbar, -.views > .progressbar, -.page > .progressbar, -.panel > .progressbar, -.popup > .progressbar, -.framework7-root > .progressbar, -body > .progressbar-infinite, -.view > .progressbar-infinite, -.views > .progressbar-infinite, -.page > .progressbar-infinite, -.panel > .progressbar-infinite, -.popup > .progressbar-infinite, -.framework7-root > .progressbar-infinite { - position: absolute; - left: 0; - top: 0; - z-index: 15000; - border-radius: 0; -} -.progressbar-in { - -webkit-animation: progressbar-in 300ms forwards; - animation: progressbar-in 300ms forwards; -} -.progressbar-out { - -webkit-animation: progressbar-out 300ms forwards; - animation: progressbar-out 300ms forwards; -} -html.with-statusbar-overlay body > .progressbar { - top: 20px; -} -@-webkit-keyframes progressbar-in { - from { - opacity: 0; - -webkit-transform: scaleY(0); - } - to { - opacity: 1; - -webkit-transform: scaleY(1); - } -} -@keyframes progressbar-in { - from { - opacity: 0; - transform: scaleY(0); - } - to { - opacity: 1; - transform: scaleY(1); - } -} -@-webkit-keyframes progressbar-out { - from { - opacity: 1; - -webkit-transform: scaleY(1); - } - to { - opacity: 0; - -webkit-transform: scaleY(0); - } -} -@keyframes progressbar-out { - from { - opacity: 1; - transform: scaleY(1); - } - to { - opacity: 0; - transform: scaleY(0); - } -} -@-webkit-keyframes progressbar-infinite { - 0% { - -webkit-transform: translate3d(-50%, 0, 0) scaleX(0.5); - } - 100% { - -webkit-transform: translate3d(100%, 0, 0) scaleX(0.5); - } -} -@keyframes progressbar-infinite { - 0% { - transform: translate3d(-50%, 0, 0) scaleX(0.5); - } - 100% { - transform: translate3d(100%, 0, 0) scaleX(0.5); - } -} -@-webkit-keyframes progressbar-infinite-multicolor { - from { - -webkit-transform: translate3d(0%, 0, 0); - } - to { - -webkit-transform: translate3d(-50%, 0, 0); - } -} -@keyframes progressbar-infinite-multicolor { - from { - transform: translate3d(0%, 0, 0); - } - to { - transform: translate3d(-50%, 0, 0); - } -} -/* === Swiper === */ -.swiper-container { - margin-left: auto; - margin-right: auto; - position: relative; - overflow: hidden; - /* Fix of Webkit flickering */ - z-index: 1; -} -.swiper-container-no-flexbox .swiper-slide { - float: left; -} -.swiper-container-vertical > .swiper-wrapper { - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.swiper-wrapper { - position: relative; - width: 100%; - height: 100%; - z-index: 1; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -.swiper-container-android .swiper-slide, -.swiper-wrapper { - -webkit-transform: translate3d(0px, 0, 0); - -moz-transform: translate3d(0px, 0, 0); - -o-transform: translate(0px, 0px); - -ms-transform: translate3d(0px, 0, 0); - transform: translate3d(0px, 0, 0); -} -.swiper-container-multirow > .swiper-wrapper { - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -ms-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - flex-wrap: wrap; -} -.swiper-container-free-mode > .swiper-wrapper { - -webkit-transition-timing-function: ease-out; - -moz-transition-timing-function: ease-out; - -ms-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; - margin: 0 auto; -} -.swiper-slide { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - width: 100%; - height: 100%; - position: relative; -} -/* Auto Height */ -.swiper-container-autoheight, -.swiper-container-autoheight .swiper-slide { - height: auto; -} -.swiper-container-autoheight .swiper-wrapper { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; - -webkit-transition-property: -webkit-transform, height; - -moz-transition-property: -moz-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform, height; -} -/* a11y */ -.swiper-container .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} -/* IE10 Windows Phone 8 Fixes */ -.swiper-wp8-horizontal { - -ms-touch-action: pan-y; - touch-action: pan-y; -} -.swiper-wp8-vertical { - -ms-touch-action: pan-x; - touch-action: pan-x; -} -/* Arrows */ -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: 50%; - width: 27px; - height: 44px; - margin-top: -22px; - z-index: 10; - cursor: pointer; - -moz-background-size: 27px 44px; - -webkit-background-size: 27px 44px; - background-size: 27px 44px; - background-position: center; - background-repeat: no-repeat; -} -.swiper-button-prev.swiper-button-disabled, -.swiper-button-next.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; -} -.swiper-button-prev, -.swiper-container-rtl .swiper-button-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); - left: 10px; - right: auto; -} -.swiper-button-next, -.swiper-container-rtl .swiper-button-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); - right: 10px; - left: auto; -} -/* Pagination Styles */ -.swiper-pagination { - position: absolute; - text-align: center; - -webkit-transition: 300ms; - -moz-transition: 300ms; - -o-transition: 300ms; - transition: 300ms; - -webkit-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - -o-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - z-index: 10; -} -.swiper-pagination.swiper-pagination-hidden { - opacity: 0; -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-container-horizontal > .swiper-pagination-bullets { - bottom: 10px; - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullet { - width: 8px; - height: 8px; - display: inline-block; - border-radius: 100%; - background: #000; - opacity: 0.2; -} -button.swiper-pagination-bullet { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - -moz-appearance: none; - -ms-appearance: none; - -webkit-appearance: none; - appearance: none; -} -.swiper-pagination-clickable .swiper-pagination-bullet { - cursor: pointer; -} -.swiper-pagination-bullet-active { - opacity: 1; - background: #007aff; -} -.swiper-container-vertical > .swiper-pagination-bullets { - right: 10px; - top: 50%; - -webkit-transform: translate3d(0px, -50%, 0); - -moz-transform: translate3d(0px, -50%, 0); - -o-transform: translate(0px, -50%); - -ms-transform: translate3d(0px, -50%, 0); - transform: translate3d(0px, -50%, 0); -} -.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { - margin: 5px 0; - display: block; -} -.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet { - margin: 0 5px; -} -/* Progress */ -.swiper-pagination-progress { - background: rgba(0, 0, 0, 0.25); - position: absolute; -} -.swiper-pagination-progress .swiper-pagination-progressbar { - background: #007aff; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - -webkit-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - -webkit-transform-origin: left top; - -moz-transform-origin: left top; - -ms-transform-origin: left top; - -o-transform-origin: left top; - transform-origin: left top; -} -.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar { - -webkit-transform-origin: right top; - -moz-transform-origin: right top; - -ms-transform-origin: right top; - -o-transform-origin: right top; - transform-origin: right top; -} -.swiper-container-horizontal > .swiper-pagination-progress { - width: 100%; - height: 4px; - left: 0; - top: 0; -} -.swiper-container-vertical > .swiper-pagination-progress { - width: 4px; - height: 100%; - left: 0; - top: 0; -} -/* 3D Container */ -.swiper-container-3d { - -webkit-perspective: 1200px; - -moz-perspective: 1200px; - -o-perspective: 1200px; - perspective: 1200px; -} -.swiper-container-3d .swiper-wrapper, -.swiper-container-3d .swiper-slide, -.swiper-container-3d .swiper-slide-shadow-left, -.swiper-container-3d .swiper-slide-shadow-right, -.swiper-container-3d .swiper-slide-shadow-top, -.swiper-container-3d .swiper-slide-shadow-bottom, -.swiper-container-3d .swiper-cube-shadow { - -webkit-transform-style: preserve-3d; - -moz-transform-style: preserve-3d; - -ms-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.swiper-container-3d .swiper-slide-shadow-left, -.swiper-container-3d .swiper-slide-shadow-right, -.swiper-container-3d .swiper-slide-shadow-top, -.swiper-container-3d .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; -} -.swiper-container-3d .swiper-slide-shadow-left { - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-right { - background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-top { - background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-bottom { - background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -/* Coverflow */ -.swiper-container-coverflow .swiper-wrapper, -.swiper-container-flip .swiper-wrapper { - /* Windows 8 IE 10 fix */ - -ms-perspective: 1200px; -} -/* Cube + Flip */ -.swiper-container-cube, -.swiper-container-flip { - overflow: visible; -} -.swiper-container-cube .swiper-slide, -.swiper-container-flip .swiper-slide { - pointer-events: none; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; -} -.swiper-container-cube .swiper-slide .swiper-slide, -.swiper-container-flip .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-container-cube .swiper-slide-active, -.swiper-container-flip .swiper-slide-active, -.swiper-container-cube .swiper-slide-active .swiper-slide-active, -.swiper-container-flip .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-container-cube .swiper-slide-shadow-top, -.swiper-container-flip .swiper-slide-shadow-top, -.swiper-container-cube .swiper-slide-shadow-bottom, -.swiper-container-flip .swiper-slide-shadow-bottom, -.swiper-container-cube .swiper-slide-shadow-left, -.swiper-container-flip .swiper-slide-shadow-left, -.swiper-container-cube .swiper-slide-shadow-right, -.swiper-container-flip .swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; -} -/* Cube */ -.swiper-container-cube .swiper-slide { - visibility: hidden; - -webkit-transform-origin: 0 0; - -moz-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - width: 100%; - height: 100%; -} -.swiper-container-cube.swiper-container-rtl .swiper-slide { - -webkit-transform-origin: 100% 0; - -moz-transform-origin: 100% 0; - -ms-transform-origin: 100% 0; - transform-origin: 100% 0; -} -.swiper-container-cube .swiper-slide-active, -.swiper-container-cube .swiper-slide-next, -.swiper-container-cube .swiper-slide-prev, -.swiper-container-cube .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; -} -.swiper-container-cube .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - background: #000; - opacity: 0.6; - -webkit-filter: blur(50px); - filter: blur(50px); - z-index: 0; -} -/* Fade */ -.swiper-container-fade.swiper-container-free-mode .swiper-slide { - -webkit-transition-timing-function: ease-out; - -moz-transition-timing-function: ease-out; - -ms-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.swiper-container-fade .swiper-slide { - pointer-events: none; - -webkit-transition-property: opacity; - -moz-transition-property: opacity; - -o-transition-property: opacity; - transition-property: opacity; -} -.swiper-container-fade .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-container-fade .swiper-slide-active, -.swiper-container-fade .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-zoom-container { - width: 100%; - height: 100%; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -moz-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -moz-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - text-align: center; -} -.swiper-zoom-container > img, -.swiper-zoom-container > svg, -.swiper-zoom-container > canvas { - max-width: 100%; - max-height: 100%; - object-fit: contain; -} -/* Scrollbar */ -.swiper-scrollbar { - border-radius: 10px; - position: relative; - -ms-touch-action: none; - background: rgba(0, 0, 0, 0.1); -} -.swiper-container-horizontal > .swiper-scrollbar { - position: absolute; - left: 1%; - bottom: 3px; - z-index: 50; - height: 5px; - width: 98%; -} -.swiper-container-vertical > .swiper-scrollbar { - position: absolute; - right: 3px; - top: 1%; - z-index: 50; - width: 5px; - height: 98%; -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: rgba(0, 0, 0, 0.5); - border-radius: 10px; - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -/* Preloader */ -.swiper-slide .preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; -} -/* === Columns Picker === */ -.picker-columns { - width: 100%; - height: 260px; - z-index: 11500; -} -.picker-columns.picker-modal-inline, -.popover .picker-columns { - height: 200px; -} -@media (orientation: landscape) and (max-height: 415px) { - .picker-columns:not(.picker-modal-inline) { - height: 200px; - } -} -.popover.popover-picker-columns { - width: 280px; -} -.picker-items { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - padding: 0; - text-align: right; - font-size: 24px; - -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); - -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); -} -.picker-items-col { - overflow: hidden; - position: relative; - max-height: 100%; -} -.picker-items-col.picker-items-col-left { - text-align: left; -} -.picker-items-col.picker-items-col-center { - text-align: center; -} -.picker-items-col.picker-items-col-right { - text-align: right; -} -.picker-items-col.picker-items-col-divider { - color: #000; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.picker-items-col-wrapper { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.picker-item { - height: 36px; - line-height: 36px; - padding: 0 10px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - color: #707274; - left: 0; - top: 0; - width: 100%; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.picker-items-col-absolute .picker-item { - position: absolute; -} -.picker-item.picker-item-far { - pointer-events: none; -} -.picker-item.picker-selected { - color: #000; - -webkit-transform: translate3d(0, 0, 0) rotateX(0deg); - transform: translate3d(0, 0, 0) rotateX(0deg); -} -.picker-center-highlight { - height: 36px; - box-sizing: border-box; - position: absolute; - left: 0; - width: 100%; - top: 50%; - margin-top: -18px; - pointer-events: none; -} -.picker-center-highlight:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #a8abb0; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-center-highlight:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-center-highlight:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #a8abb0; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-center-highlight:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-3d .picker-items { - overflow: hidden; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.picker-3d .picker-items-col, -.picker-3d .picker-items-col-wrapper, -.picker-3d .picker-item { - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.picker-3d .picker-items-col { - overflow: visible; -} -.picker-3d .picker-item { - -webkit-transform-origin: center center -110px; - transform-origin: center center -110px; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -/* === Notifications === */ -.notifications { - position: absolute; - left: 0; - top: 0; - width: 100%; - z-index: 20000; - font-size: 14px; - margin: 0; - border: none; - display: none; - box-sizing: border-box; - max-height: 100%; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-perspective: 1200px; - perspective: 1200px; - padding-top: 8px; - padding-bottom: 8px; -} -.notifications.list-block > ul { - background: none; - margin: 0 auto; - max-width: 584px; -} -.notifications.list-block > ul:before { - display: none; -} -.notifications.list-block > ul:after { - display: none; -} -.with-statusbar-overlay .notifications { - padding-top: 20px; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); -} -.notifications .item-content { - padding-left: 8px; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.notifications .item-title-row { - margin-bottom: 8px; -} -.notifications .item-title-row:before { - position: absolute; - left: 0; - top: 0; - height: 36px; - border-radius: 12px 12px 0 0; - z-index: -1; - background: #fff; - content: ''; - width: 100%; -} -.notifications .item-title { - font-weight: 400 !important; - height: 36px; - text-transform: uppercase; - line-height: 35px; - font-size: 13px; -} -html.ios-gt-8 .notifications .item-title { - font-weight: 400 !important; -} -.notifications .item-subtitle { - font-size: 15px; - font-weight: 500; -} -html.ios-gt-8 .notifications .item-subtitle { - font-weight: 600; -} -.notifications .item-text { - font-size: 14px; - color: inherit; - height: auto; - line-height: inherit; -} -.notifications .item-subtitle:first-child, -.notifications .item-text:first-child { - margin-top: 8px; -} -.notifications .item-content, -.notifications .item-inner { - min-height: 0; -} -.notifications .item-inner { - position: static; -} -.notifications .item-inner:after { - display: none; -} -.notifications .item-media { - width: 20px; -} -.notifications .item-media img { - max-width: 20px; - max-height: 20px; -} -.notifications .item-media i.icon { - width: 20px; - height: 20px; - -webkit-background-size: cover; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} -.notifications .item-media + .item-inner { - margin-left: 8px; - overflow: visible; -} -.notifications li.notification-item { - box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); -} -.notifications li.notification-item .item-inner { - padding-top: 0; -} -.notifications li.notification-item .item-media { - padding-top: 8px; -} -.notifications .item-after { - margin-top: auto; - margin-bottom: auto; -} -.notifications .close-notification { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2044%2044'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cg%20stroke%3D'none'%20stroke-width%3D'1'%20fill%3D'none'%20fill-rule%3D'evenodd'%3E%3Cpath%20d%3D'M22.5%2C20.3786797%20L14.7218254%2C12.6005051%20L12.6005051%2C14.7218254%20L20.3786797%2C22.5%20L12.6005051%2C30.2781746%20L14.7218254%2C32.3994949%20L22.5%2C24.6213203%20L30.2781746%2C32.3994949%20L32.3994949%2C30.2781746%20L24.6213203%2C22.5%20L32.3994949%2C14.7218254%20L30.2781746%2C12.6005051%20L22.5%2C20.3786797%20Z%20M22%2C44%20C34.1502645%2C44%2044%2C34.1502645%2044%2C22%20C44%2C9.8497355%2034.1502645%2C0%2022%2C0%20C9.8497355%2C0%200%2C9.8497355%200%2C22%20C0%2C34.1502645%209.8497355%2C44%2022%2C44%20Z'%20fill%3D'%23000000'%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E"); - background-position: center top; - background-repeat: no-repeat; - -webkit-background-size: 100% auto; - background-size: 100% auto; - position: relative; - opacity: 0.2; -} -.notifications .close-notification span { - position: absolute; - width: 44px; - height: 44px; - left: 50%; - top: 50%; - margin-left: -22px; - margin-top: -22px; -} -.notifications .notification-item { - max-width: 568px; - margin: 0 auto 8px; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - background: rgba(250, 250, 250, 0.95); - border-radius: 12px; - width: -webkit-calc(100% - 16px); - width: -moz-calc(100% - 16px); - width: calc(100% - 16px); - position: absolute; - left: 8px; - top: 0; -} -.notifications .notification-item:last-child { - margin-bottom: 0; -} -.notifications .notification-hidden { - opacity: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -/* === Disabled elements === */ -.disabled, -[disabled] { - opacity: 0.55; - pointer-events: none; -} -.disabled .disabled, -.disabled [disabled], -[disabled] .disabled, -[disabled] [disabled] { - opacity: 1; -} -* { - -webkit-user-select: none; - user-select: none; -} -input, -textarea { - -webkit-touch-callout: default; - -webkit-user-select: text; - user-select: text; -} -#editor-navbar.navbar .right a + a, -#editor-navbar.navbar .left a + a { - margin-left: 0; -} -html:not(.phone) #editor-navbar.navbar .right a + a, -html:not(.phone) #editor-navbar.navbar .left a + a { - margin-left: 10px; -} -.logo-navbar { - height: 68px; -} -.logo-navbar .navbar-inner { - top: 24px; - height: 44px; -} -.phone.ios .container-edit .navbar:before, -.phone.ios .container-collaboration .navbar:before, -.phone.ios .container-filter .navbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .phone.ios .container-edit .navbar:before, -html.pixel-ratio-2 .phone.ios .container-collaboration .navbar:before, -html.pixel-ratio-2 .phone.ios .container-filter .navbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .phone.ios .container-edit .navbar:before, -html.pixel-ratio-3 .phone.ios .container-collaboration .navbar:before, -html.pixel-ratio-3 .phone.ios .container-filter .navbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.phone.ios .container-edit .page-content .list-block:first-child, -.phone.ios .container-collaboration .page-content .list-block:first-child, -.phone.ios .container-filter .page-content .list-block:first-child { - margin-top: -1px; -} -.container-edit.popover, -.container-add.popover, -.container-settings.popover, -.container-collaboration.popover, -.container-filter.popover { - width: 360px; -} -.settings.popup .list-block ul, -.settings.popover .list-block ul { - border-radius: 0 !important; - background: #fff; -} -.settings.popup .list-block ul:last-child:after, -.settings.popover .list-block ul:last-child:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .settings.popup .list-block ul:last-child:after, -html.pixel-ratio-2 .settings.popover .list-block ul:last-child:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .settings.popup .list-block ul:last-child:after, -html.pixel-ratio-3 .settings.popover .list-block ul:last-child:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.settings.popup .list-block:first-child, -.settings.popover .list-block:first-child { - margin-top: 0; -} -.settings.popup .list-block:last-child, -.settings.popover .list-block:last-child { - margin-bottom: 30px; -} -.settings.popup .list-block li:first-child a, -.settings.popover .list-block li:first-child a, -.settings.popup .list-block li:last-child a, -.settings.popover .list-block li:last-child a { - border-radius: 0 !important; -} -.settings.popup > .content-block, -.settings.popover > .content-block, -.settings.popup .popover-inner > .content-block, -.settings.popover .popover-inner > .content-block { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - color: #000; -} -.settings.popup .popover-view, -.settings.popover .popover-view { - border-radius: 13px; -} -.settings.popup .popover-view > .pages, -.settings.popover .popover-view > .pages { - border-radius: 13px; -} -.settings.popup .content-block:first-child, -.settings.popover .content-block:first-child { - margin-top: 0; -} -.settings.popup .content-block:first-child .content-block-inner:before, -.settings.popover .content-block:first-child .content-block-inner:before { - height: 0; -} -.settings .categories { - width: 100%; -} -.settings .categories > .buttons-row { - width: 100%; -} -.settings .categories > .buttons-row .button { - padding: 0 1px; -} -.settings .popover-inner { - height: 400px; -} -.container-add .categories > .buttons-row .button { - display: flex; - justify-content: center; - align-items: center; -} -.container-add .categories > .buttons-row .button.active i.icon { - background-color: transparent; -} -.dataview.page-content { - background: #ffffff; -} -.dataview .row { - justify-content: space-around; -} -.dataview ul { - padding: 0 10px; - list-style: none; -} -.dataview ul li { - display: inline-block; -} -.dataview .active { - position: relative; - z-index: 1; -} -.dataview .active::after { - content: ''; - position: absolute; - width: 22px; - height: 22px; - right: -5px; - bottom: -5px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%2211%22%2F%3E%3Cpath%20d%3D%22M11%2C21A10%2C10%2C0%2C1%2C1%2C21%2C11%2C10%2C10%2C0%2C0%2C1%2C11%2C21h0ZM17.4%2C7.32L17.06%2C7a0.48%2C0.48%2C0%2C0%2C0-.67%2C0l-7%2C6.84L6.95%2C11.24a0.51%2C0.51%2C0%2C0%2C0-.59.08L6%2C11.66a0.58%2C0.58%2C0%2C0%2C0%2C0%2C.65l3.19%2C3.35a0.38%2C0.38%2C0%2C0%2C0%2C.39%2C0L17.4%2C8a0.48%2C0.48%2C0%2C0%2C0%2C0-.67h0Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.item-content .item-after.splitter { - color: #000; -} -.item-content .item-after.splitter label { - margin: 0 5px; -} -.item-content .item-after.splitter .buttons-row { - min-width: 90px; - margin-left: 10px; -} -.item-content .item-after.value { - display: block; - min-width: 60px; - color: #000000; - margin-left: 10px; - text-align: right; -} -.item-content .item-after input.field { - color: #446995; -} -.item-content .item-after input.field.placeholder-color::-webkit-input-placeholder { - color: #446995; -} -.item-content .item-after input.field.right { - text-align: right; -} -.item-content.buttons .item-inner { - padding-top: 0; - padding-bottom: 0; - align-items: stretch; -} -.item-content.buttons .item-inner > .row { - width: 100%; - align-items: stretch; -} -.item-content.buttons .item-inner > .row .button { - flex: 1; - border: none; - height: inherit; - border-radius: 0; - font-size: 17px; - display: flex; - align-items: center; - justify-content: center; -} -.item-content .item-after .color-preview { - width: 75px; - height: 30px; - margin-top: -3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-content i .color-preview { - width: 22px; - height: 8px; - display: inline-block; - margin-top: 21px; - box-sizing: border-box; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-link.no-indicator .item-inner { - background-image: none; - padding-right: 15px; -} -.list-block .item-link.list-button { - color: #446995; -} -.button.active i.icon { - background-color: #fff; -} -.document-menu { - background-color: rgba(0, 0, 0, 0.9); - width: auto; - border-radius: 8px; - z-index: 12500; -} -.document-menu .popover-angle:after { - background: rgba(0, 0, 0, 0.9); -} -.document-menu .list-block { - font-size: 14px; - white-space: pre; -} -.document-menu .list-block:first-child ul { - border-radius: 7px 0 0 7px; -} -.document-menu .list-block:first-child ul:before { - display: none; -} -.document-menu .list-block:first-child li:first-child a { - border-radius: 7px 0 0 7px; -} -.document-menu .list-block:last-child ul { - border-radius: 0 7px 7px 0; -} -.document-menu .list-block:last-child ul:after { - display: none; -} -.document-menu .list-block:last-child li:last-child a { - border-radius: 0 7px 7px 0; -} -.document-menu .list-block:first-child:last-child li:first-child:last-child a, -.document-menu .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 7px; -} -.document-menu .list-block .item-link { - display: inline-block; -} -html:not(.watch-active-state) .document-menu .list-block .item-link:active, -.document-menu .list-block .item-link.active-state { - background-color: #d9d9d9; -} -html:not(.watch-active-state) .document-menu .list-block .item-link:active .item-inner:after, -.document-menu .list-block .item-link.active-state .item-inner:after { - background-color: transparent; -} -html.phone .document-menu .list-block .item-link { - padding: 0 10px; -} -.document-menu .list-block .item-link.list-button { - color: #ffffff; - line-height: 36px; -} -.document-menu .list-block .item-link.list-button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(230, 230, 230, 0.9); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .document-menu .list-block .item-link.list-button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .document-menu .list-block .item-link.list-button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.document-menu .list-block li { - display: inline-block; -} -.document-menu .list-block li:last-child .list-button:after { - display: none; -} -.document-menu .list-block li:last-child .item-inner:after, -.document-menu .list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.document-menu .list-block li li:last-child .item-inner:after, -.document-menu .list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(230, 230, 230, 0.9); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .document-menu .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .document-menu .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .document-menu .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.document-menu .list-block.no-hairlines:before, -.document-menu .list-block.no-hairlines ul:before, -.document-menu .list-block.no-hairlines .content-block-inner:before { - display: none; -} -.document-menu .list-block.no-hairlines:after, -.document-menu .list-block.no-hairlines ul:after, -.document-menu .list-block.no-hairlines .content-block-inner:after { - display: none; -} -.document-menu .list-block.no-hairlines-between .item-inner:after, -.document-menu .list-block.no-hairlines-between .list-button:after, -.document-menu .list-block.no-hairlines-between .item-divider:after, -.document-menu .list-block.no-hairlines-between .list-group-title:after, -.document-menu .list-block.no-hairlines-between .list-group-title:after { - display: none; -} -.color-palette a { - flex-grow: 1; - position: relative; - min-width: 10px; - min-height: 26px; - margin: 1px 1px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-palette a.active:after { - content: ' '; - position: absolute; - width: 100%; - height: 100%; - box-shadow: 0 0 0 1px white, 0 0 0 4px #446995; - z-index: 1; - border-radius: 1px; -} -.color-palette a.transparent { - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2022%2022'%20xml%3Aspace%3D'preserve'%3E%3Cline%20stroke%3D'%23ff0000'%20stroke-linecap%3D'undefined'%20stroke-linejoin%3D'undefined'%20id%3D'svg_1'%20y2%3D'0'%20x2%3D'22'%20y1%3D'22'%20x1%3D'0'%20stroke-width%3D'2'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.color-palette .theme-colors .item-inner { - display: inline-block; - overflow: visible; -} -.color-palette .standart-colors .item-inner, -.color-palette .dynamic-colors .item-inner { - overflow: visible; -} -.custom-colors { - display: flex; - justify-content: space-around; - align-items: center; - margin: 15px; -} -.custom-colors.phone { - max-width: 300px; - margin: 0 auto; - margin-top: 4px; -} -.custom-colors.phone .button-round { - margin-top: 20px; -} -.custom-colors .right-block { - margin-left: 20px; -} -.custom-colors .button-round { - height: 72px; - width: 72px; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - border-radius: 100px; - background-color: #ffffff; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-color: transparent; - margin-top: 25px; -} -.custom-colors .button-round.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.custom-colors .color-hsb-preview { - width: 72px; - height: 72px; - border-radius: 100px; - overflow: hidden; - border: 1px solid #c4c4c4; -} -.custom-colors .new-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .current-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .list-block ul:before, -.custom-colors .list-block ul:after { - content: none; -} -.custom-colors .list-block ul li { - border: 1px solid rgba(0, 0, 0, 0.3); -} -.custom-colors .color-picker-wheel { - position: relative; - width: 290px; - max-width: 100%; - height: auto; - font-size: 0; -} -.custom-colors .color-picker-wheel svg { - width: 100%; - height: auto; -} -.custom-colors .color-picker-wheel .color-picker-wheel-handle { - width: calc(16.66666667%); - height: calc(16.66666667%); - position: absolute; - box-sizing: border-box; - border: 2px solid #fff; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); - background: red; - border-radius: 50%; - left: 0; - top: 0; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum { - background-color: #000; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); - position: relative; - width: 45%; - height: 45%; - left: 50%; - top: 50%; - transform: translate3d(-50%, -50%, 0); - position: absolute; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle { - width: 4px; - height: 4px; - position: absolute; - left: -2px; - top: -2px; - z-index: 1; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle:after { - background-color: inherit; - content: ''; - position: absolute; - width: 16px; - height: 16px; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); - box-sizing: border-box; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transition: 150ms; - transition-property: transform; - transform-origin: center; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after { - transform: scale(1.5) translate(-33.333%, -33.333%); -} -#font-color-auto.active .color-auto { - box-shadow: 0 0 0 1px white, 0 0 0 4px #446995; - border-radius: 1px; -} -.about .page-content { - text-align: center; -} -.about .content-block:first-child { - margin: 15px 0; -} -.about .content-block { - margin: 0 auto 15px; -} -.about .content-block a { - color: #000; -} -.about h3 { - font-weight: normal; - margin: 0; -} -.about h3.vendor { - color: #000; - font-weight: bold; - margin-top: 15px; -} -.about p > label { - margin-right: 5px; -} -.about .logo { - background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center; - margin-top: 20px; -} -.color-schemes-menu { - cursor: pointer; - display: block; - background-color: #fff; -} -.color-schemes-menu .item-inner { - justify-content: flex-start; -} -.color-schemes-menu .color-schema-block { - display: flex; -} -.color-schemes-menu .color { - min-width: 26px; - min-height: 26px; - margin: 0 2px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-schemes-menu .text { - margin-left: 20px; - color: #212121; -} -.page-change { - background-color: #FFFFFF; -} -.page-change .block-description { - background-color: #fff; - padding-top: 15px; - padding-bottom: 15px; - margin: 0; - max-width: 100%; - word-wrap: break-word; -} -.page-change #user-name { - font-size: 17px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-change #date-change { - font-size: 14px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 3px; -} -.page-change #text-change { - color: #000000; - font-size: 15px; - line-height: 20px; - margin: 0; - margin-top: 10px; -} -.page-change .block-btn, -.page-change .content-block.block-btn:first-child { - position: absolute; - bottom: 0; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0; - width: 100%; - height: 44px; - align-items: center; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); -} -.page-change .block-btn #btn-reject-change, -.page-change .content-block.block-btn:first-child #btn-reject-change { - margin-left: 20px; -} -.page-change .block-btn #btn-goto-change, -.page-change .content-block.block-btn:first-child #btn-goto-change { - margin-left: 10px; -} -.page-change .block-btn .change-buttons, -.page-change .content-block.block-btn:first-child .change-buttons, -.page-change .block-btn .accept-reject, -.page-change .content-block.block-btn:first-child .accept-reject { - display: flex; -} -.page-change .block-btn .next-prev, -.page-change .content-block.block-btn:first-child .next-prev { - display: flex; -} -.page-change .block-btn .next-prev .link, -.page-change .content-block.block-btn:first-child .next-prev .link { - width: 44px; -} -.page-change .block-btn .link, -.page-change .content-block.block-btn:first-child .link { - position: relative; - display: flex; - justify-content: center; - align-items: center; - font-size: 17px; - height: 44px; - min-width: 44px; -} -.page-change #no-changes { - padding: 16px; -} -.navbar .center-collaboration { - display: flex; - justify-content: space-around; -} -.container-collaboration .navbar .right.close-collaboration { - position: absolute; - right: 10px; -} -.container-collaboration .page-content .list-block:first-child { - margin-top: -1px; -} -.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #8e8e93; -} -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 500; -} -#user-list ul:before { - content: none; -} -.page-comments .header-comment, -.add-comment .header-comment, -.page-view-comments .header-comment, -.container-edit-comment .header-comment, -.container-add-reply .header-comment, -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - display: flex; - justify-content: space-between; - padding-right: 16px; -} -.page-comments .header-comment .comment-right, -.add-comment .header-comment .comment-right, -.page-view-comments .header-comment .comment-right, -.container-edit-comment .header-comment .comment-right, -.container-add-reply .header-comment .comment-right, -.page-edit-comment .header-comment .comment-right, -.page-add-reply .header-comment .comment-right, -.page-edit-reply .header-comment .comment-right { - display: flex; - justify-content: space-between; - width: 70px; -} -.page-comments .list-block .item-inner, -.add-comment .list-block .item-inner, -.page-view-comments .list-block .item-inner, -.container-edit-comment .list-block .item-inner, -.container-add-reply .list-block .item-inner, -.page-edit-comment .list-block .item-inner, -.page-add-reply .list-block .item-inner, -.page-edit-reply .list-block .item-inner { - display: block; - padding: 16px 0; - word-wrap: break-word; -} -.page-comments .list-reply, -.add-comment .list-reply, -.page-view-comments .list-reply, -.container-edit-comment .list-reply, -.container-add-reply .list-reply, -.page-edit-comment .list-reply, -.page-add-reply .list-reply, -.page-edit-reply .list-reply { - padding-left: 26px; -} -.page-comments .reply-textarea, -.add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .comment-textarea, -.add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .edit-reply-textarea, -.add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - resize: vertical; -} -.page-comments .user-name, -.add-comment .user-name, -.page-view-comments .user-name, -.container-edit-comment .user-name, -.container-add-reply .user-name, -.page-edit-comment .user-name, -.page-add-reply .user-name, -.page-edit-reply .user-name { - font-size: 17px; - line-height: 22px; - color: #000000; - margin: 0; - font-weight: bold; -} -.page-comments .comment-date, -.add-comment .comment-date, -.page-view-comments .comment-date, -.container-edit-comment .comment-date, -.container-add-reply .comment-date, -.page-edit-comment .comment-date, -.page-add-reply .comment-date, -.page-edit-reply .comment-date, -.page-comments .reply-date, -.add-comment .reply-date, -.page-view-comments .reply-date, -.container-edit-comment .reply-date, -.container-add-reply .reply-date, -.page-edit-comment .reply-date, -.page-add-reply .reply-date, -.page-edit-reply .reply-date { - font-size: 13px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 0px; -} -.page-comments .comment-text, -.add-comment .comment-text, -.page-view-comments .comment-text, -.container-edit-comment .comment-text, -.container-add-reply .comment-text, -.page-edit-comment .comment-text, -.page-add-reply .comment-text, -.page-edit-reply .comment-text, -.page-comments .reply-text, -.add-comment .reply-text, -.page-view-comments .reply-text, -.container-edit-comment .reply-text, -.container-add-reply .reply-text, -.page-edit-comment .reply-text, -.page-add-reply .reply-text, -.page-edit-reply .reply-text { - color: #000000; - font-size: 15px; - line-height: 25px; - margin: 0; - max-width: 100%; - padding-right: 15px; -} -.page-comments .comment-text pre, -.add-comment .comment-text pre, -.page-view-comments .comment-text pre, -.container-edit-comment .comment-text pre, -.container-add-reply .comment-text pre, -.page-edit-comment .comment-text pre, -.page-add-reply .comment-text pre, -.page-edit-reply .comment-text pre, -.page-comments .reply-text pre, -.add-comment .reply-text pre, -.page-view-comments .reply-text pre, -.container-edit-comment .reply-text pre, -.container-add-reply .reply-text pre, -.page-edit-comment .reply-text pre, -.page-add-reply .reply-text pre, -.page-edit-reply .reply-text pre { - white-space: pre-wrap; -} -.page-comments .reply-item, -.add-comment .reply-item, -.page-view-comments .reply-item, -.container-edit-comment .reply-item, -.container-add-reply .reply-item, -.page-edit-comment .reply-item, -.page-add-reply .reply-item, -.page-edit-reply .reply-item { - margin-top: 15px; - padding-right: 16px; - padding-top: 13px; -} -.page-comments .reply-item .header-reply, -.add-comment .reply-item .header-reply, -.page-view-comments .reply-item .header-reply, -.container-edit-comment .reply-item .header-reply, -.container-add-reply .reply-item .header-reply, -.page-edit-comment .reply-item .header-reply, -.page-add-reply .reply-item .header-reply, -.page-edit-reply .reply-item .header-reply { - display: flex; - justify-content: space-between; -} -.page-comments .reply-item .user-name, -.add-comment .reply-item .user-name, -.page-view-comments .reply-item .user-name, -.container-edit-comment .reply-item .user-name, -.container-add-reply .reply-item .user-name, -.page-edit-comment .reply-item .user-name, -.page-add-reply .reply-item .user-name, -.page-edit-reply .reply-item .user-name { - padding-top: 3px; -} -.page-comments .reply-item:before, -.add-comment .reply-item:before, -.page-view-comments .reply-item:before, -.container-edit-comment .reply-item:before, -.container-add-reply .reply-item:before, -.page-edit-comment .reply-item:before, -.page-add-reply .reply-item:before, -.page-edit-reply .reply-item:before { - content: ''; - position: absolute; - left: auto; - bottom: 0; - right: auto; - top: 0; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -.page-comments .comment-quote, -.add-comment .comment-quote, -.page-view-comments .comment-quote, -.container-edit-comment .comment-quote, -.container-add-reply .comment-quote, -.page-edit-comment .comment-quote, -.page-add-reply .comment-quote, -.page-edit-reply .comment-quote { - color: #446995; - border-left: 1px solid #446995; - padding-left: 10px; - padding-right: 16px; - margin: 5px 0; - font-size: 15px; -} -.page-comments .wrap-comment, -.add-comment .wrap-comment, -.page-view-comments .wrap-comment, -.container-edit-comment .wrap-comment, -.container-add-reply .wrap-comment, -.page-edit-comment .wrap-comment, -.page-add-reply .wrap-comment, -.page-edit-reply .wrap-comment, -.page-comments .wrap-reply, -.add-comment .wrap-reply, -.page-view-comments .wrap-reply, -.container-edit-comment .wrap-reply, -.container-add-reply .wrap-reply, -.page-edit-comment .wrap-reply, -.page-add-reply .wrap-reply, -.page-edit-reply .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-comments .comment-textarea, -.add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .reply-textarea, -.add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .edit-reply-textarea, -.add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - margin-top: 10px; - background: transparent; - outline: none; - width: 100%; - font-size: 17px; - border: none; - border-radius: 3px; - min-height: 100px; -} -.settings.popup .list-block ul.list-reply:last-child:after, -.settings.popover .list-block ul.list-reply:last-child:after { - display: none; -} -.container-edit-comment .page { - background-color: #FFFFFF; -} -.container-view-comment { - position: fixed; - -webkit-transition: height 100ms; - transition: height 120ms; - background-color: #FFFFFF; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - height: 50%; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12); -} -.container-view-comment .pages { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments .list-block { - margin-bottom: 100px; -} -.container-view-comment .page-view-comments .list-block ul:before, -.container-view-comment .page-view-comments .list-block ul:after { - content: none; -} -.container-view-comment .page-view-comments .list-block .item-inner { - padding: 0; -} -.container-view-comment .toolbar { - position: fixed; - background-color: #FFFFFF; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .toolbar:before { - content: none; -} -.container-view-comment .toolbar .toolbar-inner { - display: flex; - justify-content: space-between; - padding: 0 16px; -} -.container-view-comment .toolbar .toolbar-inner .button-left { - min-width: 80px; -} -.container-view-comment .toolbar .toolbar-inner .button-right { - min-width: 62px; - display: flex; - justify-content: space-between; -} -.container-view-comment .toolbar .toolbar-inner .button-right a { - padding: 0 12px; -} -.container-view-comment .swipe-container { - display: flex; - justify-content: center; - height: 40px; -} -.container-view-comment .swipe-container .icon-swipe { - margin-top: 8px; - width: 40px; - height: 4px; - background: rgba(0, 0, 0, 0.12); - border-radius: 2px; -} -.container-view-comment .list-block { - margin-top: 0; -} -.container-view-comment.popover { - position: absolute; - border-radius: 4px; - min-height: 170px; - height: 400px; - max-height: 600px; -} -.container-view-comment.popover .toolbar { - position: absolute; - border-radius: 0 0 4px 4px; -} -.container-view-comment.popover .toolbar .toolbar-inner { - padding-right: 0; -} -.container-view-comment.popover .pages { - position: absolute; -} -.container-view-comment.popover .pages .page { - border-radius: 13px; -} -.container-view-comment.popover .pages .page .page-content { - padding: 16px; - padding-bottom: 80px; -} -.container-view-comment.popover .pages .page .page-content .list-block { - margin-bottom: 0px; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content { - padding-left: 0; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, -.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .block-reply { - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { - min-height: 70px; - width: 278px; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; -} -.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { - min-height: 60px; - width: 100%; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; - height: 60px; - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .comment-text { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 8px; - min-height: 80px; - height: 80px; -} -#done-comment { - color: #446995; -} -.page-add-comment { - background-color: #FFFFFF; -} -.page-add-comment .wrap-comment, -.page-add-comment .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-add-comment .wrap-comment .header-comment, -.page-add-comment .wrap-reply .header-comment { - justify-content: flex-start; -} -.page-add-comment .wrap-comment .user-name, -.page-add-comment .wrap-reply .user-name { - font-weight: bold; - font-size: 17px; - padding-left: 5px; -} -.page-add-comment .wrap-comment .comment-date, -.page-add-comment .wrap-reply .comment-date { - font-size: 13px; - color: #6d6d72; - padding-left: 5px; -} -.page-add-comment .wrap-comment .wrap-textarea, -.page-add-comment .wrap-reply .wrap-textarea { - margin-top: 16px; - padding-right: 6px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { - font-size: 17px; - border: none; - margin-top: 0; - min-height: 100px; - border-radius: 4px; - width: 100%; - padding-left: 5px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { - color: #8e8e93; - font-size: 17px; -} -.container-add-reply { - height: 100%; -} -.container-add-reply .navbar a.link i + span { - margin-left: 0; -} -.container-add-reply .page { - background-color: #FFFFFF; -} -.actions-modal-button.color-red { - color: #ff3b30; -} -.page-edit-comment, -.page-add-reply, -.page-edit-reply { - background-color: #FFFFFF; -} -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - justify-content: flex-start; -} -.page-edit-comment .navbar .right, -.page-add-reply .navbar .right, -.page-edit-reply .navbar .right { - height: 100%; -} -.page-edit-comment .navbar .right #add-reply, -.page-add-reply .navbar .right #add-reply, -.page-edit-reply .navbar .right #add-reply, -.page-edit-comment .navbar .right #edit-comment, -.page-add-reply .navbar .right #edit-comment, -.page-edit-reply .navbar .right #edit-comment, -.page-edit-comment .navbar .right #edit-reply, -.page-add-reply .navbar .right #edit-reply, -.page-edit-reply .navbar .right #edit-reply { - display: flex; - align-items: center; - padding-left: 16px; - padding-right: 16px; - height: 100%; -} -.container-edit-comment { - position: fixed; -} -.tablet .searchbar.document.replace .center .searchbar:first-child { - margin-right: 10px; -} -.tablet .searchbar.document.replace .center .replace { - display: flex; -} -.tablet .searchbar.document.replace .right .replace { - display: flex; - margin: 0 10px; -} -.tablet .searchbar.document .center { - width: 100%; -} -.tablet .searchbar.document .center .searchbar { - background: inherit; - padding: 0; -} -.tablet .searchbar.document .center .replace { - display: none; -} -.tablet .searchbar.document .right .prev { - margin-left: 0; -} -.tablet .searchbar.document .right .replace { - display: none; -} -.phone .searchbar.document.replace { - height: 88px; -} -.phone .searchbar.document.replace .left { - margin-top: -44px; -} -.phone .searchbar.document.replace .center .searchbar-input { - margin: 8px 0; -} -.phone .searchbar.document.replace .center .replace { - display: block; -} -.phone .searchbar.document.replace .right > .replace { - display: flex; -} -.phone .searchbar.document .left, -.phone .searchbar.document .center, -.phone .searchbar.document .right { - flex-direction: column; -} -.phone .searchbar.document .left { - min-width: 22px; - max-width: 22px; -} -.phone .searchbar.document .center { - width: 100%; -} -.phone .searchbar.document .center .searchbar { - background: inherit; - padding: 0; -} -.phone .searchbar.document .center .searchbar:after { - content: none; -} -.phone .searchbar.document .center .replace { - display: none; -} -.phone .searchbar.document .right > p { - margin: 0; -} -.phone .searchbar.document .right > .replace { - display: none; -} -.searchbar.document { - background-color: #f7f7f8; -} -i.icon.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; -} -i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.8%2C15c1.4-1.6%2C2.2-3.7%2C2.2-5.9c0-5-4-9-9-9C4%2C0%2C0%2C4%2C0%2C9c0%2C5%2C4%2C9%2C9%2C9c2.3%2C0%2C4.4-0.9%2C5.9-2.2l5.8%2C5.8l0.2-0.6l0.7-0.2L15.8%2C15z%20M9%2C17c-4.4%2C0-8-3.6-8-8c0-4.4%2C3.6-8%2C8-8c4.4%2C0%2C8%2C3.6%2C8%2C8C17%2C13.5%2C13.5%2C17%2C9%2C17z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-burger { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2217%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2213%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%229%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2219.3%2C5.3%206.1%2C18.4%204.6%2C16.9%2017.8%2C3.8%2017.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M8%201L3%2015h1.19995l1.77686-5h5.04638l.61573%201.7325.87988-.87988L9%201zm.5%201.9L10.66772%209H6.33228z%22%20clip-rule%3D%22evenodd%22%20fill-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M18.3%2011.3l-9.2%209.1-1.5-1.5%209.2-9.1-.7-.7-9.6%209.6L6%2022l3.3-.5%209.6-9.6zm1.2%200L21%209.8s-.2-1.2-.9-1.9c-.7-.8-1.9-.9-1.9-.9l-1.5%201.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-undo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C16v2h-1v-2l0%2C0c0-2.9-2.1-5-5-5l0%2C0H1.9L5%2C14c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3l-0.4%2C0.4c-0.1%2C0.1-0.2%2C0.1-0.3%2C0l-4.2-4.2c-0.1-0.1-0.1-0.2%2C0-0.3l0.4-0.4h0.1L4.4%2C6c0.1-0.1%2C0.2-0.1%2C0.3%2C0l0.5%2C0.4c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3L1.9%2C10H16l0%2C0C19.3%2C10%2C22%2C12.7%2C22%2C16L22%2C16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-redo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C16c0-3.3%2C2.7-6%2C6-6v0h14.1l-3.3-3.3c-0.1-0.1-0.1-0.2%2C0-0.3L17.3%2C6c0.1-0.1%2C0.2-0.1%2C0.3%2C0l3.8%2C3.8c0%2C0%2C0.1%2C0%2C0.1%2C0l0.4%2C0.4c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3l-4.2%2C4.2c-0.1%2C0.1-0.2%2C0.1-0.3%2C0l-0.4-0.4c-0.1-0.1-0.1-0.2%2C0-0.3l3.1-3H6v0c-2.9%2C0-5%2C2.1-5%2C5h0v2H0L0%2C16L0%2C16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reader { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M17%2C21H1V9h6V2l0%2C0h10v5h1V1H6.2L0%2C7.6V22h18v-3h-1V21z%20M6%2C2.8V8H1.1L6%2C2.8z%20M13%2C8c-5.1%2C0-9%2C5-9%2C5s4.1%2C5%2C9%2C5c5%2C0%2C9-5%2C9-5S18%2C8%2C13%2C8z%20M8.7%2C15.5C6.8%2C14.4%2C6.4%2C13%2C6.4%2C13s0.4-1.5%2C2.4-2.6C8.3%2C11.2%2C8%2C12%2C8%2C13C8%2C13.9%2C8.3%2C14.8%2C8.7%2C15.5z%20M13%2C16.7c-2.1%2C0-3.7-1.7-3.7-3.7c0-2.1%2C1.7-3.7%2C3.7-3.7c2.1%2C0%2C3.7%2C1.7%2C3.7%2C3.7C16.7%2C15.1%2C15.1%2C16.7%2C13%2C16.7z%20M17.3%2C15.5c0.4-0.7%2C0.7-1.6%2C0.7-2.5c0-1-0.3-1.8-0.7-2.6c2%2C1.1%2C3.4%2C2.6%2C3.4%2C2.6S19.2%2C14.4%2C17.3%2C15.5z%20M13%2C11.7c-0.7%2C0-1.3%2C0.6-1.3%2C1.3s0.6%2C1.3%2C1.3%2C1.3s1.3-0.6%2C1.3-1.3S13.7%2C11.7%2C13%2C11.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-download { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23446995%22%3E%3Cpath%20d%3D%22M12%200H11L11%2014L7.39999%2010.3L6.69999%2011.1L11.5%2016L16.3%2011.1L15.6%2010.3L12%2014L12%200Z%22%2F%3E%3Cpath%20d%3D%22M14%205V6H19V20H4V6H9V5H3V21H20V5H14Z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-print { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%201H17V6H21V17H17V21H5V17H1V6H5V1ZM6%206H16V2H6V6ZM5%2016V13H2V16H5ZM2%2012H20V7H2V12ZM20%2013H17V16H20V13ZM16%2013H6V20H16V13ZM14%2016H8V15H14V16ZM14%2018H8V17H14V18Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-spellcheck { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%201L3%2015H4.2L5.97686%2010H11.0231L11.6768%2011.8394C11.955%2011.5504%2012.262%2011.2892%2012.593%2011.0605L9%201H8ZM8.5%202.9L10.6678%209H6.33223L8.5%202.9Z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2021C18.7614%2021%2021%2018.7614%2021%2016C21%2013.2386%2018.7614%2011%2016%2011C13.2386%2011%2011%2013.2386%2011%2016C11%2018.7614%2013.2386%2021%2016%2021ZM15.3536%2018.3536L19.3536%2014.3536L18.6464%2013.6464L15%2017.2929L13.3536%2015.6464L12.6464%2016.3536L14.6464%2018.3536L15%2018.7071L15.3536%2018.3536Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-review { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M2%202H19V6H18V3H3V19H18V13H19V20H2V2Z%22%2F%3E%3Cpath%20d%3D%22M15%207H6V6H15V7Z%22%2F%3E%3Cpath%20d%3D%22M6%209H15V8H6V9Z%22%2F%3E%3Cpath%20d%3D%22M13%2011H6V10H13V11Z%22%2F%3E%3Cpath%20d%3D%22M6%2013H11V12H6V13Z%22%2F%3E%3Cpath%20d%3D%22M10%2015H6V14H10V15Z%22%2F%3E%3Cpath%20d%3D%22M12%2014.5V16H13.5L21.5%208L20%206.5L12%2014.5Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-doc-setup { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-4%206%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20id%3D%22XMLID_2_%22%20d%3D%22M15%2C27H-1V15h6V8l0%2C0h10V27z%20M16%2C7H4.2L-2%2C13.6V28h18V7z%20M4%2C8.8V14h-4.9L4%2C8.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-info { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M10%2C17h2V8h-2V17z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11s4.5%2C10%2C10%2C10s10-4.5%2C10-10S16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4-9-9s4-9%2C9-9s9%2C4%2C9%2C9S16%2C20%2C11%2C20z%20M10%2C7h2V5h-2V7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C12H12v10h-1V12H1v-1h10V1h1v10h10V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.8%2C3l0.4%2C2c0.1%2C0.7%2C0.6%2C1.1%2C1.3%2C1.1c0.3%2C0%2C0.5-0.1%2C0.7-0.2l1.9-1.2l1.1%2C1.1l-1.1%2C1.8C15.8%2C8%2C15.8%2C8.5%2C16%2C8.9c0.2%2C0.4%2C0.5%2C0.7%2C1%2C0.8l2.1%2C0.5v1.6L17%2C12.2c-0.5%2C0.1-0.8%2C0.4-1%2C0.8c-0.2%2C0.4-0.1%2C0.9%2C0.1%2C1.2l1.2%2C1.9l-1.1%2C1.1l-1.8-1.1c-0.2-0.2-0.5-0.2-0.8-0.2c-0.6%2C0-1.2%2C0.5-1.3%2C1.1l-0.5%2C2.1h-1.6l-0.4-2C9.7%2C16.4%2C9.2%2C16%2C8.5%2C16c-0.3%2C0-0.5%2C0.1-0.7%2C0.2l-1.9%2C1.2l-1.1-1.1l1.1-1.8c0.3-0.4%2C0.3-0.9%2C0.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%2C0.8-0.4%2C1-0.8C6.1%2C8.7%2C6%2C8.2%2C5.8%2C7.9l-1-2l1.1-1.1l1.8%2C1.1C8%2C6.1%2C8.2%2C6.2%2C8.5%2C6.2c0.6%2C0%2C1.2-0.5%2C1.3-1.1L10.3%2C3H11.8%20M11%2C15.5c2.5%2C0%2C4.5-2%2C4.5-4.5s-2-4.5-4.5-4.5s-4.5%2C2-4.5%2C4.5S8.5%2C15.5%2C11%2C15.5%20M12.1%2C2H9.9C9.6%2C2%2C9.4%2C2.2%2C9.3%2C2.5L8.8%2C4.9c0%2C0.2-0.2%2C0.3-0.3%2C0.3s-0.1%2C0-0.2-0.1L6.2%2C3.8C6.1%2C3.7%2C6%2C3.7%2C5.8%2C3.7c-0.1%2C0-0.3%2C0-0.4%2C0.1L3.8%2C5.4c-0.1%2C0.2-0.2%2C0.5%2C0%2C0.8l1.3%2C2.1c0.1%2C0.2%2C0.1%2C0.4-0.2%2C0.5L2.5%2C9.3C2.2%2C9.4%2C2%2C9.6%2C2%2C9.9v2.2c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.6l2.4%2C0.5c0.3%2C0.1%2C0.4%2C0.3%2C0.2%2C0.5l-1.3%2C2.1c-0.2%2C0.2-0.1%2C0.6%2C0.1%2C0.8l1.6%2C1.6c0.1%2C0.1%2C0.3%2C0.2%2C0.4%2C0.2s0.2%2C0%2C0.3-0.1L8.3%2C17c0.1-0.1%2C0.1-0.1%2C0.2-0.1s0.3%2C0.1%2C0.3%2C0.3l0.5%2C2.3C9.4%2C19.8%2C9.6%2C20%2C9.9%2C20h2.2c0.3%2C0%2C0.5-0.2%2C0.6-0.5l0.5-2.4c0-0.2%2C0.1-0.3%2C0.3-0.3c0.1%2C0%2C0.1%2C0%2C0.2%2C0.1l2.1%2C1.3c0.1%2C0.1%2C0.2%2C0.1%2C0.3%2C0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2l1.6-1.6c0.2-0.2%2C0.2-0.5%2C0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5%2C0.2-0.5l2.4-0.5c0.3-0.1%2C0.5-0.3%2C0.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%2C0.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%2C0-0.2%2C0-0.3%2C0.1l-2.1%2C1.3C13.6%2C5%2C13.6%2C5%2C13.5%2C5c-0.1%2C0-0.3-0.1-0.3-0.3l-0.5-2.2C12.6%2C2.2%2C12.4%2C2%2C12.1%2C2L12.1%2C2z%20M11%2C14.5c-1.9%2C0-3.5-1.6-3.5-3.5S9.1%2C7.5%2C11%2C7.5s3.5%2C1.6%2C3.5%2C3.5S12.9%2C14.5%2C11%2C14.5L11%2C14.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-about { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3%2C0.7-0.6%2C0.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%2C0l-8.9%2C4.1C-0.9%2C13.8-1%2C14.1-1%2C14.3s0.1%2C0.6%2C0.7%2C0.9l2.6%2C1.2l-2.6%2C1.2C-0.9%2C18-1%2C18.4-1%2C18.5c0%2C0.2%2C0.1%2C0.6%2C0.7%2C0.9l2.5%2C1.2l-2.5%2C1.2C-0.9%2C22.1-1%2C22.5-1%2C22.7c0%2C0.3%2C0.1%2C0.6%2C0.7%2C0.9l8.9%2C4.1c0.5%2C0.2%2C0.8%2C0.3%2C1.4%2C0.3s1-0.1%2C1.4-0.3l8.9-4.1c0.6-0.4%2C0.7-0.6%2C0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9%2C19.2%2C21%2C18.8%2C21%2C18.5z%20M-0.2%2C14.3L-0.2%2C14.3c0%2C0%2C0.1-0.1%2C0.3-0.2L9%2C10c0.6-0.3%2C1.5-0.3%2C2%2C0l8.9%2C4.1c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C18.6c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1C-0.1%2C14.4-0.2%2C14.3-0.2%2C14.3z%20M20.2%2C22.7L20.2%2C22.7c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C27.1c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5C20.1%2C22.7%2C20.2%2C22.7%2C20.2%2C22.7z%20M19.9%2C18.7L11%2C22.8c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0C20.2%2C18.5%2C20.1%2C18.6%2C19.9%2C18.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-help { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.6%2C1.3c-3.3%2C0-6%2C2.8-6%2C6.2c0.3%2C0%2C0.7%2C0%2C0.9%2C0c0-2.9%2C2.3-5.2%2C5.1-5.2s5.1%2C2.3%2C5.1%2C5.2c0%2C1.7-1.9%2C3.2-3%2C4.3C12.9%2C12.6%2C11%2C14.2%2C11%2C16c0%2C1.2%2C0%2C2.2%2C0%2C2.7c0.3%2C0%2C0.6%2C0%2C0.9%2C0c0-0.6%2C0-1.6%2C0-2.5c0-1.4%2C1.1-2.4%2C2.2-3.5c1.7-1.5%2C3.5-3.1%2C3.5-5.2C17.6%2C4.1%2C14.9%2C1.3%2C11.6%2C1.3z%20M11.5%2C20.2c-0.3%2C0-0.5%2C0.2-0.5%2C0.5v0.8c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.5s0.5-0.2%2C0.5-0.5v-0.8C11.9%2C20.4%2C11.7%2C20.2%2C11.5%2C20.2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-versions { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M19%2C12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2v12c0%2C1.1%2C0.9%2C2%2C2%2C2h18c1.1%2C0%2C2-0.9%2C2-2V14C21%2C12.9%2C20.1%2C12%2C19%2C12z%20M5%2C9h10c0.6%2C0%2C1%2C0.4%2C1%2C1H4C4%2C9.4%2C4.4%2C9%2C5%2C9z%20M3%2C11h14c0.6%2C0%2C1%2C0.4%2C1%2C1H2C2%2C11.4%2C2.4%2C11%2C3%2C11z%20M20%2C26c0%2C0.6-0.4%2C1-1%2C1H1c-0.6%2C0-1-0.4-1-1V14c0-0.6%2C0.4-1%2C1-1h18c0.6%2C0%2C1%2C0.4%2C1%2C1V26z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-additional { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M18.5%2C15.5c-1.1%2C0-2%2C0.9-2%2C2s0.9%2C2%2C2%2C2s2-0.9%2C2-2S19.6%2C15.5%2C18.5%2C15.5z%20M18.5%2C18.5c-0.6%2C0-1-0.4-1-1c0-0.6%2C0.4-1%2C1-1s1%2C0.4%2C1%2C1C19.5%2C18.1%2C19.1%2C18.5%2C18.5%2C18.5z%20M18.5%2C7.5c1.1%2C0%2C2-0.9%2C2-2c0-1.1-0.9-2-2-2s-2%2C0.9-2%2C2C16.5%2C6.6%2C17.4%2C7.5%2C18.5%2C7.5z%20M18.5%2C4.5c0.6%2C0%2C1%2C0.4%2C1%2C1s-0.4%2C1-1%2C1s-1-0.4-1-1S17.9%2C4.5%2C18.5%2C4.5z%20M18.5%2C9.5c-1.1%2C0-2%2C0.9-2%2C2s0.9%2C2%2C2%2C2s2-0.9%2C2-2S19.6%2C9.5%2C18.5%2C9.5z%20M18.5%2C12.5c-0.6%2C0-1-0.4-1-1c0-0.6%2C0.4-1%2C1-1s1%2C0.4%2C1%2C1C19.5%2C12.1%2C19.1%2C12.5%2C18.5%2C12.5z%20M6.9%2C3.8L1%2C18.9h1.5l1.8-4.7h6.9l1.7%2C4.7h1.5L8.6%2C3.8H6.9z%20M4.7%2C12.9l3-7.9l3%2C7.9H4.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-color { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.9%2C12l2.3-6.3l2.2%2C6.3H8.9z%20M4.7%2C17.8h2l1.6-4.3h5.6l1.5%2C4.3h2.1L12.3%2C3.5h-2.2L4.7%2C17.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-selection { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M7.6%2C10.3c0.2%2C0.3%2C0.4%2C0.4%2C0.5%2C0.5c0.3%2C0.2%2C0.6%2C0.3%2C1%2C0.3c0.7%2C0%2C1.3-0.3%2C1.7-0.8c0.4-0.5%2C0.6-1.2%2C0.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%2C0-0.6%2C0.1-0.9%2C0.2C8%2C6%2C7.8%2C6.2%2C7.6%2C6.4V3.8H6.8V11h0.8V10.3z%20M8%2C6.9c0.3-0.3%2C0.7-0.4%2C1.1-0.4c0.5%2C0%2C0.8%2C0.2%2C1%2C0.5c0.2%2C0.4%2C0.4%2C0.8%2C0.4%2C1.4c0%2C0.6-0.1%2C1.1-0.4%2C1.5c-0.2%2C0.4-0.6%2C0.6-1.1%2C0.6c-0.6%2C0-1.1-0.3-1.3-0.9C7.6%2C9.2%2C7.6%2C8.8%2C7.6%2C8.3C7.6%2C7.7%2C7.7%2C7.2%2C8%2C6.9z%20M5.7%2C10.4c-0.1%2C0-0.2%2C0-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%2C5.8%2C4%2C5.6%2C3.3%2C5.6c-0.5%2C0-1%2C0.1-1.4%2C0.4C1.5%2C6.3%2C1.3%2C6.7%2C1.3%2C7.4h0.8c0-0.3%2C0.1-0.5%2C0.2-0.6c0.2-0.2%2C0.5-0.4%2C1-0.4c0.4%2C0%2C0.7%2C0.1%2C0.9%2C0.2c0.2%2C0.1%2C0.3%2C0.4%2C0.3%2C0.7c0%2C0.1%2C0%2C0.3-0.1%2C0.3C4.4%2C7.7%2C4.3%2C7.8%2C4.1%2C7.8L2.7%2C8C2.2%2C8.1%2C1.8%2C8.2%2C1.5%2C8.5C1.2%2C8.8%2C1%2C9.1%2C1%2C9.6c0%2C0.4%2C0.2%2C0.8%2C0.5%2C1.1c0.3%2C0.3%2C0.7%2C0.4%2C1.2%2C0.4c0.4%2C0%2C0.8-0.1%2C1.1-0.3c0.3-0.2%2C0.6-0.4%2C0.8-0.6c0%2C0.2%2C0.1%2C0.4%2C0.2%2C0.5c0.1%2C0.2%2C0.4%2C0.3%2C0.7%2C0.3c0.1%2C0%2C0.2%2C0%2C0.3%2C0c0.1%2C0%2C0.2%2C0%2C0.3-0.1v-0.6c-0.1%2C0-0.1%2C0-0.2%2C0C5.8%2C10.4%2C5.7%2C10.4%2C5.7%2C10.4z%20M4.5%2C9.1c0%2C0.5-0.2%2C0.9-0.7%2C1.2c-0.3%2C0.1-0.6%2C0.2-0.9%2C0.2c-0.3%2C0-0.5-0.1-0.7-0.2C2%2C10.1%2C2%2C9.9%2C2%2C9.6C2%2C9.3%2C2.1%2C9%2C2.4%2C8.9c0.2-0.1%2C0.4-0.2%2C0.7-0.2l0.5-0.1c0.2%2C0%2C0.3-0.1%2C0.5-0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2V9.1z%20M18.5%2C5L8.3%2C15.3l-0.5%2C2c-0.6%2C0.4-1.3%2C0.3-1.5%2C0.6c-0.3%2C0.4%2C0.9%2C0.4%2C1.5%2C0.3c0.4%2C0%2C0.5%2C0%2C0.5-0.2l2.2-0.6L20.7%2C7.1L18.5%2C5z%20M9%2C15.3l9.5-9.5L20%2C7.1l-9.5%2C9.5L9%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bullets { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M7%2C4v1h15V4H7z%20M1%2C6h3V3H1V6z%20M7%2C12h15v-1H7V12z%20M1%2C13h3v-3H1V13z%20M7%2C19h15v-1H7V19z%20M1%2C20h3v-3H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-numbers { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M7%2C3.8v1h15v-1H7z%20M7%2C11.8h15v-1H7V11.8z%20M7%2C18.8h15v-1H7V18.8z%20M3.1%2C6.9h0.7V2H3.3C3.2%2C2.4%2C3.1%2C2.6%2C2.9%2C2.7C2.7%2C2.8%2C2.4%2C2.9%2C2%2C2.9v0.5h1.2V6.9z%20M3.3%2C9C2.6%2C9%2C2.1%2C9.2%2C1.9%2C9.7c-0.2%2C0.3-0.2%2C0.6-0.2%2C1h0.6c0-0.3%2C0.1-0.5%2C0.1-0.7c0.2-0.3%2C0.5-0.5%2C0.9-0.5c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3s0.3%2C0.4%2C0.3%2C0.7c0%2C0.2-0.1%2C0.5-0.3%2C0.7c-0.1%2C0.1-0.3%2C0.3-0.6%2C0.4l-0.7%2C0.4c-0.4%2C0.3-0.7%2C0.5-0.9%2C0.9c-0.2%2C0.3-0.2%2C0.7-0.3%2C1.1h3.4v-0.6H2.2c0.1-0.2%2C0.2-0.5%2C0.4-0.7c0.1-0.1%2C0.3-0.2%2C0.5-0.4L3.6%2C12c0.4-0.2%2C0.7-0.4%2C0.9-0.6c0.3-0.3%2C0.4-0.6%2C0.4-1c0-0.4-0.1-0.7-0.4-1C4.3%2C9.1%2C3.9%2C9%2C3.3%2C9z%20M4.1%2C18.3c0.2-0.1%2C0.3-0.2%2C0.4-0.3c0.2-0.2%2C0.2-0.4%2C0.2-0.7c0-0.4-0.1-0.7-0.4-1C4%2C16.1%2C3.6%2C16%2C3.1%2C16c-0.6%2C0-1.1%2C0.2-1.3%2C0.7c-0.1%2C0.3-0.2%2C0.6-0.2%2C0.9h0.6c0-0.3%2C0.1-0.5%2C0.1-0.6c0.2-0.3%2C0.4-0.4%2C0.9-0.4c0.2%2C0%2C0.4%2C0.1%2C0.6%2C0.2C4%2C16.9%2C4.1%2C17%2C4.1%2C17.3c0%2C0.3-0.1%2C0.6-0.4%2C0.7c-0.1%2C0.1-0.3%2C0.1-0.6%2C0.1c-0.1%2C0-0.1%2C0-0.1%2C0c0%2C0-0.1%2C0-0.2%2C0v0.5c0%2C0%2C0.1%2C0%2C0.1%2C0c0%2C0%2C0.1%2C0%2C0.1%2C0c0.4%2C0%2C0.7%2C0.1%2C0.9%2C0.2c0.2%2C0.1%2C0.3%2C0.4%2C0.3%2C0.7c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3c-0.4%2C0-0.7-0.1-0.9-0.4c-0.1-0.1-0.2-0.4-0.2-0.7H1.5c0%2C0.5%2C0.1%2C0.8%2C0.4%2C1.2C2.1%2C20.8%2C2.5%2C21%2C3.1%2C21c0.6%2C0%2C1-0.1%2C1.3-0.4c0.3-0.3%2C0.5-0.7%2C0.5-1.1c0-0.3-0.1-0.5-0.2-0.7C4.5%2C18.5%2C4.3%2C18.3%2C4.1%2C18.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-linespacing { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpolygon%20id%3D%22XMLID_7_%22%20points%3D%2222%2C4%2022%2C3%2012%2C3%2011%2C3%201%2C3%201%2C4%2011%2C4%2011%2C4.3%208%2C7.4%208.7%2C8.1%2011%2C5.7%2011%2C17.3%208.7%2C14.9%208%2C15.6%2011%2C18.7%2011%2C19%201%2C19%201%2C20%2011%2C20%2012%2C20%2022%2C20%2022%2C19%2012%2C19%2012%2C18.6%2015%2C15.6%2014.3%2C14.9%2012%2C17.2%2012%2C5.8%2014.3%2C8.1%2015%2C7.4%2012%2C4.4%2012%2C4%20%09%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-center { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-jast { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-left { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-right { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-de-indent { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M11%2C15h11v1H11V15z%20M11%2C11h11v1H11V11z%20M11%2C7h11v1H11V7z%20M6.3%2C7L7%2C7.7l-3.8%2C3.8L7%2C15.3L6.3%2C16L2%2C11.8l-0.2-0.3L2%2C11.2L6.3%2C7z%20M1%2C3h21v1H1V3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-in-indent { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev, -i.icon.icon-prev-comment { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M16%2C20.5L15%2C21.5L4.5%2C11l0%2C0l0%2C0L15%2C0.5L16%2C1.5L6.6%2C11L16%2C20.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next, -i.icon.icon-next-comment { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.5%2C11L6%2C1.5l1.1-1.1L17.5%2C11l0%2C0l0%2C0L7.1%2C21.5L6%2C20.5L15.5%2C11z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-left { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M15%2C19h-1H8H7v-1v-3H0V2h7h1h14v4v1v3v1v3v1v3v1H15z%20M15%2C18h6v-3h-6V18z%20M15%2C14h6v-3h-6V14z%20M8%2C18h6v-3H8V18z%20M8%2C14h6v-3H8V14z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M21%2C3h-6v3h6V3z%20M15%2C7v3h6V7H15z%20M3%2C16h1v2h2v1H4v2H3v-2H1v-1h2V16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-right { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C19l0-1l0-3l0-1l0-3l0-1l0-3l0-1l0-4h14h1h7v13h-7v3v1h-1H8H7H0z%20M7%2C15H1v3h6V15z%20M7%2C11H1v3h6V11z%20M14%2C15H8v3h6V15z%20M14%2C11H8v3h6V11z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M1%2C6h6V3H1V6z%20M1%2C7v3h6V7H1z%20M19%2C18h2v1h-2v2h-1v-2h-2v-1h2v-2h1V18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-above { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C20h-6h-1H8H7H0v-1v-3v-1v-3v-1V8V7V1h15v6h6h1v1v3v1v3v1v3v1H21z%20M7%2C8H1v3h6V8z%20M7%2C12H1v3h6V12z%20M7%2C16H1v3h6V16z%20M8%2C19h6v-3H8V19z%20M8%2C15h6v-3H8V15z%20M8%2C11h6V8H8V11z%20M21%2C8h-6v3h6V8z%20M21%2C12h-6v3h6V12z%20M21%2C16h-6v3h6V16z%20M19%2C6h-1V4h-2V3h2V1h1v2h2v1h-2V6z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-below { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C1v1v3v1v3v1v3v1h-1h-6v6H0v-6v-1v-3V9V6V5V2V1h7h1h6h1h6H22z%20M7%2C10H1v3h6V10z%20M7%2C6H1v3h6V6z%20M7%2C2H1v3h6V2z%20M8%2C5h6V2H8V5z%20M8%2C9h6V6H8V9z%20M8%2C13h6v-3H8V13z%20M21%2C10h-6v3h6V10z%20M21%2C6h-6v3h6V6z%20M21%2C2h-6v3h6V2z%20M19%2C17h2v1h-2v2h-1v-2h-2v-1h2v-2h1V17z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-column { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C11H8v0.1c1.9%2C0.2%2C3.5%2C1.3%2C4.4%2C2.9H14V11z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C11h-6v3h6V11z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-row { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M1%2C18h1.2C2.1%2C17.5%2C2%2C17%2C2%2C16.5c0-0.5%2C0.1-1%2C0.2-1.5H1V18z%20M7%2C3H1v3h6V3z%20M7%2C7H1v3h6V7z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-expand-down { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M20.5%2C6.5l1.1%2C1.1L11%2C18l0%2C0l0%2C0L0.5%2C7.5l1.1-1.1l9.5%2C9.5L20.5%2C6.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagebreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M8%2C14v1h1v-1H8z%20M6%2C14v1h1v-1H6z%20M18%2C21H3v-6H2v7h17v-7h-1V21z%20M4%2C14v1h1v-1H4z%20M14%2C14v1h1v-1H14z%20M10%2C14v1h1v-1H10z%20M8.2%2C1L2%2C7.6V14h1V9h6V2l0%2C0h9v12h1V1H8.2z%20M8%2C8H3.1L8%2C2.8V8z%20M12%2C14v1h1v-1H12z%20M16%2C14v1h1v-1H16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-sectionbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C14V2H3v12H2V1h19v13H20z%20M5%2C14v1H4v-1H5z%20M7%2C14v1H6v-1H7z%20M9%2C14v1H8v-1H9z%20M11%2C14v1h-1v-1H11z%20M13%2C14v1h-1v-1H13z%20M15%2C14v1h-1v-1H15z%20M17%2C14v1h-1v-1H17z%20M18%2C14h1v1h-1V14z%20M3%2C21h17v-6h1v7H2v-7h1V21z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-stringbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M18%2C12H5.1L9%2C15.9l-0.7%2C0.7l-4.5-4.5l-0.6-0.6l0.6-0.6l4.5-4.5L9%2C7.1L5.1%2C11H18V5h1v6v1H18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagenumber { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.2%2C1L2%2C7.6V22h17V1H8.2z%20M8%2C2.8V8H3.1L8%2C2.8z%20M18%2C21H3V9h6V2l0%2C0h9V21z%20M12%2C19h1v-4h-0.7c0%2C0.2-0.1-0.1-0.1%2C0c-0.1%2C0.1-0.2%2C0-0.3%2C0c-0.1%2C0.1-0.2%2C0.1-0.4%2C0.1c-0.1%2C0-0.3%2C0-0.4%2C0V16H12V19z%20M15.3%2C17.3C15%2C17.9%2C15.1%2C18.4%2C15%2C19h0.9c0-0.3%2C0-0.6%2C0.1-0.9c0.1-0.3%2C0.1-0.6%2C0.3-0.9c0.1-0.3%2C0.3-0.6%2C0.4-0.9c0.2-0.3%2C0.1-0.3%2C0.3-0.5V15h-3v1h1.9C15.6%2C16.4%2C15.5%2C16.7%2C15.3%2C17.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-link { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M12.4%2C9.8c0%2C0-2.1-0.1-3.8%2C1.2c-2.8%2C2-3.3%2C4.3-3.3%2C4.3s1.6-1.7%2C3.5-2.5c1.7-0.7%2C3.7-0.4%2C3.7-0.4v1.9l4.8-3.3V11l-4.8-3.3V9.8z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11c0%2C5.5%2C4.5%2C10%2C10%2C10s10-4.5%2C10-10C21%2C5.5%2C16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4.1-9-9C2%2C6%2C6%2C2%2C11%2C2s9%2C4.1%2C9%2C9C20%2C16%2C16%2C20%2C11%2C20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-image-library { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bisolation%3Aisolate%3B%7D.cls-2%7Bopacity%3A0.2%3B%7D.cls-3%7Bfill%3A%23fff%3B%7D.cls-10%2C.cls-11%2C.cls-4%2C.cls-6%2C.cls-7%2C.cls-8%2C.cls-9%7Bmix-blend-mode%3Amultiply%3B%7D.cls-4%7Bfill%3Aurl(%23grad_8)%3B%7D.cls-5%7Bfill%3Aurl(%23grad_10)%3B%7D.cls-6%7Bfill%3Aurl(%23grad_12)%3B%7D.cls-7%7Bfill%3Aurl(%23grad_14)%3B%7D.cls-8%7Bfill%3Aurl(%23grad_79)%3B%7D.cls-9%7Bfill%3Aurl(%23grad_77)%3B%7D.cls-10%7Bfill%3Aurl(%23grad_75)%3B%7D.cls-11%7Bfill%3Aurl(%23grad_81)%3B%7D%3C%2Fstyle%3E%3ClinearGradient%20id%3D%22grad_8%22%20x1%3D%2211.08%22%20y1%3D%2210.26%22%20x2%3D%2211.08%22%20y2%3D%221.26%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f3e916%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_10%22%20x1%3D%2211.08%22%20y1%3D%2220.44%22%20x2%3D%2211.08%22%20y2%3D%2211.88%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235eb6e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23958cc3%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_12%22%20x1%3D%221.46%22%20y1%3D%2211.05%22%20x2%3D%2210.46%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(17%205.09)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f86867%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_14%22%20x1%3D%2211.73%22%20y1%3D%2211.05%22%20x2%3D%2220.73%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(27.28%20-5.18)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236ac07f%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_79%22%20x1%3D%2211.74%22%20y1%3D%2210.42%22%20x2%3D%2217.52%22%20y2%3D%224.63%22%20gradientTransform%3D%22translate(30.29%202.51)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3e916%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_77%22%20x1%3D%224.7%22%20y1%3D%2217.49%22%20x2%3D%2210.48%22%20y2%3D%2211.71%22%20gradientTransform%3D%22translate(23.24%2019.65)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%239595c3%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_75%22%20x1%3D%224.69%22%20y1%3D%224.64%22%20x2%3D%2210.47%22%20y2%3D%2210.42%22%20gradientTransform%3D%22translate(7.54%20-3.15)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f86867%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_81%22%20x1%3D%2211.77%22%20y1%3D%2211.78%22%20x2%3D%2217.55%22%20y2%3D%2217.56%22%20gradientTransform%3D%22translate(14.63%20-6.05)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235ec0e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%236ac07f%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Ctitle%3Eicons_for_svg%3C%2Ftitle%3E%3Cg%20class%3D%22cls-1%22%3E%3Cg%20id%3D%22%D0%A1%D0%BB%D0%BE%D0%B9_1%22%20data-name%3D%22%D0%A1%D0%BB%D0%BE%D0%B9%201%22%3E%3Crect%20class%3D%22cls-2%22%20x%3D%220.09%22%20y%3D%220.01%22%20width%3D%2222%22%20height%3D%2222%22%20rx%3D%224%22%20ry%3D%224%22%2F%3E%3Crect%20class%3D%22cls-3%22%20x%3D%220.57%22%20y%3D%220.49%22%20width%3D%2221.04%22%20height%3D%2221.04%22%20rx%3D%223.6%22%20ry%3D%223.6%22%2F%3E%3Crect%20class%3D%22cls-4%22%20x%3D%228.33%22%20y%3D%221.26%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-5%22%20x%3D%228.33%22%20y%3D%2211.76%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-6%22%20x%3D%223.21%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-5.09%2017)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-7%22%20x%3D%2213.48%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(5.18%2027.28)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-8%22%20x%3D%2211.87%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(19.64%2023.19)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-9%22%20x%3D%224.8%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(2.54%2030.33)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-10%22%20x%3D%224.83%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-3.1%207.56)%20rotate(-45)%22%2F%3E%3Crect%20class%3D%22cls-11%22%20x%3D%2211.87%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-6.07%2014.63)%20rotate(-45)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-all { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-none { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-inner { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpolygon%20points%3D%2226%2013%2014%2013%2014%201%2013%201%2013%2013%201%2013%201%2014%2013%2014%2013%2026%2014%2026%2014%2014%2026%2014%2026%2013%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-outer { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-left { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-center { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2213%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-right { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2226%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-top { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-middle { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-bottom { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2226%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-inline { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%227%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2220%22%20y%3D%2219%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M16.08%2C8.31c-1.69%2C1-2.82%2C3.91-2.82%2C3.91s-0.19.06-.07-0.22a0.33%2C0.33%2C0%2C0%2C0%2C0-.45l0.78-1.9A0.45%2C0.45%2C0%2C0%2C0%2C14%2C9.48a0.26%2C0.26%2C0%2C0%2C0%2C0-.23%2C0.24%2C0.24%2C0%2C0%2C0-.14.18%2C0.49%2C0.49%2C0%2C0%2C0%2C0%2C.19l-0.78%2C1.9a0.17%2C0.17%2C0%2C0%2C0-.11%2C0%2C0.25%2C0.25%2C0%2C0%2C1-.11%2C0l-0.78-1.9a0.47%2C0.47%2C0%2C0%2C0%2C0-.19%2C0.24%2C0.24%2C0%2C0%2C0-.14-0.18%2C0.26%2C0.26%2C0%2C0%2C0%2C0%2C.23%2C0.45%2C0.45%2C0%2C0%2C0%2C.1.17l0.78%2C1.91a0.32%2C0.32%2C0%2C0%2C0-.05.44c0.12%2C0.29-.07.22-0.07%2C0.22S11.57%2C9.29%2C9.88%2C8.31s-3.55-2-3.8-.53%2C0.23%2C1.42.37%2C2%2C0.28%2C2.34.76%2C2.75A6.19%2C6.19%2C0%2C0%2C0%2C9.62%2C13s-2.17%2C1.24-2.14%2C2%2C0.62%2C4.86%2C1.83%2C4.92%2C2-1.87%2C2.34-2.78a26.9%2C26.9%2C0%2C0%2C1%2C.93-2.84%2C8.39%2C8.39%2C0%2C0%2C1%2C.14%2C1.51c0.11%2C0.3.25%2C0.26%2C0.25%2C0.26s0.14%2C0%2C.25-0.26a8.39%2C8.39%2C0%2C0%2C1%2C.14-1.51%2C26.73%2C26.73%2C0%2C0%2C1%2C.93%2C2.84c0.34%2C0.92%2C1.13%2C2.84%2C2.34%2C2.78s1.8-4.18%2C1.83-4.92-2.14-2-2.14-2a6.19%2C6.19%2C0%2C0%2C0%2C2.42-.44c0.48-.41.62-2.13%2C0.76-2.75s0.62-.62.37-2S17.77%2C7.33%2C16.08%2C8.31Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-square { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%227%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2210%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2216%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2219%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%2219%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%2216%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%2213%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%2210%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%227%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M16.08%2C8.33c-1.69%2C1-2.82%2C3.91-2.82%2C3.91s-0.19.06-.07-0.22a0.33%2C0.33%2C0%2C0%2C0%2C0-.45l0.78-1.9A0.45%2C0.45%2C0%2C0%2C0%2C14%2C9.5a0.26%2C0.26%2C0%2C0%2C0%2C0-.23%2C0.24%2C0.24%2C0%2C0%2C0-.14.18%2C0.49%2C0.49%2C0%2C0%2C0%2C0%2C.19l-0.78%2C1.9a0.17%2C0.17%2C0%2C0%2C0-.11%2C0%2C0.25%2C0.25%2C0%2C0%2C1-.11%2C0l-0.78-1.9a0.47%2C0.47%2C0%2C0%2C0%2C0-.19%2C0.24%2C0.24%2C0%2C0%2C0-.14-0.18%2C0.26%2C0.26%2C0%2C0%2C0%2C0%2C.23%2C0.45%2C0.45%2C0%2C0%2C0%2C.1.17l0.78%2C1.91a0.32%2C0.32%2C0%2C0%2C0-.05.44c0.12%2C0.29-.07.22-0.07%2C0.22S11.57%2C9.3%2C9.88%2C8.33s-3.55-2-3.8-.53%2C0.23%2C1.42.37%2C2%2C0.28%2C2.34.76%2C2.75A6.19%2C6.19%2C0%2C0%2C0%2C9.62%2C13s-2.17%2C1.24-2.14%2C2%2C0.62%2C4.86%2C1.83%2C4.92%2C2-1.87%2C2.34-2.78a26.9%2C26.9%2C0%2C0%2C1%2C.93-2.84%2C8.39%2C8.39%2C0%2C0%2C1%2C.14%2C1.51c0.11%2C0.3.25%2C0.26%2C0.25%2C0.26s0.14%2C0%2C.25-0.26a8.39%2C8.39%2C0%2C0%2C1%2C.14-1.51%2C26.73%2C26.73%2C0%2C0%2C1%2C.93%2C2.84c0.34%2C0.92%2C1.13%2C2.84%2C2.34%2C2.78s1.8-4.18%2C1.83-4.92-2.14-2-2.14-2a6.19%2C6.19%2C0%2C0%2C0%2C2.42-.44c0.48-.41.62-2.13%2C0.76-2.75s0.62-.62.37-2S17.77%2C7.35%2C16.08%2C8.33Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-tight { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%227%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2210%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2216%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2219%22%20width%3D%227%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2219%22%20width%3D%227%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2212%22%20y%3D%2219%22%20width%3D%222%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2220%22%20y%3D%2216%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2220%22%20y%3D%2213%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%2210%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%227%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2211%22%20y%3D%227%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M16.07%2C8.3c-1.69%2C1-2.82%2C3.91-2.82%2C3.91s-0.19.06-.07-0.22a0.33%2C0.33%2C0%2C0%2C0%2C0-.45l0.78-1.9A0.45%2C0.45%2C0%2C0%2C0%2C14%2C9.47a0.26%2C0.26%2C0%2C0%2C0%2C0-.23%2C0.24%2C0.24%2C0%2C0%2C0-.14.18%2C0.49%2C0.49%2C0%2C0%2C0%2C0%2C.19l-0.78%2C1.9a0.17%2C0.17%2C0%2C0%2C0-.11%2C0%2C0.25%2C0.25%2C0%2C0%2C1-.11%2C0L12.08%2C9.61a0.47%2C0.47%2C0%2C0%2C0%2C0-.19%2C0.24%2C0.24%2C0%2C0%2C0-.14-0.18%2C0.26%2C0.26%2C0%2C0%2C0%2C0%2C.23%2C0.45%2C0.45%2C0%2C0%2C0%2C.1.17l0.78%2C1.91a0.32%2C0.32%2C0%2C0%2C0-.05.44c0.12%2C0.29-.07.22-0.07%2C0.22S11.56%2C9.28%2C9.87%2C8.3s-3.55-2-3.8-.53%2C0.23%2C1.42.37%2C2%2C0.28%2C2.34.76%2C2.76A6.17%2C6.17%2C0%2C0%2C0%2C9.62%2C13s-2.17%2C1.25-2.14%2C2%2C0.62%2C4.86%2C1.83%2C4.92%2C2-1.87%2C2.34-2.79a27%2C27%2C0%2C0%2C1%2C.93-2.85%2C8.41%2C8.41%2C0%2C0%2C1%2C.14%2C1.51c0.11%2C0.3.25%2C0.26%2C0.25%2C0.26s0.14%2C0%2C.25-0.26a8.41%2C8.41%2C0%2C0%2C1%2C.14-1.51%2C26.81%2C26.81%2C0%2C0%2C1%2C.93%2C2.85c0.34%2C0.92%2C1.13%2C2.85%2C2.34%2C2.79s1.8-4.18%2C1.83-4.92-2.14-2-2.14-2a6.17%2C6.17%2C0%2C0%2C0%2C2.42-.44c0.48-.42.62-2.13%2C0.76-2.76s0.62-.62.37-2S17.76%2C7.32%2C16.07%2C8.3Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-through { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%227%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2210%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2216%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2219%22%20width%3D%227%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2219%22%20width%3D%227%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2220%22%20y%3D%2216%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2220%22%20y%3D%2213%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%2210%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2221%22%20y%3D%227%22%20width%3D%225%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M16.09%2C8.31c-1.68%2C1-2.8%2C3.93-2.8%2C3.93s-0.19.06-.07-0.22a0.33%2C0.33%2C0%2C0%2C0%2C0-.45l0.77-1.91A0.46%2C0.46%2C0%2C0%2C0%2C14%2C9.49a0.26%2C0.26%2C0%2C0%2C0%2C0-.23%2C0.24%2C0.24%2C0%2C0%2C0-.14.18%2C0.49%2C0.49%2C0%2C0%2C0%2C0%2C.2l-0.77%2C1.91a0.17%2C0.17%2C0%2C0%2C0-.11%2C0%2C0.25%2C0.25%2C0%2C0%2C1-.11%2C0L12.12%2C9.64a0.48%2C0.48%2C0%2C0%2C0%2C0-.2%2C0.24%2C0.24%2C0%2C0%2C0-.14-0.18%2C0.26%2C0.26%2C0%2C0%2C0%2C0%2C.23%2C0.46%2C0.46%2C0%2C0%2C0%2C.1.17l0.78%2C1.92a0.32%2C0.32%2C0%2C0%2C0-.05.44c0.12%2C0.29-.07.22-0.07%2C0.22S11.61%2C9.3%2C9.93%2C8.31s-3.53-2-3.78-.54%2C0.22%2C1.43.36%2C2.05%2C0.28%2C2.35.76%2C2.77A6.08%2C6.08%2C0%2C0%2C0%2C9.68%2C13S7.52%2C14.3%2C7.55%2C15%2C8.17%2C19.92%2C9.37%2C20s2-1.88%2C2.32-2.8a27.27%2C27.27%2C0%2C0%2C1%2C.92-2.86%2C8.53%2C8.53%2C0%2C0%2C1%2C.14%2C1.52c0.11%2C0.3.25%2C0.26%2C0.25%2C0.26s0.14%2C0%2C.25-0.26a8.53%2C8.53%2C0%2C0%2C1%2C.14-1.52%2C27.09%2C27.09%2C0%2C0%2C1%2C.92%2C2.86c0.34%2C0.92%2C1.12%2C2.86%2C2.32%2C2.8s1.79-4.2%2C1.82-4.94-2.13-2-2.13-2a6.08%2C6.08%2C0%2C0%2C0%2C2.41-.45c0.48-.42.62-2.14%2C0.76-2.77s0.62-.62.36-2.05S17.77%2C7.33%2C16.09%2C8.31Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-top-bottom { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M16.08%2C8.3c-1.68%2C1-2.8%2C3.91-2.8%2C3.91s-0.19.06-.07-0.22a0.33%2C0.33%2C0%2C0%2C0%2C0-.45l0.77-1.9A0.45%2C0.45%2C0%2C0%2C0%2C14%2C9.47a0.26%2C0.26%2C0%2C0%2C0%2C0-.23%2C0.24%2C0.24%2C0%2C0%2C0-.14.18%2C0.49%2C0.49%2C0%2C0%2C0%2C0%2C.19l-0.77%2C1.9a0.17%2C0.17%2C0%2C0%2C0-.11%2C0%2C0.25%2C0.25%2C0%2C0%2C1-.11%2C0L12.12%2C9.61a0.48%2C0.48%2C0%2C0%2C0%2C0-.19%2C0.24%2C0.24%2C0%2C0%2C0-.14-0.18%2C0.26%2C0.26%2C0%2C0%2C0%2C0%2C.23%2C0.45%2C0.45%2C0%2C0%2C0%2C.1.17l0.78%2C1.91a0.32%2C0.32%2C0%2C0%2C0%2C0%2C.44c0.12%2C0.29-.07.22-0.07%2C0.22S11.6%2C9.28%2C9.92%2C8.3s-3.52-2-3.77-.53%2C0.22%2C1.42.36%2C2%2C0.28%2C2.34.76%2C2.76a6.08%2C6.08%2C0%2C0%2C0%2C2.4.44s-2.15%2C1.25-2.12%2C2%2C0.61%2C4.86%2C1.82%2C4.92%2C2-1.87%2C2.32-2.79a27.11%2C27.11%2C0%2C0%2C1%2C.92-2.85%2C8.47%2C8.47%2C0%2C0%2C1%2C.14%2C1.51c0.11%2C0.3.25%2C0.26%2C0.25%2C0.26s0.14%2C0%2C.25-0.26a8.47%2C8.47%2C0%2C0%2C1%2C.14-1.51%2C26.94%2C26.94%2C0%2C0%2C1%2C.92%2C2.85c0.34%2C0.92%2C1.12%2C2.85%2C2.32%2C2.79s1.79-4.18%2C1.82-4.92-2.12-2-2.12-2a6.08%2C6.08%2C0%2C0%2C0%2C2.4-.44c0.48-.42.62-2.13%2C0.76-2.76s0.61-.62.36-2S17.75%2C7.32%2C16.08%2C8.3Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-infront { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%227%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%2210%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%2213%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%2216%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20opacity%3D%220.3%22%20y%3D%2219%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M16.08%2C8.29c-1.69%2C1-2.82%2C3.93-2.82%2C3.93s-0.19.06-.07-0.22a0.33%2C0.33%2C0%2C0%2C0%2C0-.45l0.78-1.91A0.46%2C0.46%2C0%2C0%2C0%2C14%2C9.47a0.26%2C0.26%2C0%2C0%2C0%2C0-.23%2C0.25%2C0.25%2C0%2C0%2C0-.14.18%2C0.49%2C0.49%2C0%2C0%2C0%2C0%2C.2l-0.78%2C1.9a0.17%2C0.17%2C0%2C0%2C0-.11%2C0%2C0.25%2C0.25%2C0%2C0%2C1-.11%2C0L12.09%2C9.61a0.48%2C0.48%2C0%2C0%2C0%2C0-.2%2C0.24%2C0.24%2C0%2C0%2C0-.14-0.18%2C0.26%2C0.26%2C0%2C0%2C0%2C0%2C.23%2C0.46%2C0.46%2C0%2C0%2C0%2C.1.17l0.78%2C1.92a0.32%2C0.32%2C0%2C0%2C0-.05.44c0.12%2C0.29-.07.22-0.07%2C0.22S11.57%2C9.27%2C9.88%2C8.29s-3.55-2-3.8-.54%2C0.23%2C1.43.37%2C2.05%2C0.28%2C2.35.76%2C2.77A6.16%2C6.16%2C0%2C0%2C0%2C9.62%2C13s-2.17%2C1.25-2.14%2C2S8.1%2C19.89%2C9.31%2C20s2-1.87%2C2.34-2.8a27.1%2C27.1%2C0%2C0%2C1%2C.93-2.86%2C8.46%2C8.46%2C0%2C0%2C1%2C.14%2C1.52c0.11%2C0.3.25%2C0.26%2C0.25%2C0.26s0.14%2C0%2C.25-0.26a8.46%2C8.46%2C0%2C0%2C1%2C.14-1.52%2C26.92%2C26.92%2C0%2C0%2C1%2C.93%2C2.86c0.34%2C0.92%2C1.13%2C2.86%2C2.34%2C2.8s1.8-4.19%2C1.83-4.94-2.14-2-2.14-2a6.16%2C6.16%2C0%2C0%2C0%2C2.42-.45c0.48-.42.62-2.14%2C0.76-2.77s0.62-.62.37-2.05S17.77%2C7.31%2C16.08%2C8.29Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-behind { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M16.07%2C8.34c-1.68%2C1-2.8%2C3.91-2.8%2C3.91s-0.19.06-.07-0.22a0.33%2C0.33%2C0%2C0%2C0%2C0-.45l0.77-1.9A0.45%2C0.45%2C0%2C0%2C0%2C14%2C9.51a0.26%2C0.26%2C0%2C0%2C0%2C0-.23%2C0.24%2C0.24%2C0%2C0%2C0-.14.18%2C0.49%2C0.49%2C0%2C0%2C0%2C0%2C.19l-0.77%2C1.89a0.17%2C0.17%2C0%2C0%2C0-.11%2C0%2C0.25%2C0.25%2C0%2C0%2C1-.11%2C0l-0.77-1.9a0.48%2C0.48%2C0%2C0%2C0%2C0-.19%2C0.24%2C0.24%2C0%2C0%2C0-.14-0.18%2C0.26%2C0.26%2C0%2C0%2C0%2C0%2C.23%2C0.45%2C0.45%2C0%2C0%2C0%2C.1.17l0.78%2C1.91a0.32%2C0.32%2C0%2C0%2C0-.05.44c0.12%2C0.29-.07.22-0.07%2C0.22S11.6%2C9.32%2C9.92%2C8.34s-3.52-2-3.78-.53%2C0.22%2C1.42.36%2C2%2C0.28%2C2.34.76%2C2.75A6.1%2C6.1%2C0%2C0%2C0%2C9.67%2C13s-2.15%2C1.24-2.13%2C2%2C0.62%2C4.85%2C1.82%2C4.91%2C2-1.86%2C2.32-2.78a27%2C27%2C0%2C0%2C1%2C.92-2.84%2C8.43%2C8.43%2C0%2C0%2C1%2C.14%2C1.51c0.11%2C0.3.25%2C0.26%2C0.25%2C0.26s0.14%2C0%2C.25-0.26a8.43%2C8.43%2C0%2C0%2C1%2C.14-1.51%2C26.83%2C26.83%2C0%2C0%2C1%2C.92%2C2.84c0.34%2C0.92%2C1.12%2C2.84%2C2.32%2C2.78s1.79-4.17%2C1.82-4.91-2.13-2-2.13-2a6.1%2C6.1%2C0%2C0%2C0%2C2.41-.44c0.48-.41.62-2.13%2C0.76-2.75s0.62-.62.36-2S17.75%2C7.36%2C16.07%2C8.34Z%22%2F%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%227%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2210%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2216%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2219%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-table-inline { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%227%22%20width%3D%2214%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-wrap-table-flow { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%227%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2210%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2213%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2216%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2219%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2223%22%20y%3D%2219%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2223%22%20y%3D%2216%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2223%22%20y%3D%2213%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2223%22%20y%3D%2210%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2223%22%20y%3D%227%22%20width%3D%224%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%227%22%20width%3D%2214%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-block-align-left { - width: 28px; - height: 28px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-block-align-center { - width: 28px; - height: 28px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%228.08%22%20width%3D%2212%22%20height%3D%2210.92%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-block-align-right { - width: 28px; - height: 28px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2215%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-backward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3Cpath%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-forward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-background { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-foreground { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-docx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2266px%22%20height%3D%2266px%22%20viewBox%3D%2222.015%2020.75%2066%2066%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D.cls-2%7Bfill%3A%23fff%3B%7D.cls-3%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22g3103%22%20transform%3D%22translate(-21.015556%2C0)%22%20display%3D%22none%22%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M78.521%2C0h7.475c0%2C3.337%2C0%2C6.663%2C0%2C10%20%20%20c13.375%2C0.075%2C26.738-0.138%2C40.101%2C0.075c2.85-0.288%2C5.087%2C1.925%2C4.825%2C4.775c0.212%2C24.625-0.051%2C49.262%2C0.125%2C73.887%20%20%20c-0.125%2C2.525%2C0.25%2C5.325-1.213%2C7.563c-1.825%2C1.3-4.188%2C1.138-6.313%2C1.237C111.008%2C97.475%2C98.508%2C97.5%2C85.996%2C97.5%20%20%20c0%2C3.338%2C0%2C6.662%2C0%2C10h-7.813c-19.024-3.475-38.1-6.662-57.162-10c-0.013-29.162%2C0-58.325%2C0-87.475%20%20%20C40.183%2C6.675%2C59.359%2C3.413%2C78.521%2C0z%22%20%2F%3E%3Cpath%20class%3D%22cls-2%22%20d%3D%22M85.996%2C13.75c13.75%2C0%2C27.5%2C0%2C41.25%2C0%20%20%20c0%2C26.663%2C0%2C53.338%2C0%2C80c-13.75%2C0-27.5%2C0-41.25%2C0c0-3.338%2C0-6.662%2C0-10c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.662%2C0-3.338%2C0-5%20%20%20c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.088%2C0-4.162%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.662%2C0-3.338%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0%20%20%20c0-2.088%2C0-4.162%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.662%2C0-3.338%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.087%2C0-4.163%2C0-6.25%20%20%20c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.663%2C0-3.337%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.087%2C0-4.163%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0%20%20%20c0-1.663%2C0-3.337%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.087%2C0-4.163%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.663%2C0-3.337%2C0-5%20%20%20c-10.837%2C0-21.662%2C0-32.5%2C0C85.996%2C19.587%2C85.996%2C16.663%2C85.996%2C13.75z%22%20%2F%3E%3Cpath%20class%3D%22cls-2%22%20d%3D%22M46.846%2C35.837%20%20%20c2.375-0.137%2C4.75-0.237%2C7.125-0.362c1.662%2C8.438%2C3.362%2C16.862%2C5.162%2C25.262c1.413-8.675%2C2.976-17.325%2C4.487-25.987%20%20%20c2.5-0.087%2C5-0.225%2C7.488-0.375c-2.825%2C12.112-5.301%2C24.325-8.388%2C36.362c-2.088%2C1.088-5.213-0.05-7.688%2C0.125%20%20%20c-1.663-8.274-3.601-16.5-5.088-24.813c-1.462%2C8.075-3.362%2C16.075-5.037%2C24.101c-2.4-0.125-4.813-0.275-7.226-0.438%20%20%20c-2.074-11-4.512-21.925-6.449-32.95c2.137-0.1%2C4.287-0.188%2C6.425-0.263c1.287%2C7.962%2C2.75%2C15.888%2C3.875%2C23.862%20%20%20C43.297%2C52.188%2C45.096%2C44.013%2C46.846%2C35.837z%22%20%2F%3E%3C%2Fg%3E%3Cpath%20class%3D%22cls-3%22%20d%3D%22M50.69%2C36.792c2.375-0.137%2C4.75-0.237%2C7.125-0.362%20%20c1.662%2C8.438%2C3.362%2C16.862%2C5.162%2C25.262c1.413-8.675%2C2.976-17.325%2C4.487-25.987c2.5-0.087%2C5-0.225%2C7.488-0.375%20%20c-2.825%2C12.112-5.301%2C24.325-8.388%2C36.362c-2.088%2C1.088-5.213-0.05-7.688%2C0.125c-1.663-8.274-3.601-16.5-5.088-24.813%20%20c-1.462%2C8.075-3.362%2C16.075-5.037%2C24.101c-2.4-0.125-4.813-0.275-7.226-0.438c-2.074-11-4.512-21.925-6.449-32.95%20%20c2.137-0.1%2C4.287-0.188%2C6.425-0.263c1.287%2C7.962%2C2.75%2C15.888%2C3.875%2C23.862C47.14%2C53.143%2C48.94%2C44.968%2C50.69%2C36.792z%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-dotx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D.cls-2%7Bfill%3A%23fff%3B%7D.cls-3%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_38%22%20data-name%3D%22Path%2038%22%20d%3D%22M12.223%2C119.714c1.251-.066%2C2.5-.115%2C3.752-.177.875%2C4.123%2C1.771%2C8.239%2C2.718%2C12.343.744-4.239%2C1.567-8.464%2C2.363-12.7%2C1.317-.042%2C2.633-.109%2C3.944-.183-1.488%2C5.917-2.792%2C11.886-4.417%2C17.767-1.1.531-2.745-.026-4.049.06-.876-4.042-1.9-8.061-2.679-12.123-.77%2C3.945-1.771%2C7.854-2.653%2C11.775-1.264-.06-2.535-.134-3.805-.213C6.3%2C130.892%2C5.02%2C125.553%2C4%2C120.167c1.125-.049%2C2.258-.093%2C3.384-.129.678%2C3.889%2C1.448%2C7.762%2C2.041%2C11.659C10.353%2C127.7%2C11.3%2C123.708%2C12.223%2C119.714Z%22%20transform%3D%22translate(-2%20-117)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20class%3D%22cls-2%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-txt { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22%2017H2V18H22V17Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2020H2V21H22V20Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2014H2V15H22V14Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2011H2V12H22V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%208H2V9H22V8Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%205H2V6H22V5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%202H2V3H22V2Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdf { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M11.875%2C18.648c0.8-1.567%2C1.709-3.334%2C2.437-5.107l0%2C0%20%20l0.288-0.7c-0.95-3.616-1.52-6.519-1.011-8.396l0%2C0c0.137-0.489%2C0.704-0.786%2C1.31-0.786l0%2C0l0.369%2C0.005h0.068%20%20c0.83-0.013%2C1.22%2C1.042%2C1.264%2C1.453l0%2C0c0.073%2C0.683-0.243%2C1.839-0.243%2C1.839l0%2C0c0-0.467%2C0.018-1.221-0.276-1.873l0%2C0%20%20c-0.343-0.753-0.671-1.204-0.965-1.275l0%2C0c-0.148%2C0.099-0.292%2C0.304-0.342%2C0.699l0%2C0c-0.103%2C0.553-0.133%2C1.252-0.133%2C1.612l0%2C0%20%20c0%2C1.272%2C0.25%2C2.952%2C0.743%2C4.683l0%2C0c0.093-0.268%2C0.174-0.526%2C0.24-0.767l0%2C0c0.101-0.38%2C0.743-2.901%2C0.743-2.901l0%2C0%20%20c0%2C0-0.162%2C3.355-0.388%2C4.371l0%2C0c-0.048%2C0.215-0.102%2C0.427-0.158%2C0.644l0%2C0c0.812%2C2.268%2C2.121%2C4.292%2C3.68%2C5.75l0%2C0%20%20c0.615%2C0.575%2C1.393%2C1.038%2C2.128%2C1.461l0%2C0c1.605-0.229%2C3.084-0.338%2C4.318-0.324l0%2C0c1.637%2C0.021%2C2.838%2C0.264%2C3.324%2C0.743l0%2C0%20%20c0.238%2C0.232%2C0.335%2C0.514%2C0.365%2C0.83l0%2C0c0.007%2C0.122-0.053%2C0.41-0.07%2C0.482l0%2C0c0.018-0.088%2C0.018-0.518-1.297-0.938l0%2C0%20%20c-1.034-0.33-2.971-0.32-5.295-0.073l0%2C0c2.688%2C1.315%2C5.307%2C1.968%2C6.137%2C1.577l0%2C0c0.203-0.1%2C0.449-0.437%2C0.449-0.437l0%2C0%20%20c0%2C0-0.146%2C0.665-0.252%2C0.831l0%2C0c-0.134%2C0.18-0.396%2C0.376-0.646%2C0.441l0%2C0c-1.311%2C0.35-4.722-0.459-7.695-2.158l0%2C0%20%20c-3.322%2C0.489-6.972%2C1.393-9.897%2C2.353l0%2C0c-2.874%2C5.037-5.035%2C7.351-6.793%2C6.471l0%2C0L3.63%2C28.833%20%20c-0.263-0.15-0.303-0.516-0.242-0.813l0%2C0c0.205-1.003%2C1.462-2.513%2C3.988-4.021l0%2C0c0.272-0.165%2C1.483-0.805%2C1.483-0.805l0%2C0%20%20c0%2C0-0.896%2C0.868-1.106%2C1.038l0%2C0c-2.016%2C1.652-3.504%2C3.73-3.467%2C4.536l0%2C0l0.007%2C0.069C6.005%2C28.594%2C8.573%2C25.109%2C11.875%2C18.648%20%20%20M12.921%2C19.184c-0.551%2C1.038-1.09%2C2.001-1.588%2C2.886l0%2C0c2.752-1.153%2C5.715-1.892%2C8.535-2.416l0%2C0%20%20c-0.379-0.262-0.746-0.539-1.093-0.832l0%2C0c-1.554-1.314-2.737-2.955-3.595-4.681l0%2C0C14.636%2C15.607%2C13.989%2C17.166%2C12.921%2C19.184%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdfa { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.875%2018.648L11.9617%2018.4783C12.7401%2016.954%2013.6102%2015.2503%2014.312%2013.541L14.6%2012.841C13.65%209.225%2013.08%206.322%2013.589%204.445C13.726%203.956%2014.293%203.659%2014.899%203.659L15.268%203.664H15.336C16.166%203.651%2016.556%204.706%2016.6%205.117C16.673%205.8%2016.357%206.956%2016.357%206.956L16.3571%206.87946C16.358%206.40944%2016.3594%205.70047%2016.081%205.083C15.738%204.33%2015.41%203.879%2015.116%203.808C14.968%203.907%2014.824%204.112%2014.774%204.507C14.671%205.06%2014.641%205.759%2014.641%206.119C14.641%207.391%2014.891%209.071%2015.384%2010.802C15.477%2010.534%2015.558%2010.276%2015.624%2010.035C15.725%209.655%2016.367%207.134%2016.367%207.134C16.367%207.134%2016.205%2010.489%2015.979%2011.505C15.931%2011.72%2015.877%2011.932%2015.821%2012.149C16.633%2014.417%2017.942%2016.441%2019.501%2017.899C19.9467%2018.3157%2020.4779%2018.6735%2021.0164%2019H29C30.1046%2019%2031%2019.8954%2031%2021V29C31%2030.1046%2030.1046%2031%2029%2031H17C15.8954%2031%2015%2030.1046%2015%2029V21.5492C13.6156%2021.9019%2012.2807%2022.2896%2011.07%2022.687C8.19599%2027.724%206.03499%2030.038%204.27699%2029.158L3.62999%2028.833C3.36699%2028.683%203.32699%2028.317%203.38799%2028.02C3.59299%2027.017%204.84999%2025.507%207.37599%2023.999C7.64799%2023.834%208.85899%2023.194%208.85899%2023.194C8.85899%2023.194%207.96299%2024.062%207.75299%2024.232C5.73699%2025.884%204.24899%2027.962%204.28599%2028.768L4.29299%2028.837C6.00499%2028.594%208.57299%2025.109%2011.875%2018.648ZM18.775%2018.822C18.8461%2018.882%2018.918%2018.9413%2018.9906%2019H17C15.9681%2019%2015.1187%2019.7815%2015.0114%2020.785C13.7648%2021.146%2012.529%2021.5689%2011.333%2022.07C11.831%2021.185%2012.37%2020.222%2012.921%2019.184C13.989%2017.166%2014.636%2015.607%2015.18%2014.141C16.038%2015.867%2017.221%2017.508%2018.775%2018.822ZM21.5553%2027.3521H24.4447L24.9995%2029H26.7518L23.7581%2021.002H22.231L19.2537%2029H21.006L21.5553%2027.3521ZM23.9998%2026.0172H22.0002L22.9945%2023.0234L23.9998%2026.0172Z%22%20class%3D%22cls-1%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-odt { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%20193.631%20193.63%22%20height%3D%22193.63px%22%20width%3D%22193.631px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M193.16%2C59.725v-0.006%20%20c-0.334-0.173-0.671-0.334-1.004-0.497c-5.357-2.586-11.257-4.287-17.526-4.88c-11.083-1.049-21.673%2C1.496-30.622%2C6.678%20%20c-6.13-3.477-13.072-5.741-20.542-6.448c-10.298-0.974-20.17%2C1.16-28.697%2C5.629c-0.084%2C0.044-0.17%2C0.095-0.251%2C0.135%20%20c-0.207%2C0.162-0.347%2C0.414-0.347%2C0.697c0%2C0.492%2C0.392%2C0.89%2C0.889%2C0.89c0.046%2C0%2C0.091-0.007%2C0.139-0.017%20%20c0.021-0.002%2C0.042-0.011%2C0.061-0.015c4.586-0.848%2C9.368-1.088%2C14.243-0.627c13.683%2C1.293%2C25.609%2C5.521%2C33.975%2C15.011%20%20c0.436%2C0.455%2C0.822%2C0.427%2C1.265-0.024c10.524-12.2%2C26.663-17.021%2C44.006-15.382c0.968%2C0.094%2C1.921%2C0.213%2C2.871%2C0.355%20%20c0.33%2C0.05%2C0.836%2C0.134%2C1.133%2C0.167c0.572%2C0.063%2C0.88-0.397%2C0.88-0.891C193.629%2C60.166%2C193.486%2C59.886%2C193.16%2C59.725L193.16%2C59.725z%22%20class%3D%22cls-1%22%20%2F%3E%3Cpath%20d%3D%22M173.053%2C102.654c-0.056-0.029-0.106-0.046-0.154-0.066%20%20c-10.517-4.349-22.02-6.758-34.093-6.758c-19.293%2C0-37.155%2C6.127-51.757%2C16.524c-11.146-4.993-23.497-7.776-36.496-7.776%20%20c-18.485%2C0-35.648%2C5.617-49.895%2C15.237c-0.047%2C0.029-0.095%2C0.066-0.149%2C0.104C0.205%2C120.154%2C0%2C120.528%2C0%2C120.957%20%20c0%2C0.729%2C0.592%2C1.324%2C1.323%2C1.324c0.086%2C0%2C0.174-0.013%2C0.259-0.03c0.058-0.015%2C0.107-0.028%2C0.161-0.048%20%20c8.166-2.456%2C16.832-3.791%2C25.798-3.791c23.836%2C0%2C45.083%2C5.633%2C61.08%2C20.68c0.038%2C0.029%2C0.071%2C0.066%2C0.111%2C0.104%20%20c0.232%2C0.205%2C0.53%2C0.325%2C0.863%2C0.325c0.412%2C0%2C0.774-0.189%2C1.018-0.486c0.006%2C0.004%2C0.515-0.72%2C0.773-1.07%20%20c16.246-22.216%2C43.03-33.172%2C72.846-33.172c2.128%2C0%2C4.246%2C0.08%2C6.337%2C0.225c0.602%2C0.047%2C1.874%2C0.144%2C1.903%2C0.144%20%20c0.726%2C0%2C1.322-0.591%2C1.322-1.324C173.796%2C103.313%2C173.492%2C102.862%2C173.053%2C102.654L173.053%2C102.654z%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-ott { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-ott%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22ott%22%20clip-path%3D%22url(%23clip-ott)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_33%22%20data-name%3D%22Path%2033%22%20d%3D%22M125.173%2C121h0c-.046-.03-.093-.059-.141-.088a6.133%2C6.133%2C0%2C0%2C0-2.467-.869%2C6.014%2C6.014%2C0%2C0%2C0-4.309%2C1.188%2C6.223%2C6.223%2C0%2C0%2C0-2.892-1.147%2C5.965%2C5.965%2C0%2C0%2C0-4.039%2C1l-.036.024a.176.176%2C0%2C0%2C0-.049.125.145.145%2C0%2C0%2C0%2C.126.158l.019%2C0a.019.019%2C0%2C0%2C0%2C.009%2C0%2C5.781%2C5.781%2C0%2C0%2C1%2C2.005-.111%2C6.41%2C6.41%2C0%2C0%2C1%2C4.782%2C2.669c.06.081.115.076.178%2C0a6.288%2C6.288%2C0%2C0%2C1%2C6.194-2.735c.136.017.27.038.4.064.047.009.119.024.161.03.08.011.123-.071.123-.159A.155.155%2C0%2C0%2C0%2C125.173%2C121Z%22%20transform%3D%22translate(-94.24%20-116)%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_34%22%20data-name%3D%22Path%2034%22%20d%3D%22M126.894%2C125.978a.175.175%2C0%2C0%2C0-.022-.011%2C11.686%2C11.686%2C0%2C0%2C0-4.905-1.082%2C11.924%2C11.924%2C0%2C0%2C0-7.444%2C2.647%2C11.725%2C11.725%2C0%2C0%2C0-5.251-1.245%2C11.884%2C11.884%2C0%2C0%2C0-7.176%2C2.441.229.229%2C0%2C0%2C0-.022.016.217.217%2C0%2C0%2C0-.073.167.2.2%2C0%2C0%2C0%2C.191.211.167.167%2C0%2C0%2C0%2C.037%2C0%2C.118.118%2C0%2C0%2C0%2C.023-.008%2C11.679%2C11.679%2C0%2C0%2C1%2C3.71-.608c3.429%2C0%2C6.486.9%2C8.787%2C3.315a.093.093%2C0%2C0%2C1%2C.016.016.172.172%2C0%2C0%2C0%2C.123.052.18.18%2C0%2C0%2C0%2C.147-.078s.075-.115.111-.171a12.1%2C12.1%2C0%2C0%2C1%2C10.479-5.315c.306%2C0%2C.611.014.912.037l.273.022a.2.2%2C0%2C0%2C0%2C.191-.211A.211.211%2C0%2C0%2C0%2C126.894%2C125.978Z%22%20transform%3D%22translate(-100%20-115.885)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-html { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2262px%22%20height%3D%2262px%22%20viewBox%3D%220%200%2062%2062%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M24.993%2C38.689L11.34%2C32.753v-3.288l13.653-5.91v3.872l-9.523%2C3.641l9.523%2C3.777V38.689z%22%20%2F%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M27.09%2C41.298l4.931-20.596h2.867l-4.986%2C20.596H27.09z%22%20%2F%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M36.986%2C38.703v-3.845l9.536-3.75L36.986%2C27.4v-3.817l13.666%2C5.91v3.261L36.986%2C38.703z%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-rtf { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%227%22%20height%3D%227%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2011H2V12H22V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2014H2V15H22V14Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2017H2V18H22V17Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2020H2V21H22V20Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%202H11V3H22V2Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%205H11V6H22V5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%208H11V9H22V8Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-users { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%207C16%209.34102%2015.4162%2011.1346%2014.6143%2012.3121C13.8071%2013.4974%2012.8337%2014%2012%2014C11.1663%2014%2010.1929%2013.4974%209.38574%2012.3121C8.5838%2011.1346%208%209.34102%208%207C8%204.61508%209.97853%203%2012%203C14.0215%203%2016%204.61508%2016%207ZM15.1891%2013.2201C14.2865%2014.375%2013.1451%2015%2012%2015C10.8549%2015%209.71347%2014.375%208.81092%2013.2201C7.40473%2013.7844%206.21268%2014.3488%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.7873%2014.3488%2016.5953%2013.7844%2015.1891%2013.2201ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-review { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3%203H20V7H19V4H4V20H19V14H20V21H3V3Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M16%208H7V7H16V8Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2010H16V9H7V10Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14%2012H7V11H14V12Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2014H12V13H7V14Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M11%2016H7V15H11V16Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M13%2015.5V17H14.5L22.5%209L21%207.5L13%2015.5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-review-changes { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19%2010H5V9H19V10Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M19%2013H5V12H19V13Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M19%2016H5V15H19V16Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%206H3V19H21V6ZM3%205H2V6V19V20H3H21H22V19V6V5H21H3Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-accept-changes { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2020L9%2017L8%2018L12%2022L22%2012L21%2011L12%2020Z%22%20fill%3D%22%2340865C%22%2F%3E%3Cpath%20d%3D%22M19%209H5V8H19V9Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M16%2012H5V11H16V12Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14%2015H5V14H14V15Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%205H21V9H22V5V4H21H3H2V5V19V20H3H6V19H3V5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reject-changes { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13%2011L12%2012L16%2016L12%2020L13%2021L17%2017L21%2021L22%2020L18%2016L22%2012L21%2011L17%2015L13%2011Z%22%20fill%3D%22%23AA5252%22%2F%3E%3Cpath%20d%3D%22M19%209H5V8H19V9Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M10%2012H5V11H10V12Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M10%2015H5V14H10V15Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%205H21V9H22V5V4H21H3H2V5V19V20H3H10V19H3V5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-accept { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2018L2%2011L1%2012L9%2020L23%206L22%205L9%2018Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reject { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%204L4%205L11%2012L4%2019L5%2020L12%2013L19%2020L20%2019L13%2012L20%205L19%204L12%2011L5%204Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next-change { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clipnext)%22%3E%3Cpath%20d%3D%22M16%2012L6.5%2022L7.5%2023L18%2012L7.5%201L6.5%202L16%2012Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clipnext%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev-change { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clipprev)%22%3E%3Cpath%20d%3D%22M8%2012L17.5%202L16.5%201L6%2012L16.5%2023L17.5%2022L8%2012Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clipprev%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-goto { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%203H3V21H21V3ZM3%202H2V3V21V22H3H21H22V21V3V2H21H3ZM15.2929%208H9V7H16.5H17V7.5V15H16V8.70711L7.35355%2017.3536L6.64645%2016.6464L15.2929%208Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-app-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2014H16C18.2091%2014%2020%2015.7909%2020%2018C20%2020.2091%2018.2091%2022%2016%2022H7C4.79086%2022%203%2020.2091%203%2018C3%2015.7909%204.79086%2014%207%2014ZM16%2013C18.7614%2013%2021%2015.2386%2021%2018C21%2020.7614%2018.7614%2023%2016%2023H7C4.23858%2023%202%2020.7614%202%2018C2%2015.2386%204.23858%2013%207%2013H16Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2020C14.8954%2020%2014%2019.1046%2014%2018C14%2016.8954%2014.8954%2016%2016%2016C17.1046%2016%2018%2016.8954%2018%2018C18%2019.1046%2017.1046%2020%2016%2020ZM16%2021C14.3431%2021%2013%2019.6569%2013%2018C13%2016.3431%2014.3431%2015%2016%2015C17.6569%2015%2019%2016.3431%2019%2018C19%2019.6569%2017.6569%2021%2016%2021Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%203H7C4.79086%203%203%204.79086%203%207C3%209.20914%204.79086%2011%207%2011H16C18.2091%2011%2020%209.20914%2020%207C20%204.79086%2018.2091%203%2016%203ZM7%202C4.23858%202%202%204.23858%202%207C2%209.76142%204.23858%2012%207%2012H16C18.7614%2012%2021%209.76142%2021%207C21%204.23858%2018.7614%202%2016%202H7Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%209C8.10457%209%209%208.10457%209%207C9%205.89543%208.10457%205%207%205C5.89543%205%205%205.89543%205%207C5%208.10457%205.89543%209%207%209ZM7%2010C8.65685%2010%2010%208.65685%2010%207C10%205.34315%208.65685%204%207%204C5.34315%204%204%205.34315%204%207C4%208.65685%205.34315%2010%207%2010Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-footnote { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22%208.11133H20.9177V5.15361L20.9282%204.66765L20.9457%204.13624C20.7659%204.31571%2020.641%204.43341%2020.5709%204.48935L19.9825%204.96132L19.4606%204.31105L21.1103%203H22V8.11133Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M10.3363%2018.8514L8.98161%2015.3968H4.61996L3.28021%2018.8514H2L6.3021%207.94526H7.36646L11.6462%2018.8514H10.3363ZM8.58713%2014.2601L7.3218%2010.8947C7.15806%2010.4687%206.98935%209.94621%206.81567%209.32711C6.70651%209.80258%206.5502%2010.3251%206.34676%2010.8947L5.06655%2014.2601H8.58713Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M16.1425%2010.5752C17.2143%2010.5752%2018.0454%2010.9417%2018.6359%2011.6748C19.2313%2012.4028%2019.5291%2013.4355%2019.5291%2014.7728C19.5291%2016.11%2019.2288%2017.1501%2018.6284%2017.893C18.033%2018.631%2017.2043%2019%2016.1425%2019C15.6115%2019%2015.1252%2018.9034%2014.6836%2018.7103C14.2469%2018.5121%2013.8798%2018.21%2013.582%2017.8039H13.4927L13.2322%2018.8514H12.3465V7.29149H13.582V10.0997C13.582%2010.7288%2013.5622%2011.2934%2013.5225%2011.7936H13.582C14.1576%2010.9814%2015.0111%2010.5752%2016.1425%2010.5752ZM15.9638%2011.6079C15.1203%2011.6079%2014.5124%2011.8506%2014.1403%2012.336C13.7681%2012.8164%2013.582%2013.6286%2013.582%2014.7728C13.582%2015.9169%2013.7731%2016.7366%2014.1551%2017.2318C14.5372%2017.7222%2015.15%2017.9673%2015.9936%2017.9673C16.7528%2017.9673%2017.3185%2017.6925%2017.6906%2017.1427C18.0628%2016.588%2018.2488%2015.793%2018.2488%2014.7579C18.2488%2013.698%2018.0628%2012.908%2017.6906%2012.388C17.3185%2011.8679%2016.7429%2011.6079%2015.9638%2011.6079Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-cut { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23cut)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.22427%2022.2702C4.51527%2023.1269%206.52738%2022.7183%207.6592%2021.0127C8.79101%2019.3071%208.38572%2017.2943%207.09472%2016.4376C5.80372%2015.5809%203.79161%2015.9896%202.65979%2017.6952C1.52798%2019.4008%201.93328%2021.4136%203.22427%2022.2702ZM2.67135%2023.1035C4.51208%2024.325%207.11827%2023.6364%208.49243%2021.5656C9.8666%2019.4948%209.48837%2016.8259%207.64764%2015.6044C5.80691%2014.3829%203.20072%2015.0714%201.82656%2017.1422C0.452398%2019.2131%200.830625%2021.882%202.67135%2023.1035Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.9158%2022.2702C19.6248%2023.1269%2017.6127%2022.7183%2016.4809%2021.0127C15.349%2019.3071%2015.7543%2017.2943%2017.0453%2016.4376C18.3363%2015.5809%2020.3484%2015.9896%2021.4803%2017.6952C22.6121%2019.4008%2022.2068%2021.4136%2020.9158%2022.2702ZM21.4687%2023.1035C19.628%2024.325%2017.0218%2023.6364%2015.6476%2021.5656C14.2735%2019.4948%2014.6517%2016.8259%2016.4924%2015.6044C18.3331%2014.3829%2020.9393%2015.0714%2022.3135%2017.1422C23.6877%2019.2131%2023.3094%2021.882%2021.4687%2023.1035Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M16.4924%2015.6044L13.9037%2012.4737L19.9552%200.675715C20.0693%200.446914%2019.9552%200.172352%2019.727%200.0808313C19.4416%20-0.0106892%2019.0993%200.0808312%2018.9851%200.263872L12.0233%2011.4212L5.17562%200.263872C5.06149%200.035071%204.71911%20-0.0564496%204.43379%200.035071C4.14847%200.126592%204.03434%200.401153%204.14847%200.629955L10.2001%2012.4279L7.64761%2015.6044L9.2292%2018L12.0233%2013.4804L14.9108%2018L16.4924%2015.6044Z%22%20fill%3D%22white%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22cut%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-copy { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201H15V7H16V0H0V17H8V16H1V1Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M23%208H9V23H23V8ZM8%207V24H24V7H8Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13%205H3V4H13V5Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%209H3V8H8V9Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%2013H3V12H8V13Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H11V11H21V12Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H11V15H21V16Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H11V19H21V20Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-paste { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-menu-comment { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M10%2015C10%2016.6569%208.65685%2018%207%2018C5.34315%2018%204%2016.6569%204%2015C4%2013.3431%205.34315%2012%207%2012C8.65685%2012%2010%2013.3431%2010%2015ZM7%2016.7143C7.94677%2016.7143%208.71429%2015.9468%208.71429%2015C8.71429%2014.0532%207.94677%2013.2857%207%2013.2857C6.05323%2013.2857%205.28571%2014.0532%205.28571%2015C5.28571%2015.9468%206.05323%2016.7143%207%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%2015C18%2016.6569%2016.6569%2018%2015%2018C13.3431%2018%2012%2016.6569%2012%2015C12%2013.3431%2013.3431%2012%2015%2012C16.6569%2012%2018%2013.3431%2018%2015ZM15%2016.7143C15.9468%2016.7143%2016.7143%2015.9468%2016.7143%2015C16.7143%2014.0532%2015.9468%2013.2857%2015%2013.2857C14.0532%2013.2857%2013.2857%2014.0532%2013.2857%2015C13.2857%2015.9468%2014.0532%2016.7143%2015%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M26%2015C26%2016.6569%2024.6569%2018%2023%2018C21.3431%2018%2020%2016.6569%2020%2015C20%2013.3431%2021.3431%2012%2023%2012C24.6569%2012%2026%2013.3431%2026%2015ZM23%2016.7143C23.9468%2016.7143%2024.7143%2015.9468%2024.7143%2015C24.7143%2014.0532%2023.9468%2013.2857%2023%2013.2857C22.0532%2013.2857%2021.2857%2014.0532%2021.2857%2015C21.2857%2015.9468%2022.0532%2016.7143%2023%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81574%2014.7407%207.34084%2014.7345%207.04258%2015.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment.check { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%200H30V30H0V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545V8.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81575%2014.7407%207.34084%2014.7345%207.04258%2015.0228V15.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%234cd964%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insert-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.1538%209.00708H11.8462C10.8266%209.00708%2010%209.83461%2010%2010.8554V15.1694C10%2016.1902%2010.8266%2017.0177%2011.8462%2017.0177H13.8329C13.9409%2017.0177%2014.0454%2017.0556%2014.1284%2017.1248L18.243%2020.392C18.5436%2020.6428%2019%2020.4288%2019%2020.037V17.4798C19%2017.2246%2019.2066%2017.0177%2019.4615%2017.0177H20.1538C21.1734%2017.0177%2022%2016.1902%2022%2015.1694V10.8554C22%209.83461%2021.1734%209.00708%2020.1538%209.00708ZM20%2010.0083C20.5523%2010.0083%2021%2010.4565%2021%2011.0095V15.0154C21%2015.5683%2020.5523%2016.0165%2020%2016.0165H18.0025L18%2018.8995C18%2019.2912%2018%2019%2018%2019L14.5%2016.0165H12C11.4477%2016.0165%2011%2015.5683%2011%2015.0154V11.0095C11%2010.4565%2011.4477%2010.0083%2012%2010.0083H20Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V12.0346C2%2013.3222%203.18908%2014.013%204.5%2014.013H5.5C5.82773%2014.013%206%2014.1917%206%2014.5136V17.5183C6%2018.0125%206.6135%2018.3352%207%2018.0189L11%2014.9858V13.5L7%2016.5V13.0118H4.5C3.78992%2013.0118%203%2012.732%203%2012.0346V5.50295C3%204.80547%203.78992%204.00118%204.5%204.00118H14.5C15.2101%204.00118%2016%204.80547%2016%205.50295V8.0059H17V5.50295C17%204.2153%2015.8109%203%2014.5%203Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-table { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4%205.59998H11.2V8.79998H4V5.59998Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M12.8%205.59998H20V8.79998H12.8V5.59998Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M4%2010.4H11.2V13.6H4V10.4Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M12.8%2010.4H20V13.6H12.8V10.4Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M4%2015.2H11.2V18.4H4V15.2Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M12.8%2015.2H20V18.4H12.8V15.2Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-table { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4%205.59998H11.2V8.79998H4V5.59998Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M12.8%205.59998H20V8.79998H12.8V5.59998Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M4%2010.4H11.2V13.6H4V10.4Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M12.8%2010.4H20V13.6H12.8V10.4Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M4%2015.2H11.2V18.4H4V15.2Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M12.8%2015.2H20V18.4H12.8V15.2Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: #446995; -} -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: 44px; - bottom: 0; - height: auto; - overflow: hidden; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -#editor_sdk.with-logo { - top: 68px; -} -#add-table .page, -#add-shape .page { - background-color: #fff; -} -.table-styles .row, -.table-styles .row li { - margin-bottom: 12px; -} -.table-styles li, -.table-styles .row div { - margin: 0; - padding: 1px; -} -.table-styles li img, -.table-styles .row div img { - width: 70px; - height: 50px; -} -.chart-styles .row, -.chart-styles .row li { - margin-bottom: 12px; -} -.chart-styles li, -.chart-styles .row div { - margin: 0; - padding: 1px; -} -.shapes li { - width: 70px; - height: 70px; - margin: 0 1px; -} -.shapes li .thumb { - width: 100%; - height: 100%; - background-color: #446995; -} -.chart-types li { - width: 60px; - height: 60px; - margin: 6px; -} -.chart-types li .thumb { - width: 100%; - height: 100%; - background-size: contain; -} -.bullets ul, -.numbers ul { - margin-top: 10px; -} -.bullets li, -.numbers li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; -} -html.pixel-ratio-2 .bullets li, -html.pixel-ratio-2 .numbers li { - border: 0.5px solid #c4c4c4; -} -html.pixel-ratio-3 .bullets li, -html.pixel-ratio-3 .numbers li { - border: 0.33px solid #c4c4c4; -} -.bullets li .thumb, -.numbers li .thumb { - width: 100%; - height: 100%; - background-color: #ffffff; - background-size: cover; -} -.bullets li .thumb label, -.numbers li .thumb label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; -} -.username-tip { - background-color: #ee3525; - border: none; - border-radius: 0; - padding: 3px 10px; - color: #ffffff; - white-space: nowrap; -} -.range-slider input[type=range]::-webkit-slider-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - z-index: 10; - -webkit-appearance: none; -} -.modal.modal-in { - max-height: 100%; - overflow: auto; -} -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 10; -} -.doc-placeholder > .line { - height: 15px; - margin: 30px; - background: #e2e2e2; - overflow: hidden; - position: relative; - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; -} -.page-macros-settings[data-page="macros-settings-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-macros-settings[data-page="macros-settings-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #8e8e93; -} diff --git a/apps/documenteditor/mobile/resources/css/app-material.css b/apps/documenteditor/mobile/resources/css/app-material.css deleted file mode 100644 index 3051ef762..000000000 --- a/apps/documenteditor/mobile/resources/css/app-material.css +++ /dev/null @@ -1,7659 +0,0 @@ -html, -body, -.framework7-root { - position: relative; - height: 100%; - width: 100%; - overflow-x: hidden; -} -body { - font-family: Roboto, Noto, Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; - color: #212121; - font-size: 14px; - line-height: 1.5; - width: 100%; - -webkit-text-size-adjust: 100%; - background: #fff; - overflow: hidden; -} -.framework7-root { - overflow: hidden; -} -* { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -a, -input, -textarea, -select { - outline: 0; -} -a { - text-decoration: none; - color: #446995; -} -p { - margin: 1em 0; -} -/* === Grid === */ -.row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.row > [class*="col-"] { - box-sizing: border-box; -} -.row .col-auto { - width: 100%; -} -.row .col-100 { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); -} -.row.no-gutter .col-100 { - width: 100%; -} -.row .col-95 { - width: 95%; - width: -webkit-calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); -} -.row.no-gutter .col-95 { - width: 95%; -} -.row .col-90 { - width: 90%; - width: -webkit-calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); -} -.row.no-gutter .col-90 { - width: 90%; -} -.row .col-85 { - width: 85%; - width: -webkit-calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); -} -.row.no-gutter .col-85 { - width: 85%; -} -.row .col-80 { - width: 80%; - width: -webkit-calc((100% - 16px*0.25) / 1.25); - width: calc((100% - 16px*0.25) / 1.25); -} -.row.no-gutter .col-80 { - width: 80%; -} -.row .col-75 { - width: 75%; - width: -webkit-calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); -} -.row.no-gutter .col-75 { - width: 75%; -} -.row .col-70 { - width: 70%; - width: -webkit-calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); -} -.row.no-gutter .col-70 { - width: 70%; -} -.row .col-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); -} -.row.no-gutter .col-66 { - width: 66.66666666666666%; -} -.row .col-65 { - width: 65%; - width: -webkit-calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); -} -.row.no-gutter .col-65 { - width: 65%; -} -.row .col-60 { - width: 60%; - width: -webkit-calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); -} -.row.no-gutter .col-60 { - width: 60%; -} -.row .col-55 { - width: 55%; - width: -webkit-calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); -} -.row.no-gutter .col-55 { - width: 55%; -} -.row .col-50 { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); -} -.row.no-gutter .col-50 { - width: 50%; -} -.row .col-45 { - width: 45%; - width: -webkit-calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); -} -.row.no-gutter .col-45 { - width: 45%; -} -.row .col-40 { - width: 40%; - width: -webkit-calc((100% - 16px*1.5) / 2.5); - width: calc((100% - 16px*1.5) / 2.5); -} -.row.no-gutter .col-40 { - width: 40%; -} -.row .col-35 { - width: 35%; - width: -webkit-calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 16px*1.8571428571428572) / 2.857142857142857); -} -.row.no-gutter .col-35 { - width: 35%; -} -.row .col-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); -} -.row.no-gutter .col-33 { - width: 33.333333333333336%; -} -.row .col-30 { - width: 30%; - width: -webkit-calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); -} -.row.no-gutter .col-30 { - width: 30%; -} -.row .col-25 { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); -} -.row.no-gutter .col-25 { - width: 25%; -} -.row .col-20 { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); -} -.row.no-gutter .col-20 { - width: 20%; -} -.row .col-15 { - width: 15%; - width: -webkit-calc((100% - 16px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 16px*5.666666666666667) / 6.666666666666667); -} -.row.no-gutter .col-15 { - width: 15%; -} -.row .col-10 { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); -} -.row.no-gutter .col-10 { - width: 10%; -} -.row .col-5 { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); -} -.row.no-gutter .col-5 { - width: 5%; -} -.row .col-auto:nth-last-child(1), -.row .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); -} -.row.no-gutter .col-auto:nth-last-child(1), -.row.no-gutter .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; -} -.row .col-auto:nth-last-child(2), -.row .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); -} -.row.no-gutter .col-auto:nth-last-child(2), -.row.no-gutter .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; -} -.row .col-auto:nth-last-child(3), -.row .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); -} -.row.no-gutter .col-auto:nth-last-child(3), -.row.no-gutter .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; -} -.row .col-auto:nth-last-child(4), -.row .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); -} -.row.no-gutter .col-auto:nth-last-child(4), -.row.no-gutter .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; -} -.row .col-auto:nth-last-child(5), -.row .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); -} -.row.no-gutter .col-auto:nth-last-child(5), -.row.no-gutter .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; -} -.row .col-auto:nth-last-child(6), -.row .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 16px*5) / 6); - width: calc((100% - 16px*5) / 6); -} -.row.no-gutter .col-auto:nth-last-child(6), -.row.no-gutter .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; -} -.row .col-auto:nth-last-child(7), -.row .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 16px*6) / 7); - width: calc((100% - 16px*6) / 7); -} -.row.no-gutter .col-auto:nth-last-child(7), -.row.no-gutter .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; -} -.row .col-auto:nth-last-child(8), -.row .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 16px*7) / 8); - width: calc((100% - 16px*7) / 8); -} -.row.no-gutter .col-auto:nth-last-child(8), -.row.no-gutter .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; -} -.row .col-auto:nth-last-child(9), -.row .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 16px*8) / 9); - width: calc((100% - 16px*8) / 9); -} -.row.no-gutter .col-auto:nth-last-child(9), -.row.no-gutter .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; -} -.row .col-auto:nth-last-child(10), -.row .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); -} -.row.no-gutter .col-auto:nth-last-child(10), -.row.no-gutter .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; -} -.row .col-auto:nth-last-child(11), -.row .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 16px*10) / 11); - width: calc((100% - 16px*10) / 11); -} -.row.no-gutter .col-auto:nth-last-child(11), -.row.no-gutter .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; -} -.row .col-auto:nth-last-child(12), -.row .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 16px*11) / 12); - width: calc((100% - 16px*11) / 12); -} -.row.no-gutter .col-auto:nth-last-child(12), -.row.no-gutter .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; -} -.row .col-auto:nth-last-child(13), -.row .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 16px*12) / 13); - width: calc((100% - 16px*12) / 13); -} -.row.no-gutter .col-auto:nth-last-child(13), -.row.no-gutter .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; -} -.row .col-auto:nth-last-child(14), -.row .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 16px*13) / 14); - width: calc((100% - 16px*13) / 14); -} -.row.no-gutter .col-auto:nth-last-child(14), -.row.no-gutter .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; -} -.row .col-auto:nth-last-child(15), -.row .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 16px*14) / 15); - width: calc((100% - 16px*14) / 15); -} -.row.no-gutter .col-auto:nth-last-child(15), -.row.no-gutter .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; -} -.row .col-auto:nth-last-child(16), -.row .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 16px*15) / 16); - width: calc((100% - 16px*15) / 16); -} -.row.no-gutter .col-auto:nth-last-child(16), -.row.no-gutter .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; -} -.row .col-auto:nth-last-child(17), -.row .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 16px*16) / 17); - width: calc((100% - 16px*16) / 17); -} -.row.no-gutter .col-auto:nth-last-child(17), -.row.no-gutter .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; -} -.row .col-auto:nth-last-child(18), -.row .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 16px*17) / 18); - width: calc((100% - 16px*17) / 18); -} -.row.no-gutter .col-auto:nth-last-child(18), -.row.no-gutter .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; -} -.row .col-auto:nth-last-child(19), -.row .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 16px*18) / 19); - width: calc((100% - 16px*18) / 19); -} -.row.no-gutter .col-auto:nth-last-child(19), -.row.no-gutter .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; -} -.row .col-auto:nth-last-child(20), -.row .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); -} -.row.no-gutter .col-auto:nth-last-child(20), -.row.no-gutter .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; -} -.row .col-auto:nth-last-child(21), -.row .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 16px*20) / 21); - width: calc((100% - 16px*20) / 21); -} -.row.no-gutter .col-auto:nth-last-child(21), -.row.no-gutter .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; -} -@media all and (min-width: 768px) { - .row .tablet-100 { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); - } - .row.no-gutter .tablet-100 { - width: 100%; - } - .row .tablet-95 { - width: 95%; - width: -webkit-calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - } - .row.no-gutter .tablet-95 { - width: 95%; - } - .row .tablet-90 { - width: 90%; - width: -webkit-calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - } - .row.no-gutter .tablet-90 { - width: 90%; - } - .row .tablet-85 { - width: 85%; - width: -webkit-calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - } - .row.no-gutter .tablet-85 { - width: 85%; - } - .row .tablet-80 { - width: 80%; - width: -webkit-calc((100% - 16px*0.25) / 1.25); - width: calc((100% - 16px*0.25) / 1.25); - } - .row.no-gutter .tablet-80 { - width: 80%; - } - .row .tablet-75 { - width: 75%; - width: -webkit-calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - } - .row.no-gutter .tablet-75 { - width: 75%; - } - .row .tablet-70 { - width: 70%; - width: -webkit-calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - } - .row.no-gutter .tablet-70 { - width: 70%; - } - .row .tablet-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - } - .row.no-gutter .tablet-66 { - width: 66.66666666666666%; - } - .row .tablet-65 { - width: 65%; - width: -webkit-calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - } - .row.no-gutter .tablet-65 { - width: 65%; - } - .row .tablet-60 { - width: 60%; - width: -webkit-calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - } - .row.no-gutter .tablet-60 { - width: 60%; - } - .row .tablet-55 { - width: 55%; - width: -webkit-calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - } - .row.no-gutter .tablet-55 { - width: 55%; - } - .row .tablet-50 { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); - } - .row.no-gutter .tablet-50 { - width: 50%; - } - .row .tablet-45 { - width: 45%; - width: -webkit-calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - } - .row.no-gutter .tablet-45 { - width: 45%; - } - .row .tablet-40 { - width: 40%; - width: -webkit-calc((100% - 16px*1.5) / 2.5); - width: calc((100% - 16px*1.5) / 2.5); - } - .row.no-gutter .tablet-40 { - width: 40%; - } - .row .tablet-35 { - width: 35%; - width: -webkit-calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - } - .row.no-gutter .tablet-35 { - width: 35%; - } - .row .tablet-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); - } - .row.no-gutter .tablet-33 { - width: 33.333333333333336%; - } - .row .tablet-30 { - width: 30%; - width: -webkit-calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - } - .row.no-gutter .tablet-30 { - width: 30%; - } - .row .tablet-25 { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); - } - .row.no-gutter .tablet-25 { - width: 25%; - } - .row .tablet-20 { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); - } - .row.no-gutter .tablet-20 { - width: 20%; - } - .row .tablet-15 { - width: 15%; - width: -webkit-calc((100% - 16px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 16px*5.666666666666667) / 6.666666666666667); - } - .row.no-gutter .tablet-15 { - width: 15%; - } - .row .tablet-10 { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); - } - .row.no-gutter .tablet-10 { - width: 10%; - } - .row .tablet-5 { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); - } - .row.no-gutter .tablet-5 { - width: 5%; - } - .row .tablet-auto:nth-last-child(1), - .row .tablet-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); - } - .row.no-gutter .tablet-auto:nth-last-child(1), - .row.no-gutter .tablet-auto:nth-last-child(1) ~ .tablet-auto { - width: 100%; - } - .row .tablet-auto:nth-last-child(2), - .row .tablet-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); - } - .row.no-gutter .tablet-auto:nth-last-child(2), - .row.no-gutter .tablet-auto:nth-last-child(2) ~ .tablet-auto { - width: 50%; - } - .row .tablet-auto:nth-last-child(3), - .row .tablet-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); - } - .row.no-gutter .tablet-auto:nth-last-child(3), - .row.no-gutter .tablet-auto:nth-last-child(3) ~ .tablet-auto { - width: 33.33333333%; - } - .row .tablet-auto:nth-last-child(4), - .row .tablet-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); - } - .row.no-gutter .tablet-auto:nth-last-child(4), - .row.no-gutter .tablet-auto:nth-last-child(4) ~ .tablet-auto { - width: 25%; - } - .row .tablet-auto:nth-last-child(5), - .row .tablet-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); - } - .row.no-gutter .tablet-auto:nth-last-child(5), - .row.no-gutter .tablet-auto:nth-last-child(5) ~ .tablet-auto { - width: 20%; - } - .row .tablet-auto:nth-last-child(6), - .row .tablet-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 16px*5) / 6); - width: calc((100% - 16px*5) / 6); - } - .row.no-gutter .tablet-auto:nth-last-child(6), - .row.no-gutter .tablet-auto:nth-last-child(6) ~ .tablet-auto { - width: 16.66666667%; - } - .row .tablet-auto:nth-last-child(7), - .row .tablet-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 16px*6) / 7); - width: calc((100% - 16px*6) / 7); - } - .row.no-gutter .tablet-auto:nth-last-child(7), - .row.no-gutter .tablet-auto:nth-last-child(7) ~ .tablet-auto { - width: 14.28571429%; - } - .row .tablet-auto:nth-last-child(8), - .row .tablet-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 16px*7) / 8); - width: calc((100% - 16px*7) / 8); - } - .row.no-gutter .tablet-auto:nth-last-child(8), - .row.no-gutter .tablet-auto:nth-last-child(8) ~ .tablet-auto { - width: 12.5%; - } - .row .tablet-auto:nth-last-child(9), - .row .tablet-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 16px*8) / 9); - width: calc((100% - 16px*8) / 9); - } - .row.no-gutter .tablet-auto:nth-last-child(9), - .row.no-gutter .tablet-auto:nth-last-child(9) ~ .tablet-auto { - width: 11.11111111%; - } - .row .tablet-auto:nth-last-child(10), - .row .tablet-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); - } - .row.no-gutter .tablet-auto:nth-last-child(10), - .row.no-gutter .tablet-auto:nth-last-child(10) ~ .tablet-auto { - width: 10%; - } - .row .tablet-auto:nth-last-child(11), - .row .tablet-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 16px*10) / 11); - width: calc((100% - 16px*10) / 11); - } - .row.no-gutter .tablet-auto:nth-last-child(11), - .row.no-gutter .tablet-auto:nth-last-child(11) ~ .tablet-auto { - width: 9.09090909%; - } - .row .tablet-auto:nth-last-child(12), - .row .tablet-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 16px*11) / 12); - width: calc((100% - 16px*11) / 12); - } - .row.no-gutter .tablet-auto:nth-last-child(12), - .row.no-gutter .tablet-auto:nth-last-child(12) ~ .tablet-auto { - width: 8.33333333%; - } - .row .tablet-auto:nth-last-child(13), - .row .tablet-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 16px*12) / 13); - width: calc((100% - 16px*12) / 13); - } - .row.no-gutter .tablet-auto:nth-last-child(13), - .row.no-gutter .tablet-auto:nth-last-child(13) ~ .tablet-auto { - width: 7.69230769%; - } - .row .tablet-auto:nth-last-child(14), - .row .tablet-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 16px*13) / 14); - width: calc((100% - 16px*13) / 14); - } - .row.no-gutter .tablet-auto:nth-last-child(14), - .row.no-gutter .tablet-auto:nth-last-child(14) ~ .tablet-auto { - width: 7.14285714%; - } - .row .tablet-auto:nth-last-child(15), - .row .tablet-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 16px*14) / 15); - width: calc((100% - 16px*14) / 15); - } - .row.no-gutter .tablet-auto:nth-last-child(15), - .row.no-gutter .tablet-auto:nth-last-child(15) ~ .tablet-auto { - width: 6.66666667%; - } - .row .tablet-auto:nth-last-child(16), - .row .tablet-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 16px*15) / 16); - width: calc((100% - 16px*15) / 16); - } - .row.no-gutter .tablet-auto:nth-last-child(16), - .row.no-gutter .tablet-auto:nth-last-child(16) ~ .tablet-auto { - width: 6.25%; - } - .row .tablet-auto:nth-last-child(17), - .row .tablet-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 16px*16) / 17); - width: calc((100% - 16px*16) / 17); - } - .row.no-gutter .tablet-auto:nth-last-child(17), - .row.no-gutter .tablet-auto:nth-last-child(17) ~ .tablet-auto { - width: 5.88235294%; - } - .row .tablet-auto:nth-last-child(18), - .row .tablet-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 16px*17) / 18); - width: calc((100% - 16px*17) / 18); - } - .row.no-gutter .tablet-auto:nth-last-child(18), - .row.no-gutter .tablet-auto:nth-last-child(18) ~ .tablet-auto { - width: 5.55555556%; - } - .row .tablet-auto:nth-last-child(19), - .row .tablet-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 16px*18) / 19); - width: calc((100% - 16px*18) / 19); - } - .row.no-gutter .tablet-auto:nth-last-child(19), - .row.no-gutter .tablet-auto:nth-last-child(19) ~ .tablet-auto { - width: 5.26315789%; - } - .row .tablet-auto:nth-last-child(20), - .row .tablet-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); - } - .row.no-gutter .tablet-auto:nth-last-child(20), - .row.no-gutter .tablet-auto:nth-last-child(20) ~ .tablet-auto { - width: 5%; - } - .row .tablet-auto:nth-last-child(21), - .row .tablet-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 16px*20) / 21); - width: calc((100% - 16px*20) / 21); - } - .row.no-gutter .tablet-auto:nth-last-child(21), - .row.no-gutter .tablet-auto:nth-last-child(21) ~ .tablet-auto { - width: 4.76190476%; - } -} -/* === Views === */ -.views, -.view { - position: relative; - width: 100%; - height: 100%; - z-index: 5000; -} -.views { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.view { - overflow: hidden; - box-sizing: border-box; -} -/* === Pages === */ -.pages { - position: relative; - width: 100%; - height: 100%; - overflow: hidden; -} -.page { - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #fff; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page.cached { - display: none; -} -.page-on-left { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page-on-right { - opacity: 0; - pointer-events: none; - -webkit-transform: translate3d(0, 56px, 0); - transform: translate3d(0, 56px, 0); -} -.page-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - box-sizing: border-box; - height: 100%; - position: relative; - z-index: 1; -} -.page-transitioning { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.page-from-right-to-center { - pointer-events: none; - -webkit-animation: pageFromRightToCenter 300ms forwards; - animation: pageFromRightToCenter 300ms forwards; -} -.page-from-center-to-right { - pointer-events: none; - -webkit-animation: pageFromCenterToRight 300ms forwards; - animation: pageFromCenterToRight 300ms forwards; -} -@-webkit-keyframes pageFromRightToCenter { - from { - opacity: 0; - -webkit-transform: translate3d(0, 56px, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromRightToCenter { - from { - opacity: 0; - transform: translate3d(0, 56px, 0); - } - to { - opacity: 1; - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes pageFromCenterToRight { - from { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } - to { - opacity: 0; - -webkit-transform: translate3d(0, 56px, 0); - } -} -@keyframes pageFromCenterToRight { - from { - opacity: 1; - transform: translate3d(0, 0, 0); - } - to { - opacity: 0; - transform: translate3d(0, 56px, 0); - } -} -.page-from-center-to-left { - -webkit-animation: pageFromCenterToLeft 300ms forwards; - animation: pageFromCenterToLeft 300ms forwards; -} -.page-from-left-to-center { - -webkit-animation: pageFromLeftToCenter 300ms forwards; - animation: pageFromLeftToCenter 300ms forwards; -} -@-webkit-keyframes pageFromCenterToLeft { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@keyframes pageFromCenterToLeft { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@-webkit-keyframes pageFromLeftToCenter { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@keyframes pageFromLeftToCenter { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -/* === Toolbars === */ -.navbar-inner, -.toolbar-inner { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - box-sizing: border-box; - overflow: hidden; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.navbar-inner { - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; -} -.toolbar-inner { - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.navbar-inner.cached { - display: none; -} -.navbar, -.toolbar { - width: 100%; - box-sizing: border-box; - position: relative; - margin: 0; - z-index: 500; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - color: #fff; -} -.navbar b, -.toolbar b { - font-weight: 500; -} -.navbar ~ .toolbar { - z-index: 499; -} -.navbar, -.toolbar, -.subnavbar { - background: #446995; -} -.navbar a.link, -.toolbar a.link, -.subnavbar a.link { - text-decoration: none; - position: relative; - color: #fff; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - padding: 0 16px; - min-width: 48px; -} -.navbar a.link:before, -.toolbar a.link:before, -.subnavbar a.link:before { - content: ''; - width: 152%; - height: 152%; - position: absolute; - left: -26%; - top: -26%; - background-image: -webkit-radial-gradient(center, circle cover, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-image: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-repeat: no-repeat; - background-position: center; - background-size: 100% 100%; - opacity: 0; - pointer-events: none; - -webkit-transition-duration: 600ms; - transition-duration: 600ms; -} -html:not(.watch-active-state) .navbar a.link:active:before, -html:not(.watch-active-state) .toolbar a.link:active:before, -html:not(.watch-active-state) .subnavbar a.link:active:before, -.navbar a.link.active-state:before, -.toolbar a.link.active-state:before, -.subnavbar a.link.active-state:before { - opacity: 1; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.navbar a.link i + span, -.toolbar a.link i + span, -.subnavbar a.link i + span, -.navbar a.link i + i, -.toolbar a.link i + i, -.subnavbar a.link i + i, -.navbar a.link span + i, -.toolbar a.link span + i, -.subnavbar a.link span + i, -.navbar a.link span + span, -.toolbar a.link span + span, -.subnavbar a.link span + span { - margin-left: 8px; -} -.navbar a.icon-only, -.toolbar a.icon-only, -.subnavbar a.icon-only { - min-width: 0; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.navbar i.icon, -.toolbar i.icon, -.subnavbar i.icon { - display: block; -} -.navbar .center, -.subnavbar .center { - font-size: 20px; - font-weight: 500; - text-align: center; - margin: 0 16px; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - line-height: 56px; - display: inline-block; - text-align: left; -} -.navbar .left, -.subnavbar .left, -.navbar .right, -.subnavbar .right { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar .right, -.subnavbar .right { - margin-left: auto; -} -.navbar .right:first-child, -.subnavbar .right:first-child { - position: absolute; - right: 16px; - height: 100%; -} -.navbar { - left: 0; - top: 0; - height: 56px; - font-size: 20px; -} -.navbar a.link { - line-height: 56px; - height: 56px; -} -.popup .navbar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.subnavbar { - height: 48px; - width: 100%; - position: absolute; - left: 0; - top: 100%; - z-index: 20; - box-sizing: border-box; - padding: 0 16px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - overflow: hidden; -} -.subnavbar a.link { - line-height: 48px; - height: 48px; -} -.subnavbar .center { - line-height: 48px; -} -.subnavbar .center:first-child { - margin-left: 56px; -} -.navbar.no-border .subnavbar { - margin-top: 0; -} -.navbar-on-left .subnavbar, -.navbar-on-right .subnavbar { - pointer-events: none; -} -.navbar .subnavbar, -.page .subnavbar { - position: absolute; -} -.page > .subnavbar { - top: 0; - margin-top: 0; -} -.subnavbar > .buttons-row { - width: 100%; -} -.subnavbar .searchbar, -.subnavbar.searchbar { - position: absolute; -} -.subnavbar.searchbar, -.subnavbar .searchbar { - position: absolute; -} -.subnavbar .searchbar { - left: 0; - top: 0; -} -.toolbar { - left: 0; - bottom: 0; - height: 48px; - font-size: 14px; -} -.toolbar a.link { - line-height: 48px; - height: 48px; -} -.toolbar a { - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; -} -.tabbar { - z-index: 5001; - overflow: hidden; - bottom: auto; - top: 0; -} -.tabbar .toolbar-inner { - padding-left: 0; - padding-right: 0; -} -.tabbar a.link { - line-height: 1.4; -} -.tabbar a.tab-link, -.tabbar a.link { - height: 100%; - width: 100%; - box-sizing: border-box; - padding-left: 0; - padding-right: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex: 1; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; - font-size: 14px; - text-transform: uppercase; -} -.tabbar i.icon { - height: 24px; -} -.tabbar a.tab-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - overflow: hidden; - color: rgba(255, 255, 255, 0.7); - position: relative; -} -.tabbar a.tab-link.active, -html:not(.watch-active-state) .tabbar a.tab-link:active, -.tabbar a.tab-link.active-state { - color: #ffffff; -} -.tabbar .tab-link-highlight { - position: absolute; - left: 0; - bottom: 0; - height: 3px; - background: #2c4460; - background: rgba(255, 255, 255, 0.5); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabbar-labels { - height: 72px; -} -.tabbar-labels a.tab-link, -.tabbar-labels a.link { - padding-top: 12px; - padding-bottom: 12px; - height: 100%; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.tabbar-labels span.tabbar-label { - line-height: 1; - display: block; - margin: 0; - margin-top: 10px; - position: relative; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - max-width: 100%; -} -.tabbar-scrollable .toolbar-inner { - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - overflow: auto; -} -.tabbar-scrollable .toolbar-inner::-webkit-scrollbar { - display: none !important; - width: 0 !important; - height: 0 !important; - -webkit-appearance: none; - opacity: 0 !important; -} -.tabbar-scrollable a.tab-link, -.tabbar-scrollable a.link { - width: auto; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -ms-flex: 0; - padding: 0 16px; -} -.toolbar-bottom { - bottom: 0; - top: auto; -} -.toolbar-bottom .tab-link-highlight { - bottom: auto; - top: 0; -} -.subnavbar input[type="text"], -.navbar input[type="text"], -.subnavbar input[type="password"], -.navbar input[type="password"], -.subnavbar input[type="search"], -.navbar input[type="search"], -.subnavbar input[type="email"], -.navbar input[type="email"], -.subnavbar input[type="tel"], -.navbar input[type="tel"], -.subnavbar input[type="url"], -.navbar input[type="url"] { - box-sizing: border-box; - width: 100%; - height: 32px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 0; - font-family: inherit; - color: #fff; - font-size: 16px; - font-weight: 400; - background-color: transparent; - padding: 0; - border-bottom: 1px solid #fff; -} -.subnavbar input[type="text"]::-webkit-input-placeholder, -.navbar input[type="text"]::-webkit-input-placeholder, -.subnavbar input[type="password"]::-webkit-input-placeholder, -.navbar input[type="password"]::-webkit-input-placeholder, -.subnavbar input[type="search"]::-webkit-input-placeholder, -.navbar input[type="search"]::-webkit-input-placeholder, -.subnavbar input[type="email"]::-webkit-input-placeholder, -.navbar input[type="email"]::-webkit-input-placeholder, -.subnavbar input[type="tel"]::-webkit-input-placeholder, -.navbar input[type="tel"]::-webkit-input-placeholder, -.subnavbar input[type="url"]::-webkit-input-placeholder, -.navbar input[type="url"]::-webkit-input-placeholder { - color: #ffffff; - opacity: 1; -} -/* === Relation between toolbar/navbar types and pages === */ -.page > .navbar, -.view > .navbar, -.views > .navbar, -.page > .toolbar, -.view > .toolbar, -.views > .toolbar { - position: absolute; -} -.subnavbar ~ .page-content { - padding-top: 48px; -} -.toolbar-fixed .page-content, -.tabbar-fixed .page-content { - padding-top: 48px; -} -.tabbar-labels-fixed .page-content { - padding-top: 72px; -} -.toolbar ~ .page-content { - padding-top: 48px; -} -.tabbar-labels ~ .page-content { - padding-top: 72px; -} -.toolbar-bottom ~ .page-content, -.messagebar ~ .page-content { - padding-top: 0; - padding-bottom: 48px; -} -.tabbar-labels.toolbar-bottom ~ .page-content { - padding-bottom: 72px; -} -.navbar-fixed .page-content { - padding-top: 56px; -} -.navbar-fixed.toolbar-fixed .page-content, -.navbar-fixed.tabbar-fixed .page-content, -.navbar-fixed .toolbar-fixed .page-content, -.navbar-fixed .tabbar-fixed .page-content, -.toolbar-fixed .navbar-fixed .page-content, -.tabbar-fixed .navbar-fixed .page-content { - padding-top: 104px; -} -.navbar-fixed.tabbar-labels-fixed .page-content, -.navbar-fixed .tabbar-labels-fixed .page-content, -.tabbar-labels-fixed .navbar-fixed .page-content { - padding-top: 128px; -} -.navbar-fixed .toolbar ~ .page-content { - padding-top: 104px; -} -.navbar-fixed .messagebar ~ .page-content, -.navbar-fixed .toolbar-bottom ~ .page-content { - padding-top: 56px; -} -.navbar-fixed .tabbar-labels ~ .page-content { - padding-top: 128px; -} -.navbar-fixed .tabbar-labels.toolbar-bottom ~ .page-content { - padding-top: 56px; -} -.navbar-fixed .with-subnavbar .page-content, -.navbar-fixed .page-content.with-subnavbar, -.navbar-fixed .subnavbar ~ .page-content { - padding-top: 104px; -} -.navbar-fixed .page .subnavbar, -.navbar-fixed.page .subnavbar { - top: 56px; -} -.navbar-fixed .toolbar { - top: 56px; -} -.navbar-fixed .messagebar, -.navbar-fixed .toolbar-bottom { - top: auto; -} -.navbar.navbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar.navbar-hiding ~ .page-content .list-group-title, -.navbar.navbar-hiding ~ .pages .list-group-title, -.navbar.navbar-hiding ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .page-content .subnavbar, -.navbar.navbar-hiding ~ .pages .subnavbar, -.navbar.navbar-hiding ~ .page .subnavbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .subnavbar, -.navbar.navbar-hiding ~ .toolbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar.navbar-hidden ~ .page-content .list-group-title, -.navbar.navbar-hidden ~ .pages .list-group-title, -.navbar.navbar-hidden ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - top: -56px; -} -.navbar.navbar-hidden ~ .page-content .subnavbar, -.navbar.navbar-hidden ~ .pages .subnavbar, -.navbar.navbar-hidden ~ .page .subnavbar { - -webkit-transform: translate3d(0, -56px, 0); - transform: translate3d(0, -56px, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden ~ .subnavbar, -.navbar.navbar-hidden ~ .toolbar:not(.messagebar):not(.toolbar-bottom) { - -webkit-transform: translate3d(0, -56px, 0); - transform: translate3d(0, -56px, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page.no-navbar .page-content { - padding-top: 0; -} -.page.no-navbar.with-subnavbar .page-content, -.with-subnavbar .page.no-navbar .page-content, -.page.no-navbar .page-content.with-subnavbar { - padding-top: 48px; -} -.toolbar.toolbar-hiding, -.tabbar.toolbar-hiding, -.toolbar.tabbar-hiding, -.tabbar.tabbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar ~ .toolbar.toolbar-hidden, -.navbar ~ .tabbar.toolbar-hidden, -.navbar ~ .toolbar.tabbar-hidden, -.navbar ~ .tabbar.tabbar-hidden { - -webkit-transform: translate3d(0, -104px, 0); - transform: translate3d(0, -104px, 0); -} -.navbar ~ .toolbar.tabbar-labels.toolbar-hidden, -.navbar ~ .tabbar.tabbar-labels.toolbar-hidden { - -webkit-transform: translate3d(0, -128px, 0); - transform: translate3d(0, -128px, 0); -} -.toolbar.toolbar-hidden.messagebar, -.tabbar.toolbar-hidden.messagebar, -.toolbar.toolbar-hidden.toolbar-bottom, -.tabbar.toolbar-hidden.toolbar-bottom { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.page.no-toolbar .page-content, -.page.no-tabbar .page-content { - padding-bottom: 0; -} -/* === Search Bar === */ -.searchbar { - height: 48px; - width: 100%; - background: #446995; - box-sizing: border-box; - padding: 0 16px; - overflow: hidden; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - color: #fff; -} -.searchbar a { - position: relative; - color: #fff; -} -.searchbar a:before { - content: ''; - width: 152%; - height: 152%; - position: absolute; - left: -26%; - top: -26%; - background-image: -webkit-radial-gradient(center, circle cover, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-image: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-repeat: no-repeat; - background-position: center; - background-size: 100% 100%; - opacity: 0; - pointer-events: none; - -webkit-transition-duration: 600ms; - transition-duration: 600ms; -} -html:not(.watch-active-state) .searchbar a:active:before, -.searchbar a.active-state:before { - opacity: 1; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.searchbar .searchbar-input { - width: 100%; - height: 32px; - position: relative; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.searchbar input[type="search"] { - box-sizing: border-box; - width: 100%; - height: 32px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 0; - font-family: inherit; - color: #fff; - font-size: 16px; - font-weight: 400; - padding: 0; - border-bottom: 1px solid #fff; - height: 100%; - padding: 0 36px 0 24px; - background-color: transparent; - background-repeat: no-repeat; - background-position: 0 center; - opacity: 0.6; - -webkit-background-size: 24px 24px; - background-size: 24px 24px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M15.5%2014h-.79l-.28-.27C15.41%2012.59%2016%2011.11%2016%209.5%2016%205.91%2013.09%203%209.5%203S3%205.91%203%209.5%205.91%2016%209.5%2016c1.61%200%203.09-.59%204.23-1.57l.27.28v.79l5%204.99L20.49%2019l-4.99-5zm-6%200C7.01%2014%205%2011.99%205%209.5S7.01%205%209.5%205%2014%207.01%2014%209.5%2011.99%2014%209.5%2014z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.searchbar input[type="search"]::-webkit-input-placeholder { - color: #ffffff; - opacity: 1; -} -.searchbar input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -.searchbar .searchbar-clear { - position: absolute; - width: 56px; - height: 100%; - right: -16px; - top: 0; - opacity: 0; - pointer-events: none; - background-position: center; - background-repeat: no-repeat; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23fff'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 24px 24px; - background-size: 24px 24px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - cursor: pointer; -} -.searchbar .searchbar-cancel { - display: none; -} -.searchbar.searchbar-active input[type="search"] { - opacity: 1; -} -.searchbar.searchbar-active .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar.searchbar-not-empty .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 100; - opacity: 0; - pointer-events: none; - background: rgba(0, 0, 0, 0.25); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.searchbar-overlay.searchbar-overlay-active { - opacity: 1; - pointer-events: auto; -} -.searchbar-not-found { - display: none; -} -.hidden-by-searchbar, -.list-block .hidden-by-searchbar, -.list-block li.hidden-by-searchbar { - display: none; -} -.page > .searchbar { - position: absolute; - width: 100%; - left: 0; - top: 0; - z-index: 200; -} -.page > .searchbar ~ .page-content { - padding-top: 48px; -} -.navbar-fixed .page > .searchbar, -.navbar-through .page > .searchbar, -.navbar-fixed > .searchbar, -.navbar-through > .searchbar { - top: 56px; -} -.navbar-fixed .page > .searchbar ~ .page-content, -.navbar-through .page > .searchbar ~ .page-content, -.navbar-fixed > .searchbar ~ .page-content, -.navbar-through > .searchbar ~ .page-content { - padding-top: 104px; -} -/* === Message Bar === */ -.toolbar.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - background: #fff; - height: 48px; - top: auto; - bottom: 0; - font-size: 16px; - overflow: hidden; -} -.toolbar.messagebar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #d1d1d1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .toolbar.messagebar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .toolbar.messagebar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.toolbar.messagebar textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0; - box-shadow: none; - display: block; - padding: 3px 8px 3px; - margin: 0; - width: 100%; - height: 28px; - color: #333; - font-size: 16px; - line-height: 22px; - font-family: inherit; - resize: none; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.toolbar.messagebar a.link { - color: #333; - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; - height: 48px; - line-height: 48px; -} -.toolbar.messagebar a.link:before { - background-image: -webkit-radial-gradient(center, circle cover, rgba(0, 0, 0, 0.1) 66%, rgba(0, 0, 0, 0) 66%); - background-image: radial-gradient(circle at center, rgba(0, 0, 0, 0.1) 66%, rgba(0, 0, 0, 0) 66%); -} -.toolbar.messagebar .link { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.toolbar.messagebar ~ .page-content { - padding-bottom: 48px; -} -.page.no-toolbar .toolbar.messagebar ~ .page-content { - padding-bottom: 48px; -} -.hidden-toolbar .toolbar.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -/* === Icons === */ -i.icon { - display: inline-block; - vertical-align: middle; - background-size: 100% auto; - background-position: center; - background-repeat: no-repeat; - font-style: normal; - position: relative; - /* Material Icons http://google.github.io/material-design-icons/ */ -} -i.icon.icon-back { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M20%2011H7.83l5.59-5.59L12%204l-8%208%208%208%201.41-1.41L7.83%2013H20v-2z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-forward { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M12%204l-1.41%201.41L16.17%2011H4v2h12.17l-5.58%205.59L12%2020l8-8z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bars { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M3%2018h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-camera { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23333'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'3.2'%2F%3E%3Cpath%20d%3D'M9%202L7.17%204H4c-1.1%200-2%20.9-2%202v12c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V6c0-1.1-.9-2-2-2h-3.17L15%202H9zm3%2015c-2.76%200-5-2.24-5-5s2.24-5%205-5%205%202.24%205%205-2.24%205-5%205z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-f7 { - width: 24px; - height: 24px; - background-image: url("../img/i-f7-material.png"); - border-radius: 3px; -} -i.icon.icon-next, -i.icon.icon-prev { - width: 24px; - height: 24px; -} -i.icon.icon-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M10%206L8.59%207.41%2013.17%2012l-4.58%204.59L10%2018l6-6z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M15.41%207.41L14%206l-6%206%206%206%201.41-1.41L10.83%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 24px; - height: 24px; - font-size: 0; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%2013h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-close { - width: 24px; - height: 24px; - font-size: 0; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.badge { - font-size: 10px; - display: inline-block; - color: #fff; - background: #8e8e93; - border-radius: 3px; - padding: 1px 6px; - box-sizing: border-box; - vertical-align: middle; -} -.icon .badge { - position: absolute; - left: 100%; - margin-left: -10px; - top: -2px; - font-size: 10px; - line-height: 1.4; - padding: 1px 5px; -} -/* === Content Block === */ -.content-block { - margin: 32px 0; - padding: 0 16px; - box-sizing: border-box; -} -.content-block.no-hairlines:before, -.content-block.no-hairlines ul:before, -.content-block.no-hairlines .content-block-inner:before { - display: none; -} -.content-block.no-hairlines:after, -.content-block.no-hairlines ul:after, -.content-block.no-hairlines .content-block-inner:after { - display: none; -} -.content-block-title { - position: relative; - overflow: hidden; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - line-height: 1; - margin: 16px 16px 16px; - padding-top: 16px; - line-height: 16px; - font-weight: 500; - color: rgba(0, 0, 0, 0.54); -} -.content-block-title + .list-block, -.content-block-title + .content-block, -.content-block-title + .card { - margin-top: 0px; -} -.content-block-inner { - padding: 16px 16px; - margin-left: -16px; - width: 100%; - position: relative; -} -.content-block-inner:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .content-block-inner:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .content-block-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner > p:first-child { - margin-top: 0; -} -.content-block-inner > p:last-child { - margin-bottom: 0; -} -.content-block.inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 7px; -} -.content-block.inset .content-block-inner { - border-radius: 4px; -} -.content-block.inset .content-block-inner:before { - display: none; -} -.content-block.inset .content-block-inner:after { - display: none; -} -@media all and (min-width: 768px) { - .content-block.tablet-inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; - } - .content-block.tablet-inset .content-block-inner { - border-radius: 4px; - } - .content-block.tablet-inset .content-block-inner:before { - display: none; - } - .content-block.tablet-inset .content-block-inner:after { - display: none; - } -} -/* === Lists === */ -.list-block { - margin: 32px 0; - font-size: 16px; -} -.list-block ul { - list-style: none; - padding: 0; - margin: 0; - position: relative; -} -.list-block ul:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block ul:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block ul:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul ul { - padding-left: 56px; -} -.list-block ul ul:before { - display: none; -} -.list-block ul ul:after { - display: none; -} -.list-block .align-top, -.list-block .align-top .item-content, -.list-block .align-top .item-inner { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.list-block.inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; -} -.list-block.inset .content-block-title { - margin-left: 0; - margin-right: 0; -} -.list-block.inset ul { - border-radius: 4px; -} -.list-block.inset ul:before { - display: none; -} -.list-block.inset ul:after { - display: none; -} -.list-block.inset li:first-child > a { - border-radius: 4px 4px 0 0; -} -.list-block.inset li:last-child > a { - border-radius: 0 0 4px 4px; -} -.list-block.inset li:first-child:last-child > a { - border-radius: 4px; -} -@media all and (min-width: 768px) { - .list-block.tablet-inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 4px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 4px 4px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 4px 4px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 4px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 4px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 4px 4px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 4px 4px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 4px; - } -} -.list-block li { - box-sizing: border-box; - position: relative; -} -.list-block .item-media { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - box-sizing: border-box; - padding-top: 8px; - padding-bottom: 8px; - min-width: 40px; -} -.list-block .item-media i + i { - margin-left: 8px; -} -.list-block .item-media i + img { - margin-left: 8px; -} -.list-block .item-media + .item-inner { - margin-left: 16px; -} -.list-block .item-inner { - padding-right: 16px; - position: relative; - width: 100%; - padding-top: 8px; - padding-bottom: 8px; - min-height: 48px; - box-sizing: border-box; - -webkit-box-flex: 1; - -ms-flex: 1; - min-width: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-title { - min-width: 0; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - max-width: 100%; -} -.list-block .item-after { - white-space: nowrap; - color: #757575; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 8px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - max-height: 28px; - font-size: 14px; -} -.list-block .smart-select .item-after, -.list-block .autocomplete-opener .item-after { - max-width: 70%; - overflow: hidden; - text-overflow: ellipsis; - position: relative; - display: block; -} -.list-block .item-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: block; - color: inherit; - position: relative; - overflow: hidden; - z-index: 0; -} -.list-block .item-link .item-inner { - padding-right: 42px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; - background-repeat: no-repeat; - background-position: 95% center; - background-position: -webkit-calc(100% - 16px) center; - background-position: calc(100% - 16px) center; -} -html:not(.watch-active-state) .list-block .item-link:active, -.list-block .item-link.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.list-block .item-link.list-button { - padding: 0 16px; - font-size: 16px; - display: block; - line-height: 48px; -} -.list-block .item-content { - box-sizing: border-box; - padding-left: 16px; - min-height: 48px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.list-block .list-block-label { - margin: 10px 0 35px; - padding: 0 16px; - font-size: 14px; - color: rgba(0, 0, 0, 0.54); -} -.list-block .swipeout { - overflow: hidden; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.list-block .swipeout.deleting { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block .swipeout.deleting .swipeout-content { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout.transitioning .swipeout-content, -.list-block .swipeout.transitioning .swipeout-actions-right a, -.list-block .swipeout.transitioning .swipeout-actions-left a, -.list-block .swipeout.transitioning .swipeout-overswipe { - -webkit-transition: 300ms; - transition: 300ms; -} -.list-block .swipeout-content { - position: relative; - z-index: 10; -} -.list-block .swipeout-overswipe { - -webkit-transition: 200ms left; - transition: 200ms left; -} -.list-block .swipeout-actions-left, -.list-block .swipeout-actions-right { - position: absolute; - top: 0; - height: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; -} -.list-block .swipeout-actions-left a, -.list-block .swipeout-actions-right a { - padding: 0 24px; - color: #fff; - background: #c7c7cc; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - position: relative; - left: 0; -} -.list-block .swipeout-actions-left a:after, -.list-block .swipeout-actions-right a:after { - content: ''; - position: absolute; - top: 0; - width: 600%; - height: 100%; - background: inherit; - z-index: -1; -} -.list-block .swipeout-actions-left a.swipeout-delete, -.list-block .swipeout-actions-right a.swipeout-delete { - background: #f44336; -} -.list-block .swipeout-actions-right { - right: 0%; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} -.list-block .swipeout-actions-right a:after { - left: 100%; - margin-left: -1px; -} -.list-block .swipeout-actions-left { - left: 0%; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout-actions-left a:after { - right: 100%; - margin-right: -1px; -} -.list-block .item-subtitle { - font-size: 14px; - position: relative; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - text-overflow: ellipsis; -} -.list-block .item-text { - font-size: 14px; - color: #757575; - line-height: 20px; - position: relative; - overflow: hidden; - max-height: 40px; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - display: -webkit-box; -} -.list-block.media-list .item-inner, -.list-block li.media-item .item-inner { - display: block; - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block.media-list .item-link .item-inner, -.list-block li.media-item .item-link .item-inner { - background: none; - padding-right: 16px; -} -.list-block.media-list .item-link .item-title-row, -.list-block li.media-item .item-link .item-title-row { - padding-right: 26px; - background: no-repeat right top; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; -} -.list-block.media-list .item-media, -.list-block li.media-item .item-media { - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: flex-start; - -webkit-align-self: flex-start; - align-self: flex-start; -} -.list-block.media-list .item-media img, -.list-block li.media-item .item-media img { - display: block; -} -.list-block.media-list .item-title-row, -.list-block li.media-item .item-title-row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.list-block.media-list .item-content > .item-after, -.list-block li.media-item .item-content > .item-after { - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: flex-start; - -webkit-align-self: flex-start; - align-self: flex-start; -} -.list-block .list-group ul:after, -.list-block .list-group ul:before { - z-index: 11; -} -.list-block .list-group + .list-group ul:before { - display: none; -} -.list-block .item-divider, -.list-block .list-group-title { - background: #f4f4f4; - padding: 0px 16px; - white-space: nowrap; - position: relative; - max-width: 100%; - text-overflow: ellipsis; - overflow: hidden; - color: rgba(0, 0, 0, 0.54); - height: 48px; - box-sizing: border-box; - line-height: 48px; - font-size: 14px; -} -.list-block .item-divider:before, -.list-block .list-group-title:before { - display: none; -} -.list-block .list-group-title { - position: relative; - position: -webkit-sticky; - position: -moz-sticky; - position: sticky; - top: 0px; - z-index: 10; - margin-top: 0; -} -.list-block .sortable-handler { - position: absolute; - right: 0; - top: 0; - bottom: 1px; - z-index: 10; - background-repeat: no-repeat; - background-size: 18px 12px; - background-position: center; - width: 50px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2018%2012'%20fill%3D'%23c7c7cc'%3E%3Cpath%20d%3D'M0%2C2V0h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C7V5h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C12v-2h22v2H0z'%2F%3E%3C%2Fsvg%3E"); - opacity: 0; - visibility: hidden; - cursor: pointer; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable .item-inner { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable-opened .sortable-handler { - visibility: visible; - opacity: 1; -} -.list-block.sortable-opened .item-inner, -.list-block.sortable-opened .item-link .item-inner { - padding-right: 50px; -} -.list-block.sortable-opened .item-link .item-inner, -.list-block.sortable-opened .item-link .item-title-row { - background-image: none; -} -.list-block.sortable-sorting li { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block li.sorting { - z-index: 50; - background: rgba(255, 255, 255, 0.8); - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.list-block li.sorting .item-inner:after { - display: none; -} -.list-block li:last-child .list-button:after { - display: none; -} -.list-block li:last-child .item-inner:after, -.list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.list-block li li:last-child .item-inner:after, -.list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block.no-hairlines:before, -.list-block.no-hairlines ul:before, -.list-block.no-hairlines .content-block-inner:before { - display: none; -} -.list-block.no-hairlines:after, -.list-block.no-hairlines ul:after, -.list-block.no-hairlines .content-block-inner:after { - display: none; -} -.list-block.no-hairlines-between .item-inner:after, -.list-block.no-hairlines-between .list-button:after, -.list-block.no-hairlines-between .item-divider:after, -.list-block.no-hairlines-between .list-group-title:after, -.list-block.no-hairlines-between .list-group-title:after { - display: none; -} -/* === Forms === */ -.list-block input[type="text"], -.list-block input[type="password"], -.list-block input[type="search"], -.list-block input[type="email"], -.list-block input[type="tel"], -.list-block input[type="url"], -.list-block input[type="date"], -.list-block input[type="datetime-local"], -.list-block input[type="time"], -.list-block input[type="number"], -.list-block select, -.list-block textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0 0 0 0; - box-shadow: none; - display: block; - padding: 0; - margin: 0; - width: 100%; - height: 36px; - color: #212121; - font-size: 16px; - font-family: inherit; -} -.list-block input[type="text"]::-webkit-input-placeholder, -.list-block input[type="password"]::-webkit-input-placeholder, -.list-block input[type="search"]::-webkit-input-placeholder, -.list-block input[type="email"]::-webkit-input-placeholder, -.list-block input[type="tel"]::-webkit-input-placeholder, -.list-block input[type="url"]::-webkit-input-placeholder, -.list-block input[type="date"]::-webkit-input-placeholder, -.list-block input[type="datetime-local"]::-webkit-input-placeholder, -.list-block input[type="time"]::-webkit-input-placeholder, -.list-block input[type="number"]::-webkit-input-placeholder, -.list-block select::-webkit-input-placeholder, -.list-block textarea::-webkit-input-placeholder { - color: rgba(0, 0, 0, 0.35); -} -.list-block .label, -.list-block .floating-label { - vertical-align: top; - color: rgba(0, 0, 0, 0.65); - -webkit-transition-duration: 200ms; - transition-duration: 200ms; - width: 35%; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.list-block input[type="date"], -.list-block input[type="datetime-local"] { - line-height: 44px; -} -.list-block select { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -.list-block textarea { - resize: none; - line-height: 1.4; - padding-top: 8px; - padding-bottom: 7px; - height: 100px; -} -.list-block textarea.resizable { - height: 36px; -} -.list-block .item-input { - width: 100%; - -ms-flex: 1; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - font-size: 0; - position: relative; - margin-bottom: 4px; - min-height: 36px; -} -.list-block .input-item ul:after, -.list-block.inputs-list ul:after { - display: none; -} -.list-block .input-item .item-media, -.list-block.inputs-list .item-media { - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; - min-height: 36px; - margin-bottom: 8px; - padding: 0; -} -.list-block .input-item .item-inner, -.list-block.inputs-list .item-inner { - display: block; - margin-bottom: 4px; - padding-bottom: 0; -} -.list-block .input-item .item-inner:after, -.list-block.inputs-list .item-inner:after { - display: none; -} -.list-block .input-item .label, -.list-block.inputs-list .label, -.list-block .input-item .floating-label, -.list-block.inputs-list .floating-label { - width: 100%; - font-size: 12px; -} -.list-block .input-item .floating-label, -.list-block.inputs-list .floating-label { - -webkit-transform-origin: left; - transform-origin: left; - -webkit-transform: scale(1.33333333) translateY(21px); - transform: scale(1.33333333) translateY(21px); - color: rgba(0, 0, 0, 0.35); - width: auto; - max-width: 75%; -} -.list-block .input-item .floating-label ~ .item-input input::-webkit-input-placeholder, -.list-block.inputs-list .floating-label ~ .item-input input::-webkit-input-placeholder { - color: transparent; -} -.list-block .focus-state .floating-label, -.list-block .not-empty-state .floating-label { - color: rgba(0, 0, 0, 0.65); - -webkit-transform: scale(1) translateY(0); - transform: scale(1) translateY(0); -} -.list-block .focus-state .label, -.list-block .focus-state .floating-label { - color: #446995; -} -.item-input-field, -.input-field { - position: relative; -} -.item-input-field:after, -.input-field:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .item-input-field:after, -html.pixel-ratio-2 .input-field:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .item-input-field:after, -html.pixel-ratio-3 .input-field:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.item-input-field:after, -.input-field:after { - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -.item-input-field.focus-state:after, -.input-field.focus-state:after, -.item-input-field.not-empty-state:after, -.input-field.not-empty-state:after, -.focus-state .item-input-field:after, -.focus-state .input-field:after, -.not-empty-state .item-input-field:after, -.not-empty-state .input-field:after { - background: #446995; - -webkit-transform: scaleY(2) !important; - transform: scaleY(2) !important; -} -textarea.resizable { - overflow: hidden; -} -.label-switch { - display: inline-block; - vertical-align: middle; - width: 36px; - height: 14px; - position: relative; - cursor: pointer; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.label-switch .checkbox { - width: 36px; - border-radius: 36px; - box-sizing: border-box; - height: 14px; - background: #b0afaf; - z-index: 0; - margin: 0; - padding: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - cursor: pointer; - position: relative; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch .checkbox:after { - content: ' '; - height: 20px; - width: 20px; - border-radius: 20px; - background: #fff; - position: absolute; - z-index: 2; - top: -3px; - left: 0px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch input[type="checkbox"] { - display: none; -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: rgba(68, 105, 149, 0.5); -} -.label-switch input[type="checkbox"]:checked + .checkbox:after { - -webkit-transform: translateX(16px); - transform: translateX(16px); - background: #446995; -} -.item-input .label-switch { - top: 11px; -} -.button { - color: #446995; - text-decoration: none; - text-align: center; - display: block; - border-radius: 2px; - line-height: 36px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 36px; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - font-family: inherit; - cursor: pointer; - min-width: 64px; - padding: 0 8px; - position: relative; - overflow: hidden; - outline: 0; - border: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -input[type="submit"].button, -input[type="button"].button { - width: 100%; -} -html:not(.watch-active-state) .button:active, -.button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.button.button-fill { - background-color: #446995; - color: #fff; -} -html:not(.watch-active-state) .button.button-fill:active, -.button.button-fill.active-state { - background: #375579; -} -.button.button-big { - height: 48px; - line-height: 48px; - border-radius: 3px; -} -.button i.icon + span, -.button span:not(.ripple-wave) + span, -.button span:not(.ripple-wave) + i.icon, -.button i.icon + i.icon { - margin-left: 8px; -} -.navbar .button:not(.button-fill), -.toolbar .button:not(.button-fill), -.subnavbar .button:not(.button-fill), -.notifications .button:not(.button-fill) { - color: #fff; -} -html:not(.watch-active-state) .navbar .button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .button:not(.button-fill):active, -.navbar .button:not(.button-fill).active-state, -.toolbar .button:not(.button-fill).active-state, -.subnavbar .button:not(.button-fill).active-state, -.notifications .button:not(.button-fill).active-state { - background: rgba(255, 255, 255, 0.15); -} -.button-raised { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); -} -html:not(.watch-active-state) .button-raised:active, -.button-raised.active-state { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); -} -.buttons-row { - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.buttons-row .button { - margin-left: 16px; - width: 100%; - -webkit-box-flex: 1; - -ms-flex: 1; -} -.buttons-row .button:first-child { - margin-left: 0; -} -.range-slider { - width: 100%; - position: relative; - overflow: hidden; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.range-slider input[type="range"] { - position: relative; - height: 20px; - width: 100%; - margin: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: -webkit-gradient(linear, 50% 0, 50% 100%, color-stop(0, #b9b9b9), color-stop(100%, #b9b9b9)); - background: linear-gradient(to right, #b9b9b9 0, #b9b9b9 100%); - background-position: center; - background-size: 100% 2px; - background-repeat: no-repeat; - outline: 0; - -ms-background-position-y: 500px; -} -.range-slider input[type="range"]:focus, -.range-slider input[type="range"]:active { - border: 0; - outline: 0 none; -} -.range-slider input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #446995; - border-radius: 20px; -} -.range-slider input[type="range"]::-webkit-slider-thumb:before { - position: absolute; - top: 50%; - right: 100%; - width: 2000px; - height: 2px; - margin-top: -1px; - z-index: 1; - background: #446995; - content: ' '; -} -.range-slider input[type="range"]::-moz-range-track { - width: 100%; - height: 2px; - background: #b7b8b7; - border: none; - outline: 0; -} -.range-slider input[type="range"]::-moz-range-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #446995; - border-radius: 20px; -} -.range-slider input[type="range"]::-ms-track { - width: 100%; - height: 2px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; -} -.range-slider input[type="range"]::-ms-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #446995; - border-radius: 20px; -} -.range-slider input[type="range"]::-ms-fill-lower { - background: #446995; -} -.range-slider input[type="range"]::-ms-fill-upper { - background: #b7b8b7; -} -.item-input .range-slider { - top: 8px; -} -label.label-checkbox { - cursor: pointer; -} -label.label-checkbox i.icon-form-checkbox { - width: 18px; - height: 18px; - position: relative; - border-radius: 2px; - border: 2px solid #6d6d6d; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - background: transparent; -} -label.label-checkbox i.icon-form-checkbox:after { - content: ' '; - position: absolute; - width: 18px; - height: 18px; - left: -2px; - top: -2px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0; - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M9%2016.17L4.83%2012l-1.42%201.41L9%2019%2021%207l-1.41-1.41z'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 100% auto; - background-size: 100% auto; -} -label.label-checkbox input[type="checkbox"], -label.label-checkbox input[type="radio"] { - display: none; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="checkbox"]:checked ~ .item-after i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked ~ .item-after i.icon-form-checkbox, -label.label-checkbox input[type="checkbox"]:checked ~ .item-inner i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked ~ .item-inner i.icon-form-checkbox { - border-color: #446995; - background-color: #446995; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="checkbox"]:checked ~ .item-after i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked ~ .item-after i.icon-form-checkbox:after, -label.label-checkbox input[type="checkbox"]:checked ~ .item-inner i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked ~ .item-inner i.icon-form-checkbox:after { - opacity: 1; -} -label.label-radio { - cursor: pointer; -} -label.label-radio i.icon-form-radio { - width: 20px; - height: 20px; - position: relative; - border-radius: 20px; - border: 2px solid #6d6d6d; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-radio i.icon-form-radio:after { - content: ' '; - position: absolute; - width: 10px; - height: 10px; - left: 50%; - top: 50%; - margin-left: -5px; - margin-top: -5px; - background-color: #446995; - border-radius: 100%; - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-radio input[type="checkbox"], -label.label-radio input[type="radio"] { - display: none; -} -label.label-radio input[type="checkbox"]:checked + .item-media i.icon-form-radio, -label.label-radio input[type="radio"]:checked + .item-media i.icon-form-radio, -label.label-radio input[type="checkbox"]:checked ~ .item-after i.icon-form-radio, -label.label-radio input[type="radio"]:checked ~ .item-after i.icon-form-radio, -label.label-radio input[type="checkbox"]:checked ~ .item-inner i.icon-form-radio, -label.label-radio input[type="radio"]:checked ~ .item-inner i.icon-form-radio { - border-color: #446995; -} -label.label-radio input[type="checkbox"]:checked + .item-media i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked + .item-media i.icon-form-radio:after, -label.label-radio input[type="checkbox"]:checked ~ .item-after i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked ~ .item-after i.icon-form-radio:after, -label.label-radio input[type="checkbox"]:checked ~ .item-inner i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked ~ .item-inner i.icon-form-radio:after { - background-color: #446995; - -webkit-transform: scale(1); - transform: scale(1); -} -label.label-checkbox, -label.label-radio { - position: relative; - overflow: hidden; - z-index: 0; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-checkbox .item-after i.icon-form-checkbox, -label.label-radio .item-after i.icon-form-checkbox, -label.label-checkbox .item-after i.icon-form-radio, -label.label-radio .item-after i.icon-form-radio { - margin-left: 8px; - margin-right: 16px; -} -.media-list label.label-checkbox .item-media i.icon-form-checkbox, -.media-list label.label-radio .item-media i.icon-form-checkbox, -.media-item label.label-checkbox .item-media i.icon-form-checkbox, -.media-item label.label-radio .item-media i.icon-form-checkbox, -.media-list label.label-checkbox .item-media i.icon-form-radio, -.media-list label.label-radio .item-media i.icon-form-radio, -.media-item label.label-checkbox .item-media i.icon-form-radio, -.media-item label.label-radio .item-media i.icon-form-radio { - margin-top: 4px; -} -html:not(.watch-active-state) label.label-checkbox:active, -html:not(.watch-active-state) label.label-radio:active, -label.label-checkbox.active-state, -label.label-radio.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -html:not(.watch-active-state) label.label-checkbox:active .item-inner:after, -html:not(.watch-active-state) label.label-radio:active .item-inner:after, -label.label-checkbox.active-state .item-inner:after, -label.label-radio.active-state .item-inner:after { - background-color: transparent; -} -.smart-select select { - display: none; -} -/* === Floating Action Button === */ -.floating-button { - position: absolute; - right: 16px; - bottom: 16px; - width: 56px; - height: 56px; - border-radius: 50%; - z-index: 1500; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); - background-color: #446995; - color: #fff; - overflow: hidden; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; -} -html:not(.watch-active-state) .floating-button:active, -.floating-button.active-state { - background: #375579; -} -.floating-button-toolbar, -.speed-dial { - position: absolute; - right: 16px; - bottom: 16px; - z-index: 1500; -} -.floating-button-toolbar .floating-button, -.speed-dial .floating-button { - right: 0; - bottom: 0; - position: relative; -} -.speed-dial .floating-button i { - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.speed-dial .floating-button i + i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); - transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); - opacity: 0; -} -.speed-dial.speed-dial-opened .floating-button i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); - transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); - opacity: 0; -} -.speed-dial.speed-dial-opened .floating-button i + i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - opacity: 1; -} -.speed-dial-buttons { - position: absolute; - width: 40px; - left: 50%; - margin-left: -20px; - bottom: 100%; - margin-bottom: 16px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: reverse; - -moz-box-orient: vertical; - -moz-box-direction: reverse; - -ms-flex-direction: column-reverse; - -webkit-flex-direction: column-reverse; - flex-direction: column-reverse; - visibility: hidden; - pointer-events: none; -} -.speed-dial-buttons a { - width: 40px; - height: 40px; - opacity: 0; - color: #fff; - border-radius: 50%; - position: relative; - z-index: 1; - overflow: hidden; - background-color: #446995; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-transform: translate3d(0, 8px, 0) scale(0.3); - transform: translate3d(0, 8px, 0) scale(0.3); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; -} -html:not(.watch-active-state) .speed-dial-buttons a:active, -.speed-dial-buttons a.active-state { - background: #375579; -} -.speed-dial-buttons a + a { - margin-bottom: 16px; -} -.speed-dial-opened .speed-dial-buttons { - visibility: visible; - pointer-events: auto; -} -.speed-dial-opened .speed-dial-buttons a { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0) scaleY(1); - transform: translate3d(0, 0, 0) scaleY(1); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.speed-dial-opened .speed-dial-buttons a:nth-child(2) { - -webkit-transition-delay: 50ms; - transition-delay: 50ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(3) { - -webkit-transition-delay: 100ms; - transition-delay: 100ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(4) { - -webkit-transition-delay: 150ms; - transition-delay: 150ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(5) { - -webkit-transition-delay: 200ms; - transition-delay: 200ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(6) { - -webkit-transition-delay: 250ms; - transition-delay: 250ms; -} -.floating-button-to-popover.floating-button-to-popover { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.floating-button-to-popover.floating-button-to-popover-in { - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.floating-button-to-popover.floating-button-to-popover-in i { - opacity: 0; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.floating-button-to-popover.floating-button-to-popover-scale { - border-radius: 0; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - box-shadow: none; -} -.floating-button-to-popover.floating-button-to-popover-out { - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.floating-button-to-popover.floating-button-to-popover-out i { - opacity: 1; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; - -webkit-transition-delay: 200ms; - transition-delay: 200ms; -} -/* === Modals === */ -.modal-overlay, -.preloader-indicator-overlay, -.popup-overlay, -.picker-modal-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.4); - z-index: 13000; - visibility: hidden; - opacity: 0; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.modal-overlay.modal-overlay-visible, -.preloader-indicator-overlay.modal-overlay-visible, -.popup-overlay.modal-overlay-visible, -.picker-modal-overlay.modal-overlay-visible { - visibility: visible; - opacity: 1; -} -.popup-overlay { - z-index: 10500; -} -.picker-modal-overlay { - z-index: 12000; -} -.modal { - width: 280px; - position: absolute; - z-index: 13500; - left: 50%; - margin-left: -140px; - margin-top: 0; - top: 50%; - border-radius: 3px; - opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -ms-transition-property: -ms-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - color: #757575; - display: none; - background: #fff; - font-size: 16px; - box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); -} -.modal.modal-in { - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal.modal-out { - opacity: 0; - z-index: 13499; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(0.815); - transform: translate3d(0, 0, 0) scale(0.815); -} -.modal-inner { - padding: 24px 24px 20px; - position: relative; -} -.modal-title { - font-weight: 500; - font-size: 20px; - color: #212121; - line-height: 1.3; -} -.modal-title + .modal-text { - margin-top: 20px; -} -.modal-text { - line-height: 1.5; -} -.modal-buttons { - height: 48px; - padding: 6px 8px; - overflow: hidden; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; -} -.modal-buttons.modal-buttons-vertical { - display: block; - height: auto; - padding: 0 0 8px 0; -} -.modal-buttons.modal-buttons-vertical .modal-button { - margin-left: 0; - text-align: right; - height: 48px; - line-height: 48px; - border-radius: 0; - padding-left: 16px; - padding-right: 16px; -} -.modal-button, -.modal-buttons .button { - color: #446995; - text-decoration: none; - text-align: center; - display: block; - border-radius: 2px; - line-height: 36px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 36px; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - font-family: inherit; - cursor: pointer; - min-width: 64px; - padding: 0 8px; - position: relative; - overflow: hidden; - outline: 0; - border: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-user-select: none; - user-select: none; -} -input[type="submit"].modal-button, -input[type="submit"].modal-buttons .button, -input[type="button"].modal-button, -input[type="button"].modal-buttons .button { - width: 100%; -} -html:not(.watch-active-state) .modal-button:active, -html:not(.watch-active-state) .modal-buttons .button:active, -.modal-button.active-state, -.modal-buttons .button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.modal-button.button-fill, -.modal-buttons .button.button-fill { - background-color: #446995; - color: #fff; -} -html:not(.watch-active-state) .modal-button.button-fill:active, -html:not(.watch-active-state) .modal-buttons .button.button-fill:active, -.modal-button.button-fill.active-state, -.modal-buttons .button.button-fill.active-state { - background: #375579; -} -.modal-button.button-big, -.modal-buttons .button.button-big { - height: 48px; - line-height: 48px; - border-radius: 3px; -} -.modal-button i.icon + span, -.modal-buttons .button i.icon + span, -.modal-button span:not(.ripple-wave) + span, -.modal-buttons .button span:not(.ripple-wave) + span, -.modal-button span:not(.ripple-wave) + i.icon, -.modal-buttons .button span:not(.ripple-wave) + i.icon, -.modal-button i.icon + i.icon, -.modal-buttons .button i.icon + i.icon { - margin-left: 8px; -} -.navbar .modal-button:not(.button-fill), -.navbar .modal-buttons .button:not(.button-fill), -.toolbar .modal-button:not(.button-fill), -.toolbar .modal-buttons .button:not(.button-fill), -.subnavbar .modal-button:not(.button-fill), -.subnavbar .modal-buttons .button:not(.button-fill), -.notifications .modal-button:not(.button-fill), -.notifications .modal-buttons .button:not(.button-fill) { - color: #fff; -} -html:not(.watch-active-state) .navbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .navbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .modal-buttons .button:not(.button-fill):active, -.navbar .modal-button:not(.button-fill).active-state, -.navbar .modal-buttons .button:not(.button-fill).active-state, -.toolbar .modal-button:not(.button-fill).active-state, -.toolbar .modal-buttons .button:not(.button-fill).active-state, -.subnavbar .modal-button:not(.button-fill).active-state, -.subnavbar .modal-buttons .button:not(.button-fill).active-state, -.notifications .modal-button:not(.button-fill).active-state, -.notifications .modal-buttons .button:not(.button-fill).active-state { - background: rgba(255, 255, 255, 0.15); -} -.modal-button.active i.icon, -.modal-buttons .button.active i.icon { - background-color: #fff; -} -.modal-button.modal-button-bold, -.modal-buttons .button.modal-button-bold { - font-weight: 700; -} -.modal-button + .modal-button, -.modal-buttons .button + .modal-button { - margin-left: 4px; -} -.modal-no-buttons .modal-buttons { - display: none; -} -.actions-modal { - position: absolute; - left: 0; - bottom: 0; - z-index: 13500; - width: 100%; - background: #fff; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 100%; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-modal.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal.modal-out { - z-index: 13499; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.actions-modal-group { - position: relative; -} -.actions-modal-group:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #d2d2d6; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-modal-group:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-modal-group:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-modal-group:last-child:after { - display: none; -} -.actions-modal-button, -.actions-modal-label { - width: 100%; - font-weight: normal; - margin: 0; - box-sizing: border-box; - display: block; - position: relative; - padding: 0 16px; -} -.actions-modal-button a, -.actions-modal-label a { - text-decoration: none; - color: inherit; - display: block; -} -.actions-modal-button b, -.actions-modal-label b { - font-weight: 500; -} -.actions-modal-button.actions-modal-button-bold, -.actions-modal-label.actions-modal-button-bold { - font-weight: 500; -} -.actions-modal-button.actions-modal-button-red, -.actions-modal-label.actions-modal-button-red { - color: #f44336; -} -.actions-modal-button.disabled, -.actions-modal-label.disabled { - opacity: 0.95; - color: #9e9e9e; -} -.actions-modal-button { - cursor: pointer; - line-height: 48px; - font-size: 16px; - color: rgba(0, 0, 0, 0.87); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.actions-modal-button a, -.actions-modal-button { - position: relative; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -html:not(.watch-active-state) .actions-modal-button:active, -.actions-modal-button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.actions-modal-label { - font-size: 16px; - color: rgba(0, 0, 0, 0.54); - min-height: 56px; - line-height: 1.3; - padding-top: 12px; - padding-bottom: 12px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -input.modal-text-input { - box-sizing: border-box; - height: 36px; - background: #fff; - margin: 0; - margin-top: 15px; - padding: 0; - border: none; - width: 100%; - font-size: 16px; - font-family: inherit; - display: block; - box-shadow: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -input.modal-text-input::-webkit-input-placeholder { - color: rgba(0, 0, 0, 0.35); -} -input.modal-text-input + input.modal-text-input { - margin-top: 16px; -} -.popover { - width: 320px; - background: #fff; - z-index: 13500; - margin: 0; - top: 0; - opacity: 0; - left: 0; - border-radius: 3px; - position: absolute; - display: none; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - -webkit-transform: scale(0.85, 0.6); - transform: scale(0.85, 0.6); - -webkit-transition-property: opacity, -webkit-transform, border-radius; - -moz-transition-property: opacity, -moz-transform, border-radius; - transition-property: opacity, transform, border-radius; -} -.popover.popover-on-top { - -webkit-transform-origin: center bottom; - transform-origin: center bottom; -} -.popover.popover-on-bottom { - -webkit-transform-origin: center top; - transform-origin: center top; -} -.popover.modal-in { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 1; -} -.popover.modal-out { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0; -} -.popover .list-block { - margin: 0; -} -.popover .list-block:first-child:last-child ul:before { - display: none; -} -.popover .list-block:first-child:last-child ul:after { - display: none; -} -.popover .list-block ul { - background: none; -} -.popover .list-block ul:before { - display: none; -} -.popover .list-block:first-child ul { - border-radius: 3px 3px 0 0; -} -.popover .list-block:first-child li:first-child a { - border-radius: 3px 3px 0 0; -} -.popover .list-block:last-child ul { - border-radius: 0 0 3px 3px; -} -.popover .list-block:last-child ul:after { - display: none; -} -.popover .list-block:last-child li:last-child a { - border-radius: 0 0 3px 3px; -} -.popover .list-block:first-child:last-child li:first-child:last-child a, -.popover .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 3px; -} -.popover.popover-floating-button { - -webkit-transform-origin: center center; - transform-origin: center center; - -webkit-transform: scale(0.7); - transform: scale(0.7); - border-radius: 50%; - box-shadow: none; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.popover.popover-floating-button.modal-in { - border-radius: 0%; - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-delay: 200ms; - transition-delay: 200ms; - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -.popover.popover-floating-button.modal-out { - border-radius: 50%; - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.popover.popover-floating-button .list-block { - margin: 0; -} -.popover.popover-floating-button .list-block:first-child ul { - border-radius: 0; -} -.popover.popover-floating-button .list-block:first-child li:first-child a { - border-radius: 0; -} -.popover.popover-floating-button .list-block:last-child ul { - border-radius: 0; -} -.popover.popover-floating-button .list-block:last-child li:last-child a { - border-radius: 0; -} -.popover.popover-floating-button .list-block:first-child:last-child li:first-child:last-child a, -.popover.popover-floating-button .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 0; -} -.popover-inner { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-popover .list-block { - margin: 0; -} -.actions-popover-label { - padding: 8px 16px; - color: rgba(0, 0, 0, 0.54); - font-size: 16px; - line-height: 1.3; - padding-top: 12px; - padding-bottom: 12px; - position: relative; -} -.actions-popover-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #d2d2d6; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-popover-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-popover-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-popover-label:last-child:after { - display: none; -} -.popup, -.login-screen { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 11000; - background: #fff; - box-sizing: border-box; - display: none; - overflow: auto; - -webkit-overflow-scrolling: touch; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.popup.modal-in, -.login-screen.modal-in, -.popup.modal-out, -.login-screen.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.popup.modal-in, -.login-screen.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.popup.modal-out, -.login-screen.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.login-screen.modal-in, -.login-screen.modal-out { - display: block; -} -@media all and (min-width: 630px) and (min-height: 630px) { - .popup:not(.tablet-fullscreen) { - width: 630px; - height: 630px; - left: 50%; - top: 50%; - margin-left: -315px; - margin-top: -315px; - box-shadow: 0px 20px 44px rgba(0, 0, 0, 0.5); - border-radius: 3px; - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } - .popup:not(.tablet-fullscreen).modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - .popup:not(.tablet-fullscreen).modal-out { - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } -} -@media all and (max-width: 629px), (max-height: 629px) { - html.with-statusbar-overlay .popup { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; - } - html.with-statusbar-overlay .popup-overlay { - z-index: 9500; - } -} -html.with-statusbar-overlay .login-screen, -html.with-statusbar-overlay .popup.tablet-fullscreen { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; -} -.modal-preloader .modal-title, -.modal-preloader .modal-inner { - text-align: center; -} -.preloader-indicator-overlay { - visibility: visible; - opacity: 0; - background: none; -} -.preloader-indicator-modal { - position: absolute; - left: 50%; - top: 50%; - padding: 8px; - margin-left: -24px; - margin-top: -24px; - background: rgba(0, 0, 0, 0.8); - z-index: 13500; - border-radius: 4px; -} -.preloader-indicator-modal .preloader { - display: block; -} -.picker-modal { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 260px; - z-index: 12000; - display: none; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - background: #fff; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal.modal-in, -.picker-modal.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.picker-modal.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal .picker-modal-inner { - height: 100%; - position: relative; -} -.picker-modal .toolbar { - position: relative; - width: 100%; - top: 0; -} -.picker-modal .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px); - height: -moz-calc(100% - 48px); - height: calc(100% - 48px); -} -.picker-modal .toolbar a.link { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.picker-modal .picker-header, -.picker-modal .picker-footer { - height: 48px; -} -.picker-modal .picker-header { - background: #446995; -} -.picker-modal .picker-header + .toolbar .toolbar-inner { - overflow: visible; -} -.picker-modal .picker-header + .picker-footer + .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px * 3); - height: -moz-calc(100% - 48px * 3); - height: calc(100% - 48px * 3); -} -.picker-modal .picker-footer { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 48px; - padding: 6px 8px; - overflow: hidden; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; -} -.picker-modal .picker-footer.modal-buttons-vertical { - display: block; - height: auto; - padding: 0 0 8px 0; -} -.picker-modal .picker-footer.modal-buttons-vertical .modal-button { - margin-left: 0; - text-align: right; - height: 48px; - line-height: 48px; - border-radius: 0; - padding-left: 16px; - padding-right: 16px; -} -.picker-modal .picker-header + .picker-modal-inner, -.picker-modal .picker-footer + .picker-modal-inner { - height: -webkit-calc(100% - 48px); - height: -moz-calc(100% - 48px); - height: calc(100% - 48px); -} -.picker-modal .picker-header + .toolbar + .picker-modal-inner, -.picker-modal .picker-footer + .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px * 2); - height: -moz-calc(100% - 48px * 2); - height: calc(100% - 48px * 2); -} -.picker-modal.picker-modal-inline, -.popover .picker-modal { - display: block; - position: relative; - background: none; - z-index: inherit; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.picker-modal-inline .toolbar, -.popover .picker-modal .toolbar { - top: 0; -} -.popover .picker-modal { - width: auto; -} -.popover .picker-modal .toolbar:first-child, -.popover .picker-modal .picker-header:first-child { - border-radius: 2px 2px 0 0; -} -.picker-modal.smart-select-picker .list-block { - margin: 0; -} -.picker-modal.smart-select-picker .list-block ul:before { - display: none; -} -.picker-modal.smart-select-picker .list-block ul:after { - display: none; -} -/* === Panels === */ -.panel-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.2); - opacity: 0; - z-index: 5999; - display: none; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.panel { - z-index: 1000; - display: none; - background: #fff; - box-sizing: border-box; - overflow: auto; - -webkit-overflow-scrolling: touch; - position: absolute; - width: 260px; - top: 0; - height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.panel.panel-left.panel-cover { - z-index: 6000; - left: -260px; -} -.panel.panel-left.panel-reveal { - left: 0; -} -.panel.panel-right.panel-cover { - z-index: 6000; - right: -260px; -} -.panel.panel-right.panel-reveal { - right: 0; -} -body.with-panel-left-cover .panel, -body.with-panel-right-cover .panel { - box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); -} -body.with-panel-left-cover .views, -body.with-panel-right-cover .views { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -body.with-panel-left-cover .panel-overlay, -body.with-panel-right-cover .panel-overlay { - display: block; - opacity: 1; -} -body.with-panel-left-reveal .views, -body.with-panel-right-reveal .views { - box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-property: -webkit-transform, box-shadow; - -moz-transition-property: -moz-transform, box-shadow; - transition-property: transform, box-shadow; -} -body.with-panel-left-reveal .panel-overlay, -body.with-panel-right-reveal .panel-overlay { - background: rgba(0, 0, 0, 0); - display: block; - opacity: 0; -} -body.with-panel-left-reveal .views { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-reveal .panel-overlay { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-cover .panel-left { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-right-reveal .views { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-reveal .panel-overlay { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-cover .panel-right { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.panel-closing .panel-overlay { - display: block; -} -body.panel-closing .views { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-property: -webkit-transform, box-shadow; - -moz-transition-property: -moz-transform, box-shadow; - transition-property: transform, box-shadow; -} -/* === Tabs === */ -.tabs .tab { - display: none; -} -.tabs .tab.active { - display: block; -} -.tabs-animated-wrap { - position: relative; - width: 100%; - overflow: hidden; - height: 100%; -} -.tabs-animated-wrap > .tabs { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - height: 100%; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabs-animated-wrap > .tabs > .tab { - width: 100%; - display: block; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.tabs-swipeable-wrap { - height: 100%; -} -.tabs-swipeable-wrap > .tabs > .tab { - display: block; -} -/* === Messages === */ -.messages-content { - background: #eee; -} -.messages { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.messages-date { - text-align: center; - font-weight: 500; - font-size: 12px; - line-height: 1; - margin: 10px 15px; -} -.messages-date span { - font-weight: 400; -} -.message { - box-sizing: border-box; - margin: 0px 8px 8px 8px; - max-width: 80%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.message:first-child { - margin-top: 8px; -} -.message.message-pic img { - display: block; -} -.message-name, -.message-label, -.message-date, -.messages-date { - color: rgba(0, 0, 0, 0.51); -} -.message-name { - font-size: 12px; - line-height: 1; - margin-bottom: 2px; - margin-top: 7px; -} -.message-hide-name .message-name { - display: none; -} -.message-label { - font-size: 12px; - line-height: 1; - margin-top: 4px; -} -.message-hide-label .message-label { - display: none; -} -.message-avatar { - width: 48px; - height: 48px; - border-radius: 100%; - margin-top: -48px; - position: relative; - top: 1px; - background-size: cover; - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.message-hide-avatar .message-avatar { - opacity: 0; -} -.message-text { - box-sizing: border-box; - border-radius: 2px; - padding: 6px 8px; - min-width: 48px; - font-size: 16px; - line-height: 1.2; - word-break: break-word; - color: #333; - min-height: 48px; - position: relative; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.message-text img { - max-width: 100%; - height: auto; -} -.message-pic .message-text { - padding: 8px; -} -.message-date { - font-size: 12px; - margin-top: 4px; -} -.message-pic img + .message-date { - margin-top: 8px; -} -.message-sent { - -ms-flex-item-align: end; - -webkit-align-self: flex-end; - align-self: flex-end; - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.message-sent .message-name, -.message-sent .message-label { - margin-right: 8px; -} -.message-sent .message-text { - background-color: #C8E6C9; - margin-left: auto; - border-radius: 2px 2px 0 2px; - margin-right: 8px; -} -.message-sent .message-text:before { - position: absolute; - content: ''; - border-left: 0px solid transparent; - border-right: 8px solid transparent; - border-bottom: 8px solid #C8E6C9; - left: 100%; - bottom: 0; - width: 0; - height: 0; -} -.message-sent.message-with-avatar .message-text, -.message-sent.message-with-avatar .message-name, -.message-sent.message-with-avatar .message-label { - margin-right: 56px; -} -.message-received { - -ms-flex-item-align: start; - -webkit-align-self: flex-start; - align-self: flex-start; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.message-received .message-text { - background-color: #fff; - border-radius: 2px 2px 2px 0px; - margin-left: 8px; -} -.message-received .message-text:before { - position: absolute; - content: ''; - border-left: 8px solid transparent; - border-right: 0px solid transparent; - border-bottom: 8px solid #fff; - right: 100%; - bottom: 0; - width: 0; - height: 0; -} -.message-received .message-name, -.message-received .message-label { - margin-left: 8px; -} -.message-received.message-with-avatar .message-text, -.message-received.message-with-avatar .message-name, -.message-received.message-with-avatar .message-label { - margin-left: 56px; -} -.message-appear-from-bottom { - -webkit-animation: messageAppearFromBottom 400ms; - animation: messageAppearFromBottom 400ms; -} -.message-appear-from-top { - -webkit-animation: messageAppearFromTop 400ms; - animation: messageAppearFromTop 400ms; -} -@-webkit-keyframes messageAppearFromBottom { - from { - -webkit-transform: translate3d(0, 100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromBottom { - from { - transform: translate3d(0, 100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes messageAppearFromTop { - from { - -webkit-transform: translate3d(0, -100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromTop { - from { - transform: translate3d(0, -100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -/* === Statusbar overlay === */ -html.with-statusbar-overlay body { - padding-top: 20px; - box-sizing: border-box; -} -html.with-statusbar-overlay body .statusbar-overlay { - display: block; -} -html.with-statusbar-overlay body .panel { - padding-top: 20px; -} -.statusbar-overlay { - background: #446995; - z-index: 10000; - position: absolute; - left: 0; - top: 0; - height: 20px; - width: 100%; - display: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -/* === - Preloader - By Rudi Theunissen (https://github.com/rtheunissen/md-preloader) -=== */ -.preloader { - font-size: 0; - display: inline-block; - width: 32px; - height: 32px; - -webkit-animation: preloader-outer 3300ms linear infinite; - animation: preloader-outer 3300ms linear infinite; -} -.preloader svg { - width: 100%; - height: 100%; - -webkit-animation: preloader-inner 1320ms linear infinite; - animation: preloader-inner 1320ms linear infinite; -} -.preloader svg circle { - fill: none; - stroke: #757575; - stroke-linecap: square; - -webkit-animation: preloader-arc 1320ms cubic-bezier(0.8, 0, 0.4, 0.8) infinite; - animation: preloader-arc 1320ms cubic-bezier(0.8, 0, 0.4, 0.8) infinite; -} -@-webkit-keyframes preloader-outer { - 0% { - -webkit-transform: rotate(0); - } - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes preloader-outer { - 0% { - transform: rotate(0); - } - 100% { - transform: rotate(360deg); - } -} -@-webkit-keyframes preloader-inner { - 0% { - -webkit-transform: rotate(-100.8deg); - } - 100% { - -webkit-transform: rotate(0); - } -} -@keyframes preloader-inner { - 0% { - transform: rotate(-100.8deg); - } - 100% { - transform: rotate(0); - } -} -@-webkit-keyframes preloader-arc { - 0% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: 0; - } - 40% { - stroke-dasharray: 151.55042961px, 210.48670779px; - stroke-dashoffset: 0; - } - 100% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: -151.55042961px; - } -} -@keyframes preloader-arc { - 0% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: 0; - } - 40% { - stroke-dasharray: 151.55042961px, 210.48670779px; - stroke-dashoffset: 0; - } - 100% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: -151.55042961px; - } -} -.preloader-inner { - position: relative; - display: block; - width: 100%; - height: 100%; - -webkit-animation: preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; - animation: preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; -} -.preloader-inner .preloader-inner-gap { - position: absolute; - width: 2px; - left: 50%; - margin-left: -1px; - top: 0; - bottom: 0; - box-sizing: border-box; - border-top: 4px solid #757575; -} -.preloader-inner .preloader-inner-left, -.preloader-inner .preloader-inner-right { - position: absolute; - top: 0; - height: 100%; - width: 50%; - overflow: hidden; -} -.preloader-inner .preloader-inner-half-circle { - position: absolute; - top: 0; - height: 100%; - width: 200%; - box-sizing: border-box; - border: 4px solid #757575; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation-iteration-count: infinite; - -webkit-animation-duration: 1.3125s; - -webkit-animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); - animation-iteration-count: infinite; - animation-duration: 1.3125s; - animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); -} -.preloader-white .preloader-inner .preloader-inner-gap, -.preloader-white .preloader-inner .preloader-inner-half-circle { - border-color: #fff; -} -.preloader-inner .preloader-inner-left { - left: 0; -} -.preloader-inner .preloader-inner-left .preloader-inner-half-circle { - left: 0; - border-right-color: transparent !important; - -webkit-animation-name: preloader-left-rotate; - animation-name: preloader-left-rotate; -} -.preloader-inner .preloader-inner-right { - right: 0; -} -.preloader-inner .preloader-inner-right .preloader-inner-half-circle { - right: 0; - border-left-color: transparent !important; - -webkit-animation-name: preloader-right-rotate; - animation-name: preloader-right-rotate; -} -.color-multi .preloader-inner .preloader-inner-left .preloader-inner-half-circle { - -webkit-animation-name: preloader-left-rotate-multicolor; - animation-name: preloader-left-rotate-multicolor; -} -.color-multi .preloader-inner .preloader-inner-right .preloader-inner-half-circle { - -webkit-animation-name: preloader-right-rotate-multicolor; - animation-name: preloader-right-rotate-multicolor; -} -@-webkit-keyframes preloader-left-rotate { - 0%, - 100% { - -webkit-transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - } -} -@keyframes preloader-left-rotate { - 0%, - 100% { - transform: rotate(130deg); - } - 50% { - transform: rotate(-5deg); - } -} -@-webkit-keyframes preloader-right-rotate { - 0%, - 100% { - -webkit-transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - } -} -@keyframes preloader-right-rotate { - 0%, - 100% { - transform: rotate(-130deg); - } - 50% { - transform: rotate(5deg); - } -} -@-webkit-keyframes preloader-inner-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - } - 25% { - -webkit-transform: rotate(270deg); - } - 37.5% { - -webkit-transform: rotate(405deg); - } - 50% { - -webkit-transform: rotate(540deg); - } - 62.5% { - -webkit-transform: rotate(675deg); - } - 75% { - -webkit-transform: rotate(810deg); - } - 87.5% { - -webkit-transform: rotate(945deg); - } - 100% { - -webkit-transform: rotate(1080deg); - } -} -@keyframes preloader-inner-rotate { - 12.5% { - transform: rotate(135deg); - } - 25% { - transform: rotate(270deg); - } - 37.5% { - transform: rotate(405deg); - } - 50% { - transform: rotate(540deg); - } - 62.5% { - transform: rotate(675deg); - } - 75% { - transform: rotate(810deg); - } - 87.5% { - transform: rotate(945deg); - } - 100% { - transform: rotate(1080deg); - } -} -@-webkit-keyframes preloader-left-rotate-multicolor { - 0%, - 100% { - border-left-color: #4285F4; - -webkit-transform: rotate(130deg); - } - 75% { - border-left-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-left-color: #F7C223; - border-top-color: #F7C223; - -webkit-transform: rotate(-5deg); - } - 25% { - border-left-color: #DE3E35; - border-top-color: #DE3E35; - } -} -@keyframes preloader-left-rotate-multicolor { - 0%, - 100% { - border-left-color: #4285F4; - transform: rotate(130deg); - } - 75% { - border-left-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-left-color: #F7C223; - border-top-color: #F7C223; - transform: rotate(-5deg); - } - 25% { - border-left-color: #DE3E35; - border-top-color: #DE3E35; - } -} -@-webkit-keyframes preloader-right-rotate-multicolor { - 0%, - 100% { - border-right-color: #4285F4; - -webkit-transform: rotate(-130deg); - } - 75% { - border-right-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-right-color: #F7C223; - border-top-color: #F7C223; - -webkit-transform: rotate(5deg); - } - 25% { - border-top-color: #DE3E35; - border-right-color: #DE3E35; - } -} -@keyframes preloader-right-rotate-multicolor { - 0%, - 100% { - border-right-color: #4285F4; - transform: rotate(-130deg); - } - 75% { - border-right-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-right-color: #F7C223; - border-top-color: #F7C223; - transform: rotate(5deg); - } - 25% { - border-top-color: #DE3E35; - border-right-color: #DE3E35; - } -} -/* === Progress Bar === */ -.progressbar, -.progressbar-infinite { - height: 4px; - width: 100%; - overflow: hidden; - display: block; - position: relative; - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - background: rgba(68, 105, 149, 0.5); -} -.progressbar { - display: block; - vertical-align: middle; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.progressbar span { - content: ''; - width: 100%; - background: #446995; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.progressbar-infinite { - z-index: 15000; -} -.progressbar-infinite:before, -.progressbar-infinite:after { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #446995; - -webkit-transform-origin: left center; - transform-origin: left center; -} -.progressbar-infinite:before { - -webkit-animation: progressbar-infinite-1 2s linear infinite; - animation: progressbar-infinite-1 2s linear infinite; -} -.progressbar-infinite:after { - -webkit-animation: progressbar-infinite-2 2s linear infinite; - animation: progressbar-infinite-2 2s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite { - top: 20px; -} -.progressbar-infinite.color-multi { - background: none !important; -} -.progressbar-infinite.color-multi:before, -.progressbar-infinite.color-multi:after { - width: 100%; - animation: none; -} -.progressbar-infinite.color-multi:before { - background: none; - -webkit-animation: progressbar-infinite-multicolor-bg 3s step-end infinite; - animation: progressbar-infinite-multicolor-bg 3s step-end infinite; -} -.progressbar-infinite.color-multi:after { - background: none; - -webkit-animation: progressbar-infinite-multicolor-fill 3s linear infinite; - animation: progressbar-infinite-multicolor-fill 3s linear infinite; - -webkit-transform-origin: center center; - transform-origin: center center; -} -body > .progressbar, -.view > .progressbar, -.views > .progressbar, -.page > .progressbar, -.panel > .progressbar, -.popup > .progressbar, -.framework7-root > .progressbar, -body > .progressbar-infinite, -.view > .progressbar-infinite, -.views > .progressbar-infinite, -.page > .progressbar-infinite, -.panel > .progressbar-infinite, -.popup > .progressbar-infinite, -.framework7-root > .progressbar-infinite { - position: absolute; - left: 0; - top: 0; - z-index: 15000; - -webkit-transform-origin: center top; - transform-origin: center top; -} -.progressbar-in { - -webkit-animation: progressbar-in 300ms forwards; - animation: progressbar-in 300ms forwards; -} -.progressbar-out { - -webkit-animation: progressbar-out 300ms forwards; - animation: progressbar-out 300ms forwards; -} -html.with-statusbar-overlay body > .progressbar, -html.with-statusbar-overlay .framework7-root > .progressbar { - top: 20px; -} -@-webkit-keyframes progressbar-in { - from { - opacity: 0; - -webkit-transform: scaleY(0); - } - to { - opacity: 1; - -webkit-transform: scaleY(1); - } -} -@keyframes progressbar-in { - from { - opacity: 0; - transform: scaleY(0); - } - to { - opacity: 1; - transform: scaleY(1); - } -} -@-webkit-keyframes progressbar-out { - from { - opacity: 1; - -webkit-transform: scaleY(1); - } - to { - opacity: 0; - -webkit-transform: scaleY(0); - } -} -@keyframes progressbar-out { - from { - opacity: 1; - transform: scaleY(1); - } - to { - opacity: 0; - transform: scaleY(0); - } -} -@-webkit-keyframes progressbar-infinite-1 { - 0% { - -webkit-transform: translateX(-10%) scaleX(0.1); - } - 25% { - -webkit-transform: translateX(30%) scaleX(0.6); - } - 50% { - -webkit-transform: translateX(100%) scaleX(1); - } - 100% { - -webkit-transform: translateX(100%) scaleX(1); - } -} -@keyframes progressbar-infinite-1 { - 0% { - transform: translateX(-10%) scaleX(0.1); - } - 25% { - transform: translateX(30%) scaleX(0.6); - } - 50% { - transform: translateX(100%) scaleX(1); - } - 100% { - transform: translateX(100%) scaleX(1); - } -} -@-webkit-keyframes progressbar-infinite-2 { - 0% { - -webkit-transform: translateX(-100%) scaleX(1); - } - 40% { - -webkit-transform: translateX(-100%) scaleX(1); - } - 75% { - -webkit-transform: translateX(60%) scaleX(0.35); - } - 90% { - -webkit-transform: translateX(100%) scaleX(0.1); - } - 100% { - -webkit-transform: translateX(100%) scaleX(0.1); - } -} -@keyframes progressbar-infinite-2 { - 0% { - transform: translateX(-100%) scaleX(1); - } - 40% { - transform: translateX(-100%) scaleX(1); - } - 75% { - transform: translateX(60%) scaleX(0.35); - } - 90% { - transform: translateX(100%) scaleX(0.1); - } - 100% { - transform: translateX(100%) scaleX(0.1); - } -} -@-webkit-keyframes progressbar-infinite-multicolor-bg { - 0% { - background-color: #4caf50; - } - 25% { - background-color: #f44336; - } - 50% { - background-color: #2196f3; - } - 75% { - background-color: #ffeb3b; - } -} -@keyframes progressbar-infinite-multicolor-bg { - 0% { - background-color: #4caf50; - } - 25% { - background-color: #f44336; - } - 50% { - background-color: #2196f3; - } - 75% { - background-color: #ffeb3b; - } -} -@-webkit-keyframes progressbar-infinite-multicolor-fill { - 0% { - -webkit-transform: scaleX(0); - background-color: #f44336; - } - 24.9% { - -webkit-transform: scaleX(1); - background-color: #f44336; - } - 25% { - -webkit-transform: scaleX(0); - background-color: #2196f3; - } - 49.9% { - -webkit-transform: scaleX(1); - background-color: #2196f3; - } - 50% { - -webkit-transform: scaleX(0); - background-color: #ffeb3b; - } - 74.9% { - -webkit-transform: scaleX(1); - background-color: #ffeb3b; - } - 75% { - -webkit-transform: scaleX(0); - background-color: #4caf50; - } - 100% { - -webkit-transform: scaleX(1); - background-color: #4caf50; - } -} -@keyframes progressbar-infinite-multicolor-fill { - 0% { - transform: scaleX(0); - background-color: #f44336; - } - 24.9% { - transform: scaleX(1); - background-color: #f44336; - } - 25% { - transform: scaleX(0); - background-color: #2196f3; - } - 49.9% { - transform: scaleX(1); - background-color: #2196f3; - } - 50% { - transform: scaleX(0); - background-color: #ffeb3b; - } - 74.9% { - transform: scaleX(1); - background-color: #ffeb3b; - } - 75% { - transform: scaleX(0); - background-color: #4caf50; - } - 100% { - transform: scaleX(1); - background-color: #4caf50; - } -} -/* === Columns Picker === */ -.picker-columns { - width: 100%; - height: 260px; - z-index: 11500; -} -.picker-columns.picker-modal-inline { - height: 200px; -} -@media (orientation: landscape) and (max-height: 415px) { - .picker-columns:not(.picker-modal-inline) { - height: 200px; - } -} -.popover.popover-picker-columns { - width: 280px; -} -.popover.popover-picker-columns .toolbar { - border-radius: 2px 2px 0 0; -} -.picker-items { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - padding: 0; - text-align: right; - font-size: 20px; - -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); - -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); -} -.picker-items-col { - overflow: hidden; - position: relative; - max-height: 100%; -} -.picker-items-col.picker-items-col-left { - text-align: left; -} -.picker-items-col.picker-items-col-center { - text-align: center; -} -.picker-items-col.picker-items-col-right { - text-align: right; -} -.picker-items-col.picker-items-col-divider { - color: rgba(0, 0, 0, 0.87); - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.picker-items-col-wrapper { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.picker-item { - height: 36px; - line-height: 36px; - padding: 0 10px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - color: rgba(0, 0, 0, 0.54); - left: 0; - top: 0; - width: 100%; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.picker-items-col-absolute .picker-item { - position: absolute; -} -.picker-item.picker-item-far { - pointer-events: none; -} -.picker-item.picker-selected { - color: rgba(0, 0, 0, 0.87); - -webkit-transform: translate3d(0, 0, 0) rotateX(0deg); - transform: translate3d(0, 0, 0) rotateX(0deg); -} -.picker-center-highlight { - height: 36px; - box-sizing: border-box; - position: absolute; - left: 0; - width: 100%; - top: 50%; - margin-top: -18px; - pointer-events: none; -} -.picker-center-highlight:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.15); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-center-highlight:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-center-highlight:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.15); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-center-highlight:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-3d .picker-items { - overflow: hidden; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.picker-3d .picker-items-col, -.picker-3d .picker-items-col-wrapper, -.picker-3d .picker-item { - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.picker-3d .picker-items-col { - overflow: visible; -} -.picker-3d .picker-item { - -webkit-transform-origin: center center -110px; - transform-origin: center center -110px; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -/* === Notifications === */ -.notifications { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - z-index: 10900; - color: #fff; - font-size: 14px; - margin: 0; - border: none; - display: none; - box-sizing: border-box; - max-height: 100%; - overflow: hidden; - -webkit-overflow-scrolling: touch; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.notifications.list-block > ul { - max-width: 568px; - background: #323232; - margin: 0 auto; -} -.notifications.list-block > ul:before { - display: none; -} -.notifications.list-block > ul:after { - display: none; -} -.notifications .item-content { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; - padding-left: 24px; -} -.notifications .item-title { - font-size: 14px; - font-weight: normal; - white-space: normal; - padding-top: 14px; - padding-bottom: 14px; -} -.notifications .item-inner { - padding-right: 24px; - padding-top: 0; - padding-bottom: 0; -} -.notifications .item-inner:after { - display: none; -} -.notifications .item-after { - max-height: none; - margin-left: 16px; -} -.notifications .button.close-notification { - color: #4d81bf; -} -.notifications .notification-item { - margin: 0 auto; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-transition-delay: 100ms; - transition-delay: 100ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; -} -.notifications .notification-hidden { - opacity: 0; - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.notifications .notification-item-removing { - -webkit-transition-delay: 0ms; - transition-delay: 0ms; -} -@media (min-width: 569px) { - .notifications.list-block > ul { - border-radius: 2px; - width: auto; - min-width: 288px; - } -} -/* === Touch ripple === */ -.ripple, -a.floating-button, -.floating-button > a, -a.link, -a.item-link, -.button, -.modal-button, -.tab-link, -.label-radio, -.label-checkbox, -.actions-modal-button, -.speed-dial-buttons a { - -webkit-user-select: none; - user-select: none; -} -.ripple-wave { - left: 0; - top: 0; - position: absolute !important; - border-radius: 50%; - pointer-events: none; - z-index: -1; - background: rgba(0, 0, 0, 0.1); - padding: 0; - margin: 0; - font-size: 0; - -webkit-transform: translate3d(0px, 0px, 0) scale(0); - transform: translate3d(0px, 0px, 0) scale(0); - -webkit-transition-duration: 1400ms; - transition-duration: 1400ms; -} -.ripple-wave.ripple-wave-fill { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0.35; -} -.ripple-wave.ripple-wave-out { - -webkit-transition-duration: 600ms; - transition-duration: 600ms; - opacity: 0; -} -.button-fill .ripple-wave, -.picker-calendar-day .ripple-wave { - z-index: 1; -} -.button-fill .ripple-wave, -.navbar .ripple-wave, -.toolbar .ripple-wave, -.subnavbar .ripple-wave, -.searchbar .ripple-wave, -.notifications .ripple-wave, -.floating-button .ripple-wave, -.speed-dial-buttons a .ripple-wave { - background: rgba(255, 255, 255, 0.3); -} -.messagebar .ripple-wave { - background: rgba(0, 0, 0, 0.1); -} -/* === Disabled elements === */ -.disabled, -[disabled] { - opacity: 0.55; - pointer-events: none; -} -.disabled .disabled, -.disabled [disabled], -[disabled] .disabled, -[disabled] [disabled] { - opacity: 1; -} -.phone.android .container-edit .page-content .list-block:first-child, -.phone.android .container-collaboration .page-content .list-block:first-child, -.phone.android .container-filter .page-content .list-block:first-child { - margin-top: -1px; -} -.container-edit.popover, -.container-add.popover, -.container-settings.popover, -.container-collaboration.popover, -.container-filter.popover { - width: 360px; -} -.settings.popup .list-block ul, -.settings.popover .list-block ul { - border-radius: 0; - background: #fff; -} -.settings.popup .list-block:first-child, -.settings.popover .list-block:first-child { - margin-top: 0; -} -.settings.popup .list-block:first-child li:first-child a, -.settings.popover .list-block:first-child li:first-child a { - border-radius: 0; -} -.settings.popup > .content-block, -.settings.popover > .content-block, -.settings.popup .popover-inner > .content-block, -.settings.popover .popover-inner > .content-block { - width: 100%; - height: 100%; - margin: 0; - padding: 0; -} -.settings.popup .popover-view, -.settings.popover .popover-view { - border-radius: 2px; -} -.settings.popup .popover-view > .pages, -.settings.popover .popover-view > .pages { - border-radius: 2px; -} -.settings .categories { - width: 100%; - height: 100%; - margin: 0; - padding: 0; -} -.settings .categories > .toolbar { - top: 0; - height: 100%; -} -.settings .popover-inner { - height: 400px; -} -.dataview .row { - justify-content: space-around; -} -.dataview ul { - padding: 0 10px; - list-style: none; - justify-content: space-around; -} -.dataview ul li { - display: inline-block; -} -.dataview .active { - position: relative; - z-index: 1; -} -.dataview .active::after { - content: ''; - position: absolute; - width: 22px; - height: 22px; - right: -5px; - bottom: -5px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%2211%22%2F%3E%3Cpath%20d%3D%22M11%2C21A10%2C10%2C0%2C1%2C1%2C21%2C11%2C10%2C10%2C0%2C0%2C1%2C11%2C21h0ZM17.4%2C7.32L17.06%2C7a0.48%2C0.48%2C0%2C0%2C0-.67%2C0l-7%2C6.84L6.95%2C11.24a0.51%2C0.51%2C0%2C0%2C0-.59.08L6%2C11.66a0.58%2C0.58%2C0%2C0%2C0%2C0%2C.65l3.19%2C3.35a0.38%2C0.38%2C0%2C0%2C0%2C.39%2C0L17.4%2C8a0.48%2C0.48%2C0%2C0%2C0%2C0-.67h0Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.item-content .item-after.splitter label { - color: #000; - margin: 0 5px; - line-height: 36px; -} -.item-content .item-after.splitter .button { - min-width: 40px; - margin-left: 0; -} -.item-content .item-after.value { - display: block; - min-width: 50px; - color: #000000; - margin-left: 10px; - text-align: right; -} -.item-content.buttons .item-inner { - padding-top: 0; - padding-bottom: 0; -} -.item-content.buttons .item-inner > .row { - width: 100%; -} -.item-content.buttons .item-inner > .row .button { - flex: 1; - font-size: 17px; - margin-left: 5px; -} -.item-content.buttons .item-inner > .row .button:first-child { - margin-left: 0; -} -.item-content.buttons .item-inner > .row .button.active { - color: #fff; - background-color: #446995; -} -.item-content .color-preview { - width: 30px; - height: 30px; - border-radius: 16px; - margin-top: -3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-link.no-indicator .item-inner { - background-image: none; - padding-right: 16px; -} -.popover .list-block:last-child li:last-child .buttons a { - border-radius: 3px; -} -.button.active i.icon { - background-color: #fff; -} -.document-menu { - width: auto; - line-height: 1 !important; - z-index: 12500; -} -.document-menu .popover-inner { - overflow: hidden; -} -.document-menu .list-block { - white-space: pre; -} -.document-menu .list-block ul { - height: 48px; -} -.document-menu .list-block li { - display: inline-block; -} -html.phone .document-menu .list-block .item-link { - padding: 0 10px; -} -.color-palette a { - flex-grow: 1; - position: relative; - min-width: 10px; - min-height: 26px; - margin: 1px 1px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-palette a.active:after { - content: ' '; - position: absolute; - width: 100%; - height: 100%; - box-shadow: 0 0 0 1px white, 0 0 0 4px #446995; - z-index: 1; - border-radius: 1px; -} -.color-palette a.transparent { - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2022%2022'%20xml%3Aspace%3D'preserve'%3E%3Cline%20stroke%3D'%23ff0000'%20stroke-linecap%3D'undefined'%20stroke-linejoin%3D'undefined'%20id%3D'svg_1'%20y2%3D'0'%20x2%3D'22'%20y1%3D'22'%20x1%3D'0'%20stroke-width%3D'2'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.color-palette .theme-colors .item-inner { - display: inline-block; - overflow: visible; -} -.color-palette .standart-colors .item-inner, -.color-palette .dynamic-colors .item-inner { - overflow: visible; -} -.color-palette.list-block:last-child li:last-child a { - border-radius: 0; -} -.custom-colors { - display: flex; - justify-content: space-around; - align-items: center; - margin: 15px; -} -.custom-colors.phone { - max-width: 300px; - margin: 0 auto; - margin-top: 4px; -} -.custom-colors.phone .button-round { - margin-top: 20px; -} -.custom-colors .right-block { - margin-left: 20px; -} -.custom-colors .button-round { - height: 72px; - width: 72px; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - border-radius: 100px; - background-color: #446995; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-color: transparent; - margin-top: 25px; -} -.custom-colors .button-round.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.custom-colors .color-hsb-preview { - width: 72px; - height: 72px; - border-radius: 100px; - overflow: hidden; - border: 1px solid #ededed; -} -.custom-colors .new-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .current-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .list-block ul:before, -.custom-colors .list-block ul:after { - content: none; -} -.custom-colors .list-block ul li { - border: 1px solid rgba(0, 0, 0, 0.3); -} -.custom-colors .color-picker-wheel { - position: relative; - width: 290px; - max-width: 100%; - height: auto; - font-size: 0; -} -.custom-colors .color-picker-wheel svg { - width: 100%; - height: auto; -} -.custom-colors .color-picker-wheel .color-picker-wheel-handle { - width: calc(16.66666667%); - height: calc(16.66666667%); - position: absolute; - box-sizing: border-box; - border: 2px solid #fff; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); - background: red; - border-radius: 50%; - left: 0; - top: 0; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum { - background-color: #000; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); - position: relative; - width: 45%; - height: 45%; - left: 50%; - top: 50%; - transform: translate3d(-50%, -50%, 0); - position: absolute; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle { - width: 4px; - height: 4px; - position: absolute; - left: -2px; - top: -2px; - z-index: 1; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle:after { - background-color: inherit; - content: ''; - position: absolute; - width: 16px; - height: 16px; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); - box-sizing: border-box; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transition: 150ms; - transition-property: transform; - transform-origin: center; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after { - transform: scale(1.5) translate(-33.333%, -33.333%); -} -#font-color-auto.active .color-auto { - box-shadow: 0 0 0 1px white, 0 0 0 4px #446995; - border-radius: 1px; -} -.about .page-content { - text-align: center; -} -.about .content-block:first-child { - margin: 15px 0; -} -.about .content-block { - margin: 0 auto 15px; -} -.about .content-block a { - color: #000; -} -.about h3 { - font-weight: normal; - margin: 0; -} -.about h3.vendor { - color: #000; - font-weight: bold; - margin-top: 15px; -} -.about p > label { - margin-right: 5px; -} -.about .logo { - background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center; -} -.color-schemes-menu { - cursor: pointer; - display: block; - background-color: #fff; -} -.color-schemes-menu .item-inner { - justify-content: flex-start; -} -.color-schemes-menu .color-schema-block { - display: flex; -} -.color-schemes-menu .color { - min-width: 26px; - min-height: 26px; - margin: 0 2px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-schemes-menu .text { - margin-left: 20px; - color: #212121; -} -.page-change .block-description { - background-color: #fff; - padding-top: 15px; - padding-bottom: 15px; - margin: 0; - max-width: 100%; - word-wrap: break-word; -} -.page-change #user-name { - font-size: 16px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-change #date-change { - font-size: 14px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 3px; -} -.page-change #text-change { - color: #000000; - font-size: 15px; - line-height: 20px; - margin: 0; - margin-top: 10px; -} -.page-change .block-btn { - position: absolute; - bottom: 0; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0; - width: 100%; - height: 56px; - align-items: center; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); -} -.page-change .block-btn #btn-reject-change { - margin-left: 15px; -} -.page-change .block-btn .change-buttons, -.page-change .block-btn .accept-reject, -.page-change .block-btn .next-prev { - display: flex; -} -.page-change .block-btn .link { - position: relative; - display: flex; - justify-content: center; - align-items: center; - font-size: 14px; - text-transform: uppercase; - font-weight: 500; - height: 56px; - min-width: 48px; -} -.page-change .header-change { - display: flex; - justify-content: flex-start; - padding-right: 16px; -} -.page-change .header-change .initials-change { - height: 40px; - width: 40px; - border-radius: 50px; - color: #FFFFFF; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - font-size: 18px; -} -.page-change #no-changes { - padding: 16px; -} -.container-collaboration .navbar .right.close-collaboration { - position: absolute; - right: 5px; -} -.container-collaboration .page-content .list-block:first-child { - margin-top: -1px; -} -.page-display-mode .list-block .item-subtitle { - font-size: 14px; - color: #9e9e9e; -} -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 400; -} -#user-list ul:before { - content: none; -} -.page-comments .list-block ul:before, -.page-add-comment .list-block ul:before, -.page-view-comments .list-block ul:before, -.container-edit-comment .list-block ul:before, -.container-add-reply .list-block ul:before, -.page-edit-comment .list-block ul:before, -.page-add-reply .list-block ul:before, -.page-edit-reply .list-block ul:before, -.page-comments .list-block ul:after, -.page-add-comment .list-block ul:after, -.page-view-comments .list-block ul:after, -.container-edit-comment .list-block ul:after, -.container-add-reply .list-block ul:after, -.page-edit-comment .list-block ul:after, -.page-add-reply .list-block ul:after, -.page-edit-reply .list-block ul:after { - content: none; -} -.page-comments .list-block .item-inner, -.page-add-comment .list-block .item-inner, -.page-view-comments .list-block .item-inner, -.container-edit-comment .list-block .item-inner, -.container-add-reply .list-block .item-inner, -.page-edit-comment .list-block .item-inner, -.page-add-reply .list-block .item-inner, -.page-edit-reply .list-block .item-inner { - display: block; - padding: 16px 0; - word-wrap: break-word; -} -.page-comments .list-block .item-inner:after, -.page-add-comment .list-block .item-inner:after, -.page-view-comments .list-block .item-inner:after, -.container-edit-comment .list-block .item-inner:after, -.container-add-reply .list-block .item-inner:after, -.page-edit-comment .list-block .item-inner:after, -.page-add-reply .list-block .item-inner:after, -.page-edit-reply .list-block .item-inner:after { - content: none; -} -.page-comments .list-reply, -.page-add-comment .list-reply, -.page-view-comments .list-reply, -.container-edit-comment .list-reply, -.container-add-reply .list-reply, -.page-edit-comment .list-reply, -.page-add-reply .list-reply, -.page-edit-reply .list-reply { - padding-left: 26px; -} -.page-comments .reply-textarea, -.page-add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .comment-textarea, -.page-add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .edit-reply-textarea, -.page-add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - resize: vertical; -} -.page-comments .user-name, -.page-add-comment .user-name, -.page-view-comments .user-name, -.container-edit-comment .user-name, -.container-add-reply .user-name, -.page-edit-comment .user-name, -.page-add-reply .user-name, -.page-edit-reply .user-name { - font-size: 16px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-comments .comment-date, -.page-add-comment .comment-date, -.page-view-comments .comment-date, -.container-edit-comment .comment-date, -.container-add-reply .comment-date, -.page-edit-comment .comment-date, -.page-add-reply .comment-date, -.page-edit-reply .comment-date, -.page-comments .reply-date, -.page-add-comment .reply-date, -.page-view-comments .reply-date, -.container-edit-comment .reply-date, -.container-add-reply .reply-date, -.page-edit-comment .reply-date, -.page-add-reply .reply-date, -.page-edit-reply .reply-date { - font-size: 12px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 0px; -} -.page-comments .comment-text, -.page-add-comment .comment-text, -.page-view-comments .comment-text, -.container-edit-comment .comment-text, -.container-add-reply .comment-text, -.page-edit-comment .comment-text, -.page-add-reply .comment-text, -.page-edit-reply .comment-text, -.page-comments .reply-text, -.page-add-comment .reply-text, -.page-view-comments .reply-text, -.container-edit-comment .reply-text, -.container-add-reply .reply-text, -.page-edit-comment .reply-text, -.page-add-reply .reply-text, -.page-edit-reply .reply-text { - color: #000000; - font-size: 15px; - line-height: 25px; - margin: 0; - max-width: 100%; - padding-right: 15px; -} -.page-comments .comment-text pre, -.page-add-comment .comment-text pre, -.page-view-comments .comment-text pre, -.container-edit-comment .comment-text pre, -.container-add-reply .comment-text pre, -.page-edit-comment .comment-text pre, -.page-add-reply .comment-text pre, -.page-edit-reply .comment-text pre, -.page-comments .reply-text pre, -.page-add-comment .reply-text pre, -.page-view-comments .reply-text pre, -.container-edit-comment .reply-text pre, -.container-add-reply .reply-text pre, -.page-edit-comment .reply-text pre, -.page-add-reply .reply-text pre, -.page-edit-reply .reply-text pre { - white-space: pre-wrap; -} -.page-comments .reply-item, -.page-add-comment .reply-item, -.page-view-comments .reply-item, -.container-edit-comment .reply-item, -.container-add-reply .reply-item, -.page-edit-comment .reply-item, -.page-add-reply .reply-item, -.page-edit-reply .reply-item { - padding-right: 16px; - padding-top: 13px; -} -.page-comments .reply-item .header-reply, -.page-add-comment .reply-item .header-reply, -.page-view-comments .reply-item .header-reply, -.container-edit-comment .reply-item .header-reply, -.container-add-reply .reply-item .header-reply, -.page-edit-comment .reply-item .header-reply, -.page-add-reply .reply-item .header-reply, -.page-edit-reply .reply-item .header-reply { - display: flex; - justify-content: space-between; -} -.page-comments .reply-item .user-name, -.page-add-comment .reply-item .user-name, -.page-view-comments .reply-item .user-name, -.container-edit-comment .reply-item .user-name, -.container-add-reply .reply-item .user-name, -.page-edit-comment .reply-item .user-name, -.page-add-reply .reply-item .user-name, -.page-edit-reply .reply-item .user-name { - padding-top: 3px; -} -.page-comments .comment-quote, -.page-add-comment .comment-quote, -.page-view-comments .comment-quote, -.container-edit-comment .comment-quote, -.container-add-reply .comment-quote, -.page-edit-comment .comment-quote, -.page-add-reply .comment-quote, -.page-edit-reply .comment-quote { - color: #446995; - border-left: 1px solid #446995; - padding-left: 10px; - padding-right: 16px; - margin: 5px 0; - font-size: 15px; -} -.page-comments .wrap-comment, -.page-add-comment .wrap-comment, -.page-view-comments .wrap-comment, -.container-edit-comment .wrap-comment, -.container-add-reply .wrap-comment, -.page-edit-comment .wrap-comment, -.page-add-reply .wrap-comment, -.page-edit-reply .wrap-comment, -.page-comments .wrap-reply, -.page-add-comment .wrap-reply, -.page-view-comments .wrap-reply, -.container-edit-comment .wrap-reply, -.container-add-reply .wrap-reply, -.page-edit-comment .wrap-reply, -.page-add-reply .wrap-reply, -.page-edit-reply .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-comments .comment-textarea, -.page-add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .reply-textarea, -.page-add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .edit-reply-textarea, -.page-add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - margin-top: 10px; - background: transparent; - outline: none; - width: 100%; - font-size: 15px; - border: none; - border-radius: 3px; - min-height: 100px; -} -.page-comments .header-comment, -.page-add-comment .header-comment, -.page-view-comments .header-comment, -.container-edit-comment .header-comment, -.container-add-reply .header-comment, -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - display: flex; - justify-content: space-between; - padding-right: 16px; -} -.page-comments .header-comment .comment-right, -.page-add-comment .header-comment .comment-right, -.page-view-comments .header-comment .comment-right, -.container-edit-comment .header-comment .comment-right, -.container-add-reply .header-comment .comment-right, -.page-edit-comment .header-comment .comment-right, -.page-add-reply .header-comment .comment-right, -.page-edit-reply .header-comment .comment-right { - display: flex; - justify-content: space-between; - width: 70px; -} -.page-comments .header-comment .comment-left, -.page-add-comment .header-comment .comment-left, -.page-view-comments .header-comment .comment-left, -.container-edit-comment .header-comment .comment-left, -.container-add-reply .header-comment .comment-left, -.page-edit-comment .header-comment .comment-left, -.page-add-reply .header-comment .comment-left, -.page-edit-reply .header-comment .comment-left { - display: flex; - justify-content: space-between; -} -.page-comments .header-comment .initials-comment, -.page-add-comment .header-comment .initials-comment, -.page-view-comments .header-comment .initials-comment, -.container-edit-comment .header-comment .initials-comment, -.container-add-reply .header-comment .initials-comment, -.page-edit-comment .header-comment .initials-comment, -.page-add-reply .header-comment .initials-comment, -.page-edit-reply .header-comment .initials-comment { - height: 40px; - width: 40px; - border-radius: 50px; - color: #FFFFFF; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - font-size: 18px; -} -.page-comments .header-reply .reply-left, -.page-add-comment .header-reply .reply-left, -.page-view-comments .header-reply .reply-left, -.container-edit-comment .header-reply .reply-left, -.container-add-reply .header-reply .reply-left, -.page-edit-comment .header-reply .reply-left, -.page-add-reply .header-reply .reply-left, -.page-edit-reply .header-reply .reply-left { - display: flex; - justify-content: space-between; - align-items: flex-start; -} -.page-comments .header-reply .initials-reply, -.page-add-comment .header-reply .initials-reply, -.page-view-comments .header-reply .initials-reply, -.container-edit-comment .header-reply .initials-reply, -.container-add-reply .header-reply .initials-reply, -.page-edit-comment .header-reply .initials-reply, -.page-add-reply .header-reply .initials-reply, -.page-edit-reply .header-reply .initials-reply { - width: 24px; - height: 24px; - color: #FFFFFF; - font-size: 11px; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - border-radius: 50px; - margin-top: 5px; -} -.settings.popup .list-block ul.list-reply:last-child:after, -.settings.popover .list-block ul.list-reply:last-child:after { - display: none; -} -.container-view-comment { - position: fixed; - -webkit-transition: height 100ms; - transition: height 100ms; - background-color: #FFFFFF; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - height: 50%; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .page-view-comments { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments .list-block { - margin-bottom: 120px; -} -.container-view-comment .page-view-comments .list-block ul:before, -.container-view-comment .page-view-comments .list-block ul:after { - content: none; -} -.container-view-comment .page-view-comments .list-block .item-inner { - padding: 0; -} -.container-view-comment .toolbar { - position: fixed; - background-color: #FFFFFF; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .toolbar.toolbar-bottom { - top: auto; -} -.container-view-comment .toolbar:before { - content: none; -} -.container-view-comment .toolbar a.link { - color: #446995; - font-size: 16px; -} -.container-view-comment .toolbar .toolbar-inner { - display: flex; - justify-content: space-between; - padding: 0 16px; -} -.container-view-comment .toolbar .toolbar-inner .button-left { - min-width: 80px; -} -.container-view-comment .toolbar .toolbar-inner .button-right { - min-width: 62px; - display: flex; - justify-content: space-between; -} -.container-view-comment .toolbar .toolbar-inner .button-right a { - padding: 0 8px; -} -.container-view-comment .swipe-container { - display: flex; - justify-content: center; - height: 40px; -} -.container-view-comment .swipe-container .icon-swipe { - margin-top: 8px; - width: 40px; - height: 4px; - background: rgba(0, 0, 0, 0.12); - border-radius: 2px; -} -.container-view-comment .list-block { - margin-top: 0; -} -.container-view-comment.popover { - position: absolute; - border-radius: 4px; - min-height: 170px; - height: 400px; - max-height: 600px; -} -.container-view-comment.popover .toolbar { - position: absolute; - border-radius: 0 0 4px 4px; -} -.container-view-comment.popover .toolbar .toolbar-inner { - padding-right: 0; -} -.container-view-comment.popover .pages { - position: absolute; -} -.container-view-comment.popover .pages .page { - border-radius: 13px; -} -.container-view-comment.popover .pages .page .page-content { - padding: 16px; - padding-bottom: 80px; -} -.container-view-comment.popover .pages .page .page-content .list-block { - margin-bottom: 0px; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content { - padding-left: 0; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, -.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .block-reply { - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { - min-height: 70px; - width: 278px; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; -} -.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { - min-height: 60px; - width: 100%; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; - height: 60px; - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .comment-text { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 8px; - min-height: 80px; - height: 80px; -} -#done-comment { - padding: 0 16px; -} -.page-add-comment .wrap-comment, -.page-add-comment .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-add-comment .wrap-comment .header-comment, -.page-add-comment .wrap-reply .header-comment { - justify-content: flex-start; -} -.page-add-comment .wrap-comment .user-name, -.page-add-comment .wrap-reply .user-name { - font-size: 17px; - font-weight: bold; -} -.page-add-comment .wrap-comment .comment-date, -.page-add-comment .wrap-reply .comment-date { - font-size: 13px; - color: #6d6d72; -} -.page-add-comment .wrap-comment .wrap-textarea, -.page-add-comment .wrap-reply .wrap-textarea { - margin-top: 16px; - padding-right: 6px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { - font-size: 17px; - border: none; - margin-top: 0; - min-height: 100px; - border-radius: 4px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { - color: #9e9e9e; - font-size: 17px; -} -.container-edit-comment, -.container-add-reply { - height: 100%; -} -.container-edit-comment .navbar:after, -.container-add-reply .navbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -.container-edit-comment .navbar .navbar-inner, -.container-add-reply .navbar .navbar-inner { - justify-content: space-between; -} -.container-edit-comment .navbar a.link i + span, -.container-add-reply .navbar a.link i + span { - margin-left: 0; -} -.container-edit-comment .navbar .center, -.container-add-reply .navbar .center { - font-size: 18px; -} -.container-edit-comment .navbar .right, -.container-add-reply .navbar .right { - margin-left: 0; -} -.container-edit-comment .page-add-comment, -.container-add-reply .page-add-comment { - background-color: #FFFFFF; -} -.container-edit-comment .header-comment, -.container-add-reply .header-comment { - justify-content: flex-start; -} -.actions-modal-button.color-red { - color: #f44336; -} -.page-edit-comment, -.page-add-reply, -.page-edit-reply { - background-color: #FFFFFF; -} -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - justify-content: flex-start; -} -.page-edit-comment .navbar .right, -.page-add-reply .navbar .right, -.page-edit-reply .navbar .right { - height: 100%; -} -.page-edit-comment .navbar .right #add-new-reply, -.page-add-reply .navbar .right #add-new-reply, -.page-edit-reply .navbar .right #add-new-reply, -.page-edit-comment .navbar .right #edit-comment, -.page-add-reply .navbar .right #edit-comment, -.page-edit-reply .navbar .right #edit-comment, -.page-edit-comment .navbar .right #edit-reply, -.page-add-reply .navbar .right #edit-reply, -.page-edit-reply .navbar .right #edit-reply { - display: flex; - align-items: center; - padding-left: 16px; - padding-right: 16px; - height: 100%; -} -.container-edit-comment { - position: fixed; -} -.tablet .searchbar.document.replace .center > .replace { - display: flex; -} -.tablet .searchbar.document.replace .right .replace { - display: flex; -} -.tablet .searchbar.document.replace .link.replace { - font-size: 16px; -} -.tablet .searchbar.document .center { - width: 100%; - display: flex; - margin: 0; - overflow: visible; -} -.tablet .searchbar.document .center .searchbar { - overflow: visible; -} -.tablet .searchbar.document .center .searchbar.search { - padding: 0; -} -.tablet .searchbar.document .center > .replace { - display: none; -} -.tablet .searchbar.document .right .replace { - display: none; -} -.phone .searchbar.document.replace { - height: 96px; -} -.phone .searchbar.document.replace .link.replace { - font-size: 16px; -} -.phone .searchbar.document.replace .left { - margin-top: -48px; -} -.phone .searchbar.document.replace .center .replace { - display: block; -} -.phone .searchbar.document.replace .right > .replace { - display: flex; -} -.phone .searchbar.document .left, -.phone .searchbar.document .center, -.phone .searchbar.document .right { - flex-direction: column; -} -.phone .searchbar.document .center { - width: 100%; - margin: 0; - overflow: visible; -} -.phone .searchbar.document .center .searchbar { - padding: 0; -} -.phone .searchbar.document .center .replace { - display: none; -} -.phone .searchbar.document .right > p { - margin: 0; -} -.phone .searchbar.document .right > p a.link { - height: 48px; -} -.phone .searchbar.document .right > .replace { - display: none; -} -i.icon.icon-expand-up { - width: 17px; - height: 17px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000000%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C5.1%202%2C13.9%204.1%2C16%2011.1%2C9.2%2017.9%2C16%2020%2C13.9%2011.2%2C5.1%2011.1%2C5%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-expand-down { - width: 17px; - height: 17px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000000%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C16.9%202%2C8.1%204.1%2C6%2011.1%2C12.8%2017.9%2C6%2020%2C8.1%2011.2%2C16.9%2011.1%2C17%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M19.5%2C16.8L16%2C13.3c0.7-1.1%2C1.1-2.4%2C1.1-3.8C17%2C5.4%2C13.6%2C2%2C9.5%2C2S2%2C5.4%2C2%2C9.5S5.4%2C17%2C9.5%2C17c1.4%2C0%2C2.7-0.4%2C3.8-1.1l3.5%2C3.5c0.7%2C0.7%2C1.9%2C0.7%2C2.6%2C0C20.2%2C18.7%2C20.2%2C17.6%2C19.5%2C16.8z%20M9.5%2C15.3c-3.2%2C0-5.8-2.6-5.8-5.8s2.6-5.8%2C5.8-5.8s5.8%2C2.6%2C5.8%2C5.8S12.7%2C15.3%2C9.5%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2217.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M2.5%2015L8%201h2l4.4146%2011.2574-1.6009%201.6008L12.12012%2012h-6.25L4.75%2015zM9%203.66998L6.62012%2010h4.75976z%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M10%2019.50035V22h2.49965l7.37231-7.37231-2.49965-2.49965zm11.805-6.80572c.26-.25997.26-.67991%200-.93987l-1.5598-1.559787c-.25992-.259964-.67986-.259964-.93983%200L18.08554%2011.4148l2.49966%202.49966z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reader { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M17%2C21H1V9h6V2l0%2C0h10v5h1V1H6.2L0%2C7.6V22h18v-3h-1V21z%20M6%2C2.8V8H1.1L6%2C2.8z%20M13%2C8c-5.1%2C0-9%2C5-9%2C5s4.1%2C5%2C9%2C5c5%2C0%2C9-5%2C9-5S18%2C8%2C13%2C8z%20M8.7%2C15.5C6.8%2C14.4%2C6.4%2C13%2C6.4%2C13s0.4-1.5%2C2.4-2.6C8.3%2C11.2%2C8%2C12%2C8%2C13C8%2C13.9%2C8.3%2C14.8%2C8.7%2C15.5z%20M13%2C16.7c-2.1%2C0-3.7-1.7-3.7-3.7c0-2.1%2C1.7-3.7%2C3.7-3.7c2.1%2C0%2C3.7%2C1.7%2C3.7%2C3.7C16.7%2C15.1%2C15.1%2C16.7%2C13%2C16.7z%20M17.3%2C15.5c0.4-0.7%2C0.7-1.6%2C0.7-2.5c0-1-0.3-1.8-0.7-2.6c2%2C1.1%2C3.4%2C2.6%2C3.4%2C2.6S19.2%2C14.4%2C17.3%2C15.5z%20M13%2C11.7c-0.7%2C0-1.3%2C0.6-1.3%2C1.3s0.6%2C1.3%2C1.3%2C1.3s1.3-0.6%2C1.3-1.3S13.7%2C11.7%2C13%2C11.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-download { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M12%200H11L11%2014L7.39999%2010.3L6.69999%2011.1L11.5%2016L16.3%2011.1L15.6%2010.3L12%2014L12%200Z%22%2F%3E%3Cpath%20d%3D%22M14%205V6H19V20H4V6H9V5H3V21H20V5H14Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-print { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%201H17V6H21V17H17V21H5V17H1V6H5V1ZM6%206H16V2H6V6ZM5%2016V13H2V16H5ZM2%2012H20V7H2V12ZM20%2013H17V16H20V13ZM16%2013H6V20H16V13ZM14%2016H8V15H14V16ZM14%2018H8V17H14V18Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-spellcheck { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%201L3%2015H4.2L5.97686%2010H11.0231L11.6768%2011.8394C11.955%2011.5504%2012.262%2011.2892%2012.593%2011.0605L9%201H8ZM8.5%202.9L10.6678%209H6.33223L8.5%202.9Z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2021C18.7614%2021%2021%2018.7614%2021%2016C21%2013.2386%2018.7614%2011%2016%2011C13.2386%2011%2011%2013.2386%2011%2016C11%2018.7614%2013.2386%2021%2016%2021ZM15.3536%2018.3536L19.3536%2014.3536L18.6464%2013.6464L15%2017.2929L13.3536%2015.6464L12.6464%2016.3536L14.6464%2018.3536L15%2018.7071L15.3536%2018.3536Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.8%2C3l0.4%2C2c0.1%2C0.7%2C0.6%2C1.1%2C1.3%2C1.1c0.3%2C0%2C0.5-0.1%2C0.7-0.2l1.9-1.2l1.1%2C1.1l-1.1%2C1.8C15.8%2C8%2C15.8%2C8.5%2C16%2C8.9c0.2%2C0.4%2C0.5%2C0.7%2C1%2C0.8l2.1%2C0.5v1.6L17%2C12.2c-0.5%2C0.1-0.8%2C0.4-1%2C0.8c-0.2%2C0.4-0.1%2C0.9%2C0.1%2C1.2l1.2%2C1.9l-1.1%2C1.1l-1.8-1.1c-0.2-0.2-0.5-0.2-0.8-0.2c-0.6%2C0-1.2%2C0.5-1.3%2C1.1l-0.5%2C2.1h-1.6l-0.4-2C9.7%2C16.4%2C9.2%2C16%2C8.5%2C16c-0.3%2C0-0.5%2C0.1-0.7%2C0.2l-1.9%2C1.2l-1.1-1.1l1.1-1.8c0.3-0.4%2C0.3-0.9%2C0.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%2C0.8-0.4%2C1-0.8C6.1%2C8.7%2C6%2C8.2%2C5.8%2C7.9l-1-2l1.1-1.1l1.8%2C1.1C8%2C6.1%2C8.2%2C6.2%2C8.5%2C6.2c0.6%2C0%2C1.2-0.5%2C1.3-1.1L10.3%2C3H11.8%20M11%2C15.5c2.5%2C0%2C4.5-2%2C4.5-4.5s-2-4.5-4.5-4.5s-4.5%2C2-4.5%2C4.5S8.5%2C15.5%2C11%2C15.5%20M12.1%2C2H9.9C9.6%2C2%2C9.4%2C2.2%2C9.3%2C2.5L8.8%2C4.9c0%2C0.2-0.2%2C0.3-0.3%2C0.3s-0.1%2C0-0.2-0.1L6.2%2C3.8C6.1%2C3.7%2C6%2C3.7%2C5.8%2C3.7c-0.1%2C0-0.3%2C0-0.4%2C0.1L3.8%2C5.4c-0.1%2C0.2-0.2%2C0.5%2C0%2C0.8l1.3%2C2.1c0.1%2C0.2%2C0.1%2C0.4-0.2%2C0.5L2.5%2C9.3C2.2%2C9.4%2C2%2C9.6%2C2%2C9.9v2.2c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.6l2.4%2C0.5c0.3%2C0.1%2C0.4%2C0.3%2C0.2%2C0.5l-1.3%2C2.1c-0.2%2C0.2-0.1%2C0.6%2C0.1%2C0.8l1.6%2C1.6c0.1%2C0.1%2C0.3%2C0.2%2C0.4%2C0.2s0.2%2C0%2C0.3-0.1L8.3%2C17c0.1-0.1%2C0.1-0.1%2C0.2-0.1s0.3%2C0.1%2C0.3%2C0.3l0.5%2C2.3C9.4%2C19.8%2C9.6%2C20%2C9.9%2C20h2.2c0.3%2C0%2C0.5-0.2%2C0.6-0.5l0.5-2.4c0-0.2%2C0.1-0.3%2C0.3-0.3c0.1%2C0%2C0.1%2C0%2C0.2%2C0.1l2.1%2C1.3c0.1%2C0.1%2C0.2%2C0.1%2C0.3%2C0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2l1.6-1.6c0.2-0.2%2C0.2-0.5%2C0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5%2C0.2-0.5l2.4-0.5c0.3-0.1%2C0.5-0.3%2C0.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%2C0.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%2C0-0.2%2C0-0.3%2C0.1l-2.1%2C1.3C13.6%2C5%2C13.6%2C5%2C13.5%2C5c-0.1%2C0-0.3-0.1-0.3-0.3l-0.5-2.2C12.6%2C2.2%2C12.4%2C2%2C12.1%2C2L12.1%2C2z%20M11%2C14.5c-1.9%2C0-3.5-1.6-3.5-3.5S9.1%2C7.5%2C11%2C7.5s3.5%2C1.6%2C3.5%2C3.5S12.9%2C14.5%2C11%2C14.5L11%2C14.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-review { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M2%202H19V6H18V3H3V19H18V13H19V20H2V2Z%22%2F%3E%3Cpath%20d%3D%22M15%207H6V6H15V7Z%22%2F%3E%3Cpath%20d%3D%22M6%209H15V8H6V9Z%22%2F%3E%3Cpath%20d%3D%22M13%2011H6V10H13V11Z%22%2F%3E%3Cpath%20d%3D%22M6%2013H11V12H6V13Z%22%2F%3E%3Cpath%20d%3D%22M10%2015H6V14H10V15Z%22%2F%3E%3Cpath%20d%3D%22M12%2014.5V16H13.5L21.5%208L20%206.5L12%2014.5Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-doc-setup { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-4%206%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20id%3D%22XMLID_2_%22%20d%3D%22M15%2C27H-1V15h6V8l0%2C0h10V27z%20M16%2C7H4.2L-2%2C13.6V28h18V7z%20M4%2C8.8V14h-4.9L4%2C8.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-info { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M10%2C17h2V8h-2V17z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11s4.5%2C10%2C10%2C10s10-4.5%2C10-10S16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4-9-9s4-9%2C9-9s9%2C4%2C9%2C9S16%2C20%2C11%2C20z%20M10%2C7h2V5h-2V7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-about { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3%2C0.7-0.6%2C0.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%2C0l-8.9%2C4.1C-0.9%2C13.8-1%2C14.1-1%2C14.3s0.1%2C0.6%2C0.7%2C0.9l2.6%2C1.2l-2.6%2C1.2C-0.9%2C18-1%2C18.4-1%2C18.5c0%2C0.2%2C0.1%2C0.6%2C0.7%2C0.9l2.5%2C1.2l-2.5%2C1.2C-0.9%2C22.1-1%2C22.5-1%2C22.7c0%2C0.3%2C0.1%2C0.6%2C0.7%2C0.9l8.9%2C4.1c0.5%2C0.2%2C0.8%2C0.3%2C1.4%2C0.3s1-0.1%2C1.4-0.3l8.9-4.1c0.6-0.4%2C0.7-0.6%2C0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9%2C19.2%2C21%2C18.8%2C21%2C18.5z%20M-0.2%2C14.3L-0.2%2C14.3c0%2C0%2C0.1-0.1%2C0.3-0.2L9%2C10c0.6-0.3%2C1.5-0.3%2C2%2C0l8.9%2C4.1c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C18.6c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1C-0.1%2C14.4-0.2%2C14.3-0.2%2C14.3z%20M20.2%2C22.7L20.2%2C22.7c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C27.1c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5C20.1%2C22.7%2C20.2%2C22.7%2C20.2%2C22.7z%20M19.9%2C18.7L11%2C22.8c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0C20.2%2C18.5%2C20.1%2C18.6%2C19.9%2C18.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-help { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.6%2C1.3c-3.3%2C0-6%2C2.8-6%2C6.2c0.3%2C0%2C0.7%2C0%2C0.9%2C0c0-2.9%2C2.3-5.2%2C5.1-5.2s5.1%2C2.3%2C5.1%2C5.2c0%2C1.7-1.9%2C3.2-3%2C4.3C12.9%2C12.6%2C11%2C14.2%2C11%2C16c0%2C1.2%2C0%2C2.2%2C0%2C2.7c0.3%2C0%2C0.6%2C0%2C0.9%2C0c0-0.6%2C0-1.6%2C0-2.5c0-1.4%2C1.1-2.4%2C2.2-3.5c1.7-1.5%2C3.5-3.1%2C3.5-5.2C17.6%2C4.1%2C14.9%2C1.3%2C11.6%2C1.3z%20M11.5%2C20.2c-0.3%2C0-0.5%2C0.2-0.5%2C0.5v0.8c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.5s0.5-0.2%2C0.5-0.5v-0.8C11.9%2C20.4%2C11.7%2C20.2%2C11.5%2C20.2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-versions { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M19%2C12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2v12c0%2C1.1%2C0.9%2C2%2C2%2C2h18c1.1%2C0%2C2-0.9%2C2-2V14C21%2C12.9%2C20.1%2C12%2C19%2C12z%20M5%2C9h10c0.6%2C0%2C1%2C0.4%2C1%2C1H4C4%2C9.4%2C4.4%2C9%2C5%2C9z%20M3%2C11h14c0.6%2C0%2C1%2C0.4%2C1%2C1H2C2%2C11.4%2C2.4%2C11%2C3%2C11z%20M20%2C26c0%2C0.6-0.4%2C1-1%2C1H1c-0.6%2C0-1-0.4-1-1V14c0-0.6%2C0.4-1%2C1-1h18c0.6%2C0%2C1%2C0.4%2C1%2C1V26z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-center { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-jast { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-left { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-right { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-de-indent { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M11%2C15h11v1H11V15z%20M11%2C11h11v1H11V11z%20M11%2C7h11v1H11V7z%20M6.3%2C7L7%2C7.7l-3.8%2C3.8L7%2C15.3L6.3%2C16L2%2C11.8l-0.2-0.3L2%2C11.2L6.3%2C7z%20M1%2C3h21v1H1V3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-in-indent { - width: 22px; - height: 22px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-left { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M15%2C19h-1H8H7v-1v-3H0V2h7h1h14v4v1v3v1v3v1v3v1H15z%20M15%2C18h6v-3h-6V18z%20M15%2C14h6v-3h-6V14z%20M8%2C18h6v-3H8V18z%20M8%2C14h6v-3H8V14z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M21%2C3h-6v3h6V3z%20M15%2C7v3h6V7H15z%20M3%2C16h1v2h2v1H4v2H3v-2H1v-1h2V16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-right { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C19l0-1l0-3l0-1l0-3l0-1l0-3l0-1l0-4h14h1h7v13h-7v3v1h-1H8H7H0z%20M7%2C15H1v3h6V15z%20M7%2C11H1v3h6V11z%20M14%2C15H8v3h6V15z%20M14%2C11H8v3h6V11z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M1%2C6h6V3H1V6z%20M1%2C7v3h6V7H1z%20M19%2C18h2v1h-2v2h-1v-2h-2v-1h2v-2h1V18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-above { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C20h-6h-1H8H7H0v-1v-3v-1v-3v-1V8V7V1h15v6h6h1v1v3v1v3v1v3v1H21z%20M7%2C8H1v3h6V8z%20M7%2C12H1v3h6V12z%20M7%2C16H1v3h6V16z%20M8%2C19h6v-3H8V19z%20M8%2C15h6v-3H8V15z%20M8%2C11h6V8H8V11z%20M21%2C8h-6v3h6V8z%20M21%2C12h-6v3h6V12z%20M21%2C16h-6v3h6V16z%20M19%2C6h-1V4h-2V3h2V1h1v2h2v1h-2V6z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-below { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C1v1v3v1v3v1v3v1h-1h-6v6H0v-6v-1v-3V9V6V5V2V1h7h1h6h1h6H22z%20M7%2C10H1v3h6V10z%20M7%2C6H1v3h6V6z%20M7%2C2H1v3h6V2z%20M8%2C5h6V2H8V5z%20M8%2C9h6V6H8V9z%20M8%2C13h6v-3H8V13z%20M21%2C10h-6v3h6V10z%20M21%2C6h-6v3h6V6z%20M21%2C2h-6v3h6V2z%20M19%2C17h2v1h-2v2h-1v-2h-2v-1h2v-2h1V17z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-column { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C11H8v0.1c1.9%2C0.2%2C3.5%2C1.3%2C4.4%2C2.9H14V11z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C11h-6v3h6V11z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-row { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M1%2C18h1.2C2.1%2C17.5%2C2%2C17%2C2%2C16.5c0-0.5%2C0.1-1%2C0.2-1.5H1V18z%20M7%2C3H1v3h6V3z%20M7%2C7H1v3h6V7z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagebreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6%208L10%207.99531V4L6%208ZM10%2010H6V11H4V7L9%202H18C18.5302%202%2018.9864%202.20344%2019.3918%202.61033C19.7661%202.98592%2020%203.46792%2020%204V11H18V4H12V8C12%209.10457%2011.1046%2010%2010%2010ZM6%2017V20.0282L18%2020V17H20V20C20%2020.5321%2019.7973%2021.0297%2019.3918%2021.4366C18.9864%2021.8122%2018.5302%2022%2018%2022H6C5.46979%2022%205.01364%2021.8122%204.60819%2021.4366C4.20273%2021.0297%204%2020.5266%204%2019.9945V17H6Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M3%2013H7V15H3V13Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M9%2013H15V15H9V13Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M17%2013H21V15H17V13Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0.000488281%200H24.0005V24H0.000488281V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-sectionbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20d%3D%22M3%2011H7V13H3V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M9%2011H15V13H9V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M17%2011H21V13H17V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%204H6V9H4V4C4%202.89543%204.89543%202%206%202H18C18.5302%202%2018.9864%202.20344%2019.3918%202.61033C19.7661%202.98592%2020%203.46792%2020%204V9H18V4ZM6%2015V20.0282L18%2020V15H20V20C20%2020.5321%2019.7973%2021.0297%2019.3918%2021.4366C18.9864%2021.8122%2018.5302%2022%2018%2022H6C5.46979%2022%205.01364%2021.8122%204.60819%2021.4366C4.20273%2021.0297%204%2020.5266%204%2019.9945V15H6Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0%200H24V24H0V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-stringbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%209.01309L11.4062%2010.4181L7.79688%2014.0241H17.9844V4.00208H20V15.9911H7.79688L11.4062%2019.5971L10%2021.0021L4%2015.0076L10%209.01309Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagenumber { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%204H6V20.0282L18%2020V4ZM4%204.5C4%203.11929%205.11929%202%206.5%202H18C18.5302%202%2018.9864%202.20344%2019.3918%202.61033C19.7661%202.98592%2020%203.46792%2020%204V20C20%2020.5321%2019.7973%2021.0297%2019.3918%2021.4366C18.9864%2021.8122%2018.5302%2022%2018%2022H6C5.46979%2022%205.01364%2021.8122%204.60819%2021.4366C4.20273%2021.0297%204%2020.5266%204%2019.9945V4.5ZM11.5698%2016H10.1836V12.2578H10.1574L9%2013.0686V11.8385L10.1836%2011H11.5698V16ZM14.1593%2016H12.7076L14.6333%2012.1365V12.1088H12.3709V11H16V12.1053L14.1593%2016Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-link { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.0235%207C18.4006%207%2019.5743%207.49845%2020.5446%208.49534C21.5149%209.46108%2022%2010.6293%2022%2012C22%2013.3708%2021.5149%2014.5546%2020.5446%2015.5515C19.5743%2016.5172%2018.4006%2017.0001%2017.0235%2017.0001H13V15H17C17.8451%2015%2018.5884%2014.7882%2019.1831%2014.1963C19.8091%2013.5733%2020%2012.8411%2020%2012C20%2011.1589%2019.8091%2010.4424%2019.1831%209.85049C18.5884%209.22743%2017.8685%209%2017.0235%209H13V7H17.0235ZM8.00939%2012.9814V11.0187H15.9906V12.9814H8.00939ZM4.76995%209.85049C4.17527%2010.4424%204%2011.1589%204%2012C4%2012.8411%204.17527%2013.5733%204.76995%2014.1963C5.39593%2014.7882%206.15493%2015%207%2015H11.0141V17.0001H6.97653C5.59937%2017.0001%204.42567%2016.5172%203.4554%2015.5515C2.48513%2014.5546%202%2013.3708%202%2012C2%2010.6293%202.48513%209.46108%203.4554%208.49534C4.42567%207.49845%205.59937%207%206.97653%207H11.0141V9H6.97653C6.13146%209%205.39593%209.22743%204.76995%209.85049Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-image-library { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20%205.5H4C3.72386%205.5%203.5%205.72386%203.5%206V15.5822L8.03349%2011.6898C8.47476%2011.3109%209.11904%2011.2865%209.58778%2011.6308L13.5726%2014.5579L15.9619%2012.6774C16.4488%2012.2942%2017.1428%2012.3255%2017.5933%2012.7509L20.5%2015.4962V6C20.5%205.72386%2020.2761%205.5%2020%205.5ZM20.5%2017.5294L20.485%2017.5453L16.7201%2013.9895L14.3509%2015.8542C13.9095%2016.2016%2013.2905%2016.2119%2012.8378%2015.8793L8.85988%2012.9573L3.5%2017.5592V18C3.5%2018.2761%203.72386%2018.5%204%2018.5H20C20.2761%2018.5%2020.5%2018.2761%2020.5%2018V17.5294ZM4%204C2.89543%204%202%204.89543%202%206V18C2%2019.1046%202.89543%2020%204%2020H20C21.1046%2020%2022%2019.1046%2022%2018V6C22%204.89543%2021.1046%204%2020%204H4ZM16.5%209.5C16.5%2011.1569%2015.1569%2012.5%2013.5%2012.5C11.8431%2012.5%2010.5%2011.1569%2010.5%209.5C10.5%207.84315%2011.8431%206.5%2013.5%206.5C15.1569%206.5%2016.5%207.84315%2016.5%209.5ZM13.5%2011C14.3284%2011%2015%2010.3284%2015%209.5C15%208.67157%2014.3284%208%2013.5%208C12.6716%208%2012%208.67157%2012%209.5C12%2010.3284%2012.6716%2011%2013.5%2011Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0%200H24V24H0V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-all { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-none { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-inner { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpolygon%20points%3D%2226%2013%2014%2013%2014%201%2013%201%2013%2013%201%2013%201%2014%2013%2014%2013%2026%2014%2026%2014%2014%2026%2014%2026%2013%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-outer { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-left { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-center { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2213%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-right { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2226%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-top { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-middle { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-bottom { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2226%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-block-align-left { - width: 28px; - height: 28px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-block-align-center { - width: 28px; - height: 28px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%228.08%22%20width%3D%2212%22%20height%3D%2210.92%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-block-align-right { - width: 28px; - height: 28px; - background-color: #446995; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2215%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-backward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3Cpath%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-forward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-background { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-foreground { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-docx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2266px%22%20height%3D%2266px%22%20viewBox%3D%2222.015%2020.75%2066%2066%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D.cls-2%7Bfill%3A%23fff%3B%7D.cls-3%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22g3103%22%20transform%3D%22translate(-21.015556%2C0)%22%20display%3D%22none%22%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M78.521%2C0h7.475c0%2C3.337%2C0%2C6.663%2C0%2C10%20%20%20c13.375%2C0.075%2C26.738-0.138%2C40.101%2C0.075c2.85-0.288%2C5.087%2C1.925%2C4.825%2C4.775c0.212%2C24.625-0.051%2C49.262%2C0.125%2C73.887%20%20%20c-0.125%2C2.525%2C0.25%2C5.325-1.213%2C7.563c-1.825%2C1.3-4.188%2C1.138-6.313%2C1.237C111.008%2C97.475%2C98.508%2C97.5%2C85.996%2C97.5%20%20%20c0%2C3.338%2C0%2C6.662%2C0%2C10h-7.813c-19.024-3.475-38.1-6.662-57.162-10c-0.013-29.162%2C0-58.325%2C0-87.475%20%20%20C40.183%2C6.675%2C59.359%2C3.413%2C78.521%2C0z%22%20%2F%3E%3Cpath%20class%3D%22cls-2%22%20d%3D%22M85.996%2C13.75c13.75%2C0%2C27.5%2C0%2C41.25%2C0%20%20%20c0%2C26.663%2C0%2C53.338%2C0%2C80c-13.75%2C0-27.5%2C0-41.25%2C0c0-3.338%2C0-6.662%2C0-10c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.662%2C0-3.338%2C0-5%20%20%20c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.088%2C0-4.162%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.662%2C0-3.338%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0%20%20%20c0-2.088%2C0-4.162%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.662%2C0-3.338%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.087%2C0-4.163%2C0-6.25%20%20%20c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.663%2C0-3.337%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.087%2C0-4.163%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0%20%20%20c0-1.663%2C0-3.337%2C0-5c-10.837%2C0-21.662%2C0-32.5%2C0c0-2.087%2C0-4.163%2C0-6.25c10.838%2C0%2C21.663%2C0%2C32.5%2C0c0-1.663%2C0-3.337%2C0-5%20%20%20c-10.837%2C0-21.662%2C0-32.5%2C0C85.996%2C19.587%2C85.996%2C16.663%2C85.996%2C13.75z%22%20%2F%3E%3Cpath%20class%3D%22cls-2%22%20d%3D%22M46.846%2C35.837%20%20%20c2.375-0.137%2C4.75-0.237%2C7.125-0.362c1.662%2C8.438%2C3.362%2C16.862%2C5.162%2C25.262c1.413-8.675%2C2.976-17.325%2C4.487-25.987%20%20%20c2.5-0.087%2C5-0.225%2C7.488-0.375c-2.825%2C12.112-5.301%2C24.325-8.388%2C36.362c-2.088%2C1.088-5.213-0.05-7.688%2C0.125%20%20%20c-1.663-8.274-3.601-16.5-5.088-24.813c-1.462%2C8.075-3.362%2C16.075-5.037%2C24.101c-2.4-0.125-4.813-0.275-7.226-0.438%20%20%20c-2.074-11-4.512-21.925-6.449-32.95c2.137-0.1%2C4.287-0.188%2C6.425-0.263c1.287%2C7.962%2C2.75%2C15.888%2C3.875%2C23.862%20%20%20C43.297%2C52.188%2C45.096%2C44.013%2C46.846%2C35.837z%22%20%2F%3E%3C%2Fg%3E%3Cpath%20class%3D%22cls-3%22%20d%3D%22M50.69%2C36.792c2.375-0.137%2C4.75-0.237%2C7.125-0.362%20%20c1.662%2C8.438%2C3.362%2C16.862%2C5.162%2C25.262c1.413-8.675%2C2.976-17.325%2C4.487-25.987c2.5-0.087%2C5-0.225%2C7.488-0.375%20%20c-2.825%2C12.112-5.301%2C24.325-8.388%2C36.362c-2.088%2C1.088-5.213-0.05-7.688%2C0.125c-1.663-8.274-3.601-16.5-5.088-24.813%20%20c-1.462%2C8.075-3.362%2C16.075-5.037%2C24.101c-2.4-0.125-4.813-0.275-7.226-0.438c-2.074-11-4.512-21.925-6.449-32.95%20%20c2.137-0.1%2C4.287-0.188%2C6.425-0.263c1.287%2C7.962%2C2.75%2C15.888%2C3.875%2C23.862C47.14%2C53.143%2C48.94%2C44.968%2C50.69%2C36.792z%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-dotx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D.cls-2%7Bfill%3A%23fff%3B%7D.cls-3%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3CclipPath%20id%3D%22clip-dotx%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3Cg%20id%3D%22dotx%22%20clip-path%3D%22url(%23clip-dotx)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_38%22%20data-name%3D%22Path%2038%22%20d%3D%22M12.223%2C119.714c1.251-.066%2C2.5-.115%2C3.752-.177.875%2C4.123%2C1.771%2C8.239%2C2.718%2C12.343.744-4.239%2C1.567-8.464%2C2.363-12.7%2C1.317-.042%2C2.633-.109%2C3.944-.183-1.488%2C5.917-2.792%2C11.886-4.417%2C17.767-1.1.531-2.745-.026-4.049.06-.876-4.042-1.9-8.061-2.679-12.123-.77%2C3.945-1.771%2C7.854-2.653%2C11.775-1.264-.06-2.535-.134-3.805-.213C6.3%2C130.892%2C5.02%2C125.553%2C4%2C120.167c1.125-.049%2C2.258-.093%2C3.384-.129.678%2C3.889%2C1.448%2C7.762%2C2.041%2C11.659C10.353%2C127.7%2C11.3%2C123.708%2C12.223%2C119.714Z%22%20transform%3D%22translate(-2%20-117)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20class%3D%22cls-2%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-txt { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22%2017H2V18H22V17Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2020H2V21H22V20Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2014H2V15H22V14Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2011H2V12H22V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%208H2V9H22V8Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%205H2V6H22V5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%202H2V3H22V2Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdf { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M11.875%2C18.648c0.8-1.567%2C1.709-3.334%2C2.437-5.107l0%2C0%20%20l0.288-0.7c-0.95-3.616-1.52-6.519-1.011-8.396l0%2C0c0.137-0.489%2C0.704-0.786%2C1.31-0.786l0%2C0l0.369%2C0.005h0.068%20%20c0.83-0.013%2C1.22%2C1.042%2C1.264%2C1.453l0%2C0c0.073%2C0.683-0.243%2C1.839-0.243%2C1.839l0%2C0c0-0.467%2C0.018-1.221-0.276-1.873l0%2C0%20%20c-0.343-0.753-0.671-1.204-0.965-1.275l0%2C0c-0.148%2C0.099-0.292%2C0.304-0.342%2C0.699l0%2C0c-0.103%2C0.553-0.133%2C1.252-0.133%2C1.612l0%2C0%20%20c0%2C1.272%2C0.25%2C2.952%2C0.743%2C4.683l0%2C0c0.093-0.268%2C0.174-0.526%2C0.24-0.767l0%2C0c0.101-0.38%2C0.743-2.901%2C0.743-2.901l0%2C0%20%20c0%2C0-0.162%2C3.355-0.388%2C4.371l0%2C0c-0.048%2C0.215-0.102%2C0.427-0.158%2C0.644l0%2C0c0.812%2C2.268%2C2.121%2C4.292%2C3.68%2C5.75l0%2C0%20%20c0.615%2C0.575%2C1.393%2C1.038%2C2.128%2C1.461l0%2C0c1.605-0.229%2C3.084-0.338%2C4.318-0.324l0%2C0c1.637%2C0.021%2C2.838%2C0.264%2C3.324%2C0.743l0%2C0%20%20c0.238%2C0.232%2C0.335%2C0.514%2C0.365%2C0.83l0%2C0c0.007%2C0.122-0.053%2C0.41-0.07%2C0.482l0%2C0c0.018-0.088%2C0.018-0.518-1.297-0.938l0%2C0%20%20c-1.034-0.33-2.971-0.32-5.295-0.073l0%2C0c2.688%2C1.315%2C5.307%2C1.968%2C6.137%2C1.577l0%2C0c0.203-0.1%2C0.449-0.437%2C0.449-0.437l0%2C0%20%20c0%2C0-0.146%2C0.665-0.252%2C0.831l0%2C0c-0.134%2C0.18-0.396%2C0.376-0.646%2C0.441l0%2C0c-1.311%2C0.35-4.722-0.459-7.695-2.158l0%2C0%20%20c-3.322%2C0.489-6.972%2C1.393-9.897%2C2.353l0%2C0c-2.874%2C5.037-5.035%2C7.351-6.793%2C6.471l0%2C0L3.63%2C28.833%20%20c-0.263-0.15-0.303-0.516-0.242-0.813l0%2C0c0.205-1.003%2C1.462-2.513%2C3.988-4.021l0%2C0c0.272-0.165%2C1.483-0.805%2C1.483-0.805l0%2C0%20%20c0%2C0-0.896%2C0.868-1.106%2C1.038l0%2C0c-2.016%2C1.652-3.504%2C3.73-3.467%2C4.536l0%2C0l0.007%2C0.069C6.005%2C28.594%2C8.573%2C25.109%2C11.875%2C18.648%20%20%20M12.921%2C19.184c-0.551%2C1.038-1.09%2C2.001-1.588%2C2.886l0%2C0c2.752-1.153%2C5.715-1.892%2C8.535-2.416l0%2C0%20%20c-0.379-0.262-0.746-0.539-1.093-0.832l0%2C0c-1.554-1.314-2.737-2.955-3.595-4.681l0%2C0C14.636%2C15.607%2C13.989%2C17.166%2C12.921%2C19.184%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdfa { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.875%2018.648L11.9617%2018.4783C12.7401%2016.954%2013.6102%2015.2503%2014.312%2013.541L14.6%2012.841C13.65%209.225%2013.08%206.322%2013.589%204.445C13.726%203.956%2014.293%203.659%2014.899%203.659L15.268%203.664H15.336C16.166%203.651%2016.556%204.706%2016.6%205.117C16.673%205.8%2016.357%206.956%2016.357%206.956L16.3571%206.87946C16.358%206.40944%2016.3594%205.70047%2016.081%205.083C15.738%204.33%2015.41%203.879%2015.116%203.808C14.968%203.907%2014.824%204.112%2014.774%204.507C14.671%205.06%2014.641%205.759%2014.641%206.119C14.641%207.391%2014.891%209.071%2015.384%2010.802C15.477%2010.534%2015.558%2010.276%2015.624%2010.035C15.725%209.655%2016.367%207.134%2016.367%207.134C16.367%207.134%2016.205%2010.489%2015.979%2011.505C15.931%2011.72%2015.877%2011.932%2015.821%2012.149C16.633%2014.417%2017.942%2016.441%2019.501%2017.899C19.9467%2018.3157%2020.4779%2018.6735%2021.0164%2019H29C30.1046%2019%2031%2019.8954%2031%2021V29C31%2030.1046%2030.1046%2031%2029%2031H17C15.8954%2031%2015%2030.1046%2015%2029V21.5492C13.6156%2021.9019%2012.2807%2022.2896%2011.07%2022.687C8.19599%2027.724%206.03499%2030.038%204.27699%2029.158L3.62999%2028.833C3.36699%2028.683%203.32699%2028.317%203.38799%2028.02C3.59299%2027.017%204.84999%2025.507%207.37599%2023.999C7.64799%2023.834%208.85899%2023.194%208.85899%2023.194C8.85899%2023.194%207.96299%2024.062%207.75299%2024.232C5.73699%2025.884%204.24899%2027.962%204.28599%2028.768L4.29299%2028.837C6.00499%2028.594%208.57299%2025.109%2011.875%2018.648ZM18.775%2018.822C18.8461%2018.882%2018.918%2018.9413%2018.9906%2019H17C15.9681%2019%2015.1187%2019.7815%2015.0114%2020.785C13.7648%2021.146%2012.529%2021.5689%2011.333%2022.07C11.831%2021.185%2012.37%2020.222%2012.921%2019.184C13.989%2017.166%2014.636%2015.607%2015.18%2014.141C16.038%2015.867%2017.221%2017.508%2018.775%2018.822ZM21.5553%2027.3521H24.4447L24.9995%2029H26.7518L23.7581%2021.002H22.231L19.2537%2029H21.006L21.5553%2027.3521ZM23.9998%2026.0172H22.0002L22.9945%2023.0234L23.9998%2026.0172Z%22%20class%3D%22cls-1%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-odt { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%20193.631%20193.63%22%20height%3D%22193.63px%22%20width%3D%22193.631px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M193.16%2C59.725v-0.006%20%20c-0.334-0.173-0.671-0.334-1.004-0.497c-5.357-2.586-11.257-4.287-17.526-4.88c-11.083-1.049-21.673%2C1.496-30.622%2C6.678%20%20c-6.13-3.477-13.072-5.741-20.542-6.448c-10.298-0.974-20.17%2C1.16-28.697%2C5.629c-0.084%2C0.044-0.17%2C0.095-0.251%2C0.135%20%20c-0.207%2C0.162-0.347%2C0.414-0.347%2C0.697c0%2C0.492%2C0.392%2C0.89%2C0.889%2C0.89c0.046%2C0%2C0.091-0.007%2C0.139-0.017%20%20c0.021-0.002%2C0.042-0.011%2C0.061-0.015c4.586-0.848%2C9.368-1.088%2C14.243-0.627c13.683%2C1.293%2C25.609%2C5.521%2C33.975%2C15.011%20%20c0.436%2C0.455%2C0.822%2C0.427%2C1.265-0.024c10.524-12.2%2C26.663-17.021%2C44.006-15.382c0.968%2C0.094%2C1.921%2C0.213%2C2.871%2C0.355%20%20c0.33%2C0.05%2C0.836%2C0.134%2C1.133%2C0.167c0.572%2C0.063%2C0.88-0.397%2C0.88-0.891C193.629%2C60.166%2C193.486%2C59.886%2C193.16%2C59.725L193.16%2C59.725z%22%20class%3D%22cls-1%22%20%2F%3E%3Cpath%20d%3D%22M173.053%2C102.654c-0.056-0.029-0.106-0.046-0.154-0.066%20%20c-10.517-4.349-22.02-6.758-34.093-6.758c-19.293%2C0-37.155%2C6.127-51.757%2C16.524c-11.146-4.993-23.497-7.776-36.496-7.776%20%20c-18.485%2C0-35.648%2C5.617-49.895%2C15.237c-0.047%2C0.029-0.095%2C0.066-0.149%2C0.104C0.205%2C120.154%2C0%2C120.528%2C0%2C120.957%20%20c0%2C0.729%2C0.592%2C1.324%2C1.323%2C1.324c0.086%2C0%2C0.174-0.013%2C0.259-0.03c0.058-0.015%2C0.107-0.028%2C0.161-0.048%20%20c8.166-2.456%2C16.832-3.791%2C25.798-3.791c23.836%2C0%2C45.083%2C5.633%2C61.08%2C20.68c0.038%2C0.029%2C0.071%2C0.066%2C0.111%2C0.104%20%20c0.232%2C0.205%2C0.53%2C0.325%2C0.863%2C0.325c0.412%2C0%2C0.774-0.189%2C1.018-0.486c0.006%2C0.004%2C0.515-0.72%2C0.773-1.07%20%20c16.246-22.216%2C43.03-33.172%2C72.846-33.172c2.128%2C0%2C4.246%2C0.08%2C6.337%2C0.225c0.602%2C0.047%2C1.874%2C0.144%2C1.903%2C0.144%20%20c0.726%2C0%2C1.322-0.591%2C1.322-1.324C173.796%2C103.313%2C173.492%2C102.862%2C173.053%2C102.654L173.053%2C102.654z%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-ott { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-ott%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22ott%22%20clip-path%3D%22url(%23clip-ott)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_33%22%20data-name%3D%22Path%2033%22%20d%3D%22M125.173%2C121h0c-.046-.03-.093-.059-.141-.088a6.133%2C6.133%2C0%2C0%2C0-2.467-.869%2C6.014%2C6.014%2C0%2C0%2C0-4.309%2C1.188%2C6.223%2C6.223%2C0%2C0%2C0-2.892-1.147%2C5.965%2C5.965%2C0%2C0%2C0-4.039%2C1l-.036.024a.176.176%2C0%2C0%2C0-.049.125.145.145%2C0%2C0%2C0%2C.126.158l.019%2C0a.019.019%2C0%2C0%2C0%2C.009%2C0%2C5.781%2C5.781%2C0%2C0%2C1%2C2.005-.111%2C6.41%2C6.41%2C0%2C0%2C1%2C4.782%2C2.669c.06.081.115.076.178%2C0a6.288%2C6.288%2C0%2C0%2C1%2C6.194-2.735c.136.017.27.038.4.064.047.009.119.024.161.03.08.011.123-.071.123-.159A.155.155%2C0%2C0%2C0%2C125.173%2C121Z%22%20transform%3D%22translate(-94.24%20-116)%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_34%22%20data-name%3D%22Path%2034%22%20d%3D%22M126.894%2C125.978a.175.175%2C0%2C0%2C0-.022-.011%2C11.686%2C11.686%2C0%2C0%2C0-4.905-1.082%2C11.924%2C11.924%2C0%2C0%2C0-7.444%2C2.647%2C11.725%2C11.725%2C0%2C0%2C0-5.251-1.245%2C11.884%2C11.884%2C0%2C0%2C0-7.176%2C2.441.229.229%2C0%2C0%2C0-.022.016.217.217%2C0%2C0%2C0-.073.167.2.2%2C0%2C0%2C0%2C.191.211.167.167%2C0%2C0%2C0%2C.037%2C0%2C.118.118%2C0%2C0%2C0%2C.023-.008%2C11.679%2C11.679%2C0%2C0%2C1%2C3.71-.608c3.429%2C0%2C6.486.9%2C8.787%2C3.315a.093.093%2C0%2C0%2C1%2C.016.016.172.172%2C0%2C0%2C0%2C.123.052.18.18%2C0%2C0%2C0%2C.147-.078s.075-.115.111-.171a12.1%2C12.1%2C0%2C0%2C1%2C10.479-5.315c.306%2C0%2C.611.014.912.037l.273.022a.2.2%2C0%2C0%2C0%2C.191-.211A.211.211%2C0%2C0%2C0%2C126.894%2C125.978Z%22%20transform%3D%22translate(-100%20-115.885)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-html { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2262px%22%20height%3D%2262px%22%20viewBox%3D%220%200%2062%2062%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23446995%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M24.993%2C38.689L11.34%2C32.753v-3.288l13.653-5.91v3.872l-9.523%2C3.641l9.523%2C3.777V38.689z%22%20%2F%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M27.09%2C41.298l4.931-20.596h2.867l-4.986%2C20.596H27.09z%22%20%2F%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M36.986%2C38.703v-3.845l9.536-3.75L36.986%2C27.4v-3.817l13.666%2C5.91v3.261L36.986%2C38.703z%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-rtf { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%227%22%20height%3D%227%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2011H2V12H22V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2014H2V15H22V14Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2017H2V18H22V17Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%2020H2V21H22V20Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%202H11V3H22V2Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%205H11V6H22V5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22%208H11V9H22V8Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-users { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.5%207C15.5%209.26153%2014.9357%2010.9518%2014.201%2012.0307C13.4584%2013.121%2012.6234%2013.5%2012%2013.5C11.3766%2013.5%2010.5416%2013.121%209.79901%2012.0307C9.0643%2010.9518%208.5%209.26153%208.5%207C8.5%204.92262%2010.2222%203.5%2012%203.5C13.7778%203.5%2015.5%204.92262%2015.5%207ZM14.8461%2013.6216C14.006%2014.5191%2013.0044%2015%2012%2015C10.9956%2015%209.99399%2014.5191%209.15395%2013.6216C7.69714%2014.1996%206.4782%2014.7725%205.52945%2015.3496C3.82884%2016.3839%203.5%2017.1203%203.5%2017.5C3.5%2018.0104%203.76355%2018.6977%205.04703%2019.3409C6.37522%2020.0065%208.60909%2020.4999%2012%2020.5C15.3909%2020.5%2017.6248%2020.0065%2018.953%2019.3409C20.2364%2018.6977%2020.5%2018.0104%2020.5%2017.5C20.5%2017.1203%2020.1712%2016.3839%2018.4705%2015.3496C17.5218%2014.7725%2016.3029%2014.1996%2014.8461%2013.6216ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-review { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M17.5%203.5H4.5V20.5H17.5V18H19V20C19%2020.5321%2018.7973%2021.0297%2018.3918%2021.4366C17.9864%2021.8122%2017.5302%2022%2017%2022H5C4.46979%2022%204.01364%2021.8122%203.60819%2021.4366C3.20273%2021.0297%203%2020.5266%203%2019.9945V4C3%202.89543%203.89543%202%205%202H17C17.5302%202%2017.9864%202.20344%2018.3918%202.61033C18.7661%202.98592%2019%203.46792%2019%204V7H17.5V3.5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22.8438%2010.2396L21.8281%2011.2552L19.7448%209.17188L20.7604%208.15625C20.8646%208.05208%2020.9948%208%2021.151%208C21.3073%208%2021.4375%208.05208%2021.5417%208.15625L22.8438%209.45833C22.9479%209.5625%2023%209.69271%2023%209.84896C23%2010.0052%2022.9479%2010.1354%2022.8438%2010.2396ZM13%2015.9167L19.1458%209.77083L21.2292%2011.8542L15.0833%2018H13V15.9167Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2015.5H11V17H7V15.5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2011H13V12.5H7V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%207H15V8.5H7V7Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-review-changes { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M20.5%204.5L20.5%2019.5L3.5%2019.5L3.5%204.5L20.5%204.5ZM22%2019L22%205C22%203.89543%2021.1046%203%2020%203L4.00549%203C3.47341%203%202.97026%203.20273%202.56338%203.60819C2.18779%204.01364%202%204.46978%202%205L2%2019C2%2019.5302%202.18779%2019.9864%202.56338%2020.3918C2.97026%2020.7973%203.46792%2021%204%2021L20%2021C20.5321%2021%2021.0141%2020.7661%2021.3897%2020.3918C21.7966%2019.9864%2022%2019.5302%2022%2019Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2015H18V16.5H6V15Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2011H18V12.5H6V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%207H18V8.5H6V7Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-accept-changes { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.3966%2019.2877L21.6495%2011L23%2012.3562L13.3966%2022L9%2017.5849L10.3505%2016.2288L13.3966%2019.2877Z%22%20fill%3D%22%2340865C%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.5%208L20.5%204.5L3.5%204.5L3.5%2017.5L7%2017.5L7%2019L4%2019C3.46792%2019%202.97026%2018.7973%202.56338%2018.3918C2.18779%2017.9864%202%2017.5302%202%2017L2%205C2%204.46978%202.18779%204.01364%202.56338%203.60819C2.97026%203.20273%203.4734%203%204.00549%203L20%203C21.1046%203%2022%203.89543%2022%205L22%208L20.5%208Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%208H18V9.5H6V8Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2012H16V13.5H6V12Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reject-changes { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M23%2013.4099L19.4099%2017L23%2020.5901L21.5901%2022L18%2018.4099L14.4099%2022L13%2020.5901L16.5901%2017L13%2013.4099L14.4099%2012L18%2015.5901L21.5901%2012L23%2013.4099Z%22%20fill%3D%22%23C60915%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.5%2010L20.5%204.5L3.5%204.5L3.5%2017.5L11%2017.5L11%2019L4%2019C3.46792%2019%202.97026%2018.7973%202.56338%2018.3918C2.18779%2017.9864%202%2017.5302%202%2017L2%205C2%204.46978%202.18779%204.01364%202.56338%203.60819C2.97026%203.20273%203.4734%203%204.00549%203L20%203C21.1046%203%2022%203.89543%2022%205L22%2010L20.5%2010Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%208H18V9.5H6L6%208Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2012H11V13.5H6V12Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-accept { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2018L2%2011L1%2012L9%2020L23%206L22%205L9%2018Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reject { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%204L4%205L11%2012L4%2019L5%2020L12%2013L19%2020L20%2019L13%2012L20%205L19%204L12%2011L5%204Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next-change { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9.98438%206L15.9844%2012L9.98438%2018L8.57812%2016.5938L13.1719%2012L8.57812%207.40625L9.98438%206Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev-change { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.4219%207.40625L10.8281%2012L15.4219%2016.5938L14.0156%2018L8.01562%2012L14.0156%206L15.4219%207.40625Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-goto { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.5%203.5H3.5V20.5H20.5V3.5ZM3.5%202H2V3.5V20.5V22H3.5H20.5H22V20.5V3.5V2H20.5H3.5ZM14.6893%208.25H9V6.75H16.5H17.25V7.5V15H15.75V9.31066L7.53033%2017.5303L6.46967%2016.4697L14.6893%208.25Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-app-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2014H16C18.2091%2014%2020%2015.7909%2020%2018C20%2020.2091%2018.2091%2022%2016%2022H7C4.79086%2022%203%2020.2091%203%2018C3%2015.7909%204.79086%2014%207%2014ZM16%2013C18.7614%2013%2021%2015.2386%2021%2018C21%2020.7614%2018.7614%2023%2016%2023H7C4.23858%2023%202%2020.7614%202%2018C2%2015.2386%204.23858%2013%207%2013H16Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2020C14.8954%2020%2014%2019.1046%2014%2018C14%2016.8954%2014.8954%2016%2016%2016C17.1046%2016%2018%2016.8954%2018%2018C18%2019.1046%2017.1046%2020%2016%2020ZM16%2021C14.3431%2021%2013%2019.6569%2013%2018C13%2016.3431%2014.3431%2015%2016%2015C17.6569%2015%2019%2016.3431%2019%2018C19%2019.6569%2017.6569%2021%2016%2021Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%203H7C4.79086%203%203%204.79086%203%207C3%209.20914%204.79086%2011%207%2011H16C18.2091%2011%2020%209.20914%2020%207C20%204.79086%2018.2091%203%2016%203ZM7%202C4.23858%202%202%204.23858%202%207C2%209.76142%204.23858%2012%207%2012H16C18.7614%2012%2021%209.76142%2021%207C21%204.23858%2018.7614%202%2016%202H7Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%209C8.10457%209%209%208.10457%209%207C9%205.89543%208.10457%205%207%205C5.89543%205%205%205.89543%205%207C5%208.10457%205.89543%209%207%209ZM7%2010C8.65685%2010%2010%208.65685%2010%207C10%205.34315%208.65685%204%207%204C5.34315%204%204%205.34315%204%207C4%208.65685%205.34315%2010%207%2010Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-footnote { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.1173%2018.7983H10.109L9.36904%2016.6471H4.74829L4.00837%2018.7983H2L5.95633%207.58823H8.161L12.1173%2018.7983ZM8.87072%2014.916L7.05867%209.57143L5.24661%2014.916H8.87072Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14.7577%2016.3613C14.9288%2016.6639%2015.1906%2016.9216%2015.5429%2017.1345C15.9053%2017.3361%2016.2677%2017.437%2016.6301%2017.437C17.2543%2017.437%2017.7526%2017.1905%2018.1251%2016.6975C18.5076%2016.1933%2018.6989%2015.5434%2018.6989%2014.7479C18.6989%2013.9524%2018.5076%2013.3025%2018.1251%2012.7983C17.7526%2012.2941%2017.2543%2012.042%2016.6301%2012.042C16.2677%2012.042%2015.9103%2012.1485%2015.558%2012.3613C15.2057%2012.5742%2014.9389%2012.8375%2014.7577%2013.1513V16.3613ZM14.7577%2018.7983H13.1721V7.58823H14.7577V11.8067C15.3516%2010.9216%2016.1318%2010.479%2017.0982%2010.479C18.0445%2010.479%2018.8197%2010.8711%2019.4237%2011.6555C20.0277%2012.4286%2020.3298%2013.4594%2020.3298%2014.7479C20.3298%2016.0588%2020.0277%2017.0952%2019.4237%2017.8571C18.8197%2018.619%2018.0445%2019%2017.0982%2019C16.1419%2019%2015.3617%2018.563%2014.7577%2017.6891V18.7983Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M24%2011.7227H22.7769V6.7479L21.7651%207.90756L21.0705%207.08403L22.943%205H24V11.7227Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-cut { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23cut)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.22427%2022.2702C4.51527%2023.1269%206.52738%2022.7183%207.6592%2021.0127C8.79101%2019.3071%208.38572%2017.2943%207.09472%2016.4376C5.80372%2015.5809%203.79161%2015.9896%202.65979%2017.6952C1.52798%2019.4008%201.93328%2021.4136%203.22427%2022.2702ZM2.67135%2023.1035C4.51208%2024.325%207.11827%2023.6364%208.49243%2021.5656C9.8666%2019.4948%209.48837%2016.8259%207.64764%2015.6044C5.80691%2014.3829%203.20072%2015.0714%201.82656%2017.1422C0.452398%2019.2131%200.830625%2021.882%202.67135%2023.1035Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.9158%2022.2702C19.6248%2023.1269%2017.6127%2022.7183%2016.4809%2021.0127C15.349%2019.3071%2015.7543%2017.2943%2017.0453%2016.4376C18.3363%2015.5809%2020.3484%2015.9896%2021.4803%2017.6952C22.6121%2019.4008%2022.2068%2021.4136%2020.9158%2022.2702ZM21.4687%2023.1035C19.628%2024.325%2017.0218%2023.6364%2015.6476%2021.5656C14.2735%2019.4948%2014.6517%2016.8259%2016.4924%2015.6044C18.3331%2014.3829%2020.9393%2015.0714%2022.3135%2017.1422C23.6877%2019.2131%2023.3094%2021.882%2021.4687%2023.1035Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M16.4924%2015.6044L13.9037%2012.4737L19.9552%200.675715C20.0693%200.446914%2019.9552%200.172352%2019.727%200.0808313C19.4416%20-0.0106892%2019.0993%200.0808312%2018.9851%200.263872L12.0233%2011.4212L5.17562%200.263872C5.06149%200.035071%204.71911%20-0.0564496%204.43379%200.035071C4.14847%200.126592%204.03434%200.401153%204.14847%200.629955L10.2001%2012.4279L7.64761%2015.6044L9.2292%2018L12.0233%2013.4804L14.9108%2018L16.4924%2015.6044Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22cut%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22black%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-copy { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201H15V7H16V0H0V17H8V16H1V1Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M23%208H9V23H23V8ZM8%207V24H24V7H8Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13%205H3V4H13V5Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%209H3V8H8V9Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%2013H3V12H8V13Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H11V11H21V12Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H11V15H21V16Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H11V19H21V20Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-paste { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-menu-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.6047%2016.5848C17.0078%2016.1793%2017.4729%2015.9766%2018%2015.9766C18.5271%2015.9766%2018.9922%2016.1793%2019.3953%2016.5848C19.7984%2016.9903%2020%2017.4581%2020%2017.9883C20%2018.5185%2019.7984%2018.9864%2019.3953%2019.3918C18.9922%2019.7973%2018.5271%2020%2018%2020C17.4729%2020%2017.0078%2019.7973%2016.6047%2019.3918C16.2016%2018.9864%2016%2018.5185%2016%2017.9883C16%2017.4581%2016.2016%2016.9903%2016.6047%2016.5848ZM16.6047%2010.5965C17.0078%2010.191%2017.4729%209.9883%2018%209.9883C18.5271%209.9883%2018.9922%2010.191%2019.3953%2010.5965C19.7984%2011.0019%2020%2011.4698%2020%2012C20%2012.5302%2019.7984%2012.9981%2019.3953%2013.4035C18.9922%2013.809%2018.5271%2014.0117%2018%2014.0117C17.4729%2014.0117%2017.0078%2013.809%2016.6047%2013.4035C16.2016%2012.9981%2016%2012.5302%2016%2012C16%2011.4698%2016.2016%2011.0019%2016.6047%2010.5965ZM19.3953%207.4152C18.9922%207.82066%2018.5271%208.02339%2018%208.02339C17.4729%208.02339%2017.0078%207.82066%2016.6047%207.4152C16.2016%207.00975%2016%206.54191%2016%206.0117C16%205.48148%2016.2016%205.01365%2016.6047%204.60819C17.0078%204.20273%2017.4729%204%2018%204C18.5271%204%2018.9922%204.20273%2019.3953%204.60819C19.7984%205.01365%2020%205.48148%2020%206.0117C20%206.54191%2019.7984%207.00975%2019.3953%207.4152Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment.check { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%2340865C%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.4219%207.40625L10.8281%2012L15.4219%2016.5938L14.0156%2018L8.01562%2012L14.0156%206L15.4219%207.40625Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9.98438%206L15.9844%2012L9.98438%2018L8.57812%2016.5938L13.1719%2012L8.57812%207.40625L9.98438%206Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-done-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insert-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V15.0346C2%2016.3222%203.18908%2017.013%204.5%2017.013H5.5C5.82773%2017.013%206%2017.1917%206%2017.5136V21L12%2017H20C21.1046%2017%2022%2016.1046%2022%2015V8H20.5V14.5C20.5%2015.0523%2020.0523%2015.5%2019.5%2015.5H11.5L7.5%2018V15.5H4.5C3.94772%2015.5%203.5%2015.0523%203.5%2014.5V5.5C3.5%204.94772%203.94772%204.5%204.5%204.5H19.5C20.0523%204.5%2020.5%204.94772%2020.5%205.5V8H22V5.50295C22%204.2153%2020.8109%203%2019.5%203Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%207.5H18V9H6L6%207.5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2011H18V12.5H6V11Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-done-comment-white { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; -} -.navbar i.icon.icon-undo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C17v-2c0-1.7-1.3-3-3-3H3.7l3.4%2C3.4l-1.4%2C1.4l-5.2-5.2L0%2C11l0.5-0.6l5.2-5.2l1.4%2C1.4L3.7%2C10H17c2.8%2C0%2C5%2C2.2%2C5%2C5v2H20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-redo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C17v-2c0-2.8%2C2.2-5%2C5-5h13.3l-3.4-3.4l1.4-1.4l5.2%2C5.2L22%2C11l-0.5%2C0.6l-5.2%2C5.2l-1.4-1.4l3.4-3.4H5c-1.7%2C0-3%2C1.3-3%2C3v2H0z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M19.5%2C16.8L16%2C13.3c0.7-1.1%2C1.1-2.4%2C1.1-3.8C17%2C5.4%2C13.6%2C2%2C9.5%2C2S2%2C5.4%2C2%2C9.5S5.4%2C17%2C9.5%2C17c1.4%2C0%2C2.7-0.4%2C3.8-1.1l3.5%2C3.5c0.7%2C0.7%2C1.9%2C0.7%2C2.6%2C0C20.2%2C18.7%2C20.2%2C17.6%2C19.5%2C16.8z%20M9.5%2C15.3c-3.2%2C0-5.8-2.6-5.8-5.8s2.6-5.8%2C5.8-5.8s5.8%2C2.6%2C5.8%2C5.8S12.7%2C15.3%2C9.5%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-burger { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-8%201%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M-6%2C6v2h18V6H-6z%20M-6%2C13h18v-2H-6V13z%20M-6%2C18h18v-2H-6V18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-plus { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C12h-9v9h-2v-9H1v-2h9V1h2v9h9V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2217.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M12.1%2C2H9.9C9.6%2C2%2C9.4%2C2.2%2C9.3%2C2.5L8.8%2C4.9c0%2C0.2-0.2%2C0.3-0.3%2C0.3s-0.1%2C0-0.2-0.1L6.2%2C3.8C6.1%2C3.7%2C6%2C3.7%2C5.8%2C3.7c-0.1%2C0-0.3%2C0-0.4%2C0.1L3.8%2C5.4c-0.1%2C0.2-0.2%2C0.5%2C0%2C0.8l1.3%2C2.1c0.1%2C0.2%2C0.1%2C0.4-0.2%2C0.5L2.5%2C9.3C2.2%2C9.4%2C2%2C9.6%2C2%2C9.9v2.2c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.6l2.4%2C0.5c0.3%2C0.1%2C0.4%2C0.3%2C0.2%2C0.5l-1.3%2C2.1c-0.2%2C0.2-0.1%2C0.6%2C0.1%2C0.8l1.6%2C1.6c0.1%2C0.1%2C0.3%2C0.2%2C0.4%2C0.2s0.2%2C0%2C0.3-0.1L8.3%2C17c0.1-0.1%2C0.1-0.1%2C0.2-0.1s0.3%2C0.1%2C0.3%2C0.3l0.5%2C2.3C9.4%2C19.8%2C9.6%2C20%2C9.9%2C20h2.2c0.3%2C0%2C0.5-0.2%2C0.6-0.5l0.5-2.4c0-0.2%2C0.1-0.3%2C0.3-0.3c0.1%2C0%2C0.1%2C0%2C0.2%2C0.1l2.1%2C1.3c0.1%2C0.1%2C0.2%2C0.1%2C0.3%2C0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2l1.6-1.6c0.2-0.2%2C0.2-0.5%2C0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5%2C0.2-0.5l2.4-0.5c0.3-0.1%2C0.5-0.3%2C0.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%2C0.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%2C0-0.3%2C0.1l-2.1%2C1.3C13.6%2C5%2C13.6%2C5%2C13.5%2C5s-0.3-0.1-0.3-0.3l-0.5-2.2C12.6%2C2.2%2C12.4%2C2%2C12.1%2C2L12.1%2C2z%20M11%2C14.5c-1.9%2C0-3.5-1.6-3.5-3.5S9.1%2C7.5%2C11%2C7.5s3.5%2C1.6%2C3.5%2C3.5S12.9%2C14.5%2C11%2C14.5L11%2C14.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-prev { - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%225.1%2C10.9%2013.9%2C2%2016%2C4.1%209.2%2C11.1%2016%2C17.9%2013.9%2C20%205.1%2C11.2%205%2C11.1%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-next { - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%2216.9%2C10.9%208.1%2C2%206%2C4.1%2012.8%2C11.1%206%2C17.9%208.1%2C20%2016.9%2C11.2%2017%2C11.1%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-expand-down { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C16.9%202%2C8.1%204.1%2C6%2011.1%2C12.8%2017.9%2C6%2020%2C8.1%2011.2%2C16.9%2011.1%2C17%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M14.9912%206C14.9912%208.18203%2014.4464%209.76912%2013.7789%2010.7492C13.101%2011.7447%2012.4042%2012%2011.9912%2012C11.5782%2012%2010.8814%2011.7447%2010.2035%2010.7492C9.53601%209.76912%208.99121%208.18203%208.99121%206C8.99121%204.23017%2010.4571%203%2011.9912%203C13.5254%203%2014.9912%204.23017%2014.9912%206ZM13.4917%2013.6397C13.0059%2013.8771%2012.4989%2014%2011.9912%2014C11.4861%2014%2010.9817%2013.8784%2010.4983%2013.6434C8.53188%2014.3681%206.94518%2015.0737%205.78927%2015.7768C4.10512%2016.8011%204%2017.4079%204%2017.5C4%2017.7664%204.1014%2018.3077%205.27104%2018.8939C6.50029%2019.5099%208.64545%2019.9999%2012%2020C15.3546%2020%2017.4997%2019.5099%2018.7289%2018.8939C19.8986%2018.3078%2020%2017.7664%2020%2017.5C20%2017.4079%2019.8949%2016.8011%2018.2107%2015.7768C17.0529%2015.0726%2015.4627%2014.3657%2013.4917%2013.6397ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-table { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2%204H11V8H2V4Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M13%204H22V8H13V4Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M2%2010H11V14H2V10Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M13%2010H22V14H13V10Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M2%2016H11V20H2V16Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M13%2016H22V20H13V16Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%2215%22%20r%3D%227%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%203C2.44772%203%202%203.44772%202%204V17C2%2017.5523%202.44772%2018%203%2018H8.58152C8.20651%2017.0736%208%2016.0609%208%2015C8%2010.5817%2011.5817%207%2016%207C16.6906%207%2017.3608%207.08751%2018%207.25204V4C18%203.44772%2017.5523%203%2017%203H3Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.23958%2018L8.09375%2013.5L10.9062%2016.5L14.7604%2012L19.7604%2018H4.23958ZM21.3229%2020.3906C21.7743%2019.9844%2022%2019.5156%2022%2018.9844V5.01562C22%204.48438%2021.7743%204.01562%2021.3229%203.60938C20.8715%203.20313%2020.3507%203%2019.7604%203H4.23958C3.64931%203%203.12847%203.20313%202.67708%203.60938C2.22569%204.01562%202%204.48438%202%205.01562V18.9844C2%2019.5156%202.22569%2019.9844%202.67708%2020.3906C3.12847%2020.7969%203.64931%2021%204.23958%2021H19.7604C20.3507%2021%2020.8715%2020.7969%2021.3229%2020.3906ZM8%2011C9.10457%2011%2010%2010.1046%2010%209C10%207.89543%209.10457%207%208%207C6.89543%207%206%207.89543%206%209C6%2010.1046%206.89543%2011%208%2011Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0.000477791%200H24.0005V24H0.000477791V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2012C7%2013.6569%205.65685%2015%204%2015C2.34315%2015%201%2013.6569%201%2012C1%2010.3431%202.34315%209%204%209C5.65685%209%207%2010.3431%207%2012ZM15%2012C15%2013.6569%2013.6569%2015%2012%2015C10.3431%2015%209%2013.6569%209%2012C9%2010.3431%2010.3431%209%2012%209C13.6569%209%2015%2010.3431%2015%2012ZM20%2015C21.6569%2015%2023%2013.6569%2023%2012C23%2010.3431%2021.6569%209%2020%209C18.3431%209%2017%2010.3431%2017%2012C17%2013.6569%2018.3431%2015%2020%2015Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-close-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.9844%206.42188L13.4062%2012L18.9844%2017.5781L17.5781%2018.9844L12%2013.4062L6.42188%2018.9844L5.01562%2017.5781L10.5938%2012L5.01562%206.42188L6.42188%205.01562L12%2010.5938L17.5781%205.01562L18.9844%206.42188Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-center { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-jast { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-left { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-right { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-de-indent { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M11%2C15h11v1H11V15z%20M11%2C11h11v1H11V11z%20M11%2C7h11v1H11V7z%20M6.3%2C7L7%2C7.7l-3.8%2C3.8L7%2C15.3L6.3%2C16L2%2C11.8l-0.2-0.3L2%2C11.2L6.3%2C7z%20M1%2C3h21v1H1V3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-in-indent { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-left { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-center { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%228.08%22%20width%3D%2212%22%20height%3D%2210.92%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-right { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2215%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-top { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2212%2018%2011%2018%2011%207.83%208.65%209.8%208%208.94%2011.5%206%2015%209%2014.35%209.8%2012%207.83%2012%2018%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-middle { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2210%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2212%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2211%202%2012%202%2012%207.17%2014.35%205.2%2015%206.06%2011.5%209%208%206%208.65%205.2%2011%207.17%2011%202%22%2F%3E%3Cpolygon%20points%3D%2212%2021%2011%2021%2011%2015.83%208.65%2017.8%208%2016.94%2011.5%2014%2015%2017%2014.35%2017.8%2012%2015.83%2012%2021%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-bottom { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2218%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2220%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2211%204%2012%204%2012%2015.17%2014.35%2013.2%2015%2014.06%2011.5%2017%208%2014%208.65%2013.2%2011%2015.17%2011%204%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish .item-content.buttons .item-inner > .row .button.active { - background-color: #a2bdde; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=textRect] .thumb { - background-image: url('../img/shapes/shape-01.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=line] .thumb { - background-image: url('../img/shapes/shape-02.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=lineWithArrow] .thumb { - background-image: url('../img/shapes/shape-03.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=lineWithTwoArrows] .thumb { - background-image: url('../img/shapes/shape-04.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rect] .thumb { - background-image: url('../img/shapes/shape-05.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=hexagon] .thumb { - background-image: url('../img/shapes/shape-06.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=roundRect] .thumb { - background-image: url('../img/shapes/shape-07.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=ellipse] .thumb { - background-image: url('../img/shapes/shape-08.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=triangle] .thumb { - background-image: url('../img/shapes/shape-09.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rtTriangle] .thumb { - background-image: url('../img/shapes/shape-10.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=trapezoid] .thumb { - background-image: url('../img/shapes/shape-11.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=diamond] .thumb { - background-image: url('../img/shapes/shape-12.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rightArrow] .thumb { - background-image: url('../img/shapes/shape-13.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=leftRightArrow] .thumb { - background-image: url('../img/shapes/shape-14.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=leftArrow] .thumb { - background-image: url('../img/shapes/shape-15.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=bentUpArrow] .thumb { - background-image: url('../img/shapes/shape-16.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=flowChartOffpageConnector] .thumb { - background-image: url('../img/shapes/shape-17.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=heart] .thumb { - background-image: url('../img/shapes/shape-18.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=mathMinus] .thumb { - background-image: url('../img/shapes/shape-19.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=mathPlus] .thumb { - background-image: url('../img/shapes/shape-20.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=parallelogram] .thumb { - background-image: url('../img/shapes/shape-21.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=wedgeRectCallout] .thumb { - background-image: url('../img/shapes/shape-22.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=wedgeEllipseCallout] .thumb { - background-image: url('../img/shapes/shape-23.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=cloudCallout] .thumb { - background-image: url('../img/shapes/shape-24.svg'); - background-color: transparent; -} -* { - -webkit-user-select: none; - user-select: none; -} -input, -textarea { - -webkit-touch-callout: default; - -webkit-user-select: text; - user-select: text; -} -#editor-navbar.navbar .right { - padding-right: 4px; -} -#editor-navbar.navbar .right a.link, -#editor-navbar.navbar .left a.link { - padding: 0 13px; -} -.logo-navbar { - height: 80px; -} -.logo-navbar .navbar-inner { - top: 24px; - height: 56px; -} -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: 48px; - bottom: 0; - height: auto; - overflow: hidden; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -#editor_sdk.with-logo { - top: 80px; -} -#add-table .page, -#add-shape .page { - background-color: #fff; -} -.container-add .categories i.icon { - opacity: 0.5; -} -.container-add .categories .active i.icon { - opacity: 1; -} -.table-styles .row, -.table-styles .row li { - margin-bottom: 12px; -} -.table-styles li, -.table-styles .row div { - margin: 0; - padding: 1px; -} -.table-styles li img, -.table-styles .row div img { - width: 70px; - height: 50px; -} -.chart-styles .row, -.chart-styles .row li { - margin-bottom: 12px; -} -.chart-styles li, -.chart-styles .row div { - margin: 0; - padding: 1px; -} -.shapes li { - width: 70px; - height: 70px; - margin: 0 1px; -} -.shapes li .thumb { - width: 100%; - height: 100%; - background-color: #446995; -} -.chart-types li { - width: 60px; - height: 60px; - margin: 6px; -} -.chart-types li .thumb { - width: 100%; - height: 100%; - background-size: contain; -} -.bullets ul, -.numbers ul { - margin-top: 10px; -} -.bullets li, -.numbers li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; -} -html.pixel-ratio-2 .bullets li, -html.pixel-ratio-2 .numbers li { - border: 0.5px solid #c4c4c4; -} -html.pixel-ratio-3 .bullets li, -html.pixel-ratio-3 .numbers li { - border: 0.33px solid #c4c4c4; -} -.bullets li .thumb, -.numbers li .thumb { - width: 100%; - height: 100%; - background-color: #ffffff; - background-size: cover; -} -.bullets li .thumb label, -.numbers li .thumb label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; -} -.username-tip { - background-color: #ee3525; - border: none; - border-radius: 0; - padding: 3px 10px; - color: #ffffff; - white-space: nowrap; -} -.modal.modal-in { - max-height: 100%; - overflow: auto; -} -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 10; -} -.doc-placeholder > .line { - height: 15px; - margin: 30px; - background: #e2e2e2; - overflow: hidden; - position: relative; - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; -} -.page-macros-settings[data-page="macros-settings-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-macros-settings[data-page="macros-settings-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #9e9e9e; -} diff --git a/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.eot b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.eot new file mode 100644 index 000000000..d48462061 Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.eot differ diff --git a/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.ttf b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.ttf new file mode 100644 index 000000000..f38867f38 Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.ttf differ diff --git a/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.woff b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.woff new file mode 100644 index 000000000..dace7c952 Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.woff differ diff --git a/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.woff2 b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.woff2 new file mode 100644 index 000000000..997a57b0e Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/Framework7Icons-Regular.woff2 differ diff --git a/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.eot b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.eot new file mode 100644 index 000000000..70508ebab Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.eot differ diff --git a/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.ttf b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.ttf new file mode 100644 index 000000000..7015564ad Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.ttf differ diff --git a/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.woff b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.woff new file mode 100644 index 000000000..b648a3eea Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.woff differ diff --git a/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.woff2 b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.woff2 new file mode 100644 index 000000000..9fa211252 Binary files /dev/null and b/apps/documenteditor/mobile/resources/fonts/MaterialIcons-Regular.woff2 differ diff --git a/apps/documenteditor/mobile/resources/less/app-ios.less b/apps/documenteditor/mobile/resources/less/app-ios.less deleted file mode 100644 index 7afcfe9cb..000000000 --- a/apps/documenteditor/mobile/resources/less/app-ios.less +++ /dev/null @@ -1,293 +0,0 @@ -@import url('../../../../../vendor/framework7/src/less/ios/_mixins.less'); -@import url('../../../../../vendor/framework7/src/less/ios/_colors-vars.less'); - -// Colors -@themeColor: #446995; // (64,102,215) - -@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; - } -} - -.logo-navbar { - height: 68px; - .navbar-inner { - top: 24px; - height: 44px; - } -} - -@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('../../../../common/mobile/resources/less/ios/_color-schema.less'); -@import url('../../../../common/mobile/resources/less/ios/_collaboration.less'); - - -@import url('ios/_search.less'); -@import url('ios/_icons.less'); - -.label-switch input[type="checkbox"]:checked + .checkbox { - background: @themeColor; -} - -// Top offset - -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: @toolbarSize; - bottom: 0; - height: auto; - overflow: hidden; - .transition(300ms); -} -#editor_sdk.with-logo { - top: 68px; -} - -// Add Container - -#add-table, -#add-shape { - .page { - background-color: #fff; - } -} - -// Table styles - -.table-styles { - .row { - &, li { - margin-bottom: 12px; - } - } - - li, - .row div { - margin: 0; - padding: 1px; - - img { - width: 70px; - height: 50px; - } - } -} - -// Chart styles - -.chart-styles { - .row { - &, li { - margin-bottom: 12px; - } - } - - li, - .row div { - margin: 0; - padding: 1px; - } -} - -// Shapes - -.shapes { - li { - width: 70px; - height: 70px; - margin: 0 1px; - - .thumb { - width: 100%; - height: 100%; - background-color: @themeColor; - } - } -} - -// Charts - -.chart-types { - li { - width: 60px; - height: 60px; - margin: 6px; - - .thumb { - width: 100%; - height: 100%; - background-size: contain; - } - } -} - -// Bullets and numbers - -.bullets, -.numbers { - ul { - margin-top: 10px; - } - - li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; - html.pixel-ratio-2 & { - border: 0.5px solid #c4c4c4; - } - html.pixel-ratio-3 & { - border: 0.33px solid #c4c4c4; - } - - &.active { - // - } - - .thumb { - width: 100%; - height: 100%; - background-color: @white; - background-size: cover; - - label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; - } - } - } -} - -// Co-Authtoring - -.username-tip { - background-color: #ee3525; - border: none; - border-radius: 0; - padding: 3px 10px; - color: #ffffff; - white-space: nowrap; -} - -// Workaround ios 10.3 - -.range-slider input[type=range]::-webkit-slider-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - box-shadow: 0 2px 4px rgba(0,0,0,0.4); - z-index: 10; - -webkit-appearance: none; -} - -.modal.modal-in { - max-height: 100%; - overflow: auto; -} - -// Skeleton of document - -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 10; - - > .line { - height: 15px; - margin: 30px; - background: #e2e2e2; - overflow: hidden; - position: relative; - - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; - } -} - -// Macros settings -.page-macros-settings[data-page="macros-settings-view"] { - .list-block { - li.media-item { - .item-title { - font-weight: normal; - } - .item-subtitle { - font-size: 14px; - color: @gray; - } - } - } -} diff --git a/apps/documenteditor/mobile/resources/less/app-material.less b/apps/documenteditor/mobile/resources/less/app-material.less deleted file mode 100644 index b74cd4923..000000000 --- a/apps/documenteditor/mobile/resources/less/app-material.less +++ /dev/null @@ -1,292 +0,0 @@ -@import url('../../../../../vendor/framework7/src/less/material/_mixins.less'); -@import url('../../../../../vendor/framework7/src/less/material/_colors-vars.less'); - -// Colors -@themeColor: #446995; // (64,102,215) -@themeColorLight: #a2bdde; -@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('../../../../common/mobile/resources/less/material/_color-schema.less'); -@import url('../../../../common/mobile/resources/less/material/_collaboration.less'); - -@import url('material/_search.less'); -@import url('material/_icons.less'); -@import url('../../../../common/mobile/resources/less/material/_sailfish_fix.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 { - padding-right: 4px; -} -#editor-navbar.navbar .right a.link, -#editor-navbar.navbar .left a.link { - padding: 0 13px; -} - -.logo-navbar { - height: 80px; - .navbar-inner { - top: 24px; - height: 56px; - } -} - -// Top offset - -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: @toolbarSize; - bottom: 0; - height: auto; - overflow: hidden; - .transition(300ms); -} -#editor_sdk.with-logo { - top: 80px; -} - -// Add Container - -#add-table, -#add-shape { - .page { - background-color: #fff; - } -} -.container-add { - .categories { - i.icon { - opacity: 0.5; - } - .active { - i.icon { - opacity: 1; - } - } - } -} - -// Table styles - -.table-styles { - .row { - &, li { - margin-bottom: 12px; - } - } - - li, - .row div { - margin: 0; - padding: 1px; - - img { - width: 70px; - height: 50px; - } - } -} - -// Chart styles - -.chart-styles { - .row { - &, li { - margin-bottom: 12px; - } - } - - li, - .row div { - margin: 0; - padding: 1px; - } -} - -// Shapes - -.shapes { - li { - width: 70px; - height: 70px; - margin: 0 1px; - - .thumb { - width: 100%; - height: 100%; - background-color: @themeColor; - } - } -} - -// Charts - -.chart-types { - li { - width: 60px; - height: 60px; - margin: 6px; - - .thumb { - width: 100%; - height: 100%; - background-size: contain; - } - } -} - -// Bullets and numbers - -.bullets, -.numbers { - ul { - margin-top: 10px; - } - - li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; - html.pixel-ratio-2 & { - border: 0.5px solid #c4c4c4; - } - html.pixel-ratio-3 & { - border: 0.33px solid #c4c4c4; - } - - &.active { - // - } - - .thumb { - width: 100%; - height: 100%; - background-color: @white; - background-size: cover; - - label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; - } - } - } -} - -// Co-Authtoring - -.username-tip { - background-color: #ee3525; - border: none; - border-radius: 0; - padding: 3px 10px; - color: #ffffff; - white-space: nowrap; -} - -.modal.modal-in { - max-height: 100%; - overflow: auto; -} - -// Skeleton of document - -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 10; - - > .line { - height: 15px; - margin: 30px; - background: #e2e2e2; - overflow: hidden; - position: relative; - - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; - } -} - -// Macros settings -.page-macros-settings[data-page="macros-settings-view"] { - .list-block { - li.media-item { - .item-title { - font-weight: normal; - } - .item-subtitle { - font-size: 14px; - color: @gray; - } - } - } -} diff --git a/apps/documenteditor/mobile/resources/less/ios/_icons.less b/apps/documenteditor/mobile/resources/less/ios/_icons.less deleted file mode 100644 index 97d17bcf8..000000000 --- a/apps/documenteditor/mobile/resources/less/ios/_icons.less +++ /dev/null @@ -1,573 +0,0 @@ -// Icons -i.icon { - &.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-burger { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-undo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-redo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-reader { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-download { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-print { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-spellcheck { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-review { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-doc-setup { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-info { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-plus { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-about { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-help { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-versions { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-additional { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-color { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-selection { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-bullets { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-numbers { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-linespacing { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-align-center { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-jast { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-left { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-right { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-de-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-in-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-prev, &.icon-prev-comment { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-next, &.icon-next-comment { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-column-left { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-column-right { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-above { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-below { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-column { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-row { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagebreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-sectionbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-stringbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagenumber { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-link { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-image-library { - width: 22px; - height: 22px; - .encoded-svg-background('icons_for_svg'); - } - - // Presets of table borders - - &.icon-table-borders-all { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-none { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-inner { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-outer { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-left { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-center { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-right { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-top { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-middle { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-bottom { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Wrap - - &.icon-wrap-inline { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-wrap-square { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-wrap-tight { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-wrap-through { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-wrap-top-bottom { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-wrap-infront { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-wrap-behind { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Table Wrap - - &.icon-wrap-table-inline { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-wrap-table-flow { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-block-align-left { - width: 28px; - height: 28px; - .encoded-svg-mask(''); - } - &.icon-block-align-center { - width: 28px; - height: 28px; - .encoded-svg-mask(''); - } - &.icon-block-align-right { - width: 28px; - height: 28px; - .encoded-svg-mask(''); - } - - // Reorder - - &.icon-move-backward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-forward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-background { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-foreground { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Formats - - &.icon-format-docx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-dotx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-txt { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-format-pdf { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pdfa { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-odt { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-ott { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-html { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-rtf { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - // Collaboration - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-users { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-review { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-review-changes { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-accept-changes { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-reject-changes { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-accept { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-reject { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-next-change { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-prev-change { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-goto { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-app-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-footnote { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-cut { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-copy { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-paste { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - - //comments - &.icon-menu-comment { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-resolve-comment { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-resolve-comment.check { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-insert-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - - //Insert - &.icon-add-table { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} - -.active { - i.icon { - &.icon-add-table { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - } -} \ No newline at end of file diff --git a/apps/documenteditor/mobile/resources/less/ios/_search.less b/apps/documenteditor/mobile/resources/less/ios/_search.less deleted file mode 100644 index 17697dc2f..000000000 --- a/apps/documenteditor/mobile/resources/less/ios/_search.less +++ /dev/null @@ -1,122 +0,0 @@ -// 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%); - background-color: #f7f7f8; -} \ No newline at end of file diff --git a/apps/documenteditor/mobile/resources/less/material/_icons.less b/apps/documenteditor/mobile/resources/less/material/_icons.less deleted file mode 100644 index 76fddb55c..000000000 --- a/apps/documenteditor/mobile/resources/less/material/_icons.less +++ /dev/null @@ -1,559 +0,0 @@ -// Icons -i.icon { - &.icon-expand-up { - width: 17px; - height: 17px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 17px; - height: 17px; - .encoded-svg-background(''); - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-reader { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-download { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-print { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-spellcheck { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-review { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-doc-setup { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-info { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-about { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-help { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-versions { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - //&.icon-text-additional { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-text-color { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-text-selection { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-bullets { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-numbers { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-linespacing { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - &.icon-text-align-center { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-jast { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-left { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-right { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-de-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-in-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-table-add-column-left { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-column-right { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-above { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-below { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-column { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-row { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagebreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-sectionbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-stringbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagenumber { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-link { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-image-library { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - - // Presets of table borders - - &.icon-table-borders-all { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-none { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-inner { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-outer { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-left { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-center { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-right { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-top { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-middle { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-bottom { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Table Wrap - - &.icon-block-align-left { - width: 28px; - height: 28px; - .encoded-svg-mask(''); - } - &.icon-block-align-center { - width: 28px; - height: 28px; - .encoded-svg-mask(''); - } - &.icon-block-align-right { - width: 28px; - height: 28px; - .encoded-svg-mask(''); - } - - // Reorder - - &.icon-move-backward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-forward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-background { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-foreground { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Formats - - &.icon-format-docx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-dotx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-txt { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-format-pdf { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pdfa { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-odt { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-ott { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-html { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-rtf { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - - // Collaboration - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-users { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-review { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-review-changes { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-accept-changes { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-reject-changes { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-accept { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-reject { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-next-change { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-prev-change { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-goto { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-app-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-footnote { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-cut { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-copy { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-paste { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-menu-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-resolve-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-resolve-comment.check { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-prev-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-next-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-done-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-insert-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-done-comment-white { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} - -// Overwrite color for toolbar - -.navbar { - i.icon { - &.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; - } - &.icon-undo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-redo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-burger { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-plus { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-prev { - width: 20px; - height: 20px; - .encoded-svg-background(''); - } - &.icon-next { - width: 20px; - height: 20px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-table { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-close-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - } -} \ No newline at end of file diff --git a/apps/documenteditor/mobile/resources/less/material/_search.less b/apps/documenteditor/mobile/resources/less/material/_search.less deleted file mode 100644 index 93a72ea17..000000000 --- a/apps/documenteditor/mobile/resources/less/material/_search.less +++ /dev/null @@ -1,120 +0,0 @@ -// 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 diff --git a/apps/documenteditor/mobile/src/app.js b/apps/documenteditor/mobile/src/app.js new file mode 100644 index 000000000..7d923bd3a --- /dev/null +++ b/apps/documenteditor/mobile/src/app.js @@ -0,0 +1,45 @@ +// Import React and ReactDOM +import React, { Suspense } from 'react'; +import ReactDOM from 'react-dom'; + +// Import Framework7 +import Framework7 from 'framework7/lite-bundle'; +import { Dom7 } from 'framework7'; +window.$$ = Dom7; + +// Import Framework7-React Plugin +import Framework7React from 'framework7-react'; + +import jQuery from 'jquery'; +window.jQuery = jQuery; +window.$ = jQuery; + +// Import Framework7 Styles +import 'framework7/framework7-bundle.css'; + +// Import Icons and App Custom Styles +// import '../css/icons.css'; +import './less/app.less'; + +// Import App Component +import App from './view/app'; +import { I18nextProvider } from 'react-i18next'; +import i18n from './lib/i18n'; + +import { Provider } from 'mobx-react' +import { stores } from './store/mainStore' + +// Init F7 React Plugin +Framework7.use(Framework7React) + +// Mount React App +ReactDOM.render( + + + + + + + , + document.getElementById('app'), +); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/ContextMenu.jsx b/apps/documenteditor/mobile/src/controller/ContextMenu.jsx new file mode 100644 index 000000000..136679559 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/ContextMenu.jsx @@ -0,0 +1,262 @@ +import React, { useContext } from 'react'; +import { f7 } from 'framework7-react'; +import { inject, observer } from "mobx-react"; +import { withTranslation} from 'react-i18next'; +import { LocalStorage } from '../../../../common/mobile/utils/LocalStorage'; + +import ContextMenuController from '../../../../common/mobile/lib/controller/ContextMenu'; +import { idContextMenuElement } from '../../../../common/mobile/lib/view/ContextMenu'; +import { Device } from '../../../../common/mobile/utils/device'; +import EditorUIController from '../lib/patch'; + +@inject ( stores => ({ + isEdit: stores.storeAppOptions.isEdit, + canViewComments: stores.storeAppOptions.canViewComments, + canReview: stores.storeAppOptions.canReview, + users: stores.users, + isDisconnected: stores.users.isDisconnected +})) +class ContextMenu extends ContextMenuController { + constructor(props) { + super(props); + + // console.log('context menu controller created'); + this.onApiShowComment = this.onApiShowComment.bind(this); + this.onApiHideComment = this.onApiHideComment.bind(this); + this.onApiShowChange = this.onApiShowChange.bind(this); + this.getUserName = this.getUserName.bind(this); + } + + static closeContextMenu() { + f7.popover.close(idContextMenuElement, false); + } + + getUserName(id) { + const user = this.props.users.searchUserByCurrentId(id); + return Common.Utils.UserInfoParser.getParsedName(user.asc_getUserName()); + } + + componentWillUnmount() { + super.componentWillUnmount(); + + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onShowComment', this.onApiShowComment); + api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment); + api.asc_unregisterCallback('asc_onShowRevisionsChange', this.onApiShowChange); + } + + + onApiShowComment(comments) { + this.isComments = comments && comments.length > 0; + } + + onApiHideComment() { + this.isComments = false; + } + + onApiShowChange(sdkchange) { + this.inRevisionChange = sdkchange && sdkchange.length>0; + } + + // onMenuClosed() { + // super.onMenuClosed(); + // } + + onMenuItemClick(action) { + super.onMenuItemClick(action); + + if ( EditorUIController.ContextMenu && EditorUIController.ContextMenu.handleMenuItemClick(this, action) ) + return; + + const api = Common.EditorApi.get(); + switch (action) { + case 'cut': + if ( !LocalStorage.getBool("de-hide-copy-cut-paste-warning") ) + this.showCopyCutPasteModal(); + break; + case 'copy': + if (!api.Copy() && !LocalStorage.getBool("de-hide-copy-cut-paste-warning") ) + this.showCopyCutPasteModal(); + break; + case 'paste': + if ( !LocalStorage.getBool("de-hide-copy-cut-paste-warning") ) + this.showCopyCutPasteModal(); + break; + case 'viewcomment': + Common.Notifications.trigger('viewcomment'); + break; + case 'openlink': + const stack = api.getSelectedElements(); + let value; + stack.forEach((item) => { + if (item.get_ObjectType() == Asc.c_oAscTypeSelectElement.Hyperlink) { + value = item.get_ObjectValue().get_Value(); + } + }); + value && this.openLink(value); + break; + case 'review': + setTimeout(() => { + this.props.openOptions('coauth', 'cm-review'); + }, 400); + break; + case 'reviewchange': + setTimeout(() => { + this.props.openOptions('coauth', 'cm-review-change'); + }, 400); + break; + } + + console.log("click context menu item: " + action); + } + + showCopyCutPasteModal() { + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + f7.dialog.create({ + title: _t.textCopyCutPasteActions, + text: _t.errorCopyCutPaste, + content: `
          + + ${_t.textDoNotShowAgain} +
          `, + buttons: [{ + text: 'OK', + onClick: () => { + const dontShow = $$('input[name="checkbox-show"]').prop('checked'); + if (dontShow) LocalStorage.setItem("de-hide-copy-cut-paste-warning", 1); + } + }] + }).open(); + } + + showSplitModal() { + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + let picker; + const dialog = f7.dialog.create({ + title: _t.menuSplit, + text: '', + content: `
          +
          +
          ${_t.textColumns}
          +
          ${_t.textRows}
          +
          +
          +
          `, + buttons: [ + { + text: _t.menuCancel + }, + { + text: 'OK', + bold: true, + onClick: function () { + const size = picker.value; + Common.EditorApi.get().SplitCell(parseInt(size[0]), parseInt(size[1])); + } + } + ] + }).open(); + dialog.on('opened', () => { + picker = f7.picker.create({ + containerEl: document.getElementById('picker-split-size'), + cols: [ + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + }, + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + } + ], + toolbar: false, + rotateEffect: true, + value: [3, 3] + }); + }); + } + + openLink(url) { + if (Common.EditorApi.get().asc_getUrlType(url) > 0) { + const newDocumentPage = window.open(url, '_blank'); + if (newDocumentPage) { + newDocumentPage.focus(); + } + } + } + + onDocumentReady() { + super.onDocumentReady(); + + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onShowComment', this.onApiShowComment); + api.asc_registerCallback('asc_onHideComment', this.onApiHideComment); + api.asc_registerCallback('asc_onShowRevisionsChange', this.onApiShowChange); + } + + initMenuItems() { + if ( !Common.EditorApi ) return []; + const { isEdit } = this.props; + + if (isEdit && EditorUIController.ContextMenu) { + return EditorUIController.ContextMenu.mapMenuItems(this); + } else { + const { t } = this.props; + const _t = t("ContextMenu", {returnObjects: true}); + const { canViewComments } = this.props; + + const api = Common.EditorApi.get(); + const stack = api.getSelectedElements(); + const canCopy = api.can_CopyCut(); + + let itemsIcon = [], + itemsText = []; + + if ( canCopy ) { + itemsIcon.push({ + event: 'copy', + icon: 'icon-copy' + }); + } + + if ( canViewComments && this.isComments ) { + itemsText.push({ + caption: _t.menuViewComment, + event: 'viewcomment' + }); + } + + let isLink = false; + stack.forEach(item => { + const objectType = item.get_ObjectType(); + if ( objectType === Asc.c_oAscTypeSelectElement.Hyperlink ) { + isLink = true; + } + }); + + if ( isLink ) { + itemsText.push({ + caption: _t.menuOpenLink, + event: 'openlink' + }); + } + + return itemsIcon.concat(itemsText); + } + } + + initExtraItems () { + return (this.extraItems && this.extraItems.length > 0 ? this.extraItems : []); + } +} + +const _ContextMenu = withTranslation()(ContextMenu); +_ContextMenu.closeContextMenu = ContextMenu.closeContextMenu; +export { _ContextMenu as default }; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/Error.jsx b/apps/documenteditor/mobile/src/controller/Error.jsx new file mode 100644 index 000000000..ff499f251 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/Error.jsx @@ -0,0 +1,228 @@ +import React, { useEffect } from 'react'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; + +const ErrorController = inject('storeAppOptions')(({storeAppOptions, LoadingDocument}) => { + const {t} = useTranslation(); + const _t = t("Error", { returnObjects: true }); + + useEffect(() => { + Common.Notifications.on('engineCreated', (api) => { + api.asc_registerCallback('asc_onError', onError); + }); + return () => { + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onError', onError); + } + }); + + const onError = (id, level, errData) => { + if (id === Asc.c_oAscError.ID.LoadingScriptError) { + f7.notification.create({ + title: _t.criticalErrorTitle, + text: _t.scriptLoadError, + closeButton: true + }).open(); + return; + } + + Common.Notifications.trigger('preloader:close'); + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); + + const api = Common.EditorApi.get(); + + const config = { + closable: false + }; + + switch (id) + { + case Asc.c_oAscError.ID.Unknown: + config.msg = _t.unknownErrorText; + break; + + case Asc.c_oAscError.ID.ConvertationTimeout: + config.msg = _t.convertationTimeoutText; + break; + + case Asc.c_oAscError.ID.ConvertationOpenError: + config.msg = _t.openErrorText; + break; + + case Asc.c_oAscError.ID.ConvertationSaveError: + config.msg = _t.saveErrorText; + break; + + case Asc.c_oAscError.ID.DownloadError: + config.msg = _t.downloadErrorText; + break; + + case Asc.c_oAscError.ID.UplImageSize: + config.msg = _t.uploadImageSizeMessage; + break; + + case Asc.c_oAscError.ID.UplImageExt: + config.msg = _t.uploadImageExtMessage; + break; + + case Asc.c_oAscError.ID.UplImageFileCount: + config.msg = _t.uploadImageFileCountMessage; + break; + + case Asc.c_oAscError.ID.SplitCellMaxRows: + config.msg = _t.splitMaxRowsErrorText.replace('%1', errData.get_Value()); + break; + + case Asc.c_oAscError.ID.SplitCellMaxCols: + config.msg = _t.splitMaxColsErrorText.replace('%1', errData.get_Value()); + break; + + case Asc.c_oAscError.ID.SplitCellRowsDivider: + config.msg = _t.splitDividerErrorText.replace('%1', errData.get_Value()); + break; + + case Asc.c_oAscError.ID.VKeyEncrypt: + config.msg = _t.errorKeyEncrypt; + break; + + case Asc.c_oAscError.ID.KeyExpire: + config.msg = _t.errorKeyExpire; + break; + + case Asc.c_oAscError.ID.UserCountExceed: + config.msg = _t.errorUsersExceed; + break; + + case Asc.c_oAscError.ID.CoAuthoringDisconnect: + config.msg = _t.errorViewerDisconnect; + break; + + case Asc.c_oAscError.ID.ConvertationPassword: + config.msg = _t.errorFilePassProtect; + break; + + case Asc.c_oAscError.ID.StockChartError: + config.msg = _t.errorStockChart; + break; + + case Asc.c_oAscError.ID.DataRangeError: + config.msg = _t.errorDataRange; + break; + + case Asc.c_oAscError.ID.Database: + config.msg = _t.errorDatabaseConnection; + break; + + case Asc.c_oAscError.ID.UserDrop: + const lostEditingRights = storeAppOptions.lostEditingRights; + if (lostEditingRights) { + storeAppOptions.changeEditingRights(false); + return; + } + storeAppOptions.changeEditingRights(true); + config.msg = _t.errorUserDrop; + break; + + case Asc.c_oAscError.ID.MailMergeLoadFile: + config.msg = _t.errorMailMergeLoadFile; + break; + + case Asc.c_oAscError.ID.MailMergeSaveFile: + config.msg = _t.errorMailMergeSaveFile; + break; + + case Asc.c_oAscError.ID.Warning: + config.msg = _t.errorConnectToServer; + break; + + case Asc.c_oAscError.ID.UplImageUrl: + config.msg = _t.errorBadImageUrl; + break; + + case Asc.c_oAscError.ID.SessionAbsolute: + config.msg = _t.errorSessionAbsolute; + break; + + case Asc.c_oAscError.ID.SessionIdle: + config.msg = _t.errorSessionIdle; + break; + + case Asc.c_oAscError.ID.SessionToken: + config.msg = _t.errorSessionToken; + break; + + case Asc.c_oAscError.ID.DataEncrypted: + config.msg = _t.errorDataEncrypted; + break; + + case Asc.c_oAscError.ID.AccessDeny: + config.msg = _t.errorAccessDeny; + break; + + case Asc.c_oAscError.ID.EditingError: + config.msg = _t.errorEditingDownloadas; + break; + + case Asc.c_oAscError.ID.ConvertationOpenLimitError: + config.msg = _t.errorFileSizeExceed; + break; + + case Asc.c_oAscError.ID.UpdateVersion: + config.msg = _t.errorUpdateVersionOnDisconnect; + break; + + default: + config.msg = _t.errorDefaultMessage.replace('%1', id); + break; + } + + if (level === Asc.c_oAscError.Level.Critical) { + + // report only critical errors + Common.Gateway.reportError(id, config.msg); + + config.title = _t.criticalErrorTitle; + + if (storeAppOptions.canBackToFolder && !storeAppOptions.isDesktopApp) { + config.msg += '

          ' + _t.criticalErrorExtText; + config.callback = function() { + Common.Notifications.trigger('goback', true); + } + } + if (id === Asc.c_oAscError.ID.DataEncrypted) { + api.asc_coAuthoringDisconnect(); + Common.Notifications.trigger('api:disconnect'); + } + } + else { + Common.Gateway.reportWarning(id, config.msg); + + config.title = _t.notcriticalErrorTitle; + config.callback = (btn) => { + if (id === Asc.c_oAscError.ID.Warning && btn === 'ok' && (storeAppOptions.canDownload || storeAppOptions.canDownloadOrigin)) { + api.asc_DownloadOrigin(); + } + storeAppOptions.changeEditingRights(false); + }; + } + + f7.dialog.create({ + cssClass: 'error-dialog', + title : config.title, + text : config.msg, + buttons: [ + { + text: 'OK', + onClick: config.callback + } + ] + }).open(); + + Common.component.Analytics.trackEvent('Internal Error', id.toString()); + }; + + return null +}); + +export default ErrorController; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/LongActions.jsx b/apps/documenteditor/mobile/src/controller/LongActions.jsx new file mode 100644 index 000000000..94dca84c8 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/LongActions.jsx @@ -0,0 +1,197 @@ +import React, { useEffect } from 'react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import IrregularStack from "../../../../common/mobile/utils/IrregularStack"; + +const LongActionsController = () => { + const {t} = useTranslation(); + const _t = t("LongActions", { returnObjects: true }); + + const ApplyEditRights = -255; + const LoadingDocument = -256; + + const stackLongActions = new IrregularStack({ + strongCompare : function(obj1, obj2){return obj1.id === obj2.id && obj1.type === obj2.type;}, + weakCompare : function(obj1, obj2){return obj1.type === obj2.type;} + }); + + let loadMask = null; + + const closePreloader = () => { + if (loadMask && loadMask.el) { + f7.dialog.close(loadMask.el); + } + }; + + useEffect( () => { + Common.Notifications.on('engineCreated', (api) => { + api.asc_registerCallback('asc_onStartAction', onLongActionBegin); + api.asc_registerCallback('asc_onEndAction', onLongActionEnd); + api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument); + }); + Common.Notifications.on('preloader:endAction', onLongActionEnd); + Common.Notifications.on('preloader:beginAction', onLongActionBegin); + Common.Notifications.on('preloader:close', closePreloader); + + return ( () => { + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onStartAction', onLongActionBegin); + api.asc_unregisterCallback('asc_onEndAction', onLongActionEnd); + api.asc_unregisterCallback('asc_onOpenDocumentProgress', onOpenDocument); + + Common.Notifications.off('preloader:endAction', onLongActionEnd); + Common.Notifications.off('preloader:beginAction', onLongActionBegin); + Common.Notifications.off('preloader:close', closePreloader); + }) + }); + + const onLongActionBegin = (type, id) => { + const action = {id: id, type: type}; + stackLongActions.push(action); + setLongActionView(action); + }; + + const onLongActionEnd = (type, id) => { + let action = {id: id, type: type}; + stackLongActions.pop(action); + + //this.updateWindowTitle(true); + + action = stackLongActions.get({type: Asc.c_oAscAsyncActionType.Information}); + + if (action) { + setLongActionView(action) + } + + action = stackLongActions.get({type: Asc.c_oAscAsyncActionType.BlockInteraction}); + + if (action) { + setLongActionView(action) + } else { + loadMask && loadMask.el && loadMask.el.classList.contains('modal-in') && f7.dialog.close(loadMask.el); + } + }; + + const setLongActionView = (action) => { + let title = ''; + let text = ''; + switch (action.id) { + case Asc.c_oAscAsyncAction['Open']: + title = _t.openTitleText; + text = _t.openTextText; + break; + + case Asc.c_oAscAsyncAction['Save']: + title = _t.saveTitleText; + text = _t.saveTextText; + break; + + case Asc.c_oAscAsyncAction['LoadDocumentFonts']: + title = _t.loadFontsTitleText; + text = _t.loadFontsTextText; + break; + + case Asc.c_oAscAsyncAction['LoadDocumentImages']: + title = _t.loadImagesTitleText; + text = _t.loadImagesTextText; + break; + + case Asc.c_oAscAsyncAction['LoadFont']: + title = _t.loadFontTitleText; + text = _t.loadFontTextText; + break; + + case Asc.c_oAscAsyncAction['LoadImage']: + title = _t.loadImageTitleText; + text = _t.loadImageTextText; + break; + + case Asc.c_oAscAsyncAction['DownloadAs']: + title = _t.downloadTitleText; + text = _t.downloadTextText; + break; + + case Asc.c_oAscAsyncAction['Print']: + title = _t.printTitleText; + text = _t.printTextText; + break; + + case Asc.c_oAscAsyncAction['UploadImage']: + title = _t.uploadImageTitleText; + text = _t.uploadImageTextText; + break; + + case Asc.c_oAscAsyncAction['ApplyChanges']: + title = _t.applyChangesTitleText; + text = _t.applyChangesTextText; + break; + + case Asc.c_oAscAsyncAction['PrepareToSave']: + title = _t.savePreparingText; + text = _t.savePreparingTitle; + break; + + case Asc.c_oAscAsyncAction['MailMergeLoadFile']: + title = _t.mailMergeLoadFileText; + text = _t.mailMergeLoadFileTitle; + break; + + case Asc.c_oAscAsyncAction['DownloadMerge']: + title = _t.downloadMergeTitle; + text = _t.downloadMergeText; + break; + + case Asc.c_oAscAsyncAction['SendMailMerge']: + title = _t.sendMergeTitle; + text = _t.sendMergeText; + break; + + case Asc.c_oAscAsyncAction['Waiting']: + title = _t.waitText; + text = _t.waitText; + break; + + case ApplyEditRights: + title = _t.txtEditingMode; + text = _t.txtEditingMode; + break; + + case LoadingDocument: + title = _t.loadingDocumentTitleText; + text = _t.loadingDocumentTextText; + break; + default: + if (typeof action.id == 'string'){ + title = action.id; + text = action.id; + } + break; + } + + if (action.type === Asc.c_oAscAsyncActionType['BlockInteraction']) { + if (action.id === Asc.c_oAscAsyncAction['ApplyChanges']) { + return; + } + + if (loadMask && loadMask.el && loadMask.el.classList.contains('modal-in')) { + loadMask.el.getElementsByClassName('dialog-title')[0].innerHTML = title; + } else { + loadMask = f7.dialog.preloader(title); + } + } + + }; + + const onOpenDocument = (progress) => { + if (loadMask && loadMask.el) { + const $title = loadMask.el.getElementsByClassName('dialog-title')[0]; + const proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount()); + + $title.innerHTML = `${_t.textLoadingDocument}: ${Math.min(Math.round(proc * 100), 100)}%`; + } + } + + return null; +}; + +export default LongActionsController; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/Main.jsx b/apps/documenteditor/mobile/src/controller/Main.jsx new file mode 100644 index 000000000..1fae868f3 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/Main.jsx @@ -0,0 +1,814 @@ + +import React, {Component, Fragment} from 'react'; +import {inject} from "mobx-react"; +import { f7 } from "framework7-react"; +import { withTranslation } from 'react-i18next'; +import { LocalStorage } from '../../../../common/mobile/utils/LocalStorage'; +import CollaborationController from '../../../../common/mobile/lib/controller/collaboration/Collaboration.jsx'; +import {InitReviewController as ReviewController} from '../../../../common/mobile/lib/controller/collaboration/Review.jsx'; +import { onAdvancedOptions } from './settings/Download.jsx'; +import { + CommentsController, + ViewCommentsController +} from "../../../../common/mobile/lib/controller/collaboration/Comments"; +import About from '../../../../common/mobile/lib/view/About'; +import EditorUIController from '../lib/patch'; +import ErrorController from "./Error"; +import LongActionsController from "./LongActions"; +import PluginsController from '../../../../common/mobile/lib/controller/Plugins.jsx'; + +@inject( + "storeAppOptions", + "storeDocumentSettings", + "storeFocusObjects", + "storeTextSettings", + "storeParagraphSettings", + "storeTableSettings", + "storeDocumentInfo", + "storeChartSettings", + "storeApplicationSettings" + ) +class MainController extends Component { + constructor(props) { + super(props); + window.editorType = 'de'; + + this.LoadingDocument = -256; + + this._state = { + licenseType: false, + isFromGatewayDownloadAs: false, + isDocModified: false + }; + + this.defaultTitleText = __APP_TITLE_TEXT__; + + const { t } = this.props; + this._t = t('Main', {returnObjects:true}); + } + + initSdk() { + const script = document.createElement("script"); + script.src = "../../../../sdkjs/develop/sdkjs/word/scripts.js"; + script.async = true; + script.onload = () => { + let dep_scripts = ['../../../vendor/xregexp/xregexp-all-min.js', + '../../../vendor/sockjs/sockjs.min.js', + '../../../vendor/jszip/jszip.min.js', + '../../../vendor/jszip-utils/jszip-utils.min.js']; + dep_scripts.push(...sdk_scripts); + + const promise_get_script = (scriptpath) => { + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = scriptpath; + script.onload = () => { + resolve('ok'); + }; + script.onerror = () => { + reject('error'); + }; + + document.body.appendChild(script); + }); + }; + + const loadConfig = data => { + EditorUIController.isSupportEditFeature(); + console.log('load config'); + + this.editorConfig = Object.assign({}, this.editorConfig, data.config); + + this.props.storeAppOptions.setConfigOptions(this.editorConfig); + + this.editorConfig.lang && this.api.asc_setLocale(this.editorConfig.lang); + + let value = LocalStorage.getItem("de-mobile-macros-mode"); + if (value === null) { + value = this.editorConfig.customization ? this.editorConfig.customization.macrosMode : 'warn'; + value = (value === 'enable') ? 1 : (value === 'disable' ? 2 : 0); + } else { + value = parseInt(value); + } + this.props.storeApplicationSettings.changeMacrosSettings(value); + + Common.Notifications.trigger('configOptionsFill'); + }; + + const loadDocument = data => { + this.permissions = {}; + this.document = data.doc; + + let docInfo = {}; + + if (data.doc) { + this.permissions = Object.assign(this.permissions, data.doc.permissions); + + const _permissions = Object.assign({}, data.doc.permissions); + const _userOptions = this.props.storeAppOptions.user; + const _user = new Asc.asc_CUserInfo(); + _user.put_Id(_userOptions.id); + _user.put_FullName(_userOptions.fullname); + + docInfo = new Asc.asc_CDocInfo(); + docInfo.put_Id(data.doc.key); + docInfo.put_Url(data.doc.url); + docInfo.put_Title(data.doc.title); + docInfo.put_Format(data.doc.fileType); + docInfo.put_VKey(data.doc.vkey); + docInfo.put_Options(data.doc.options); + docInfo.put_UserInfo(_user); + docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); + docInfo.put_Token(data.doc.token); + docInfo.put_Permissions(_permissions); + docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); + + let enable = !this.editorConfig.customization || (this.editorConfig.customization.macros !== false); + docInfo.asc_putIsEnabledMacroses(!!enable); + enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins !== false); + docInfo.asc_putIsEnabledPlugins(!!enable); + + const type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType); + if (type && typeof type[1] === 'string') { + this.permissions.edit = this.permissions.review = false; + } + } + + this.api.asc_registerCallback('asc_onGetEditorPermissions', onEditorPermissions); + this.api.asc_registerCallback('asc_onDocumentContentReady', onDocumentContentReady); + this.api.asc_registerCallback('asc_onLicenseChanged', this.onLicenseChanged.bind(this)); + this.api.asc_registerCallback('asc_onRunAutostartMacroses', this.onRunAutostartMacroses.bind(this)); + this.api.asc_setDocInfo(docInfo); + this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId); + + // Document Info + + const storeDocumentInfo = this.props.storeDocumentInfo; + + storeDocumentInfo.setDataDoc(this.document); + + // Common.SharedSettings.set('document', data.doc); + + if (data.doc) { + Common.Notifications.trigger('setdoctitle', data.doc.title); + if (data.doc.info) { + data.doc.info.author && console.log("Obsolete: The 'author' parameter of the document 'info' section is deprecated. Please use 'owner' instead."); + data.doc.info.created && console.log("Obsolete: The 'created' parameter of the document 'info' section is deprecated. Please use 'uploaded' instead."); + } + } + }; + + const onEditorPermissions = params => { + const licType = params.asc_getLicenseType(); + + // check licType + if (Asc.c_oLicenseResult.Expired === licType || + Asc.c_oLicenseResult.Error === licType || + Asc.c_oLicenseResult.ExpiredTrial === licType) { + f7.dialog.create({ + title : this._t.titleLicenseExp, + text : this._t.warnLicenseExp + }).open(); + return; + } + if (Asc.c_oLicenseResult.ExpiredLimited === licType) { + this._state.licenseType = licType; + } + + if ( this.onServerVersion(params.asc_getBuildVersion()) ) return; + + this.appOptions.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); + + const storeAppOptions = this.props.storeAppOptions; + + storeAppOptions.setPermissionOptions(this.document, licType, params, this.permissions); + + this.applyMode(storeAppOptions); + + this.api.asc_LoadDocument(); + this.api.Resize(); + }; + + const onDocumentContentReady = () => { + if (this._isDocReady) + return; + + const appOptions = this.props.storeAppOptions; + const appSettings = this.props.storeApplicationSettings; + + f7.emit('resize'); + + this._isDocReady = true; + + this.api.SetDrawingFreeze(false); + + Common.Notifications.trigger('preloader:close'); + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + + let value = LocalStorage.getItem("de-settings-zoom"); + const zf = (value !== null) ? parseInt(value) : (appOptions.customization && appOptions.customization.zoom ? parseInt(appOptions.customization.zoom) : 100); + (zf === -1) ? this.api.zoomFitToPage() : ((zf === -2) ? this.api.zoomFitToWidth() : this.api.zoom(zf>0 ? zf : 100)); + + value = LocalStorage.getBool("de-mobile-spellcheck", !(appOptions.customization && appOptions.customization.spellcheck === false)); + appSettings.changeSpellCheck(value); + this.api.asc_setSpellCheck(value); + + this.updateWindowTitle(true); + + this.api.SetTextBoxInputMode(LocalStorage.getBool("de-settings-inputmode")); + + value = LocalStorage.getBool("de-mobile-no-characters"); + appSettings.changeNoCharacters(value); + this.api.put_ShowParaMarks(value); + + value = LocalStorage.getBool("de-mobile-hidden-borders"); + appSettings.changeShowTableEmptyLine(value); + this.api.put_ShowTableEmptyLine(value); + + if (appOptions.isEdit && this.needToUpdateVersion) { + Common.Notifications.trigger('api:disconnect'); + } + + Common.Gateway.on('processsaveresult', this.onProcessSaveResult.bind(this)); + Common.Gateway.on('processrightschange', this.onProcessRightsChange.bind(this)); + Common.Gateway.on('downloadas', this.onDownloadAs.bind(this)); + Common.Gateway.on('requestclose', this.onRequestClose.bind(this)); + + Common.Gateway.sendInfo({ + mode: appOptions.isEdit ? 'edit' : 'view' + }); + + this.api.Resize(); + this.api.zoomFitToWidth(); + this.api.asc_GetDefaultTableStyles && setTimeout(() => {this.api.asc_GetDefaultTableStyles()}, 1); + + this.applyLicense(); + + Common.Notifications.trigger('document:ready'); + Common.Gateway.documentReady(); + }; + + const _process_array = (array, fn) => { + let results = []; + return array.reduce(function(p, item) { + return p.then(function() { + return fn(item).then(function(data) { + results.push(data); + return results; + }); + }); + }, Promise.resolve()); + }; + + _process_array(dep_scripts, promise_get_script) + .then ( result => { + window["flat_desine"] = true; + const {t} = this.props; + this.api = new Asc.asc_docs_api({ + 'id-view' : 'editor_sdk', + 'mobile' : true, + 'translate': t('Main.SDK', {returnObjects:true}) + }); + + Common.Notifications.trigger('engineCreated', this.api); + Common.EditorApi = {get: () => this.api}; + + // Set font rendering mode + let value = LocalStorage.getItem("de-settings-fontrender"); + if (value === null) { + value = window.devicePixelRatio > 1 ? '1' : '0'; + } + switch (value) { + case '0': this.api.SetFontRenderingMode(3); break; + case '1': this.api.SetFontRenderingMode(1); break; + case '2': this.api.SetFontRenderingMode(2); break; + } + + Common.Utils.Metric.setCurrentMetric(1); //pt + + this.appOptions = {}; + this.bindEvents(); + + Common.Gateway.on('init', loadConfig); + Common.Gateway.on('showmessage', this.onExternalMessage.bind(this)); + Common.Gateway.on('opendocument', loadDocument); + Common.Gateway.appReady(); + + Common.Gateway.on('internalcommand', function(data) { + if (data.command === 'hardBack') { + if ($$('.modal-in').length > 0) { + if ( !($$('.error-dialog.modal-in').length > 0) ) { + f7.dialog.close(); + } + Common.Gateway.internalMessage('hardBack', false); + } else + Common.Gateway.internalMessage('hardBack', true); + } + }); + Common.Gateway.internalMessage('listenHardBack'); + }, error => { + console.log('promise failed ' + error); + }); + }; + + script.onerror = () => { + console.log('error'); + }; + + document.body.appendChild(script); + } + + applyMode (appOptions) { + this.api.asc_enableKeyEvents(appOptions.isEdit); + this.api.asc_setViewMode(!appOptions.isEdit && !appOptions.isRestrictedEdit); + appOptions.isRestrictedEdit && appOptions.canComments && this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyComments); + appOptions.isRestrictedEdit && appOptions.canFillForms && this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyForms); + + // Set units + let value = LocalStorage.getItem('de-mobile-settings-unit'); + value = (value !== null) ? parseInt(value) : (appOptions.customization && appOptions.customization.unit ? Common.Utils.Metric.c_MetricUnits[appOptions.customization.unit.toLocaleLowerCase()] : Common.Utils.Metric.getDefaultMetric()); + (value === undefined) && (value = Common.Utils.Metric.getDefaultMetric()); + Common.Utils.Metric.setCurrentMetric(value); + this.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)); + + this.api.asc_registerCallback('asc_onDocumentModifiedChanged', this.onDocumentModifiedChanged.bind(this)); + this.api.asc_registerCallback('asc_onDocumentCanSaveChanged', this.onDocumentCanSaveChanged.bind(this)); + + //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 = this.onBeforeUnload.bind(this); + window.onunload = this.onUnload.bind(this); + } + + onDocumentModifiedChanged () { + const isModified = this.api.asc_isDocumentCanSave(); + if (this._state.isDocModified !== isModified) { + this._isDocReady && Common.Gateway.setDocumentModified(this.api.isDocumentModified()); + } + + this.updateWindowTitle(); + } + + onDocumentCanSaveChanged (isCanSave) { + // + } + + onBeforeUnload () { + LocalStorage.save(); + + if (this.api.isDocumentModified()) { + this.api.asc_stopSaving(); + this.continueSavingTimer = window.setTimeout(() => { + this.api.asc_continueSaving(); + }, 500); + + return this._t.leavePageText; + } + } + + onUnload () { + if (this.continueSavingTimer) + clearTimeout(this.continueSavingTimer); + } + + onLicenseChanged (params) { + const appOptions = this.props.storeAppOptions; + const licType = params.asc_getLicenseType(); + if (licType !== undefined && appOptions.canEdit && appOptions.config.mode !== 'view' && + (licType === Asc.c_oLicenseResult.Connections || licType === Asc.c_oLicenseResult.UsersCount || licType === Asc.c_oLicenseResult.ConnectionsOS || licType === Asc.c_oLicenseResult.UsersCountOS + || licType === Asc.c_oLicenseResult.SuccessLimit && (appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0)) + this._state.licenseType = licType; + if (this._isDocReady && this._state.licenseType) + this.applyLicense(); + } + + applyLicense () { + const _t = this._t; + const warnNoLicense = _t.warnNoLicense.replace(/%1/g, __COMPANY_NAME__); + const warnNoLicenseUsers = _t.warnNoLicenseUsers.replace(/%1/g, __COMPANY_NAME__); + const textNoLicenseTitle = _t.textNoLicenseTitle.replace(/%1/g, __COMPANY_NAME__); + const warnLicenseExceeded = _t.warnLicenseExceeded.replace(/%1/g, __COMPANY_NAME__); + const warnLicenseUsersExceeded = _t.warnLicenseUsersExceeded.replace(/%1/g, __COMPANY_NAME__); + + const appOptions = this.props.storeAppOptions; + if (appOptions.config.mode !== 'view' && !EditorUIController.isSupportEditFeature()) { + let value = LocalStorage.getItem("de-opensource-warning"); + value = (value !== null) ? parseInt(value) : 0; + const now = (new Date).getTime(); + if (now - value > 86400000) { + LocalStorage.setItem("de-opensource-warning", now); + f7.dialog.create({ + title: _t.notcriticalErrorTitle, + text : _t.errorOpensource, + buttons: [{text: 'OK'}] + }).open(); + } + Common.Notifications.trigger('toolbar:activatecontrols'); + return; + } + + if (this._state.licenseType) { + let license = this._state.licenseType; + let buttons = [{text: 'OK'}]; + if ((appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0 && + (license === Asc.c_oLicenseResult.SuccessLimit || + license === Asc.c_oLicenseResult.ExpiredLimited || + appOptions.permissionsLicense === Asc.c_oLicenseResult.SuccessLimit) + ) { + license = (license === Asc.c_oLicenseResult.ExpiredLimited) ? _t.warnLicenseLimitedNoAccess : _t.warnLicenseLimitedRenewed; + } else if (license === Asc.c_oLicenseResult.Connections || license === Asc.c_oLicenseResult.UsersCount) { + license = (license===Asc.c_oLicenseResult.Connections) ? warnLicenseExceeded : warnLicenseUsersExceeded; + } else { + license = (license === Asc.c_oLicenseResult.ConnectionsOS) ? warnNoLicense : warnNoLicenseUsers; + buttons = [{ + text: _t.textBuyNow, + bold: true, + onClick: function() { + window.open(`${__PUBLISHER_URL__}`, "_blank"); + } + }, + { + text: _t.textContactUs, + onClick: function() { + window.open(`mailto:${__SALES_EMAIL__}`, "_blank"); + } + }]; + } + if (this._state.licenseType === Asc.c_oLicenseResult.SuccessLimit) { + Common.Notifications.trigger('toolbar:activatecontrols'); + } else { + Common.Notifications.trigger('toolbar:activatecontrols'); + Common.Notifications.trigger('toolbar:deactivateeditcontrols'); + Common.Notifications.trigger('api:disconnect'); + } + + let value = LocalStorage.getItem("de-license-warning"); + value = (value !== null) ? parseInt(value) : 0; + const now = (new Date).getTime(); + + if (now - value > 86400000) { + LocalStorage.setItem("de-license-warning", now); + f7.dialog.create({ + title: textNoLicenseTitle, + text : license, + buttons: buttons + }).open(); + } + } else { + if (!appOptions.isDesktopApp && !appOptions.canBrandingExt && + appOptions.config && appOptions.config.customization && (appOptions.config.customization.loaderName || appOptions.config.customization.loaderLogo)) { + f7.dialog.create({ + title: _t.textPaidFeature, + text : _t.textCustomLoader, + buttons: [{ + text: _t.textContactUs, + bold: true, + onClick: () => { + window.open(`mailto:${__SALES_EMAIL__}`, "_blank"); + } + }, + { text: _t.textClose }] + }).open(); + } + Common.Notifications.trigger('toolbar:activatecontrols'); + } + } + + onServerVersion (buildVersion) { + if (this.changeServerVersion) return true; + const _t = this._t; + + if (About.appVersion() !== buildVersion && !About.compareVersions()) { + this.changeServerVersion = true; + f7.dialog.alert( + _t.errorServerVersion, + _t.titleServerVersion, + () => { + setTimeout(() => {Common.Gateway.updateVersion()}, 0); + }); + return true; + } + return false; + } + + bindEvents() { + this.api.asc_registerCallback('asc_onDocumentUpdateVersion', this.onUpdateVersion.bind(this)); + this.api.asc_registerCallback('asc_onServerVersion', this.onServerVersion.bind(this)); + this.api.asc_registerCallback('asc_onDocumentName', this.onDocumentName.bind(this)); + this.api.asc_registerCallback('asc_onPrintUrl', this.onPrintUrl.bind(this)); + this.api.asc_registerCallback('asc_onPrint', this.onPrint.bind(this)); + + EditorUIController.initThemeColors && EditorUIController.initThemeColors(); + + this.api.asc_registerCallback('asc_onDownloadUrl', this.onDownloadUrl.bind(this)); + + const storeDocumentSettings = this.props.storeDocumentSettings; + this.api.asc_registerCallback('asc_onPageOrient', isPortrait => { + storeDocumentSettings.resetPortrait(isPortrait); + }); + this.api.asc_registerCallback('asc_onDocSize', (w, h) => { + storeDocumentSettings.changeDocSize(w, h); + }); + + //text settings + const storeTextSettings = this.props.storeTextSettings; + EditorUIController.initFonts && EditorUIController.initFonts(storeTextSettings); + EditorUIController.initFocusObjects && EditorUIController.initFocusObjects(this.props.storeFocusObjects); + + this.api.asc_registerCallback('asc_onVerticalAlign', (typeBaseline) => { + storeTextSettings.resetTypeBaseline(typeBaseline); + }); + this.api.asc_registerCallback('asc_onListType', (data) => { + let type = data.get_ListType(); + let subtype = data.get_ListSubType(); + storeTextSettings.resetListType(type); + switch (type) { + case 0: + storeTextSettings.resetBullets(subtype); + storeTextSettings.resetNumbers(-1); + break; + case 1: + storeTextSettings.resetNumbers(subtype); + storeTextSettings.resetBullets(-1); + break; + default: + storeTextSettings.resetBullets(-1); + storeTextSettings.resetNumbers(-1); + } + }); + this.api.asc_registerCallback('asc_onPrAlign', (align) => { + storeTextSettings.resetParagraphAlign(align); + }); + this.api.asc_registerCallback('asc_onTextColor', (color) => { + storeTextSettings.resetTextColor(color); + }); + this.api.asc_registerCallback('asc_onParaSpacingLine', (vc) => { + storeTextSettings.resetLineSpacing(vc); + }); + this.api.asc_registerCallback('asc_onTextShd', (shd) => { + let color = shd.get_Color(); + storeTextSettings.resetBackgroundColor(color); + }); + + //paragraph settings + EditorUIController.initEditorStyles && EditorUIController.initEditorStyles(this.props.storeParagraphSettings); + + //table settings + EditorUIController.initTableTemplates && EditorUIController.initTableTemplates(this.props.storeTableSettings); + + //chart settings + EditorUIController.updateChartStyles && EditorUIController.updateChartStyles(this.props.storeChartSettings, this.props.storeFocusObjects); + + // Document Info + + const storeDocumentInfo = this.props.storeDocumentInfo; + + this.api.asc_registerCallback("asc_onGetDocInfoStart", () => { + storeDocumentInfo.switchIsLoaded(false); + }); + + this.api.asc_registerCallback("asc_onGetDocInfoStop", () => { + storeDocumentInfo.switchIsLoaded(true); + }); + + this.api.asc_registerCallback("asc_onDocInfo", (obj) => { + storeDocumentInfo.changeCount(obj); + }); + + this.api.asc_registerCallback('asc_onGetDocInfoEnd', () => { + storeDocumentInfo.switchIsLoaded(true); + }); + + // Color Schemes + + this.api.asc_registerCallback('asc_onSendThemeColorSchemes', (arr) => { + storeDocumentSettings.addSchemes(arr); + }); + + // Downloaded Advanced Options + this.api.asc_registerCallback('asc_onAdvancedOptions', (type, advOptions, mode, formatOptions) => { + const {t} = this.props; + const _t = t("Settings", { returnObjects: true }); + onAdvancedOptions(type, advOptions, mode, formatOptions, _t, this.props.storeAppOptions.canRequestClose); + }); + } + + onProcessSaveResult (data) { + this.api.asc_OnSaveEnd(data.result); + + if (data && data.result === false) { + const _t = this._t; + f7.dialog.alert( + (!data.message) ? _t.errorProcessSaveResult : data.message, + _t.criticalErrorTitle + ); + } + } + + onProcessRightsChange (data) { + if (data && data.enabled === false) { + const appOptions = this.props.storeAppOptions; + const old_rights = appOptions.lostEditingRights; + appOptions.changeEditingRights(!old_rights); + this.api.asc_coAuthoringDisconnect(); + Common.Notifications.trigger('api:disconnect'); + + if (!old_rights) { + const _t = this._t; + f7.dialog.alert( + (!data.message) ? _t.warnProcessRightsChange : data.message, + _t.notcriticalErrorTitle, + () => { appOptions.changeEditingRights(false); } + ); + } + } + } + + onDownloadAs () { + const appOptions = this.props.storeAppOptions; + if ( !appOptions.canDownload && !appOptions.canDownloadOrigin) { + Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, this._t.errorAccessDeny); + return; + } + + this._state.isFromGatewayDownloadAs = true; + const type = /^(?:(pdf|djvu|xps))$/.exec(this.document.fileType); + + if (type && typeof type[1] === 'string') { + this.api.asc_DownloadOrigin(true); + } else { + this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.DOCX, true)); + } + } + + onDownloadUrl () { + if (this._state.isFromGatewayDownloadAs) { + Common.Gateway.downloadAs(url); + } + + this._state.isFromGatewayDownloadAs = false; + } + + onRequestClose () { + Common.Gateway.requestClose(); + } + + onUpdateVersion (callback) { + const _t = this._t; + + this.needToUpdateVersion = true; + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + + f7.dialog.alert( + _t.errorUpdateVersion, + _t.titleUpdateVersion, + () => { + Common.Gateway.updateVersion(); + if (callback) { + callback.call(this); + } + Common.Notifications.trigger('preloader:beginAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + }); + } + + onDocumentName () { + this.updateWindowTitle(true); + } + + updateWindowTitle (force) { + const isModified = this.api.isDocumentModified(); + if (this._state.isDocModified !== isModified || force) { + const title = this.defaultTitleText; + + if (window.document.title != title) { + window.document.title = title; + } + + this._isDocReady && (this._state.isDocModified !== isModified) && Common.Gateway.setDocumentModified(isModified); + this._state.isDocModified = isModified; + } + } + + onPrint () { + if (!this.props.storeAppOptions.canPrint) return; + + if (this.api) + this.api.asc_Print(); + Common.component.Analytics.trackEvent('Print'); + } + + onPrintUrl (url) { + if (this.iframePrint) { + this.iframePrint.parentNode.removeChild(this.iframePrint); + this.iframePrint = null; + } + + if (!this.iframePrint) { + this.iframePrint = document.createElement("iframe"); + this.iframePrint.id = "id-print-frame"; + this.iframePrint.style.display = 'none'; + this.iframePrint.style.visibility = "hidden"; + this.iframePrint.style.position = "fixed"; + this.iframePrint.style.right = "0"; + this.iframePrint.style.bottom = "0"; + document.body.appendChild(this.iframePrint); + this.iframePrint.onload = function() { + this.iframePrint.contentWindow.focus(); + this.iframePrint.contentWindow.print(); + this.iframePrint.contentWindow.blur(); + window.focus(); + }; + } + + if (url) { + this.iframePrint.src = url; + } + } + + onExternalMessage (msg) { + if (msg && msg.msg) { + msg.msg = (msg.msg).toString(); + f7.notification.create({ + //title: uiApp.params.modalTitle, + text: [msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)], + closeButton: true + }).open(); + + Common.component.Analytics.trackEvent('External Error'); + } + } + + onRunAutostartMacroses () { + const config = this.props.storeAppOptions.config; + const enable = !config.customization || (config.customization.macros !== false); + if (enable) { + const value = this.props.storeApplicationSettings.macrosMode; + if (value === 1) { + this.api.asc_runAutostartMacroses(); + } else if (value === 0) { + const _t = this._t; + f7.dialog.create({ + title: _t.notcriticalErrorTitle, + text: _t.textHasMacros, + content: `
          + + ${_t.textRemember} +
          `, + buttons: [{ + text: _t.textYes, + onClick: () => { + const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked'); + if (dontshow) { + this.props.storeApplicationSettings.changeMacrosSettings(1); + LocalStorage.setItem("de-mobile-macros-mode", 1); + } + setTimeout(() => { + this.api.asc_runAutostartMacroses(); + }, 1); + }}, + { + text: _t.textNo, + onClick: () => { + const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked'); + if (dontshow) { + this.props.storeApplicationSettings.changeMacrosSettings(2); + LocalStorage.setItem("de-mobile-macros-mode", 2); + } + } + }] + }).open(); + } + } + } + + render() { + return ( + + + + + + + {EditorUIController.getEditCommentControllers && EditorUIController.getEditCommentControllers()} + + + + ) + } + + componentDidMount() { + this.initSdk(); + } +} + +const translated = withTranslation()(MainController); +export {translated as MainController}; diff --git a/apps/documenteditor/mobile/src/controller/Search.jsx b/apps/documenteditor/mobile/src/controller/Search.jsx new file mode 100644 index 000000000..a61230b9f --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/Search.jsx @@ -0,0 +1,120 @@ +import React from 'react'; +import { List, ListItem, Toggle, Page, Navbar, NavRight, Link } from 'framework7-react'; +import { SearchController, SearchView, SearchSettingsView } from '../../../../common/mobile/lib/controller/Search'; +import { f7 } from 'framework7-react'; +import { withTranslation } from 'react-i18next'; +import { Device } from '../../../../common/mobile/utils/device'; + +class SearchSettings extends SearchSettingsView { + constructor(props) { + super(props); + + this.onToggleMarkResults = this.onToggleMarkResults.bind(this); + } + + onToggleMarkResults(checked) { + const api = Common.EditorApi.get(); + api.asc_selectSearchingResults(checked); + } + + extraSearchOptions() { + const anc_markup = super.extraSearchOptions(); + const show_popover = !Device.phone; + const { t } = this.props; + const _t = t("Settings", {returnObjects: true}); + + const markup = ( + + + {!show_popover && + + {_t.textDone} + + } + + + this.onFindReplaceClick('find')} /> + this.onFindReplaceClick('replace')} /> + this.onFindReplaceClick('replace-all')}> + + + + + + + + + + + ); + + return {...anc_markup, ...markup}; + } +} + +class DESearchView extends SearchView { + constructor(props) { + super(props); + } + + searchParams() { + let params = super.searchParams(); + + const checkboxCaseSensitive = f7.toggle.get('.toggle-case-sensitive'), + checkboxMarkResults = f7.toggle.get('.toggle-mark-results'); + const searchOptions = { + caseSensitive: checkboxCaseSensitive.checked, + highlight: checkboxMarkResults.checked + }; + + return {...params, ...searchOptions}; + } + + onSearchbarShow(isshowed, bar) { + super.onSearchbarShow(isshowed, bar); + + const api = Common.EditorApi.get(); + if ( isshowed ) { + const checkboxMarkResults = f7.toggle.get('.toggle-mark-results'); + api.asc_selectSearchingResults(checkboxMarkResults.checked); + } else api.asc_selectSearchingResults(false); + } +} + +const Search = withTranslation()(props => { + const { t } = props; + const _t = t('Settings', {returnObjects: true}); + + const onSearchQuery = params => { + const api = Common.EditorApi.get(); + + if (params.find && params.find.length) { + if (!api.asc_findText(params.find, params.forward, params.caseSensitive, params.highlight) ) { + f7.dialog.alert(null, _t.textNoTextFound); + } + } + }; + + const onReplaceQuery = params => { + const api = Common.EditorApi.get(); + + if (params.find && params.find.length) { + api.asc_replaceText(params.find, params.replace, false, params.caseSensitive, params.highlight); + } + } + + const onReplaceAllQuery = params => { + const api = Common.EditorApi.get(); + + if (params.find && params.find.length) { + api.asc_replaceText(params.find, params.replace, true, params.caseSensitive, params.highlight); + } + } + + return +}); + +const SearchSettingsWithTranslation = withTranslation()(SearchSettings); + +export {Search, SearchSettingsWithTranslation as SearchSettings} diff --git a/apps/documenteditor/mobile/src/controller/Toolbar.jsx b/apps/documenteditor/mobile/src/controller/Toolbar.jsx new file mode 100644 index 000000000..30d47b86b --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/Toolbar.jsx @@ -0,0 +1,199 @@ +import React, { useEffect, useState } from 'react'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import ToolbarView from "../view/Toolbar"; + +const ToolbarController = inject('storeAppOptions', 'users', 'storeReview')(props => { + const {t} = useTranslation(); + const _t = t("Toolbar", { returnObjects: true }); + + const appOptions = props.storeAppOptions; + const isDisconnected = props.users.isDisconnected; + const displayMode = props.storeReview.displayMode; + const stateDisplayMode = displayMode == "final" || displayMode == "original" ? true : false; + const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments || appOptions.canReview || appOptions.canViewReview; + const readerMode = appOptions.readerMode; + + useEffect(() => { + const onDocumentReady = () => { + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onCanUndo', onApiCanUndo); + api.asc_registerCallback('asc_onCanRedo', onApiCanRedo); + api.asc_registerCallback('asc_onFocusObject', onApiFocusObject); + api.asc_registerCallback('asc_onCoAuthoringDisconnect', onCoAuthoringDisconnect); + Common.Notifications.on('api:disconnect', onCoAuthoringDisconnect); + Common.Notifications.on('toolbar:activatecontrols', activateControls); + Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); + Common.Notifications.on('goback', goBack); + }; + if ( !Common.EditorApi ) { + Common.Notifications.on('document:ready', onDocumentReady); + Common.Notifications.on('setdoctitle', setDocTitle); + Common.Gateway.on('init', loadConfig); + } else { + onDocumentReady(); + } + + return () => { + Common.Notifications.off('document:ready', onDocumentReady); + Common.Notifications.off('setdoctitle', setDocTitle); + Common.Notifications.off('api:disconnect', onCoAuthoringDisconnect); + Common.Notifications.off('toolbar:activatecontrols', activateControls); + Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls); + Common.Notifications.off('goback', goBack); + + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onCanUndo', onApiCanUndo); + api.asc_unregisterCallback('asc_onCanRedo', onApiCanRedo); + api.asc_unregisterCallback('asc_onFocusObject', onApiFocusObject); + api.asc_unregisterCallback('asc_onCoAuthoringDisconnect', onCoAuthoringDisconnect); + } + }); + + const [docTitle, resetDocTitle] = useState(''); + const setDocTitle = (title) => { + resetDocTitle(title); + } + + // Back button + const [isShowBack, setShowBack] = useState(false); + const loadConfig = (data) => { + if (data && data.config && data.config.canBackToFolder !== false && + data.config.customization && data.config.customization.goback && + (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) { + setShowBack(true); + } + }; + const onBack = () => { + const api = Common.EditorApi.get(); + if (api.isDocumentModified()) { + f7.dialog.create({ + title : _t.dlgLeaveTitleText, + text : _t.dlgLeaveMsgText, + verticalButtons: true, + buttons : [ + { + text: _t.leaveButtonText, + onClick: function() { + goBack(); + } + }, + { + text: _t.stayButtonText, + bold: true + } + ] + }).open(); + } else { + goBack(); + } + }; + const goBack = (current) => { + if (appOptions.customization.goback.requestClose && appOptions.canRequestClose) { + Common.Gateway.requestClose(); + } else { + const href = appOptions.customization.goback.url; + if (!current && appOptions.customization.goback.blank !== false) { + window.open(href, "_blank"); + } else { + parent.location.href = href; + } + } + } + + // Undo and Redo + const [isCanUndo, setCanUndo] = useState(true); + const [isCanRedo, setCanRedo] = useState(true); + const onApiCanUndo = (can) => { + if (isDisconnected) return; + setCanUndo(can); + }; + const onApiCanRedo = (can) => { + if (isDisconnected) return; + setCanRedo(can); + }; + const onUndo = () => { + const api = Common.EditorApi.get(); + if (api) { + api.Undo(); + } + }; + const onRedo = () => { + const api = Common.EditorApi.get(); + if (api) { + api.Redo(); + } + } + + const [isObjectLocked, setObjectLocked] = useState(false); + const onApiFocusObject = (objects) => { + if (isDisconnected) return; + + if (objects.length > 0) { + const getTopObject = (objects) => { + const arrObj = objects.reverse(); + let obj; + for (let i=0; i { + setDisabledEditControls(true); + if (enableDownload) { + //DE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); + } else { + setDisabledSettings(true); + } + }; + + const onCoAuthoringDisconnect = (enableDownload) => { + deactivateEditControls(enableDownload); + setCanUndo(false); + setCanRedo(false); + f7.popover.close(); + f7.sheet.close(); + f7.popup.close(); + }; + + const [disabledControls, setDisabledControls] = useState(true); + const activateControls = () => { + setDisabledControls(false); + }; + + return ( + + ) +}); + +export {ToolbarController as Toolbar}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/add/AddImage.jsx b/apps/documenteditor/mobile/src/controller/add/AddImage.jsx new file mode 100644 index 000000000..c3a10eaff --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/add/AddImage.jsx @@ -0,0 +1,59 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import {AddImage} from '../../view/add/AddImage'; + +class AddImageController extends Component { + constructor (props) { + super(props); + this.onInsertByFile = this.onInsertByFile.bind(this); + this.onInsertByUrl = this.onInsertByUrl.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onInsertByFile () { + const api = Common.EditorApi.get(); + api.asc_addImage(); + this.closeModal(); + } + + onInsertByUrl (value) { + const { t } = this.props; + const _t = t("Add", { returnObjects: true }); + + const _value = value.replace(/ /g, ''); + + if (_value) { + if ((/((^https?)|(^ftp)):\/\/.+/i.test(_value))) { + this.closeModal(); + const api = Common.EditorApi.get(); + api.AddImageUrl(_value); + } else { + f7.dialog.alert(_t.txtNotUrl, _t.notcriticalErrorTitle); + } + } else { + f7.dialog.alert(_t.textEmptyImgUrl, _t.notcriticalErrorTitle); + } + } + + render () { + return ( + + ) + } +} + +const AddImageWithTranslation = withTranslation()(AddImageController); + +export {AddImageWithTranslation as AddImageController}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/add/AddLink.jsx b/apps/documenteditor/mobile/src/controller/add/AddLink.jsx new file mode 100644 index 000000000..3a6ea52a5 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/add/AddLink.jsx @@ -0,0 +1,67 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import {PageAddLink} from '../../view/add/AddLink'; + +class AddLinkController extends Component { + constructor (props) { + super(props); + this.onInsertLink = this.onInsertLink.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + getDisplayLinkText () { + const api = Common.EditorApi.get(); + return api.can_AddHyperlink(); + } + + onInsertLink (url, display, tip) { + const api = Common.EditorApi.get(); + + const { t } = this.props; + const _t = t("Add", { returnObjects: true }); + + const urltype = api.asc_getUrlType(url.trim()); + const isEmail = (urltype == 2); + + if (urltype < 1) { + f7.dialog.alert(_t.txtNotUrl, _t.notcriticalErrorTitle); + return; + } + + let _url = url.replace(/^\s+|\s+$/g,''); + + if (! /(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(_url) ) + _url = (isEmail ? 'mailto:' : 'http://' ) + _url; + + _url = _url.replace(new RegExp("%20",'g')," "); + + const props = new Asc.CHyperlinkProperty(); + props.put_Value(_url); + props.put_Text(!display ? _url : display); + props.put_ToolTip(tip); + + api.add_Hyperlink(props); + + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +const AddLinkWithTranslation = withTranslation()(AddLinkController); + +export {AddLinkWithTranslation as AddLinkController}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/add/AddOther.jsx b/apps/documenteditor/mobile/src/controller/add/AddOther.jsx new file mode 100644 index 000000000..3d5ff6b15 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/add/AddOther.jsx @@ -0,0 +1,262 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import {AddOther} from '../../view/add/AddOther'; + +// footnote converting metods +const _10toS = (value) => { + value = parseInt(value); + let n = Math.ceil(value / 26), + code = String.fromCharCode((value-1) % 26 + "A".charCodeAt(0)) , + result = ''; + for (var i=0; i { + if ( str.length<1 || (new RegExp('[^' + str.charAt(0) + ']')).test(str) || !/[A-Z]/.test(str)) return 1; + let n = str.length-1, + result = str.charCodeAt(0) - "A".charCodeAt(0) + 1; + result += 26*n; + return result; +}; +const _10toRome = (value) => { + value = parseInt(value); + let result = '', + digits = [['M', 1000], ['CM', 900], ['D', 500], ['CD', 400], ['C', 100], ['XC', 90], ['L', 50], ['XL', 40], ['X', 10], ['IX', 9], ['V', 5], ['IV', 4], ['I', 1]]; + let val = digits[0][1], + div = Math.floor(value / val), + n = 0; + for (var i=0; i0) { + val = digits[n][1]; + div = value - val; + if (div>=0) { + result += digits[n][0]; + value = div; + } else + n++; + } + return result; +}; +const _Rometo10 = (str) => { + if ( !/[IVXLCDM]/.test(str) || str.length<1 ) return 1; + let digits = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}; + var n = str.length-1, + result = digits[str.charAt(n)], + prev = result; + for (var i=n-1; i>=0; i-- ) { + var val = digits[str.charAt(i)]; + if (val10) return 1; + val *= -1; + } + result += val; + prev = Math.abs(val); + } + return result; +}; + +class AddOtherController extends Component { + constructor (props) { + super(props); + this.onInsertPageNumber = this.onInsertPageNumber.bind(this); + this.onPageBreak = this.onPageBreak.bind(this); + this.onColumnBreak = this.onColumnBreak.bind(this); + this.onInsertSectionBreak = this.onInsertSectionBreak.bind(this); + this.getFootnoteStartAt = this.getFootnoteStartAt.bind(this); + this.onFootnoteStartAt = this.onFootnoteStartAt.bind(this); + this.onInsertFootnote = this.onInsertFootnote.bind(this); + this.initFootnoteStartAt = this.initFootnoteStartAt.bind(this); + this.getFootnoteProps = this.getFootnoteProps.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onInsertPageNumber (type) { + const api = Common.EditorApi.get(); + + let value = -1; + + if (2 == type.length) { + const c_pageNumPosition = { + PAGE_NUM_POSITION_TOP: 0x01, + PAGE_NUM_POSITION_BOTTOM: 0x02, + PAGE_NUM_POSITION_RIGHT: 0, + PAGE_NUM_POSITION_LEFT: 1, + PAGE_NUM_POSITION_CENTER: 2 + }; + value = {}; + + if (type[0] == 'l') { + value.subtype = c_pageNumPosition.PAGE_NUM_POSITION_LEFT; + } else if (type[0] == 'c') { + value.subtype = c_pageNumPosition.PAGE_NUM_POSITION_CENTER; + } else if (type[0] == 'r') { + value.subtype = c_pageNumPosition.PAGE_NUM_POSITION_RIGHT; + } + + if (type[1] == 't') { + value.type = c_pageNumPosition.PAGE_NUM_POSITION_TOP; + } else if (type[1] == 'b') { + value.type = c_pageNumPosition.PAGE_NUM_POSITION_BOTTOM; + } + + api.put_PageNum(value.type, value.subtype); + } else { + api.put_PageNum(value); + } + + this.closeModal(); + } + + onPageBreak () { + const api = Common.EditorApi.get(); + api.put_AddPageBreak(); + this.closeModal(); + } + + onColumnBreak () { + const api = Common.EditorApi.get(); + api.put_AddColumnBreak(); + this.closeModal(); + } + + onInsertSectionBreak (type) { + const api = Common.EditorApi.get(); + let value; + if ('next' == type) { + value = Asc.c_oAscSectionBreakType.NextPage; + } else if ('continuous' == type) { + value = Asc.c_oAscSectionBreakType.Continuous; + } else if ('even' == type) { + value = Asc.c_oAscSectionBreakType.EvenPage; + } else if ('odd' == type) { + value = Asc.c_oAscSectionBreakType.OddPage; + } + api.add_SectionBreak(value); + this.closeModal(); + } + + // Footnote + + getFootnoteProps () { + if (!this.footnoteProps) { + const api = Common.EditorApi.get(); + const props = api.asc_GetFootnoteProps(); + this.footnoteProps = {propsFormat: props.get_NumFormat(), propsPos: props.get_Pos()}; + } + return this.footnoteProps; + } + + initFootnoteStartAt () { + if (!this.footnoteCurStart) { + const api = Common.EditorApi.get(); + const currValue = api.asc_GetFootnoteProps().get_NumStart(); + this.toCustomFormat = value => { + return value; + }; + this.fromCustomFormat = value => { + return value; + }; + this.footnoteCurStart = this.toCustomFormat(currValue); + } + return this.footnoteCurStart; + } + + getFootnoteStartAt (value, start) { + const currValue = this.fromCustomFormat(start); + + switch (value) { + case Asc.c_oAscNumberingFormat.UpperRoman: // I, II, III, ... + this.toCustomFormat = _10toRome; + this.fromCustomFormat = _Rometo10; + break; + case Asc.c_oAscNumberingFormat.LowerRoman: // i, ii, iii, ... + this.toCustomFormat = value => { return _10toRome(value).toLocaleLowerCase(); }; + this.fromCustomFormat = value => { return _Rometo10(value.toLocaleUpperCase()); }; + break; + case Asc.c_oAscNumberingFormat.UpperLetter: // A, B, C, ... + this.toCustomFormat = _10toS; + this.fromCustomFormat = _Sto10; + break; + case Asc.c_oAscNumberingFormat.LowerLetter: // a, b, c, ... + this.toCustomFormat = value => { return _10toS(value).toLocaleLowerCase(); }; + this.fromCustomFormat = value => { return _Sto10(value.toLocaleUpperCase()); }; + break; + default: // 1, 2, 3, ... + this.toCustomFormat = value => { return value; }; + this.fromCustomFormat = value => { return value; }; + break; + } + return this.toCustomFormat(currValue); + } + + onFootnoteStartAt (value, isDecrement) { + let intValue; + const step = 1; + const maxValue = 16383; + if(this.fromCustomFormat) { + intValue = parseInt(this.fromCustomFormat(value)); + } else { + const api = Common.EditorApi.get(); + intValue = api.asc_GetFootnoteProps().get_NumStart(); + } + if (isDecrement) { + intValue = Math.max(1, intValue - step); + } else { + intValue = Math.min(maxValue, intValue + step); + } + return this.toCustomFormat(intValue); + } + + onInsertFootnote (format, start, location) { + const api = Common.EditorApi.get(); + const props = new Asc.CAscFootnotePr(); + let startTo10; + if (this.fromCustomFormat) { + startTo10 = parseInt(this.fromCustomFormat(start)); + } else { + startTo10 = api.asc_GetFootnoteProps().get_NumStart(); + } + props.put_Pos(location); + props.put_NumFormat(format); + props.put_NumStart(startTo10); + props.put_NumRestart(Asc.c_oAscFootnoteRestart.Continuous); + api.asc_SetFootnoteProps(props, false); + api.asc_AddFootnote(); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +const AddOtherWithTranslation = withTranslation()(AddOtherController); + +export {AddOtherWithTranslation as AddOtherController}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/add/AddShape.jsx b/apps/documenteditor/mobile/src/controller/add/AddShape.jsx new file mode 100644 index 000000000..2b51e1e18 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/add/AddShape.jsx @@ -0,0 +1,35 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import AddShape from '../../view/add/AddShape'; + +class AddShapeController extends Component { + constructor (props) { + super(props); + this.onShapeClick = this.onShapeClick.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onShapeClick (type) { + const api = Common.EditorApi.get(); + api.AddShapeOnCurrentPage(type); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +export default AddShapeController; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/add/AddTable.jsx b/apps/documenteditor/mobile/src/controller/add/AddTable.jsx new file mode 100644 index 000000000..4a0a4bfd5 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/add/AddTable.jsx @@ -0,0 +1,93 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import AddTable from '../../view/add/AddTable'; + +class AddTableController extends Component { + constructor (props) { + super(props); + this.onStyleClick = this.onStyleClick.bind(this); + + const api = Common.EditorApi.get(); + api.asc_GetDefaultTableStyles(); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onStyleClick (type) { + const api = Common.EditorApi.get(); + + this.closeModal(); + + const { t } = this.props; + const _t = t("Add", { returnObjects: true }); + + let picker; + + const dialog = f7.dialog.create({ + title: _t.textTableSize, + text: '', + content: + '
          ' + + '
          ' + + '
          ' + _t.textColumns + '
          ' + + '
          ' + _t.textRows + '
          ' + + '
          ' + + '
          ' + + '
          ', + buttons: [ + { + text: _t.textCancel + }, + { + text: 'OK', + bold: true, + onClick: function () { + const size = picker.value; + + api.put_Table(parseInt(size[0]), parseInt(size[1]), type.toString()); + } + } + ] + }).open(); + dialog.on('opened', () => { + picker = f7.picker.create({ + containerEl: document.getElementById('picker-table-size'), + cols: [ + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + }, + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + } + ], + toolbar: false, + rotateEffect: true, + value: [3, 3] + }); + }); + } + + render () { + return ( + + ) + } +} + +const AddTableWithTranslation = withTranslation()(AddTableController); + +export {AddTableWithTranslation as AddTableController}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditChart.jsx b/apps/documenteditor/mobile/src/controller/edit/EditChart.jsx new file mode 100644 index 000000000..2e7293f28 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditChart.jsx @@ -0,0 +1,218 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditChart } from '../../view/edit/EditChart' + +class EditChartController extends Component { + constructor (props) { + super(props); + this.onWrapType = this.onWrapType.bind(this); + this.onType = this.onType.bind(this); + this.onStyle = this.onStyle.bind(this); + this.onBorderColor = this.onBorderColor.bind(this); + this.onBorderSize = this.onBorderSize.bind(this); + + const type = props.storeFocusObjects.chartObject.get_ChartProperties().getType(); + if (type==Asc.c_oAscChartTypeSettings.comboBarLine || + type==Asc.c_oAscChartTypeSettings.comboBarLineSecondary || + type==Asc.c_oAscChartTypeSettings.comboAreaBar || + type==Asc.c_oAscChartTypeSettings.comboCustom) { + props.storeChartSettings.clearChartStyles(); + } else { + const api = Common.EditorApi.get(); + props.storeChartSettings.updateChartStyles(api.asc_getChartPreviews(type)); + } + } + + onRemoveChart () { + const api = Common.EditorApi.get(); + if (api) { + api.asc_Remove(); + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + } + + onWrapType (type) { + const api = Common.EditorApi.get(); + if (api) { + const sdkType = this.props.storeChartSettings.transformToSdkWrapType(type); + const properties = new Asc.asc_CImgProperty(); + properties.put_WrappingStyle(sdkType); + api.ImgApply(properties); + } + } + + onAlign (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_PositionH(new Asc.CImagePositionH()); + properties.get_PositionH().put_UseAlign(true); + properties.get_PositionH().put_Align(type); + properties.get_PositionH().put_RelativeFrom(Asc.c_oAscRelativeFromH.Page); + api.ImgApply(properties); + } + } + + onMoveText (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_PositionV(new Asc.CImagePositionV()); + properties.get_PositionV().put_UseAlign(true); + properties.get_PositionV().put_RelativeFrom(value ? Asc.c_oAscRelativeFromV.Paragraph : Asc.c_oAscRelativeFromV.Page); + api.ImgApply(properties); + } + } + + onOverlap (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_AllowOverlap(value); + api.ImgApply(properties); + } + } + + onWrapDistance (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + const paddings = new Asc.asc_CPaddings(); + const distance = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); + paddings.put_Top(distance); + paddings.put_Right(distance); + paddings.put_Bottom(distance); + paddings.put_Left(distance); + properties.put_Paddings(paddings); + api.ImgApply(properties); + } + } + + onReorder (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + if ('all-up' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringToFront); + } else if ('all-down' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.SendToBack); + } else if ('move-up' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringForward); + } else if ('move-down' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringBackward); + } + api.ImgApply(properties); + } + } + + onStyle (style) { + const api = Common.EditorApi.get(); + const image = new Asc.asc_CImgProperty(); + const chart = this.props.storeFocusObjects.chartObject.get_ChartProperties(); + chart.putStyle(style); + image.put_ChartProperties(chart); + api.ImgApply(image); + } + + onType (type) { + const api = Common.EditorApi.get(); + const image = new Asc.asc_CImgProperty(); + const chart = this.props.storeFocusObjects.chartObject.get_ChartProperties(); + chart.changeType(type); + image.put_ChartProperties(chart); + api.ImgApply(image); + // Force update styles + this.props.storeChartSettings.updateChartStyles(api.asc_getChartPreviews(chart.getType())); + } + + onFillColor (color) { + const api = Common.EditorApi.get(); + const image = new Asc.asc_CImgProperty(); + const shape = new Asc.asc_CShapeProperty(); + const fill = new Asc.asc_CShapeFill(); + if (color == 'transparent') { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); + fill.put_fill(null); + } else { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); + fill.put_fill(new Asc.asc_CFillSolid()); + fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); + } + shape.put_fill(fill); + image.put_ShapeProperties(shape); + api.ImgApply(image); + } + + onBorderColor (color) { + const api = Common.EditorApi.get(); + const currentShape = this.props.storeFocusObjects.shapeObject.get_ShapeProperties(); + const image = new Asc.asc_CImgProperty(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + if (currentShape.get_stroke().get_width() < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); + stroke.put_width(currentShape.get_stroke().get_width()); + stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); + } + shape.put_stroke(stroke); + image.put_ShapeProperties(shape); + api.ImgApply(image); + } + + onBorderSize (value) { + const api = Common.EditorApi.get(); + + const image = new Asc.asc_CImgProperty(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + + const _borderColor = this.props.storeChartSettings.borderColor; + + if (value < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + if (_borderColor == 'transparent') + stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); + else + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); + stroke.put_width(value * 25.4 / 72.0); + } + + shape.put_stroke(stroke); + image.put_ShapeProperties(shape); + + api.ImgApply(image); + this.props.storeChartSettings.initBorderColor(this.props.storeFocusObjects.shapeObject.get_ShapeProperties().get_stroke()); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR + } + + render () { + return ( + + ) + } +} + +export default inject("storeChartSettings", "storeFocusObjects")(observer(EditChartController)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditHeader.jsx b/apps/documenteditor/mobile/src/controller/edit/EditHeader.jsx new file mode 100644 index 000000000..c05a7ca34 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditHeader.jsx @@ -0,0 +1,63 @@ +import React, {Component} from 'react'; + +import EditHeader from '../../view/edit/EditHeader'; + +class EditHeaderController extends Component { + constructor (props) { + super(props); + } + + onDiffFirst (value) { + const api = Common.EditorApi.get(); + if (api) { + api.HeadersAndFooters_DifferentFirstPage(value); + } + } + + onDiffOdd (value) { + const api = Common.EditorApi.get(); + if (api) { + api.HeadersAndFooters_DifferentOddandEvenPage(value); + } + } + + onSameAs (value) { + const api = Common.EditorApi.get(); + if (api) { + api.HeadersAndFooters_LinkToPrevious(value); + } + } + + onNumberingContinue (isChecked, value) { + const api = Common.EditorApi.get(); + if (api) { + api.asc_SetSectionStartPage(isChecked ? -1 : value); + } + } + + onStartAt (value, isDecrement) { + const api = Common.EditorApi.get(); + if (api) { + let start = value; + if (isDecrement) { + start = Math.max(1, --start); + } else { + start = Math.min(2147483646, ++start); + } + api.asc_SetSectionStartPage(start); + } + } + + render () { + return ( + + ) + } +} + +export default EditHeaderController; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditHyperlink.jsx b/apps/documenteditor/mobile/src/controller/edit/EditHyperlink.jsx new file mode 100644 index 000000000..cfb79fed1 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditHyperlink.jsx @@ -0,0 +1,70 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; +import { withTranslation } from 'react-i18next'; + +import EditHyperlink from '../../view/edit/EditHyperlink'; + +class EditHyperlinkController extends Component { + constructor (props) { + super(props); + this.onRemoveLink = this.onRemoveLink.bind(this); + this.onEditLink = this.onEditLink.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + + onEditLink (link, display, tip) { + const api = Common.EditorApi.get(); + if (api) { + const urltype = api.asc_getUrlType(link.trim()); + const isEmail = (urltype == 2); + if (urltype < 1) { + const { t } = this.props; + f7.dialog.alert(t('Edit.textNotUrl'), t('Edit.notcriticalErrorTitle')); + return; + } + let url = link.replace(/^\s+|\s+$/g,''); + if (! /(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url) ) { + url = (isEmail ? 'mailto:' : 'http://') + url; + } + url = url.replace(new RegExp("%20",'g')," "); + const props = new Asc.CHyperlinkProperty(); + props.put_Value(url); + props.put_Text(display.trim().length < 1 ? url : display); + props.put_ToolTip(tip); + const linkObject = this.props.storeFocusObjects.linkObject; + if (linkObject) { + props.put_InternalHyperlink(linkObject.get_InternalHyperlink()); + } + api.change_Hyperlink(props); + this.closeModal(); + } + } + + onRemoveLink () { + const api = Common.EditorApi.get(); + if (api) { + const linkObject = this.props.storeFocusObjects.linkObject; + api.remove_Hyperlink(linkObject); + this.closeModal(); + } + } + + render () { + return ( + + ) + } +} + +export default withTranslation()(inject("storeFocusObjects")(observer(EditHyperlinkController))); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditImage.jsx b/apps/documenteditor/mobile/src/controller/edit/EditImage.jsx new file mode 100644 index 000000000..108056b23 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditImage.jsx @@ -0,0 +1,154 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditImage } from '../../view/edit/EditImage' + +class EditImageController extends Component { + constructor (props) { + super(props); + this.onWrapType = this.onWrapType.bind(this); + this.onRemoveImage = this.onRemoveImage.bind(this); + this.onReplaceByFile = this.onReplaceByFile.bind(this); + this.onReplaceByUrl = this.onReplaceByUrl.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + + onDefaulSize () { + const api = Common.EditorApi.get(); + if (api) { + const imgSize = api.get_OriginalSizeImage(); + const properties = new Asc.asc_CImgProperty(); + properties.put_Width(imgSize.get_ImageWidth()); + properties.put_Height(imgSize.get_ImageHeight()); + properties.put_ResetCrop(true); + api.ImgApply(properties); + } + } + + onRemoveImage () { + const api = Common.EditorApi.get(); + if (api) { + api.asc_Remove(); + this.closeModal() + } + } + + onWrapType (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + const sdkType = this.props.storeImageSettings.transformToSdkWrapType(type); + properties.put_WrappingStyle(sdkType); + api.ImgApply(properties); + } + } + + onAlign (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_PositionH(new Asc.CImagePositionH()); + properties.get_PositionH().put_UseAlign(true); + properties.get_PositionH().put_Align(type); + properties.get_PositionH().put_RelativeFrom(Asc.c_oAscRelativeFromH.Page); + api.ImgApply(properties); + } + } + + onMoveText (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_PositionV(new Asc.CImagePositionV()); + properties.get_PositionV().put_UseAlign(true); + properties.get_PositionV().put_RelativeFrom(value ? Asc.c_oAscRelativeFromV.Paragraph : Asc.c_oAscRelativeFromV.Page); + api.ImgApply(properties); + } + } + + onOverlap (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_AllowOverlap(value); + api.ImgApply(properties); + } + } + + onWrapDistance (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + const paddings = new Asc.asc_CPaddings(); + const distance = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); + paddings.put_Top(distance); + paddings.put_Right(distance); + paddings.put_Bottom(distance); + paddings.put_Left(distance); + properties.put_Paddings(paddings); + api.ImgApply(properties); + } + } + + onReplaceByFile () { + const api = Common.EditorApi.get(); + if (api) { + api.ChangeImageFromFile(); + this.closeModal(); + } + } + + onReplaceByUrl (value) { + const api = Common.EditorApi.get(); + if (api) { + const image = new Asc.asc_CImgProperty(); + image.put_ImageUrl(value); + api.ImgApply(image); + this.closeModal(); + } + } + + onReorder (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + if ('all-up' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringToFront); + } else if ('all-down' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.SendToBack); + } else if ('move-up' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringForward); + } else if ('move-down' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringBackward); + } + api.ImgApply(properties); + } + } + + render () { + return ( + + ) + } +} + +export default inject("storeImageSettings")(observer(EditImageController)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditParagraph.jsx b/apps/documenteditor/mobile/src/controller/edit/EditParagraph.jsx new file mode 100644 index 000000000..0ecbe0bfa --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditParagraph.jsx @@ -0,0 +1,164 @@ +import React, {Component} from 'react'; +import { EditParagraph } from '../../view/edit/EditParagraph'; +import {observer, inject} from "mobx-react"; + +class EditParagraphController extends Component { + constructor (props) { + super(props); + props.storeParagraphSettings.setBackColor(undefined); + } + + onStyleClick (name) { + const api = Common.EditorApi.get(); + if (api) { + api.put_Style(name); + } + } + + onDistanceBefore (distance, isDecrement) { + const api = Common.EditorApi.get(); + if (api) { + let step; + let newDistance; + if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { + step = 1; + } else { + step = 0.01; + } + const maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); + + if (isDecrement) { + newDistance = Math.max(-1, distance - step); + } else { + newDistance = Math.min(maxValue, distance + step); + } + + api.put_LineSpacingBeforeAfter(0, (newDistance < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(newDistance)); + } + } + + onDistanceAfter (distance, isDecrement) { + const api = Common.EditorApi.get(); + if (api) { + let step; + let newDistance; + if (Common.Utils.Metric.getCurrentMetric() === Common.Utils.Metric.c_MetricUnits.pt) { + step = 1; + } else { + step = 0.01; + } + + const maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); + + if (isDecrement) { + newDistance = Math.max(-1, distance - step); + } else { + newDistance = Math.min(maxValue, distance + step); + } + + api.put_LineSpacingBeforeAfter(1, (newDistance < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(newDistance)); + } + } + + onSpinFirstLine (paragraphProperty, isDecrement) { + const api = Common.EditorApi.get(); + if (api) { + let distance = paragraphProperty.get_Ind().get_FirstLine(); + let step; + distance = Common.Utils.Metric.fnRecalcFromMM(distance); + + if (Common.Utils.Metric.getCurrentMetric() === Common.Utils.Metric.c_MetricUnits.pt) { + step = 1; + } else { + step = 0.1; + } + + const minValue = Common.Utils.Metric.fnRecalcFromMM(-558.7); + const maxValue = Common.Utils.Metric.fnRecalcFromMM(558.7); + + if (isDecrement) { + distance = Math.max(minValue, distance - step); + } else { + distance = Math.min(maxValue, distance + step); + } + + var newParagraphProp = new Asc.asc_CParagraphProperty(); + newParagraphProp.get_Ind().put_FirstLine(Common.Utils.Metric.fnRecalcToMM(distance)); + api.paraApply(newParagraphProp); + } + } + + onSpaceBetween (checked) { + const api = Common.EditorApi.get(); + if (api) { + api.put_AddSpaceBetweenPrg(checked); + } + } + + onBreakBefore (checked) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CParagraphProperty(); + properties.put_PageBreakBefore(checked); + api.paraApply(properties); + } + } + + onOrphan (checked) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CParagraphProperty(); + properties.put_WidowControl(checked); + api.paraApply(properties); + } + } + + onKeepTogether (checked) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CParagraphProperty(); + properties.put_KeepLines(checked); + api.paraApply(properties); + } + } + + onKeepNext (checked) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CParagraphProperty(); + properties.put_KeepNext(checked); + api.paraApply(properties); + } + } + + onBackgroundColor (color) { + const api = Common.EditorApi.get(); + const properties = new Asc.asc_CParagraphProperty(); + properties.put_Shade(new Asc.asc_CParagraphShd()); + if (color == 'transparent') { + properties.get_Shade().put_Value(Asc.c_oAscShdNil); + } else { + properties.get_Shade().put_Value(Asc.c_oAscShdClear); + properties.get_Shade().put_Color(Common.Utils.ThemeColor.getRgbColor(color)); + } + api.paraApply(properties); + } + + render () { + return ( + + ) + } +} + +export default inject("storeParagraphSettings")(observer(EditParagraphController)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditShape.jsx b/apps/documenteditor/mobile/src/controller/edit/EditShape.jsx new file mode 100644 index 000000000..34262c8cf --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditShape.jsx @@ -0,0 +1,208 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditShape } from '../../view/edit/EditShape' + +class EditShapeController extends Component { + constructor (props) { + super(props); + this.onWrapType = this.onWrapType.bind(this); + this.onBorderSize = this.onBorderSize.bind(this); + this.onBorderColor = this.onBorderColor.bind(this); + + this.props.storeShapeSettings.setFillColor(undefined); + this.props.storeShapeSettings.setBorderColor(undefined); + } + + onRemoveShape () { + const api = Common.EditorApi.get(); + if (api) { + api.asc_Remove(); + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + } + + onWrapType (type) { + const api = Common.EditorApi.get(); + if (api) { + const sdkType = this.props.storeShapeSettings.transformToSdkWrapType(type); + const properties = new Asc.asc_CImgProperty(); + properties.put_WrappingStyle(sdkType); + api.ImgApply(properties); + } + } + + onShapeAlign (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_PositionH(new Asc.CImagePositionH()); + properties.get_PositionH().put_UseAlign(true); + properties.get_PositionH().put_Align(type); + properties.get_PositionH().put_RelativeFrom(Asc.c_oAscRelativeFromH.Page); + api.ImgApply(properties); + } + } + + onMoveText (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_PositionV(new Asc.CImagePositionV()); + properties.get_PositionV().put_UseAlign(true); + properties.get_PositionV().put_RelativeFrom(value ? Asc.c_oAscRelativeFromV.Paragraph : Asc.c_oAscRelativeFromV.Page); + api.ImgApply(properties); + } + } + + onOverlap (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + properties.put_AllowOverlap(value); + api.ImgApply(properties); + } + } + + onWrapDistance (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + const paddings = new Asc.asc_CPaddings(); + const distance = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); + paddings.put_Top(distance); + paddings.put_Right(distance); + paddings.put_Bottom(distance); + paddings.put_Left(distance); + properties.put_Paddings(paddings); + api.ImgApply(properties); + } + } + + onReorder (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.asc_CImgProperty(); + if ('all-up' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringToFront); + } else if ('all-down' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.SendToBack); + } else if ('move-up' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringForward); + } else if ('move-down' == type) { + properties.put_ChangeLevel(Asc.c_oAscChangeLevel.BringBackward); + } + api.ImgApply(properties); + } + } + + onReplace (type) { + const api = Common.EditorApi.get(); + if (api) { + api.ChangeShapeType(type); + } + } + + onFillColor (color) { + const api = Common.EditorApi.get(); + const image = new Asc.asc_CImgProperty(); + const shape = new Asc.asc_CShapeProperty(); + const fill = new Asc.asc_CShapeFill(); + if (color == 'transparent') { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); + fill.put_fill(null); + } else { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); + fill.put_fill(new Asc.asc_CFillSolid()); + fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); + } + shape.put_fill(fill); + image.put_ShapeProperties(shape); + api.ImgApply(image); + } + + onBorderSize (value) { + const api = Common.EditorApi.get(); + + const image = new Asc.asc_CImgProperty(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + + const _borderColor = this.props.storeShapeSettings.borderColorView; + + if (value < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + if (_borderColor == 'transparent') + stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); + else + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); + stroke.put_width(value * 25.4 / 72.0); + } + + shape.put_stroke(stroke); + image.put_ShapeProperties(shape); + + api.ImgApply(image); + this.props.storeShapeSettings.initBorderColorView(this.props.storeFocusObjects.shapeObject); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR + } + + onBorderColor (color) { + const api = Common.EditorApi.get(); + const currentShape = this.props.storeFocusObjects.shapeObject.get_ShapeProperties(); + if (currentShape && currentShape.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { + const image = new Asc.asc_CImgProperty(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + if (currentShape.get_stroke().get_width() < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); + stroke.put_width(currentShape.get_stroke().get_width()); + stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); + } + shape.put_stroke(stroke); + image.put_ShapeProperties(shape); + api.ImgApply(image); + } + } + + onOpacity (value) { + const api = Common.EditorApi.get(); + const properties = new Asc.asc_CImgProperty(); + const fill = new Asc.asc_CShapeFill(); + const shape = new Asc.asc_CShapeProperty(); + fill.put_transparent(parseInt(value * 2.55)); + shape.put_fill(fill); + properties.put_ShapeProperties(shape); + api.ImgApply(properties); + } + + render () { + return ( + + ) + } +} + +export default inject("storeShapeSettings", "storeFocusObjects")(observer(EditShapeController)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditTable.jsx b/apps/documenteditor/mobile/src/controller/edit/EditTable.jsx new file mode 100644 index 000000000..57962333d --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditTable.jsx @@ -0,0 +1,236 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditTable } from '../../view/edit/EditTable'; + +class EditTableController extends Component { + constructor (props) { + super(props); + this.closeIfNeed = this.closeIfNeed.bind(this); + this.onRemoveTable = this.onRemoveTable.bind(this); + this.onAddColumnLeft = this.onAddColumnLeft.bind(this); + this.onAddColumnRight = this.onAddColumnRight.bind(this); + this.onAddRowAbove = this.onAddRowAbove.bind(this); + this.onAddRowBelow = this.onAddRowBelow.bind(this); + this.onRemoveColumn = this.onRemoveColumn.bind(this); + this.onRemoveRow = this.onRemoveRow.bind(this); + this.onWrapMoveText = this.onWrapMoveText.bind(this); + } + closeIfNeed () { + if (!this.props.storeFocusObjects.isTableInStack) { + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + } + onRemoveTable () { + const api = Common.EditorApi.get(); + if (api) { + api.remTable(); + this.closeIfNeed(); + } + } + onAddColumnLeft () { + const api = Common.EditorApi.get(); + if (api) { + api.addColumnLeft(); + this.closeIfNeed(); + } + } + onAddColumnRight () { + const api = Common.EditorApi.get(); + if (api) { + api.addColumnRight(); + this.closeIfNeed(); + } + } + onAddRowAbove () { + const api = Common.EditorApi.get(); + if (api) { + api.addRowAbove(); + this.closeIfNeed(); + } + } + onAddRowBelow () { + const api = Common.EditorApi.get(); + if (api) { + api.addRowBelow(); + this.closeIfNeed(); + } + } + onRemoveColumn () { + const api = Common.EditorApi.get(); + if (api) { + api.remColumn(); + this.closeIfNeed(); + } + } + onRemoveRow () { + const api = Common.EditorApi.get(); + if (api) { + api.remRow(); + this.closeIfNeed(); + } + } + onCellMargins (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.CTableProp(); + const margins = new Asc.CMargins(); + const val = Common.Utils.Metric.fnRecalcToMM(value); + margins.put_Top(val); + margins.put_Right(val); + margins.put_Bottom(val); + margins.put_Left(val); + margins.put_Flag(2); + properties.put_CellMargins(margins); + api.tblApply(properties); + } + } + onOptionRepeat (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.CTableProp(); + properties.put_RowsInHeader(value); + api.tblApply(properties); + } + } + onOptionResize (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.CTableProp(); + properties.put_TableLayout(value ? Asc.c_oAscTableLayout.AutoFit : Asc.c_oAscTableLayout.Fixed); + api.tblApply(properties); + } + } + onWrapType (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.CTableProp(); + properties.put_TableWrap(value); + api.tblApply(properties); + } + } + onWrapAlign (type) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.CTableProp(); + properties.put_TableAlignment(type); + api.tblApply(properties); + } + } + onWrapMoveText (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.CTableProp(); + const position = new Asc.CTablePositionV(); + position.put_UseAlign(false); + position.put_RelativeFrom(value ? Asc.c_oAscVAnchor.Text : Asc.c_oAscVAnchor.Page); + const tableObject = this.props.storeFocusObjects.tableObject; + position.put_Value(tableObject.get_Value_Y(value ? Asc.c_oAscVAnchor.Text : Asc.c_oAscVAnchor.Page)); + properties.put_PositionV(position); + api.tblApply(properties); + } + } + onWrapDistance (value) { + const api = Common.EditorApi.get(); + if (api) { + const properties = new Asc.CTableProp(); + const paddings = new Asc.asc_CPaddings(); + const distance = Common.Utils.Metric.fnRecalcToMM(parseInt(value)); + paddings.put_Top(distance); + paddings.put_Right(distance); + paddings.put_Bottom(distance); + paddings.put_Left(distance); + properties.put_TablePaddings(paddings); + api.tblApply(properties); + } + } + onStyleClick (type) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + properties.put_TableStyle(type.toString()); + api.tblApply(properties); + } + + onCheckTemplateChange (tableLook, type, isChecked) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + switch (type) { + case 0: + tableLook.put_FirstRow(isChecked); + break; + case 1: + tableLook.put_LastRow(isChecked); + break; + case 2: + tableLook.put_BandHor(isChecked); + break; + case 3: + tableLook.put_FirstCol(isChecked); + break; + case 4: + tableLook.put_LastCol(isChecked); + break; + case 5: + tableLook.put_BandVer(isChecked); + break; + } + properties.put_TableLook(tableLook); + api.tblApply(properties); + } + + onFillColor (color) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + const background = new Asc.CBackground(); + properties.put_CellsBackground(background); + if ('transparent' == color) { + background.put_Value(1); + } else { + background.put_Value(0); + background.put_Color(Common.Utils.ThemeColor.getRgbColor(color)); + } + properties.put_CellSelect(true); + api.tblApply(properties); + } + + onBorderTypeClick (cellBorders) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + const _cellBorders = !cellBorders ? new Asc.CBorders() : cellBorders; + properties.put_CellBorders(_cellBorders); + properties.put_CellSelect(true); + api.tblApply(properties); + } + + render () { + return ( + + ) + } +} + +export default inject("storeFocusObjects")(observer(EditTableController)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/edit/EditText.jsx b/apps/documenteditor/mobile/src/controller/edit/EditText.jsx new file mode 100644 index 000000000..922458b4b --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/edit/EditText.jsx @@ -0,0 +1,219 @@ +import React, {Component} from 'react'; +import { EditText } from '../../view/edit/EditText' + +class EditTextController extends Component { + constructor(props) { + super(props); + } + + componentDidMount() { + const api = Common.EditorApi.get(); + api && api.UpdateInterfaceState(); + } + + changeFontSize(curSize, isDecrement) { + const api = Common.EditorApi.get(); + if (api) { + let size = curSize; + if (isDecrement) { + typeof size === 'undefined' ? api.FontSizeOut() : size = Math.max(1, --size); + } else { + typeof size === 'undefined' ? api.FontSizeIn : size = Math.min(300, ++size); + } + if (typeof size !== 'undefined') { + api.put_TextPrFontSize(size); + } + } + } + + changeFontFamily(name) { + const api = Common.EditorApi.get(); + if (api && name) { + api.put_TextPrFontName(name); + } + } + + onTextColorAuto() { + const api = Common.EditorApi.get(); + const color = new Asc.asc_CColor(); + color.put_auto(true); + api.put_TextColor(color); + } + + onTextColor(color) { + const api = Common.EditorApi.get(); + api.put_TextColor(Common.Utils.ThemeColor.getRgbColor(color)); + } + + onBackgroundColor(color) { + const api = Common.EditorApi.get(); + if (color == 'transparent') { + api.put_ParagraphShade(false); + } else { + api.put_ParagraphShade(true, Common.Utils.ThemeColor.getRgbColor(color)); + } + } + + toggleBold(value) { + const api = Common.EditorApi.get(); + if (api) { + api.put_TextPrBold(value); + } + } + + toggleItalic(value) { + const api = Common.EditorApi.get(); + if (api) { + api.put_TextPrItalic(value); + } + } + + toggleUnderline(value) { + const api = Common.EditorApi.get(); + if (api) { + api.put_TextPrUnderline(value); + } + } + + toggleStrikethrough(value) { + const api = Common.EditorApi.get(); + if (api) { + api.put_TextPrStrikeout(value); + } + } + + // Additional + + onAdditionalStrikethrough(type, value) { + const api = Common.EditorApi.get(); + if (api) { + if ('strikeout' === type) { + api.put_TextPrStrikeout(value); + } else { + api.put_TextPrDStrikeout(value); + } + } + } + + onAdditionalCaps(type, value) { + const api = Common.EditorApi.get(); + if (api) { + const paragraphProps = new Asc.asc_CParagraphProperty(); + if ('small' === type) { + paragraphProps.put_AllCaps(false); + paragraphProps.put_SmallCaps(value); + } else { + paragraphProps.put_AllCaps(value); + paragraphProps.put_SmallCaps(false); + } + api.paraApply(paragraphProps); + } + } + + onAdditionalScript(type, value) { + const api = Common.EditorApi.get(); + if (api) { + if ('superscript' === type) { + api.put_TextPrBaseline(value ? 1 : 0); + } else { + api.put_TextPrBaseline(value ? 2 : 0); + } + } + } + + changeLetterSpacing(curSpacing, isDecrement) { + const api = Common.EditorApi.get(); + if (api) { + let spacing = curSpacing; + if (isDecrement) { + spacing = Math.max(-100, --spacing); + } else { + spacing = Math.min(100, ++spacing); + } + const properties = new Asc.asc_CParagraphProperty(); + properties.put_TextSpacing(Common.Utils.Metric.fnRecalcToMM(spacing)); + api.paraApply(properties); + } + } + + onParagraphAlign(type) { + const api = Common.EditorApi.get(); + if (api) { + let value; + switch (type) { + case 'just': + value = 3; + break; + case 'right': + value = 0; + break; + case 'center': + value = 2; + break; + default: + value = 1; + break; + } + api.put_PrAlign(value); + } + } + + onParagraphMove(isLeft) { + const api = Common.EditorApi.get(); + if (api) { + if (isLeft) { + api.DecreaseIndent(); + } else { + api.IncreaseIndent(); + } + } + } + + onBullet(type) { + const api = Common.EditorApi.get(); + if (api) { + api.put_ListType(0, parseInt(type)); + } + } + + onNumber(type) { + const api = Common.EditorApi.get(); + if (api) { + api.put_ListType(1, parseInt(type)); + } + } + + onLineSpacing(value) { + const api = Common.EditorApi.get(); + if (api) { + const LINERULE_AUTO = 1; + api.put_PrLineSpacing(LINERULE_AUTO, value); + } + } + + render() { + return ( + + ) + } +} + +export default EditTextController; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/settings/ApplicationSettings.jsx b/apps/documenteditor/mobile/src/controller/settings/ApplicationSettings.jsx new file mode 100644 index 000000000..388ea1ab7 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/settings/ApplicationSettings.jsx @@ -0,0 +1,76 @@ +import React, { Component } from "react"; +import { ApplicationSettings } from "../../view/settings/ApplicationSettings"; +import { LocalStorage } from '../../../../../common/mobile/utils/LocalStorage'; + +class ApplicationSettingsController extends Component { + constructor(props) { + super(props); + this.switchDisplayComments = this.switchDisplayComments.bind(this); + } + + setUnitMeasurement(value) { + value = (value !== null) ? parseInt(value) : Common.Utils.Metric.getDefaultMetric(); + Common.Utils.Metric.setCurrentMetric(value); + LocalStorage.setItem("de-mobile-settings-unit", value); + + const api = Common.EditorApi.get(); + 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)); + } + + switchSpellCheck(value) { + LocalStorage.setBool("de-mobile-spellcheck", value); + Common.EditorApi.get().asc_setSpellCheck(value); + } + + switchNoCharacters(value) { + LocalStorage.setBool("de-mobile-no-characters", value); + Common.EditorApi.get().put_ShowParaMarks(value); + } + + switchShowTableEmptyLine(value) { + LocalStorage.setBool("de-mobile-hidden-borders", value); + Common.EditorApi.get().put_ShowTableEmptyLine(value); + } + + switchDisplayComments(value) { + const api = Common.EditorApi.get(); + if (!value) { + api.asc_hideComments(); + this.switchDisplayResolved(value); + LocalStorage.setBool("de-settings-resolvedcomment", false); + } else { + const resolved = LocalStorage.getBool("de-settings-resolvedcomment"); + api.asc_showComments(resolved); + } + LocalStorage.setBool("de-mobile-settings-livecomment", value); + } + + switchDisplayResolved(value) { + const displayComments = LocalStorage.getBool("de-mobile-settings-livecomment"); + if (displayComments) { + Common.EditorApi.get().asc_showComments(value); + LocalStorage.setBool("de-settings-resolvedcomment", value); + } + } + + setMacrosSettings(value) { + LocalStorage.setItem("de-mobile-macros-mode", value); + } + + render() { + return ( + + ) + } +} + + +export default ApplicationSettingsController; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/settings/DocumentInfo.jsx b/apps/documenteditor/mobile/src/controller/settings/DocumentInfo.jsx new file mode 100644 index 000000000..53ceb4ab3 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/settings/DocumentInfo.jsx @@ -0,0 +1,107 @@ +import React, { Component } from "react"; +import { observer, inject } from "mobx-react"; +import DocumentInfo from "../../view/settings/DocumentInfo"; + +class DocumentInfoController extends Component { + constructor(props) { + super(props); + this.docProps = this.getDocProps(); + this.getModified = this.getModified(); + this.getModifiedBy = this.getModifiedBy(); + this.getCreators = this.getCreators(); + this.title = this.getTitle(); + this.subject = this.getSubject(); + this.description = this.getDescription(); + this.getCreated = this.getCreated(); + } + + getDocProps() { + const api = Common.EditorApi.get(); + return api.asc_getCoreProps(); + } + + getAppProps() { + const api = Common.EditorApi.get(); + const appProps = api.asc_getAppProps(); + + if (appProps) { + let appName = + (appProps.asc_getApplication() || "") + + (appProps.asc_getAppVersion() ? " " : "") + + (appProps.asc_getAppVersion() || ""); + return appName; + } + } + + getModified() { + let valueModified = this.docProps.asc_getModified(); + const _lang = this.props.storeAppOptions.lang; + + if (valueModified) { + return ( + valueModified.toLocaleString(_lang, { + year: "numeric", + month: "2-digit", + day: "2-digit", + }) + + " " + + valueModified.toLocaleTimeString(_lang, { timeStyle: "short" }) + ); + } + } + + getModifiedBy() { + let valueModifiedBy = this.docProps.asc_getLastModifiedBy(); + + if (valueModifiedBy) { + return Common.Utils.UserInfoParser.getParsedName(valueModifiedBy); + } + } + + getCreators() { + return this.docProps.asc_getCreator(); + } + + getTitle() { + return this.docProps.asc_getTitle(); + } + + getSubject() { + return this.docProps.asc_getSubject(); + } + + getDescription() { + return this.docProps.asc_getDescription(); + } + + getCreated() { + let value = this.docProps.asc_getCreated(); + + if(value) { + return value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'}); + } + } + + componentDidMount() { + const api = Common.EditorApi.get(); + api.startGetDocInfo(); + } + + render() { + return ( + + ); + } +} + + +export default inject("storeAppOptions")(observer(DocumentInfoController)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/settings/DocumentSettings.jsx b/apps/documenteditor/mobile/src/controller/settings/DocumentSettings.jsx new file mode 100644 index 000000000..5d6c73652 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/settings/DocumentSettings.jsx @@ -0,0 +1,99 @@ + +import React, {Component} from 'react'; +import {DocumentSettings} from '../../view/settings/DocumentSettings'; + + +class DocumentSettingsController extends Component { + constructor (props) { + super (props); + this.getMargins = this.getMargins.bind(this); + this.applyMargins = this.applyMargins.bind(this); + } + + onPageOrientation (value){ + const api = Common.EditorApi.get(); + if (api) { + api.change_PageOrient(value == 'portrait'); + } + } + + onFormatChange (value) { + const api = Common.EditorApi.get(); + if (api) { + api.change_DocSize(value[0], value[1]); + } + } + + getMargins() { + const api = Common.EditorApi.get(); + if (api) { + this.localSectionProps = api.asc_GetSectionProps(); + if (this.localSectionProps) { + this.maxMarginsH = this.localSectionProps.get_H() - 2.6; + this.maxMarginsW = this.localSectionProps.get_W() - 12.7; + + const top = this.localSectionProps.get_TopMargin(); + const bottom = this.localSectionProps.get_BottomMargin(); + const left = this.localSectionProps.get_LeftMargin(); + const right = this.localSectionProps.get_RightMargin(); + + return { + top, + bottom, + left, + right, + maxMarginsW: this.maxMarginsW, + maxMarginsH: this.maxMarginsH + } + } + } + } + + applyMargins (align, value) { + const api = Common.EditorApi.get(); + + if (api) { + switch (align) { + case 'left': + this.localSectionProps.put_LeftMargin(value); + break; + case 'top': + this.localSectionProps.put_TopMargin(value); + break; + case 'right': + this.localSectionProps.put_RightMargin(value); + break; + case 'bottom': + this.localSectionProps.put_BottomMargin(value); + break; + } + api.asc_SetSectionProps(this.localSectionProps); + } + } + + // Color Schemes + + initPageColorSchemes() { + const api = Common.EditorApi.get(); + return api.asc_GetCurrentColorSchemeIndex(); + } + + onColorSchemeChange(newScheme) { + const api = Common.EditorApi.get(); + api.asc_ChangeColorSchemeByIdx(+newScheme); + } + + render () { + return ( + + ) + } +} + +export default DocumentSettingsController; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/settings/Download.jsx b/apps/documenteditor/mobile/src/controller/settings/Download.jsx new file mode 100644 index 000000000..187b65c7b --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/settings/Download.jsx @@ -0,0 +1,154 @@ +import React, { Component } from "react"; +import Download from "../../view/settings/Download"; +import { Device } from '../../../../../common/mobile/utils/device'; +import { f7 } from 'framework7-react'; +import { withTranslation, useTranslation } from 'react-i18next'; + +class DownloadController extends Component { + constructor(props) { + super(props); + this.onSaveFormat = this.onSaveFormat.bind(this); + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('.settings-popup', true); + } else { + f7.popover.close('#settings-popover'); + } + } + + onSaveFormat(format) { + const api = Common.EditorApi.get(); + const { t } = this.props; + const _t = t("Settings", { returnObjects: true }); + + if(format) { + if (format == Asc.c_oAscFileType.TXT || format == Asc.c_oAscFileType.RTF) { + f7.dialog.confirm( + (format === Asc.c_oAscFileType.TXT) ? _t.textDownloadTxt : _t.textDownloadRtf, + _t.notcriticalErrorTitle, + function () { + if (format == Asc.c_oAscFileType.TXT) { + onAdvancedOptions(Asc.c_oAscAdvancedOptionsID.TXT, api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format), _t); + } + else { + api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); + } + } + ); + } + else { + api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); + } + + this.closeModal(); + } + } + + render() { + return ( + + ); + } +} +const DownloadWithTranslation = withTranslation()(DownloadController); + +const onAdvancedOptions = (type, advOptions, mode, formatOptions, _t, canRequestClose) => { + if ($$('.dlg-adv-options.modal-in').length > 0) return; + + const api = Common.EditorApi.get(); + if (type == Asc.c_oAscAdvancedOptionsID.TXT) { + let picker; + const pages = []; + const pagesName = []; + for (let page of advOptions.asc_getCodePages()) { + pages.push(page.asc_getCodePage()); + pagesName.push(page.asc_getCodePageName()); + } + //me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); + const buttons = []; + if (mode === 2) { + buttons.push({ + text: _t.textCancel + }); + } + buttons.push({ + text: 'OK', + bold: true, + onClick: function() { + const encoding = picker.value; + if (mode==2) { + formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(encoding)); + api.asc_DownloadAs(formatOptions); + } else { + api.asc_setAdvancedOptions(type, new Asc.asc_CTextOptions(encoding)); + } + //if (!me._isDocReady) { + //me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); + //} + } + }); + const dialog = f7.dialog.create({ + title: _t.advTxtOptions, + text: '', + content: + '
          ' + + '
          ' + + '
          ' + _t.textEncoding + '
          ' + + '
          ' + + '
          ' + + '
          ', + buttons: buttons, + cssClass: 'dlg-adv-options' + }).open(); + dialog.on('opened', () => { + picker = f7.picker.create({ + containerEl: document.getElementById('txt-encoding'), + cols: [ + { + values: pages, + displayValues: pagesName + } + ], + toolbar: false, + rotateEffect: true, + value: [advOptions.asc_getRecommendedSettings().asc_getCodePage()], + }); + }); + } else if (type == Asc.c_oAscAdvancedOptionsID.DRM) { + //me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); + const buttons = [{ + text: 'OK', + bold: true, + onClick: function () { + const password = document.getElementById('modal-password').value; + api.asc_setAdvancedOptions(type, new Asc.asc_CDRMAdvancedOptions(password)); + //if (!me._isDocReady) { + //Common.Notifications.trigger('preloader:beginAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + //} + } + }]; + if (canRequestClose) + buttons.push({ + text: _t.closeButtonText, + onClick: function () { + Common.Gateway.requestClose(); + } + }); + f7.dialog.create({ + title: _t.advDRMOptions, + text: _t.txtProtected, + content: + '
          ', + buttons: buttons, + cssClass: 'dlg-adv-options' + }).open(); + } +}; + + +export { + DownloadWithTranslation as DownloadController, + onAdvancedOptions +}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/controller/settings/Settings.jsx b/apps/documenteditor/mobile/src/controller/settings/Settings.jsx new file mode 100644 index 000000000..aecd11e22 --- /dev/null +++ b/apps/documenteditor/mobile/src/controller/settings/Settings.jsx @@ -0,0 +1,77 @@ +import React, {useEffect} from 'react'; +import { useTranslation } from 'react-i18next'; +import {f7} from 'framework7-react'; +import { observer, inject } from "mobx-react"; +import {Device} from '../../../../../common/mobile/utils/device'; + +import SettingsView from "../../view/settings/Settings"; + +const Settings = props => { + useEffect(() => { + if ( Device.phone ) { + f7.popup.open('.settings-popup'); + } else { + f7.popover.open('#settings-popover', '#btn-settings'); + } + + return () => { + // component will unmount + } + }); + + const onviewclosed = () => { + if ( props.onclosed ) + props.onclosed(); + }; + + const closeModal = () => { + if (Device.phone) { + f7.sheet.close('.settings-popup'); + } else { + f7.popover.close('#settings-popover'); + } + }; + + const onReaderMode = () => { + const appOptions = props.storeAppOptions; + appOptions.changeReaderMode(); + + Common.EditorApi.get().ChangeReaderMode(); + + if (Device.phone) { + setTimeout(() => { + closeModal(); + }, 1); + } + }; + + const onPrint = () => { + setTimeout(() => { + Common.EditorApi.get().asc_Print(); + }, 1); + closeModal(); + }; + + const showHelp = () => { + let url = __HELP_URL__; + // let url = 'https://helpcenter.onlyoffice.com'; + + if (url.charAt(url.length-1) !== '/') { + url += '/'; + } + + if (Device.sailfish || Device.android) { + url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; + } + else { + url+='mobile-applications/documents/mobile-web-editors/ios/index.aspx'; + } + + closeModal(); + window.open(url, "_blank"); + }; + + return +}; + +export default inject("storeAppOptions")(observer(Settings)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/index_dev.html b/apps/documenteditor/mobile/src/index_dev.html new file mode 100644 index 000000000..e6206d4cb --- /dev/null +++ b/apps/documenteditor/mobile/src/index_dev.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + Desktop Editor + + + + + + + + + + + + + + +
          + + + + + \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/less/app-ios.less b/apps/documenteditor/mobile/src/less/app-ios.less new file mode 100644 index 000000000..fefaee26d --- /dev/null +++ b/apps/documenteditor/mobile/src/less/app-ios.less @@ -0,0 +1,30 @@ + +.device-ios { + + +} + +// Color Schemes + +.color-schemes-menu { + cursor: pointer; + display: block; + background-color: #fff; + .item-inner { + justify-content: flex-start; + } + .color-schema-block { + display: flex; + } + .color { + min-width: 26px; + min-height: 26px; + margin: 0 2px 0 0; + box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset; + } + .item-title { + margin-left: 20px; + color: #212121; + } +} + diff --git a/apps/documenteditor/mobile/src/less/app-material.less b/apps/documenteditor/mobile/src/less/app-material.less new file mode 100644 index 000000000..981437364 --- /dev/null +++ b/apps/documenteditor/mobile/src/less/app-material.less @@ -0,0 +1,78 @@ + +// Colors +@themeColorLight: #a2bdde; +@navBarIconColor: #fff; + + +.device-android { + // Main Toolbar + #editor-navbar.navbar .right { + padding-right: 4px; + } + #editor-navbar.navbar .right a.link, + #editor-navbar.navbar .left a.link { + padding: 0 13px; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + width: auto; + } + + .toggle input[type="checkbox"]:checked + .toggle-icon { + background-color: rgba(68,105,149,.5); + } + + // Review + .page-review { + .header-change { + display: flex; + } + .toolbar { + height: 56px; + .toolbar-inner { + padding: 0 15px; + .link { + padding: 0; + font-size: 14px; + text-transform: uppercase; + font-weight: 500; + } + } + } + .initials { + height: 40px; + width: 40px; + border-radius: 50px; + color: @white; + display: flex; + justify-content: center; + align-items: center; + margin-right: 16px; + font-size: 18px; + } + } +} + +// Color Schemes + +.color-schemes-menu { + cursor: pointer; + display: block; + background-color: #fff; + .item-inner { + justify-content: flex-start; + } + .color-schema-block { + display: flex; + } + .color { + min-width: 26px; + min-height: 26px; + margin: 0 2px 0 0; + box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset; + } + .item-title { + margin-left: 20px; + color: #212121; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/less/app.less b/apps/documenteditor/mobile/src/less/app.less new file mode 100644 index 000000000..b834e876a --- /dev/null +++ b/apps/documenteditor/mobile/src/less/app.less @@ -0,0 +1,73 @@ +@themeColor: #446995; + +@import '../../../../../vendor/framework7-react/node_modules/framework7/less/mixins.less'; + +@import '../../../../common/mobile/resources/less/_mixins.less'; +@import '../../../../common/mobile/resources/less/collaboration.less'; +@import '../../../../common/mobile/resources/less/common.less'; +@import '../../../../common/mobile/resources/less/common-ios.less'; +@import '../../../../common/mobile/resources/less/common-material.less'; +@import '../../../../common/mobile/resources/less/icons.less'; +@import '../../../../common/mobile/resources/less/dataview.less'; +@import '../../../../common/mobile/resources/less/search.less'; +@import '../../../../common/mobile/resources/less/contextmenu.less'; +@import '../../../../common/mobile/resources/less/comments.less'; +@import './app-material.less'; +@import './app-ios.less'; +@import './icons-ios.less'; +@import './icons-material.less'; + +:root { + --f7-popover-width: 360px; +} + +// Review +.page-review { + --f7-toolbar-link-color: @themeColor; + .toolbar { + background-color: @white; + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.2); + position: absolute; + #btn-reject-change { + margin-left: 20px; + } + #btn-goto-change { + margin-left: 10px; + } + .next-prev { + .link { + width: 44px; + } + } + } + .page-content { + background-color: @white; + .no-changes { + padding: 15px; + } + .block-description { + padding: 15px; + .user-name { + font-size: 17px; + line-height: 22px; + color: @black; + margin: 0; + } + .date-change { + font-size: 14px; + line-height: 18px; + color: @darkGray; + margin: 0; + margin-top: 3px; + } + .text { + color: @black; + font-size: 15px; + line-height: 20px; + margin: 0; + margin-top: 10px; + } + } + } +} + diff --git a/apps/documenteditor/mobile/src/less/icons-ios.less b/apps/documenteditor/mobile/src/less/icons-ios.less new file mode 100644 index 000000000..fef0d3c13 --- /dev/null +++ b/apps/documenteditor/mobile/src/less/icons-ios.less @@ -0,0 +1,525 @@ +.device-ios { + i.icon { + &.icon-undo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-redo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-edit-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-expand-down { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + //Settings + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-reader { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-doc-setup { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-app-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-download { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-print { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-info { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-help { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-about { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Download + + &.icon-format-docx { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-pdf { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-pdfa { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-txt { + width: 24px; + height: 24px; + .encoded-svg-background('') + } + + &.icon-format-rtf { + width: 24px; + height: 24px; + .encoded-svg-background('') + } + + &.icon-format-odt { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-html { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-dotx { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-ott { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + + //Edit + &.icon-text-additional { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-bullets { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-numbers { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-linespacing { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-text-color { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-text-selection { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + // Align + &.icon-text-align-left { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-right { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-center { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-just { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-de-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-in-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + // Table + &.icon-table-add-column-left { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-add-column-right { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-add-row-above { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-add-row-below { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-remove-column { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-remove-row { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + // Presets of table borders + &.icon-table-borders-all { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-none { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-inner { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-outer { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-left { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-center { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-right { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-top { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-middle { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-bottom { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + // Reorder + &.icon-move-backward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-forward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-background { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-foreground { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + // Wrap + &.icon-wrap-inline { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-wrap-square { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-wrap-tight { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-wrap-through { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-wrap-top-bottom { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-wrap-infront { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-wrap-behind { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + // Table Wrap + &.icon-wrap-table-inline { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-wrap-table-flow { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-block-align-left { + width: 28px; + height: 28px; + .encoded-svg-mask(''); + } + &.icon-block-align-center { + width: 28px; + height: 28px; + .encoded-svg-mask(''); + } + &.icon-block-align-right { + width: 28px; + height: 28px; + .encoded-svg-mask(''); + } + // Insert link/image-library + &.icon-link { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-image-library { + width: 22px; + height: 22px; + .encoded-svg-background('icons_for_svg'); + } + //Insert + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-pagenumber { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-sectionbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-footnote { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-pagebreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-stringbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + // Collaboration + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-accept-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-reject-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-accept { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-reject { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-next-change { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-prev-change { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-goto { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + // Comments + &.icon-menu-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-resolve-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-resolve-comment.check { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + .tab-link-active { + i.icon { + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/less/icons-material.less b/apps/documenteditor/mobile/src/less/icons-material.less new file mode 100644 index 000000000..79eaa86d6 --- /dev/null +++ b/apps/documenteditor/mobile/src/less/icons-material.less @@ -0,0 +1,459 @@ +.device-android { + .navbar { + i.icon { + &.icon-undo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-redo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-edit-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-expand-down { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + // Insert + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + } + } + i.icon { + &.icon-plus { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-expand-down { + width: 17px; + height: 17px; + .encoded-svg-background(''); + } + &.icon-expand-up { + width: 17px; + height: 17px; + .encoded-svg-background(''); + } + //Settings + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-reader { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-doc-setup { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-app-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-download { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-print { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-info { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-help { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-about { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Download + + &.icon-format-docx { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-pdf { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-pdfa { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-txt { + width: 24px; + height: 24px; + .encoded-svg-background('') + } + + &.icon-format-rtf { + width: 24px; + height: 24px; + .encoded-svg-background('') + } + + &.icon-format-odt { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-html { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-dotx { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + &.icon-format-ott { + width: 30px; + height: 30px; + .encoded-svg-background('') + } + + + //Edit + + &.icon-text-align-left { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-right { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-center { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-just { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-de-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-in-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + // Table + &.icon-table-add-column-left { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-add-column-right { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-add-row-above { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-add-row-below { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-remove-column { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-table-remove-row { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + // Presets of table borders + &.icon-table-borders-all { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-none { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-inner { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-outer { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-left { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-center { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-right { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-top { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-middle { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-bottom { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + // Reorder + &.icon-move-backward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-forward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-background { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-foreground { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + // Table Wrap + &.icon-block-align-left { + width: 28px; + height: 28px; + .encoded-svg-mask(''); + } + &.icon-block-align-center { + width: 28px; + height: 28px; + .encoded-svg-mask(''); + } + &.icon-block-align-right { + width: 28px; + height: 28px; + .encoded-svg-mask(''); + } + // Insert link/image-library + &.icon-link { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-image-library { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-pagenumber { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-sectionbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-footnote { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-pagebreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-stringbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + // Collaboration + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-accept-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-reject-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-accept { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-reject { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-next-change { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-prev-change { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-goto { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + // Comments + &.icon-menu-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-resolve-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-resolve-comment.check { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-done-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-done-comment-white { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/lib/i18n.js b/apps/documenteditor/mobile/src/lib/i18n.js new file mode 100644 index 000000000..b3d3566ee --- /dev/null +++ b/apps/documenteditor/mobile/src/lib/i18n.js @@ -0,0 +1,17 @@ +import i18n from 'i18next' +import {initReactI18next} from 'react-i18next' +import Fetch from 'i18next-fetch-backend' + +i18n.use(initReactI18next) + .use(Fetch) + .init({ + lng: Common.Locale.currentLang, + fallbackLng: "en", + escapeValue: false, + backend: { + loadPath: './locale/{{lng}}.json' + }, + interpolation: { escapeValue: false }, + }); + +export default i18n; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/lib/patch.jsx b/apps/documenteditor/mobile/src/lib/patch.jsx new file mode 100644 index 000000000..963aca451 --- /dev/null +++ b/apps/documenteditor/mobile/src/lib/patch.jsx @@ -0,0 +1,23 @@ + +const EditorUIController = () => { + return null +}; + +EditorUIController.isSupportEditFeature = () => { + return false +}; + +EditorUIController.getToolbarOptions = () => { + return null +}; + +EditorUIController.initFonts = () => null; +EditorUIController.initEditorStyles = () => null; +EditorUIController.initFocusObjects = () => null; +EditorUIController.initTableTemplates = () => null; +EditorUIController.ContextMenu = { + mapMenuItems: () => [], + handleMenuItemClick: () => true, +}; + +export default EditorUIController; diff --git a/apps/documenteditor/mobile/src/page/main.jsx b/apps/documenteditor/mobile/src/page/main.jsx new file mode 100644 index 000000000..2a32a5103 --- /dev/null +++ b/apps/documenteditor/mobile/src/page/main.jsx @@ -0,0 +1,108 @@ + +import React, { Component } from 'react'; +import { f7 } from 'framework7-react'; +import { Page, View, Navbar, Subnavbar, Icon } from 'framework7-react'; +import { observer, inject } from "mobx-react"; + +import EditOptions from '../view/edit/Edit'; +import AddOptions from '../view/add/Add'; +import Settings from '../controller/settings/Settings'; +import Collaboration from '../../../../common/mobile/lib/view/collaboration/Collaboration.jsx' +import { Device } from '../../../../common/mobile/utils/device' +import { Search, SearchSettings } from '../controller/Search'; +import ContextMenu from '../controller/ContextMenu'; +import { Toolbar } from "../controller/Toolbar"; + +class MainPage extends Component { + constructor(props) { + super(props); + this.state = { + editOptionsVisible: false, + addOptionsVisible: false, + addShowOptions: null, + settingsVisible: false, + collaborationVisible: false + }; + } + + handleClickToOpenOptions = (opts, showOpts) => { + ContextMenu.closeContextMenu(); + + this.setState(state => { + if ( opts == 'edit' ) + return {editOptionsVisible: true}; + else if ( opts == 'add' ) + return { + addOptionsVisible: true, + addShowOptions: showOpts + }; + else if ( opts == 'settings' ) + return {settingsVisible: true}; + else if ( opts == 'coauth' ) + return { + collaborationVisible: true, + collaborationPage: showOpts + }; + }); + }; + + handleOptionsViewClosed = opts => { + (async () => { + await 1 && this.setState(state => { + if ( opts == 'edit' ) + return {editOptionsVisible: false}; + else if ( opts == 'add' ) + return {addOptionsVisible: false}; + else if ( opts == 'settings' ) + return {settingsVisible: false}; + else if ( opts == 'coauth' ) + return {collaborationVisible: false}; + }) + })(); + }; + + render() { + const appOptions = this.props.storeAppOptions; + const config = appOptions.config; + const showLogo = !(appOptions.canBrandingExt && (config.customization && (config.customization.loaderName || config.customization.loaderLogo))); + return ( + + {/* Top Navbar */} + + {showLogo &&
          } + + + + +
          + {/* Page content */} + + + + {/* { + Device.phone ? null : + } */} + + { + !this.state.editOptionsVisible ? null : + + } + { + !this.state.addOptionsVisible ? null : + + } + { + !this.state.settingsVisible ? null : + + } + { + !this.state.collaborationVisible ? null : + + } + +
          + ) + } +} + +export default inject("storeAppOptions")(observer(MainPage)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/router/routes.js b/apps/documenteditor/mobile/src/router/routes.js new file mode 100644 index 000000000..d64d8ccbe --- /dev/null +++ b/apps/documenteditor/mobile/src/router/routes.js @@ -0,0 +1,11 @@ + +import MainPage from '../page/main'; + +var routes = [ + { + path: '/', + component: MainPage, + } +]; + +export default routes; diff --git a/apps/documenteditor/mobile/src/store/appOptions.js b/apps/documenteditor/mobile/src/store/appOptions.js new file mode 100644 index 000000000..f0e5ddcdf --- /dev/null +++ b/apps/documenteditor/mobile/src/store/appOptions.js @@ -0,0 +1,115 @@ +import {makeObservable, action, observable} from 'mobx'; + +export class storeAppOptions { + constructor() { + makeObservable(this, { + isEdit: observable, + canViewComments: observable, + canReview: observable, + setConfigOptions: action, + setPermissionOptions: action, + + canViewReview: observable, + setCanViewReview: action, + + lostEditingRights: observable, + changeEditingRights: action, + + readerMode: observable, + changeReaderMode: action, + + canBrandingExt: observable + }); + } + + isEdit = false; + canViewComments = false; + canReview = false; + canViewReview = false; + + lostEditingRights = false; + changeEditingRights (value) { + this.lostEditingRights = value; + } + + readerMode = false; + changeReaderMode () { + this.readerMode = !this.readerMode; + } + + canBrandingExt = false; + + config = {}; + setConfigOptions (config) { + this.config = config; + this.user = Common.Utils.fillUserInfo(config.user, config.lang, "Local.User"/*me.textAnonymous*/); + this.isDesktopApp = config.targetApp == 'desktop'; + this.canCreateNew = !!config.createUrl && !this.isDesktopApp; + this.canOpenRecent = config.recent !== undefined && !this.isDesktopApp; + this.templates = config.templates; + this.recent = config.recent; + this.createUrl = config.createUrl; + this.lang = config.lang; + this.location = (typeof (config.location) == 'string') ? config.location.toLowerCase() : ''; + this.sharingSettingsUrl = config.sharingSettingsUrl; + this.fileChoiceUrl = config.fileChoiceUrl; + this.mergeFolderUrl = config.mergeFolderUrl; + this.canAnalytics = false; + this.canRequestClose = config.canRequestClose; + this.customization = config.customization; + this.canBackToFolder = (config.canBackToFolder!==false) && (typeof (config.customization) == 'object') && (typeof (config.customization.goback) == 'object') + && (!!(config.customization.goback.url) || config.customization.goback.requestClose && this.canRequestClose); + this.canBack = this.canBackToFolder === true; + this.canPlugins = false; + } + setPermissionOptions (document, licType, params, permissions) { + this.review = (permissions.review === undefined) ? (permissions.edit !== false) : permissions.review; + this.canAnalytics = params.asc_getIsAnalyticsEnable(); + this.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); + this.isLightVersion = params.asc_getIsLight(); + this.canCoAuthoring = !this.isLightVersion; + this.isOffline = Common.EditorApi.get().asc_isOffline(); + this.isReviewOnly = (permissions.review === true) && (permissions.edit === false); + this.canRequestEditRights = this.config.canRequestEditRights; + this.canEdit = (permissions.edit !== false || permissions.review === true) && // can edit or review + (this.config.canRequestEditRights || this.config.mode !== 'view') && // if mode=="view" -> canRequestEditRights must be defined + (!this.isReviewOnly || this.canLicense) && // if isReviewOnly==true -> canLicense must be true + true/*isSupportEditFeature*/; + this.isEdit = this.canLicense && this.canEdit && this.config.mode !== 'view'; + this.canReview = this.canLicense && this.isEdit && (permissions.review===true); + this.canUseHistory = this.canLicense && !this.isLightVersion && this.config.canUseHistory && this.canCoAuthoring && !this.isDesktopApp; + this.canHistoryClose = this.config.canHistoryClose; + this.canUseMailMerge = this.canLicense && this.canEdit && !this.isDesktopApp; + this.canSendEmailAddresses = this.canLicense && this.config.canSendEmailAddresses && this.canEdit && this.canCoAuthoring; + this.canComments = this.canLicense && (permissions.comment === undefined ? this.isEdit : permissions.comment) && (this.config.mode !== 'view'); + this.canComments = this.canComments && !((typeof (this.customization) == 'object') && this.customization.comments===false); + this.canViewComments = this.canComments || !((typeof (this.customization) == 'object') && this.customization.comments===false); + this.canEditComments = this.isOffline || !(typeof (this.customization) == 'object' && this.customization.commentAuthorOnly); + this.canChat = this.canLicense && !this.isOffline && !((typeof (this.customization) == 'object') && this.customization.chat === false); + this.canEditStyles = this.canLicense && this.canEdit; + this.canPrint = (permissions.print !== false); + this.fileKey = document.key; + this.canFillForms = this.canLicense && ((permissions.fillForms===undefined) ? this.isEdit : permissions.fillForms) && (this.config.mode !== 'view'); + this.isRestrictedEdit = !this.isEdit && (this.canComments || this.canFillForms); + if (this.isRestrictedEdit && this.canComments && this.canFillForms) // must be one restricted mode, priority for filling forms + this.canComments = false; + this.trialMode = params.asc_getLicenseMode(); + + const type = /^(?:(pdf|djvu|xps))$/.exec(document.fileType); + this.canDownloadOrigin = permissions.download !== false && (type && typeof type[1] === 'string'); + this.canDownload = permissions.download !== false && (!type || typeof type[1] !== 'string'); + this.canReader = (!type || typeof type[1] !== 'string'); + + this.canBranding = params.asc_getCustomization(); + this.canBrandingExt = params.asc_getCanBranding() && (typeof this.customization == 'object'); + + if ( this.isLightVersion ) { + this.canUseHistory = this.canReview = this.isReviewOnly = false; + } + + this.canUseReviewPermissions = this.canLicense && this.customization && this.customization.reviewPermissions && (typeof (this.customization.reviewPermissions) == 'object'); + } + setCanViewReview (value) { + this.canViewReview = value; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/applicationSettings.js b/apps/documenteditor/mobile/src/store/applicationSettings.js new file mode 100644 index 000000000..9fea1a4f0 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/applicationSettings.js @@ -0,0 +1,59 @@ +import {makeObservable, action, observable} from 'mobx'; + +export class storeApplicationSettings { + constructor() { + makeObservable(this, { + unitMeasurement: observable, + isSpellChecking: observable, + isNonprintingCharacters: observable, + isHiddenTableBorders: observable, + isComments: observable, + isResolvedComments: observable, + macrosMode: observable, + changeSpellCheck: action, + changeUnitMeasurement: action, + changeNoCharacters: action, + changeShowTableEmptyLine: action, + changeDisplayComments: action, + changeDisplayResolved: action, + changeMacrosSettings: action + }) + } + + unitMeasurement = 1; + isSpellChecking = true; + isNonprintingCharacters = false; + isHiddenTableBorders = false; + isComments = true; + isResolvedComments = true; + macrosMode = 0; + + changeUnitMeasurement(value) { + this.unitMeasurement = +value; + } + + changeSpellCheck(value) { + this.isSpellChecking = value; + } + + changeNoCharacters(value) { + this.isNonprintingCharacters = value; + } + + changeShowTableEmptyLine(value) { + this.isHiddenTableBorders = value; + } + + changeDisplayComments(value) { + this.isComments = value; + if (!value) this.changeDisplayResolved(value); + } + + changeDisplayResolved(value) { + this.isResolvedComments = value; + } + + changeMacrosSettings(value) { + this.macrosMode = +value; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/chartSettings.js b/apps/documenteditor/mobile/src/store/chartSettings.js new file mode 100644 index 000000000..8ae720d45 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/chartSettings.js @@ -0,0 +1,220 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeChartSettings { + constructor() { + makeObservable(this, { + chartStyles: observable, + fillColor: observable, + borderColor: observable, + clearChartStyles: action, + updateChartStyles: action, + styles: computed, + types: computed, + setFillColor: action, + getFillColor: action, + setBorderColor: action, + initBorderColor: action + }); + } + + wrapTypesTransform () { + const map = [ + { ui:'inline', sdk: Asc.c_oAscWrapStyle2.Inline }, + { ui:'square', sdk: Asc.c_oAscWrapStyle2.Square }, + { ui:'tight', sdk: Asc.c_oAscWrapStyle2.Tight }, + { ui:'through', sdk: Asc.c_oAscWrapStyle2.Through }, + { ui:'top-bottom', sdk: Asc.c_oAscWrapStyle2.TopAndBottom }, + { ui:'behind', sdk: Asc.c_oAscWrapStyle2.Behind }, + { ui:'infront', sdk: Asc.c_oAscWrapStyle2.InFront } + ]; + return { + sdkToUi: function(type) { + let record = map.filter(function(obj) { + return obj.sdk === type; + })[0]; + return record ? record.ui : ''; + }, + + uiToSdk: function(type) { + let record = map.filter(function(obj) { + return obj.ui === type; + })[0]; + return record ? record.sdk : 0; + } + } + } + + getWrapType (chartObject) { + const wrapping = chartObject.get_WrappingStyle(); + const chartWrapType = this.wrapTypesTransform().sdkToUi(wrapping); + return chartWrapType; + } + + transformToSdkWrapType (value) { + const sdkType = this.wrapTypesTransform().uiToSdk(value); + return sdkType; + } + + getAlign (chartObject) { + return chartObject.get_PositionH().get_Align(); + } + + getMoveText (chartObject) { + return chartObject.get_PositionV().get_RelativeFrom() == Asc.c_oAscRelativeFromV.Paragraph; + } + + getOverlap (chartObject) { + return chartObject.get_AllowOverlap(); + } + + getWrapDistance (chartObject) { + return chartObject.get_Paddings().get_Top(); + } + + // style + + chartStyles = null; + + clearChartStyles () { + this.chartStyles = null; + } + + updateChartStyles (styles) { + this.chartStyles = styles; + } + + get styles () { + if (!this.chartStyles) return null; + const widthContainer = document.querySelector(".page-content").clientWidth; + const columns = parseInt(widthContainer / 70); // magic + let row = -1; + const styles = []; + this.chartStyles.forEach((style, index) => { + if (0 == index % columns) { + styles.push([]); + row++ + } + styles[row].push(style); + }); + return styles; + } + + get types () { + const types = [ + { type: Asc.c_oAscChartTypeSettings.barNormal, thumb: 'chart-03.png'}, + { type: Asc.c_oAscChartTypeSettings.barStacked, thumb: 'chart-02.png'}, + { type: Asc.c_oAscChartTypeSettings.barStackedPer, thumb: 'chart-01.png'}, + { type: Asc.c_oAscChartTypeSettings.lineNormal, thumb: 'chart-06.png'}, + { type: Asc.c_oAscChartTypeSettings.lineStacked, thumb: 'chart-05.png'}, + { type: Asc.c_oAscChartTypeSettings.lineStackedPer, thumb: 'chart-04.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarNormal, thumb: 'chart-09.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStacked, thumb: 'chart-08.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStackedPer, thumb: 'chart-07.png'}, + { type: Asc.c_oAscChartTypeSettings.areaNormal, thumb: 'chart-12.png'}, + { type: Asc.c_oAscChartTypeSettings.areaStacked, thumb: 'chart-11.png'}, + { type: Asc.c_oAscChartTypeSettings.areaStackedPer, thumb: 'chart-10.png'}, + { type: Asc.c_oAscChartTypeSettings.pie, thumb: 'chart-13.png'}, + { type: Asc.c_oAscChartTypeSettings.doughnut, thumb: 'chart-14.png'}, + { type: Asc.c_oAscChartTypeSettings.pie3d, thumb: 'chart-22.png'}, + { type: Asc.c_oAscChartTypeSettings.scatter, thumb: 'chart-15.png'}, + { type: Asc.c_oAscChartTypeSettings.stock, thumb: 'chart-16.png'}, + { type: Asc.c_oAscChartTypeSettings.line3d, thumb: 'chart-21.png'}, + { type: Asc.c_oAscChartTypeSettings.barNormal3d, thumb: 'chart-17.png'}, + { type: Asc.c_oAscChartTypeSettings.barStacked3d, thumb: 'chart-18.png'}, + { type: Asc.c_oAscChartTypeSettings.barStackedPer3d, thumb: 'chart-19.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarNormal3d, thumb: 'chart-25.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStacked3d, thumb: 'chart-24.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStackedPer3d, thumb: 'chart-23.png'}, + { type: Asc.c_oAscChartTypeSettings.barNormal3dPerspective, thumb: 'chart-20.png'} + ]; + const columns = 3; + const arr = []; + let row = -1; + types.forEach((type, index) => { + if (0 == index % columns) { + arr.push([]); + row++ + } + arr[row].push(type); + }); + return arr; + } + + // Fill Color + + fillColor = undefined; + + setFillColor (color) { + this.fillColor = color; + } + + getFillColor (shapeProperties) { + let fill = shapeProperties.get_fill(); + const fillType = fill.get_type(); + let color = 'transparent'; + if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { + fill = fill.get_fill(); + const sdkColor = fill.get_color(); + if (sdkColor) { + if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; + } else { + color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); + } + } + } + this.fillColor = color; + return color; + } + + // Border size and border color + + borderColor; + + setBorderColor (color) { + this.borderColor = color; + } + + initBorderColor (stroke) { + let color = 'transparent'; + if (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { + const sdkColor = stroke.get_color(); + if (sdkColor) { + if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; + } + else { + color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); + } + } + } + this.borderColor = color; + return color; + } + + borderSizeTransform () { + const _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; + + return { + sizeByIndex: function (index) { + if (index < 1) return _sizes[0]; + if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/documentInfo.js b/apps/documenteditor/mobile/src/store/documentInfo.js new file mode 100644 index 000000000..3bfa67356 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/documentInfo.js @@ -0,0 +1,48 @@ +import {action, observable, makeObservable} from "mobx"; + +export class storeDocumentInfo { + constructor() { + makeObservable(this, { + infoObj: observable, + isLoaded: observable, + dataDoc: observable, + switchIsLoaded: action, + changeCount: action, + setDataDoc: action + }); + } + + infoObj = { + pageCount: 0, + wordsCount: 0, + paragraphCount: 0, + symbolsCount: 0, + symbolsWSCount: 0, + }; + + isLoaded = false; + dataDoc; + + switchIsLoaded(value) { + this.isLoaded = value; + } + + changeCount(obj) { + if (obj) { + if (obj.get_PageCount() > -1) + this.infoObj.pageCount = obj.get_PageCount(); + if (obj.get_WordsCount() > -1) + this.infoObj.wordsCount = obj.get_WordsCount(); + if (obj.get_ParagraphCount() > -1) + this.infoObj.paragraphCount = obj.get_ParagraphCount(); + if (obj.get_SymbolsCount() > -1) + this.infoObj.symbolsCount = obj.get_SymbolsCount(); + if (obj.get_SymbolsWSCount() > -1) + this.infoObj.symbolsWSCount = obj.get_SymbolsWSCount(); + } + } + + setDataDoc(obj) { + this.dataDoc = obj; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/documentSettings.js b/apps/documenteditor/mobile/src/store/documentSettings.js new file mode 100644 index 000000000..50a73a764 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/documentSettings.js @@ -0,0 +1,88 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeDocumentSettings { + constructor() { + makeObservable(this, { + isPortrait: observable, + widthDocument: observable, + heightDocument: observable, + allSchemes: observable, + resetPortrait: action, + changeDocSize: action, + pageSizesIndex: computed, + addSchemes: action + }); + } + + isPortrait = true; + + resetPortrait (isPortrait) { + this.isPortrait = isPortrait === true; + } + + //Document Formats + + widthDocument; + heightDocument; + + changeDocSize (width, height) { + let w = width; + let h = height; + if (!this.isPortrait) { + const tempW = w; + w = h; + h = tempW; + } + this.widthDocument = w; + this.heightDocument = h; + } + + getPageSizesList () { + const txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm); + const pageSizes = [ + { caption: 'US Letter', subtitle: '21,59 ' + txtCm + ' x 27,94 ' + txtCm, value: [215.9, 279.4] }, + { caption: 'US Legal', subtitle: '21,59 ' + txtCm + ' x 35,56 ' + txtCm, value: [215.9, 355.6] }, + { caption: 'A4', subtitle: '21 ' + txtCm + ' x 29,7 ' + txtCm, value: [210, 297] }, + { caption: 'A5', subtitle: '14,8 ' + txtCm + ' x 21 ' + txtCm, value: [148, 210] }, + { caption: 'B5', subtitle: '17,6 ' + txtCm + ' x 25 ' + txtCm, value: [176, 250] }, + { caption: 'Envelope #10', subtitle: '10,48 ' + txtCm + ' x 24,13 ' + txtCm, value: [104.8, 241.3] }, + { caption: 'Envelope DL', subtitle: '11 ' + txtCm + ' x 22 ' + txtCm, value: [110, 220] }, + { caption: 'Tabloid', subtitle: '27,94 ' + txtCm + ' x 43,18 ' + txtCm, value: [279.4, 431.8] }, + { caption: 'A3', subtitle: '29,7 ' + txtCm + ' x 42 ' + txtCm, value: [297, 420] }, + { caption: 'Tabloid Oversize', subtitle: '30,48 ' + txtCm + ' x 45,71 ' + txtCm, value: [304.8, 457.1] }, + { caption: 'ROC 16K', subtitle: '19,68 ' + txtCm + ' x 27,3 ' + txtCm, value: [196.8, 273] }, + { caption: 'Envelope Choukei 3', subtitle: '11,99 ' + txtCm + ' x 23,49 ' + txtCm, value: [119.9, 234.9] }, + { caption: 'Super B/A3', subtitle: '33,02 ' + txtCm + ' x 48,25 ' + txtCm, value: [330.2, 482.5] }, + { caption: 'A0', subtitle: '84,1 ' + txtCm + ' x 118,9 ' + txtCm, value: [841, 1189] }, + { caption: 'A1', subtitle: '59,4 ' + txtCm + ' x 84,1 ' + txtCm, value: [594, 841] }, + { caption: 'A2', subtitle: '42 ' + txtCm + ' x 59,4 ' + txtCm, value: [420, 594] }, + { caption: 'A6', subtitle: '10,5 ' + txtCm + ' x 14,8 ' + txtCm, value: [105, 148] } + ]; + return pageSizes; + } + + get pageSizesIndex () { + let w = this.widthDocument; + let h = this.heightDocument; + let ind = -1; + const pageSizes = this.getPageSizesList(); + pageSizes.forEach(function callback(size, index) { + if (Math.abs(size.value[0] - w) < 0.1 && Math.abs(size.value[1] - h) < 0.1) { + ind = index; + } + }, this); + if (ind === -1) { + ind = -1; + } + return ind; + } + + // Color Schemes + + allSchemes; + + addSchemes(arr) { + this.allSchemes = arr; + } + +} diff --git a/apps/documenteditor/mobile/src/store/focusObjects.js b/apps/documenteditor/mobile/src/store/focusObjects.js new file mode 100644 index 000000000..566463bee --- /dev/null +++ b/apps/documenteditor/mobile/src/store/focusObjects.js @@ -0,0 +1,79 @@ +import {action, observable, computed, makeObservable} from 'mobx'; +import EditorUIController from '../lib/patch' + +export class storeFocusObjects { + constructor() { + makeObservable(this, { + _focusObjects: observable, + _headerType: observable, + resetFocusObjects: action, + settings: computed, + headerType: computed, + headerObject: computed, + paragraphObject: computed, + shapeObject: computed, + imageObject: computed, + tableObject: computed, + isTableInStack: computed, + chartObject: computed, + linkObject: computed + }); + } + + _focusObjects = []; + _headerType = 1; + + resetFocusObjects (objects) { + } + + get settings() { + return !!this.intf ? this.intf.filterFocusObjects() : null; + } + + get headerType() { + for (let object of this._focusObjects) { + const type = object.get_ObjectType(); + if (Asc.c_oAscTypeSelectElement.Header === type) { + return object.get_ObjectValue().get_Type(); + } + } + return this._headerType; + } + + get headerObject() { + return !!this.intf ? this.intf.getHeaderObject() : null; + } + + get paragraphObject() { + return !!this.intf ? this.intf.getParagraphObject() : null; + } + + get shapeObject() { + return !!this.intf ? this.intf.getShapeObject() : null; + } + + get imageObject() { + return !!this.intf ? this.intf.getImageObject() : null; + } + + get tableObject() { + return !!this.intf ? this.intf.getTableObject() : null; + } + + get isTableInStack() { + for (let object of this._focusObjects) { + if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Table) { + return true; + } + } + return false; + } + + get chartObject() { + return !!this.intf ? this.intf.getChartObject() : null; + } + + get linkObject() { + return !!this.intf ? this.intf.getLinkObject() : null; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/imageSettings.js b/apps/documenteditor/mobile/src/store/imageSettings.js new file mode 100644 index 000000000..277e4a31f --- /dev/null +++ b/apps/documenteditor/mobile/src/store/imageSettings.js @@ -0,0 +1,57 @@ +import {action, observable, computed} from 'mobx'; + +export class storeImageSettings { + wrapTypesTransform () { + const map = [ + { ui:'inline', sdk: Asc.c_oAscWrapStyle2.Inline }, + { ui:'square', sdk: Asc.c_oAscWrapStyle2.Square }, + { ui:'tight', sdk: Asc.c_oAscWrapStyle2.Tight }, + { ui:'through', sdk: Asc.c_oAscWrapStyle2.Through }, + { ui:'top-bottom', sdk: Asc.c_oAscWrapStyle2.TopAndBottom }, + { ui:'behind', sdk: Asc.c_oAscWrapStyle2.Behind }, + { ui:'infront', sdk: Asc.c_oAscWrapStyle2.InFront } + ]; + return { + sdkToUi: function(type) { + let record = map.filter(function(obj) { + return obj.sdk === type; + })[0]; + return record ? record.ui : ''; + }, + + uiToSdk: function(type) { + let record = map.filter(function(obj) { + return obj.ui === type; + })[0]; + return record ? record.sdk : 0; + } + } + } + + getWrapType (imageObject) { + const wrapping = imageObject.get_WrappingStyle(); + const imageWrapType = this.wrapTypesTransform().sdkToUi(wrapping); + return imageWrapType; + } + + transformToSdkWrapType (value) { + const sdkType = this.wrapTypesTransform().uiToSdk(value); + return sdkType; + } + + getAlign (imageObject) { + return imageObject.get_PositionH().get_Align(); + } + + getMoveText (imageObject) { + return imageObject.get_PositionV().get_RelativeFrom() === Asc.c_oAscRelativeFromV.Paragraph; + } + + getOverlap (imageObject) { + return imageObject.get_AllowOverlap(); + } + + getWrapDistance (imageObject) { + return imageObject.get_Paddings().get_Top(); + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/mainStore.js b/apps/documenteditor/mobile/src/store/mainStore.js new file mode 100644 index 000000000..57fa6ee88 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/mainStore.js @@ -0,0 +1,35 @@ + +import {storeDocumentSettings} from './documentSettings'; +import {storeFocusObjects} from "./focusObjects"; +import {storeUsers} from '../../../../common/mobile/lib/store/users'; +import {storeTextSettings} from "./textSettings"; +import {storeParagraphSettings} from "./paragraphSettings"; +import {storeShapeSettings} from "./shapeSettings"; +import {storeImageSettings} from "./imageSettings"; +import {storeTableSettings} from "./tableSettings"; +import {storeChartSettings} from "./chartSettings"; +import {storeDocumentInfo} from "./documentInfo"; +import {storeApplicationSettings} from './applicationSettings'; +import {storeAppOptions} from "./appOptions"; +import {storePalette} from "./palette"; +import {storeReview} from "./review"; +import {storeComments} from "../../../../common/mobile/lib/store/comments"; + +export const stores = { + storeAppOptions: new storeAppOptions(), + storeFocusObjects: new storeFocusObjects(), + storeDocumentSettings: new storeDocumentSettings(), + users: new storeUsers(), + storeTextSettings: new storeTextSettings(), + storeParagraphSettings: new storeParagraphSettings(), + storeShapeSettings: new storeShapeSettings(), + storeChartSettings: new storeChartSettings(), + storeImageSettings: new storeImageSettings(), + storeTableSettings: new storeTableSettings(), + storeDocumentInfo: new storeDocumentInfo(), + storeApplicationSettings: new storeApplicationSettings(), + storePalette: new storePalette(), + storeReview: new storeReview(), + storeComments: new storeComments() +}; + diff --git a/apps/documenteditor/mobile/src/store/palette.js b/apps/documenteditor/mobile/src/store/palette.js new file mode 100644 index 000000000..55ba20a2d --- /dev/null +++ b/apps/documenteditor/mobile/src/store/palette.js @@ -0,0 +1,16 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storePalette { + constructor() { + makeObservable(this, { + customColors: observable, + changeCustomColors: action + }); + } + + customColors = []; + + changeCustomColors (colors) { + this.customColors = colors; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/paragraphSettings.js b/apps/documenteditor/mobile/src/store/paragraphSettings.js new file mode 100644 index 000000000..ecbe07431 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/paragraphSettings.js @@ -0,0 +1,64 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeParagraphSettings { + constructor() { + makeObservable(this, { + styles: observable, + styleThumbSize: observable, + styleName: observable, + backColor: observable, + initEditorStyles: action, + paragraphStyles: computed, + changeParaStyleName: action, + setBackColor: action, + getBackgroundColor: action + }); + } + + styles = []; + styleThumbSize = null; + styleName = undefined; + + initEditorStyles (styles) { + } + + get paragraphStyles () { + let _styles = []; + for (let style of this.styles) { + _styles.push({ + image : style.asc_getImage(), + name : style.get_Name() + }); + } + return _styles; + } + + changeParaStyleName (name) { + } + + backColor = undefined; + + setBackColor (color) { + this.backColor = color; + } + + getBackgroundColor (paragraphObject) { + const shade = paragraphObject.get_Shade(); + let backColor = 'transparent'; + if (!!shade && shade.get_Value() === Asc.c_oAscShdClear) { + const color = shade.get_Color(); + if (color) { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + backColor = { + color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), + effectValue: color.get_value() + }; + } else { + backColor = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + this.backColor = backColor; + return backColor; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/review.js b/apps/documenteditor/mobile/src/store/review.js new file mode 100644 index 000000000..61c39e384 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/review.js @@ -0,0 +1,24 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storeReview { + constructor() { + makeObservable(this, { + displayMode: observable, + dataChanges: observable, + changeDisplayMode: action, + changeArrReview: action + }); + } + + displayMode = 'markup'; + + changeDisplayMode (mode) { + this.displayMode = mode; + } + + dataChanges = []; + + changeArrReview (data) { + this.dataChanges = data && data.length > 0 ? data : []; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/shapeSettings.js b/apps/documenteditor/mobile/src/store/shapeSettings.js new file mode 100644 index 000000000..50e6c68e3 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/shapeSettings.js @@ -0,0 +1,284 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeShapeSettings { + constructor() { + makeObservable(this, { + fillColor: observable, + borderColorView: observable, + setFillColor: action, + getFillColor: action, + setBorderColor: action, + initBorderColorView: action + }); + } + + getStyleGroups () { + const styles = [ + { + title: 'Text', + thumb: 'shape-01.svg', + type: 'textRect' + }, + { + title: 'Line', + thumb: 'shape-02.svg', + type: 'line' + }, + { + title: 'Line with arrow', + thumb: 'shape-03.svg', + type: 'lineWithArrow' + }, + { + title: 'Line with two arrows', + thumb: 'shape-04.svg', + type: 'lineWithTwoArrows' + }, + { + title: 'Rect', + thumb: 'shape-05.svg', + type: 'rect' + }, + { + title: 'Hexagon', + thumb: 'shape-06.svg', + type: 'hexagon' + }, + { + title: 'Round rect', + thumb: 'shape-07.svg', + type: 'roundRect' + }, + { + title: 'Ellipse', + thumb: 'shape-08.svg', + type: 'ellipse' + }, + { + title: 'Triangle', + thumb: 'shape-09.svg', + type: 'triangle' + }, + { + title: 'Triangle', + thumb: 'shape-10.svg', + type: 'rtTriangle' + }, + { + title: 'Trapezoid', + thumb: 'shape-11.svg', + type: 'trapezoid' + }, + { + title: 'Diamond', + thumb: 'shape-12.svg', + type: 'diamond' + }, + { + title: 'Right arrow', + thumb: 'shape-13.svg', + type: 'rightArrow' + }, + { + title: 'Left-right arrow', + thumb: 'shape-14.svg', + type: 'leftRightArrow' + }, + { + title: 'Left arrow callout', + thumb: 'shape-15.svg', + type: 'leftArrow' + }, + { + title: 'Right arrow callout', + thumb: 'shape-16.svg', + type: 'bentUpArrow' + }, + { + title: 'Flow chart off page connector', + thumb: 'shape-17.svg', + type: 'flowChartOffpageConnector' + }, + { + title: 'Heart', + thumb: 'shape-18.svg', + type: 'heart' + }, + { + title: 'Math minus', + thumb: 'shape-19.svg', + type: 'mathMinus' + }, + { + title: 'Math plus', + thumb: 'shape-20.svg', + type: 'mathPlus' + }, + { + title: 'Parallelogram', + thumb: 'shape-21.svg', + type: 'parallelogram' + }, + { + title: 'Wedge rect callout', + thumb: 'shape-22.svg', + type: 'wedgeRectCallout' + }, + { + title: 'Wedge ellipse callout', + thumb: 'shape-23.svg', + type: 'wedgeEllipseCallout' + }, + { + title: 'Cloud callout', + thumb: 'shape-24.svg', + type: 'cloudCallout' + } + ]; + const groups = []; + let i = 0; + for (let row=0; row _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } + +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/tableSettings.js b/apps/documenteditor/mobile/src/store/tableSettings.js new file mode 100644 index 000000000..892e307a2 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/tableSettings.js @@ -0,0 +1,174 @@ +import {makeObservable, action, observable, computed} from 'mobx'; +import {f7} from 'framework7-react'; + +export class storeTableSettings { + constructor() { + makeObservable(this, { + _templates: observable, + cellBorders: observable, + cellBorderWidth: observable, + cellBorderColor: observable, + initTableTemplates: action, + styles: computed, + updateCellBorderWidth: action, + updateCellBorderColor: action, + }); + } + + _templates = []; + + initTableTemplates (templates) { + this._templates = templates; + } + + get styles () { + let styles = []; + for (let template of this._templates) { + styles.push({ + imageUrl : template.asc_getImage(), + templateId : template.asc_getId() + }); + } + return styles; + } + getTableLook (tableObject) { + return tableObject.get_TableLook() + } + getCellMargins (tableObject) { + const margins = tableObject.get_CellMargins(); + return margins.get_Left(); + } + getRepeatOption (tableObject) { + if (tableObject.get_RowsInHeader() === null) { + return null; + } + return !!tableObject.get_RowsInHeader(); + } + getResizeOption (tableObject) { + return tableObject.get_TableLayout()==Asc.c_oAscTableLayout.AutoFit; + } + getWrapType (tableObject) { + return tableObject.get_TableWrap() === 0 ? 'inline' : 'flow'; + } + getAlign (tableObject) { + return tableObject.get_TableAlignment(); + } + getMoveText (tableObject) { + return (tableObject.get_PositionV() && tableObject.get_PositionV().get_RelativeFrom() === Asc.c_oAscVAnchor.Text); + } + getWrapDistance (tableObject) { + return tableObject.get_TablePaddings().get_Top(); + } + + // Fill color + getFillColor (tableObject) { + const background = tableObject.get_CellsBackground(); + let fillColor = 'transparent'; + if (background) { + if (background.get_Value()==0) { + const color = background.get_Color(); + if (color) { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + fillColor = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value()}; + } else { + fillColor = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + } + return fillColor; + } + + // Border style + + cellBorders; + cellBorderWidth = 0.5; + cellBorderColor = '000000'; + + borderSizeTransform () { + const _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; + + return { + sizeByIndex: function (index) { + if (index < 1) return _sizes[0]; + if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } + + updateCellBorderWidth (value) { + this.cellBorderWidth = value; + } + + updateCellBorderColor (value) { + this.cellBorderColor = value; + } + + updateBordersStyle (border) { + this.cellBorders = new Asc.CBorders(); + const visible = (border != ''); + + if (border.indexOf('l') > -1 || !visible) { + if (this.cellBorders.get_Left()===null || this.cellBorders.get_Left()===undefined) + this.cellBorders.put_Left(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Left(), visible); + } + if (border.indexOf('t') > -1 || !visible) { + if (this.cellBorders.get_Top()===null || this.cellBorders.get_Top()===undefined) + this.cellBorders.put_Top(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Top(), visible); + } + if (border.indexOf('r') > -1 || !visible) { + if (this.cellBorders.get_Right()===null || this.cellBorders.get_Right()===undefined) + this.cellBorders.put_Right(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Right(), visible); + } + if (border.indexOf('b') > -1 || !visible) { + if (this.cellBorders.get_Bottom()===null || this.cellBorders.get_Bottom()===undefined) + this.cellBorders.put_Bottom(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Bottom(), visible); + } + if (border.indexOf('c') > -1 || !visible) { + if (this.cellBorders.get_InsideV()===null || this.cellBorders.get_InsideV()===undefined) + this.cellBorders.put_InsideV(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_InsideV(), visible); + } + if (border.indexOf('m') > -1 || !visible) { + if (this.cellBorders.get_InsideH()===null || this.cellBorders.get_InsideH()===undefined) + this.cellBorders.put_InsideH(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_InsideH(), visible); + } + } + + updateBorderStyle (border, visible) { + if (!border) { + border = new Asc.asc_CTextBorder(); + } + if (visible && this.cellBorderWidth > 0){ + const size = parseFloat(this.cellBorderWidth); + border.put_Value(1); + border.put_Size(size * 25.4 / 72.0); + const color = Common.Utils.ThemeColor.getRgbColor(this.cellBorderColor); + border.put_Color(color); + } + else { + border.put_Value(0); + } + } + +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/store/textSettings.js b/apps/documenteditor/mobile/src/store/textSettings.js new file mode 100644 index 000000000..44fd4cd43 --- /dev/null +++ b/apps/documenteditor/mobile/src/store/textSettings.js @@ -0,0 +1,181 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeTextSettings { + constructor() { + makeObservable(this, { + fontsArray: observable, + fontName: observable, + fontSize: observable, + isBold: observable, + isItalic: observable, + isUnderline: observable, + isStrikethrough: observable, + typeBaseline: observable, + listType: observable, + typeBullets: observable, + typeNumbers: observable, + paragraphAlign: observable, + textColor: observable, + customTextColors: observable, + lineSpacing: observable, + backgroundColor: observable, + initEditorFonts: action, + resetFontName: action, + resetFontSize: action, + resetIsBold: action, + resetIsItalic: action, + resetIsUnderline: action, + resetIsStrikeout: action, + resetTypeBaseline: action, + isSuperscript: computed, + isSubscript: computed, + resetListType: action, + resetBullets: action, + resetNumbers: action, + resetParagraphAlign: action, + resetTextColor: action, + changeCustomTextColors: action, + resetLineSpacing: action, + resetBackgroundColor: action, + changeFontFamily: action + }); + } + + fontsArray = []; + fontName = ''; + fontSize = undefined; + isBold = false; + isItalic = false; + isUnderline = false; + isStrikethrough = false; + typeBaseline = undefined; + listType = undefined; + typeBullets = undefined; + typeNumbers = undefined; + paragraphAlign = undefined; + textColor = undefined; + customTextColors = []; + lineSpacing = undefined; + backgroundColor = undefined; + + + initEditorFonts (fonts, select) { + let array = []; + for (let font of fonts) { + let fontId = font.asc_getFontId(); + array.push({ + id : fontId, + name : font.asc_getFontName(), + //displayValue: font.asc_getFontName(), + imgidx : font.asc_getFontThumbnail(), + type : font.asc_getFontType() + }); + } + this.fontsArray = array; + } + resetFontName (font) { + let name = (typeof font.get_Name) === "function" ? font.get_Name() : font.asc_getName(); + this.fontName = name; + } + resetFontSize (size) { + this.fontSize = size; + } + resetIsBold (isBold) { + this.isBold = isBold; + } + resetIsItalic (isItalic) { + this.isItalic = isItalic; + } + resetIsUnderline (isUnderline) { + this.isUnderline = isUnderline; + } + resetIsStrikeout (isStrikethrough) { + this.isStrikethrough = isStrikethrough; + } + + // vertical align + resetTypeBaseline (typeBaseline) { + this.typeBaseline = typeBaseline; + } + get isSuperscript() { + return (this.typeBaseline === 1); + } + get isSubscript() { + return (this.typeBaseline === 2); + } + + // bullets + resetListType (type) { + this.listType = type; + } + resetBullets (type) { + this.typeBullets = type; + } + resetNumbers (type) { + this.typeNumbers = type; + } + + resetParagraphAlign (align) { + let value; + switch (align) { + case 0: + value = 'right'; + break; + case 1: + value = 'left'; + break; + case 2: + value = 'center'; + break; + case 3: + value = 'just'; + break; + } + this.paragraphAlign = value; + } + + resetTextColor (color) { + let value; + if (color) { + if (color.get_auto()) { + value = 'auto'; + } else { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + value = { + color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), + effectValue: color.get_value() + } + } else { + value = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + this.textColor = value; + } + + changeCustomTextColors (colors) { + this.customTextColors = colors; + } + + changeFontFamily(name) { + this.fontName = name; + } + + resetLineSpacing (vc) { + let line = (vc.get_Line() === null || vc.get_LineRule() === null || vc.get_LineRule() != 1) ? -1 : vc.get_Line(); + this.lineSpacing = line; + } + + resetBackgroundColor (color) { + let value; + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + value = { + color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), + effectValue: color.get_value() + } + } else { + value = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + this.backgroundColor = value; + } +} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/ContextMenu.jsx b/apps/documenteditor/mobile/src/view/ContextMenu.jsx new file mode 100644 index 000000000..c2c8411e2 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/ContextMenu.jsx @@ -0,0 +1,39 @@ +import React, { Component } from 'react'; +import { Popover, List, ListItem, ListButton, Link, Icon } from 'framework7-react'; +import { f7 } from 'framework7-react'; + +class ContextMenuView extends Component { + constructor(props) { + super(props); + } + + componentDidMount() { + // f7.popover.open('#idx-context-menu-popover', '#idx-context-menu-target'); + } + + render() { + const buttons = this.props.items || {}; + + return ( + this.props.onMenuClosed()} + > + + {buttons.map((b, index) => + !!b.text ? + this.props.onMenuItemClick(b.action)} /> : + + + + )} + + + ) + } +} + +export default ContextMenuView; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/Toolbar.jsx b/apps/documenteditor/mobile/src/view/Toolbar.jsx new file mode 100644 index 000000000..a49d002a8 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/Toolbar.jsx @@ -0,0 +1,40 @@ +import React, {Fragment} from 'react'; +import {NavLeft, NavRight, NavTitle, Link, Icon} from 'framework7-react'; +import { Device } from '../../../../common/mobile/utils/device'; +import EditorUIController from '../lib/patch' + +const ToolbarView = props => { + const disableEditBtn = props.isObjectLocked || props.stateDisplayMode || props.disabledEditControls; + return ( + + + {props.isShowBack && } + {Device.ios && props.isEdit && EditorUIController.getUndoRedo && EditorUIController.getUndoRedo({ + disabledUndo: !props.isCanUndo, + disabledRedo: !props.isCanRedo, + onUndoClick: props.onUndo, + onRedoClick: props.onRedo + })} + + {!Device.phone && {props.docTitle}} + + {Device.android && props.isEdit && EditorUIController.getUndoRedo && EditorUIController.getUndoRedo({ + disabledUndo: !props.isCanUndo, + disabledRedo: !props.isCanRedo, + onUndoClick: props.onUndo, + onRedoClick: props.onRedo + })} + {props.isEdit && EditorUIController.getToolbarOptions && EditorUIController.getToolbarOptions({ + disabled: disableEditBtn || props.disabledControls, + onEditClick: e => props.openOptions('edit'), + onAddClick: e => props.openOptions('add') + })} + { Device.phone ? null : } + {props.displayCollaboration && window.matchMedia("(min-width: 390px)").matches ? props.openOptions('coauth')}> : null} + props.openOptions('settings')}> + + + ) +}; + +export default ToolbarView; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/add/Add.jsx b/apps/documenteditor/mobile/src/view/add/Add.jsx new file mode 100644 index 000000000..c691dfce4 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/add/Add.jsx @@ -0,0 +1,167 @@ +import React, {Component, useEffect, Fragment} from 'react'; +import {View,Page,Navbar,NavRight, NavTitle, Link,Popup,Popover,Icon,Tabs,Tab} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {f7} from 'framework7-react'; +import { observer, inject } from "mobx-react"; +import {Device} from '../../../../../common/mobile/utils/device'; + +import {AddTableController} from "../../controller/add/AddTable"; +import AddShapeController from "../../controller/add/AddShape"; +import {AddImageController} from "../../controller/add/AddImage"; +import {AddLinkController} from "../../controller/add/AddLink"; +import {AddOtherController} from "../../controller/add/AddOther"; + +import {PageImageLinkSettings} from "../add/AddImage"; +import {PageAddNumber, PageAddBreak, PageAddSectionBreak, PageAddFootnote} from "../add/AddOther"; + +const routes = [ + // Image + { + path: '/add-image-from-url/', + component: PageImageLinkSettings, + }, + // Other + { + path: '/add-link/', + component: AddLinkController, + }, + { + path: '/add-page-number/', + component: PageAddNumber, + }, + { + path: '/add-break/', + component: PageAddBreak, + }, + { + path: '/add-section-break/', + component: PageAddSectionBreak, + }, + { + path: '/add-footnote/', + component: PageAddFootnote, + }, +]; + +const AddLayoutNavbar = ({ tabs, inPopover }) => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + return ( + + {tabs.length > 1 ? +
          + {tabs.map((item, index) => + + + )} + {isAndroid && } +
          : + { tabs[0].caption } + } + { !inPopover && } +
          + ) +}; + +const AddLayoutContent = ({ tabs }) => { + return ( + + {tabs.map((item, index) => + + {item.component} + + )} + + ) +}; + +const AddTabs = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + const showPanels = props.showPanels; + const tabs = []; + if (!showPanels) { + tabs.push({ + caption: _t.textTable, + id: 'add-table', + icon: 'icon-add-table', + component: + }); + tabs.push({ + caption: _t.textShape, + id: 'add-shape', + icon: 'icon-add-shape', + component: + }); + tabs.push({ + caption: _t.textImage, + id: 'add-image', + icon: 'icon-add-image', + component: + }); + tabs.push({ + caption: _t.textOther, + id: 'add-other', + icon: 'icon-add-other', + component: + }); + } + if (showPanels && showPanels === 'link') { + tabs.push({ + caption: _t.textAddLink, + id: 'add-link', + component: + }); + } + return ( + + + + + + + ) +}; + +class AddView extends Component { + constructor(props) { + super(props); + + this.onoptionclick = this.onoptionclick.bind(this); + } + onoptionclick(page){ + f7.views.current.router.navigate(page); + } + render() { + const show_popover = this.props.usePopover; + return ( + show_popover ? + this.props.onclosed()}> + + : + this.props.onclosed()}> + + + ) + } +} + +const Add = props => { + useEffect(() => { + if ( Device.phone ) + f7.popup.open('.add-popup'); + else f7.popover.open('#add-popover', '#btn-add'); + + return () => { + // component will unmount + } + }); + const onviewclosed = () => { + if ( props.onclosed ) + props.onclosed(); + }; + return +}; + +export default Add; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/add/AddImage.jsx b/apps/documenteditor/mobile/src/view/add/AddImage.jsx new file mode 100644 index 000000000..066f03c8a --- /dev/null +++ b/apps/documenteditor/mobile/src/view/add/AddImage.jsx @@ -0,0 +1,49 @@ +import React, {useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Page, Navbar, Icon, ListButton, ListInput, BlockTitle} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; + +const PageLinkSettings = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + const [stateValue, setValue] = useState(''); + return ( + + + {_t.textAddress} + + {setValue(event.target.value)}} + > + + + + {props.onInsertByUrl(stateValue)}}> + + + ) +}; + +const AddImage = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + return ( + + {props.onInsertByFile()}}> + + + + + + + ) +}; + +export {AddImage, PageLinkSettings as PageImageLinkSettings}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/add/AddLink.jsx b/apps/documenteditor/mobile/src/view/add/AddLink.jsx new file mode 100644 index 000000000..8239d3819 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/add/AddLink.jsx @@ -0,0 +1,51 @@ +import React, {useState} from 'react'; +import {List, Page, Navbar, Icon, ListButton, ListInput} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../../../common/mobile/utils/device"; + +const PageLink = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + + let display = props.getDisplayLinkText(); + display = typeof display === 'string' ? display : ''; + + const [stateLink, setLink] = useState(''); + const [stateDisplay, setDisplay] = useState(display); + const [stateTip, setTip] = useState(''); + return ( + + {!props.noNavbar && } + + {setLink(event.target.value)}} + > + {setDisplay(event.target.value)}} + > + {setTip(event.target.value)}} + > + + + { + props.onInsertLink(stateLink, stateDisplay, stateTip) + }}> + + + ) +}; + +export {PageLink as PageAddLink}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/add/AddOther.jsx b/apps/documenteditor/mobile/src/view/add/AddOther.jsx new file mode 100644 index 000000000..0ea3485a1 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/add/AddOther.jsx @@ -0,0 +1,201 @@ +import React, {useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Page, Navbar, Icon, ListButton, ListInput, BlockTitle, Segmented, Button} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../../../common/mobile/utils/device"; + +const PageNumber = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + return ( + + + + {props.onInsertPageNumber('lt')}}> + {props.onInsertPageNumber('ct')}}> + {props.onInsertPageNumber('rt')}}> + {props.onInsertPageNumber('lb')}}> + {props.onInsertPageNumber('cb')}}> + {props.onInsertPageNumber('rb')}}> + {props.onInsertPageNumber('current')}}> + + + ) +}; + +const PageBreak = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + return ( + + + + { + props.onPageBreak() + }}> + + + { + props.onColumnBreak(); + }}> + + + + + + + + ) +}; + +const PageSectionBreak = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + return ( + + + + { + props.onInsertSectionBreak('next') + }}> + { + props.onInsertSectionBreak('continuous') + }}> + { + props.onInsertSectionBreak('even') + }}> + { + props.onInsertSectionBreak('odd') + }}> + + + ) +}; + +const PageFootnote = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + + const dataFormatFootnote = [ + { text: '1, 2, 3,...', value: Asc.c_oAscNumberingFormat.Decimal }, + { text: 'a, b, c,...', value: Asc.c_oAscNumberingFormat.LowerLetter }, + { text: 'A, B, C,...', value: Asc.c_oAscNumberingFormat.UpperLetter }, + { text: 'i, ii, iii,...', value: Asc.c_oAscNumberingFormat.LowerRoman }, + { text: 'I, II, III,...', value: Asc.c_oAscNumberingFormat.UpperRoman } + ]; + const dataPosFootnote = [ + {value: Asc.c_oAscFootnotePos.PageBottom, displayValue: _t.textBottomOfPage }, + {value: Asc.c_oAscFootnotePos.BeneathText, displayValue: _t.textBelowText } + ]; + + const [stateStartAt, setStartAt] = useState(props.initFootnoteStartAt()); + const [stateLocation, setLocation] = useState(props.getFootnoteProps().propsPos); + const [stateFormat, setFormat] = useState(props.getFootnoteProps().propsFormat); + + return ( + + + {_t.textFormat} + + {dataFormatFootnote.map((format, index)=>{ + return ( + { + setStartAt(props.getFootnoteStartAt(format.value, stateStartAt)); + setFormat(format.value) + }}> + ) + })} + + + + {!isAndroid &&
          {stateStartAt}
          } +
          + + + {isAndroid && } + + +
          +
          +
          + {_t.textLocation} + + {dataPosFootnote.map((location, index)=>{ + return ( + {setLocation(location.value)}}> + ) + })} + + + { + props.onInsertFootnote(stateFormat, stateStartAt, stateLocation); + }}> + +
          + ) +}; + +const AddOther = props => { + const { t } = useTranslation(); + const _t = t('Add', {returnObjects: true}); + return ( + + { + props.closeModal(); + Common.Notifications.trigger('addcomment'); + }}> + + + + + + + + + + + + + + + + ) +}; + +const AddOtherContainer = inject("storeComments")(observer(AddOther)); + +export {AddOtherContainer as AddOther, + PageNumber as PageAddNumber, + PageBreak as PageAddBreak, + PageSectionBreak as PageAddSectionBreak, + PageFootnote as PageAddFootnote}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/add/AddShape.jsx b/apps/documenteditor/mobile/src/view/add/AddShape.jsx new file mode 100644 index 000000000..155ee02dc --- /dev/null +++ b/apps/documenteditor/mobile/src/view/add/AddShape.jsx @@ -0,0 +1,28 @@ +import React from 'react'; +import {observer, inject} from "mobx-react"; + +const AddShape = props => { + const storeShapeSettings = props.storeShapeSettings; + let shapes = storeShapeSettings.getStyleGroups(); + return ( +
          + {shapes.map((row, indexRow) => { + return ( +
            + {row.map((shape, index) => { + return ( +
          • {props.onShapeClick(shape.type)}}> +
            +
            +
          • + ) + })} +
          + ) + })} +
          + ) +}; + +export default inject("storeShapeSettings")(observer(AddShape)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/add/AddTable.jsx b/apps/documenteditor/mobile/src/view/add/AddTable.jsx new file mode 100644 index 000000000..3e4635f43 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/add/AddTable.jsx @@ -0,0 +1,26 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {Page, Navbar, List, ListItem, ListButton, Row, BlockTitle, Range, Toggle, Icon} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +const AddTable = props => { + const storeTableSettings = props.storeTableSettings; + const styles = storeTableSettings.styles; + return ( +
          +
            + {styles.map((style, index) => { + return ( +
          • {props.onStyleClick(style.templateId)}}> + +
          • + ) + })} +
          +
          + ) +}; + +export default inject("storeTableSettings")(observer(AddTable)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/app.jsx b/apps/documenteditor/mobile/src/view/app.jsx new file mode 100644 index 000000000..b114f32d5 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/app.jsx @@ -0,0 +1,47 @@ +import React from 'react'; + +import {App,Panel,Views,View,Popup,Page,Navbar,Toolbar,NavRight,Link,Block,BlockTitle,List,ListItem,ListInput,ListButton,BlockFooter} from 'framework7-react'; +import { f7, f7ready } from 'framework7-react'; + +import '../../../../common/Analytics.js'; + +import '../../../../common/Gateway.js'; +import '../../../../common/main/lib/util/utils.js'; + +import routes from '../router/routes'; + +import Notifications from '../../../../common/mobile/utils/notifications.js' +import {MainController} from '../controller/Main'; +import {Device} from '../../../../common/mobile/utils/device' + +const f7params = { + name: 'Desktop Editor', // App name + theme: 'auto', // Automatic theme detection + + routes: routes, // App routes +}; + +export default class extends React.Component { + constructor(props) { + super(props); + + Common.Notifications = new Notifications(); + } + + render() { + return ( + + {/* Your main view, should have "view-main" class */} + + + + ) + } + + componentDidMount() { + f7ready(f7 => { + // Call F7 APIs here + Device.initDom(); + }); + } +} diff --git a/apps/documenteditor/mobile/src/view/edit/Edit.jsx b/apps/documenteditor/mobile/src/view/edit/Edit.jsx new file mode 100644 index 000000000..bd9bb4c7a --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/Edit.jsx @@ -0,0 +1,355 @@ +import React, {useState, useEffect} from 'react'; +import {observer, inject} from "mobx-react"; +import { Popover, Sheet, View, Page, Navbar, NavRight, NavLeft, NavTitle, Tabs, Tab, Link } from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import EditTextController from "../../controller/edit/EditText"; +import EditParagraphController from "../../controller/edit/EditParagraph"; +import EditShapeController from "../../controller/edit/EditShape"; +import EditImageController from "../../controller/edit/EditImage"; +import EditTableController from "../../controller/edit/EditTable"; +import EditChartController from "../../controller/edit/EditChart"; +import EditHyperlinkController from "../../controller/edit/EditHyperlink"; +import EditHeaderController from "../../controller/edit/EditHeader"; + +import {PageTextFonts, PageTextAddFormatting, PageTextBullets, PageTextNumbers, PageTextLineSpacing, PageTextFontColor, PageTextCustomFontColor, PageTextBackgroundColor, PageTextCustomBackColor} from "./EditText"; +import {ParagraphAdvSettings, PageParagraphBackColor, PageParagraphCustomColor} from "./EditParagraph"; +import {PageShapeStyleNoFill, PageShapeStyle, PageShapeCustomFillColor, PageShapeBorderColor, PageShapeCustomBorderColor, PageWrap, PageReorder, PageReplace} from "./EditShape"; +import {PageImageReorder, PageImageReplace, PageImageWrap, PageLinkSettings} from "./EditImage"; +import {PageTableOptions, PageTableWrap, PageTableStyle, PageTableStyleOptions, PageTableCustomFillColor, PageTableBorderColor, PageTableCustomBorderColor} from "./EditTable"; +import {PageChartStyle, PageChartCustomFillColor, PageChartBorderColor, PageChartCustomBorderColor, PageChartWrap, PageChartReorder} from "./EditChart"; + +const routes = [ + //Edit text + { + path: '/edit-text-fonts/', + component: PageTextFonts, + }, + { + path: '/edit-text-add-formatting/', + component: PageTextAddFormatting, + }, + { + path: '/edit-text-bullets/', + component: PageTextBullets, + }, + { + path: '/edit-text-numbers/', + component: PageTextNumbers, + }, + { + path: '/edit-text-line-spacing/', + component: PageTextLineSpacing, + }, + { + path: '/edit-text-font-color/', + component: PageTextFontColor, + }, + { + path: '/edit-text-custom-font-color/', + component: PageTextCustomFontColor, + }, + { + path: '/edit-text-background-color/', + component: PageTextBackgroundColor, + }, + { + path: '/edit-text-custom-back-color/', + component: PageTextCustomBackColor, + }, + //Edit paragraph + { + path: '/edit-paragraph-adv/', + component: ParagraphAdvSettings, + }, + { + path: '/edit-paragraph-back-color/', + component: PageParagraphBackColor, + }, + { + path: '/edit-paragraph-custom-color/', + component: PageParagraphCustomColor, + }, + //Edit shape + { + path: '/edit-shape-style/', + component: PageShapeStyle, + }, + { + path: '/edit-shape-style-no-fill/', + component: PageShapeStyleNoFill, + }, + { + path: '/edit-shape-custom-fill-color/', + component: PageShapeCustomFillColor, + }, + { + path: '/edit-shape-border-color/', + component: PageShapeBorderColor, + }, + { + path: '/edit-shape-custom-border-color/', + component: PageShapeCustomBorderColor, + }, + { + path: '/edit-shape-wrap/', + component: PageWrap, + }, + { + path: '/edit-shape-reorder/', + component: PageReorder, + }, + { + path: '/edit-shape-replace/', + component: PageReplace, + }, + //Edit image + { + path: '/edit-image-wrap/', + component: PageImageWrap, + }, + { + path: '/edit-image-replace/', + component: PageImageReplace, + }, + { + path: '/edit-image-reorder/', + component: PageImageReorder, + }, + { + path: '/edit-image-link/', + component: PageLinkSettings, + }, + //Edit table + { + path: '/edit-table-options/', + component: PageTableOptions, + }, + { + path: '/edit-table-wrap/', + component: PageTableWrap, + }, + { + path: '/edit-table-style/', + component: PageTableStyle, + }, + { + path: '/edit-table-style-options/', + component: PageTableStyleOptions, + }, + { + path: '/edit-table-custom-fill-color/', + component: PageTableCustomFillColor, + }, + { + path: '/edit-table-border-color/', + component: PageTableBorderColor, + }, + { + path: '/edit-table-custom-border-color/', + component: PageTableCustomBorderColor, + }, + //Edit chart + { + path: '/edit-chart-wrap/', + component: PageChartWrap, + }, + { + path: '/edit-chart-reorder/', + component: PageChartReorder, + }, + { + path: '/edit-chart-style/', + component: PageChartStyle, + }, + { + path: '/edit-chart-custom-fill-color/', + component: PageChartCustomFillColor, + }, + { + path: '/edit-chart-border-color/', + component: PageChartBorderColor, + }, + { + path: '/edit-chart-custom-border-color/', + component: PageChartCustomBorderColor, + } +]; + +const EmptyEditLayout = () => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + +
          +
          +

          {_t.textSelectObjectToEdit}

          +
          +
          +
          + ) +}; + +const EditLayoutNavbar = ({ editors, inPopover }) => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + + { + editors.length > 1 ? +
          + {editors.map((item, index) => {item.caption})} + {isAndroid && } +
          : + { editors[0].caption } + } + { !inPopover && } +
          + ) +}; + +const EditLayoutContent = ({ editors }) => { + if (editors.length > 1) { + return ( + + {editors.map((item, index) => + + {item.component} + + )} + + ) + } else { + return ( + + {editors[0].component} + + ) + } +}; + +const EditTabs = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + + const settings = props.storeFocusObjects.settings; + const headerType = props.storeFocusObjects.headerType; + let editors = []; + if (settings.length < 1) { + editors.push({ + caption: _t.textSettings, + component: + }); + } else { + if (settings.indexOf('text') > -1) { + editors.push({ + caption: _t.textText, + id: 'edit-text', + component: + }) + } + if (settings.indexOf('paragraph') > -1) { + editors.push({ + caption: _t.textParagraph, + id: 'edit-paragraph', + component: + }) + } + if (settings.indexOf('table') > -1) { + editors.push({ + caption: _t.textTable, + id: 'edit-table', + component: + }) + } + if (settings.indexOf('header') > -1) { + editors.push({ + caption: headerType === 2 ? _t.textFooter : _t.textHeader, + id: 'edit-header', + component: + }) + } + if (settings.indexOf('shape') > -1) { + editors.push({ + caption: _t.textShape, + id: 'edit-shape', + component: + }) + } + if (settings.indexOf('image') > -1) { + editors.push({ + caption: _t.textImage, + id: 'edit-image', + component: + }) + } + if (settings.indexOf('chart') > -1) { + editors.push({ + caption: _t.textChart, + id: 'edit-chart', + component: + }) + } + if (settings.indexOf('hyperlink') > -1) { + editors.push({ + caption: _t.textHyperlink, + id: 'edit-link', + component: + }) + } + } + + return ( + + + + + + + + ) +}; + +const EditTabsContainer = inject("storeFocusObjects")(observer(EditTabs)); + +const EditView = props => { + const onOptionClick = (page) => { + $f7.views.current.router.navigate(page); + }; + const show_popover = props.usePopover; + return ( + show_popover ? + props.onClosed()}> + + : + props.onClosed()}> + + + ) +}; + +const EditOptions = props => { + useEffect(() => { + if ( Device.phone ) + f7.sheet.open('#edit-sheet'); + else f7.popover.open('#edit-popover', '#btn-edit'); + + return () => { + // component will unmount + } + }); + + const onviewclosed = () => { + if ( props.onclosed ) + props.onclosed(); + }; + + return ( + + ) +}; + +export default EditOptions; diff --git a/apps/documenteditor/mobile/src/view/edit/EditChart.jsx b/apps/documenteditor/mobile/src/view/edit/EditChart.jsx new file mode 100644 index 000000000..6f0b65c8f --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditChart.jsx @@ -0,0 +1,395 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, ListButton, Icon, Row, Page, Navbar, BlockTitle, Toggle, Range, Link, Tabs, Tab} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {CustomColorPicker, ThemeColorPalette} from "../../../../../common/mobile/lib/component/ThemeColorPalette.jsx"; + +const PageCustomFillColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let fillColor = props.storeChartSettings.fillColor; + if (typeof fillColor === 'object') { + fillColor = fillColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onFillColor(color); + props.storeChartSettings.setFillColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PaletteFill = inject("storeFocusObjects", "storeChartSettings", "storePalette")(observer(props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeChartSettings = props.storeChartSettings; + const shapeProperties = props.storeFocusObjects.shapeObject.get_ShapeProperties(); + const curFillColor = storeChartSettings.fillColor ? storeChartSettings.fillColor : storeChartSettings.getFillColor(shapeProperties); + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onFillColor(newColor); + storeChartSettings.setFillColor(newColor); + } else { + props.onFillColor(color); + storeChartSettings.setFillColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-chart-custom-fill-color/', {props: {onFillColor: props.onFillColor}}); + } + }; + return( + + + + + + + ) +})); + +const PageCustomBorderColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let borderColor = props.storeChartSettings.borderColor; + if (typeof borderColor === 'object') { + borderColor = borderColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onBorderColor(color); + props.storeChartSettings.setBorderColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PageBorderColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const borderColor = props.storeChartSettings.borderColor; + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onBorderColor(newColor); + props.storeChartSettings.setBorderColor(newColor); + } else { + props.onBorderColor(color); + props.storeChartSettings.setBorderColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-chart-custom-border-color/', {props: {onBorderColor: props.onBorderColor}}); + } + }; + return( + + + + + + + + ) +}; + +const PageStyle = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeChartSettings = props.storeChartSettings; + const chartProperties = props.storeFocusObjects.chartObject.get_ChartProperties(); + + const types = storeChartSettings.types; + const curType = chartProperties.getType(); + + const styles = storeChartSettings.styles; + + const shapeObject = props.storeFocusObjects.shapeObject; + const shapeStroke = shapeObject.get_ShapeProperties().get_stroke(); + + // Init border size + const borderSizeTransform = storeChartSettings.borderSizeTransform(); + const borderSize = shapeStroke.get_width() * 72.0 / 25.4; + const borderType = shapeStroke.get_type(); + const displayBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + // Init border color + const borderColor = !storeChartSettings.borderColor ? storeChartSettings.initBorderColor(shapeStroke) : storeChartSettings.borderColor; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + return ( + + +
          + {_t.textType} + {_t.textStyle} + {_t.textFill} + {_t.textBorder} +
          +
          + + +
          + {types.map((row, rowIndex) => { + return ( +
            + {row.map((type, index)=>{ + return( +
          • {props.onType(type.type)}}> +
            +
            +
          • + ) + })} +
          + ) + })} +
          +
          + +
          + {styles ? styles.map((row, rowIndex) => { + return ( +
            + {row.map((style, index)=>{ + return( +
          • {props.onStyle(style.asc_getName())}}> + +
          • + ) + })} +
          + ) + }) : +
          {_t.textNoStyles}
          + } +
          +
          + + + + + + +
          {_t.textSize}
          +
          + {setBorderSize(value); setTextBorderSize(borderSizeTransform.sizeByIndex(value));}} + onRangeChanged={(value) => {props.onBorderSize(borderSizeTransform.sizeByIndex(value))}} + > +
          +
          + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
          +
          + + + +
          +
          +
          +
          + ) +}; + +const PageWrap = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeChartSettings = props.storeChartSettings; + const chartObject = props.storeFocusObjects.chartObject; + const wrapType = storeChartSettings.getWrapType(chartObject); + const align = storeChartSettings.getAlign(chartObject); + const moveText = storeChartSettings.getMoveText(chartObject); + const overlap = storeChartSettings.getOverlap(chartObject); + const distance = Common.Utils.Metric.fnRecalcFromMM(storeChartSettings.getWrapDistance(chartObject)); + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const [stateDistance, setDistance] = useState(distance); + return ( + + + + {props.onWrapType('inline')}}> + {!isAndroid && } + + {props.onWrapType('square')}}> + {!isAndroid && } + + {props.onWrapType('tight')}}> + {!isAndroid && } + + {props.onWrapType('through')}}> + {!isAndroid && } + + {props.onWrapType('top-bottom')}}> + {!isAndroid && } + + {props.onWrapType('infront')}}> + {!isAndroid && } + + {props.onWrapType('behind')}}> + {!isAndroid && } + + + { + wrapType !== 'inline' && + + {_t.textAlign} + + + + { + props.onAlign(Asc.c_oAscAlignH.Left) + }}> + + + { + props.onAlign(Asc.c_oAscAlignH.Center) + }}> + + + { + props.onAlign(Asc.c_oAscAlignH.Right) + }}> + + + + + + + } + + + {props.onMoveText(!moveText)}}/> + + + {props.onOverlap(!overlap)}}/> + + + { + ('behind' !== wrapType && 'infront' !== wrapType) && + + {_t.textDistanceFromText} + + +
          + {setDistance(value)}} + onRangeChanged={(value) => {props.onWrapDistance(value)}} + > +
          +
          + {stateDistance + ' ' + metricText} +
          +
          +
          +
          + } +
          + ) +}; + +const PageReorder = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + + + + {props.onReorder('all-up')}} link='#' className='no-indicator'> + + + {props.onReorder('all-down')}} link='#' className='no-indicator'> + + + {props.onReorder('move-up')}} link='#' className='no-indicator'> + + + {props.onReorder('move-down')}} link='#' className='no-indicator'> + + + + + ) +}; + +const EditChart = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + + + + + + + + {props.onRemoveChart()}} className='button-red button-fill button-raised'/> + + + ) +}; + +const PageChartStyle = inject("storeChartSettings", "storeFocusObjects")(observer(PageStyle)); +const PageChartWrap = inject("storeChartSettings", "storeFocusObjects")(observer(PageWrap)); +const PageChartCustomFillColor = inject("storeChartSettings", "storePalette")(observer(PageCustomFillColor)); +const PageChartBorderColor = inject("storeChartSettings", "storePalette")(observer(PageBorderColor)); +const PageChartCustomBorderColor = inject("storeChartSettings", "storePalette")(observer(PageCustomBorderColor)); + +export {EditChart, + PageChartStyle, + PageChartCustomFillColor, + PageChartBorderColor, + PageChartCustomBorderColor, + PageChartWrap, + PageReorder as PageChartReorder} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/edit/EditHeader.jsx b/apps/documenteditor/mobile/src/view/edit/EditHeader.jsx new file mode 100644 index 000000000..63769fb49 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditHeader.jsx @@ -0,0 +1,58 @@ +import React, { Fragment, useState } from 'react'; +import { observer, inject } from "mobx-react"; +import { List, ListItem, Segmented, Button, Toggle, BlockTitle, Icon } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../../../common/mobile/utils/device"; + +const EditHeader = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const headerObject = props.storeFocusObjects.headerObject; + const isDiffFirst = headerObject.get_DifferentFirst(); + const isDiffOdd = headerObject.get_DifferentEvenOdd(); + const linkToPrev = headerObject.get_LinkToPrevious(); + const boolLinkToPrev = !!linkToPrev; + const startPageNumber = headerObject.get_StartPageNumber(); + let _startAt = 1; + if (startPageNumber >= 0) { + _startAt = startPageNumber; + } + return ( + + + + {props.onDiffFirst(!isDiffFirst)}}/> + + + {props.onDiffOdd(!isDiffOdd)}}/> + + + {props.onSameAs(!boolLinkToPrev)}}/> + + + {_t.textPageNumbering} + + + {props.onNumberingContinue(!(startPageNumber<0), _startAt)}}/> + + + {!isAndroid &&
          {_startAt}
          } +
          + + + {isAndroid && } + + +
          +
          +
          +
          + ) +}; + +export default inject("storeFocusObjects")(observer(EditHeader)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/edit/EditHyperlink.jsx b/apps/documenteditor/mobile/src/view/edit/EditHyperlink.jsx new file mode 100644 index 000000000..b05207cc8 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditHyperlink.jsx @@ -0,0 +1,51 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListInput, ListButton} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; + +const EditHyperlink = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const linkObject = props.storeFocusObjects.linkObject; + const link = linkObject.get_Value() ? linkObject.get_Value().replace(new RegExp(" ", 'g'), "%20") : ''; + const display = !(linkObject.get_Text() === null) ? linkObject.get_Text() : ''; + const tip = linkObject.get_ToolTip(); + const [stateLink, setLink] = useState(link); + const [stateDisplay, setDisplay] = useState(display); + const [stateTip, setTip] = useState(tip); + return ( + + + {setLink(event.target.value)}} + > + {setDisplay(event.target.value)}} + > + {setTip(event.target.value)}} + > + + + { + props.onEditLink(stateLink, stateDisplay, stateTip) + }}> + {props.onRemoveLink()}} className='button-red button-fill button-raised'/> + + + ) +}; + +export default inject("storeFocusObjects")(observer(EditHyperlink)); \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/edit/EditImage.jsx b/apps/documenteditor/mobile/src/view/edit/EditImage.jsx new file mode 100644 index 000000000..106408d41 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditImage.jsx @@ -0,0 +1,226 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, ListInput, ListButton, Icon, Row, Col, Button, Page, Navbar, Segmented, BlockTitle, Toggle, Range} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {f7} from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; + +const PageWrap = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeImageSettings = props.storeImageSettings; + const imageObject = props.storeFocusObjects.imageObject; + const wrapType = storeImageSettings.getWrapType(imageObject); + const align = storeImageSettings.getAlign(imageObject); + const moveText = storeImageSettings.getMoveText(imageObject); + const overlap = storeImageSettings.getOverlap(imageObject); + const distance = Common.Utils.Metric.fnRecalcFromMM(storeImageSettings.getWrapDistance(imageObject)); + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const [stateDistance, setDistance] = useState(distance); + return ( + + + + {props.onWrapType('inline')}}> + {!isAndroid && } + + {props.onWrapType('square')}}> + {!isAndroid && } + + {props.onWrapType('tight')}}> + {!isAndroid && } + + {props.onWrapType('through')}}> + {!isAndroid && } + + {props.onWrapType('top-bottom')}}> + {!isAndroid && } + + {props.onWrapType('infront')}}> + {!isAndroid && } + + {props.onWrapType('behind')}}> + {!isAndroid && } + + + { + wrapType !== 'inline' && + + {_t.textAlign} + + + + { + props.onAlign(Asc.c_oAscAlignH.Left) + }}> + + + { + props.onAlign(Asc.c_oAscAlignH.Center) + }}> + + + { + props.onAlign(Asc.c_oAscAlignH.Right) + }}> + + + + + + + } + + + {props.onMoveText(!moveText)}}/> + + + {props.onOverlap(!overlap)}}/> + + + { + ('inline' !== wrapType && 'behind' !== wrapType && 'infront' !== wrapType) && + + {_t.textDistanceFromText} + + +
          + {setDistance(value)}} + onRangeChanged={(value) => {props.onWrapDistance(value)}} + > +
          +
          + {stateDistance + ' ' + metricText} +
          +
          +
          +
          + } +
          + ) +}; + +const PageLinkSettings = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const [stateValue, setValue] = useState(''); + const onReplace = () => { + if (stateValue.trim().length > 0) { + if ((/((^https?)|(^ftp)):\/\/.+/i.test(stateValue))) { + props.onReplaceByUrl(stateValue.trim()); + } else { + f7.dialog.alert(_t.textNotUrl, _t.notcriticalErrorTitle); + } + } else { + f7.dialog.alert(_t.textEmptyImgUrl, _t.notcriticalErrorTitle); + } + }; + return ( + + + {_t.textAddress} + + {setValue(event.target.value)}} + > + + + + {onReplace()}}> + + + ) +}; + +const PageReplace = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + + + + {props.onReplaceByFile()}}> + + + + + + + + ) +}; + +const PageReorder = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + + + + {props.onReorder('all-up')}} className='no-indicator'> + + + {props.onReorder('all-down')}} className='no-indicator'> + + + {props.onReorder('move-up')}} className='no-indicator'> + + + {props.onReorder('move-down')}} className='no-indicator'> + + + + + ) +}; + +const EditImage = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + + + + + + + + {props.onDefaulSize()}}/> + {props.onRemoveImage()}}/> + + + ) +}; + +const EditImageContainer = inject("storeFocusObjects")(observer(EditImage)); +const PageWrapContainer = inject("storeFocusObjects", "storeImageSettings")(observer(PageWrap)); +const PageReplaceContainer = inject("storeFocusObjects")(observer(PageReplace)); +const PageReorderContainer = inject("storeFocusObjects")(observer(PageReorder)); +const PageLinkSettingsContainer = inject("storeFocusObjects")(observer(PageLinkSettings)); + +export {EditImageContainer as EditImage, + PageWrapContainer as PageImageWrap, + PageReplaceContainer as PageImageReplace, + PageReorderContainer as PageImageReorder, + PageLinkSettingsContainer as PageLinkSettings} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/edit/EditParagraph.jsx b/apps/documenteditor/mobile/src/view/edit/EditParagraph.jsx new file mode 100644 index 000000000..69b542390 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditParagraph.jsx @@ -0,0 +1,220 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Icon, Button, Page, Navbar, Segmented, BlockTitle, Toggle} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx'; + +const PageAdvancedSettings = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const storeFocusObjects = props.storeFocusObjects; + const paragraphObj = storeFocusObjects.paragraphObject; + if (paragraphObj.get_Ind()===null || paragraphObj.get_Ind()===undefined) { + paragraphObj.get_Ind().put_FirstLine(0); + } + const firstLine = parseFloat(Common.Utils.Metric.fnRecalcFromMM(paragraphObj.get_Ind().get_FirstLine()).toFixed(2)); + + const spaceBefore = paragraphObj.get_Spacing().get_Before() < 0 ? paragraphObj.get_Spacing().get_Before() : Common.Utils.Metric.fnRecalcFromMM(paragraphObj.get_Spacing().get_Before()); + const spaceAfter = paragraphObj.get_Spacing().get_After() < 0 ? paragraphObj.get_Spacing().get_After() : Common.Utils.Metric.fnRecalcFromMM(paragraphObj.get_Spacing().get_After()); + const spaceBeforeFix = parseFloat(spaceBefore.toFixed(2)); + const spaceAfterFix = parseFloat(spaceAfter.toFixed(2)); + const displayBefore = spaceBefore < 0 ? t('Edit.textAuto') : spaceBeforeFix + ' ' + metricText; + const displayAfter = spaceAfter < 0 ? t('Edit.textAuto') : spaceAfterFix + ' ' + metricText; + + const spaceBetween = paragraphObj.get_ContextualSpacing(); + const breakBefore = paragraphObj.get_PageBreakBefore(); + const orphanControl = paragraphObj.get_WidowControl(); + const keepTogether = paragraphObj.get_KeepLines(); + const keepWithNext = paragraphObj.get_KeepNext(); + + return( + + + {t('Edit.textDistanceFromText')} + + + {!isAndroid &&
          {displayBefore}
          } +
          + + + {isAndroid && } + + +
          +
          + + {!isAndroid &&
          {displayAfter}
          } +
          + + + {isAndroid && } + + +
          +
          + + {!isAndroid &&
          {firstLine + ' ' + metricText}
          } +
          + + + {isAndroid && } + + +
          +
          +
          + + + {props.onSpaceBetween(!spaceBetween)}}/> + + + + + {props.onBreakBefore(!breakBefore)}}/> + + + {props.onOrphan(!orphanControl)}}/> + + + {props.onKeepTogether(!keepTogether)}}/> + + + {props.onKeepNext(!keepWithNext)}}/> + + +
          + ) +}; + +const PageCustomBackColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let backgroundColor = props.storeParagraphSettings.backColor; + if (typeof backgroundColor === 'object') { + backgroundColor = backgroundColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onBackgroundColor(color); + props.storeParagraphSettings.setBackColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PageBackgroundColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const backgroundColor = props.storeParagraphSettings.backColor; + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onBackgroundColor(newColor); + props.storeParagraphSettings.setBackColor(newColor); + } else { + props.onBackgroundColor(color); + props.storeParagraphSettings.setBackColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-paragraph-custom-color/', {props: {onBackgroundColor: props.onBackgroundColor}}); + } + }; + return( + + + + + + + + ) +}; + +const EditParagraph = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeParagraphSettings = props.storeParagraphSettings; + const paragraphStyles = storeParagraphSettings.paragraphStyles; + const curStyleName = storeParagraphSettings.styleName; + const thumbSize = storeParagraphSettings.styleThumbSize; + + const paragraph = props.storeFocusObjects.paragraphObject; + const curBackColor = storeParagraphSettings.backColor ? storeParagraphSettings.backColor : storeParagraphSettings.getBackgroundColor(paragraph); + const background = curBackColor !== 'transparent' ? `#${(typeof curBackColor === "object" ? curBackColor.color : curBackColor)}` : curBackColor; + + return ( + + + + + + + + + + {_t.textParagraphStyles} + + {paragraphStyles.map((style, index) => ( + {props.onStyleClick(style.name)}} + > +
          +
          + ))} +
          +
          + ) +}; + +const EditParagraphContainer = inject("storeParagraphSettings", "storeFocusObjects")(observer(EditParagraph)); +const ParagraphAdvSettings = inject("storeParagraphSettings", "storeFocusObjects")(observer(PageAdvancedSettings)); +const PageParagraphBackColor = inject("storeParagraphSettings", "storePalette")(observer(PageBackgroundColor)); +const PageParagraphCustomColor = inject("storeParagraphSettings", "storePalette")(observer(PageCustomBackColor)); + +export {EditParagraphContainer as EditParagraph, + ParagraphAdvSettings, + PageParagraphBackColor, + PageParagraphCustomColor}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/edit/EditShape.jsx b/apps/documenteditor/mobile/src/view/edit/EditShape.jsx new file mode 100644 index 000000000..122e3b4f4 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditShape.jsx @@ -0,0 +1,498 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Icon, Row, Page, Navbar, BlockTitle, Toggle, Range, ListButton, Link, Tabs, Tab} from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {CustomColorPicker, ThemeColorPalette} from "../../../../../common/mobile/lib/component/ThemeColorPalette.jsx"; + +const PageCustomFillColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let fillColor = props.storeShapeSettings.fillColor; + if (typeof fillColor === 'object') { + fillColor = fillColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onFillColor(color); + props.storeShapeSettings.setFillColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PaletteFill = inject("storeFocusObjects", "storeShapeSettings", "storePalette")(observer(props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + const shapeObject = props.storeFocusObjects.shapeObject; + const curFillColor = storeShapeSettings.fillColor ? storeShapeSettings.fillColor : storeShapeSettings.getFillColor(shapeObject); + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onFillColor(newColor); + storeShapeSettings.setFillColor(newColor); + } else { + props.onFillColor(color); + storeShapeSettings.setFillColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-shape-custom-fill-color/', {props: {onFillColor: props.onFillColor}}); + } + }; + return( + + + + + + + ) +})); + +const PageCustomBorderColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let borderColor = props.storeShapeSettings.borderColorView; + if (typeof borderColor === 'object') { + borderColor = borderColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onBorderColor(color); + props.storeShapeSettings.setBorderColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PageBorderColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const borderColor = props.storeShapeSettings.borderColorView; + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onBorderColor(newColor); + props.storeShapeSettings.setBorderColor(newColor); + } else { + props.onBorderColor(color); + props.storeShapeSettings.setBorderColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-shape-custom-border-color/', {props: {onBorderColor: props.onBorderColor}}); + } + }; + return( + + + + + + + + ) +}; + +const PageStyle = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + const shapeObject = props.storeFocusObjects.shapeObject; + + let borderSize, borderType, transparent; + if (shapeObject) { + const stroke = shapeObject.get_ShapeProperties().get_stroke(); + borderSize = stroke.get_width() * 72.0 / 25.4; + borderType = stroke.get_type(); + transparent = shapeObject.get_ShapeProperties().get_fill().asc_getTransparent(); + } + + // Init border size + const borderSizeTransform = storeShapeSettings.borderSizeTransform(); + const displayBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE || borderType === undefined) ? 0 : borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE || borderType === undefined) ? 0 : borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + // Init border color + const borderColor = !storeShapeSettings.borderColorView ? storeShapeSettings.initBorderColorView(shapeObject) : storeShapeSettings.borderColorView; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + // Init opacity + const opacity = transparent !== null && transparent !== undefined ? transparent / 2.55 : 100; + const [stateOpacity, setOpacity] = useState(Math.round(opacity)); + + if (!shapeObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + + return ( + + +
          + {_t.textFill} + {_t.textBorder} + {_t.textEffects} +
          +
          + + + + + + + +
          {_t.textSize}
          +
          + {setBorderSize(value); setTextBorderSize(borderSizeTransform.sizeByIndex(value));}} + onRangeChanged={(value) => {props.onBorderSize(borderSizeTransform.sizeByIndex(value))}} + > +
          +
          + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
          +
          + + + +
          +
          + + + +
          {_t.textOpacity}
          +
          + {setOpacity(value)}} + onRangeChanged={(value) => {props.onOpacity(value)}} + > +
          +
          + {stateOpacity + ' %'} +
          +
          +
          +
          +
          +
          + ) +}; + +const PageStyleNoFill = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + const shapeObject = props.storeFocusObjects.shapeObject; + let borderSize, borderType; + if (shapeObject) { + const stroke = shapeObject.get_ShapeProperties().get_stroke(); + borderSize = stroke.get_width() * 72.0 / 25.4; + borderType = stroke.get_type(); + } + + // Init border size + const borderSizeTransform = storeShapeSettings.borderSizeTransform(); + const displayBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE || borderType === undefined) ? 0 : borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE || borderType === undefined) ? 0 : borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + // Init border color + const borderColor = !storeShapeSettings.borderColorView ? storeShapeSettings.initBorderColorView(shapeObject) : storeShapeSettings.borderColorView; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + if (!shapeObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + + return ( + + + + +
          {_t.textSize}
          +
          + {setBorderSize(value); setTextBorderSize(borderSizeTransform.sizeByIndex(value));}} + onRangeChanged={(value) => {props.onBorderSize(borderSizeTransform.sizeByIndex(value))}} + > +
          +
          + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
          +
          + + + +
          +
          + ) +}; + +const PageWrap = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + const shapeObject = props.storeFocusObjects.shapeObject; + let wrapType, align, moveText, overlap, distance; + if (shapeObject) { + wrapType = storeShapeSettings.getWrapType(shapeObject); + align = storeShapeSettings.getAlign(shapeObject); + moveText = storeShapeSettings.getMoveText(shapeObject); + overlap = storeShapeSettings.getOverlap(shapeObject); + distance = Common.Utils.Metric.fnRecalcFromMM(storeShapeSettings.getWrapDistance(shapeObject)); + } + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const [stateDistance, setDistance] = useState(distance); + if (!shapeObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + return ( + + + + {props.onWrapType('inline')}}> + {!isAndroid && } + + {props.onWrapType('square')}}> + {!isAndroid && } + + {props.onWrapType('tight')}}> + {!isAndroid && } + + {props.onWrapType('through')}}> + {!isAndroid && } + + {props.onWrapType('top-bottom')}}> + {!isAndroid && } + + {props.onWrapType('infront')}}> + {!isAndroid && } + + {props.onWrapType('behind')}}> + {!isAndroid && } + + + { + wrapType !== 'inline' && + + {_t.textAlign} + + + + { + props.onShapeAlign(Asc.c_oAscAlignH.Left) + }}> + + + { + props.onShapeAlign(Asc.c_oAscAlignH.Center) + }}> + + + { + props.onShapeAlign(Asc.c_oAscAlignH.Right) + }}> + + + + + + + } + + + {props.onMoveText(!moveText)}}/> + + + {props.onOverlap(!overlap)}}/> + + + { + ('behind' !== wrapType && 'infront' !== wrapType) && + + {_t.textDistanceFromText} + + +
          + {setDistance(value)}} + onRangeChanged={(value) => {props.onWrapDistance(value)}} + > +
          +
          + {stateDistance + ' ' + metricText} +
          +
          +
          +
          + } +
          + ) +}; + +const PageReplace = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + let shapes = storeShapeSettings.getStyleGroups(); + shapes.splice(0, 1); // Remove line shapes + + const shapeObject = props.storeFocusObjects.shapeObject; + if (!shapeObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + + return ( + + + {shapes.map((row, indexRow) => { + return ( +
            + {row.map((shape, index) => { + return ( +
          • {props.onReplace(shape.type)}}> +
            +
            +
          • + ) + })} +
          + ) + })} +
          + ) +}; + +const PageReorder = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + + const shapeObject = props.storeFocusObjects.shapeObject; + if (!shapeObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + + return ( + + + + {props.onReorder('all-up')}} className='no-indicator'> + + + {props.onReorder('all-down')}} className='no-indicator'> + + + {props.onReorder('move-up')}} className='no-indicator'> + + + {props.onReorder('move-down')}} className='no-indicator'> + + + + + ) +}; + +const EditShape = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const canFill = props.storeFocusObjects.shapeObject.get_ShapeProperties().get_CanFill(); + return ( + + + {canFill ? + : + + } + + + + + + {props.onRemoveShape()}} className='button-red button-fill button-raised'/> + + + ) +}; + +const EditShapeContainer = inject("storeFocusObjects")(observer(EditShape)); +const PageShapeStyle = inject("storeFocusObjects", "storeShapeSettings")(observer(PageStyle)); +const PageShapeStyleNoFill = inject("storeFocusObjects", "storeShapeSettings")(observer(PageStyleNoFill)); +const PageShapeCustomFillColor = inject("storeFocusObjects", "storeShapeSettings", "storePalette")(observer(PageCustomFillColor)); +const PageShapeBorderColor = inject("storeShapeSettings", "storePalette")(observer(PageBorderColor)); +const PageShapeCustomBorderColor = inject("storeShapeSettings", "storePalette")(observer(PageCustomBorderColor)); +const PageWrapContainer = inject("storeShapeSettings", "storeFocusObjects")(observer(PageWrap)); +const PageReplaceContainer = inject("storeShapeSettings","storeFocusObjects")(observer(PageReplace)); +const PageReorderContainer = inject("storeFocusObjects")(observer(PageReorder)); + +export {EditShapeContainer as EditShape, + PageShapeStyle, + PageShapeStyleNoFill, + PageShapeCustomFillColor, + PageShapeBorderColor, + PageShapeCustomBorderColor, + PageWrapContainer as PageWrap, + PageReplaceContainer as PageReplace, + PageReorderContainer as PageReorder} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/edit/EditTable.jsx b/apps/documenteditor/mobile/src/view/edit/EditTable.jsx new file mode 100644 index 000000000..94c8c178c --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditTable.jsx @@ -0,0 +1,549 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {Page, Navbar, List, ListItem, ListButton, Row, BlockTitle, Range, Toggle, Icon, Link, Tabs, Tab} from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {CustomColorPicker, ThemeColorPalette} from "../../../../../common/mobile/lib/component/ThemeColorPalette.jsx"; + +const PageTableOptions = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const storeFocusObjects = props.storeFocusObjects; + const tableObject = storeFocusObjects.tableObject; + const storeTableSettings = props.storeTableSettings; + + let distance, isRepeat, isResize; + if (tableObject) { + distance = Common.Utils.Metric.fnRecalcFromMM(storeTableSettings.getCellMargins(tableObject)); + isRepeat = storeTableSettings.getRepeatOption(tableObject); + isResize = storeTableSettings.getResizeOption(tableObject); + } + const [stateDistance, setDistance] = useState(distance); + + if (!tableObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + + return ( + + + + + {props.onOptionRepeat(!isRepeat)}}/> + + + {props.onOptionResize(!isResize)}}/> + + + {_t.textCellMargins} + + +
          + {setDistance(value)}} + onRangeChanged={(value) => {props.onCellMargins(value)}} + > +
          +
          + {stateDistance + ' ' + metricText} +
          +
          +
          +
          + ) +}; + +const PageWrap = props => { + const c_tableWrap = { + TABLE_WRAP_NONE: 0, + TABLE_WRAP_PARALLEL: 1 + }; + const c_tableAlign = { + TABLE_ALIGN_LEFT: 0, + TABLE_ALIGN_CENTER: 1, + TABLE_ALIGN_RIGHT: 2 + }; + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeTableSettings = props.storeTableSettings; + const tableObject = props.storeFocusObjects.tableObject; + let wrapType, align, moveText, distance; + if (tableObject) { + wrapType = storeTableSettings.getWrapType(tableObject); + align = storeTableSettings.getAlign(tableObject); + moveText = storeTableSettings.getMoveText(tableObject); + distance = Common.Utils.Metric.fnRecalcFromMM(storeTableSettings.getWrapDistance(tableObject)); + } + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const [stateDistance, setDistance] = useState(distance); + + if (!tableObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + + return ( + + + + {props.onWrapType(c_tableWrap.TABLE_WRAP_NONE)}}> + {!isAndroid && } + + {props.onWrapType(c_tableWrap.TABLE_WRAP_PARALLEL)}}> + {!isAndroid && } + + + + + {props.onWrapMoveText(!moveText)}}/> + + + { + wrapType === 'inline' && + + {_t.textAlign} + + + + { + props.onWrapAlign(c_tableAlign.TABLE_ALIGN_LEFT) + }}> + + + { + props.onWrapAlign(c_tableAlign.TABLE_ALIGN_CENTER) + }}> + + + { + props.onWrapAlign(c_tableAlign.TABLE_ALIGN_RIGHT) + }}> + + + + + + + } + { + (wrapType === 'flow') && + + {_t.textDistanceFromText} + + +
          + {setDistance(value)}} + onRangeChanged={(value) => {props.onWrapDistance(value)}} + > +
          +
          + {stateDistance + ' ' + metricText} +
          +
          +
          +
          + } +
          + ) +}; + +// Style + +const StyleTemplates = inject("storeFocusObjects")(observer(({templates, onStyleClick, storeFocusObjects}) => { + const styleId = storeFocusObjects.tableObject.get_TableStyle(); + const [stateId, setId] = useState(styleId); + + const widthContainer = document.querySelector(".page-content").clientWidth; + const columns = parseInt((widthContainer - 47) / 70); // magic + const styles = []; + let row = -1; + templates.forEach((style, index) => { + if (0 == index % columns) { + styles.push([]); + row++ + } + styles[row].push(style); + }); + + return ( +
          + {styles.map((row, rowIndex) => { + return ( +
          + {row.map((style, index)=>{ + return( +
          {onStyleClick(style.templateId); setId(style.templateId)}}> + +
          + ) + })} +
          + ) + })} +
          + ) +})); + +const PageStyleOptions = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const tableObject = props.storeFocusObjects.tableObject; + let tableLook, isFirstRow, isLastRow, isBandHor, isFirstCol, isLastCol, isBandVer; + if (tableObject) { + tableLook = tableObject.get_TableLook(); + isFirstRow = tableLook.get_FirstRow(); + isLastRow = tableLook.get_LastRow(); + isBandHor = tableLook.get_BandHor(); + isFirstCol = tableLook.get_FirstCol(); + isLastCol = tableLook.get_LastCol(); + isBandVer = tableLook.get_BandVer(); + } + return ( + + + + + {props.onCheckTemplateChange(tableLook, 0, !isFirstRow)}}/> + + + {props.onCheckTemplateChange(tableLook, 1, !isLastRow)}}/> + + + {props.onCheckTemplateChange(tableLook, 2, !isBandHor)}}/> + + + + + {props.onCheckTemplateChange(tableLook, 3, !isFirstCol)}}/> + + + {props.onCheckTemplateChange(tableLook, 4, !isLastCol)}}/> + + + {props.onCheckTemplateChange(tableLook, 5, !isBandVer)}}/> + + + + ) +}; + +const PageCustomFillColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const tableObject = props.storeFocusObjects.tableObject; + let fillColor; + if (tableObject) { + fillColor = props.storeTableSettings.getFillColor(tableObject); + if (typeof fillColor === 'object') { + fillColor = fillColor.color; + } + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onFillColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const TabFillColor = inject("storeFocusObjects", "storeTableSettings", "storePalette")(observer(props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const tableObject = props.storeFocusObjects.tableObject; + const fillColor = props.storeTableSettings.getFillColor(tableObject); + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onFillColor(newColor); + } else { + props.onFillColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-table-custom-fill-color/', {props: {onFillColor: props.onFillColor}}); + } + }; + return( + + + + + + + ) +})); + +const PageCustomBorderColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let borderColor = props.storeTableSettings.cellBorderColor; + if (typeof borderColor === 'object') { + borderColor = borderColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.storeTableSettings.updateCellBorderColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PageBorderColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeTableSettings = props.storeTableSettings; + const borderColor = storeTableSettings.cellBorderColor; + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + storeTableSettings.updateCellBorderColor(newColor); + } else { + storeTableSettings.updateCellBorderColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-table-custom-border-color/'); + } + }; + return( + + + + + + + + ) +}; + +const TabBorder = inject("storeFocusObjects", "storeTableSettings")(observer(props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + + const storeTableSettings = props.storeTableSettings; + const borderSizeTransform = storeTableSettings.borderSizeTransform(); + const borderSize = storeTableSettings.cellBorderWidth; + const displayBorderSize = borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + const onBorderType = (type) => { + storeTableSettings.updateBordersStyle(type); + props.onBorderTypeClick(storeTableSettings.cellBorders); + }; + + const borderColor = storeTableSettings.cellBorderColor; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + return ( + + +
          {_t.textSize}
          +
          + { + setBorderSize(value); + setTextBorderSize(borderSizeTransform.sizeByIndex(value)); + }} + onRangeChanged={(value) => {storeTableSettings.updateCellBorderWidth(borderSizeTransform.sizeByIndex(value));}} + > +
          +
          + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
          +
          + + + + + + {onBorderType("lrtbcm")}}> + + + {onBorderType("")}}> + + + {onBorderType("cm")}}> + + + {onBorderType("lrtb")}}> + + + {onBorderType("l")}}> + + + + + + + {onBorderType("c")}}> + + + {onBorderType("r")}}> + + + {onBorderType("t")}}> + + + {onBorderType("m")}}> + + + {onBorderType("b")}}> + + + + +
          + ) +})); + +const PageStyle = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const storeTableSettings = props.storeTableSettings; + const templates = storeTableSettings.styles; + + const tableObject = props.storeFocusObjects.tableObject; + if (!tableObject && Device.phone) { + $$('.sheet-modal.modal-in').length > 0 && f7.sheet.close(); + return null; + } + + return ( + + +
          + {_t.textStyle} + {_t.textFill} + {_t.textBorder} +
          +
          + + + + + + + + + + + + + + + + + + +
          + ) +}; + +const EditTable = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + return ( + + + + + {props.onAddColumnLeft()}}> + + + {props.onAddColumnRight()}}> + + + {props.onAddRowAbove()}}> + + + {props.onAddRowBelow()}}> + + + + + + + {props.onRemoveColumn()}}> + + + {props.onRemoveRow()}}> + + + + + {props.onRemoveTable()}} className='button-red button-fill button-raised'> + + + + + + + + ) +}; + +const EditTableContainer = inject("storeFocusObjects")(observer(EditTable)); +const PageTableOptionsContainer = inject("storeFocusObjects","storeTableSettings")(observer(PageTableOptions)); +const PageTableWrap = inject("storeFocusObjects","storeTableSettings")(observer(PageWrap)); +const PageTableStyle = inject("storeFocusObjects","storeTableSettings")(observer(PageStyle)); +const PageTableStyleOptions = inject("storeFocusObjects","storeTableSettings")(observer(PageStyleOptions)); +const PageTableCustomFillColor = inject("storeFocusObjects","storeTableSettings", "storePalette")(observer(PageCustomFillColor)); +const PageTableBorderColor = inject("storeFocusObjects","storeTableSettings", "storePalette")(observer(PageBorderColor)); +const PageTableCustomBorderColor = inject("storeFocusObjects","storeTableSettings", "storePalette")(observer(PageCustomBorderColor)); + + +export {EditTableContainer as EditTable, + PageTableOptionsContainer as PageTableOptions, + PageTableWrap, + PageTableStyle, + PageTableStyleOptions, + PageTableCustomFillColor, + PageTableBorderColor, + PageTableCustomBorderColor} \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/edit/EditText.jsx b/apps/documenteditor/mobile/src/view/edit/EditText.jsx new file mode 100644 index 000000000..3cad9d774 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/edit/EditText.jsx @@ -0,0 +1,470 @@ +import React, {Fragment, useState } from 'react'; +import {observer, inject} from "mobx-react"; +import {f7, List, ListItem, Icon, Row, Button, Page, Navbar, Segmented, BlockTitle} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx'; + +const PageFonts = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const storeTextSettings = props.storeTextSettings; + const size = storeTextSettings.fontSize; + const displaySize = typeof size === 'undefined' ? t('Edit.textAuto') : size + ' ' + t('Edit.textPt'); + const curFontName = storeTextSettings.fontName; + const fonts = storeTextSettings.fontsArray; + const [vlFonts, setVlFonts] = useState({ + vlData: { + items: [], + } + }); + const renderExternal = (vl, vlData) => { + setVlFonts((prevState) => { + let fonts = [...prevState.vlData.items]; + fonts.splice(vlData.fromIndex, vlData.toIndex, ...vlData.items); + return {vlData: { + items: fonts, + }} + }); + }; + + console.log(curFontName); + + return ( + + + + + {!isAndroid &&
          {displaySize}
          } +
          + + + {isAndroid && } + + +
          +
          +
          + {t('Edit.textFonts')} + +
            + {vlFonts.vlData.items.map((item, index) => ( + {storeTextSettings.changeFontFamily(item.name); props.changeFontFamily(item.name)}} + > + ))} +
          +
          +
          + ) +}; + +const PageAdditionalFormatting = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const storeTextSettings = props.storeTextSettings; + const storeFocusObjects = props.storeFocusObjects; + const paragraph = storeFocusObjects.paragraphObject; + const isStrikeout = paragraph.get_Strikeout(); + const isDStrikeout = paragraph.get_DStrikeout(); + const isSuperscript = storeTextSettings.isSuperscript; + const isSubscript = storeTextSettings.isSubscript; + const isSmallCaps = paragraph.get_SmallCaps(); + const isAllCaps = paragraph.get_AllCaps(); + const letterSpacing = Common.Utils.Metric.fnRecalcFromMM(paragraph.get_TextSpacing()); + return( + + + + {props.onAdditionalStrikethrough('strikeout', !isStrikeout)}}/> + {props.onAdditionalStrikethrough('dbStrikeout', !isDStrikeout)}}/> + {props.onAdditionalScript('superscript', !isSuperscript)}}/> + {props.onAdditionalScript('subscript', !isSubscript)}}/> + {props.onAdditionalCaps('small', !isSmallCaps)}}/> + {props.onAdditionalCaps('all', !isAllCaps)}}/> + + + + {!isAndroid &&
          {letterSpacing + ' ' + Common.Utils.Metric.getCurrentMetricName()}
          } +
          + + + {isAndroid && } + + +
          +
          +
          +
          + ) +}; + +const PageBullets = props => { + const { t } = useTranslation(); + const bulletArrays = [ + [ + {type: -1, thumb: ''}, + {type: 1, thumb: 'bullet-01.png'}, + {type: 2, thumb: 'bullet-02.png'}, + {type: 3, thumb: 'bullet-03.png'} + ], + [ + {type: 4, thumb: 'bullet-04.png'}, + {type: 5, thumb: 'bullet-05.png'}, + {type: 6, thumb: 'bullet-06.png'}, + {type: 7, thumb: 'bullet-07.png'} + ] + ]; + const storeTextSettings = props.storeTextSettings; + const typeBullets = storeTextSettings.typeBullets; + + return( + + + {bulletArrays.map((bullets, index) => ( +
            + {bullets.map((bullet) => ( +
          • { + if (bullet.type === -1) { + storeTextSettings.resetBullets(-1); + } + props.onBullet(bullet.type) + }}> + {bullet.thumb.length < 1 ? +
            + +
            : +
            + } +
          • + ))} +
          + ))} +
          + ) +}; + +const PageNumbers = props => { + const { t } = useTranslation(); + const numberArrays = [ + [ + {type: -1, thumb: ''}, + {type: 4, thumb: 'number-01.png'}, + {type: 5, thumb: 'number-02.png'}, + {type: 6, thumb: 'number-03.png'} + ], + [ + {type: 1, thumb: 'number-04.png'}, + {type: 2, thumb: 'number-05.png'}, + {type: 3, thumb: 'number-06.png'}, + {type: 7, thumb: 'number-07.png'} + ] + ]; + const storeTextSettings = props.storeTextSettings; + const typeNumbers = storeTextSettings.typeNumbers; + return( + + + {numberArrays.map((numbers, index) => ( +
            + {numbers.map((number) => ( +
          • { + if (number.type === -1) { + storeTextSettings.resetNumbers(-1); + } + props.onNumber(number.type) + }}> + {number.thumb.length < 1 ? +
            + +
            : +
            + } +
          • + ))} +
          + ))} +
          + ) +}; + +const PageLineSpacing = props => { + const { t } = useTranslation(); + const storeTextSettings = props.storeTextSettings; + const lineSpacing = storeTextSettings.lineSpacing; + return( + + + + {props.onLineSpacing(1.0)}}> + {props.onLineSpacing(1.15)}}> + {props.onLineSpacing(1.5)}}> + {props.onLineSpacing(2.0)}}> + {props.onLineSpacing(2.5)}}> + {props.onLineSpacing(3.0)}}> + + + ) +}; + +const PageCustomFontColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const store = props.storeTextSettings; + let textColor = store.textColor; + if (typeof textColor === 'object') { + textColor = textColor.color; + } + const autoColor = textColor === 'auto' ? window.getComputedStyle(document.getElementById('font-color-auto')).backgroundColor : null; + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onTextColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PageFontColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const textColor = props.storeTextSettings.textColor; + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + props.onTextColor({color: color, effectId: effectId}); + } else { + props.onTextColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-text-custom-font-color/', {props: {onTextColor: props.onTextColor}}); + } + }; + return( + + + + { + props.onTextColorAuto(); + }}> +
          +
          +
          +
          +
          + + + + +
          + ) +}; + +const PageCustomBackColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let backgroundColor = props.storeTextSettings.backgroundColor; + if (typeof backgroundColor === 'object') { + backgroundColor = backgroundColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onBackgroundColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PageBackgroundColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + const backgroundColor = props.storeTextSettings.backgroundColor; + const customColors = props.storePalette.customColors; + const changeColor = (color, effectId) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + props.onBackgroundColor({color: color, effectId: effectId}); + } else { + props.onBackgroundColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-text-custom-back-color/', {props: {onBackgroundColor: props.onBackgroundColor}}); + } + }; + return( + + + + + + + + ) +}; + +const EditText = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const storeTextSettings = props.storeTextSettings; + const fontName = storeTextSettings.fontName || t('Edit.textFonts'); + const fontSize = storeTextSettings.fontSize; + const fontColor = storeTextSettings.textColor; + const backgroundColor = storeTextSettings.backgroundColor; + const displaySize = typeof fontSize === 'undefined' ? t('Edit.textAuto') : fontSize + ' ' + t('Edit.textPt'); + const isBold = storeTextSettings.isBold; + const isItalic = storeTextSettings.isItalic; + const isUnderline = storeTextSettings.isUnderline; + const isStrikethrough = storeTextSettings.isStrikethrough; + const paragraphAlign = storeTextSettings.paragraphAlign; + + const fontColorPreview = fontColor !== 'auto' ? + : + ; + + return ( + + + + + + { props.toggleBold(!isBold)}}>B + {props.toggleItalic(!isItalic)}}>I + {props.toggleUnderline(!isUnderline)}} style={{textDecoration: "underline"}}>U + {props.toggleStrikethrough(!isStrikethrough)}} style={{textDecoration: "line-through"}}>S + + + + {!isAndroid ? + {fontColorPreview} : + fontColorPreview + } + + + {!isAndroid ? + : + + } + + + {!isAndroid && } + + + + + + {props.onParagraphAlign('left')}}> + + + {props.onParagraphAlign('center')}}> + + + {props.onParagraphAlign('right')}}> + + + {props.onParagraphAlign('just')}}> + + + + + + + {props.onParagraphMove(true)}}> + + + {props.onParagraphMove(false)}}> + + + + + + {!isAndroid && } + + + {!isAndroid && } + + + {!isAndroid && } + + + + ) +}; + +const EditTextContainer = inject("storeTextSettings", "storeFocusObjects")(observer(EditText)); +const PageTextFonts = inject("storeTextSettings", "storeFocusObjects")(observer(PageFonts)); +const PageTextAddFormatting = inject("storeTextSettings", "storeFocusObjects")(observer(PageAdditionalFormatting)); +const PageTextBullets = inject("storeTextSettings")(observer(PageBullets)); +const PageTextNumbers = inject("storeTextSettings")(observer(PageNumbers)); +const PageTextLineSpacing = inject("storeTextSettings")(observer(PageLineSpacing)); +const PageTextFontColor = inject("storeTextSettings", "storePalette")(observer(PageFontColor)); +const PageTextCustomFontColor = inject("storeTextSettings", "storePalette")(observer(PageCustomFontColor)); +const PageTextBackgroundColor = inject("storeTextSettings", "storePalette")(observer(PageBackgroundColor)); +const PageTextCustomBackColor = inject("storeTextSettings", "storePalette")(observer(PageCustomBackColor)); + + +export { + EditTextContainer as EditText, + PageTextFonts, + PageTextAddFormatting, + PageTextBullets, + PageTextNumbers, + PageTextLineSpacing, + PageTextFontColor, + PageTextCustomFontColor, + PageTextBackgroundColor, + PageTextCustomBackColor +}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/settings/ApplicationSettings.jsx b/apps/documenteditor/mobile/src/view/settings/ApplicationSettings.jsx new file mode 100644 index 000000000..848438779 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/settings/ApplicationSettings.jsx @@ -0,0 +1,130 @@ +import React, {Fragment} from "react"; +import { observer, inject } from "mobx-react"; +import { Page, Navbar, List, ListItem, BlockTitle, Toggle } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const PageApplicationSettings = props => { + const { t } = useTranslation(); + const _t = t("Settings", { returnObjects: true }); + const store = props.storeApplicationSettings; + const unitMeasurement = store.unitMeasurement; + const isSpellChecking = store.isSpellChecking; + const isNonprintingCharacters = store.isNonprintingCharacters; + const isHiddenTableBorders = store.isHiddenTableBorders; + const isComments = store.isComments; + const isResolvedComments = store.isResolvedComments; + + const changeMeasureSettings = value => { + store.changeUnitMeasurement(value); + props.setUnitMeasurement(value); + }; + + // set mode + const appOptions = props.storeAppOptions; + const _isEdit = appOptions.isEdit; + const _isShowMacros = (!appOptions.isDisconnected && appOptions.customization) ? appOptions.customization.macros !== false : true; + + return ( + + + {_isEdit && + + {_t.textUnitOfMeasurement} + + changeMeasureSettings(0)}> + changeMeasureSettings(1)}> + changeMeasureSettings(2)}> + + + + { + store.changeSpellCheck(!isSpellChecking); + props.switchSpellCheck(!isSpellChecking); + }} + /> + + + + {/*ToDo: if (DisplayMode == "final" || DisplayMode == "original") {disabled} */} + { + store.changeNoCharacters(!isNonprintingCharacters); + props.switchNoCharacters(!isNonprintingCharacters); + }} + /> + + {/*ToDo: if (DisplayMode == "final" || DisplayMode == "original") {disabled} */} + { + store.changeShowTableEmptyLine(!isHiddenTableBorders); + props.switchShowTableEmptyLine(!isHiddenTableBorders); + }} + /> + + + + } + {_t.textCommentsDisplay} + + + { + store.changeDisplayComments(!isComments); + props.switchDisplayComments(!isComments); + }} + /> + + + { + store.changeDisplayResolved(!isResolvedComments); + props.switchDisplayResolved(!isResolvedComments); + }} + /> + + + {_isShowMacros && + + + + } + + ); +}; + +const PageMacrosSettings = props => { + const { t } = useTranslation(); + const _t = t("Settings", { returnObjects: true }); + const store = props.storeApplicationSettings; + const macrosMode = store.macrosMode; + + const changeMacros = value => { + store.changeMacrosSettings(value); + props.setMacrosSettings(value); + }; + + return ( + + + + changeMacros(2)}> + changeMacros(0)}> + changeMacros(1)}> + + + ); +}; + +const ApplicationSettings = inject("storeApplicationSettings", "storeAppOptions")(observer(PageApplicationSettings)); +const MacrosSettings = inject("storeApplicationSettings")(observer(PageMacrosSettings)); + +export {ApplicationSettings, MacrosSettings}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/settings/DocumentInfo.jsx b/apps/documenteditor/mobile/src/view/settings/DocumentInfo.jsx new file mode 100644 index 000000000..6a78cb121 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/settings/DocumentInfo.jsx @@ -0,0 +1,144 @@ +import React, {Fragment} from "react"; +import { observer, inject } from "mobx-react"; +import { Page, Navbar, List, ListItem, BlockTitle } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const PageDocumentInfo = (props) => { + const { t } = useTranslation(); + const _t = t("Settings", { returnObjects: true }); + const storeInfo = props.storeDocumentInfo; + const dataApp = props.getAppProps(); + const dataModified = props.getModified; + const dataModifiedBy = props.getModifiedBy; + const creators = props.getCreators; + // console.log(creators); + const { + pageCount, + paragraphCount, + symbolsCount, + symbolsWSCount, + wordsCount, + } = storeInfo.infoObj; + const dataDoc = JSON.parse(JSON.stringify(storeInfo.dataDoc)); + // console.log(dataDoc); + const isLoaded = storeInfo.isLoaded; + // console.log(pageCount, paragraphCount, symbolsCount, symbolsWSCount, wordsCount); + + return ( + + + {dataDoc.title ? ( + + {_t.textDocumentTitle} + + + + + ) : null} + {dataDoc.info.author || dataDoc.info.owner ? ( + + {_t.textOwner} + + + + + ) : null} + {dataDoc.info.folder ? ( + + {_t.textLocation} + + + + + ) : null} + {dataDoc.info.uploaded || dataDoc.info.created ? ( + + {_t.textUploaded} + + + + + ) : null} + {_t.textStatistic} + + + + + + + + {props.title ? ( + + {_t.textTitle} + + + + + ) : null} + {props.subject ? ( + + {_t.textSubject} + + + + + ) : null} + {props.description ? ( + + {_t.textComment} + + + + + ) : null} + {dataModified ? ( + + {_t.textLastModified} + + + + + ) : null} + {dataModifiedBy ? ( + + {_t.textLastModifiedBy} + + + + + ) : null} + {props.getCreated ? ( + + {_t.textCreated} + + + + + ) : null} + {dataApp ? ( + + {_t.textApplication} + + + + + ) : null} + {creators ? ( + + {_t.textAuthor} + + { + creators.split(/\s*[,;]\s*/).map(item => { + return + }) + } + + + ) : null} + + ); +}; + +const DocumentInfo = inject("storeDocumentInfo")(observer(PageDocumentInfo)); + +export default DocumentInfo; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/settings/DocumentSettings.jsx b/apps/documenteditor/mobile/src/view/settings/DocumentSettings.jsx new file mode 100644 index 000000000..c3badf99e --- /dev/null +++ b/apps/documenteditor/mobile/src/view/settings/DocumentSettings.jsx @@ -0,0 +1,270 @@ +import React, {useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {Page, Navbar, List, ListItem, BlockTitle, Segmented, Button, Icon} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { f7 } from 'framework7-react'; + +const PageDocumentFormats = props => { + const { t } = useTranslation(); + const _t = t('Settings', {returnObjects: true}); + const storeSettings = props.storeDocumentSettings; + const pageSizesIndex = storeSettings.pageSizesIndex; + const pageSizes = storeSettings.getPageSizesList(); + const textMetric = Common.Utils.Metric.getCurrentMetricName(); + const margins = props.getMargins(); + const maxMarginsW = margins.maxMarginsW; + const maxMarginsH = margins.maxMarginsH; + + // console.log(margins.left, margins.right, margins.top, margins.bottom); + // console.log(maxMarginsW, maxMarginsH); + + const onFormatChange = (value) => { + let errorMsg; + + if (margins.left + margins.right > maxMarginsW) { + errorMsg = _t.textMarginsW; + } else if (margins.top + margins.bottom > maxMarginsH) { + errorMsg = _t.textMarginsH; + } + + if(errorMsg) { + f7.dialog.alert(errorMsg, _t.notcriticalErrorTitle); + } else { + props.onFormatChange(value); + } + } + + return ( + + + + {pageSizes.map((item, index) => onFormatChange(item.value)} + >)} + + + ) +}; + +const PageDocumentMargins = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('Settings', {returnObjects: true}); + const metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); + const margins = props.getMargins(); + const [stateTop, setTop] = useState(margins.top); + const [stateBottom, setBottom] = useState(margins.bottom); + const [stateLeft, setLeft] = useState(margins.left); + const [stateRight, setRight] = useState(margins.right); + + const onChangeMargins = (align, isDecrement) => { + const step = Common.Utils.Metric.fnRecalcToMM(Common.Utils.Metric.getCurrentMetric() === Common.Utils.Metric.c_MetricUnits.pt ? 1 : 0.1); + let marginValue; + + switch (align) { + case 'left': marginValue = stateLeft; break; + case 'top': marginValue = stateTop; break; + case 'right': marginValue = stateRight; break; + case 'bottom': marginValue = stateBottom; break; + } + + if (isDecrement) { + marginValue = Math.max(0, marginValue - step); + } else { + marginValue = Math.min((align == 'left' || align == 'right') ? margins.maxMarginsW : margins.maxMarginsH, marginValue + step); + } + + switch (align) { + case 'left': setLeft(marginValue); break; + case 'top': setTop(marginValue); break; + case 'right': setRight(marginValue); break; + case 'bottom': setBottom(marginValue); break; + } + + props.applyMargins(align, marginValue); + }; + + return ( + + + + + {!isAndroid &&
          {parseFloat(Common.Utils.Metric.fnRecalcFromMM(stateTop).toFixed(2)) + ' ' + metricText}
          } +
          + + + {isAndroid && } + + +
          +
          + + {!isAndroid &&
          {parseFloat(Common.Utils.Metric.fnRecalcFromMM(stateBottom).toFixed(2))+ ' ' + metricText}
          } +
          + + + {isAndroid && } + + +
          +
          + + {!isAndroid &&
          {parseFloat(Common.Utils.Metric.fnRecalcFromMM(stateLeft).toFixed(2))+ ' ' + metricText}
          } +
          + + + {isAndroid && } + + +
          +
          + + {!isAndroid &&
          {parseFloat(Common.Utils.Metric.fnRecalcFromMM(stateRight).toFixed(2))+ ' ' + metricText}
          } +
          + + + {isAndroid && } + + +
          +
          +
          +
          + ) +}; + +const PageDocumentColorSchemes = props => { + const { t } = useTranslation(); + const curScheme = props.initPageColorSchemes(); + const [stateScheme, setScheme] = useState(curScheme); + const _t = t('Settings', {returnObjects: true}); + const storeSettings = props.storeDocumentSettings; + const allSchemes = storeSettings.allSchemes; + + return ( + + + + { + allSchemes ? allSchemes.map((scheme, index) => { + return ( + { + if(index !== curScheme) { + setScheme(index); + props.onColorSchemeChange(index); + }; + }}> +
          + + { + scheme.get_colors().map((elem, index) => { + if(index >=2 && index < 7) { + let clr = {background: "#" + Common.Utils.ThemeColor.getHexColor(elem.get_r(), elem.get_g(), elem.get_b())}; + return ( + + ) + } + }) + } + + +
          +
          + ) + }) : null + } +
          +
          + + ) +}; + +const PageDocumentSettings = props => { + const { t } = useTranslation(); + const _t = t('Settings', {returnObjects: true}); + + const storeSettings = props.storeDocumentSettings; + + //Init Format + const curMetricName = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); + const pageSizesIndex = storeSettings.pageSizesIndex; + const widthDoc = storeSettings.widthDocument; + const heightDoc = storeSettings.heightDocument; + let textFormat; + let sizeW; + let sizeH; + if (pageSizesIndex === -1) { + textFormat = _t.textCustomSize; + sizeW = parseFloat(Common.Utils.Metric.fnRecalcFromMM(widthDoc).toFixed(2)); + sizeH = parseFloat(Common.Utils.Metric.fnRecalcFromMM(heightDoc).toFixed(2)); + } else { + const pageSizes = storeSettings.getPageSizesList(); + textFormat = pageSizes[pageSizesIndex]['caption']; + sizeW = parseFloat(Common.Utils.Metric.fnRecalcFromMM(pageSizes[pageSizesIndex]['value'][0]).toFixed(2)); + sizeH = parseFloat(Common.Utils.Metric.fnRecalcFromMM(pageSizes[pageSizesIndex]['value'][1]).toFixed(2)); + } + const pageSizeTxt = sizeW + ' ' + curMetricName + ' x ' + sizeH + ' ' + curMetricName; + + return ( + + + {_t.textOrientation} + + props.onPageOrientation('portrait')}> + props.onPageOrientation('landscape')}> + + {_t.textFormat} + + + + + + + + + ) +}; + +const DocumentFormats = inject("storeDocumentSettings")(observer(PageDocumentFormats)); +const DocumentMargins = inject("storeDocumentSettings")(observer(PageDocumentMargins)); +const DocumentSettings = inject("storeDocumentSettings")(observer(PageDocumentSettings)); +const DocumentColorSchemes = inject("storeDocumentSettings")(observer(PageDocumentColorSchemes)); + +export { + DocumentSettings, + DocumentFormats, + DocumentMargins, + DocumentColorSchemes +}; diff --git a/apps/documenteditor/mobile/src/view/settings/Download.jsx b/apps/documenteditor/mobile/src/view/settings/Download.jsx new file mode 100644 index 000000000..14227e8aa --- /dev/null +++ b/apps/documenteditor/mobile/src/view/settings/Download.jsx @@ -0,0 +1,47 @@ +import React from 'react'; +// import { observer } from "mobx-react"; +import { Page, Navbar, List, ListItem, BlockTitle, Icon } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const Download = props => { + const { t } = useTranslation(); + const _t = t("Settings", { returnObjects: true }); + + return ( + + + {_t.textDownloadAs} + + props.onSaveFormat(Asc.c_oAscFileType.DOCX)}> + + + props.onSaveFormat(Asc.c_oAscFileType.PDF)}> + + + props.onSaveFormat(Asc.c_oAscFileType.PDFA)}> + + + props.onSaveFormat(Asc.c_oAscFileType.TXT)}> + + + props.onSaveFormat(Asc.c_oAscFileType.RTF)}> + + + props.onSaveFormat(Asc.c_oAscFileType.ODT)}> + + + props.onSaveFormat(Asc.c_oAscFileType.HTML)}> + + + props.onSaveFormat(Asc.c_oAscFileType.DOTX)}> + + + props.onSaveFormat(Asc.c_oAscFileType.OTT)}> + + + + + ) +} + +export default Download; \ No newline at end of file diff --git a/apps/documenteditor/mobile/src/view/settings/Settings.jsx b/apps/documenteditor/mobile/src/view/settings/Settings.jsx new file mode 100644 index 000000000..957ac1ea4 --- /dev/null +++ b/apps/documenteditor/mobile/src/view/settings/Settings.jsx @@ -0,0 +1,204 @@ +import React, {Component, useEffect} from 'react'; +import {View, Page, Navbar, NavRight, Link, Popup, Popover, Icon,ListItem, List, Toggle} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {f7} from 'framework7-react'; +import { observer, inject } from "mobx-react"; +import {Device} from '../../../../../common/mobile/utils/device'; + +import DocumentSettingsController from "../../controller/settings/DocumentSettings"; +import DocumentInfoController from "../../controller/settings/DocumentInfo"; +import { DownloadController } from "../../controller/settings/Download"; +import ApplicationSettingsController from "../../controller/settings/ApplicationSettings"; +import { DocumentFormats, DocumentMargins, DocumentColorSchemes } from "./DocumentSettings"; +import { MacrosSettings } from "./ApplicationSettings"; +import About from '../../../../../common/mobile/lib/view/About'; + +const routes = [ + { + path: '/', + component: 'TSettingsView' + }, + { + path: '/document-settings/', + component: DocumentSettingsController, + }, + { + path: '/margins/', + component: DocumentMargins, + }, + { + path: '/document-formats/', + component: DocumentFormats, + }, + { + path: "/document-info/", + component: DocumentInfoController, + }, + { + path: '/application-settings/', + component: ApplicationSettingsController + }, + { + path: '/macros-settings/', + component: MacrosSettings + }, + { + path: '/download/', + component: DownloadController + }, + { + path: '/color-schemes/', + component: DocumentColorSchemes + }, + { + path: '/about/', + component: About + } +]; + + +const SettingsList = inject("storeAppOptions")(observer(props => { + const { t } = useTranslation(); + const _t = t('Settings', {returnObjects: true}); + const navbar = + {!props.inPopover && {_t.textDone}} + ; + + const onoptionclick = page => { + if ( props.onOptionClick ) + props.onOptionClick(page) + }; + + const closeModal = () => { + if (Device.phone) { + f7.sheet.close('.settings-popup', false); + } else { + f7.popover.close('#settings-popover', false); + } + }; + + const onOpenCollaboration = async () => { + await closeModal(); + await props.openOptions('coauth'); + } + + useEffect(() => { + }); + + // set mode + const appOptions = props.storeAppOptions; + let _isEdit = false, + _canDownload = false, + _canDownloadOrigin = false, + _canReader = false, + _canAbout = true, + _canHelp = true, + _canPrint = false; + if (appOptions.isDisconnected) { + _isEdit = false; + if (!appOptions.enableDownload) + _canPrint = _canDownload = _canDownloadOrigin = false; + } else { + _isEdit = appOptions.isEdit; + _canReader = !appOptions.isEdit && !appOptions.isRestrictedEdit && appOptions.canReader; + _canDownload = appOptions.canDownload; + _canDownloadOrigin = appOptions.canDownloadOrigin; + _canPrint = appOptions.canPrint; + if (appOptions.customization && appOptions.canBrandingExt) { + _canAbout = (appOptions.customization.about!==false); + } + if (appOptions.customization) { + _canHelp = (appOptions.customization.help!==false); + } + } + + return ( + + + {navbar} + + {!props.inPopover && + + + + } + {window.matchMedia("(max-width: 389px)").matches ? + + + + : null} + {_canReader && + {/*ToDo*/} + + {props.onReaderMode()}}/> + + } + {/*ToDo: settings-orthography*/} + {_isEdit && + + + + } + + + + {_canDownload && + + + + } + {_canDownloadOrigin && + {}}> {/*ToDo*/} + + + } + {_canPrint && + + + + } + + + + {_canHelp && + + + + } + {_canAbout && + + + + } + + + + ) +})); + +class SettingsView extends Component { + constructor(props) { + super(props) + + this.onoptionclick = this.onoptionclick.bind(this); + } + + onoptionclick(page){ + f7.views.current.router.navigate(page); + } + + render() { + const show_popover = this.props.usePopover; + return ( + show_popover ? + this.props.onclosed()}> + + : + this.props.onclosed()}> + + + ) + } +} + +export default SettingsView; diff --git a/apps/documenteditor/mobile/test/nightwatch.json b/apps/documenteditor/mobile/test/nightwatch.json deleted file mode 100644 index 5999d55c9..000000000 --- a/apps/documenteditor/mobile/test/nightwatch.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "src_folders" : ["tests"], - "output_folder" : "reports", - "custom_commands_path" : "", - "custom_assertions_path" : "", - "page_objects_path" : "", - "globals_path" : "", - - "selenium" : { - "start_process" : true, - "server_path" : "./bin/selenium-server-standalone-2.53.1.jar", - "log_path" : "", - "port" : 4444, - "cli_args" : { - "webdriver.chrome.driver" : "./bin/chromedriver" - } - }, - - "test_settings" : { - "default" : { - "launch_url" : "http://localhost", - "selenium_port" : 4444, - "selenium_host" : "localhost", - "silent": true, - "screenshots" : { - "enabled" : true, - "path" : "reports/screens" - }, - "desiredCapabilities": { - "browserName": "chrome" - } - } - } -} \ No newline at end of file diff --git a/apps/documenteditor/mobile/test/tests/de-mobile-edit-tablet-ios.js b/apps/documenteditor/mobile/test/tests/de-mobile-edit-tablet-ios.js deleted file mode 100644 index a985c0f50..000000000 --- a/apps/documenteditor/mobile/test/tests/de-mobile-edit-tablet-ios.js +++ /dev/null @@ -1,117 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * de-mobile-edit-tablet-ios.js - * - * Created by Alexander Yuzhin on 1/10/17 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -var Utils = require('../utils'); - -module.exports = { - before : function (browser) { - Utils.init(browser); - browser.resizeWindow(800, 600); - }, - - 'Launch Document Editor' : function (browser) { - Utils.openEditor('http://local:3000/editor?type=mobile&mode=edit&fileName=sample.docx'); - }, - - 'Text settings' : function (browser) { - Utils.canvasClick(280, 280) - .click('#toolbar-edit') - .pause(500); - - Utils.isPresent('div.edit-root-view'); - Utils.isPresent('#edit-text'); - Utils.isPresent('#edit-paragraph'); - - // Text tap - Utils.hasClass('#edit-text', 'active'); - - browser.expect.element('#font-fonts .item-title').text.to.equal('Arial'); - browser.expect.element('#font-fonts .item-after span:first-child').text.to.equal('11 pt'); - - Utils.hasClass('#font-bold', 'active'); - Utils.hasNoClass('#font-italic', 'active'); - Utils.hasNoClass('#font-underline', 'active'); - Utils.hasNoClass('#font-strikethrough', 'active'); - - Utils.hasClass('#font-left', 'active'); - Utils.hasNoClass('#font-center', 'active'); - Utils.hasNoClass('#font-right', 'active'); - Utils.hasNoClass('#font-just', 'active'); - - // Fonts view - browser - .click('#font-fonts') - .waitForElementVisible('.page[data-page=edit-text-font-page]', 1000) - .pause(500); - - browser.expect.element('#font-size .item-after label').text.to.equal('11 pt'); - browser.elements('css selector', '#font-list li', function(result) { - browser.assert.ok(result.value.length > 1, 'Font name list is not empty'); - }); - - browser - .click('.navbar-on-center a.back') - .pause(500); - - // Paragraph tap - browser - .click('.categories a[href*=edit-paragraph]') - .pause(500); - - Utils.hasClass('#edit-paragraph', 'active'); - - browser.elements('css selector', '#paragraph-list li', function(result) { - browser.assert.ok(result.value.length > 1, 'Paragraph style list is not empty'); - }); - }, - - 'Exit from Document Editor' : function (browser) { - var delay = 3000; - - Utils.isPresent('.view-main'); - console.log('Finish testing after delay', delay, 'ms.'); - - browser - .pause(delay) - .frame(null) // Exit from iframe - .end(); // Close browser - } -}; \ No newline at end of file diff --git a/apps/documenteditor/mobile/test/utils.js b/apps/documenteditor/mobile/test/utils.js deleted file mode 100644 index 7bf07d425..000000000 --- a/apps/documenteditor/mobile/test/utils.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * utils.js - * - * Created by Alexander Yuzhin on 1/11/17 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -var browser; - -module.exports = { - init: function (client) { - browser = client; - }, - - openEditor: function (url) { - browser - .url(url) - .waitForElementVisible('body', 1000) - .frame(0) // Deep into editor iframe - .waitForElementPresent('.modal-preloader', 1000) - .waitForElementNotPresent('.modal-preloader', 10000); - // .frame(null); // Exit from iframe - // .end(); // Close browser - - return browser; - }, - - canvasClick: function (x, y) { - browser - .moveToElement('#area_id_main', x, y) - .mouseButtonDown('left') - .mouseButtonUp('left'); - - return browser; - }, - - isPresent: function (selector) { - return browser.expect.element(selector).to.be.present; - }, - - hasClass: function (selector, className) { - return browser.expect.element(selector).to.have.attribute('class').which.contains(className); - }, - - hasNoClass: function (selector, className) { - return browser.expect.element(selector).to.not.have.attribute('class').which.contains(className); - } -}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app-dev.js b/apps/presentationeditor/mobile/app-dev.js deleted file mode 100644 index 7d1f9abb5..000000000 --- a/apps/presentationeditor/mobile/app-dev.js +++ /dev/null @@ -1,240 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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) 2018 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', - 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', - features : '../../web-apps-mobile/slide/patch' - }, - - 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', - 'sockjs' -], function (Backbone, Framework7, Core) { - Backbone.history.start(); - - /** - * Application instance with DE namespace defined - */ - var app = new Backbone.Application({ - nameSpace: 'PE', - autoCreate: false, - controllers : [ - 'Common.Controllers.Plugins', - 'Editor', - 'Toolbar', - 'Search', - 'Main', - 'DocumentHolder', - 'DocumentPreview', - 'Settings', - 'EditContainer', - 'EditText', - 'EditTable', - 'EditImage', - 'EditShape', - 'EditSlide', - 'EditChart', - 'EditLink', - 'AddContainer', - 'AddTable', - 'AddShape', - 'AddImage', - 'AddLink', - 'AddSlide', - 'AddOther', - 'Common.Controllers.Collaboration' - ] - }); - - 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', - - // Enable tap hold events - tapHold: true, - - // 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'); - - Common.Locale.apply(function(){ - require([ - 'common/main/lib/util/LocalStorage', - 'common/main/lib/util/utils', - 'common/mobile/lib/controller/Plugins', - '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/DocumentPreview', - 'presentationeditor/mobile/app/controller/Settings', - 'presentationeditor/mobile/app/controller/edit/EditContainer', - 'presentationeditor/mobile/app/controller/edit/EditText', - 'presentationeditor/mobile/app/controller/edit/EditTable', - 'presentationeditor/mobile/app/controller/edit/EditImage', - 'presentationeditor/mobile/app/controller/edit/EditShape', - 'presentationeditor/mobile/app/controller/edit/EditSlide', - 'presentationeditor/mobile/app/controller/edit/EditChart', - 'presentationeditor/mobile/app/controller/edit/EditLink', - '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/AddLink', - 'presentationeditor/mobile/app/controller/add/AddSlide', - 'presentationeditor/mobile/app/controller/add/AddOther', - 'common/mobile/lib/controller/Collaboration' - - ], function() { - window.compareVersions = true; - var _s = app.start.bind(app); - require(['features'], _s, _s); - }); - }); -}, function(err) { - if (err.requireType == 'timeout' && !reqerr && window.requireTimeourError) { - reqerr = window.requireTimeourError(); - window.alert(reqerr); - window.location.reload(); - } -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app.js b/apps/presentationeditor/mobile/app.js deleted file mode 100644 index 91c81c053..000000000 --- a/apps/presentationeditor/mobile/app.js +++ /dev/null @@ -1,247 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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) 2018 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', - allfonts : '../../sdkjs/common/AllFonts', - sdk : '../../sdkjs/slide/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' - ] - }, - gateway: { - deps: [ - 'jquery' - ] - }, - analytics: { - deps: [ - 'jquery' - ] - } - } -}); - -require([ - 'backbone', - 'framework7', - 'core', - 'underscore', - 'extendes', - 'sdk', - 'api', - 'analytics', - 'gateway', - 'locale' -], function (Backbone, Framework7, Core) { - Backbone.history.start(); - - /** - * Application instance with PE namespace defined - */ - var app = new Backbone.Application({ - nameSpace: 'PE', - autoCreate: false, - controllers : [ - 'Common.Controllers.Plugins', - 'Editor', - 'Toolbar', - 'Search', - 'Main', - 'DocumentHolder', - 'DocumentPreview', - 'Settings', - 'EditContainer', - 'EditText', - 'EditTable', - 'EditImage', - 'EditShape', - 'EditSlide', - 'EditChart', - 'EditLink', - 'AddContainer', - 'AddTable', - 'AddShape', - 'AddImage', - 'AddLink', - 'AddSlide', - 'AddOther', - 'Common.Controllers.Collaboration' - ] - }); - - 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: '{{APP_TITLE_TEXT}}', - - // Enable tap hold events - tapHold: true, - - // 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'); - - Common.Locale.apply(function(){ - require([ - 'common/main/lib/util/LocalStorage', - 'common/main/lib/util/utils', - 'common/mobile/lib/controller/Plugins', - '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/DocumentPreview', - 'presentationeditor/mobile/app/controller/Settings', - 'presentationeditor/mobile/app/controller/edit/EditContainer', - 'presentationeditor/mobile/app/controller/edit/EditText', - 'presentationeditor/mobile/app/controller/edit/EditTable', - 'presentationeditor/mobile/app/controller/edit/EditImage', - 'presentationeditor/mobile/app/controller/edit/EditShape', - 'presentationeditor/mobile/app/controller/edit/EditSlide', - 'presentationeditor/mobile/app/controller/edit/EditChart', - 'presentationeditor/mobile/app/controller/edit/EditLink', - '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/AddLink', - 'presentationeditor/mobile/app/controller/add/AddSlide', - 'presentationeditor/mobile/app/controller/add/AddOther', - 'common/mobile/lib/controller/Collaboration' - ], function() { - app.start(); - }); - }); -}, function(err) { - if (err.requireType == 'timeout' && !reqerr && window.requireTimeourError) { - reqerr = window.requireTimeourError(); - window.alert(reqerr); - window.location.reload(); - } -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/DocumentHolder.js b/apps/presentationeditor/mobile/app/controller/DocumentHolder.js deleted file mode 100644 index 0eb225b03..000000000 --- a/apps/presentationeditor/mobile/app/controller/DocumentHolder.js +++ /dev/null @@ -1,455 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentHolder.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/19/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'presentationeditor/mobile/app/view/DocumentHolder' -], function (core, $, _, Backbone) { - 'use strict'; - - PE.Controllers.DocumentHolder = Backbone.Controller.extend(_.extend((function() { - // private - var _stack, - _view, - _actionSheets = [], - _isEdit = false, - _isPopMenuHidden = false, - _isComments = false, - _canViewComments = true; - - return { - models: [], - collections: [], - views: [ - 'DocumentHolder' - ], - - initialize: function() { - this.addListeners({ - 'DocumentHolder': { - 'contextmenu:click' : this.onContextMenuClick - } - }); - }, - - setApi: function(api) { - var me = this; - - me.api = api; - - me.api.asc_registerCallback('asc_onShowPopMenu', _.bind(me.onApiShowPopMenu, me)); - me.api.asc_registerCallback('asc_onHidePopMenu', _.bind(me.onApiHidePopMenu, me)); - me.api.asc_registerCallback('asc_onDocumentContentReady', _.bind(me.onApiDocumentContentReady, me)); - Common.NotificationCenter.on('api:disconnect', _.bind(me.onCoAuthoringDisconnect, me)); - me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect,me)); - me.api.asc_registerCallback('asc_onShowComment', _.bind(me.onApiShowComment, me)); - me.api.asc_registerCallback('asc_onHideComment', _.bind(me.onApiHideComment, me)); - }, - - onApiShowComment: function(comments) { - _isComments = false; - if (comments && comments.length > 0) { - for (var i = 0; i < comments.length; ++i) { - if (this.getApplication().getController('Common.Controllers.Collaboration').findVisibleComment(comments[i])) { - _isComments = true; - break; - } - } - } - }, - - onApiHideComment: function() { - _isComments = false; - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - _canViewComments = mode.canViewComments; - }, - - // When our application is ready, lets get started - onLaunch: function() { - var me = this; - - _view = me.createView('DocumentHolder').render(); - - $$(window).on('resize', _.bind(me.onEditorResize, me)); - }, - - // Handlers - - onContextMenuClick: function (view, eventName) { - var me = this; - - if ('cut' == eventName) { - var res = me.api.Cut(); - if (!res) { - _view.hideMenu(); - if (!Common.localStorage.getBool("pe-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-cut"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("pe-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - } else if ('copy' == eventName) { - var res = me.api.Copy(); - if (!res) { - _view.hideMenu(); - if (!Common.localStorage.getBool("pe-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-copy"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("pe-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - } else if ('paste' == eventName) { - var res = me.api.Paste(); - if (!res) { - _view.hideMenu(); - if (!Common.localStorage.getBool("pe-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-paste"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("pe-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - } else if ('delete' == eventName) { - me.api.asc_Remove(); - } else if ('edit' == eventName) { - _view.hideMenu(); - - PE.getController('EditContainer').showModal(); - } else if ('addlink' == eventName) { - _view.hideMenu(); - - PE.getController('AddContainer').showModal(); - uiApp.showTab('#add-other'); - PE.getController('AddOther').getView('AddOther').showPageLink(); - } else if ('openlink' == eventName) { - _.some(_stack, function (item) { - if (item.get_ObjectType() == Asc.c_oAscTypeSelectElement.Hyperlink) { - me._openLink(item.get_ObjectValue().get_Value()); - return true; - } - }); - } else if ('viewcomment' == eventName) { - var getCollaboration = PE.getController('Common.Controllers.Collaboration'); - getCollaboration.showCommentModal(); - } else if ('addcomment' == eventName) { - _view.hideMenu(); - PE.getController('AddContainer').showModal(); - PE.getController('AddOther').getView('AddOther').showPageComment(false); - } else if ('showActionSheet' == eventName && _actionSheets.length > 0) { - _.delay(function () { - _.each(_actionSheets, function (action) { - action.text = action.caption - action.onClick = function () { - me.onContextMenuClick(null, action.event) - } - }); - - uiApp.actions([_actionSheets, [ - { - text: me.sheetCancel, - bold: true - } - ]]); - }, 100); - } - - _view.hideMenu(); - }, - - stopApiPopMenu: function() { - _isPopMenuHidden = true; - this.onApiHidePopMenu(); - }, - - startApiPopMenu: function() { - _isPopMenuHidden = false; - }, - - // API Handlers - - onEditorResize: function(cmp) { - // Hide context menu - }, - - onApiShowPopMenu: function(posX, posY) { - if (_isPopMenuHidden || $('.popover.settings, .popup.settings, .picker-modal.settings, .modal-in, .actions-modal').length > 0) - return; - - var me = this, - items; - - _stack = me.api.getSelectedElements(); - items = me._initMenu(_stack); - - _view.showMenu(items, posX, posY); - }, - - onApiHidePopMenu: function() { - _view && _view.hideMenu(); - }, - - onApiDocumentContentReady: function () { - _view = this.createView('DocumentHolder').render(); - }, - - // Internal - - _openLink: function(url) { - if (this.api.asc_getUrlType(url) > 0) { - var newDocumentPage = window.open(url, '_blank'); - - if (newDocumentPage) { - newDocumentPage.focus(); - } - } else - this.api.asc_GoToInternalHyperlink(url); - }, - - _initMenu: function (stack) { - var me = this, - arrItems = [], - arrItemsIcon = [], - canCopy = me.api.can_CopyCut(); - - _actionSheets = []; - - var isText = false, - isTable = false, - isImage = false, - isChart = false, - isShape = false, - isLink = false, - isSlide = false, - isObject = false; - - _.each(stack, function (item) { - var objectType = item.get_ObjectType(), - objectValue = item.get_ObjectValue(); - - if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { - isText = true; - } else if (objectType == Asc.c_oAscTypeSelectElement.Image) { - isImage = true; - } else if (objectType == Asc.c_oAscTypeSelectElement.Chart) { - isChart = true; - } else if (objectType == Asc.c_oAscTypeSelectElement.Shape) { - isShape = true; - } else if (objectType == Asc.c_oAscTypeSelectElement.Table) { - isTable = true; - } else if (objectType == Asc.c_oAscTypeSelectElement.Hyperlink) { - isLink = true; - } else if (objectType == Asc.c_oAscTypeSelectElement.Slide) { - isSlide = true; - } - }); - isObject = isText || isImage || isChart || isShape || isTable; - - if (canCopy && isObject) { - arrItemsIcon.push({ - caption: me.menuCopy, - event: 'copy', - icon: 'icon-copy' - }); - } - if (_canViewComments && _isComments && !_isEdit) { - arrItems.push({ - caption: me.menuViewComment, - event: 'viewcomment' - }); - } - - if (stack.length > 0) { - var topObject = stack[stack.length - 1], - topObjectType = topObject.get_ObjectType(), - topObjectValue = topObject.get_ObjectValue(), - objectLocked = _.isFunction(topObjectValue.get_Locked) ? topObjectValue.get_Locked() : false; - - !objectLocked && (objectLocked = _.isFunction(topObjectValue.get_LockDelete) ? topObjectValue.get_LockDelete() : false); - - var swapItems = function(items, indexBefore, indexAfter) { - items[indexAfter] = items.splice(indexBefore, 1, items[indexAfter])[0]; - }; - - if (!objectLocked && _isEdit && !me.isDisconnected) { - if (canCopy && isObject) { - arrItemsIcon.push({ - caption: me.menuCut, - event: 'cut', - icon: 'icon-cut' - }); - - // Swap 'Copy' and 'Cut' - swapItems(arrItemsIcon, 0, 1); - } - - arrItemsIcon.push({ - caption: me.menuPaste, - event: 'paste', - icon: 'icon-paste' - }); - - if (isObject) - arrItems.push({ - caption: me.menuDelete, - event: 'delete' - }); - - arrItems.push({ - caption: me.menuEdit, - event: 'edit' - }); - - if (!isLink && me.api.can_AddHyperlink()!==false) { - arrItems.push({ - caption: me.menuAddLink, - event: 'addlink' - }); - } - - if (_isComments && _canViewComments) { - arrItems.push({ - caption: me.menuViewComment, - event: 'viewcomment' - }); - } - - var hideAddComment = (isText && isChart) || me.api.can_AddQuotedComment() === false || !_canViewComments; - if (!hideAddComment) { - arrItems.push({ - caption: me.menuAddComment, - event: 'addcomment' - }); - } - } - } - - if (isLink) { - arrItems.push({ - caption: me.menuOpenLink, - event: 'openlink' - }); - } - - if (Common.SharedSettings.get('phone') && arrItems.length > 2) { - _actionSheets = arrItems.slice(2); - - arrItems = arrItems.slice(0, 2); - arrItems.push({ - caption: me.menuMore, - event: 'showActionSheet' - }); - } - - var menuItems = {itemsIcon: arrItemsIcon, items: arrItems}; - - return menuItems; - }, - - onCoAuthoringDisconnect: function() { - this.isDisconnected = true; - }, - - menuCut: 'Cut', - menuCopy: 'Copy', - menuPaste: 'Paste', - menuEdit: 'Edit', - menuDelete: 'Delete', - menuAddLink: 'Add Link', - menuOpenLink: 'Open Link', - menuMore: 'More', - menuViewComment: 'View Comment', - menuAddComment: 'Add Comment', - sheetCancel: 'Cancel', - textCopyCutPasteActions: 'Copy, Cut and Paste Actions', - errorCopyCutPaste: 'Copy, cut and paste actions using the context menu will be performed within the current file only.', - textDoNotShowAgain: 'Don\'t show again' - } - })(), PE.Controllers.DocumentHolder || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/DocumentPreview.js b/apps/presentationeditor/mobile/app/controller/DocumentPreview.js deleted file mode 100644 index c42f81647..000000000 --- a/apps/presentationeditor/mobile/app/controller/DocumentPreview.js +++ /dev/null @@ -1,152 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentPreview.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'presentationeditor/mobile/app/view/DocumentPreview' -], function (core, $, _, Backbone) { - 'use strict'; - - PE.Controllers.DocumentPreview = Backbone.Controller.extend(_.extend((function() { - // private - var _view, - _touches, - _touchStart, - _touchEnd; - - return { - models: [], - collections: [], - views: [ - 'DocumentPreview' - ], - - initialize: function() { - }, - - setApi: function(api) { - var me = this; - - me.api = api; - me.api.asc_registerCallback('asc_onEndDemonstration', _.bind(me.onEndDemonstration, me)); - me.api.DemonstrationEndShowMessage(me.txtFinalMessage); - }, - - // When our application is ready, lets get started - onLaunch: function() { - var me = this; - _view = me.createView('DocumentPreview').render(); - - $$('#pe-preview').on('touchstart', _.bind(me.onTouchStart, me)) - .on('touchmove', _.bind(me.onTouchMove, me)) - .on('touchend', _.bind(me.onTouchEnd, me)) - .on('click', _.bind(me.onClick, me)); - }, - - // Handlers - - show: function() { - _view.$el.css('display', 'block'); - $('.view.view-main').css('z-index','0'); - - PE.getController('DocumentHolder').stopApiPopMenu(); - - this.api.StartDemonstration('presentation-preview', this.api.getCurrentPage()); - }, - - onTouchStart: function(event) { - event.preventDefault(); - - _touches = []; - for (var i=0; i 20 || Math.abs(event.touches[i].pageY - _touches[i][1]) > 20 ) { - this.api.EndDemonstration(); - break; - } - } - }, - - onTouchEnd: function(event) { - event.preventDefault(); - - if (_touchEnd[0] - _touchStart[0] > 20) - this.api.DemonstrationPrevSlide(); - else if (_touchStart[0] - _touchEnd[0] > 20) - this.api.DemonstrationNextSlide(); - }, - - onClick: function(event) { - this.api.DemonstrationNextSlide(); - }, - - // API Handlers - - onEndDemonstration: function() { - _view.$el.css('display', 'none'); - $('.view.view-main').css('z-index','auto'); - - PE.getController('DocumentHolder').startApiPopMenu(); - }, - - txtFinalMessage: 'The end of slide preview. Click to exit.' - - // Internal - } - })(), PE.Controllers.DocumentPreview || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/Editor.js b/apps/presentationeditor/mobile/app/controller/Editor.js deleted file mode 100644 index 2d27a63f6..000000000 --- a/apps/presentationeditor/mobile/app/controller/Editor.js +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Editor.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 11/21/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -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))); - } - - function isSailfish() { - var ua = navigator.userAgent; - return /Sailfish/.test(ua) || /Jolla/.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() { - // This most important part when we will tell our controller what events should be handled - }, - - setApi: function(api) { - this.api = api; - }, - - // When our application is ready, lets get started - onLaunch: function() { - // Device detection - var phone = isPhone(); - // console.debug('Layout profile:', phone ? 'Phone' : 'Tablet'); - - if ( isSailfish() ) { - Common.SharedSettings.set('sailfish', true); - $('html').addClass('sailfish'); - } - - 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)); - }, - - onWindowResize: function(e) { - this.api && this.api.Resize(); - } - } - })()); -}); diff --git a/apps/presentationeditor/mobile/app/controller/Main.js b/apps/presentationeditor/mobile/app/controller/Main.js deleted file mode 100644 index 67d248afc..000000000 --- a/apps/presentationeditor/mobile/app/controller/Main.js +++ /dev/null @@ -1,1586 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Main.js - * Document Editor - * - * Created by Alexander Yuzhin on 9/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'irregularstack', - 'common/main/lib/util/LocalStorage' -], function (core, $, _, Backbone) { - '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(); - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - 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, - lostEditingRights : false, - licenseType : false, - isDocModified: false - }; - - // Initialize viewport - -// if (!Common.Utils.isBrowserSupported()){ -// Common.Utils.showBrowserRestriction(); -// Common.Gateway.reportError(undefined, this.unsupportedBrowserErrorText); -// return; -// } - - - // Initialize api - - window["flat_desine"] = true; - - me.api = new Asc.asc_docs_api({ - 'id-view' : 'editor_sdk', - 'mobile' : true, - 'translate': { - 'Series': me.txtSeries, - 'Diagram Title': me.txtDiagramTitle, - 'X Axis': me.txtXAxis, - 'Y Axis': me.txtYAxis, - 'Your text here': me.txtArt, - 'Slide text': this.txtSlideText, - 'Chart': this.txtSldLtTChart, - 'ClipArt': this.txtClipArt, - 'Diagram': this.txtDiagram, - 'Date and time': this.txtDateTime, - 'Footer': this.txtFooter, - 'Header': this.txtHeader, - 'Media': this.txtMedia, - 'Picture': this.txtPicture, - 'Image': this.txtImage, - 'Slide number': this.txtSlideNumber, - 'Slide subtitle': this.txtSlideSubtitle, - 'Table': this.txtSldLtTTbl, - 'Slide title': this.txtSlideTitle, - 'Click to add first slide': this.txtAddFirstSlide - } - }); - - // Localization uiApp params - uiApp.params.modalButtonOk = me.textOK; - uiApp.params.modalButtonCancel = me.textCancel; - uiApp.params.modalPreloaderTitle = me.textPreloader; - uiApp.params.modalUsernamePlaceholder = me.textUsername; - uiApp.params.modalPasswordPlaceholder = me.textPassword; - uiApp.params.smartSelectBackText = me.textBack; - uiApp.params.smartSelectPopupCloseText = me.textClose; - uiApp.params.smartSelectPickerCloseText = me.textDone; - uiApp.params.notificationCloseButtonText = me.textClose; - - if (me.api){ - var value = Common.localStorage.getItem("pe-settings-fontrender"); - if (value===null) value = window.devicePixelRatio > 1 ? '1' : '3'; - me.api.SetFontRenderingMode(parseInt(value)); - - Common.Utils.Metric.setCurrentMetric(1); //pt - - me.api.SetDrawingFreeze(true); - me.api.SetThemesPath("../../../../sdkjs/slide/themes/"); - - me.api.asc_registerCallback('asc_onError', _.bind(me.onError, me)); - 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_onServerVersion', _.bind(me.onServerVersion, 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 - _.each(me.getApplication().controllers, function(controller) { - if (controller && _.isFunction(controller.setApi)) { - controller.setApi(me.api); - } - }); - - // Initialize api gateway - me.editorConfig = {}; - me.appOptions = {}; - me.plugins = undefined; - - 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.appReady(); - - Common.Gateway.on('internalcommand', function(data) { - if (data.command=='hardBack') { - if ($('.modal-in').length>0) { - if ( !$(me.loadMask).hasClass('modal-in') ) - uiApp.closeModal(); - Common.Gateway.internalMessage('hardBack', false); - } else - Common.Gateway.internalMessage('hardBack', true); - } - }); - Common.Gateway.internalMessage('listenHardBack'); - } - - me.initNames(); - me.defaultTitleText = '{{APP_TITLE_TEXT}}'; - me.warnNoLicense = me.warnNoLicense.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnNoLicenseUsers = me.warnNoLicenseUsers.replace(/%1/g, '{{COMPANY_NAME}}'); - me.textNoLicenseTitle = me.textNoLicenseTitle.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnLicenseExceeded = me.warnLicenseExceeded.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnLicenseUsersExceeded = me.warnLicenseUsersExceeded.replace(/%1/g, '{{COMPANY_NAME}}'); - }, - - loadConfig: function(data) { - var me = this; - - me.editorConfig = $.extend(me.editorConfig, data.config); - - me.appOptions.customization = me.editorConfig.customization; - me.appOptions.canRenameAnonymous = !((typeof (me.appOptions.customization) == 'object') && (typeof (me.appOptions.customization.anonymous) == 'object') && (me.appOptions.customization.anonymous.request===false)); - me.appOptions.guestName = (typeof (me.appOptions.customization) == 'object') && (typeof (me.appOptions.customization.anonymous) == 'object') && - (typeof (me.appOptions.customization.anonymous.label) == 'string') && me.appOptions.customization.anonymous.label.trim()!=='' ? - Common.Utils.String.htmlEncode(me.appOptions.customization.anonymous.label) : me.textGuest; - var value; - if (me.appOptions.canRenameAnonymous) { - value = Common.localStorage.getItem("guest-username"); - Common.Utils.InternalSettings.set("guest-username", value); - Common.Utils.InternalSettings.set("save-guest-username", !!value); - } - me.editorConfig.user = - me.appOptions.user = Common.Utils.fillUserInfo(me.editorConfig.user, me.editorConfig.lang, value ? (value + ' (' + me.appOptions.guestName + ')' ) : me.textAnonymous); - me.appOptions.isDesktopApp = me.editorConfig.targetApp == 'desktop'; - me.appOptions.canCreateNew = !_.isEmpty(me.editorConfig.createUrl) && !me.appOptions.isDesktopApp; - me.appOptions.canOpenRecent = 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.canRequestClose = me.editorConfig.canRequestClose; - 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.editorConfig.customization.goback.requestClose && me.appOptions.canRequestClose); - me.appOptions.canBack = 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 (!me.editorConfig.customization || !(me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo)) - $('#editor_sdk').append('
          '); - - value = Common.localStorage.getItem("pe-mobile-macros-mode"); - if (value === null) { - value = this.editorConfig.customization ? this.editorConfig.customization.macrosMode : 'warn'; - value = (value == 'enable') ? 1 : (value == 'disable' ? 2 : 0); - } else - value = parseInt(value); - Common.Utils.InternalSettings.set("pe-mobile-macros-mode", value); - -// if (this.appOptions.location == 'us' || this.appOptions.location == 'ca') -// Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch); - }, - - loadDocument: function(data) { - this.permissions = {}; - this.document = data.doc; - - var docInfo = {}; - - if (data.doc) { - this.permissions = $.extend(this.permissions, data.doc.permissions); - - var _permissions = $.extend({}, data.doc.permissions), - _user = new Asc.asc_CUserInfo(); - _user.put_Id(this.appOptions.user.id); - _user.put_FullName(this.appOptions.user.fullname); - - docInfo = new Asc.asc_CDocInfo(); - docInfo.put_Id(data.doc.key); - docInfo.put_Url(data.doc.url); - docInfo.put_Title(data.doc.title); - docInfo.put_Format(data.doc.fileType); - docInfo.put_VKey(data.doc.vkey); - docInfo.put_Options(data.doc.options); - docInfo.put_UserInfo(_user); - docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); - docInfo.put_Token(data.doc.token); - docInfo.put_Permissions(_permissions); - docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); - - var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); - docInfo.asc_putIsEnabledMacroses(!!enable); - enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false); - docInfo.asc_putIsEnabledPlugins(!!enable); - } - - this.api.asc_registerCallback('asc_onGetEditorPermissions', _.bind(this.onEditorPermissions, this)); - this.api.asc_registerCallback('asc_onLicenseChanged', _.bind(this.onLicenseChanged, this)); - this.api.asc_registerCallback('asc_onRunAutostartMacroses', _.bind(this.onRunAutostartMacroses, this)); - this.api.asc_setDocInfo(docInfo); - this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId); - - Common.SharedSettings.set('document', data.doc); - - if (data.doc) { - PE.getController('Toolbar').setDocumentTitle(data.doc.title); - } - }, - - setMode: function(mode){ - var me = this; - - Common.SharedSettings.set('mode', mode.isEdit ? 'edit' : 'view'); - - if (me.api) { - me.api.asc_enableKeyEvents(mode.isEdit); - me.api.asc_setViewMode(!mode.isEdit && !mode.isRestrictedEdit); - } - }, - - onProcessSaveResult: function(data) { - this.api.asc_OnSaveEnd(data.result); - - if (data && data.result === false) { - uiApp.alert( - _.isEmpty(data.message) ? this.errorProcessSaveResult : data.message, - this.criticalErrorTitle - ); - } - }, - - onProcessRightsChange: function(data) { - if (data && data.enabled === false) { - var me = this, - old_rights = this._state.lostEditingRights; - 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(); - } - ); - } - } - }, - - onDownloadAs: function() { - if ( !this.appOptions.canDownload) { - Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, this.errorAccessDeny); - return; - } - this._state.isFromGatewayDownloadAs = true; - this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PPTX, true)); - }, - - onRequestClose: function() { - Common.Gateway.requestClose(); - }, - - goBack: function(current) { - if (this.appOptions.customization.goback.requestClose && this.appOptions.canRequestClose) { - Common.Gateway.requestClose(); - } else { - var href = this.appOptions.customization.goback.url; - if (!current && this.appOptions.customization.goback.blank!==false) { - window.open(href, "_blank"); - } else { - parent.location.href = href; - } - } - }, - - onEditComplete: function(cmp) { - // - }, - - onLongActionBegin: function(type, id) { - 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']) { - // me._state.timerSave = setTimeout(function () { - //console.debug('End long action'); - // }, 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']: - // clearTimeout(me._state.timerSave); - 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; - - case Asc.c_oAscAsyncAction['Print']: - 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 Asc.c_oAscAsyncAction['Waiting']: - title = me.waitText; - text = me.waitText; - break; - - case ApplyEditRights: - title = me.txtEditingMode; - text = me.txtEditingMode; - break; - - case LoadingDocument: - title = me.loadingDocumentTitleText; - text = me.loadingDocumentTextText; - break; - default: - if (typeof action.id == 'string'){ - title = action.id; - text = action.id; - } - break; - } - - if (action.type == Asc.c_oAscAsyncActionType['BlockInteraction']) { - if (action.id == Asc.c_oAscAsyncAction['ApplyChanges'] || action.id == Asc.c_oAscAsyncAction['LoadDocumentFonts']) { - return; - } - 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; - - if (this._state.openDlg) - uiApp.closeModal(this._state.openDlg); - - 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)); - - value = Common.localStorage.getBool("pe-mobile-spellcheck", !(this.appOptions.customization && this.appOptions.customization.spellcheck===false)); - Common.Utils.InternalSettings.set("pe-mobile-spellcheck", value); - me.api.asc_setSpellCheck(value); - - 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); - - me.api.SetTextBoxInputMode(Common.localStorage.getBool("pe-settings-inputmode")); - - /** 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; - me.api.asc_SetFastCollaborative(me._state.fastCoauth); - } else if (!me.appOptions.isEdit && me.appOptions.isRestrictedEdit) { - me._state.fastCoauth = true; - me.api.asc_SetFastCollaborative(me._state.fastCoauth); - me.api.asc_setAutoSaveGap(1); - } else { - me._state.fastCoauth = false; - me.api.asc_SetFastCollaborative(me._state.fastCoauth); - } - /** coauthoring end **/ - - 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.on('requestclose', _.bind(me.onRequestClose, me)); - - Common.Gateway.sendInfo({ - mode: me.appOptions.isEdit ? 'edit' : 'view' - }); - - if (me.api) { - me.api.Resize(); - me.api.zoomFitToPage(); - me.api.asc_GetDefaultTableStyles && _.defer(function () {me.api.asc_GetDefaultTableStyles()}); - } - - me.applyLicense(); - - $(document).on('contextmenu', _.bind(me.onContextMenu, me)); - Common.Gateway.documentReady(); - - $('.doc-placeholder').remove(); - }, - - onLicenseChanged: function(params) { - var licType = params.asc_getLicenseType(); - if (licType !== undefined && this.appOptions.canEdit && this.editorConfig.mode !== 'view' && - (licType===Asc.c_oLicenseResult.Connections || licType===Asc.c_oLicenseResult.UsersCount || licType===Asc.c_oLicenseResult.ConnectionsOS || licType===Asc.c_oLicenseResult.UsersCountOS - || licType===Asc.c_oLicenseResult.SuccessLimit && (this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0)) - this._state.licenseType = licType; - - if (this._isDocReady && this._state.licenseType) - this.applyLicense(); - }, - - applyLicense: function() { - var me = this; - if (this.editorConfig.mode !== 'view' && !this.isSupportEditFeature()) { - var value = Common.localStorage.getItem("pe-opensource-warning"); - value = (value!==null) ? parseInt(value) : 0; - var now = (new Date).getTime(); - if (now - value > 86400000) { - Common.localStorage.setItem("pe-opensource-warning", now); - uiApp.modal({ - title: me.notcriticalErrorTitle, - text : me.errorOpensource, - buttons: [{text: 'OK'}] - }); - } - PE.getController('Toolbar').activateControls(); - return; - } - - if (this._state.licenseType) { - var license = this._state.licenseType, - buttons = [{text: 'OK'}]; - if ((this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0 && - (license===Asc.c_oLicenseResult.SuccessLimit || license===Asc.c_oLicenseResult.ExpiredLimited || this.appOptions.permissionsLicense===Asc.c_oLicenseResult.SuccessLimit)) { - license = (license===Asc.c_oLicenseResult.ExpiredLimited) ? this.warnLicenseLimitedNoAccess : this.warnLicenseLimitedRenewed; - } else if (license===Asc.c_oLicenseResult.Connections || license===Asc.c_oLicenseResult.UsersCount) { - license = (license===Asc.c_oLicenseResult.Connections) ? this.warnLicenseExceeded : this.warnLicenseUsersExceeded; - } else { - license = (license===Asc.c_oLicenseResult.ConnectionsOS) ? this.warnNoLicense : this.warnNoLicenseUsers; - buttons = [{ - text: me.textBuyNow, - bold: true, - onClick: function() { - window.open('{{PUBLISHER_URL}}', "_blank"); - } - }, - { - text: me.textContactUs, - onClick: function() { - window.open('mailto:{{SALES_EMAIL}}', "_blank"); - } - }]; - } - if (this._state.licenseType===Asc.c_oLicenseResult.SuccessLimit) { - PE.getController('Toolbar').activateControls(); - } else { - PE.getController('Toolbar').activateViewControls(); - PE.getController('Toolbar').deactivateEditControls(); - Common.NotificationCenter.trigger('api:disconnect'); - } - - var value = Common.localStorage.getItem("pe-license-warning"); - value = (value!==null) ? parseInt(value) : 0; - var now = (new Date).getTime(); - - if (now - value > 86400000) { - Common.localStorage.setItem("pe-license-warning", now); - uiApp.modal({ - title: me.textNoLicenseTitle, - text : license, - buttons: buttons - }); - } - } else { - if (!me.appOptions.isDesktopApp && !me.appOptions.canBrandingExt && - me.editorConfig && me.editorConfig.customization && (me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo)) { - uiApp.modal({ - title: me.textPaidFeature, - text : me.textCustomLoader, - buttons: [{ - text: me.textContactUs, - bold: true, - onClick: function() { - window.open('mailto:{{SALES_EMAIL}}', "_blank"); - } - }, - { text: me.textClose }] - }); - } - PE.getController('Toolbar').activateControls(); - } - }, - - 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; - } - if (Asc.c_oLicenseResult.ExpiredLimited === licType) - me._state.licenseType = licType; - - if ( me.onServerVersion(params.asc_getBuildVersion()) ) return; - - me.appOptions.permissionsLicense = licType; - 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 || licType === Asc.c_oLicenseResult.SuccessLimit); - 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.isSupportEditFeature(); - 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.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 && (me.permissions.comment===undefined ? me.appOptions.isEdit : me.permissions.comment) && (me.editorConfig.mode !== 'view'); - me.appOptions.canComments = me.appOptions.canComments && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); - me.appOptions.canViewComments = me.appOptions.canComments || !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); - me.appOptions.canEditComments= me.appOptions.isOffline || !me.permissions.editCommentAuthorOnly; - me.appOptions.canDeleteComments= me.appOptions.isOffline || !me.permissions.deleteCommentAuthorOnly; - if ((typeof (this.editorConfig.customization) == 'object') && me.editorConfig.customization.commentAuthorOnly===true) { - console.log("Obsolete: The 'commentAuthorOnly' parameter of the 'customization' section is deprecated. Please use 'editCommentAuthorOnly' and 'deleteCommentAuthorOnly' parameters in the permissions instead."); - if (me.permissions.editCommentAuthorOnly===undefined && me.permissions.deleteCommentAuthorOnly===undefined) - me.appOptions.canEditComments = me.appOptions.canDeleteComments = me.appOptions.isOffline; - } - 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); - me.appOptions.isRestrictedEdit = !me.appOptions.isEdit && me.appOptions.canComments; - me.appOptions.trialMode = params.asc_getLicenseMode(); - - var type = /^(?:(pdf|djvu|xps))$/.exec(me.document.fileType); - me.appOptions.canDownloadOrigin = me.permissions.download !== false && (type && typeof type[1] === 'string'); - me.appOptions.canDownload = me.permissions.download !== false && (!type || typeof type[1] !== 'string'); - - me.appOptions.canBranding = params.asc_getCustomization(); - me.appOptions.canBrandingExt = params.asc_getCanBranding() && (typeof me.editorConfig.customization == 'object'); - - me.appOptions.canUseReviewPermissions = me.appOptions.canLicense && (!!me.permissions.reviewGroups || - me.editorConfig.customization && me.editorConfig.customization.reviewPermissions && (typeof (me.editorConfig.customization.reviewPermissions) == 'object')); - me.appOptions.canUseCommentPermissions = me.appOptions.canLicense && !!me.permissions.commentGroups; - AscCommon.UserInfoParser.setParser(me.appOptions.canUseReviewPermissions || me.appOptions.canUseCommentPermissions); - AscCommon.UserInfoParser.setCurrentName(me.appOptions.user.fullname); - me.appOptions.canUseReviewPermissions && AscCommon.UserInfoParser.setReviewPermissions(me.permissions.reviewGroups, me.editorConfig.customization.reviewPermissions); - me.appOptions.canUseCommentPermissions && AscCommon.UserInfoParser.setCommentPermissions(me.permissions.commentGroups); - - me.applyModeCommonElements(); - me.applyModeEditorElements(); - - me.api.asc_setViewMode(!me.appOptions.isEdit && !me.appOptions.isRestrictedEdit); - (me.appOptions.isRestrictedEdit && me.appOptions.canComments) && me.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyComments); - me.api.asc_LoadDocument(); - me.api.Resize(); - - if (!me.appOptions.isEdit) { - me.hidePreloader(); - me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); - } - - if (me.appOptions.canBrandingExt && (me.editorConfig.customization && (me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo))) { - $('#editor-navbar #navbar-logo').hide(); - $('#editor-navbar').removeClass('logo-navbar'); - $('#editor_sdk').removeClass('with-logo'); - } - }, - - applyModeCommonElements: function() { - var me = this; - - window.editor_elements_prepared = true; - - _.each(me.getApplication().controllers, function(controller) { - if (controller && _.isFunction(controller.setMode)) { - controller.setMode(me.appOptions); - } - }); - - if (me.api) { - me.api.asc_registerCallback('asc_onSendThemeColors', _.bind(me.onSendThemeColors, me)); - me.api.asc_registerCallback('asc_onDownloadUrl', _.bind(me.onDownloadUrl, me)); - me.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me)); - me.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me)); - me.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(me.onUserConnection, me)); - } - }, - - applyModeEditorElements: function() { - if (this.appOptions.isEdit) { - var me = this, - value; - - value = Common.localStorage.getItem('pe-mobile-settings-unit'); - value = (value!==null) ? parseInt(value) : (me.appOptions.customization && me.appOptions.customization.unit ? Common.Utils.Metric.c_MetricUnits[me.appOptions.customization.unit.toLocaleLowerCase()] : Common.Utils.Metric.getDefaultMetric()); - (value===undefined) && (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)); - /** coauthoring begin **/ - me.api.asc_registerCallback('asc_onCollaborativeChanges', _.bind(me.onCollaborativeChanges, me)); - me.api.asc_registerCallback('asc_OnTryUndoInFastCollaborative',_.bind(me.onTryUndoInFastCollaborative, 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); - } - }, - - onExternalMessage: function(msg) { - if (msg && msg.msg) { - msg.msg = (msg.msg).toString(); - uiApp.addNotification({ - title: uiApp.params.modalTitle, - message: [msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)] - }); - - Common.component.Analytics.trackEvent('External Error'); - } - }, - - onError: function(id, level, errData) { - if (id == Asc.c_oAscError.ID.LoadingScriptError) { - uiApp.addNotification({ - title: this.criticalErrorTitle, - message: this.scriptLoadError - }); - return; - } - - this.hidePreloader(); - this.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); - - var config = { - closable: false - }; - - switch (id) - { - case Asc.c_oAscError.ID.Unknown: - config.msg = this.unknownErrorText; - break; - - case Asc.c_oAscError.ID.ConvertationTimeout: - config.msg = this.convertationTimeoutText; - break; - - case Asc.c_oAscError.ID.ConvertationOpenError: - config.msg = this.openErrorText; - break; - - case Asc.c_oAscError.ID.ConvertationSaveError: - config.msg = this.saveErrorText; - break; - - case Asc.c_oAscError.ID.DownloadError: - config.msg = this.downloadErrorText; - break; - - case Asc.c_oAscError.ID.UplImageSize: - config.msg = this.uploadImageSizeMessage; - break; - - case Asc.c_oAscError.ID.UplImageExt: - config.msg = this.uploadImageExtMessage; - break; - - case Asc.c_oAscError.ID.UplImageFileCount: - config.msg = this.uploadImageFileCountMessage; - break; - - case Asc.c_oAscError.ID.SplitCellMaxRows: - config.msg = this.splitMaxRowsErrorText.replace('%1', errData.get_Value()); - break; - - case Asc.c_oAscError.ID.SplitCellMaxCols: - config.msg = this.splitMaxColsErrorText.replace('%1', errData.get_Value()); - break; - - case Asc.c_oAscError.ID.SplitCellRowsDivider: - config.msg = this.splitDividerErrorText.replace('%1', errData.get_Value()); - break; - - case Asc.c_oAscError.ID.VKeyEncrypt: - config.msg = this.errorKeyEncrypt; - break; - - case Asc.c_oAscError.ID.KeyExpire: - config.msg = this.errorKeyExpire; - break; - - case Asc.c_oAscError.ID.UserCountExceed: - config.msg = this.errorUsersExceed; - break; - - case Asc.c_oAscError.ID.CoAuthoringDisconnect: - config.msg = this.errorViewerDisconnect; - break; - - case Asc.c_oAscError.ID.ConvertationPassword: - config.msg = this.errorFilePassProtect; - 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; - - case Asc.c_oAscError.ID.UplImageUrl: - config.msg = this.errorBadImageUrl; - break; - - case Asc.c_oAscError.ID.SessionAbsolute: - config.msg = this.errorSessionAbsolute; - break; - - case Asc.c_oAscError.ID.SessionIdle: - config.msg = this.errorSessionIdle; - break; - - case Asc.c_oAscError.ID.SessionToken: - config.msg = this.errorSessionToken; - break; - - case Asc.c_oAscError.ID.DataEncrypted: - config.msg = this.errorDataEncrypted; - break; - - case Asc.c_oAscError.ID.AccessDeny: - config.msg = this.errorAccessDeny; - break; - - case Asc.c_oAscError.ID.EditingError: - config.msg = this.errorEditingDownloadas; - break; - - case Asc.c_oAscError.ID.ConvertationOpenLimitError: - config.msg = this.errorFileSizeExceed; - break; - - case Asc.c_oAscError.ID.UpdateVersion: - config.msg = this.errorUpdateVersionOnDisconnect; - break; - - default: - config.msg = this.errorDefaultMessage.replace('%1', id); - break; - } - - - if (level == Asc.c_oAscError.Level.Critical) { - - // report only critical errors - Common.Gateway.reportError(id, config.msg); - - config.title = this.criticalErrorTitle; -// config.iconCls = 'error'; - - if (this.appOptions.canBackToFolder && !this.appOptions.isDesktopApp) { - config.msg += '

          ' + this.criticalErrorExtText; - config.callback = function() { - Common.NotificationCenter.trigger('goback', true); - } - } - if (id == Asc.c_oAscError.ID.DataEncrypted) { - this.api.asc_coAuthoringDisconnect(); - Common.NotificationCenter.trigger('api:disconnect'); - } - } else { - Common.Gateway.reportWarning(id, config.msg); - - config.title = this.notcriticalErrorTitle; - config.callback = _.bind(function(btn){ - 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); - } - - uiApp.modal({ - title : config.title, - text : config.msg, - buttons: [ - { - text: 'OK', - onClick: config.callback - } - ] - }); - - Common.component.Analytics.trackEvent('Internal Error', id.toString()); - }, - - onCoAuthoringDisconnect: function() { - this._state.isDisconnected = true; - }, - - 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; - - this._isDocReady && (this._state.isDocModified !== isModified) && Common.Gateway.setDocumentModified(isModified); - this._state.isDocModified = isModified; - } - }, - - onDocumentModifiedChanged: function() { - var isModified = this.api.asc_isDocumentCanSave(); - if (this._state.isDocModified !== isModified) { - this._isDocReady && Common.Gateway.setDocumentModified(this.api.isDocumentModified()); - } - - this.updateWindowTitle(); - }, - - onDocumentCanSaveChanged: function (isCanSave) { - // - }, - - onBeforeUnload: function() { - 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() { - $('#loading-mask').hide().remove(); - }, - - onDownloadUrl: function(url) { - if (this._state.isFromGatewayDownloadAs) { - Common.Gateway.downloadAs(url); - } - - 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); - }) - }); - }, - - onServerVersion: function(buildVersion) { - var me = this; - if (me.changeServerVersion) return true; - - if (DocsAPI.DocEditor.version() !== buildVersion && !window.compareVersions) { - me.changeServerVersion = true; - uiApp.alert( - me.errorServerVersion, - me.titleServerVersion, - function () { - _.defer(function() { - Common.Gateway.updateVersion(); - }) - }); - return true; - } - return false; - }, - - 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) { - }, - - 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(type, advOptions) { - if (this._state.openDlg) return; - - var me = this; - - if (type == Asc.c_oAscAdvancedOptionsID.DRM) { - $(me.loadMask).hasClass('modal-in') && uiApp.closeModal(me.loadMask); - - me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - - var buttons = [{ - text: 'OK', - bold: true, - close: false, - onClick: function () { - if (!me._state.openDlg) return; - $(me._state.openDlg).hasClass('modal-in') && uiApp.closeModal(me._state.openDlg); - var password = $(me._state.openDlg).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); - } - me._state.openDlg = null; - } - }]; - if (me.appOptions.canRequestClose) - buttons.push({ - text: me.closeButtonText, - onClick: function () { - Common.Gateway.requestClose(); - me._state.openDlg = null; - } - }); - - me._state.openDlg = uiApp.modal({ - title: me.advDRMOptions, - text: (typeof advOptions=='string' ? advOptions : me.txtProtected), - afterText: '
          ', - buttons: buttons - }); - - // Vertical align - $$(me._state.openDlg).css({ - marginTop: - Math.round($$(me._state.openDlg).outerHeight() / 2) + 'px' - }); - } - }, - - onTryUndoInFastCollaborative: function() { - uiApp.alert( - this.textTryUndoRedo, - this.notcriticalErrorTitle - ); - }, - - onAuthParticipantsChanged: function(users) { - var length = 0; - _.each(users, function(item){ - if (!item.asc_getView()) - length++; - }); - this._state.usersCount = length; - }, - - onUserConnection: function(change){ - if (change && this.appOptions.user.guest && this.appOptions.canRenameAnonymous && (change.asc_getIdOriginal() == this.appOptions.user.id)) { // change name of the current user - var name = change.asc_getUserName(); - if (name && name !== AscCommon.UserInfoParser.getCurrentName() ) { - AscCommon.UserInfoParser.setCurrentName(name); - } - } - }, - - 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.component.Analytics.trackEvent('Print'); - }, - - onPrintUrl: function(url) { - var me = this; - - if (me.iframePrint) { - me.iframePrint.parentNode.removeChild(me.iframePrint); - me.iframePrint = null; - } - - if (!me.iframePrint) { - 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(); - }; - } - - if (url) { - me.iframePrint.src = url; - } - }, - - onContextMenu: function(event){ - var canCopyAttr = event.target.getAttribute('data-can-copy'), - isInputEl = (event.target instanceof HTMLInputElement) || (event.target instanceof HTMLTextAreaElement); - - if ((isInputEl && canCopyAttr === 'false') || - (!isInputEl && canCopyAttr !== 'true')) { - event.stopPropagation(); - event.preventDefault(); - return false; - } - }, - - isSupportEditFeature: function() { - return false; - }, - - onRunAutostartMacroses: function() { - var me = this, - enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); - if (enable) { - var value = Common.Utils.InternalSettings.get("pe-mobile-macros-mode"); - if (value==1) - this.api.asc_runAutostartMacroses(); - else if (value === 0) { - uiApp.modal({ - title: this.notcriticalErrorTitle, - text: this.textHasMacros, - afterText: '', - buttons: [{ - text: this.textYes, - onClick: function () { - var dontshow = $('input[name="checkbox-show-macros"]').prop('checked'); - if (dontshow) { - Common.Utils.InternalSettings.set("pe-mobile-macros-mode", 1); - Common.localStorage.setItem("pe-mobile-macros-mode", 1); - } - setTimeout(function() { - me.api.asc_runAutostartMacroses(); - }, 1); - } - }, - { - text: this.textNo, - onClick: function () { - var dontshow = $('input[name="checkbox-show-macros"]').prop('checked'); - if (dontshow) { - Common.Utils.InternalSettings.set("pe-mobile-macros-mode", 2); - Common.localStorage.setItem("pe-mobile-macros-mode", 2); - } - } - }] - }); - } - } - }, - - // 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.', - criticalErrorTitle: 'Error', - notcriticalErrorTitle: 'Warning', - errorDefaultMessage: 'Error code: %1', - 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.', - uploadImageExtMessage: 'Unknown image format.', - uploadImageFileCountMessage: 'No images uploaded.', - reloadButtonText: 'Reload Page', - unknownErrorText: 'Unknown error.', - convertationTimeoutText: 'Convertation timeout exceeded.', - downloadErrorText: 'Download failed.', - unsupportedBrowserErrorText: 'Your browser is not supported.', - splitMaxRowsErrorText: 'The number of rows 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', - requestEditFailedTitleText: 'Access denied', - 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', - 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', - errorKeyExpire: 'Key descriptor expired', - errorUsersExceed: 'Count of users was exceed', - txtEditingMode: 'Set editing mode...', - errorCoAuthoringDisconnect: 'Server connection lost. You can\'t edit anymore.', - errorFilePassProtect: 'The file is password protected and cannot be opened.', - textAnonymous: 'Anonymous', - 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:
          opening price, max price, min price, closing price.', - errorDataRange: 'Incorrect data range.', - errorDatabaseConnection: 'External error.
          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.
          When you click the \'OK\' button, you will be prompted to download the document.', - textTryUndoRedo: 'The Undo/Redo functions are disabled for the Fast co-editing mode.', - textBuyNow: 'Visit website', - textNoLicenseTitle: 'License limit reached', - textContactUs: 'Contact sales', - errorViewerDisconnect: 'Connection is lost. You can still view the document,
          but will not be able to download until the connection is restored and page is reloaded.', - warnLicenseExp: 'Your license has expired.
          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', - textOK: 'OK', - textCancel: 'Cancel', - textPreloader: 'Loading... ', - textUsername: 'Username', - textPassword: 'Password', - textBack: 'Back', - textClose: 'Close', - textDone: 'Done', - titleServerVersion: 'Editor updated', - errorServerVersion: 'The editor version has been updated. The page will be reloaded to apply the changes.', - errorBadImageUrl: 'Image url is incorrect', - txtSlideText: 'Slide text', - txtClipArt: 'Clip Art', - txtDiagram: 'SmartArt', - txtDateTime: 'Date and time', - txtFooter: 'Footer', - txtHeader: 'Header', - txtMedia: 'Media', - txtPicture: 'Picture', - txtImage: 'Image', - txtSlideNumber: 'Slide number', - txtSlideSubtitle: 'Slide subtitle', - txtSlideTitle: 'Slide title', - txtProtected: 'Once you enter the password and open the file, the current password to the file will be reset', - warnNoLicense: "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
          Contact %1 sales team for personal upgrade terms.", - warnNoLicenseUsers: "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", - warnLicenseExceeded: "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
          Contact your administrator to learn more.", - warnLicenseUsersExceeded: "You've reached the user limit for %1 editors. Contact your administrator to learn more.", - errorDataEncrypted: 'Encrypted changes have been received, they cannot be deciphered.', - closeButtonText: 'Close File', - scriptLoadError: 'The connection is too slow, some of the components could not be loaded. Please reload the page.', - errorAccessDeny: 'You are trying to perform an action you do not have rights for.
          Please contact your Document Server administrator.', - errorEditingDownloadas: 'An error occurred during the work with the document.
          Use the \'Download\' option to save the file backup copy to your computer hard drive.', - textPaidFeature: 'Paid feature', - textCustomLoader: 'Please note that according to the terms of the license you are not entitled to change the loader.
          Please contact our Sales Department to get a quote.', - waitText: 'Please, wait...', - errorFileSizeExceed: 'The file size exceeds the limitation set for your server.
          Please contact your Document Server administrator for details.', - errorUpdateVersionOnDisconnect: 'Internet connection has been restored, and the file version has been changed.
          Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.', - errorOpensource: 'Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.', - textHasMacros: 'The file contains automatic macros.
          Do you want to run macros?', - textRemember: 'Remember my choice', - textYes: 'Yes', - textNo: 'No', - errorSessionAbsolute: 'The document editing session has expired. Please reload the page.', - errorSessionIdle: 'The document has not been edited for quite a long time. Please reload the page.', - errorSessionToken: 'The connection to the server has been interrupted. Please reload the page.', - warnLicenseLimitedRenewed: 'License needs to be renewed.
          You have a limited access to document editing functionality.
          Please contact your administrator to get full access', - warnLicenseLimitedNoAccess: 'License expired.
          You have no access to document editing functionality.
          Please contact your administrator.', - textGuest: 'Guest', - txtAddFirstSlide: 'Click to add first slide' - } - })(), PE.Controllers.Main || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/Search.js b/apps/presentationeditor/mobile/app/controller/Search.js deleted file mode 100644 index 171b316b7..000000000 --- a/apps/presentationeditor/mobile/app/controller/Search.js +++ /dev/null @@ -1,351 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Search.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 11/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'presentationeditor/mobile/app/view/Search' -], function (core, $, _, Backbone) { - 'use strict'; - - PE.Controllers.Search = Backbone.Controller.extend(_.extend((function() { - // private - - var _isShow = false, - _startPoint = {}; - - var pointerEventToXY = function(e){ - var out = {x:0, y:0}; - if(e.type == 'touchstart' || e.type == 'touchend'){ - var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - out.x = touch.pageX; - out.y = touch.pageY; - } else if (e.type == 'mousedown' || e.type == 'mouseup') { - out.x = e.pageX; - out.y = e.pageY; - } - return out; - }; - - function iOSVersion() { - var ua = navigator.userAgent.toLowerCase(); - var isAppleDevices = (ua.indexOf("ipad") > -1 || ua.indexOf("iphone") > -1 || ua.indexOf("ipod") > -1); - if (!isAppleDevices && Common.Utils.isSafari && Common.Utils.isMac && (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1)) - isAppleDevices = true; - - var iosversion = 0; - if (isAppleDevices) { - iosversion = 13; - try - { - var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/); - if (!v) v = (navigator.appVersion).match(/Version\/(\d+).(\d+)/); - iosversion = parseInt(v[1], 10); - } - catch (err) {} - } - return iosversion; - } - - return { - models: [], - collections: [], - views: [ - 'Search' - ], - - initialize: function() { - this.addListeners({ - 'Search': { - 'searchbar:show' : this.onSearchbarShow, - 'searchbar:hide' : this.onSearchbarHide, - 'searchbar:render' : this.onSearchbarRender, - 'searchbar:showsettings': this.onSearchbarSettings - } - }); - }, - - setApi: function(api) { - this.api = api; - }, - - setMode: function (mode) { - this.getView('Search').setMode(mode); - }, - - onLaunch: function() { - var me = this; - me.createView('Search').render(); - - if (iOSVersion()<13) { - $('#editor_sdk').single('mousedown touchstart', _.bind(me.onEditorTouchStart, me)); - $('#editor_sdk').single('mouseup touchend', _.bind(me.onEditorTouchEnd, me)); - } else { - $('#editor_sdk').single('pointerdown', _.bind(me.onEditorTouchStart, me)); - $('#editor_sdk').single('pointerup', _.bind(me.onEditorTouchEnd, me)); - } - }, - - showSearch: function () { - this.getView('Search').showSearch(); - }, - - hideSearch: function () { - this.getView('Search').hideSearch(); - }, - - // Handlers - - onEditorTouchStart: function (e) { - _startPoint = pointerEventToXY(e); - }, - - onEditorTouchEnd: function (e) { - var _endPoint = pointerEventToXY(e); - - if (_isShow) { - var distance = (_startPoint.x===undefined || _startPoint.y===undefined) ? 0 : - Math.sqrt((_endPoint.x -= _startPoint.x) * _endPoint.x + (_endPoint.y -= _startPoint.y) * _endPoint.y); - - if (distance < 1) { - this.hideSearch(); - } - } - }, - - onSearchbarRender: function(bar) { - var me = this, - searchString = Common.SharedSettings.get('search-search') || '', - replaceString = Common.SharedSettings.get('search-replace')|| ''; - - me.searchBar = uiApp.searchbar('.searchbar.document .searchbar.search', { - customSearch: true, - onSearch : _.bind(me.onSearchChange, me), - onEnable : _.bind(me.onSearchEnable, me), - onClear : _.bind(me.onSearchClear, me) - }); - - me.replaceBar = uiApp.searchbar('.searchbar.document .searchbar.replace', { - customSearch: true, - onSearch : _.bind(me.onReplaceChange, me), - onEnable : _.bind(me.onReplaceEnable, me), - onClear : _.bind(me.onReplaceClear, me) - }); - - me.searchPrev = $('.searchbar.document .prev'); - me.searchNext = $('.searchbar.document .next'); - me.replaceBtn = $('.searchbar.document .link.replace'); - - me.searchPrev.single('click', _.bind(me.onSearchPrev, me)); - me.searchNext.single('click', _.bind(me.onSearchNext, me)); - me.replaceBtn.single('click', _.bind(me.onReplace, me)); - - $$('.searchbar.document .link.replace').on('taphold', _.bind(me.onReplaceAll, me)); - - me.searchBar.search(searchString); - me.replaceBar.search(replaceString); - }, - - onSearchbarSettings: function (view) { - var strictBool = function (settingName) { - var value = Common.SharedSettings.get(settingName); - return !_.isUndefined(value) && (value === true); - }; - - var me = this, - isReplace = strictBool('search-is-replace'), - isCaseSensitive = strictBool('search-case-sensitive'), - $pageSettings = $('.page[data-page=search-settings]'), - $inputType = $pageSettings.find('input[name=search-type]'), - $inputCase = $pageSettings.find('#search-case-sensitive input:checkbox'); - - $inputType.val([isReplace ? 'replace' : 'search']); - $inputCase.prop('checked', isCaseSensitive); - - // init events - $inputType.single('change', _.bind(me.onTypeChange, me)); - $inputCase.single('change', _.bind(me.onCaseClick, me)); - }, - - onSearchbarShow: function(bar) { - _isShow = true; - }, - - onSearchEnable: function (bar) { - this.replaceBar.container.removeClass('searchbar-active'); - }, - - onSearchbarHide: function(bar) { - _isShow = false; - }, - - onSearchChange: function(search) { - var me = this, - isEmpty = (search.query.trim().length < 1); - - Common.SharedSettings.set('search-search', search.query); - - _.each([me.searchPrev, me.searchNext, me.replaceBtn], function(btn) { - btn.toggleClass('disabled', isEmpty); - }); - }, - - onSearchClear: function(search) { - Common.SharedSettings.set('search-search', ''); -// window.focus(); -// document.activeElement.blur(); - }, - - onReplaceChange: function(replace) { - var me = this, - isEmpty = (replace.query.trim().length < 1); - - Common.SharedSettings.set('search-replace', replace.query); - }, - - onReplaceEnable: function (bar) { - this.searchBar.container.removeClass('searchbar-active'); - }, - - onReplaceClear: function(replace) { - Common.SharedSettings.set('search-replace', ''); - }, - - onSearchPrev: function(btn) { - this.onQuerySearch(this.searchBar.query, 'back'); - }, - - onSearchNext: function(btn) { - this.onQuerySearch(this.searchBar.query, 'next'); - }, - - onReplace: function (btn) { - this.onQueryReplace(this.searchBar.query, this.replaceBar.query); - }, - - onReplaceAll: function (e) { - var me = this, - popover = [ - '' - ].join(''); - - popover = uiApp.popover(popover, $$(e.currentTarget)); - - $('#replace-all').single('click', _.bind(function () { - me.onQueryReplaceAll(this.searchBar.query, this.replaceBar.query); - uiApp.closeModal(popover); - }, me)) - }, - - onQuerySearch: function(query, direction) { - var matchcase = Common.SharedSettings.get('search-case-sensitive') || false; - - if (query && query.length) { - if (!this.api.findText(query, direction != 'back', matchcase)) { - var me = this; - uiApp.alert( - '', - me.textNoTextFound, - function () { - me.searchBar.input.focus(); - } - ); - } - } - }, - - onQueryReplace: function(search, replace) { - var matchcase = Common.SharedSettings.get('search-case-sensitive') || false; - - if (search && search.length) { - if (!this.api.asc_replaceText(search, replace || '', false, matchcase)) { - var me = this; - uiApp.alert( - '', - me.textNoTextFound, - function () { - me.searchBar.input.focus(); - } - ); - } - } - }, - - onQueryReplaceAll: function(search, replace) { - var matchcase = Common.SharedSettings.get('search-case-sensitive') || false; - - if (search && search.length) { - this.api.asc_replaceText(search, replace || '', true, matchcase); - } - }, - - onTypeChange: function (e) { - var me = this, - $target = $(e.currentTarget), - isReplace = ($target.val() === 'replace'); - - Common.SharedSettings.set('search-is-replace', isReplace); - $('.searchbar.document').toggleClass('replace', isReplace); - }, - - onCaseClick: function (e) { - Common.SharedSettings.set('search-case-sensitive', $(e.currentTarget).is(':checked')); - }, - - // API handlers - - textNoTextFound : 'Text not found', - textReplaceAll: 'Replace All' - } - })(), PE.Controllers.Search || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/Settings.js b/apps/presentationeditor/mobile/app/controller/Settings.js deleted file mode 100644 index ea0a505de..000000000 --- a/apps/presentationeditor/mobile/app/controller/Settings.js +++ /dev/null @@ -1,424 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Settings.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 11/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'presentationeditor/mobile/app/view/Settings' -], function (core, $, _, Backbone) { - 'use strict'; - - PE.Controllers.Settings = Backbone.Controller.extend(_.extend((function() { - // private - var rootView, - inProgress, - infoObj, - modalView, - _licInfo, - _lang, - _currentPageSize; - - var _slideSizeArr = [ - [9144000, 6858000, Asc.c_oAscSlideSZType.SzScreen4x3], [12192000, 6858000, Asc.c_oAscSlideSZType.SzCustom] - ]; - - return { - models: [], - collections: [], - views: [ - 'Settings' - ], - - initialize: function () { - Common.SharedSettings.set('readerMode', false); - Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'Settings': { - 'page:show' : this.onPageShow - } - }); - }, - - setApi: function (api) { - this.api = api; - - this.api.asc_registerCallback('asc_onPresentationSize', _.bind(this.onApiPageSize, this)); - this.api.asc_registerCallback('asc_onSendThemeColorSchemes', _.bind(this.onSendThemeColorSchemes, this)); - }, - - onLaunch: function () { - this.createView('Settings').render(); - }, - - setMode: function (mode) { - this.getView('Settings').setMode(mode); - if (mode.canBranding) - _licInfo = mode.customization; - _lang = mode.lang; - }, - - initEvents: function () { - }, - - rootView : function() { - return rootView; - }, - - showModal: function() { - uiApp.closeModal(); - - if (Common.SharedSettings.get('phone')) { - modalView = uiApp.popup( - '' - ); - } else { - modalView = uiApp.popover( - '
          ' + - '
          ' + - '
          ' + - '
          ' + - '' + - '
          ' + - '
          ' + - '
          ', - $$('#toolbar-settings') - ); - } - - if (Framework7.prototype.device.android === true) { - $$('.view.settings-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.settings-root-view .navbar').prependTo('.view.settings-root-view > .pages > .page'); - } - - rootView = uiApp.addView('.settings-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('settingscontainer:show'); - this.onPageShow(this.getView('Settings')); - }, - - hideModal: function() { - if (modalView) { - uiApp.closeModal(modalView); - } - }, - - onPageShow: function(view, pageId) { - var me = this; - $('#settings-spellcheck input:checkbox').attr('checked', Common.Utils.InternalSettings.get("pe-mobile-spellcheck")); - $('#settings-search').single('click', _.bind(me._onSearch, me)); - $('#settings-readermode input:checkbox').single('change', _.bind(me._onReaderMode, me)); - $('#settings-spellcheck input:checkbox').single('change', _.bind(me._onSpellcheck, me)); - $(modalView).find('.formats .page-content a').single('click', _.bind(me._onSaveFormat, me)); - $('#page-settings-view #slide-size-block li').single('click', _.bind(me._onSlideSize, me)); - $('#settings-print').single('click', _.bind(me._onPrint, me)); - $('#settings-collaboration').single('click', _.bind(me.onCollaboration, me)); - - PE.getController('Toolbar').getDisplayCollaboration() && $('#settings-collaboration').show(); - - Common.Utils.addScrollIfNeed('.page[data-page=settings-setup-view]', '.page[data-page=settings-setup-view] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=settings-download-view]', '.page[data-page=settings-download-view] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=settings-info-view]', '.page[data-page=settings-info-view] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=settings-about-view]', '.page[data-page=settings-about-view] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=color-schemes-view]', '.page[data-page=color-schemes-view] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=settings-macros-view]', '.page[data-page=settings-macros-view] .page-content'); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - if (pageId == '#settings-setup-view') { - me.onApiPageSize(me.api.get_PresentationWidth(), me.api.get_PresentationHeight()); - } else if (pageId == '#settings-about-view') { - // About - me.setLicInfo(_licInfo); - } else if ('#settings-application-view' == pageId) { - me.initPageApplicationSettings(); - } else if ('#color-schemes-view' == pageId) { - me.initPageColorSchemes(); - } else if ('#settings-info-view' == pageId) { - me.initPageInfo(); - } else if ('#settings-macros-view' == pageId) { - me.initPageMacrosSettings(); - } - }, - - initPageMacrosSettings: function() { - var me = this, - $pageMacrosSettings = $('.page[data-page="settings-macros-view"] input:radio[name=macros-settings]'), - value = Common.Utils.InternalSettings.get("pe-mobile-macros-mode") || 0; - $pageMacrosSettings.single('change', _.bind(me.onChangeMacrosSettings, me)); - $pageMacrosSettings.val([value]); - }, - - onChangeMacrosSettings: function(e) { - var value = parseInt($(e.currentTarget).val()); - Common.Utils.InternalSettings.set("pe-mobile-macros-mode", value); - Common.localStorage.setItem("pe-mobile-macros-mode", value); - }, - - initPageInfo: function() { - var document = Common.SharedSettings.get('document') || {}, - info = document.info || {}; - - document.title ? $('#settings-presentation-title').html(document.title) : $('.display-presentation-title').remove(); - var value = info.owner; - value ? $('#settings-pe-owner').html(value) : $('.display-owner').remove(); - value = info.uploaded; - value ? $('#settings-pe-uploaded').html(value) : $('.display-uploaded').remove(); - info.folder ? $('#settings-pe-location').html(info.folder) : $('.display-location').remove(); - - var appProps = (this.api) ? this.api.asc_getAppProps() : null; - if (appProps) { - var appName = (appProps.asc_getApplication() || '') + (appProps.asc_getAppVersion() ? ' ' : '') + (appProps.asc_getAppVersion() || ''); - appName ? $('#settings-pe-application').html(appName) : $('.display-application').remove(); - } - - var props = (this.api) ? this.api.asc_getCoreProps() : null; - if (props) { - value = props.asc_getTitle(); - value ? $('#settings-pe-title').html(value) : $('.display-title').remove(); - value = props.asc_getSubject(); - value ? $('#settings-pe-subject').html(value) : $('.display-subject').remove(); - value = props.asc_getDescription(); - value ? $('#settings-pe-comment').html(value) : $('.display-comment').remove(); - value = props.asc_getModified(); - value ? $('#settings-pe-last-mod').html(value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'})) : $('.display-last-mode').remove(); - value = props.asc_getLastModifiedBy(); - value ? $('#settings-pe-mod-by').html(AscCommon.UserInfoParser.getParsedName(value)) : $('.display-mode-by').remove(); - value = props.asc_getCreated(); - value ? $('#settings-pe-date').html(value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'})) : $('.display-created-date').remove(); - value = props.asc_getCreator(); - var templateCreator = ""; - value && value.split(/\s*[,;]\s*/).forEach(function(item) { - templateCreator = templateCreator + "
        • " + item + "
        • "; - }); - templateCreator ? $('#list-creator').html(templateCreator) : $('.display-author').remove(); - } - - }, - - onCollaboration: function() { - PE.getController('Common.Controllers.Collaboration').showModal(); - }, - - initPageColorSchemes: function() { - this.curSchemas = (this.api) ? this.api.asc_GetCurrentColorSchemeIndex() : 0; - this.getView('Settings').renderSchemaSettings(this.curSchemas, this.schemas); - $('.page[data-page=color-schemes-view] input:radio[name=color-schema]').single('change', _.bind(this.onColorSchemaChange, this)); - Common.Utils.addScrollIfNeed('.page[data-page=color-schemes-view', '.page[data-page=color-schemes-view] .page-content'); - }, - - onSendThemeColorSchemes: function (schemas) { - this.schemas = schemas; - }, - - onColorSchemaChange: function(event) { - if (this.api) { - var ind = $(event.currentTarget).val(); - if (this.curSchemas !== ind) - this.api.asc_ChangeColorSchemeByIdx(parseInt(ind)); - } - }, - - initPageApplicationSettings: function () { - var me = this, - $unitMeasurement = $('.page[data-page=settings-application-view] input:radio[name=unit-of-measurement]'); - $unitMeasurement.single('change', _.bind(me.unitMeasurementChange, me)); - var value = Common.Utils.Metric.getCurrentMetric(); - $unitMeasurement.val([value]); - }, - - unitMeasurementChange: function (e) { - var value = $(e.currentTarget).val(); - value = (value!==null) ? parseInt(value) : Common.Utils.Metric.getDefaultMetric(); - Common.Utils.Metric.setCurrentMetric(value); - Common.localStorage.setItem("pe-mobile-settings-unit", value); - this.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)); - }, - - setLicInfo: function(data){ - if (data && typeof data == 'object' && typeof(data.customer)=='object') { - $('.page[data-page=settings-about-view] .logo').hide(); - $('#settings-about-tel').parent().hide(); - $('#settings-about-licensor').show(); - - var customer = data.customer, - value = customer.name; - value && value.length ? - $('#settings-about-name').text(value) : - $('#settings-about-name').hide(); - - value = customer.address; - value && value.length ? - $('#settings-about-address').text(value) : - $('#settings-about-address').parent().hide(); - - (value = customer.mail) && value.length ? - $('#settings-about-email').attr('href', "mailto:"+value).text(value) : - $('#settings-about-email').parent().hide(); - - if ((value = customer.www) && value.length) { - var http = !/^https?:\/{2}/i.test(value) ? "http:\/\/" : ''; - $('#settings-about-url').attr('href', http+value).text(value); - } else - $('#settings-about-url').hide(); - - if ((value = customer.info) && value.length) { - $('#settings-about-info').show().text(value); - } - - if ( (value = customer.logo) && value.length ) { - $('#settings-about-logo').show().html(''); - } - } - }, - - // API handlers - - onApiPageSize: function(width, height) { - _currentPageSize = {width: width, height: height}; - var $input = $('#page-settings-view input[name="slide-size"]'); - if ($input.length > 0) { - var ratio = height/width; - for (var i = 0; i < _slideSizeArr.length; i++) { - if (Math.abs(_slideSizeArr[i][1]/_slideSizeArr[i][0] - ratio) < 0.001 ) { - $input.val([i]); - break; - } - } - } - }, - - _onApiDocumentName: function(name) { - $('#settings-presentation-title').html(name ? name : '-'); - }, - - _onSearch: function (e) { - var toolbarView = PE.getController('Toolbar').getView('Toolbar'); - - if (toolbarView) { - toolbarView.showSearch(); - } - - this.hideModal(); - }, - - _onPrint: function(e) { - var me = this; - - _.delay(function () { - me.api.asc_Print(); - }, 300); - me.hideModal(); - }, - - _onSpellcheck: function (e) { - var $checkbox = $(e.currentTarget), - state = $checkbox.is(':checked'); - Common.localStorage.setItem("pe-mobile-spellcheck", state ? 1 : 0); - Common.Utils.InternalSettings.set("pe-mobile-spellcheck", state); - this.api && this.api.asc_setSpellCheck(state); - }, - - _onReaderMode: function (e) { - var me = this; - - Common.SharedSettings.set('readerMode', !Common.SharedSettings.get('readerMode')); - - me.api && me.api.ChangeReaderMode(); - - if (Common.SharedSettings.get('phone')) { - _.defer(function () { - me.hideModal(); - }, 1000); - } - - Common.NotificationCenter.trigger('readermode:change', Common.SharedSettings.get('readerMode')); - }, - - _onSaveFormat: function(e) { - var me = this, - format = $(e.currentTarget).data('format'); - - if (format) { - _.delay(function () { - me.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); - }, 300); - } - - me.hideModal(); - }, - - _onSlideSize: function(e) { - var $target = $(e.currentTarget).find('input'); - if ($target && this.api) { - var value = parseFloat($target.prop('value')), - ratio = _slideSizeArr[value][1] / _slideSizeArr[value][0]; - _currentPageSize = { - width : ((_currentPageSize.height || _slideSizeArr[value][1]) / ratio), - height : _currentPageSize.height - }; - this.api.changeSlideSize(_currentPageSize.width, _currentPageSize.height, _slideSizeArr[value][2]); - } - }, - - txtLoading : 'Loading...', - notcriticalErrorTitle : 'Warning' - } - })(), PE.Controllers.Settings || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/Toolbar.js b/apps/presentationeditor/mobile/app/controller/Toolbar.js deleted file mode 100644 index 89bf8db07..000000000 --- a/apps/presentationeditor/mobile/app/controller/Toolbar.js +++ /dev/null @@ -1,253 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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) 2018 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 _users = []; - var _displayCollaboration = false; - - 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 || data.config.customization.goback.requestClose && data.config.canRequestClose)) { - $('#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')); - this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this)); - this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect, this)); - this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onUsersChanged, this)); - this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onUsersChanged, this)); - this.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(this.onUserConnection, this)); - Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this)); - this.api.asc_registerCallback('asc_onCountPages', _.bind(this.onApiCountPages, this)); - }, - - setMode: function (mode) { - this.mode = 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() { - Common.NotificationCenter.trigger('goback', true); - } - }, - { - text: me.stayButtonText, - bold: true - } - ] - }); - } else { - Common.NotificationCenter.trigger('goback', true); - } - }, - - 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 (this.isDisconnected) return; - - if (which == 'undo') { - $('#toolbar-undo').toggleClass('disabled', !can); - } else { - $('#toolbar-redo').toggleClass('disabled', !can); - } - }, - - onApiFocusObject: function (objects) { - if (this.isDisconnected) return; - - if (objects.length > 0) { - var slide_deleted = false, - slide_lock = false, - no_object = true, - objectLocked = false; - _.each(objects, function(object) { - var type = object.get_ObjectType(), - objectValue = object.get_ObjectValue(); - if (type == Asc.c_oAscTypeSelectElement.Slide) { - slide_deleted = objectValue.get_LockDelete(); - slide_lock = objectValue.get_LockLayout() || objectValue.get_LockBackground() || objectValue.get_LockTransition() || objectValue.get_LockTiming(); - } else if (objectValue && _.isFunction(objectValue.get_Locked)) { - no_object = false; - objectLocked = objectLocked || objectValue.get_Locked(); - } - }); - - $('#toolbar-add').toggleClass('disabled', slide_deleted); - $('#toolbar-edit').toggleClass('disabled', slide_deleted || (objectLocked || no_object) && slide_lock ); - } - }, - - onApiCountPages: function (count) { - $('#toolbar-preview').toggleClass('disabled', count<=0); - }, - - activateControls: function() { - $('#toolbar-preview, #toolbar-settings, #toolbar-search, #document-back, #toolbar-edit-document, #toolbar-collaboration').removeClass('disabled'); - }, - - activateViewControls: function() { - $('#toolbar-preview, #toolbar-search, #document-back, #toolbar-collaboration').removeClass('disabled'); - }, - - deactivateEditControls: function(enableDownload) { - $('#toolbar-edit, #toolbar-add').addClass('disabled'); - if (enableDownload) - PE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); - else - $('#toolbar-settings').addClass('disabled'); - }, - - onCoAuthoringDisconnect: function(enableDownload) { - this.isDisconnected = true; - this.deactivateEditControls(enableDownload); - $('#toolbar-undo').toggleClass('disabled', true); - $('#toolbar-redo').toggleClass('disabled', true); - PE.getController('AddContainer').hideModal(); - PE.getController('EditContainer').hideModal(); - PE.getController('Settings').hideModal(); - }, - - displayCollaboration: function() { - if(_users !== undefined) { - var length = 0; - _.each(_users, function (item) { - if ((item.asc_getState()!==false) && !item.asc_getView()) - length++; - }); - _displayCollaboration = (length >= 1 || !this.mode || this.mode.canViewComments); - _displayCollaboration ? $('#toolbar-collaboration').show() : $('#toolbar-collaboration').hide(); - } - }, - - onUsersChanged: function(users) { - _users = users; - this.displayCollaboration(); - }, - - onUserConnection: function(change){ - var changed = false; - for (var uid in _users) { - if (undefined !== uid) { - var user = _users[uid]; - if (user && user.asc_getId() == change.asc_getId()) { - _users[uid] = change; - changed = true; - } - } - } - !changed && change && (_users[change.asc_getId()] = change); - this.displayCollaboration(); - }, - - getDisplayCollaboration: function() { - return _displayCollaboration; - }, - - 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 diff --git a/apps/presentationeditor/mobile/app/controller/add/AddContainer.js b/apps/presentationeditor/mobile/app/controller/add/AddContainer.js deleted file mode 100644 index f0d1c59d4..000000000 --- a/apps/presentationeditor/mobile/app/controller/add/AddContainer.js +++ /dev/null @@ -1,270 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddContainer.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 11/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core' -], function (core) { - 'use strict'; - - PE.Controllers.AddContainer = Backbone.Controller.extend(_.extend((function() { - // private - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - setApi: function(api) { - this.api = api; - }, - - onLaunch: function() { - // - }, - - showModal: function() { - var me = this; - - if ($$('.container-add.modal-in').length > 0) { - return; - } - - uiApp.closeModal(); - - me._showByStack(Common.SharedSettings.get('phone')); - - PE.getController('Toolbar').getView('Toolbar').hideSearch(); - }, - - hideModal: function () { - if (this.picker) { - uiApp.closeModal(this.picker); - } - }, - - _layoutEditorsByStack: function () { - var me = this, - addViews = []; - - addViews.push({ - caption: me.textSlide, - id: 'add-slide', - icon: 'icon-add-slide', - layout: PE.getController('AddSlide') - .getView('AddSlide') - .rootLayout() - }); - - addViews.push({ - caption: me.textShape, - id: 'add-shape', - icon: 'icon-add-shape', - layout: PE.getController('AddShape') - .getView('AddShape') - .rootLayout() - }); - - addViews.push({ - caption: me.textImage, - id: 'add-image', - icon: 'icon-add-image', - layout: PE.getController('AddImage') - .getView('AddImage') - .rootLayout() - }); - - addViews.push({ - caption: me.textOther, - id: 'add-other', - icon: 'icon-add-other', - layout: PE.getController('AddOther') - .getView('AddOther') - .rootLayout() - }); - - return addViews; - }, - - _showByStack: function(isPhone) { - var me = this, - isAndroid = Framework7.prototype.device.android === true, - layoutAdds = me._layoutEditorsByStack(); - - if ($$('.container-add.modal-in').length > 0) { - return; - } - - // Navigation bar - var $layoutNavbar = $( - '
          ' - ); - - - if (isAndroid) { - $layoutNavbar - .find('.center') - .append('
          '); - - _.each(layoutAdds, function (layout, index) { - $layoutNavbar - .find('.toolbar-inner') - .append( - '' - ); - }); - $layoutNavbar - .find('.toolbar-inner') - .append(''); - } else { - $layoutNavbar - .find('.center') - .append('
          '); - - _.each(layoutAdds, function (layout, index) { - $layoutNavbar - .find('.buttons-row') - .append( - '' - ); - }); - } - - - // Content - - var $layoutPages = $( - '
          ' + - '
          ' + - '
          ' + - '
          ' + - '
          ' + - '
          ' - ); - - _.each(layoutAdds, function (addView, index) { - $layoutPages.find('.tabs').append( - '
          ' + - '
          ' + - '
          ' + - '
          ' + - addView.layout + - '
          ' + - '
          ' + - '
          ' + - '
          ' - ); - }); - - if (isPhone) { - me.picker = $$(uiApp.popup( - '' - )) - } else { - me.picker = uiApp.popover( - '
          ' + - '
          ' + - '
          ' + - '
          ' + - '' + - '
          ' + - '
          ', - $$('#toolbar-add') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }); - } - - $('.container-add .tab').single('show', function (e) { - Common.NotificationCenter.trigger('addcategory:show', e); - }); - - if (isAndroid) { - $$('.view.add-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.add-root-view .navbar').prependTo('.view.add-root-view > .pages > .page'); - } - - me.rootView = uiApp.addView('.add-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('addcontainer:show'); - }, - - textSlide: 'Slide', - textTable: 'Table', - textShape: 'Shape', - textImage: 'Image', - textLink: 'Link', - textOther: 'Other' - } - })(), PE.Controllers.AddContainer || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/add/AddImage.js b/apps/presentationeditor/mobile/app/controller/add/AddImage.js deleted file mode 100644 index d95a8859a..000000000 --- a/apps/presentationeditor/mobile/app/controller/add/AddImage.js +++ /dev/null @@ -1,128 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddImage.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/30/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'presentationeditor/mobile/app/view/add/AddImage' -], function (core) { - 'use strict'; - - PE.Controllers.AddImage = Backbone.Controller.extend(_.extend((function() { - // - - return { - models: [], - collections: [], - views: [ - 'AddImage' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddImage': { - 'page:show' : this.onPageShow - } - }); - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddImage').render(); - }, - - initEvents: function () { - var me = this; - $('#add-image-file').single('click', _.bind(me.onInsertByFile, me)); - }, - - onPageShow: function () { - var me = this; - - $('#addimage-insert a').single('click', _.buffered(me.onInsertByUrl, 100, me)); - $('#addimage-url input[type=url]').single('input', _.bind(me.onUrlChange, me)); - - _.delay(function () { - $('#addimage-link-url input[type=url]').focus(); - }, 1000); - }, - - // Handlers - - onInsertByFile: function (e) { - PE.getController('AddContainer').hideModal(); - }, - - onUrlChange: function (e) { - $('#addimage-insert').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, - - onInsertByUrl: function (e) { - var me = this, - $input = $('#addimage-link-url input[type=url]'); - - if ($input) { - var value = ($input.val()).replace(/ /g, ''); - - if (!_.isEmpty(value)) { - if ((/((^https?)|(^ftp)):\/\/.+/i.test(value))) { - PE.getController('AddContainer').hideModal(); - } else { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - } - } else { - uiApp.alert(me.textEmptyImgUrl, me.notcriticalErrorTitle); - } - } - }, - - textEmptyImgUrl : 'You need to specify image URL.', - txtNotUrl : 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - } - })(), PE.Controllers.AddImage || {})) -}); diff --git a/apps/presentationeditor/mobile/app/controller/add/AddLink.js b/apps/presentationeditor/mobile/app/controller/add/AddLink.js deleted file mode 100644 index ee2a12938..000000000 --- a/apps/presentationeditor/mobile/app/controller/add/AddLink.js +++ /dev/null @@ -1,216 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ -/** - * AddLink.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/01/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/add/AddOther' -], function (core) { - 'use strict'; - - PE.Controllers.AddLink = Backbone.Controller.extend(_.extend((function() { - var c_oHyperlinkType = { - InternalLink:0, - WebLink: 1 - }, - c_oSlideLink = { - Next: 0, - Previouse: 1, - Last: 2, - First: 3, - Num: 4 - }, - _slidesCount = 0; - - return { - models: [], - collections: [], - views: [ - 'AddOther' - ], - - initialize: function () { - - this.addListeners({ - 'AddOther': { - 'category:show': this.categoryShow, - 'page:show' : this.onPageShow - } - }); - - var me = this; - uiApp.onPageBack('addlink-type addlink-slidenumber', function (page) { - me.initSettings(); - }); - - this._linkType = c_oHyperlinkType.WebLink; - this._slideLink = 0; - this._slideNum = 0; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - initEvents: function () { - var me = this; - $('#add-link-insert').single('click', _.buffered(me.onInsertLink, 100, me)); - }, - - categoryShow: function (view, pageId) { - if (pageId === '#addother-insert-link') { - this._linkType = c_oHyperlinkType.WebLink; - this._slideLink = this._slideNum = 0; - var text = this.api.can_AddHyperlink(); - if (text !== false) { - $('#add-link-display input').val((text !== null) ? text : this.textDefault); - $('#add-link-display').toggleClass('disabled', text === null); - } - - this.initEvents(); - this.initSettings(); - } - }, - - initSettings: function (pageId) { - var me = this; - - if (pageId == '#addlink-type') { - $('#page-addlink-type input').val([this._linkType]); - } else if (pageId == '#addlink-slidenumber') { - _slidesCount = me.api.getCountPages(); - $('#page-addlink-slidenumber input').val([this._slideLink]); - $('#addlink-slide-number .item-after label').text(this._slideNum+1); - } else { - $('#add-link-type .item-after').text((this._linkType==c_oHyperlinkType.WebLink) ? me.textExternalLink : me.textInternalLink); - $('#add-link-url')[(this._linkType==c_oHyperlinkType.WebLink) ? 'show' : 'hide'](); - $('#add-link-number')[(this._linkType==c_oHyperlinkType.WebLink) ? 'hide' : 'show'](); - - if (this._linkType==c_oHyperlinkType.WebLink) { - $('#add-link-url input[type=url]').single('input', _.bind(function(e) { - $('#add-link-insert').toggleClass('disabled', _.isEmpty($('#add-link-url input').val())); - }, this)); - _.delay(function () { - $('#add-link-url input[type=url]').focus(); - }, 1000); - } else { - var slidename = ''; - switch (this._slideLink) { - case 0: - slidename = me.textNext; - break; - case 1: - slidename = me.textPrev; - break; - case 2: - slidename = me.textFirst; - break; - case 3: - slidename = me.textLast; - break; - case 4: - slidename = me.textSlide + ' ' + (this._slideNum+1); - break; - } - $('#add-link-number .item-after').text(slidename); - } - - $('#add-link-insert').toggleClass('disabled', (this._linkType==c_oHyperlinkType.WebLink) && _.isEmpty($('#add-link-url input').val())); - } - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('#page-addlink-type li').single('click', _.buffered(me.onLinkType, 100, me)); - $('#page-addlink-slidenumber li').single('click', _.buffered(me.onSlideLink, 100, me)); - $('#addlink-slide-number .button').single('click',_.buffered(me.onSlideNumber, 100, me)); - me.initSettings(pageId); - }, - - // Handlers - - onInsertLink: function (e) { - PE.getController('AddContainer').hideModal(); - }, - - onLinkType: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - this._linkType = parseFloat($target.prop('value')); - } - }, - - onSlideLink: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - this._slideLink = parseFloat($target.prop('value')); - } - }, - - onSlideNumber: function (e) { - var $button = $(e.currentTarget), - slide = this._slideNum; - - if ($button.hasClass('decrement')) { - slide = Math.max(0, --slide); - } else { - slide = Math.min(_slidesCount-1, ++slide); - } - this._slideNum = slide; - $('#addlink-slide-number .item-after label').text(slide+1); - }, - - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - textDefault: 'Selected text', - textNext: 'Next Slide', - textPrev: 'Previous Slide', - textFirst: 'First Slide', - textLast: 'Last Slide', - textSlide: 'Slide', - textExternalLink: 'External Link', - textInternalLink: 'Slide in this Presentation', - notcriticalErrorTitle: 'Warning' - } - })(), PE.Controllers.AddLink || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/add/AddOther.js b/apps/presentationeditor/mobile/app/controller/add/AddOther.js deleted file mode 100644 index 675a89dd0..000000000 --- a/apps/presentationeditor/mobile/app/controller/add/AddOther.js +++ /dev/null @@ -1,185 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ -/** - * AddOther.js - * Presentation Editor - * - * Created by Julia Svinareva on 10/04/20 - * Copyright (c) 2020 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/add/AddOther', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - PE.Controllers.AddOther = Backbone.Controller.extend(_.extend((function() { - var _canAddHyperlink = false, - _paragraphLocked = false; - - return { - models: [], - collections: [], - views: [ - 'AddOther' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddOther': { - 'page:show' : this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - me.api.asc_registerCallback('asc_onCanAddHyperlink', _.bind(me.onApiCanAddHyperlink, me)); - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - setMode: function (mode) { - this.view = this.getView('AddOther'); - this.view.canViewComments = mode.canViewComments; - }, - - onLaunch: function () { - this.createView('AddOther').render(); - }, - - initEvents: function () { - var me = this; - this.view.hideInsertComments = this.isHideInsertComment(); - this.view.hideInsertLink = !(_canAddHyperlink && !_paragraphLocked); - }, - - onApiCanAddHyperlink: function(value) { - _canAddHyperlink = value; - }, - - onApiFocusObject: function (objects) { - _paragraphLocked = false; - _.each(objects, function(object) { - if (Asc.c_oAscTypeSelectElement.Paragraph == object.get_ObjectType()) { - _paragraphLocked = object.get_ObjectValue().get_Locked(); - } - }); - }, - - isHideInsertComment: function() { - var stack = this.api.getSelectedElements(); - var isText = false, - isChart = false; - - _.each(stack, function (item) { - var objectType = item.get_ObjectType(); - if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { - isText = true; - } else if (objectType == Asc.c_oAscTypeSelectElement.Chart) { - isChart = true; - } - }); - if (stack.length > 0) { - var topObject = stack[stack.length - 1], - topObjectValue = topObject.get_ObjectValue(), - objectLocked = _.isFunction(topObjectValue.get_Locked) ? topObjectValue.get_Locked() : false; - !objectLocked && (objectLocked = _.isFunction(topObjectValue.get_LockDelete) ? topObjectValue.get_LockDelete() : false); - if (!objectLocked) { - return ((isText && isChart) || this.api.can_AddQuotedComment() === false); - } - } - return true; - }, - - onPageShow: function (view, pageId) { - var me = this; - - if (pageId == '#addother-insert-comment') { - me.initInsertComment(false); - } - }, - - // Handlers - initInsertComment: function (documentFlag) { - var comment = PE.getController('Common.Controllers.Collaboration').getCommentInfo(); - if (comment) { - this.getView('AddOther').renderComment(comment); - $('#done-comment').single('click', _.bind(this.onDoneComment, this, documentFlag)); - $('.back-from-add-comment').single('click', _.bind(function () { - if ($('#comment-text').val().length > 0) { - uiApp.modal({ - title: '', - text: this.textDeleteDraft, - buttons: [ - { - text: this.textCancel - }, - { - text: this.textDelete, - bold: true, - onClick: function () { - PE.getController('AddContainer').rootView.router.back(); - } - }] - }) - } else { - PE.getController('AddContainer').rootView.router.back(); - } - }, this)) - } - }, - - onDoneComment: function(documentFlag) { - var value = $('#comment-text').val().trim(); - if (value.length > 0) { - PE.getController('Common.Controllers.Collaboration').onAddNewComment(value, documentFlag); - PE.getController('AddContainer').hideModal(); - } - }, - - textDeleteDraft: 'Do you really want to delete draft?', - textCancel: 'Cancel', - //textContinue: 'Continue', - textDelete: 'Delete' - - } - })(), PE.Controllers.AddOther || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/add/AddShape.js b/apps/presentationeditor/mobile/app/controller/add/AddShape.js deleted file mode 100644 index be2ef1ecf..000000000 --- a/apps/presentationeditor/mobile/app/controller/add/AddShape.js +++ /dev/null @@ -1,225 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddShape.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/28/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/add/AddShape' -], function (core) { - 'use strict'; - - PE.Controllers.AddShape = Backbone.Controller.extend(_.extend((function() { - var _styles = []; - - return { - models: [], - collections: [], - views: [ - 'AddShape' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - // Fill shapes - - function randomColor() { - return '#' + Math.floor(Math.random()*16777215).toString(16); - } - - _styles = [ - { - title: 'Text', - thumb: 'shape-01.svg', - type: 'textRect' - }, - { - title: 'Line', - thumb: 'shape-02.svg', - type: 'line' - }, - { - title: 'Line with arrow', - thumb: 'shape-03.svg', - type: 'lineWithArrow' - }, - { - title: 'Line with two arrows', - thumb: 'shape-04.svg', - type: 'lineWithTwoArrows' - }, - { - title: 'Rect', - thumb: 'shape-05.svg', - type: 'rect' - }, - { - title: 'Hexagon', - thumb: 'shape-06.svg', - type: 'hexagon' - }, - { - title: 'Round rect', - thumb: 'shape-07.svg', - type: 'roundRect' - }, - { - title: 'Ellipse', - thumb: 'shape-08.svg', - type: 'ellipse' - }, - { - title: 'Triangle', - thumb: 'shape-09.svg', - type: 'triangle' - }, - { - title: 'Triangle', - thumb: 'shape-10.svg', - type: 'rtTriangle' - }, - { - title: 'Trapezoid', - thumb: 'shape-11.svg', - type: 'trapezoid' - }, - { - title: 'Diamond', - thumb: 'shape-12.svg', - type: 'diamond' - }, - { - title: 'Right arrow', - thumb: 'shape-13.svg', - type: 'rightArrow' - }, - { - title: 'Left-right arrow', - thumb: 'shape-14.svg', - type: 'leftRightArrow' - }, - { - title: 'Left arrow callout', - thumb: 'shape-15.svg', - type: 'leftArrow' - }, - { - title: 'Right arrow callout', - thumb: 'shape-16.svg', - type: 'bentUpArrow' - }, - { - title: 'Flow chart off page connector', - thumb: 'shape-17.svg', - type: 'flowChartOffpageConnector' - }, - { - title: 'Heart', - thumb: 'shape-18.svg', - type: 'heart' - }, - { - title: 'Math minus', - thumb: 'shape-19.svg', - type: 'mathMinus' - }, - { - title: 'Math plus', - thumb: 'shape-20.svg', - type: 'mathPlus' - }, - { - title: 'Parallelogram', - thumb: 'shape-21.svg', - type: 'parallelogram' - }, - { - title: 'Wedge rect callout', - thumb: 'shape-22.svg', - type: 'wedgeRectCallout' - }, - { - title: 'Wedge ellipse callout', - thumb: 'shape-23.svg', - type: 'wedgeEllipseCallout' - }, - { - title: 'Cloud callout', - thumb: 'shape-24.svg', - type: 'cloudCallout' - } - ]; - - var elementsInRow = 4; - var groups = _.chain(_styles).groupBy(function(element, index){ - return Math.floor(index/elementsInRow); - }).toArray().value(); - - Common.SharedSettings.set('shapes', groups); - Common.NotificationCenter.trigger('shapes:load', groups); - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddShape').render(); - }, - - initEvents: function () { - var me = this; - - $('#add-shape li').single('click', _.buffered(me.onShapeClick, 100, me)); - }, - - onShapeClick: function (e) { - PE.getController('AddContainer').hideModal(); - }, - - // Public - - getStyles: function () { - return _styles; - } - } - })(), PE.Controllers.AddShape || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/add/AddSlide.js b/apps/presentationeditor/mobile/app/controller/add/AddSlide.js deleted file mode 100644 index 4ffccc101..000000000 --- a/apps/presentationeditor/mobile/app/controller/add/AddSlide.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddSlide.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/06/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'presentationeditor/mobile/app/view/add/AddSlide' -], function (core) { - 'use strict'; - - PE.Controllers.AddSlide = Backbone.Controller.extend(_.extend((function() { - return { - models: [], - collections: [], - views: [ - 'AddSlide' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - this._layouts = []; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('AddSlide').render(); - }, - - initEvents: function () { - var me = this; - me.getView('AddSlide').updateLayouts(this._layouts); - $('#add-slide .slide-layout li').single('click', _.buffered(me.onLayoutClick, 100, me)); - }, - - onLayoutClick: function (e) { - PE.getController('AddContainer').hideModal(); - }, - - // Public - - getLayouts: function () { - return this._layouts; - } - } - })(), PE.Controllers.AddSlide || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/add/AddTable.js b/apps/presentationeditor/mobile/app/controller/add/AddTable.js deleted file mode 100644 index 193e9ea59..000000000 --- a/apps/presentationeditor/mobile/app/controller/add/AddTable.js +++ /dev/null @@ -1,151 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddTable.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/30/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', -], function (core) { - 'use strict'; - - PE.Controllers.AddTable = Backbone.Controller.extend(_.extend((function() { - return { - models: [], - collections: [], - views: [ - 'AddTable' - ], - - initialize: function () { - this._styles = []; - this._initDefaultStyles = false; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - initEvents: function () { - var me = this; - $('.page[data-page="addother-insert-table"] li').single('click', _.buffered(me.onStyleClick, 100, me)); - }, - - onStyleClick: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - if ($('.modal.modal-in').length > 0) { - return; - } - - PE.getController('AddContainer').hideModal(); - - if ($target) { - var picker; - var modal = uiApp.modal({ - title: me.textTableSize, - text: '', - afterText: - '
          ' + - '
          ' + - '
          ' + me.textColumns + '
          ' + - '
          ' + me.textRows + '
          ' + - '
          ' + - '
          ' + - '
          ', - buttons: [ - { - text: me.textCancel - }, - { - text: 'OK', - bold: true, - onClick: function () { - var size = picker.value; - - if (me.api) { - me.api.put_Table(parseInt(size[0]), parseInt(size[1]), undefined, type.toString()); - } - } - } - ] - }); - - picker = uiApp.picker({ - container: '#picker-table-size', - toolbar: false, - rotateEffect: true, - value: [3, 3], - cols: [{ - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }, { - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }] - }); - - // Vertical align - $$(modal).css({ - marginTop: - Math.round($$(modal).outerHeight() / 2) + 'px' - }); - } - }, - - // Public - - getStyles: function () { - return this._styles; - }, - - // API handlers - - textTableSize: 'Table Size', - textColumns: 'Columns', - textRows: 'Rows', - textCancel: 'Cancel' - } - })(), PE.Controllers.AddTable || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditChart.js b/apps/presentationeditor/mobile/app/controller/edit/EditChart.js deleted file mode 100644 index c80df4edc..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditChart.js +++ /dev/null @@ -1,423 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditChart.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/19/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/edit/EditChart', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - PE.Controllers.EditChart = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _shapeObject = undefined, - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _borderColor = 'transparent'; - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditChart' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditChart': { - 'page:show': this.onPageShow - } - }); - this._chartObject = undefined; - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditChart').render(); - }, - - initEvents: function () { - var me = this; - - $('#chart-remove').single('click', _.bind(me.onRemoveChart, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('.chart-reorder a').single('click', _.bind(me.onReorder, me)); - $('.chart-replace li').single('click', _.buffered(me.onReplace, 100, me)); - $('.chart-align a').single('click', _.bind(me.onAlign, me)); - - $('#edit-chart-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-chart-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - - $('#tab-chart-type li').single('click', _.buffered(me.onType, 100, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - if (me._chartObject) { - if (pageId == '#edit-chart-style') { - me._updateChartStyles(me.api.asc_getChartPreviews(me._chartObject.getType())); - me._initStyleView(); - } else if (pageId == '#edit-chart-border-color-view') { - me._initStyleView(); - } - } - }, - - _initStyleView: function (updateStyles) { - var me = this, - chartProperties = me._chartObject, - shapeProperties = _shapeObject, - paletteFillColor = me.getView('EditChart').paletteFillColor, - paletteBorderColor = me.getView('EditChart').paletteBorderColor; - - // Style - - var type = chartProperties.getType(); - $('.chart-types li').removeClass('active'); - $('.chart-types li[data-type=' + type + ']').addClass('active'); - - // Init style border size - var borderSize = shapeProperties.get_stroke().get_width() * 72.0 / 25.4, - borderType = _shapeObject.get_stroke().get_type(); - $('#edit-chart-bordersize input').val([(borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize)]); - $('#edit-chart-bordersize .item-after').text(((borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize)) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - paletteFillColor && paletteFillColor.on('select', _.bind(me.onFillColor, me)); - paletteBorderColor && paletteBorderColor.on('select', _.bind(me.onBorderColor, me)); - - var sdkColor, color; - - // Init fill color - var fill = shapeProperties.get_fill(), - fillType = fill.get_type(); - - color = 'transparent'; - - if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { - fill = fill.get_fill(); - sdkColor = fill.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - - paletteFillColor && paletteFillColor.select(color); - - // Init border color - me._initBorderColorView(); - }, - - _initBorderColorView: function () { - if (!_shapeObject) return; - - var me = this, - paletteBorderColor = me.getView('EditChart').paletteBorderColor, - stroke = _shapeObject.get_stroke(); - - var color = 'transparent'; - - if (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var sdkColor = stroke.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } - else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - _borderColor = color; - - paletteBorderColor && paletteBorderColor.select(color); - $('#edit-chart-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))) - }, - - // Public - - getChart: function () { - return this._chartObject; - }, - - // Handlers - - onType: function (e) { - }, - - onStyle: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - var chart = new Asc.CAscChartProp(); - chart.putStyle(type); - me.api.ChartApply(chart); - }, - - onRemoveChart: function () { - this.api.asc_Remove(); - PE.getController('EditContainer').hideModal(); - }, - - onReorder: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - if ('all-up' == type) { - this.api.shapes_bringToFront(); - } else if ('all-down' == type) { - this.api.shapes_bringToBack(); - } else if ('move-up' == type) { - this.api.shapes_bringForward(); - } else if ('move-down' == type) { - this.api.shapes_bringBackward(); - } - }, - - onAlign: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - if ('align-left' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); - } else if ('align-center' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); - } else if ('align-right' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); - } else if ('align-top' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); - } else if ('align-middle' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); - }else if ('align-bottom' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); - }else if ('distrib-hor' == type) { - this.api.DistributeHorizontally(); - }else if ('distrib-vert' == type) { - this.api.DistributeVertically(); - } - }, - - onBorderSize: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - value = borderSizeTransform.sizeByIndex(parseInt(value)); - - if (value < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - if (_borderColor == 'transparent') - stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); - else - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); - stroke.put_width(value * 25.4 / 72.0); - } - - shape.put_stroke(stroke); - - me.api.ShapeApply(shape); - me._initBorderColorView(); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-chart-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - onFillColor: function(palette, color) { - var me = this; - - if (me.api) { - var shape = new Asc.asc_CShapeProperty(), - fill = new Asc.asc_CShapeFill(); - - if (color == 'transparent') { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); - fill.put_fill(null); - } else { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); - fill.put_fill(new Asc.asc_CFillSolid()); - fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - shape.put_fill(fill); - - me.api.ShapeApply(shape); - } - }, - - onBorderColor: function (palette, color) { - var me = this; - - $('#edit-chart-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - _borderColor = color; - - if (me.api && _shapeObject && _shapeObject.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - if (_shapeObject.get_stroke().get_width() < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); - stroke.put_width(_shapeObject.get_stroke().get_width()); - stroke.asc_putPrstDash(_shapeObject.get_stroke().asc_getPrstDash()); - } - - shape.put_stroke(stroke); - - me.api.ShapeApply(shape); - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var charts = [], - shapes = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Chart) - charts.push(object); - else if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Shape && object.get_ObjectValue() && object.get_ObjectValue().get_FromChart()) { - shapes.push(object); - } - }); - - var getTopObject = function(array) { - if (array.length > 0) { - var object = array[array.length - 1]; // get top - return object.get_ObjectValue(); - } else { - return undefined; - } - }; - - this._chartObject = getTopObject(charts); - _shapeObject = getTopObject(shapes); - }, - - // Helpers - - _updateChartStyles: function(styles) { - }, - - _closeIfNeed: function () { - if (!this._isChartInStack()) { - PE.getController('EditContainer').hideModal(); - } - }, - - _isChartInStack: function () { - var chartExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Chart && object.get_ObjectValue()) { - chartExist = true; - return true; - } - }); - - return chartExist; - } - }; - })(), PE.Controllers.EditChart || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditContainer.js b/apps/presentationeditor/mobile/app/controller/edit/EditContainer.js deleted file mode 100644 index 16919b996..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditContainer.js +++ /dev/null @@ -1,392 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditContainer.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 9/27/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ -define([ - 'core', - 'jquery', - 'underscore', - 'backbone' -], function (core, $, _, Backbone) { - 'use strict'; - - PE.Controllers.EditContainer = Backbone.Controller.extend(_.extend((function() { - // Private - var _settings = []; - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - setApi: function(api) { - this.api = api; - this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this)); - }, - - onLaunch: function() { - // - }, - - showModal: function() { - var me = this, - mainView = PE.getController('Editor').getView('Editor').f7View, - isAndroid = Framework7.prototype.device.android === true; - - if ($$('.container-edit.modal-in').length > 0) { - // myApp.closeModal('.picker-modal.edit.modal-in'); - // me.fireEvent('editcontainer:error', [this, 'alreadyOpen']); - return; - } - - uiApp.closeModal(); - - me._showByStack(Common.SharedSettings.get('phone')); - - PE.getController('Toolbar').getView('Toolbar').hideSearch(); - }, - - hideModal: function () { - if (this.picker) { - uiApp.closeModal(this.picker); - } - }, - - _emptyEditController: function () { - var layout = - '
          ' + - '
          ' + - '

          Select object to edit

          ' + - '
          ' + - '
          '; - - return { - caption: this.textSettings, - layout: layout - } - }, - - _layoutEditorsByStack: function () { - var me = this, - editors = []; - - if (_settings.length < 1) { - editors.push(me._emptyEditController()); - } else { - if (_.contains(_settings, 'slide')) { - editors.push({ - caption: me.textSlide, - id: 'edit-slide', - layout: PE.getController('EditSlide').getView('EditSlide').rootLayout() - }) - } - if (_.contains(_settings, 'text')) { - editors.push({ - caption: me.textText, - id: 'edit-text', - layout: PE.getController('EditText').getView('EditText').rootLayout() - }) - } - if (_.contains(_settings, 'table')) { - editors.push({ - caption: me.textTable, - id: 'edit-table', - layout: PE.getController('EditTable').getView('EditTable').rootLayout() - }) - } - if (_.contains(_settings, 'shape')) { - editors.push({ - caption: me.textShape, - id: 'edit-shape', - layout: PE.getController('EditShape').getView('EditShape').rootLayout() - }) - } - if (_.contains(_settings, 'image')) { - editors.push({ - caption: me.textImage, - id: 'edit-image', - layout: PE.getController('EditImage').getView('EditImage').rootLayout() - }) - } - if (_.contains(_settings, 'chart')) { - editors.push({ - caption: me.textChart, - id: 'edit-chart', - layout: PE.getController('EditChart').getView('EditChart').rootLayout() - }) - } - if (_.contains(_settings, 'hyperlink')) { - editors.push({ - caption: me.textHyperlink, - id: 'edit-link', - layout: PE.getController('EditLink').getView('EditLink').rootLayout() - }) - } - } - - return editors; - }, - - _showByStack: function(isPhone) { - var me = this, - mainView = PE.getController('Editor').getView('Editor').f7View, - isAndroid = Framework7.prototype.device.android === true, - layoutEditors = me._layoutEditorsByStack(); - - if ($$('.container-edit.modal-in').length > 0) { - return; - } - - // Navigation bar - var $layoutNavbar = $( - '' - ); - - if (layoutEditors.length < 2) { - $layoutNavbar - .find('.center') - .removeClass('categories') - .html(layoutEditors.length>0 ? layoutEditors[0].caption: ''); - } else { - if (isAndroid) { - $layoutNavbar - .find('.center') - .append('
          '); - - _.each(layoutEditors, function (layout, index) { - $layoutNavbar - .find('.toolbar-inner') - .append( - '' + layout.caption + '' - ); - }); - $layoutNavbar - .find('.toolbar-inner') - .append(''); - } else { - $layoutNavbar - .find('.center') - .append('
          '); - - _.each(layoutEditors, function (layout, index) { - $layoutNavbar - .find('.buttons-row') - .append( - '' + layout.caption + '' - ); - }); - } - } - - - // Content - - var $layoutPages = $( - '
          ' + - '
          ' + - '
          ' + - '
          ' + - '
          ' + - '
          ' - ); - - _.each(layoutEditors, function (editor, index) { - $layoutPages.find('.tabs').append( - '
          ' + - '
          ' + - '
          ' + - '
          ' + - editor.layout + - '
          ' + - '
          ' + - '
          ' + - '
          ' - ); - }); - - if (isPhone) { - me.picker = $$(uiApp.pickerModal( - '
          ' + - '' + - '
          ' - )).on('opened', function () { - if (_.isFunction(me.api.asc_OnShowContextMenu)) { - me.api.asc_OnShowContextMenu() - } - }).on('close', function (e) { - mainView.showNavbar(); - }).on('closed', function () { - if (_.isFunction(me.api.asc_OnHideContextMenu)) { - me.api.asc_OnHideContextMenu() - } - }); - - mainView.hideNavbar(); - } else { - me.picker = uiApp.popover( - '
          ' + - '
          ' + - '
          ' + - '
          ' + - '' + - '
          ' + - '
          ', - $$('#toolbar-edit') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - - if (_.isFunction(me.api.asc_OnShowContextMenu)) { - me.api.asc_OnShowContextMenu() - } - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }).on('closed', function () { - if (_.isFunction(me.api.asc_OnHideContextMenu)) { - me.api.asc_OnHideContextMenu() - } - }); - } - - $('.container-edit .tab').single('show', function (e) { - Common.NotificationCenter.trigger('editcategory:show', e); - }); - - if (isAndroid) { - $$('.view.edit-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.edit-root-view .navbar').prependTo('.view.edit-root-view > .pages > .page'); - } - - me.rootView = uiApp.addView('.edit-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('editcontainer:show'); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _settings = []; - - var no_text = true; - _.each(objects, function(object) { - var type = object.get_ObjectType(), - objectValue = object.get_ObjectValue(); - - if (Asc.c_oAscTypeSelectElement.Paragraph == type) { - if ( !objectValue.get_Locked() ) - no_text = false; - } else if (Asc.c_oAscTypeSelectElement.Table == type) { - if ( !objectValue.get_Locked() ) { - _settings.push('table'); - no_text = false; - } - } else if (Asc.c_oAscTypeSelectElement.Slide == type) { - if ( !(objectValue.get_LockLayout() || objectValue.get_LockBackground() || objectValue.get_LockTransition() || objectValue.get_LockTiming() )) - _settings.push('slide'); - } else if (Asc.c_oAscTypeSelectElement.Image == type) { - if ( !objectValue.get_Locked() ) - _settings.push('image'); - } else if (Asc.c_oAscTypeSelectElement.Chart == type) { - if ( !objectValue.get_Locked() ) - _settings.push('chart'); - } else if (Asc.c_oAscTypeSelectElement.Shape == type && !objectValue.get_FromChart()) { - if ( !objectValue.get_Locked() ) { - _settings.push('shape'); - no_text = false; - } - } else if (Asc.c_oAscTypeSelectElement.Hyperlink == type) { - _settings.push('hyperlink'); - } - }); - if (!no_text && !_.contains(_settings, 'image')) - _settings.unshift('text'); - - // Exclude hyperlink if text is locked - if (_settings.indexOf('hyperlink') > -1 && _settings.indexOf('text')<0) { - _settings = _.without(_settings, 'hyperlink'); - } - - // Exclude shapes if chart exist - if (_settings.indexOf('chart') > -1) { - _settings = _.without(_settings, 'shape'); - } - - _settings = _.uniq(_settings); - }, - - textSettings: 'Settings', - textText: 'Text', - textTable: 'Table', - textShape: 'Shape', - textImage: 'Image', - textChart: 'Chart', - textHyperlink: 'Hyperlink', - textSlide: 'Slide' - - } - })(), PE.Controllers.EditContainer || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditImage.js b/apps/presentationeditor/mobile/app/controller/edit/EditImage.js deleted file mode 100644 index ae1fc78e7..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditImage.js +++ /dev/null @@ -1,251 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditImage.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/30/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/edit/EditImage', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - PE.Controllers.EditImage = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _imageObject = undefined, - _metricText = Common.Utils.Metric.getCurrentMetricName(); - - return { - models: [], - collections: [], - views: [ - 'EditImage' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditImage': { - 'page:show': this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditImage').render(); - }, - - initEvents: function () { - var me = this; - - $('#image-default').single('click', _.bind(me.onDefaulSize, me)); - $('#image-remove').single('click', _.bind(me.onRemoveImage, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('#edit-image-file').single('click', _.bind(me.onReplaceByFile, me)); - $('.edit-image-url-link .button, .edit-image-url-link .list-button').single('click', _.bind(me.onReplaceByUrl, me)); - - $('.image-reorder a').single('click', _.bind(me.onReorder, me)); - $('.image-align a').single('click', _.bind(me.onAlign, me)); - - // me.initSettings(pageId); - }, - - initSettings: function (pageId) { - }, - - // Public - - getImage: function () { - return _imageObject; - }, - - // Handlers - - onDefaulSize: function () { - var me = this; - - if (me.api) { - var imgsize = me.api.get_OriginalSizeImage(), - properties = new Asc.asc_CImgProperty(); - - properties.put_Width(imgsize.get_ImageWidth()); - properties.put_Height(imgsize.get_ImageHeight()); - properties.put_ResetCrop(true); - me.api.ImgApply(properties); - } - }, - - onRemoveImage: function () { - this.api.asc_Remove(); - PE.getController('EditContainer').hideModal(); - }, - - onReplaceByFile: function () { - this.api.ChangeImageFromFile(); - PE.getController('EditContainer').hideModal(); - }, - - onReplaceByUrl: function () { - var me = this, - $input = $('.edit-image-url-link input[type=url]'); - - if ($input) { - var value = ($input.val()).replace(/ /g, ''); - - if (!_.isEmpty(value)) { - if ((/((^https?)|(^ftp)):\/\/.+/i.test(value))) { - PE.getController('EditContainer').hideModal(); - _.defer(function () { - var image = new Asc.asc_CImgProperty(); - image.put_ImageUrl(value); - me.api.ImgApply(image); - }); - } else { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - } - } else { - uiApp.alert(me.textEmptyImgUrl, me.notcriticalErrorTitle); - } - } - }, - - onReorder: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - if ('all-up' == type) { - this.api.shapes_bringToFront(); - } else if ('all-down' == type) { - this.api.shapes_bringToBack(); - } else if ('move-up' == type) { - this.api.shapes_bringForward(); - } else if ('move-down' == type) { - this.api.shapes_bringBackward(); - } - }, - - onAlign: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - if ('align-left' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); - } else if ('align-center' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); - } else if ('align-right' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); - } else if ('align-top' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); - } else if ('align-middle' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); - }else if ('align-bottom' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); - }else if ('distrib-hor' == type) { - this.api.DistributeHorizontally(); - }else if ('distrib-vert' == type) { - this.api.DistributeVertically(); - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var images = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image && object.get_ObjectValue()) { - images.push(object); - } - }); - - if (images.length > 0) { - var object = images[images.length - 1]; // get top - _imageObject = object.get_ObjectValue(); - } else { - _imageObject = undefined; - } - }, - - // Helpers - - _closeIfNeed: function () { - if (!this._isImageInStack()) { - PE.getController('EditContainer').hideModal(); - } - }, - - _isImageInStack: function () { - var imageExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image && object.get_ObjectValue()) { - imageExist = true; - return true; - } - }); - - return imageExist; - }, - - textEmptyImgUrl: 'You need to specify image URL.', - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - } - })(), PE.Controllers.EditImage || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditLink.js b/apps/presentationeditor/mobile/app/controller/edit/EditLink.js deleted file mode 100644 index a35abe725..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditLink.js +++ /dev/null @@ -1,363 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditLink.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/06/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'presentationeditor/mobile/app/view/edit/EditLink' -], function (core) { - 'use strict'; - - PE.Controllers.EditLink = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _linkObject = undefined, - c_oHyperlinkType = { - InternalLink:0, - WebLink: 1 - }, - c_oSlideLink = { - Next: 0, - Previouse: 1, - Last: 2, - First: 3, - Num: 4 - }, - _linkType = c_oHyperlinkType.WebLink, - _slideLink = 0, - _slideNum = 0, - _slidesCount = 0; - - return { - models: [], - collections: [], - views: [ - 'EditLink' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - - this.addListeners({ - 'EditLink': { - 'page:show' : this.onPageShow - } - }); - - var me = this; - uiApp.onPageBack('editlink-type editlink-slidenumber', function (page) { - me.initSettings(); - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditLink').render(); - }, - - initEvents: function () { - var me = this; - - $('#edit-link-edit').single('click', _.bind(me.onEditLink, me)); - $('#edit-link-remove').single('click', _.bind(me.onRemoveLink, me)); - }, - - categoryShow: function (e) { - var $target = $(e.currentTarget); - - if ($target && $target.prop('id') === 'edit-link' && _linkObject) { - var url = _linkObject.get_Value(); - if (url===null || url===undefined || url=='' ) - _linkType = c_oHyperlinkType.WebLink; - else { - var indAction = url.indexOf("ppaction://hlink"); - if (0 == indAction) { - if (url == "ppaction://hlinkshowjump?jump=firstslide") { - _slideLink = 2; - } else if (url == "ppaction://hlinkshowjump?jump=lastslide") { - _slideLink = 3; - } - else if (url == "ppaction://hlinkshowjump?jump=nextslide") { - _slideLink = 0; - } - else if (url == "ppaction://hlinkshowjump?jump=previousslide") { - _slideLink = 1; - } - else { - _slideLink = 4; - _slidesCount = this.api.getCountPages(); - var mask = "ppaction://hlinksldjumpslide", - indSlide = url.indexOf(mask); - if (0 == indSlide) { - _slideNum = parseInt(url.substring(mask.length)); - if (_slideNum < 0) _slideNum = 0; - if (_slideNum >= _slidesCount) _slideNum = _slidesCount - 1; - } else - _slideNum = 0; - } - _linkType = c_oHyperlinkType.InternalLink; - } else { - _linkType = c_oHyperlinkType.WebLink; - } - } - - var text = _linkObject.get_Text(); - if (text !== false) { - $('#edit-link-display input').val((text !== null) ? text : this.textDefault); - $('#edit-link-display').toggleClass('disabled', text === null); - } - if (_linkType==c_oHyperlinkType.WebLink) { - var value = _linkObject.get_Value(); - $('#edit-link-url input').val(value ? [value.replace(new RegExp(" ", 'g'), "%20")] : ''); - } - $('#edit-link-tip input').val([_linkObject.get_ToolTip()]); - - this.initSettings(); - } - }, - - initSettings: function (pageId) { - var me = this; - - if (pageId == '#editlink-type') { - $('#page-editlink-type input').val([_linkType]); - } else if (pageId == '#editlink-slidenumber') { - _slidesCount = me.api.getCountPages(); - $('#page-editlink-slidenumber input').val([_slideLink]); - $('#editlink-slide-number .item-after label').text(_slideNum+1); - } else { - $('#edit-link-type .item-after').text((_linkType==c_oHyperlinkType.WebLink) ? me.textExternalLink : me.textInternalLink); - $('#edit-link-url')[(_linkType==c_oHyperlinkType.WebLink) ? 'show' : 'hide'](); - $('#edit-link-number')[(_linkType==c_oHyperlinkType.WebLink) ? 'hide' : 'show'](); - - if (_linkType==c_oHyperlinkType.WebLink) { - _.delay(function () { - $('.page[data-page=editlink-link] input[type=url]').focus(); - }, 1000); - } else { - var slidename = ''; - switch (_slideLink) { - case 0: - slidename = me.textNext; - break; - case 1: - slidename = me.textPrev; - break; - case 2: - slidename = me.textFirst; - break; - case 3: - slidename = me.textLast; - break; - case 4: - slidename = me.textSlide + ' ' + (_slideNum+1); - break; - } - $('#edit-link-number .item-after').text(slidename); - } - - $('#edit-link-edit').toggleClass('disabled', (_linkType==c_oHyperlinkType.WebLink) && _.isEmpty($('#edit-link-url input').val())); - $('#edit-link-url input[type=url]').single('input', _.bind(function (e) { - $('#edit-link-edit').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, me)); - - } - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('#page-editlink-type li').single('click', _.buffered(me.onLinkType, 100, me)); - $('#page-editlink-slidenumber li').single('click', _.buffered(me.onSlideLink, 100, me)); - $('#editlink-slide-number .button').single('click',_.buffered(me.onSlideNumber, 100, me)); - me.initSettings(pageId); - }, - - // Handlers - - onEditLink: function () { - var me = this, - display = $('#edit-link-display input').val(), - tip = $('#edit-link-tip input').val(), - props = new Asc.CHyperlinkProperty(), - def_display = ''; - - if (_linkType==c_oHyperlinkType.WebLink) { - var url = $('#edit-link-url input').val(), - urltype = me.api.asc_getUrlType($.trim(url)), - isEmail = (urltype == 2); - if (urltype < 1) { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - return; - } - - url = url.replace(/^\s+|\s+$/g,''); - if (! /(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url) ) - url = (isEmail ? 'mailto:' : 'http://' ) + url; - url = url.replace(new RegExp("%20",'g')," "); - - props.put_Value( url ); - props.put_ToolTip(tip); - def_display = url; - } else { - var url = "ppaction://hlink"; - var slidetip = ''; - switch (_slideLink) { - case 0: - url = url + "showjump?jump=nextslide"; - slidetip = this.textNext; - break; - case 1: - url = url + "showjump?jump=previousslide"; - slidetip = this.textPrev; - break; - case 2: - url = url + "showjump?jump=firstslide"; - slidetip = this.textFirst; - break; - case 3: - url = url + "showjump?jump=lastslide"; - slidetip = this.textLast; - break; - case 4: - url = url + "sldjumpslide" + _slideNum; - slidetip = this.textSlide + ' ' + (_slideNum+1); - break; - } - props.put_Value( url ); - props.put_ToolTip(_.isEmpty(tip) ? slidetip : tip); - def_display = slidetip; - } - - if (!$('#edit-link-display').hasClass('disabled')) { - props.put_Text(_.isEmpty(display) ? def_display : display); - } else - props.put_Text(null); - - me.api.change_Hyperlink(props); - - PE.getController('EditContainer').hideModal(); - }, - - onRemoveLink: function () { - this.api && this.api.remove_Hyperlink(); - PE.getController('EditContainer').hideModal(); - }, - - onLinkType: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - _linkType = parseFloat($target.prop('value')); - } - }, - - onSlideLink: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - _slideLink = parseFloat($target.prop('value')); - } - }, - - onSlideNumber: function (e) { - var $button = $(e.currentTarget), - slide = _slideNum; - - if ($button.hasClass('decrement')) { - slide = Math.max(0, --slide); - } else { - slide = Math.min(_slidesCount-1, ++slide); - } - _slideNum = slide; - $('#editlink-slide-number .item-after label').text(slide+1); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var links = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Hyperlink) { - links.push(object); - } - }); - - if (links.length > 0) { - var object = links[links.length - 1]; // get top - _linkObject = object.get_ObjectValue(); - } else { - _linkObject = undefined; - } - }, - - // Helpers - - _closeIfNeed: function () { - if (!this._isImageInStack()) { - PE.getController('EditContainer').hideModal(); - } - }, - - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - textDefault: 'Selected text', - textNext: 'Next Slide', - textPrev: 'Previous Slide', - textFirst: 'First Slide', - textLast: 'Last Slide', - textSlide: 'Slide', - textExternalLink: 'External Link', - textInternalLink: 'Slide in this Presentation', - notcriticalErrorTitle: 'Warning' - }; - })(), PE.Controllers.EditLink || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditShape.js b/apps/presentationeditor/mobile/app/controller/edit/EditShape.js deleted file mode 100644 index aa22af261..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditShape.js +++ /dev/null @@ -1,406 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditShape.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/25/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/edit/EditShape', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - PE.Controllers.EditShape = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _shapeObject = undefined, - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _borderColor = 'transparent'; - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditShape' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditShape': { - 'page:show': this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - onLaunch: function () { - this.createView('EditShape').render(); - }, - - initEvents: function () { - var me = this; - - $('#shape-remove').single('click', _.bind(me.onRemoveShape, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - $('.shape-reorder a').single('click', _.bind(me.onReorder, me)); - $('.shape-replace li').single('click', _.buffered(me.onReplace, 100, me)); - $('.shape-align a').single('click', _.bind(me.onAlign, me)); - - $('#edit-shape-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-shape-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - $('#edit-shape-effect input').single('change touchend', _.buffered(me.onOpacity, 100, me)); - $('#edit-shape-effect input').single('input', _.bind(me.onOpacityChanging, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - // me.api && me.api.UpdateInterfaceState(); - - if (_shapeObject) { - if (pageId == '#edit-shape-style' || pageId == '#edit-shape-style-nofill' || pageId == '#edit-shape-border-color-view') { - me._initStyleView(); - } else { - me.getView('EditShape').isShapeCanFill = _shapeObject.get_CanFill(); - } - } - }, - - _initStyleView: function () { - var me = this, - paletteFillColor = me.getView('EditShape').paletteFillColor, - paletteBorderColor = me.getView('EditShape').paletteBorderColor; - - // Init style border size - var borderSize = _shapeObject.get_stroke().get_width() * 72.0 / 25.4, - borderType = _shapeObject.get_stroke().get_type(); - $('#edit-shape-bordersize input').val([(borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize)]); - $('#edit-shape-bordersize .item-after').text(((borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize)) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - // Init style opacity - var transparent = _shapeObject.get_fill().asc_getTransparent(); - $('#edit-shape-effect input').val([transparent!==null && transparent!==undefined ? transparent / 2.55 : 100]); - $('#edit-shape-effect .item-after').text($('#edit-shape-effect input').val() + ' ' + "%"); - - paletteFillColor && paletteFillColor.on('select', _.bind(me.onFillColor, me)); - paletteBorderColor && paletteBorderColor.on('select', _.bind(me.onBorderColor, me)); - - var sdkColor, color; - - // Init fill color - var fill = _shapeObject.get_fill(), - fillType = fill.get_type(); - - color = 'transparent'; - - if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { - fill = fill.get_fill(); - sdkColor = fill.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - - paletteFillColor && paletteFillColor.select(color); - - // Init border color - me._initBorderColorView(); - }, - - _initBorderColorView: function () { - if (!_shapeObject) return; - - var me = this, - paletteBorderColor = me.getView('EditShape').paletteBorderColor, - stroke = _shapeObject.get_stroke(); - - var color = 'transparent'; - - if (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var sdkColor = stroke.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } - else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - _borderColor = color; - - paletteBorderColor && paletteBorderColor.select(color); - $('#edit-shape-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))) - }, - - // Public - - getShape: function () { - return _shapeObject; - }, - - // Handlers - - onRemoveShape: function () { - this.api.asc_Remove(); - PE.getController('EditContainer').hideModal(); - }, - - onReorder: function (e) { - }, - - onAlign: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - if ('align-left' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); - } else if ('align-center' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); - } else if ('align-right' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); - } else if ('align-top' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); - } else if ('align-middle' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); - }else if ('align-bottom' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); - }else if ('distrib-hor' == type) { - this.api.DistributeHorizontally(); - }else if ('distrib-vert' == type) { - this.api.DistributeVertically(); - } - }, - - onReplace: function (e) { - }, - - onBorderSize: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - value = borderSizeTransform.sizeByIndex(parseInt(value)); - - if (value < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - if (_borderColor == 'transparent') - stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); - else - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); - stroke.put_width(value * 25.4 / 72.0); - } - - shape.put_stroke(stroke); - - me.api.ShapeApply(shape); - me._initBorderColorView(); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-shape-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - onOpacity: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - fill = new Asc.asc_CShapeFill(), - shape = new Asc.asc_CShapeProperty(); - - fill.put_transparent(parseInt(value * 2.55)); - shape.put_fill(fill); - - me.api.ShapeApply(shape); - }, - - onOpacityChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-shape-effect .item-after').text($target.val() + ' %'); - }, - - onFillColor: function(palette, color) { - var me = this; - - if (me.api) { - var shape = new Asc.asc_CShapeProperty(), - fill = new Asc.asc_CShapeFill(); - - if (color == 'transparent') { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); - fill.put_fill(null); - } else { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); - fill.put_fill(new Asc.asc_CFillSolid()); - fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - shape.put_fill(fill); - - me.api.ShapeApply(shape); - } - }, - - onBorderColor: function (palette, color) { - var me = this; - - $('#edit-shape-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - _borderColor = color; - - if (me.api && _shapeObject && _shapeObject.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - if (_shapeObject.get_stroke().get_width() < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); - stroke.put_width(_shapeObject.get_stroke().get_width()); - stroke.asc_putPrstDash(_shapeObject.get_stroke().asc_getPrstDash()); - } - - shape.put_stroke(stroke); - - me.api.ShapeApply(shape); - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var shapes = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Shape) { - shapes.push(object); - } - }); - - if (shapes.length > 0) { - var object = shapes[shapes.length - 1]; // get top shape - _shapeObject = object.get_ObjectValue(); - this.getView('EditShape').isShapeCanFill = _shapeObject.get_CanFill(); - } else { - _shapeObject = undefined; - } - }, - - // Helpers - - _closeIfNeed: function () { - if (!this._isShapeInStack()) { - PE.getController('EditContainer').hideModal(); - } - }, - - _isShapeInStack: function () { - var shapeExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Shape) { - shapeExist = true; - return true; - } - }); - - return shapeExist; - } - }; - })(), PE.Controllers.EditShape || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditSlide.js b/apps/presentationeditor/mobile/app/controller/edit/EditSlide.js deleted file mode 100644 index eaceadccd..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditSlide.js +++ /dev/null @@ -1,413 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditSlide.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/07/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/edit/EditSlide', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - PE.Controllers.EditSlide = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _slideObject = undefined, - _slideLayoutIndex = -1, - _themeId = -1, - _effect = Asc.c_oAscSlideTransitionTypes.None, - _effectType = -1, - _effectDuration = 2000, - _effectDelay = 10000; - - return { - models: [], - collections: [], - views: [ - 'EditSlide' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('slidelayouts:load', _.bind(this.updateLayouts, this)); - - this.addListeners({ - 'EditSlide': { - 'page:show': this.onPageShow - } - }); - - var me = this; - uiApp.onPageBack('editslide-effect-type editslide-effect', function (page) { - me.initSettings('#edit-slide-transition'); - }); - this._themes = []; - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - me.api.asc_registerCallback('asc_onUpdateThemeIndex', _.bind(me.onApiUpdateThemeIndex, me)); - }, - - onLaunch: function () { - this.createView('EditSlide').render(); - }, - - initEvents: function () { - var me = this; - - $('#slide-remove').single('click', _.bind(me.onRemoveSlide, me)); - $('#slide-duplicate').single('click', _.bind(me.onDuplicateSlide, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - if (_slideObject) { - if (pageId == '#edit-slide-style') { - me._initStyleView(); - - var paletteFillColor = me.getView('EditSlide').paletteFillColor; - paletteFillColor && paletteFillColor.on('select', _.bind(me.onFillColor, me)); - - } else if (pageId == '#edit-slide-layout') { - $('.container-edit .slide-layout li').removeClass('active').single('click', _.buffered(me.onLayoutClick, 100, me)); - $('.container-edit .slide-layout li[data-type=' + _slideLayoutIndex + ']').addClass('active'); - } else if (pageId == '#edit-slide-theme') { - this.getView('EditSlide').renderThemes(); - - $('.container-edit .slide-theme .row div').removeClass('active').single('click', _.buffered(me.onThemeClick, 100, me)); - $('.container-edit .slide-theme div[data-type=' + _themeId + ']').addClass('active'); - } else if (pageId == '#edit-slide-transition') { - me._initTransitionView(); - $('#slide-apply-all').single('click', _.bind(me.onApplyAll, me)); - - $('#edit-slide-duration .button').single('click', _.bind(me.onDuration, me)); - $('#edit-slide-start-click input:checkbox').single('change', _.bind(me.onStartClick, me)); - - $('#edit-slide-delay input:checkbox').single('change', _.bind(me.onDelayCheck, me)); - $('#edit-slide-delay .item-content:nth-child(2) input').single('change touchend', _.buffered(me.onDelay, 100, me)); - $('#edit-slide-delay .item-content:nth-child(2) input').single('input', _.bind(me.onDelayChanging, me)); - } else if (pageId == '#editslide-effect') { - $('#page-editslide-effect input').val([_effect]); - $('#page-editslide-effect li').single('click', _.buffered(me.onEffectClick, 100, me)); - } else if (pageId == '#editslide-effect-type') { - me.getView('EditSlide').renderEffectTypes(); - $('#page-editslide-effect-type input').val([_effectType]); - $('#page-editslide-effect-type li').single('click', _.buffered(me.onEffectTypeClick, 100, me)); - } - } - }, - - _initStyleView: function () { - var me = this, - paletteFillColor = me.getView('EditSlide').paletteFillColor; - - var sdkColor, color; - - // Init fill color - var fill = _slideObject.get_background(), - fillType = fill.get_type(); - - color = 'transparent'; - - if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { - fill = fill.get_fill(); - sdkColor = fill.get_color(); - - if (sdkColor) { - if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; - } else { - color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); - } - } - } - - paletteFillColor && paletteFillColor.select(color); - }, - - _initTransitionView: function () { - var me = this; - - var transition = _slideObject.get_transition(); - if (transition) { - _effect = transition.get_TransitionType(); - me.getView('EditSlide').fillEffectTypes(_effect); - $('#edit-slide-effect .item-after').text(me.getView('EditSlide').getEffectName(_effect)); - $('#edit-slide-effect-type').toggleClass('disabled', _effect == Asc.c_oAscSlideTransitionTypes.None); - $('#edit-slide-duration').toggleClass('disabled', _effect == Asc.c_oAscSlideTransitionTypes.None); - - _effectType = transition.get_TransitionOption(); - $('#edit-slide-effect-type .item-after').text((_effect != Asc.c_oAscSlideTransitionTypes.None) ? me.getView('EditSlide').getEffectTypeName(_effectType) : ''); - - _effectDuration = transition.get_TransitionDuration(); - $('#edit-slide-duration .item-after label').text((_effectDuration!==null && _effectDuration!==undefined) ? (parseInt(_effectDuration/1000.) + ' ' + me.textSec) : ''); - - $('#edit-slide-start-click input:checkbox').prop('checked', !!transition.get_SlideAdvanceOnMouseClick()); - $('#edit-slide-delay input:checkbox').prop('checked', !!transition.get_SlideAdvanceAfter()); - $('#edit-slide-delay .item-content:nth-child(2)').toggleClass('disabled',!transition.get_SlideAdvanceAfter()); - - _effectDelay = transition.get_SlideAdvanceDuration(); - $('#edit-slide-delay .item-content:nth-child(2) .item-after').text((_effectDelay!==null && _effectDelay!==undefined) ? (parseInt(_effectDelay/1000.) + ' ' + me.textSec) : ''); - $('#edit-slide-delay .item-content:nth-child(2) input').val([(_effectDelay!==null && _effectDelay!==undefined) ? parseInt(_effectDelay/1000.) : 0]); - } - }, - - // Public - - getSlide: function () { - return _slideObject; - }, - - getThemes: function () { - return this._themes || []; - }, - - // Handlers - - onLayoutClick: function (e) { - }, - - onThemeClick: function (e) { - }, - - onRemoveSlide: function () { - this.api.DeleteSlide(); - PE.getController('EditContainer').hideModal(); - }, - - onDuplicateSlide: function () { - this.api.DublicateSlide(); - PE.getController('EditContainer').hideModal(); - }, - - onFillColor: function(palette, color) { - var me = this; - - if (me.api) { - var props = new Asc.CAscSlideProps(); - var fill = new Asc.asc_CShapeFill(); - - if (color == 'transparent') { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); - fill.put_fill(null); - } else { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); - fill.put_fill(new Asc.asc_CFillSolid()); - fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); - } - props.put_background(fill); - me.api.SetSlideProps(props); - } - }, - - updateLayouts: function(layouts){ - this.getView('EditSlide').updateLayouts(); - $('.container-edit .slide-layout li').single('click', _.buffered(this.onLayoutClick, 100, this)); - $('.container-edit .slide-layout li[data-type=' + _slideLayoutIndex + ']').addClass('active'); - }, - - onEffectClick: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - _effect = parseFloat($target.prop('value')); - _effectType = this.getView('EditSlide').fillEffectTypes(_effect); - - var props = new Asc.CAscSlideProps(), - transition = new Asc.CAscSlideTransition(); - transition.put_TransitionType(_effect); - transition.put_TransitionOption(_effectType); - props.put_transition(transition); - this.api.SetSlideProps(props); - } - }, - - onEffectTypeClick: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - _effectType = parseFloat($target.prop('value')); - - var props = new Asc.CAscSlideProps(), - transition = new Asc.CAscSlideTransition(); - transition.put_TransitionType(_effect); - transition.put_TransitionOption(_effectType); - props.put_transition(transition); - this.api.SetSlideProps(props); - } - }, - - onDuration: function (e) { - var $button = $(e.currentTarget), - duration = parseInt(_effectDuration/1000); - - if ($button.hasClass('decrement')) { - duration = Math.max(0, --duration); - } else { - duration = Math.min(300, ++duration); - } - _effectDuration = duration * 1000; - $('#edit-slide-duration .item-after label').text(duration + ' ' + this.textSec); - - var props = new Asc.CAscSlideProps(), - transition = new Asc.CAscSlideTransition(); - transition.put_TransitionDuration(_effectDuration); - props.put_transition(transition); - this.api.SetSlideProps(props); - }, - - onStartClick: function (e) { - var $checkbox = $(e.currentTarget); - - var props = new Asc.CAscSlideProps(), - transition = new Asc.CAscSlideTransition(); - transition.put_SlideAdvanceOnMouseClick($checkbox.is(':checked')); - props.put_transition(transition); - this.api.SetSlideProps(props); - }, - - onDelayCheck: function (e) { - var $checkbox = $(e.currentTarget); - - $('#edit-slide-delay .item-content:nth-child(2)').toggleClass('disabled',!$checkbox.is(':checked')); - - var props = new Asc.CAscSlideProps(), - transition = new Asc.CAscSlideTransition(); - transition.put_SlideAdvanceAfter($checkbox.is(':checked')); - transition.put_SlideAdvanceDuration(_effectDelay); - props.put_transition(transition); - this.api.SetSlideProps(props); - }, - - onDelay: function (e) { - var $target = $(e.currentTarget), - delay = $target.val(); - - _effectDelay = delay * 1000; - $('#edit-slide-delay .item-content:nth-child(2) .item-after').text(delay + ' ' + this.textSec); - - var props = new Asc.CAscSlideProps(), - transition = new Asc.CAscSlideTransition(); - transition.put_SlideAdvanceDuration(_effectDelay); - props.put_transition(transition); - this.api.SetSlideProps(props); - }, - - onDelayChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-slide-delay .item-content:nth-child(2) .item-after').text($target.val() + ' ' + this.textSec); - }, - - onApplyAll: function (e) { - this.api.SlideTransitionApplyToAll(); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var slides = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Slide) { - slides.push(object); - } - }); - - if (slides.length > 0) { - var object = slides[slides.length - 1]; // get top slide - _slideObject = object.get_ObjectValue(); - _slideLayoutIndex = _slideObject.get_LayoutIndex(); - if ($('.container-edit .slide-layout').length > 0) { - $('.container-edit .slide-layout li').removeClass('active'); - $('.container-edit .slide-layout li[data-type=' + _slideLayoutIndex + ']').addClass('active'); - } - } else { - _slideObject = undefined; - } - }, - - onApiUpdateThemeIndex: function(themeId) { - _themeId = themeId; - $('.container-edit .slide-theme .row div').removeClass('active'); - $('.container-edit .slide-theme div[data-type=' + _themeId + ']').addClass('active'); - }, - - // Helpers - - _closeIfNeed: function () { - if (!this._isSlideInStack()) { - PE.getController('EditContainer').hideModal(); - } - }, - - _isSlideInStack: function () { - var slideExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Slide) { - slideExist = true; - return true; - } - }); - - return slideExist; - }, - - textSec: 's' - }; - })(), PE.Controllers.EditSlide || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditTable.js b/apps/presentationeditor/mobile/app/controller/edit/EditTable.js deleted file mode 100644 index 280165d27..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditTable.js +++ /dev/null @@ -1,544 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditTable.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/30/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/edit/EditTable', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - PE.Controllers.EditTable = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _tableObject = undefined, - _tableLook = {}, - _cellBorders = undefined, - _cellBorderColor = '000000', - _cellBorderWidth = 0.5; - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index; - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditTable' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditTable': { - 'page:show' : this.onPageShow - } - }); - - var me = this; - uiApp.onPageBack('edit-table-style-options', function (page) { - $('.dataview.table-styles .row div').single('click', _.bind(me.onStyleClick, me)); - me.initSettings('#edit-table-style'); - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('EditTable').render(); - }, - - initEvents: function () { - var me = this; - - $('#table-options-margins input').single('change touchend', _.buffered(me.onOptionMargin, 100, me)); - $('#table-options-margins input').single('input', _.bind(me.onOptionMarginChanging, me)); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this, - paletteFillColor = me.getView('EditTable').paletteFillColor, - paletteBorderColor = me.getView('EditTable').paletteBorderColor; - - $('#table-options-header-row input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 0)); - $('#table-options-total-row input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 1)); - $('#table-options-banded-row input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 2)); - $('#table-options-first-column input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 3)); - $('#table-options-last-column input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 4)); - $('#table-options-banded-column input:checkbox').single('change', _.bind(me.onCheckTemplateChange, me, 5)); - - $('#edit-table-bordertypes a').single('click', _.bind(me.onBorderTypeClick, me)); - - $('.dataview.table-styles .row div').single('click', _.bind(me.onStyleClick, me)); - $('#edit-table-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-table-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - - paletteFillColor && paletteFillColor.on('select', _.bind(me.onFillColor, me)); - paletteBorderColor && paletteBorderColor.on('select', _.bind(me.onBorderColor, me)); - - $('.table-reorder a').single('click', _.bind(me.onReorder, me)); - $('.table-align a').single('click', _.bind(me.onAlign, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - if (_tableObject) { - if (pageId == "#edit-table-style" || pageId == '#edit-table-border-color-view') { - me._initStyleView(); - } else if (pageId == '#edit-table-style-options-view') { - me._initStyleOptionsView(); - } else - me._initTableOptionsView(); - } - }, - - _initStyleOptionsView: function() { - $('#table-options-header-row input').prop('checked', _tableLook.get_FirstRow()); - $('#table-options-total-row input').prop('checked', _tableLook.get_LastRow()); - $('#table-options-banded-row input').prop('checked', _tableLook.get_BandHor()); - $('#table-options-first-column input').prop('checked', _tableLook.get_FirstCol()); - $('#table-options-last-column input').prop('checked', _tableLook.get_LastCol()); - $('#table-options-banded-column input').prop('checked', _tableLook.get_BandVer()); - }, - - _initTableOptionsView: function() { - var margins = _tableObject.get_CellMargins(); - if (margins) { - var distance = Common.Utils.Metric.fnRecalcFromMM(margins.get_Left()); - $('#table-options-margins input').val(distance); - $('#table-options-margins .item-after').text(distance + ' ' + _metricText); - } - }, - - _initStyleView: function() { - var me = this; - - /** - * Style - */ - - var styleId = _tableObject.get_TableStyle(); - $('#edit-table-styles .table-styles div').removeClass('active'); - $('#edit-table-styles .table-styles div[data-type=' + styleId + ']').addClass('active'); - - /** - * Fill - */ - - var background = _tableObject.get_CellsBackground(), - fillColor = 'transparent'; - - if (background) { - if (background.get_Value()==0) { - var color = background.get_Color(); - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - fillColor = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value()}; - } else { - fillColor = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } - } - } - - var palette = me.getView('EditTable').paletteFillColor; - - if (palette) { - palette.select(fillColor); - } - - /** - * Border - */ - - // if (_.isUndefined(_cellBorderColor) || _.isUndefined(_cellBorderWidth)) { - // _cellBorders = _tableObject.get_CellBorders(); - // - // _.some([ - // _cellBorders.get_Left(), - // _cellBorders.get_Top(), - // _cellBorders.get_Right(), - // _cellBorders.get_Bottom(), - // _cellBorders.get_InsideV(), - // _cellBorders.get_InsideH() - // ], function (border) { - // if (border.get_Value() > 0) { - // var borderColor = border.get_Color(); - // - // if (borderColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - // borderColor = { - // color: Common.Utils.ThemeColor.getHexColor(borderColor.get_r(), borderColor.get_g(), borderColor.get_b()), - // effectValue: borderColor.get_value() - // }; - // } else { - // borderColor = Common.Utils.ThemeColor.getHexColor(borderColor.get_r(), borderColor.get_g(), borderColor.get_b()); - // } - // - // _cellBorderWidth = border.get_Size(); - // _cellBorderColor = borderColor; - // - // return true; - // } - // }); - // } - - $('#edit-table-bordersize input').val([borderSizeTransform.indexSizeByValue(_cellBorderWidth)]); - $('#edit-table-bordersize .item-after').text(borderSizeTransform.sizeByValue(_cellBorderWidth) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - var borderPalette = me.getView('EditTable').paletteBorderColor; - - if (borderPalette) { - borderPalette.select(_cellBorderColor); - } - - $('#edit-table-bordercolor .color-preview').css('background-color', ('transparent' == _cellBorderColor) ? _cellBorderColor : ('#' + (_.isObject(_cellBorderColor) ? _cellBorderColor.color : _cellBorderColor))); - }, - - _updateBordersStyle: function(border) { - _cellBorders = new Asc.CBorders(); - var updateBorders = _cellBorders; - - var visible = (border != ''); - - if (border.indexOf('l') > -1 || !visible) { - if (updateBorders.get_Left()===null || updateBorders.get_Left()===undefined) - updateBorders.put_Left(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Left(), visible); - } - if (border.indexOf('t') > -1 || !visible) { - if (updateBorders.get_Top()===null || updateBorders.get_Top()===undefined) - updateBorders.put_Top(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Top(), visible); - } - if (border.indexOf('r') > -1 || !visible) { - if (updateBorders.get_Right()===null || updateBorders.get_Right()===undefined) - updateBorders.put_Right(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Right(), visible); - } - if (border.indexOf('b') > -1 || !visible) { - if (updateBorders.get_Bottom()===null || updateBorders.get_Bottom()===undefined) - updateBorders.put_Bottom(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_Bottom(), visible); - } - if (border.indexOf('c') > -1 || !visible) { - if (updateBorders.get_InsideV()===null || updateBorders.get_InsideV()===undefined) - updateBorders.put_InsideV(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_InsideV(), visible); - } - if (border.indexOf('m') > -1 || !visible) { - if (updateBorders.get_InsideH()===null || updateBorders.get_InsideH()===undefined) - updateBorders.put_InsideH(new Asc.asc_CTextBorder()); - this._updateBorderStyle (updateBorders.get_InsideH(), visible); - } - }, - - _updateBorderStyle: function(border, visible) { - if (_.isNull(border)) { - border = new Asc.asc_CTextBorder(); - } - - if (visible && _cellBorderWidth > 0){ - var size = parseFloat(_cellBorderWidth); - border.put_Value(1); - border.put_Size(size * 25.4 / 72.0); - var color = Common.Utils.ThemeColor.getRgbColor(_cellBorderColor); - border.put_Color(color); - } - else { - border.put_Value(0); - } - }, - - // Public - - getTable: function() { - return _tableObject; - }, - - // Handlers - - onOptionMargin: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.CTableProp(), - margins = new Asc.CMargins(); - - $('#table-options-margins .item-after').text(value + ' ' + _metricText); - - value = Common.Utils.Metric.fnRecalcToMM(value); - - margins.put_Top(value); - margins.put_Right(value); - margins.put_Bottom(value); - margins.put_Left(value); - margins.put_Flag(2); - - properties.put_CellMargins(margins); - - me.api.tblApply(properties); - }, - - onOptionMarginChanging: function (e) { - var $target = $(e.currentTarget); - $('#table-options-margins .item-after').text($target.val() + ' ' + _metricText); - }, - - onCheckTemplateChange: function(type, e) { - if (this.api) { - var properties = new Asc.CTableProp(); - - switch (type) { - case 0: - _tableLook.put_FirstRow($('#table-options-header-row input').is(':checked')); - break; - case 1: - _tableLook.put_LastRow($('#table-options-total-row input').is(':checked')); - break; - case 2: - _tableLook.put_BandHor($('#table-options-banded-row input').is(':checked')); - break; - case 3: - _tableLook.put_FirstCol($('#table-options-first-column input').is(':checked')); - break; - case 4: - _tableLook.put_LastCol($('#table-options-last-column input').is(':checked')); - break; - case 5: - _tableLook.put_BandVer($('#table-options-banded-column input').is(':checked')); - break; - } - - properties.put_TableLook(_tableLook); - this.api.tblApply(properties); - } - }, - - onBorderTypeClick: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'); - - this._updateBordersStyle(type); - - if (me.api) { - var properties = new Asc.CTableProp(); - _cellBorders = _.isUndefined(_cellBorders) ? new Asc.CBorders() : _cellBorders; - - properties.put_CellBorders(_cellBorders); - properties.put_CellSelect(true); - - me.api.tblApply(properties); - } - }, - - onFillColor: function(palette, color) { - if (this.api) { - var properties = new Asc.CTableProp(), - background = new Asc.CBackground(); - - properties.put_CellsBackground(background); - - if ('transparent' == color) { - background.put_Value(1); - } else { - background.put_Value(0); - background.put_Color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - properties.put_CellSelect(true); - - this.api.tblApply(properties); - } - }, - - onBorderColor: function (palette, color) { - _cellBorderColor = color; - $('#edit-table-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - }, - - onStyleClick: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'), - properties = new Asc.CTableProp(); - - $('#edit-table-styles .table-styles div').removeClass('active'); - $target.addClass('active'); - - properties.put_TableStyle(type.toString()); - me.api.tblApply(properties); - }, - - onBorderSize: function (e) { - var $target = $(e.currentTarget), - value = $target.val(); - - _cellBorderWidth = borderSizeTransform.sizeByIndex(parseInt(value)); - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-table-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - onReorder: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - if ('all-up' == type) { - this.api.shapes_bringToFront(); - } else if ('all-down' == type) { - this.api.shapes_bringToBack(); - } else if ('move-up' == type) { - this.api.shapes_bringForward(); - } else if ('move-down' == type) { - this.api.shapes_bringBackward(); - } - }, - - onAlign: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - if ('align-left' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); - } else if ('align-center' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); - } else if ('align-right' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); - } else if ('align-top' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); - } else if ('align-middle' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); - }else if ('align-bottom' == type) { - this.api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); - }else if ('distrib-hor' == type) { - this.api.DistributeHorizontally(); - }else if ('distrib-vert' == type) { - this.api.DistributeVertically(); - } - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var tables = []; - - _.each(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Table) { - tables.push(object); - } - }); - - if (tables.length > 0) { - var object = tables[tables.length - 1]; // get top table - - _tableObject = object.get_ObjectValue(); - _tableLook = _tableObject.get_TableLook(); - } else { - _tableObject = undefined; - } - }, - - // Helpers - - _closeIfNeed: function () { - if (!this._isTableInStack()) { - PE.getController('EditContainer').hideModal(); - } - }, - - _isTableInStack: function () { - var tableExist = false; - - _.some(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Table) { - tableExist = true; - return true; - } - }); - - return tableExist; - } - } - })(), PE.Controllers.EditTable || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditText.js b/apps/presentationeditor/mobile/app/controller/edit/EditText.js deleted file mode 100644 index 116758067..000000000 --- a/apps/presentationeditor/mobile/app/controller/edit/EditText.js +++ /dev/null @@ -1,622 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditText.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 10/4/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'presentationeditor/mobile/app/view/edit/EditText', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette' -], function (core, view, $, _, Backbone) { - 'use strict'; - - PE.Controllers.EditText = Backbone.Controller.extend(_.extend((function() { - var _stack = [], - _paragraphObject = undefined, - _fontInfo = {}, - _paragraphInfo = {}, - metricText = Common.Utils.Metric.getCurrentMetricName(); - - return { - models: [], - collections: [], - views: [ - 'EditText' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - - this.addListeners({ - 'EditText': { - 'page:show' : this.onPageShow, - 'font:click': this.onFontClick - } - }); - this._fontsArray = []; - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('EditText').render(); - }, - - initEvents: function () { - var me = this; - $('#font-bold').single('click', _.bind(me.onBold, me)); - $('#font-italic').single('click', _.bind(me.onItalic, me)); - $('#font-underline').single('click', _.bind(me.onUnderline, me)); - $('#font-strikethrough').single('click', _.bind(me.onStrikethrough, me)); - - $('#paragraph-align .button').single('click', _.bind(me.onParagraphAlign, me)); - $('#paragraph-valign .button').single('click', _.bind(me.onParagraphVAlign, me)); - $('#font-moveleft, #font-moveright').single('click', _.bind(me.onParagraphMove, me)); - - $('#paragraph-distance-before .button').single('click', _.bind(me.onDistanceBefore, me)); - $('#paragraph-distance-after .button').single('click', _.bind(me.onDistanceAfter, me)); - - // me.initSettings(); - }, - - categoryShow: function (e) { - var $target = $(e.currentTarget); - - if ($target && $target.prop('id') === 'edit-text') { - this.initSettings(); - } - }, - - onPageShow: function (view, pageId) { - var me = this, - paletteTextColor = me.getView('EditText').paletteTextColor; - - $('#text-additional li').single('click', _.buffered(me.onAdditional, 100, me)); - $('#page-text-linespacing li').single('click', _.buffered(me.onLineSpacing, 100, me)); - $('#font-size .button').single('click', _.bind(me.onFontSize, me)); - $('#letter-spacing .button').single('click', _.bind(me.onLetterSpacing, me)); - - $('.dataview.bullets li').single('click', _.buffered(me.onBullet, 100, me)); - $('.dataview.numbers li').single('click', _.buffered(me.onNumber, 100, me)); - - paletteTextColor && paletteTextColor.on('select', _.bind(me.onTextColor, me)); - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - - me.api && me.api.UpdateInterfaceState(); // TODO: refactor me - - if (_paragraphObject) { - if (pageId == '#edit-text-additional') { - var $inputStrikethrough = $('#text-additional input[name=text-strikethrough]'); - var $inputTextCaps = $('#text-additional input[name=text-caps]'); - - _paragraphObject.get_Strikeout() && $inputStrikethrough.val(['strikethrough']).prop('prevValue', 'strikethrough'); - _paragraphObject.get_DStrikeout() && $inputStrikethrough.val(['double-strikethrough']).prop('prevValue', 'double-strikethrough'); - - _paragraphObject.get_SmallCaps() && $inputTextCaps.val(['small']).prop('prevValue', 'small'); - _paragraphObject.get_AllCaps() && $inputTextCaps.val(['all']).prop('prevValue', 'all'); - - _fontInfo.letterSpacing = (_paragraphObject.get_TextSpacing()===null || _paragraphObject.get_TextSpacing()===undefined) ? _paragraphObject.get_TextSpacing() : Common.Utils.Metric.fnRecalcFromMM(_paragraphObject.get_TextSpacing()); - $('#letter-spacing .item-after label').text((_fontInfo.letterSpacing===null || _fontInfo.letterSpacing===undefined) ? '' : _fontInfo.letterSpacing + ' ' + Common.Utils.Metric.getCurrentMetricName()); - } - - _paragraphInfo.spaceBefore = _paragraphObject.get_Spacing().get_Before() < 0 ? _paragraphObject.get_Spacing().get_Before() : Common.Utils.Metric.fnRecalcFromMM(_paragraphObject.get_Spacing().get_Before()); - _paragraphInfo.spaceAfter = _paragraphObject.get_Spacing().get_After() < 0 ? _paragraphObject.get_Spacing().get_After() : Common.Utils.Metric.fnRecalcFromMM(_paragraphObject.get_Spacing().get_After()); - $('#paragraph-distance-before .item-after label').text(_paragraphInfo.spaceBefore < 0 ? 'Auto' : _paragraphInfo.spaceBefore + ' ' + metricText); - $('#paragraph-distance-after .item-after label').text(_paragraphInfo.spaceAfter < 0 ? 'Auto' : _paragraphInfo.spaceAfter + ' ' + metricText); - } - }, - - // Public - - getFonts: function() { - return this._fontsArray; - }, - - getStack: function() { - return _stack; - }, - - getFontInfo: function () { - return _fontInfo; - }, - - getParagraph: function () { - return _paragraphObject; - }, - - // Handlers - - onBold: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrBold(pressed); - } - }, - - onItalic: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrItalic(pressed); - } - }, - - onUnderline: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrUnderline(pressed); - } - }, - - onStrikethrough: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.put_TextPrStrikeout(pressed); - } - }, - - onAdditionalStrikethrough : function ($target) { - var value = $target.prop('value'), - checked = $target.prop('checked'), - paragraphProps = new Asc.asc_CParagraphProperty(); - - if ('strikethrough' == value) { - paragraphProps.put_DStrikeout(false); - paragraphProps.put_Strikeout(checked); - } else { - paragraphProps.put_DStrikeout(checked); - paragraphProps.put_Strikeout(false); - } - this.api.paraApply(paragraphProps); - }, - - onAdditionalScript : function ($target) { - var value = $target.prop('value'), - checked = $target.prop('checked'); - - if ('superscript' == value) { - this.api.put_TextPrBaseline(checked ? 1 : 0); - } else { - this.api.put_TextPrBaseline(checked ? 2 : 0); - } - }, - - onAdditionalCaps : function ($target) { - var value = $target.prop('value'), - checked = $target.prop('checked'), - paragraphProps = new Asc.asc_CParagraphProperty(); - - if ('small' == value) { - paragraphProps.put_AllCaps(false); - paragraphProps.put_SmallCaps(checked); - } else { - paragraphProps.put_AllCaps(checked); - paragraphProps.put_SmallCaps(false); - } - - this.api.paraApply(paragraphProps); - }, - - onAdditional: function(e) { - var me = this, - $target = $(e.currentTarget).find('input'), - prevValue = $target.prop('prevValue'); - - if (prevValue == $target.prop('value')) { - $target.prop('checked', false); - prevValue = null; - } else { - $target.prop('checked', true); - prevValue = $target.prop('value'); - } - - $('#page-text-additional input[name="'+ $target.prop('name') +'"]').prop('prevValue', prevValue); - - var radioName = $target.prop('name'); - if ('text-strikethrough' == radioName) { - me.onAdditionalStrikethrough($target); - } else if ('text-script' == radioName) { - me.onAdditionalScript($target); - } else if ('text-caps' == radioName){ - me.onAdditionalCaps($target); - } - }, - - onFontClick: function (view, e) { - var $item = $(e.currentTarget).find('input'); - - if ($item) { - this.api.put_TextPrFontName($item.prop('value')); - } - }, - - onFontSize: function (e) { - var $button = $(e.currentTarget), - fontSize = _fontInfo.size; - - if ($button.hasClass('decrement')) { - _.isUndefined(fontSize) || fontSize=='' ? this.api.FontSizeOut() : fontSize = Math.max(1, --fontSize); - } else { - _.isUndefined(fontSize) || fontSize=='' ? this.api.FontSizeIn() : fontSize = Math.min(100, ++fontSize); - } - - if (!(_.isUndefined(fontSize) || fontSize=='')) { - this.api.put_TextPrFontSize(fontSize); - } - }, - - onLetterSpacing: function (e) { - var $button = $(e.currentTarget), - spacing = _fontInfo.letterSpacing; - - if ($button.hasClass('decrement')) { - spacing = (spacing===null || spacing===undefined) ? 0 : Math.max(-100, --spacing); - } else { - spacing = (spacing===null || spacing===undefined) ? 0 : Math.min(100, ++spacing); - } - _fontInfo.letterSpacing = spacing; - - $('#letter-spacing .item-after label').text(spacing + ' ' + Common.Utils.Metric.getCurrentMetricName()); - - var properties = new Asc.asc_CParagraphProperty(); - properties.put_TextSpacing(Common.Utils.Metric.fnRecalcToMM(spacing)); - - this.api.paraApply(properties); - }, - - onTextColor: function (palette, color) { - // $('.btn-color-value-line', this.toolbar.btnFontColor.cmpEl).css('background-color', '#' + clr); - - if (this.api) { - this.api.put_TextColor(Common.Utils.ThemeColor.getRgbColor(color)); - } - }, - - onParagraphAlign: function (e) { - var $target = $(e.currentTarget); - - if ($target) { - var id = $target.attr('id'), - type = 1; - - if ('font-just' == id) { - type = 3; - } else if ('font-right' == id) { - type = 0; - } else if ('font-center' == id) { - type = 2; - } - - $('#paragraph-align .button').removeClass('active'); - $target.addClass('active'); - - this.api.put_PrAlign(type); - } - }, - - onParagraphVAlign: function (e) { - var $target = $(e.currentTarget); - - if ($target) { - var id = $target.attr('id'), - type = Asc.c_oAscVAlign.Bottom; - - if ('font-top' == id) { - type = Asc.c_oAscVAlign.Top; - } else if ('font-middle' == id) { - type = Asc.c_oAscVAlign.Center; - } - - $('#paragraph-align .button').removeClass('active'); - $target.addClass('active'); - - this.api.setVerticalAlign(type); - } - }, - - onParagraphMove: function (e) { - var $target = $(e.currentTarget); - - if ($target && this.api) { - var id = $target.attr('id'); - - if ('font-moveleft' == id) { - this.api.DecreaseIndent(); - } else { - this.api.IncreaseIndent(); - } - } - }, - - onLineSpacing: function (e) { - var $target = $(e.currentTarget).find('input'); - - if ($target && this.api) { - var value = parseFloat($target.prop('value')), - LINERULE_AUTO = 1; - - this.api.put_PrLineSpacing(LINERULE_AUTO, value); - } - }, - - onBullet: function (e) { - var $bullet = $(e.currentTarget), - type = $bullet.data('type'); - - $('.dataview.bullets li').removeClass('active'); - $bullet.addClass('active'); - - this.api.put_ListType(0, parseInt(type)); - }, - - onNumber: function (e) { - var $number = $(e.currentTarget), - type = $number.data('type'); - - $('.dataview.numbers li').removeClass('active'); - $number.addClass('active'); - - this.api.put_ListType(1, parseInt(type)); - }, - - onDistanceBefore: function (e) { - var $button = $(e.currentTarget), - distance = _paragraphInfo.spaceBefore, - step, - maxValue; - - if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { - step = 1; - } else { - step = 0.01; - } - - maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); - - if ($button.hasClass('decrement')) { - distance = Math.max(-1, distance - step); - } else { - distance = (distance<0) ? 0 : Math.min(maxValue, distance + step); - } - - var distanceFix = parseFloat(distance.toFixed(2)); - - _paragraphInfo.spaceBefore = distance; - - $('#paragraph-distance-before .item-after label').text(_paragraphInfo.spaceBefore < 0 ? 'Auto' : distanceFix + ' ' + metricText); - - this.api.put_LineSpacingBeforeAfter(0, (_paragraphInfo.spaceBefore < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(_paragraphInfo.spaceBefore)); - }, - - onDistanceAfter: function (e) { - var $button = $(e.currentTarget), - distance = _paragraphInfo.spaceAfter, - step, - maxValue; - - if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { - step = 1; - } else { - step = 0.01; - } - - maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); - - if ($button.hasClass('decrement')) { - distance = Math.max(-1, distance - step); - } else { - distance = (distance<0) ? 0 : Math.min(maxValue, distance + step); - } - - var distanceFix = parseFloat(distance.toFixed(2)); - - _paragraphInfo.spaceAfter = distance; - - $('#paragraph-distance-after .item-after label').text(_paragraphInfo.spaceAfter < 0 ? 'Auto' : distanceFix + ' ' + metricText); - this.api.put_LineSpacingBeforeAfter(1, (_paragraphInfo.spaceAfter < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(_paragraphInfo.spaceAfter)); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - var paragraphs = []; - - _.each(_stack, function(object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Paragraph) { - paragraphs.push(object); - } - }); - - if (paragraphs.length > 0) { - var object = paragraphs[paragraphs.length - 1]; // get top - _paragraphObject = object.get_ObjectValue(); - } else { - _paragraphObject = undefined; - } - $('#edit-text div.edit-paragraph')[(paragraphs.length > 0) ? 'show' : 'hide'](); - }, - - onApiChangeFont: function(font) { - var name = (_.isFunction(font.get_Name) ? font.get_Name() : font.asc_getName()) || this.textFonts; - _fontInfo.name = name; - - $('#font-fonts .item-title').html(name); - }, - - onApiFontSize: function(size) { - _fontInfo.size = size; - var displaySize = _fontInfo.size; - - _.isUndefined(displaySize) || displaySize=='' ? displaySize = this.textAuto : displaySize = displaySize + ' ' + this.textPt; - - $('#font-fonts .item-after span:first-child').html(displaySize); - $('#font-size .item-after label').html(displaySize); - }, - - onApiBold: function(on) { - $('#font-bold').toggleClass('active', on); - }, - - onApiItalic: function(on) { - $('#font-italic').toggleClass('active', on); - }, - - onApiUnderline: function(on) { - $('#font-underline').toggleClass('active', on); - }, - - onApiStrikeout: function(on) { - $('#font-strikethrough').toggleClass('active', on); - }, - - onApiVerticalAlign: function(typeBaseline) { - var value; - - typeBaseline==1 && (value = 'superscript'); - typeBaseline==2 && (value = 'subscript'); - - if (!_.isUndefined(value)) { - $('#text-additional input[name=text-script]').val([value]).prop('prevValue', value); - } - }, - - onApiTextColor: function (color) { - var me = this; - - if (color.get_auto()) { - // on auto - } else { - var palette = me.getView('EditText').paletteTextColor, - clr; - - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - clr = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - } - } else { - clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - - $('#font-color .color-preview').css('background-color', '#' + (_.isObject(clr) ? clr.color : clr)); - } - - if (palette) { - palette.select(clr); - } - } - }, - - onApiBullets: function(data) { - var type = data.get_ListType(), - subtype = data.get_ListSubType(); - $('.dataview.bullets li').removeClass('active'); - $('.dataview.numbers li').removeClass('active'); - switch (type) { - case 0: - $('.dataview.bullets li[data-type=' + subtype + ']').addClass('active'); - break; - case 1: - $('.dataview.numbers li[data-type=' + subtype + ']').addClass('active'); - break; - default: - $('.dataview.bullets li[data-type="-1"]').addClass('active'); - $('.dataview.numbers li[data-type="-1"]').addClass('active'); - } - }, - - onApiParagraphAlign: function(align) { - $('#font-right').toggleClass('active', align===0); - $('#font-left').toggleClass('active', align===1); - $('#font-center').toggleClass('active', align===2); - $('#font-just').toggleClass('active', align===3); - }, - - onApiVerticalTextAlign: function(align) { - $('#font-top').toggleClass('active', align===Asc.c_oAscVAlign.Top); - $('#font-middle').toggleClass('active', align===Asc.c_oAscVAlign.Center); - $('#font-bottom').toggleClass('active', align===Asc.c_oAscVAlign.Bottom); - }, - - onApiLineSpacing: function(vc) { - var line = (vc.get_Line() === null || vc.get_LineRule() === null || vc.get_LineRule() != 1) ? -1 : vc.get_Line(); - - $('#page-text-linespacing input').val([line]); - }, - - onApiCanIncreaseIndent: function(value) { - $('#font-moveright').toggleClass('disabled', !value); - }, - - onApiCanDecreaseIndent: function(value) { - $('#font-moveleft').toggleClass('disabled', !value); - }, - - // Helpers - _toggleButton: function (e) { - return $(e.currentTarget).toggleClass('active').hasClass('active'); - }, - - textFonts: 'Fonts', - textAuto: 'Auto', - textPt: 'pt' - } - })(), PE.Controllers.EditText || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/AddImage.template b/apps/presentationeditor/mobile/app/template/AddImage.template deleted file mode 100644 index f5bbcb0c8..000000000 --- a/apps/presentationeditor/mobile/app/template/AddImage.template +++ /dev/null @@ -1,71 +0,0 @@ - - - - -
          - -
          -
          - <% if (!android) { %>
          <%= scope.textAddress %>
          <% } %> -
          -
            -
          • - -
          • -
          -
          -
          - <% if (android) { %> - <%= scope.textInsertImage %> - <% } else { %> - - <% } %> -
          -
          -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/AddOther.template b/apps/presentationeditor/mobile/app/template/AddOther.template deleted file mode 100644 index 0b85b96ab..000000000 --- a/apps/presentationeditor/mobile/app/template/AddOther.template +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - -
          - -
          -
          -
            - -
          -
          -
          -
          - - - - - - - - - \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/AddShape.template b/apps/presentationeditor/mobile/app/template/AddShape.template deleted file mode 100644 index 252e4163d..000000000 --- a/apps/presentationeditor/mobile/app/template/AddShape.template +++ /dev/null @@ -1,14 +0,0 @@ - -
          -
          - <% _.each(shapes, function(row) { %> -
            - <% _.each(row, function(shape) { %> -
          • -
            -
          • - <% }); %> -
          - <% }); %> -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/AddSlide.template b/apps/presentationeditor/mobile/app/template/AddSlide.template deleted file mode 100644 index b291aa05b..000000000 --- a/apps/presentationeditor/mobile/app/template/AddSlide.template +++ /dev/null @@ -1,5 +0,0 @@ - -
          -
          -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/EditChart.template b/apps/presentationeditor/mobile/app/template/EditChart.template deleted file mode 100644 index 64e193d10..000000000 --- a/apps/presentationeditor/mobile/app/template/EditChart.template +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - -
          - -
          -
          -
          - <% _.each(types, function(row) { %> -
            - <% _.each(row, function(type) { %> -
          • -
            -
          • - <% }); %> -
          - <% }); %> -
          -
          - -
          -
          - -
          -
          -
          - -
          -
          -
          -
          -
          - - -
          - -
          -
          - -
          -
          -
          - - - - - -
          - -
          -
          - -
          -
          -
          diff --git a/apps/presentationeditor/mobile/app/template/EditImage.template b/apps/presentationeditor/mobile/app/template/EditImage.template deleted file mode 100644 index facdaf17b..000000000 --- a/apps/presentationeditor/mobile/app/template/EditImage.template +++ /dev/null @@ -1,296 +0,0 @@ - -
          - -
          - -
          -
          - - - - - -
          - - -
          - - -
          - - -
          - - - diff --git a/apps/presentationeditor/mobile/app/template/EditLink.template b/apps/presentationeditor/mobile/app/template/EditLink.template deleted file mode 100644 index 55a566493..000000000 --- a/apps/presentationeditor/mobile/app/template/EditLink.template +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/EditShape.template b/apps/presentationeditor/mobile/app/template/EditShape.template deleted file mode 100644 index 1c330e770..000000000 --- a/apps/presentationeditor/mobile/app/template/EditShape.template +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - - -
          - -
          -
          - <% _.each(shapes, function(row) { %> -
            - <% _.each(row, function(shape) { %> -
          • -
            -
          • - <% }); %> -
          - <% }); %> -
          -
          -
          - - -
          - -
          -
          -
          - -
          -
          -
          - -
          -
          -
          -
          -
            -
          • -
            <%= scope.textOpacity %>
            -
            -
            -
            -
            - -
            -
            -
            0 %
            -
            -
            -
          • -
          -
          -
          -
          -
          -
          - -
          - -
          -
          -
          - -
          -
          -
          -
          - - -
          - -
          -
          - -
          -
          -
          - - - - - -
          - -
          -
          - -
          -
          -
          diff --git a/apps/presentationeditor/mobile/app/template/EditSlide.template b/apps/presentationeditor/mobile/app/template/EditSlide.template deleted file mode 100644 index f7c12ebdc..000000000 --- a/apps/presentationeditor/mobile/app/template/EditSlide.template +++ /dev/null @@ -1,339 +0,0 @@ - - - - -
          - -
          -
          -
          -
            -
          • - -
          • -
          • - -
          • -
          • -
            -
            -
            <%= scope.textDuration %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          -
          -
          -
            -
          • -
            -
            -
            <%= scope.textStartOnClick %>
            -
            - -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textDelay %>
            -
            - -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
          • -
          -
          -
          - -
          -
          -
          -
          - -
          - -
          -
          -
          -
            -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          -
          -
          -
          -
          - - -
          - -
          -
          -
            -
          -
          -
          -
          - - -
          - -
          -
          -
          -
          -
          - - -
          - -
          -
          -
          -
          -
          - - -
          - -
          -
          - -
          -
          -
          - - -
          - -
          -
          - -
          -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/EditTable.template b/apps/presentationeditor/mobile/app/template/EditTable.template deleted file mode 100644 index fc6ac933c..000000000 --- a/apps/presentationeditor/mobile/app/template/EditTable.template +++ /dev/null @@ -1,489 +0,0 @@ - -
          -
          - - <% if (android) { %> - <%= scope.textRemoveTable %> - <% } %> -
          - -
          <%= scope.textCellMargins %>
          -
          -
            -
          • -
            -
            -
            -
            - -
            -
            -
            0 pt
            -
            -
            -
          • -
          -
          -
          - - -
          - -
          -
          -
          -
          -
            -
          • -
            -
            -
            -
          • -
          -
          - -
          -
          - -
          -
          -
          - -
          -
          -
          -
          -
          - - -
          - -
          -
          -
          -
            -
          • -
            -
            -
            <%= scope.textHeaderRow %>
            -
            - -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textTotalRow %>
            -
            - -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textBandedRow %>
            -
            - -
            -
            -
            -
          • -
          -
          -
          -
            -
          • -
            -
            -
            <%= scope.textFirstColumn %>
            -
            - -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textLastColumn %>
            -
            - -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textBandedColumn %>
            -
            - -
            -
            -
            -
          • -
          -
          -
          -
          -
          - - -
          - -
          -
          - -
          -
          -
          - - - - - - - - -
          - -
          -
          - -
          -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/EditText.template b/apps/presentationeditor/mobile/app/template/EditText.template deleted file mode 100644 index 0ef87b153..000000000 --- a/apps/presentationeditor/mobile/app/template/EditText.template +++ /dev/null @@ -1,425 +0,0 @@ - -
          - - -
          <%= scope.textFromText %>
          -
          -
            -
          • -
            -
            -
            <%= scope.textBefore %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          • -
            -
            -
            <%= scope.textAfter %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          -
          -
          - - -
          - -
          -
          -
          -
            -
          • -
            -
            -
            <%= scope.textSize %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          -
          -
          <%= scope.textFonts %>
          -
          - -
          -
          -
          -
          - - -
          - -
          -
          -
          -
            -
          -
          -
          -
          -
          - - -
          - -
          -
          -
          -
            -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          -
          -
          -
            -
          • -
            -
            -
            <%= scope.textLetterSpacing %>
            -
            - <% if (!android) { %><% } %> -

            - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

            -
            -
            -
            -
          • -
          -
          -
          -
          -
          - -
          - -
          -
          -
          -
            -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          -
          -
          -
          -
          - - -
          - -
          -
          - <% _.each(bullets, function(row) { %> -
            - <% _.each(row, function(bullet) { %> -
          • - <% if (bullet.thumb.length < 1) { %> -
            - <% } else { %> -
            - <% } %> -
          • - <% }); %> -
          - <% }); %> -
          -
          -
          - - -
          - -
          -
          - <% _.each(numbers, function(row) { %> -
            - <% _.each(row, function(number) { %> -
          • - <% if (number.thumb.length < 1) { %> -
            - <% } else { %> -
            - <% } %> -
          • - <% }); %> -
          - <% }); %> -
          -
          -
          - - -
          - -
          -
          - -
          -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/Editor.template b/apps/presentationeditor/mobile/app/template/Editor.template deleted file mode 100644 index e95b59b74..000000000 --- a/apps/presentationeditor/mobile/app/template/Editor.template +++ /dev/null @@ -1,10 +0,0 @@ -
          - -
          - -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/Search.template b/apps/presentationeditor/mobile/app/template/Search.template deleted file mode 100644 index 2b4076cd7..000000000 --- a/apps/presentationeditor/mobile/app/template/Search.template +++ /dev/null @@ -1,94 +0,0 @@ - -
          - -
          - - -
          - -
          -
          - <% if (isEdit) { %> -
          -
            -
          • - -
          • -
          • - -
          • -
          -
          - <% } %> -
          -
            -
          • -
            -
            -
            <%= scope.textCase %>
            -
            - -
            -
            -
            -
          • -
          -
          -
          -
          -
          \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/Settings.template b/apps/presentationeditor/mobile/app/template/Settings.template deleted file mode 100644 index 20012e9a2..000000000 --- a/apps/presentationeditor/mobile/app/template/Settings.template +++ /dev/null @@ -1,610 +0,0 @@ - - - - -
          - -
          -
          -
          -
          <%= scope.textPresentTitle %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textOwner %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textLocation %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textUploaded %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textTitle %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textSubject %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textComment %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textLastModified %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textLastModifiedBy %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textCreated %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textApplication %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          <%= scope.textAuthor %>
          -
          -
            -
          • -
            -
            <%= scope.textLoading %>
            -
            -
          • -
          -
          -
          -
          -
          -
          - - - - - -
          - -
          -
          -
          -
          - - -
          -
          -

          PRESENTATION EDITOR

          -

          <%= scope.textVersion %> <%= prodversion %>

          -
          -
          -

          <%= publishername %>

          -

          <%= publisheraddr %>

          -

          <%= supportemail %>

          -

          <%= phonenum %>

          -

          <%= printed_url %>

          -

          -
          - -
          -
          -
          -
          - -
          - -
          -
          -
          <%= scope.textSlideSize %>
          -
          -
            -
          • - -
          • -
          • - -
          • -
          -
          - - - -
          -
          -
          - - -
          - -
          -
          -
          -
          <%= scope.textUnitOfMeasurement %>
          -
          -
            -
          • - -
          • -
          • - -
          • -
          • - -
          • -
          -
          -
          -
            -
            -
            -
            <%= scope.textSpellcheck %>
            -
            - -
            -
            -
            -
          -
          - -
          -
          -
          -
          - - -
          - -
          -
          -
          -
          -
            -
            -
            -
            -
            -
            - - -
            - -
            -
            -
            -
            -
              -
            • - -
            • -
            • - -
            • -
            • - -
            • -
            -
            - -
            -
            -
            -
            \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/template/Toolbar.template b/apps/presentationeditor/mobile/app/template/Toolbar.template deleted file mode 100644 index 90564c671..000000000 --- a/apps/presentationeditor/mobile/app/template/Toolbar.template +++ /dev/null @@ -1,59 +0,0 @@ - diff --git a/apps/presentationeditor/mobile/app/view/DocumentHolder.js b/apps/presentationeditor/mobile/app/view/DocumentHolder.js deleted file mode 100644 index fe5e62ed7..000000000 --- a/apps/presentationeditor/mobile/app/view/DocumentHolder.js +++ /dev/null @@ -1,136 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentHolder.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/19/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/utils/utils' -], function ($, _, Backbone) { - 'use strict'; - - PE.Views.DocumentHolder = Backbone.View.extend((function() { - // private - var _anchorId = 'context-menu-target'; - - return { - el: '#editor_sdk', - - template: _.template('
            '), - // Delegated events for creating new items, and clearing completed ones. - events: { - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - // - }, - - // Render layout - render: function() { - var el = $(this.el); - if (el.length > 0 && el.find('#' + _anchorId).length < 1) { - el.append(this.template()); - } - - return this; - }, - - showMenu: function (items, posX, posY) { - if (items.itemsIcon.length < 1 && items.items.length < 1) { - return; - } - - var menuItemTemplate = _.template([ - '<% if(menuItems.itemsIcon) {%>', - '<% _.each(menuItems.itemsIcon, function(item) { %>', - '
          • ', - '<% }); }%>', - '<% if(menuItems.items) {%>', - '<% _.each(menuItems.items, function(item) { %>', - '
          • <%= item.caption %>
          • ', - '<% }); }%>' - ].join('')); - - $('#' + _anchorId) - .css('left', posX) - .css('top', Math.max(0, posY)); - - uiApp.closeModal('.document-menu.modal-in'); - - var popoverHTML = - '
            '+ - '
            '+ - '
            '+ - '
              '+ - menuItemTemplate({menuItems: items}) + - '
            '+ - '
            '+ - '
            '+ - '
            '; - - var popover = uiApp.popover(popoverHTML, $('#' + _anchorId)); - - if (Common.SharedSettings.get('android')) { - Common.Utils.androidMenuTop($(popover), $('#' + _anchorId)); - } - - $('.modal-overlay').removeClass('modal-overlay-visible'); - - $('.document-menu li').single('click', _.buffered(function(e) { - var $target = $(e.currentTarget), - eventName = $target.data('event'); - - this.fireEvent('contextmenu:click', [this, eventName]); - }, 100, this)); - }, - - hideMenu: function () { - $('#' + _anchorId) - .css('left', -1000) - .css('top', -1000); - - uiApp.closeModal('.document-menu.modal-in'); - } - } - })()); -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/DocumentPreview.js b/apps/presentationeditor/mobile/app/view/DocumentPreview.js deleted file mode 100644 index 90118db4c..000000000 --- a/apps/presentationeditor/mobile/app/view/DocumentPreview.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentPreview.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'jquery', - 'underscore', - 'backbone' -], function ($, _, Backbone) { - 'use strict'; - - PE.Views.DocumentPreview = Backbone.View.extend((function() { - // private - - return { - el: '#pe-preview', - - template: _.template('
            '), - // Delegated events for creating new items, and clearing completed ones. - events: { - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - // - }, - - // Render layout - render: function() { - var el = $(this.el); - el.append(this.template({})); - - return this; - } - } - })()); -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/Editor.js b/apps/presentationeditor/mobile/app/view/Editor.js deleted file mode 100644 index f6b985238..000000000 --- a/apps/presentationeditor/mobile/app/view/Editor.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Editor.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 11/21/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!presentationeditor/mobile/app/template/Editor.template', - 'jquery', - 'underscore', - 'backbone' -], function (editorTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.Editor = Backbone.View.extend({ - el: 'body', - - // Compile our stats template - template: _.template(editorTemplate), - - // Delegated events for creating new items, and clearing completed ones. - events: { - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - // - }, - - // Render layout - render: function() { - var el = $(this.el); - el.prepend(this.template({ - backTitle: Framework7.prototype.device.android ? '' : '' - })); - - this.f7View = uiApp.addView('.view-main', { - // params - }); - - return this; - } - }); -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/Search.js b/apps/presentationeditor/mobile/app/view/Search.js deleted file mode 100644 index ad2cd3931..000000000 --- a/apps/presentationeditor/mobile/app/view/Search.js +++ /dev/null @@ -1,204 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Search.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 11/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/Search.template', - 'jquery', - 'underscore', - 'backbone' -], function (searchTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.Search = Backbone.View.extend(_.extend((function() { - // private - var _isEdit = false, - _layout; - - return { - el: '.view-main', - - // Compile our stats template - template: _.template(searchTemplate), - - // Delegated events for creating new items, and clearing completed ones. - events: {}, - - // Set innerHTML and get the references to the DOM elements - initialize: function () { - this.on('searchbar:show', _.bind(this.initEvents, this)); - }, - - initEvents: function() { - $('#search-settings').single('click', _.bind(this.showSettings, this)); - }, - - // Render layout - render: function () { - _layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - isEdit : _isEdit, - scope : this - })); - - return this; - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - this.render(); - }, - - showSettings: function (e) { - var me = this; - - uiApp.closeModal(); - - if (Common.SharedSettings.get('phone')) { - me.picker = $$(uiApp.popup([ - ''].join('') - )) - } else { - me.picker = uiApp.popover([ - '
            ', - '
            ', - '
            ', - '
            ', - '', - '
            ', - '
            ', - '
            '].join(''), - $$('#search-settings') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }); - } - - if (Common.SharedSettings.get('android')) { - $$('.view.search-settings-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.search-settings-view .navbar').prependTo('.view.search-settings-view > .pages > .page'); - } - - me.fireEvent('searchbar:showsettings', me); - }, - - showSearch: function () { - var me = this, - searchBar = $$('.searchbar.document'); - - if (searchBar.length < 1) { - $(_layout.find('#search-panel-view').html()).insertAfter($(me.el).find('.pages')); - if ($('.logo-navbar').length > 0) { - $('.searchbar.document').css('margin-top', '27px'); - } - //$(me.el).find('.pages .page').first().prepend(_layout.find('#search-panel-view').html()); - - // Show replace mode if needed - var isReplace = Common.SharedSettings.get('search-is-replace'); - $('.searchbar.document').toggleClass('replace', !_.isUndefined(isReplace) && (isReplace === true)); - - me.fireEvent('searchbar:render', me); - me.fireEvent('searchbar:show', me); - - searchBar = $$('.searchbar.document'); - - if ($('.logo-navbar').length > 0) { - var top = Common.SharedSettings.get('android') ? '80px' : '68px'; - $('.navbar-through .page > .searchbar').css('top', top); - } - - - uiApp.showNavbar(searchBar); - - if (!searchBar.hasClass('navbar-hidden')) { - $('.searchbar.search input').focus(); - } - - - } - }, - - hideSearch: function () { - var me = this, - searchBar = $$('.searchbar.document'); - - if (searchBar.length > 0) { - // Animating - if (searchBar.hasClass('.navbar-hidding')) { - return; - } - - me.fireEvent('searchbar:hide', me); - searchBar.remove(); - uiApp.hideNavbar(searchBar); - - } - }, - - textFind: 'Find', - textFindAndReplace: 'Find and Replace', - textDone: 'Done', - textSearch: 'Search', - textReplace: 'Replace', - textCase: 'Case sensitive', - textHighlight: 'Highlight results' - } - })(), PE.Views.Search || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/Settings.js b/apps/presentationeditor/mobile/app/view/Settings.js deleted file mode 100644 index 1ddd08be4..000000000 --- a/apps/presentationeditor/mobile/app/view/Settings.js +++ /dev/null @@ -1,326 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Settings.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 11/22/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/Settings.template', - 'jquery', - 'underscore', - 'backbone' -], function (settingsTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.Settings = Backbone.View.extend(_.extend((function() { - // private - var isEdit, - canEdit = false, - canDownload = false, - canAbout = true, - canHelp = true, - canPrint = false, - isShowMacros = true; - - return { - // el: '.view-main', - - template: _.template(settingsTemplate), - - events: { - // - }, - - initialize: function () { - Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this)); - Common.Gateway.on('opendocument', _.bind(this.loadDocument, this)); - }, - - initEvents: function () { - var me = this; - - $('#settings-document-info').single('click', _.bind(me.showInfo, me)); - $('#settings-download').single('click', _.bind(me.showDownload, me)); - $('#settings-history').single('click', _.bind(me.showHistory, me)); - $('#settings-help').single('click', _.bind(me.showHelp, me)); - $('#settings-about').single('click', _.bind(me.showAbout, me)); - $('#settings-presentation-setup').single('click', _.bind(me.showSetup, me)); - $('#settings-application').single('click', _.bind(me.showSetApp, me)); - - Common.Utils.addScrollIfNeed('.view[data-page=settings-root-view] .pages', '.view[data-page=settings-root-view] .page'); - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android: Common.SharedSettings.get('android'), - phone: Common.SharedSettings.get('phone'), - scope: this, - width: $(window).width(), - prodversion: '{{PRODUCT_VERSION}}', - publishername: '{{PUBLISHER_NAME}}', - publisheraddr: '{{PUBLISHER_ADDRESS}}', - publisherurl: '{{PUBLISHER_URL}}', - printed_url: ("{{PUBLISHER_URL}}").replace(/https?:\/{2}/, "").replace(/\/$/,""), - supportemail: '{{SUPPORT_EMAIL}}', - phonenum: '{{PUBLISHER_PHONE}}' - })); - - return this; - }, - - setMode: function (mode) { - if (mode.isDisconnected) { - canEdit = isEdit = false; - if (!mode.enableDownload) - canPrint = canDownload = false; - } else { - isEdit = mode.isEdit; - canEdit = !mode.isEdit && mode.canEdit && mode.canRequestEditRights; - canDownload = mode.canDownload || mode.canDownloadOrigin; - canPrint = mode.canPrint; - - if (mode.customization && mode.canBrandingExt) { - canAbout = (mode.customization.about!==false); - } - - if (mode.customization) { - canHelp = (mode.customization.help!==false); - isShowMacros = (mode.customization.macros!==false); - } - } - }, - - rootLayout: function () { - if (this.layout) { - var $layour = this.layout.find('#settings-root-view'), - isPhone = Common.SharedSettings.get('phone'); - - if (isEdit) { - $layour.find('#settings-readermode').hide(); - $layour.find('#settings-search .item-title').text(this.textFindAndReplace) - } else { - $layour.find('#settings-spellcheck').hide(); - $layour.find('#settings-presentation-setup').hide(); - $layour.find('#settings-readermode input:checkbox') - .attr('checked', Common.SharedSettings.get('readerMode')) - .prop('checked', Common.SharedSettings.get('readerMode')); - } - if (!canDownload) $layour.find('#settings-download').hide(); - if (!canAbout) $layour.find('#settings-about').hide(); - if (!canHelp) $layour.find('#settings-help').hide(); - if (!canPrint) $layour.find('#settings-print').hide(); - if (!isShowMacros) $layour.find('#settings-macros').hide(); - - return $layour.html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId) { - var rootView = PE.getController('Settings').rootView(); - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - this.fireEvent('page:show', [this, templateId]); - } - }, - - showColorSchemes: function () { - this.showPage('#color-schemes-view'); - }, - - showInfo: function () { - this.showPage('#settings-info-view'); - }, - - showDownload: function () { - this.showPage('#settings-download-view'); - }, - - showHistory: function () { - this.showPage('#settings-history-view'); - }, - - showMacros: function () { - this.showPage('#settings-macros-view'); - }, - - showHelp: function () { - var url = '{{HELP_URL}}'; - if (url.charAt(url.length-1) !== '/') { - url += '/'; - } - if (Common.SharedSettings.get('sailfish')) { - url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; - } else if (Common.SharedSettings.get('android')) { - url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; - } else { - url+='mobile-applications/documents/mobile-web-editors/ios/index.aspx'; - } - window.open(url, "_blank"); - PE.getController('Settings').hideModal(); - }, - - showAbout: function () { - this.showPage('#settings-about-view'); - }, - - showSetup: function () { - this.showPage('#settings-setup-view'); - $('#color-schemes').single('click', _.bind(this.showColorSchemes, this)); - }, - - showSetApp: function () { - this.showPage('#settings-application-view'); - if (!isEdit) { - $('.page[data-page=settings-application-view] .page-content > :not(.display-view)').hide(); - } - if (isShowMacros) { - $('#settings-macros').single('click', _.bind(this.showMacros, this)); - } - }, - - loadDocument: function (data) { - var permissions = {}; - - if (data.doc) { - permissions = _.extend(permissions, data.doc.permissions); - - if (permissions.edit === false) { - } - } - }, - - renderSchemaSettings: function(currentSchema, arrSchemas) { - if (arrSchemas) { - var templateInsert = ""; - _.each(arrSchemas, function (schema, index) { - var colors = schema.get_colors(),//schema.colors; - name = schema.get_name(); - templateInsert += '
          • '; - }, this); - $('#color-schemes-content ul').html(templateInsert); - } - }, - - unknownText: 'Unknown', - textSettings: 'Settings', - textFind: 'Find', - textDone: 'Done', - textEditPresent: 'Edit Presentation', - textPresentSetup: 'Presentation Setup', - textPresentSettings: 'Presentation Settings', - textDownload: 'Download', - textPresentInfo: 'Presentation Info', - textHelp: 'Help', - textAbout: 'About', - textBack: 'Back', - textPresentTitle: 'Presentation Title', - textLoading: 'Loading...', - textAuthor: 'Author', - textCreateDate: 'Create date', - textDownloadAs: 'Download As...', - textVersion: 'Version', - textAddress: 'address', - textEmail: 'email', - textTel: 'tel', - textSlideSize: 'Slide Size', - mniSlideStandard: 'Standard (4:3)', - mniSlideWide: 'Widescreen (16:9)', - textPoweredBy: 'Powered by', - textFindAndReplace: 'Find and Replace', - textSpellcheck: 'Spell Checking', - textPrint: 'Print', - textApplicationSettings: 'Application Settings', - textUnitOfMeasurement: 'Unit of Measurement', - textCentimeter: 'Centimeter', - textPoint: 'Point', - textInch: 'Inch', - textColorSchemes: 'Color Schemes', - textCollaboration: 'Collaboration', - textSubject: 'Subject', - textTitle: 'Title', - textComment: 'Comment', - textOwner: 'Owner', - textApplication : 'Application', - textCreated: 'Created', - textLastModified: 'Last Modified', - textLastModifiedBy: 'Last Modified By', - textUploaded: 'Uploaded', - textLocation: 'Location', - textMacrosSettings: 'Macros Settings', - textDisableAll: 'Disable All', - textDisableAllMacrosWithoutNotification: 'Disable all macros without notification', - textShowNotification: 'Show Notification', - textDisableAllMacrosWithNotification: 'Disable all macros with notification', - textEnableAll: 'Enable All', - textEnableAllMacrosWithoutNotification: 'Enable all macros without notification' - } - })(), PE.Views.Settings || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/Toolbar.js b/apps/presentationeditor/mobile/app/view/Toolbar.js deleted file mode 100644 index 641b593a8..000000000 --- a/apps/presentationeditor/mobile/app/view/Toolbar.js +++ /dev/null @@ -1,172 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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) 2018 Ascensio System SIA. All rights reserved. - * - */ - -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", - "click #toolbar-preview" : "showPreview", - "click #toolbar-edit-document": "editDocument", - "click #toolbar-collaboration" : "showCollaboration" - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - var me = this; - - Common.NotificationCenter.on('readermode:change', function (reader) { - if (reader) { - me.hideSearch(); - $('#toolbar-search').addClass('disabled'); - } else { - $('#toolbar-search').removeClass('disabled'); - } - }); - }, - - // Render layout - render: function() { - var me = this, - $el = $(me.el); - - $el.prepend(me.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - backTitle : Common.SharedSettings.get('android') ? '' : me.textBack, - scope : me, - width : $(window).width() - })); - - $('.view-main .navbar').on('addClass removeClass', _.bind(me.onDisplayMainNavbar, me)); - $('#toolbar-preview, #toolbar-edit, #toolbar-add, #toolbar-settings, #toolbar-search, #document-back, #toolbar-edit-document').addClass('disabled'); - - return me; - }, - - setMode: function (mode) { - if (mode.isEdit) { - $('#toolbar-edit, #toolbar-add, #toolbar-undo, #toolbar-redo').show(); - } else if (mode.canEdit && mode.canRequestEditRights){ - $('#toolbar-edit-document').show(); - } - }, - - onDisplayMainNavbar: function (e) { - var $target = $(e.currentTarget), - navbarHidden = $target.hasClass('navbar-hidden'), - pickerHeight = $('.picker-modal').height() || 260; - - $('#editor_sdk').css({ - top : navbarHidden ? 0 : '', - bottom : navbarHidden ? pickerHeight : '' - }); - }, - - // Search - searchToggle: function() { - if ($$('.searchbar.document').length > 0) { - this.hideSearch(); - } else { - this.showSearch(); - } - }, - - showSearch: function () { - PE.getController('Search').showSearch(); - }, - - hideSearch: function () { - PE.getController('Search').hideSearch(); - }, - - // Editor - showEdition: function () { - PE.getController('EditContainer').showModal(); - }, - - // Inserts - - showInserts: function () { - PE.getController('AddContainer').showModal(); - }, - - // Settings - showSettings: function () { - PE.getController('Settings').showModal(); - }, - - showPreview: function () { - PE.getController('DocumentPreview').show(); - }, - - editDocument: function () { - Common.Gateway.requestEditRights(); - }, - - //Collaboration - showCollaboration: function () { - PE.getController('Common.Controllers.Collaboration').showModal(); - }, - - textBack: 'Back' - } - })(), PE.Views.Toolbar || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/add/AddImage.js b/apps/presentationeditor/mobile/app/view/add/AddImage.js deleted file mode 100644 index 0ca437eec..000000000 --- a/apps/presentationeditor/mobile/app/view/add/AddImage.js +++ /dev/null @@ -1,132 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddImage.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/30/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!presentationeditor/mobile/app/template/AddImage.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.AddImage = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('#add-image-url').single('click', _.bind(me.showImageUrl, me)); - - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#addimage-root-view') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId) { - var rootView = PE.getController('AddContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - this.fireEvent('page:show', this); - } - }, - - showImageUrl: function () { - this.showPage('#addimage-url-view'); - }, - - textFromLibrary: 'Picture from Library', - textFromURL: 'Picture from URL', - textBack: 'Back', - textLinkSettings: 'Link Settings', - textAddress: 'Address', - textImageURL: 'Image URL', - textInsertImage: 'Insert Image' - } - })(), PE.Views.AddImage || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/add/AddOther.js b/apps/presentationeditor/mobile/app/view/add/AddOther.js deleted file mode 100644 index f50287c93..000000000 --- a/apps/presentationeditor/mobile/app/view/add/AddOther.js +++ /dev/null @@ -1,239 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddOther.js - * Presentation Editor - * - * Created by Julia Svinareva on 10/04/20 - * Copyright (c) 2020 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/AddOther.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.AddOther = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - if (this.hideInsertComments) { - $('#item-comment').hide(); - } else { - $('#item-comment').show(); - $('#add-other-comment').single('click', _.bind(this.showPageComment, this)); - } - $('#add-other-table').single('click', _.bind(this.showPageTable, this)); - if (this.hideInsertLink) { - $('#item-link').hide(); - } else { - $('#item-link').show(); - $('#add-other-link').single('click', _.bind(this.showPageLink, this)); - } - - this.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - if (!this.canViewComments) { - this.layout.find('#addother-root-view #item-comment').remove(); - } - return this.layout - .find('#addother-root-view') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, animate) { - var rootView = PE.getController('AddContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html(), - animatePages: animate !== false - }); - - if (templateId === '#addother-insert-link') { - this.fireEvent('category:show', [this, templateId]); - } else { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - showPageComment: function(animate) { - this.showPage('#addother-insert-comment', animate); - }, - - renderComment: function(comment) { - var me = this; - _.delay(function () { - var $commentInfo = $('#comment-info'); - var template = [ - '<% if (android) { %>
            <%= comment.userInitials %>
            <% } %>', - '
            <%= scope.getUserName(comment.username) %>
            ', - '
            <%= comment.date %>
            ', - '<% if (android) { %>
            <% } %>', - '
            ' - ].join(''); - var insert = _.template(template)({ - android: Framework7.prototype.device.android, - comment: comment, - textAddComment: me.textAddComment, - scope: me - }); - $commentInfo.html(insert); - _.defer(function () { - var $textarea = $('.comment-textarea')[0]; - var $btnAddComment = $('#done-comment'); - $btnAddComment.addClass('disabled'); - $textarea.focus(); - $textarea.oninput = function () { - if ($textarea.value.length < 1) { - if (!$btnAddComment.hasClass('disabled')) - $btnAddComment.addClass('disabled'); - } else { - if ($btnAddComment.hasClass('disabled')) { - $btnAddComment.removeClass('disabled'); - } - } - }; - }); - }, 100); - }, - - getUserName: function (username) { - return Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(username)); - }, - - showPageTable: function() { - this.showPage('#addother-insert-table'); - this.renderTableStyles(); - PE.getController('AddTable').initEvents(); - }, - - renderTableStyles: function() { - var $stylesList = $('.table-styles ul'); - var template = [ - '<% _.each(styles, function(style) { %>', - '
          • ', - '', - '
          • ', - '<% }); %>' - ].join(''); - var insert = _.template(template)({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - styles : PE.getController('AddTable').getStyles() - }); - $stylesList.html(insert); - }, - - showPageLink: function() { - this.showPage('#addother-insert-link'); - $('#add-link-number').single('click', _.bind(this.showPageNumber, this)); - $('#add-link-type').single('click', _.bind(this.showLinkType, this)); - }, - - showLinkType: function () { - this.showPage('#addlink-type'); - }, - - showPageNumber: function () { - this.showPage('#addlink-slidenumber'); - }, - - textComment: 'Comment', - textAddComment: 'Add Comment', - textDone: 'Done', - textTable: 'Table', - textLinkType: 'Link Type', - textExternalLink: 'External Link', - textInternalLink: 'Slide in this Presentation', - textLink: 'Link', - textLinkSlide: 'Link to', - textBack: 'Back', - textDisplay: 'Display', - textTip: 'Screen Tip', - textInsert: 'Insert', - textNext: 'Next Slide', - textPrev: 'Previous Slide', - textFirst: 'First Slide', - textLast: 'Last Slide', - textNumber: 'Slide Number' - - } - })(), PE.Views.AddOther || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/add/AddShape.js b/apps/presentationeditor/mobile/app/view/add/AddShape.js deleted file mode 100644 index 5e815d183..000000000 --- a/apps/presentationeditor/mobile/app/view/add/AddShape.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddShape.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/28/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!presentationeditor/mobile/app/template/AddShape.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.AddShape = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('shapes:load', _.bind(this.render, this)); - }, - - initEvents: function () { - Common.Utils.addScrollIfNeed('#add-shape .pages', '#add-shape .page'); - this.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - shapes : Common.SharedSettings.get('shapes') - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#add-shapes-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - } - } - })(), PE.Views.AddShape || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/add/AddSlide.js b/apps/presentationeditor/mobile/app/view/add/AddSlide.js deleted file mode 100644 index eaa01e21b..000000000 --- a/apps/presentationeditor/mobile/app/view/add/AddSlide.js +++ /dev/null @@ -1,143 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddSlide.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/06/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/AddSlide.template', - 'jquery', - 'underscore', - 'backbone' -], function (addTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.AddSlide = Backbone.View.extend(_.extend((function() { - // private - var _layouts = []; - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - Common.Utils.addScrollIfNeed('#add-slide .pages', '#add-slide .page'); - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone') - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#add-slide-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - updateLayouts: function (layouts) { - _layouts = layouts; - this.renderLayouts(); - }, - - renderLayouts: function() { - var $layoutContainer = $('.container-add .slide-layout'); - if ($layoutContainer.length > 0 && _layouts.length>0) { - var itemWidth = _layouts[0].itemWidth, - columns = parseInt(($layoutContainer.width()-20) / (itemWidth+2)), // magic - row = -1, - layouts = []; - if (columns<1) { - columns = 1; - itemWidth = $layoutContainer.width()-20; - } - - _.each(_layouts, function (layout, index) { - if (0 == index % columns) { - layouts.push([]); - row++ - } - layouts[row].push(layout); - }); - - var template = _.template([ - '<% _.each(layouts, function(row) { %>', - '
              ', - '<% _.each(row, function(item) { %>', - '
            • ', - '', - '
            • ', - '<% }); %>', - '
            ', - '<% }); %>' - ].join(''))({ - layouts: layouts, - itemWidth: itemWidth - }); - - $layoutContainer.html(template); - } - } - } - })(), PE.Views.AddSlide || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/edit/EditChart.js b/apps/presentationeditor/mobile/app/view/edit/EditChart.js deleted file mode 100644 index c9569baa2..000000000 --- a/apps/presentationeditor/mobile/app/view/edit/EditChart.js +++ /dev/null @@ -1,358 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditChart.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/19/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!presentationeditor/mobile/app/template/EditChart.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.EditChart = Backbone.View.extend(_.extend((function() { - // private - var _styles = []; - - var _types = [ - { type: Asc.c_oAscChartTypeSettings.barNormal, thumb: 'chart-03.png'}, - { type: Asc.c_oAscChartTypeSettings.barStacked, thumb: 'chart-02.png'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer, thumb: 'chart-01.png'}, - { type: Asc.c_oAscChartTypeSettings.lineNormal, thumb: 'chart-06.png'}, - { type: Asc.c_oAscChartTypeSettings.lineStacked, thumb: 'chart-05.png'}, - { type: Asc.c_oAscChartTypeSettings.lineStackedPer, thumb: 'chart-04.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal, thumb: 'chart-09.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked, thumb: 'chart-08.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer, thumb: 'chart-07.png'}, - { type: Asc.c_oAscChartTypeSettings.areaNormal, thumb: 'chart-12.png'}, - { type: Asc.c_oAscChartTypeSettings.areaStacked, thumb: 'chart-11.png'}, - { type: Asc.c_oAscChartTypeSettings.areaStackedPer, thumb: 'chart-10.png'}, - { type: Asc.c_oAscChartTypeSettings.pie, thumb: 'chart-13.png'}, - { type: Asc.c_oAscChartTypeSettings.doughnut, thumb: 'chart-14.png'}, - { type: Asc.c_oAscChartTypeSettings.pie3d, thumb: 'chart-22.png'}, - { type: Asc.c_oAscChartTypeSettings.scatter, thumb: 'chart-15.png'}, - { type: Asc.c_oAscChartTypeSettings.stock, thumb: 'chart-16.png'}, - { type: Asc.c_oAscChartTypeSettings.line3d, thumb: 'chart-21.png'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3d, thumb: 'chart-17.png'}, - { type: Asc.c_oAscChartTypeSettings.barStacked3d, thumb: 'chart-18.png'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer3d, thumb: 'chart-19.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal3d, thumb: 'chart-25.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked3d, thumb: 'chart-24.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer3d, thumb: 'chart-23.png'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3dPerspective, thumb: 'chart-20.png'} - ]; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - Common.NotificationCenter.on('chartstyles:load', _.bind(this.onStylesLoad, this)); - }, - - initEvents: function () { - var me = this; - - $('#chart-style').single('click', _.bind(me.showStyle, me)); - $('#chart-reorder').single('click', _.bind(me.showReorder, me)); - $('#edit-chart-bordercolor').single('click', _.bind(me.showBorderColor, me)); - - $('.edit-chart-style .categories a').single('click', _.bind(me.showStyleCategory, me)); - $('#chart-align').single('click', _.bind(me.showAlign, me)); - - Common.Utils.addScrollIfNeed('#edit-chart .pages', '#edit-chart .page'); - me.initControls(); - me.renderStyles(); - }, - - categoryShow: function(e) { - // - }, - - onStylesLoad: function () { - _styles = Common.SharedSettings.get('chartstyles'); - this.renderStyles(); - }, - - // Render layout - render: function () { - var elementsInRow = 3; - var groupsOfTypes = _.chain(_types).groupBy(function(element, index){ - return Math.floor(index/elementsInRow); - }).toArray().value(); - - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - types : groupsOfTypes, - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-chart-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = PE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-border-color]', '.page[data-page=edit-chart-border-color] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-style] .tabs', '#tab-chart-type'); - }, - - showStyleCategory: function (e) { - // remove android specific style - $('.page[data-page=edit-chart-style] .list-block.inputs-list').removeClass('inputs-list'); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-style] .tabs', '#tab-chart-type'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-style] .tabs', '#tab-chart-style'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-style] .tabs', '#tab-chart-fill'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-style] .tabs', '#tab-chart-border'); - }, - - renderStyles: function() { - var $styleContainer = $('#tab-chart-style'); - - if ($styleContainer.length > 0) { - var columns = parseInt($styleContainer.width() / 70), // magic - row = -1, - styles = []; - - _.each(_styles, function (style, index) { - if (0 == index % columns) { - styles.push([]); - row++ - } - styles[row].push(style); - }); - - var template = _.template([ - '<% _.each(styles, function(row) { %>', - '
              ', - '<% _.each(row, function(style) { %>', - '
            • ', - '', - '
            • ', - '<% }); %>', - '
            ', - '<% }); %>' - ].join(''))({ - styles: styles - }); - - $styleContainer.html(template); - } - }, - - showStyle: function () { - var me = this; - var selector = '#edit-chart-style'; - this.showPage(selector, true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-chart-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-chart-fill').append(template({scope: this})); - $('#edit-chart-add-custom-color').single('click', _.bind(this.showCustomFillColor, this)); - - this.fireEvent('page:show', [this, selector]); - }, - - showCustomFillColor: function () { - var me = this, - selector = '#edit-chart-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-chart-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showReorder: function () { - this.showPage('#edit-chart-reorder'); - Common.Utils.addScrollIfNeed('.page.chart-reorder', '.page.chart-reorder .page-content'); - }, - - showBorderColor: function () { - var me = this; - var selector = '#edit-chart-border-color-view'; - this.showPage(selector, true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-chart-border-color] .page-content') - }); - - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-chart-border-color] .page-content').append(template({scope: this})); - $('#edit-chart-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, selector]); - }, - - showCustomBorderColor: function() { - var me = this, - selector = '#edit-chart-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-chart-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showAlign: function () { - this.showPage('#edit-chart-align'); - Common.Utils.addScrollIfNeed('.page.chart-align', '.page.chart-align .page-content'); - }, - - textStyle: 'Style', - textReorder: 'Reorder', - textRemoveChart: 'Remove Chart', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textType: 'Type', - textFill: 'Fill', - textBorder: 'Border', - textSize: 'Size', - textColor: 'Color', - textAlign: 'Align', - textAlignLeft: 'Align Left', - textAlignRight: 'Align Right', - textAlignCenter: 'Align Center', - textAlignTop: 'Align Top', - textAlignBottom: 'Align Bottom', - textAlignMiddle: 'Align Middle', - txtDistribHor: 'Distribute Horizontally', - txtDistribVert: 'Distribute Vertically', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), PE.Views.EditChart || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/edit/EditImage.js b/apps/presentationeditor/mobile/app/view/edit/EditImage.js deleted file mode 100644 index 92344a37a..000000000 --- a/apps/presentationeditor/mobile/app/view/edit/EditImage.js +++ /dev/null @@ -1,184 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditImage.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/30/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/EditImage.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.EditImage = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - }, - - initEvents: function () { - var me = this; - - $('#image-replace').single('click', _.bind(me.showReplace, me)); - $('#image-reorder').single('click', _.bind(me.showReorder, me)); - $('#edit-image-url').single('click', _.bind(me.showEditUrl, me)); - $('#image-align').single('click', _.bind(me.showAlign, me)); - - Common.Utils.addScrollIfNeed('#edit-image .pages', '#edit-image .page'); - me.initControls(); - }, - - categoryShow: function(e) { - // - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-image-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = PE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - Common.Utils.addScrollIfNeed('.page.edit-image-url-link', '.page.edit-image-url-link .page-content'); - }, - - showReplace: function () { - this.showPage('#edit-image-replace-view'); - }, - - showReorder: function () { - this.showPage('#edit-image-reorder-view'); - Common.Utils.addScrollIfNeed('.page.image-reorder', '.page.image-reorder .page-content'); - }, - - showEditUrl: function () { - this.showPage('#edit-image-url-view'); - - $('.edit-image-url-link input[type="url"]').single('input', _.bind(function(e) { - $('.edit-image-url-link .buttons').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, this)); - - _.delay(function () { - $('.edit-image-url-link input[type="url"]').focus(); - }, 1000); - }, - - showAlign: function () { - this.showPage('#edit-image-align'); - Common.Utils.addScrollIfNeed('.page.image-align', '.page.image-align .page-content'); - }, - - textReplace: 'Replace', - textReorder: 'Reorder', - textDefault: 'Actual Size', - textRemove: 'Remove Image', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textFromLibrary: 'Picture from Library', - textFromURL: 'Picture from URL', - textLinkSettings: 'Link Settings', - textAddress: 'Address', - textImageURL: 'Image URL', - textReplaceImg: 'Replace Image', - textAlign: 'Align', - textAlignLeft: 'Align Left', - textAlignRight: 'Align Right', - textAlignCenter: 'Align Center', - textAlignTop: 'Align Top', - textAlignBottom: 'Align Bottom', - textAlignMiddle: 'Align Middle', - txtDistribHor: 'Distribute Horizontally', - txtDistribVert: 'Distribute Vertically' - } - })(), PE.Views.EditImage || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/edit/EditLink.js b/apps/presentationeditor/mobile/app/view/edit/EditLink.js deleted file mode 100644 index a5f39e1bb..000000000 --- a/apps/presentationeditor/mobile/app/view/edit/EditLink.js +++ /dev/null @@ -1,143 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditLink.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/06/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!presentationeditor/mobile/app/template/EditLink.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.EditLink = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('#edit-link-number').single('click', _.bind(me.showPageNumber, me)); - $('#edit-link-type').single('click', _.bind(me.showLinkType, me)); - - Common.Utils.addScrollIfNeed('#edit-link .pages', '#edit-link .page'); - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-link-root') - .html(); - } - - return ''; - }, - - showPage: function (templateId) { - var rootView = PE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - this.fireEvent('page:show', [this, templateId]); - } - - Common.Utils.addScrollIfNeed('.page[data-page=editlink-slidenumber]', '.page[data-page=editlink-slidenumber] .page-content'); - }, - - showLinkType: function () { - this.showPage('#editlink-type'); - }, - - showPageNumber: function () { - this.showPage('#editlink-slidenumber'); - }, - - textLinkType: 'Link Type', - textExternalLink: 'External Link', - textInternalLink: 'Slide in this Presentation', - textLink: 'Link', - textLinkSlide: 'Link to', - textBack: 'Back', - textDisplay: 'Display', - textTip: 'Screen Tip', - textNext: 'Next Slide', - textPrev: 'Previous Slide', - textFirst: 'First Slide', - textLast: 'Last Slide', - textNumber: 'Slide Number', - textEdit: 'Save Link', - textRemove: 'Remove Link' - } - })(), PE.Views.EditLink || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/edit/EditShape.js b/apps/presentationeditor/mobile/app/view/edit/EditShape.js deleted file mode 100644 index 532e581bc..000000000 --- a/apps/presentationeditor/mobile/app/view/edit/EditShape.js +++ /dev/null @@ -1,292 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditShape.js - * Presentation Editor - * - * Created by Julia Radzhabova on 11/25/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/EditShape.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.EditShape = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - this.isShapeCanFill = true; - }, - - initEvents: function () { - var me = this; - - $('#shape-style').single('click', _.bind(me.showStyle, me)); - $('#shape-replace').single('click', _.bind(me.showReplace, me)); - $('#shape-reorder').single('click', _.bind(me.showReorder, me)); - $('#shape-align').single('click', _.bind(me.showAlign, me)); - $('#edit-shape-bordercolor').single('click', _.bind(me.showBorderColor, me)); - - $('.edit-shape-style .categories a').single('click', _.bind(me.showStyleCategory, me)); - - Common.Utils.addScrollIfNeed('#edit-shape .pages', '#edit-shape .page'); - me.initControls(); - }, - - categoryShow: function(e) { - // if ('edit-shape' == $(e.currentTarget).prop('id')) { - // this.initEvents(); - // } - }, - - // Render layout - render: function () { - var shapes = Common.SharedSettings.get('shapes').slice(); - shapes.splice(0, 1); // Remove line shapes - - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - shapes : shapes, - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-shape-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = PE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - showStyleCategory: function (e) { - // remove android specific style - $('.page[data-page=edit-shape-style] .list-block.inputs-list').removeClass('inputs-list'); - }, - - showStyle: function () { - var me = this; - var selector = this.isShapeCanFill ? '#edit-shape-style' : '#edit-shape-style-nofill'; - this.showPage(selector, true); - - if (!this.isShapeCanFill) - this.showStyleCategory(); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-shape-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-shape-fill').append(template({scope: this})); - $('#edit-shape-add-custom-color').single('click', _.bind(this.showCustomFillColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-shape-style]', '.page[data-page=edit-shape-style] .page-content'); - this.fireEvent('page:show', [this, selector]); - }, - - showCustomFillColor: function () { - var me = this, - selector = '#edit-shape-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-shape-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showReplace: function () { - this.showPage('#edit-shape-replace'); - Common.Utils.addScrollIfNeed('.page.shape-replace', '.page.shape-replace .page-content'); - }, - - showReorder: function () { - this.showPage('#edit-shape-reorder'); - Common.Utils.addScrollIfNeed('.page.shape-reorder', '.page.shape-reorder .page-content'); - }, - - showAlign: function () { - this.showPage('#edit-shape-align'); - Common.Utils.addScrollIfNeed('.page.shape-align', '.page.shape-align .page-content'); - }, - - showBorderColor: function () { - var me = this; - var selector = '#edit-shape-border-color-view'; - this.showPage(selector, true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-shape-border-color] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-shape-border-color] .page-content').append(template({scope: this})); - $('#edit-shape-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, selector]); - }, - - showCustomBorderColor: function () { - var me = this, - selector = '#edit-shape-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-shape-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - textStyle: 'Style', - textReplace: 'Replace', - textReorder: 'Reorder', - textRemoveShape: 'Remove Shape', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textFill: 'Fill', - textBorder: 'Border', - textEffects: 'Effects', - textSize: 'Size', - textColor: 'Color', - textOpacity: 'Opacity', - textAlign: 'Align', - textAlignLeft: 'Align Left', - textAlignRight: 'Align Right', - textAlignCenter: 'Align Center', - textAlignTop: 'Align Top', - textAlignBottom: 'Align Bottom', - textAlignMiddle: 'Align Middle', - txtDistribHor: 'Distribute Horizontally', - txtDistribVert: 'Distribute Vertically', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), PE.Views.EditShape || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/edit/EditSlide.js b/apps/presentationeditor/mobile/app/view/edit/EditSlide.js deleted file mode 100644 index e8f5f6b05..000000000 --- a/apps/presentationeditor/mobile/app/view/edit/EditSlide.js +++ /dev/null @@ -1,448 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditSlide.js - * Presentation Editor - * - * Created by Julia Radzhabova on 12/07/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/EditSlide.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.EditSlide = Backbone.View.extend(_.extend((function() { - // private - var _layouts = [], - _arrCurrentEffectTypes = []; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - - this._arrEffectType = [ - {displayValue: this.textSmoothly, value: Asc.c_oAscSlideTransitionParams.Fade_Smoothly}, - {displayValue: this.textBlack, value: Asc.c_oAscSlideTransitionParams.Fade_Through_Black}, - {displayValue: this.textLeft, value: Asc.c_oAscSlideTransitionParams.Param_Left}, - {displayValue: this.textTop, value: Asc.c_oAscSlideTransitionParams.Param_Top}, - {displayValue: this.textRight, value: Asc.c_oAscSlideTransitionParams.Param_Right}, - {displayValue: this.textBottom, value: Asc.c_oAscSlideTransitionParams.Param_Bottom}, - {displayValue: this.textTopLeft, value: Asc.c_oAscSlideTransitionParams.Param_TopLeft}, - {displayValue: this.textTopRight, value: Asc.c_oAscSlideTransitionParams.Param_TopRight}, - {displayValue: this.textBottomLeft, value: Asc.c_oAscSlideTransitionParams.Param_BottomLeft}, - {displayValue: this.textBottomRight, value: Asc.c_oAscSlideTransitionParams.Param_BottomRight}, - {displayValue: this.textVerticalIn, value: Asc.c_oAscSlideTransitionParams.Split_VerticalIn}, - {displayValue: this.textVerticalOut, value: Asc.c_oAscSlideTransitionParams.Split_VerticalOut}, - {displayValue: this.textHorizontalIn, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalIn}, - {displayValue: this.textHorizontalOut, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalOut}, - {displayValue: this.textClockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Clockwise}, - {displayValue: this.textCounterclockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Counterclockwise}, - {displayValue: this.textWedge, value: Asc.c_oAscSlideTransitionParams.Clock_Wedge}, - {displayValue: this.textZoomIn, value: Asc.c_oAscSlideTransitionParams.Zoom_In}, - {displayValue: this.textZoomOut, value: Asc.c_oAscSlideTransitionParams.Zoom_Out}, - {displayValue: this.textZoomRotate, value: Asc.c_oAscSlideTransitionParams.Zoom_AndRotate} - ]; - this._arrEffect = [ - {displayValue: this.textNone, value: Asc.c_oAscSlideTransitionTypes.None}, - {displayValue: this.textFade, value: Asc.c_oAscSlideTransitionTypes.Fade}, - {displayValue: this.textPush, value: Asc.c_oAscSlideTransitionTypes.Push}, - {displayValue: this.textWipe, value: Asc.c_oAscSlideTransitionTypes.Wipe}, - {displayValue: this.textSplit, value: Asc.c_oAscSlideTransitionTypes.Split}, - {displayValue: this.textUnCover, value: Asc.c_oAscSlideTransitionTypes.UnCover}, - {displayValue: this.textCover, value: Asc.c_oAscSlideTransitionTypes.Cover}, - {displayValue: this.textClock, value: Asc.c_oAscSlideTransitionTypes.Clock}, - {displayValue: this.textZoom, value: Asc.c_oAscSlideTransitionTypes.Zoom} - ]; - }, - - initEvents: function () { - var me = this; - - $('#slide-theme').single('click', _.bind(me.showTheme, me)); - $('#slide-change-layout').single('click', _.bind(me.showLayout, me)); - $('#slide-transition').single('click', _.bind(me.showTransition, me)); - $('#slide-style').single('click', _.bind(me.showStyle, me)); - $('#edit-slide-effect').single('click', _.bind(me.showEffect, me)); - $('#edit-slide-effect-type').single('click', _.bind(me.showEffectType, me)); - - Common.Utils.addScrollIfNeed('#edit-slide .pages', '#edit-slide .page'); - me.initControls(); - }, - - categoryShow: function(e) { - // if ('edit-slide' == $(e.currentTarget).prop('id')) { - // this.initEvents(); - // } - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-slide-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = PE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - - Common.Utils.addScrollIfNeed('.page[data-page=editslide-effect]', '.page[data-page=editslide-effect] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=editslide-effect-type]', '.page[data-page=editslide-effect-type] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-slide-style]', '.page[data-page=edit-slide-style] .page-content'); - }, - - showStyle: function () { - var me = this; - this.showPage('#edit-slide-style', true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-slide-style] .page-content'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomSlideColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-slide-style] .page-content').append(template({scope: this})); - $('#edit-slide-add-custom-color').single('click', _.bind(this.showCustomSlideColor, this)); - - this.fireEvent('page:show', [this, '#edit-slide-style']); - }, - - showCustomSlideColor: function () { - var me = this, - selector = '#edit-slide-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-slide-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showLayout: function () { - this.showPage('#edit-slide-layout', true); - - this.renderLayouts(); - - Common.Utils.addScrollIfNeed('.view.edit-root-view .page-on-center', '.view.edit-root-view .page-on-center .page-content'); - this.fireEvent('page:show', [this, '#edit-slide-layout']); - }, - - showTheme: function () { - this.showPage('#edit-slide-theme'); - }, - - showTransition: function () { - this.showPage('#edit-slide-transition'); - - // remove android specific style - $('.page[data-page=edit-slide-transition] .list-block.inputs-list').removeClass('inputs-list'); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-slide-transition]', '.page[data-page=edit-slide-transition] .page-content'); - }, - - showEffect: function () { - this.showPage('#editslide-effect'); - }, - - showEffectType: function () { - this.showPage('#editslide-effect-type'); - }, - - updateLayouts: function () { - _layouts = Common.SharedSettings.get('slidelayouts'); - this.renderLayouts(); - }, - - renderLayouts: function() { - var $layoutContainer = $('.container-edit .slide-layout'); - if ($layoutContainer.length > 0 && _layouts.length>0) { - var itemWidth = _layouts[0].itemWidth, - columns = parseInt(($layoutContainer.width()-20) / (itemWidth+2)), // magic - row = -1, - layouts = []; - if (columns<1) { - columns = 1; - itemWidth = $layoutContainer.width()-20; - } - _.each(_layouts, function (layout, index) { - if (0 == index % columns) { - layouts.push([]); - row++ - } - layouts[row].push(layout); - }); - - var template = _.template([ - '<% _.each(layouts, function(row) { %>', - '
              ', - '<% _.each(row, function(item) { %>', - '
            • ', - '', - '
            • ', - '<% }); %>', - '
            ', - '<% }); %>' - ].join(''))({ - layouts: layouts, - itemWidth: itemWidth - }); - - $layoutContainer.html(template); - } - }, - - renderThemes: function() { - var $themeContainer = $('.container-edit .slide-theme'), - _arr = PE.getController('EditSlide').getThemes(); - - if ($themeContainer.length > 0 && _arr.length>0) { - var columns = parseInt(($themeContainer.width()-20) / 95), // magic - row = -1, - themes = []; - - _.each(_arr, function (theme, index) { - if (0 == index % columns) { - themes.push([]); - row++ - } - themes[row].push(theme); - }); - - var template = _.template([ - '<% _.each(themes, function(row) { %>', - '
            ', - '<% _.each(row, function(theme) { %>', - '
            ' + 'background-image: url(<%= theme.imageUrl %>);' + '<% } %> background-position: 0 -<%= theme.offsety %>px;">
            ', - '<% }); %>', - '
            ', - '<% }); %>' - ].join(''))({ - themes: themes - }); - - $themeContainer.html(template); - } - }, - - renderEffectTypes: function() { - var $typeContainer = $('#page-editslide-effect-type .list-block ul'); - if ($typeContainer.length > 0 && _arrCurrentEffectTypes.length>0) { - var template = _.template([ - '<% _.each(types, function(item) { %>', - '
          • ', - '', - '
          • ', - '<% }); %>' - ].join(''))({ - android : Common.SharedSettings.get('android'), - types: _arrCurrentEffectTypes - }); - - $typeContainer.html(template); - } - }, - - fillEffectTypes: function (type) { - _arrCurrentEffectTypes = []; - switch (type) { - case Asc.c_oAscSlideTransitionTypes.Fade: - _arrCurrentEffectTypes.push(this._arrEffectType[0], this._arrEffectType[1]); - break; - case Asc.c_oAscSlideTransitionTypes.Push: - _arrCurrentEffectTypes = this._arrEffectType.slice(2, 6); - break; - case Asc.c_oAscSlideTransitionTypes.Wipe: - _arrCurrentEffectTypes = this._arrEffectType.slice(2, 10); - break; - case Asc.c_oAscSlideTransitionTypes.Split: - _arrCurrentEffectTypes = this._arrEffectType.slice(10, 14); - break; - case Asc.c_oAscSlideTransitionTypes.UnCover: - _arrCurrentEffectTypes = this._arrEffectType.slice(2, 10); - break; - case Asc.c_oAscSlideTransitionTypes.Cover: - _arrCurrentEffectTypes = this._arrEffectType.slice(2, 10); - break; - case Asc.c_oAscSlideTransitionTypes.Clock: - _arrCurrentEffectTypes = this._arrEffectType.slice(14, 17); - break; - case Asc.c_oAscSlideTransitionTypes.Zoom: - _arrCurrentEffectTypes = this._arrEffectType.slice(17); - break; - } - return (_arrCurrentEffectTypes.length>0) ? _arrCurrentEffectTypes[0].value : -1; - }, - - getEffectName: function(effect) { - for (var i=0; i').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-table-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - updateStyles: function (styles) { - _styles = styles; - this.renderStyles(); - }, - - renderStyles: function() { - var $styleContainer = $('#edit-table-styles .item-inner'); - - if ($styleContainer.length > 0 && $styleContainer.is(':visible')) { - var columns = parseInt($styleContainer.width() / 70), // magic - row = -1, - styles = []; - - _.each(_styles, function (style, index) { - if (0 == index % columns) { - styles.push([]); - row++ - } - styles[row].push(style); - }); - - var template = _.template([ - '
            ', - '<% _.each(styles, function(row) { %>', - '
            ', - '<% _.each(row, function(style) { %>', - '
            ', - '', - '
            ', - '<% }); %>', - '
            ', - '<% }); %>', - '
            ' - ].join(''))({ - styles: styles - }); - - $styleContainer.html(template); - } - }, - - categoryShow: function(e) { - // if ('edit-shape' == $(e.currentTarget).prop('id')) { - // this.initEvents(); - // } - }, - - showStyleCategory: function (e) { - // remove android specific style - $('.page[data-page=edit-table-style] .list-block.inputs-list').removeClass('inputs-list'); - if ($(e.currentTarget).data('type') == 'fill') { - this.fireEvent('page:show', [this, '#edit-table-style']); - } - - // Common.Utils.addScrollIfNeed('.page[data-page=edit-table-style] .tabs', '#tab-table-style'); - Common.Utils.addScrollIfNeed('#tab-table-style', '#tab-table-style .list-block'); - Common.Utils.addScrollIfNeed('#tab-table-fill', '#tab-table-fill .list-block'); - Common.Utils.addScrollIfNeed('#tab-table-border', '#tab-table-border .list-block'); - }, - - showPage: function (templateId, suspendEvent) { - var rootView = PE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - - Common.Utils.addScrollIfNeed('#tab-table-style', '#tab-table-style .list-block'); - Common.Utils.addScrollIfNeed('.page.table-reorder', '.page.table-reorder .page-content'); - }, - - showTableStyle: function () { - var me = this; - this.showPage('#edit-table-style', true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-table-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-table-fill').append(template({scope: this})); - $('#edit-table-add-custom-color').single('click', _.bind(this.showCustomFillColor, this)); - - this.fireEvent('page:show', [this, '#edit-table-style']); - }, - - showCustomFillColor: function () { - var me = this, - selector = '#edit-table-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-table-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showBorderColor: function () { - var me = this; - this.showPage('#edit-table-border-color-view', true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-table-border-color] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-table-border-color] .page-content').append(template({scope: this})); - $('#edit-table-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, '#edit-table-border-color-view']); - }, - - showCustomBorderColor: function() { - var me = this, - selector = '#edit-table-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-table-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showTableStyleOptions: function () { - this.showPage('#edit-table-style-options-view'); - }, - - showReorder: function () { - this.showPage('#edit-table-reorder'); - Common.Utils.addScrollIfNeed('.page.table-reorder', '.page.table-reorder .page-content'); - }, - - showAlign: function () { - this.showPage('#edit-table-align'); - Common.Utils.addScrollIfNeed('.page.table-align', '.page.table-align .page-content'); - }, - - textRemoveTable: 'Remove Table', - textTableOptions: 'Table Options', - textStyle: 'Style', - textBack: 'Back', - textOptions: 'Options', - textCellMargins: 'Cell Margins', - textFill: 'Fill', - textBorder: 'Border', - textStyleOptions: 'Style Options', - textSize: 'Size', - textColor: 'Color', - textHeaderRow: 'Header Row', - textTotalRow: 'Total Row', - textBandedRow: 'Banded Row', - textFirstColumn: 'First Column', - textLastColumn: 'Last Column', - textBandedColumn: 'Banded Column', - textReorder: 'Reorder', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textAlign: 'Align', - textAlignLeft: 'Align Left', - textAlignRight: 'Align Right', - textAlignCenter: 'Align Center', - textAlignTop: 'Align Top', - textAlignBottom: 'Align Bottom', - textAlignMiddle: 'Align Middle', - txtDistribHor: 'Distribute Horizontally', - txtDistribVert: 'Distribute Vertically', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), PE.Views.EditTable || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/app/view/edit/EditText.js b/apps/presentationeditor/mobile/app/view/edit/EditText.js deleted file mode 100644 index 6fb609736..000000000 --- a/apps/presentationeditor/mobile/app/view/edit/EditText.js +++ /dev/null @@ -1,294 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditText.js - * Presentation Editor - * - * Created by Alexander Yuzhin on 10/4/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!presentationeditor/mobile/app/template/EditText.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - PE.Views.EditText = Backbone.View.extend(_.extend((function() { - // private - var _fontsList, - _editTextController; - - var _bullets = [ - [ - {type: -1, thumb: ''}, - {type: 1, thumb: 'bullet-01.png'}, - {type: 2, thumb: 'bullet-02.png'}, - {type: 3, thumb: 'bullet-03.png'} - ], - [ - {type: 4, thumb: 'bullet-04.png'}, - {type: 5, thumb: 'bullet-05.png'}, - {type: 6, thumb: 'bullet-06.png'}, - {type: 7, thumb: 'bullet-07.png'} - ] - ]; - - var _numbers = [ - [ - {type: -1, thumb: ''}, - {type: 4, thumb: 'number-01.png'}, - {type: 5, thumb: 'number-02.png'}, - {type: 6, thumb: 'number-03.png'} - ], - [ - {type: 1, thumb: 'number-04.png'}, - {type: 2, thumb: 'number-05.png'}, - {type: 3, thumb: 'number-06.png'}, - {type: 7, thumb: 'number-07.png'} - ] - ]; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - _editTextController = PE.getController('EditText'); - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('#font-fonts').single('click', _.bind(me.showFonts, me)); - $('#font-color').single('click', _.bind(me.showFontColor, me)); - $('#font-additional').single('click', _.bind(me.showAdditional, me)); - $('#font-line-spacing').single('click', _.bind(me.showLineSpacing, me)); - $('#font-bullets').single('click', _.bind(me.showBullets, me)); - $('#font-numbers').single('click', _.bind(me.showNumbers, me)); - - me.initControls(); - PE.getController('EditText').initSettings(); - - Common.Utils.addScrollIfNeed('#edit-text .pages', '#edit-text .page'); - }, - - // Render layout - render: function () { - this.layout = $('
            ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this, - bullets : _bullets, - numbers : _numbers - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-text-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = PE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - showFonts: function () { - this.showPage('#edit-text-fonts'); - - var me = this, - $template = $( - '
            ' + - '
          • ' + - '' + - '
          • ' + - '
            ' - ); - - _fontsList = uiApp.virtualList('#font-list.virtual-list', { - items: PE.getController('EditText').getFonts(), - template: $template.html(), - onItemsAfterInsert: function (list, fragment) { - var fontInfo = _editTextController.getFontInfo(); - $('#font-list input[name=font-name]').val([fontInfo.name]); - - $('#font-list li').single('click', _.buffered(function (e) { - me.fireEvent('font:click', [me, e]); - }, 100)); - } - }); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-font-page]', '.page[data-page=edit-text-font-page] .page-content'); - }, - - showFontColor: function () { - var me = this; - this.showPage('#edit-text-color', true); - - this.paletteTextColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-text-font-color] .page-content') - }); - this.paletteTextColor.on('customcolor', function () { - me.showCustomFontColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-text-font-color] .page-content').append(template({scope: this})); - $('#edit-text-add-custom-color').single('click', _.bind(this.showCustomFontColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-font-color]', '.page[data-page=edit-text-font-color] .page-content'); - this.fireEvent('page:show', [this, '#edit-text-color']); - }, - - showCustomFontColor: function () { - var me = this, - selector = '#edit-text-custom-color-view'; - me.showPage(selector, true); - - me.customColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-text-custom-color] .page-content'), - color: me.paletteTextColor.currentColor - }); - me.customColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteTextColor.addNewDynamicColor(colorPicker, color); - PE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showAdditional: function () { - this.showPage('#edit-text-additional'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-additional]', '.page[data-page=edit-text-additional] .page-content'); - }, - - showLineSpacing: function () { - this.showPage('#edit-text-linespacing'); - Common.Utils.addScrollIfNeed('#page-text-linespacing', '#page-text-linespacing .page-content'); - }, - - showBullets: function () { - this.showPage('#edit-text-bullets'); - }, - - showNumbers: function () { - this.showPage('#edit-text-numbers'); - }, - - textFonts: 'Fonts', - textFontColor: 'Font Color', - textAdditionalFormat: 'Additional Formatting', - textBack: 'Back', - textSize: 'Size', - textFontColors: 'Font Colors', - textAutomatic: 'Automatic', - textAdditional: 'Additional', - textStrikethrough: 'Strikethrough', - textDblStrikethrough: 'Double Strikethrough', - textDblSuperscript: 'Superscript', - textSubscript: 'Subscript', - textSmallCaps: 'Small Caps', - textAllCaps: 'All Caps', - textLetterSpacing: 'Letter Spacing', - textFromText: 'Distance from Text', - textBefore: 'Before', - textAfter: 'After', - textLineSpacing: 'Line Spacing', - textBullets: 'Bullets', - textNone: 'None', - textNumbers: 'Numbers', - textCharacterBold: 'B', - textCharacterItalic: 'I', - textCharacterUnderline: 'U', - textCharacterStrikethrough: 'S', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), PE.Views.EditText || {})) -}); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/index.html b/apps/presentationeditor/mobile/index.html deleted file mode 100644 index a5866ec7b..000000000 --- a/apps/presentationeditor/mobile/index.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - - - - - ONLYOFFICE Presentations - - - - - - - - - -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - - - - - - - - - - - - diff --git a/apps/presentationeditor/mobile/index.html.deploy b/apps/presentationeditor/mobile/index.html.deploy deleted file mode 100644 index 3c85229a3..000000000 --- a/apps/presentationeditor/mobile/index.html.deploy +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - - - - - ONLYOFFICE Document Editor - - - - - - - - -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - - - - - diff --git a/apps/presentationeditor/mobile/index_loader.html b/apps/presentationeditor/mobile/index_loader.html deleted file mode 100644 index 84c1fb486..000000000 --- a/apps/presentationeditor/mobile/index_loader.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - ONLYOFFICE Presentations - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/presentationeditor/mobile/index_loader.html.deploy b/apps/presentationeditor/mobile/index_loader.html.deploy deleted file mode 100644 index 5e0dea145..000000000 --- a/apps/presentationeditor/mobile/index_loader.html.deploy +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - - - - ONLYOFFICE Document Editor - - - - - - - - - - - - - diff --git a/apps/presentationeditor/mobile/locale/bg.json b/apps/presentationeditor/mobile/locale/bg.json index bb2365280..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/bg.json +++ b/apps/presentationeditor/mobile/locale/bg.json @@ -1,507 +1,3 @@ { - "Common.Controllers.Collaboration.textEditUser": "Понастоящем документът се редактира от няколко потребители.", - "Common.UI.ThemeColorPalette.textCustomColors": "Цветове по избор", - "Common.UI.ThemeColorPalette.textStandartColors": "Стандартни цветове", - "Common.UI.ThemeColorPalette.textThemeColors": "Цветовете на темата", - "Common.Utils.Metric.txtCm": "см", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textBack": "Обратно", - "Common.Views.Collaboration.textCollaboration": "Сътрудничество", - "Common.Views.Collaboration.textEditUsers": "Потребители", - "Common.Views.Collaboration.textNoComments": "Тази презентация не съдържа коментари", - "Common.Views.Collaboration.textСomments": "Коментари", - "PE.Controllers.AddContainer.textImage": "Изображение", - "PE.Controllers.AddContainer.textLink": "Връзка", - "PE.Controllers.AddContainer.textShape": "Форма", - "PE.Controllers.AddContainer.textSlide": "Пързалка", - "PE.Controllers.AddContainer.textTable": "Таблица", - "PE.Controllers.AddImage.textEmptyImgUrl": "Трябва да посочите URL адреса на изображението.", - "PE.Controllers.AddImage.txtNotUrl": "Това поле трябва да е URL адрес във формат „http://www.example.com“", - "PE.Controllers.AddLink.textDefault": "Избран текст", - "PE.Controllers.AddLink.textExternalLink": "Външен линк", - "PE.Controllers.AddLink.textFirst": "Първи слайд", - "PE.Controllers.AddLink.textInternalLink": "Плъзнете в тази презентация", - "PE.Controllers.AddLink.textLast": "Последен слайд", - "PE.Controllers.AddLink.textNext": "Следващ слайд", - "PE.Controllers.AddLink.textPrev": "Предишен слайд", - "PE.Controllers.AddLink.textSlide": "Пързалка", - "PE.Controllers.AddLink.txtNotUrl": "Това поле трябва да е URL адрес във формат „http://www.example.com“", - "PE.Controllers.AddTable.textCancel": "Отказ", - "PE.Controllers.AddTable.textColumns": "Колони", - "PE.Controllers.AddTable.textRows": "Редове", - "PE.Controllers.AddTable.textTableSize": "Размер на таблицата", - "PE.Controllers.DocumentHolder.menuAddLink": "Добавяне на връзка", - "PE.Controllers.DocumentHolder.menuCopy": "Копие", - "PE.Controllers.DocumentHolder.menuCut": "Разрез", - "PE.Controllers.DocumentHolder.menuDelete": "Изтрий", - "PE.Controllers.DocumentHolder.menuEdit": "Редактиране", - "PE.Controllers.DocumentHolder.menuMore": "Повече", - "PE.Controllers.DocumentHolder.menuOpenLink": "Отвори линк", - "PE.Controllers.DocumentHolder.menuPaste": "Паста", - "PE.Controllers.DocumentHolder.sheetCancel": "Отказ", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Краят на предварителен преглед на слайда. Кликнете, за да излезете.", - "PE.Controllers.EditContainer.textChart": "Диаграма", - "PE.Controllers.EditContainer.textHyperlink": "Хипервръзка", - "PE.Controllers.EditContainer.textImage": "Изображение", - "PE.Controllers.EditContainer.textSettings": "Настройки", - "PE.Controllers.EditContainer.textShape": "Форма", - "PE.Controllers.EditContainer.textSlide": "Пързалка", - "PE.Controllers.EditContainer.textTable": "Таблица", - "PE.Controllers.EditContainer.textText": "Текст", - "PE.Controllers.EditImage.textEmptyImgUrl": "Трябва да посочите URL адреса на изображението.", - "PE.Controllers.EditImage.txtNotUrl": "Това поле трябва да е URL адрес във формат „http://www.example.com“", - "PE.Controllers.EditLink.textDefault": "Избран текст", - "PE.Controllers.EditLink.textExternalLink": "Външен линк", - "PE.Controllers.EditLink.textFirst": "Първи слайд", - "PE.Controllers.EditLink.textInternalLink": "Плъзнете в тази презентация", - "PE.Controllers.EditLink.textLast": "Последен слайд", - "PE.Controllers.EditLink.textNext": "Следващ слайд", - "PE.Controllers.EditLink.textPrev": "Предишен слайд", - "PE.Controllers.EditLink.textSlide": "Пързалка", - "PE.Controllers.EditLink.txtNotUrl": "Това поле трябва да е URL адрес във формат „http://www.example.com“", - "PE.Controllers.EditSlide.textSec": "с", - "PE.Controllers.EditText.textAuto": "Автоматичен", - "PE.Controllers.EditText.textFonts": "Шрифт", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Въведете паролата си:", - "PE.Controllers.Main.advDRMOptions": "Защитен файл", - "PE.Controllers.Main.advDRMPassword": "Парола", - "PE.Controllers.Main.applyChangesTextText": "Данните се зареждат ...", - "PE.Controllers.Main.applyChangesTitleText": "Зареждане на данни", - "PE.Controllers.Main.closeButtonText": "Затвори файла", - "PE.Controllers.Main.convertationTimeoutText": "Превишава се времето на изтичане на реализациите.", - "PE.Controllers.Main.criticalErrorExtText": "Натиснете 'OK', за да се върнете към списъка с документи.", - "PE.Controllers.Main.criticalErrorTitle": "Грешка", - "PE.Controllers.Main.downloadErrorText": "Изтеглянето се провали.", - "PE.Controllers.Main.downloadTextText": "Представя се се изтегли ...", - "PE.Controllers.Main.downloadTitleText": "Изтегляне на презентация", - "PE.Controllers.Main.errorAccessDeny": "Опитвате се да извършите действие, за което нямате права.
            Моля, свържете се с администратора на сървъра за документи.", - "PE.Controllers.Main.errorBadImageUrl": "URL адресът на изображението е неправилен", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Връзката със сървъра е загубена. Вече не може да редактирате.", - "PE.Controllers.Main.errorConnectToServer": "Документът не може да бъде запасен. Моля, проверете настройките за връзка или се свържете с администратора си.
            Когато щракнете върху бутона 'OK', ще бъдете подканени да изтеглите документа.", - "PE.Controllers.Main.errorDatabaseConnection": "Външна грешка.
            Грешка при свързване към база данни. Моля, свържете се с екипа за поддръжка.", - "PE.Controllers.Main.errorDataEncrypted": "Получени са криптирани промени, които не могат да бъдат дешифрирани.", - "PE.Controllers.Main.errorDataRange": "Неправилен обхват от данни.", - "PE.Controllers.Main.errorDefaultMessage": "Код на грешка: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Възникна грешка по време на работата с документа.
            Използвайте опцията 'Download', за да запишете архивното копие на файла на твърдия диск на компютъра.", - "PE.Controllers.Main.errorFilePassProtect": "Файлът е защитен с парола и не може да бъде отворен.", - "PE.Controllers.Main.errorFileSizeExceed": "Размерът на файла надвишава ограничението, зададено за вашия сървър.
            Моля, свържете се с вашия администратор на Document Server за подробности.", - "PE.Controllers.Main.errorKeyEncrypt": "Дескриптор на неизвестен ключ", - "PE.Controllers.Main.errorKeyExpire": "Дескрипторът на ключовете е изтекъл", - "PE.Controllers.Main.errorProcessSaveResult": "Запазване е неуспешно.", - "PE.Controllers.Main.errorServerVersion": "Версията на редактора е актуализирана. Страницата ще бъде презаредена, за да приложи промените.", - "PE.Controllers.Main.errorStockChart": "Неправилен ред на ред. За изграждане на борсова карта поставете данните на листа в следния ред:
            цена на отваряне, максимална цена, мин. цена, цена на затваряне.", - "PE.Controllers.Main.errorUpdateVersion": "Версията на файла е променена. Страницата ще бъде презаредена.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Интернет връзката е възстановена и версията на файла е променена.
            Преди да продължите да работите, трябва да изтеглите файла или да копирате съдържанието му, за да сте сигурни, че нищо не е загубено, и след това да презаредите тази страница.", - "PE.Controllers.Main.errorUserDrop": "Файлът не може да бъде достъпен в момента.", - "PE.Controllers.Main.errorUsersExceed": "Превешен е броят на потребителите", - "PE.Controllers.Main.errorViewerDisconnect": "Връзката е загубена. Все още можете да прегледате документа, но не можете да го изтеглите, докато връзката не бъде възстановена.", - "PE.Controllers.Main.leavePageText": "Имате незапазени промени в този документ. Кликнете върху „Остани на тази страница“, за да изчакате за автоматично запаметяване на документа. Кликнете върху „Оставете тази страница“, за да отхвърлите всички незапазени промени.", - "PE.Controllers.Main.loadFontsTextText": "Данните се зареждат ...", - "PE.Controllers.Main.loadFontsTitleText": "Зареждане на данни", - "PE.Controllers.Main.loadFontTextText": "Данните се зареждат ...", - "PE.Controllers.Main.loadFontTitleText": "Зареждане на данни", - "PE.Controllers.Main.loadImagesTextText": "Изображенията се зареждат ...", - "PE.Controllers.Main.loadImagesTitleText": "Зареждане на изображения", - "PE.Controllers.Main.loadImageTextText": "Изображението се зарежда ...", - "PE.Controllers.Main.loadImageTitleText": "Зареждане на изображението", - "PE.Controllers.Main.loadingDocumentTextText": "Представянето се зарежда ...", - "PE.Controllers.Main.loadingDocumentTitleText": "Зареждане на презентацията", - "PE.Controllers.Main.loadThemeTextText": "Темата се зарежда ...", - "PE.Controllers.Main.loadThemeTitleText": "Зареждане на тема", - "PE.Controllers.Main.notcriticalErrorTitle": "Внимание", - "PE.Controllers.Main.openErrorText": "Възникна грешка при отварянето на файла", - "PE.Controllers.Main.openTextText": "Отваряне на документа ...", - "PE.Controllers.Main.openTitleText": "Отваряне на документ", - "PE.Controllers.Main.printTextText": "Отпечатване на документ ...", - "PE.Controllers.Main.printTitleText": "Отпечатване на документ", - "PE.Controllers.Main.reloadButtonText": "Презареждане на страницата", - "PE.Controllers.Main.requestEditFailedMessageText": "Някой редактира този документ в момента. Моля, опитайте отново по-късно.", - "PE.Controllers.Main.requestEditFailedTitleText": "Отказан достъп", - "PE.Controllers.Main.saveErrorText": "Възникна грешка при запазването на файла", - "PE.Controllers.Main.savePreparingText": "Подготовка за запазване", - "PE.Controllers.Main.savePreparingTitle": "Подготовка за запазване. Моля Изчакай...", - "PE.Controllers.Main.saveTextText": "Документът се запазва ...", - "PE.Controllers.Main.saveTitleText": "Запазване на документа", - "PE.Controllers.Main.scriptLoadError": "Връзката е твърде бавна, някои от компонентите не могат да бъдат заредени. Моля, презаредете страницата.", - "PE.Controllers.Main.splitDividerErrorText": "Брой на редовете трябва да бъде делител на %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Броят на колоните трябва да бъде по-малък от %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Брой на редовете трябва да бъде по-малък от %1", - "PE.Controllers.Main.textAnonymous": "Анонимен", - "PE.Controllers.Main.textBack": "Обратно", - "PE.Controllers.Main.textBuyNow": "Посетете уебсайта", - "PE.Controllers.Main.textCancel": "Отказ", - "PE.Controllers.Main.textClose": "Затвори ", - "PE.Controllers.Main.textCloseTip": "Докоснете, за да затворите върха.", - "PE.Controllers.Main.textContactUs": "Търговски отдел", - "PE.Controllers.Main.textCustomLoader": "Моля, имайте предвид, че според условията на лиценза нямате право да сменяте товарача.
            Моля, свържете се с нашия отдел Продажби, за да получите оферта.", - "PE.Controllers.Main.textDone": "Завършен", - "PE.Controllers.Main.textLoadingDocument": "Зареждане на презентацията", - "PE.Controllers.Main.textNoLicenseTitle": "Ограничение за връзка ONLYOFFICE", - "PE.Controllers.Main.textOK": "Добре", - "PE.Controllers.Main.textPaidFeature": "Платена функция", - "PE.Controllers.Main.textPassword": "Парола", - "PE.Controllers.Main.textPreloader": "Зареждане ...", - "PE.Controllers.Main.textShape": "Форма", - "PE.Controllers.Main.textTryUndoRedo": "Функции Undo/Redo са забранени за режима Fast co-edit.", - "PE.Controllers.Main.textUsername": "Потребител", - "PE.Controllers.Main.titleLicenseExp": "Лицензът е изтекъл", - "PE.Controllers.Main.titleServerVersion": "Редакторът е актуализиран", - "PE.Controllers.Main.txtArt": "Вашият текст тук", - "PE.Controllers.Main.txtBasicShapes": "Основни форми", - "PE.Controllers.Main.txtButtons": "Бутони", - "PE.Controllers.Main.txtCallouts": "Допълнителните описания", - "PE.Controllers.Main.txtCharts": "Диаграми", - "PE.Controllers.Main.txtClipArt": "Графична колекция", - "PE.Controllers.Main.txtDateTime": "Дата и час", - "PE.Controllers.Main.txtDiagram": "Умно изкуство", - "PE.Controllers.Main.txtDiagramTitle": "Заглавие на диаграмата", - "PE.Controllers.Main.txtEditingMode": "Задаване на режим на редактиране ...", - "PE.Controllers.Main.txtFiguredArrows": "Фигурни стрели", - "PE.Controllers.Main.txtFooter": "Долния", - "PE.Controllers.Main.txtHeader": "Заглавие", - "PE.Controllers.Main.txtImage": "Изображение", - "PE.Controllers.Main.txtLines": "Линии", - "PE.Controllers.Main.txtMath": "Математик", - "PE.Controllers.Main.txtMedia": "Средства", - "PE.Controllers.Main.txtNeedSynchronize": "Имате актуализации", - "PE.Controllers.Main.txtPicture": "Снимка", - "PE.Controllers.Main.txtProtected": "След като въведете паролата и отворите файла, текущата парола за файла ще бъде нулирана", - "PE.Controllers.Main.txtRectangles": "Правоъгълници", - "PE.Controllers.Main.txtSeries": "Серия", - "PE.Controllers.Main.txtSldLtTBlank": "Празно", - "PE.Controllers.Main.txtSldLtTChart": "Диаграма", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Диаграма и текст", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Картини и текст", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Клип и вертикален текст", - "PE.Controllers.Main.txtSldLtTCust": "Персонализиран", - "PE.Controllers.Main.txtSldLtTDgm": "Диаграма", - "PE.Controllers.Main.txtSldLtTFourObj": "Четири обекта", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Медия и текст", - "PE.Controllers.Main.txtSldLtTObj": "Заглавие и обект", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Обект и две обекти", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Обект и текст", - "PE.Controllers.Main.txtSldLtTObjOnly": "Обект", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Обект над текст", - "PE.Controllers.Main.txtSldLtTObjTx": "Заглавие, обект и надпис", - "PE.Controllers.Main.txtSldLtTPicTx": "Картина и надпис", - "PE.Controllers.Main.txtSldLtTSecHead": "Заглавие на раздел", - "PE.Controllers.Main.txtSldLtTTbl": "Таблица", - "PE.Controllers.Main.txtSldLtTTitle": "Заглавие", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Само заглавие", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Текст от две колони", - "PE.Controllers.Main.txtSldLtTTwoObj": "Два обекта", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Две обекти и обект", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Два обекта и текст", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Два обекта над текста", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Два текста и два обекта", - "PE.Controllers.Main.txtSldLtTTx": "Текст", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Текст и диаграма", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Текст и клип", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Текст и медия", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Текст и обект", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Текст и две обекти", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Текст над обект", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Вертикално заглавие и текст", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Вертикално заглавие и текст през графика", - "PE.Controllers.Main.txtSldLtTVertTx": "Вертикален текст", - "PE.Controllers.Main.txtSlideNumber": "Номер на слайда", - "PE.Controllers.Main.txtSlideSubtitle": "Слайд субтитри", - "PE.Controllers.Main.txtSlideText": "Текст на слайда", - "PE.Controllers.Main.txtSlideTitle": "Заглавие на слайда", - "PE.Controllers.Main.txtStarsRibbons": "Звезди и панделки", - "PE.Controllers.Main.txtXAxis": "X ос", - "PE.Controllers.Main.txtYAxis": "Y ос", - "PE.Controllers.Main.unknownErrorText": "Неизвестна грешка.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Вашият браузър не се поддържа.", - "PE.Controllers.Main.uploadImageExtMessage": "Неизвестен формат на изображението.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Няма качени изображения.", - "PE.Controllers.Main.uploadImageSizeMessage": "Превишено е ограничението за максимален размер на изображението.", - "PE.Controllers.Main.uploadImageTextText": "Качва се изображението ...", - "PE.Controllers.Main.uploadImageTitleText": "Качване на изображение", - "PE.Controllers.Main.waitText": "Моля, изчакайте...", - "PE.Controllers.Main.warnLicenseExceeded": "Броят на едновременните връзки към сървъра за документи е превишен и документът ще бъде отворен само за преглед.
            За повече информация се обърнете към администратора.", - "PE.Controllers.Main.warnLicenseExp": "Вашият лиценз е изтекъл.
            Моля, актуализирайте лиценза си и опреснете страницата.", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Броят на едновременните потребители е надхвърлен и документът ще бъде отворен само за преглед.
            За повече информация се свържете с администратора си.", - "PE.Controllers.Main.warnNoLicense": "Тази версия на редакторите на %1 има някои ограничения за едновременни връзки към сървъра за документи.
            Ако имате нужда от повече, моля обмислете закупуването на търговски лиценз.", - "PE.Controllers.Main.warnNoLicenseUsers": "Тази версия на редакторите на %1 има някои ограничения за едновременни потребители.
            Ако имате нужда от повече, моля обмислете закупуването на търговски лиценз.", - "PE.Controllers.Main.warnProcessRightsChange": "На вас е отказано правото да редактирате файла.", - "PE.Controllers.Search.textNoTextFound": "Текстът не е намерен", - "PE.Controllers.Search.textReplaceAll": "Замяна на всички", - "PE.Controllers.Settings.notcriticalErrorTitle": "Внимание", - "PE.Controllers.Settings.txtLoading": "Зареждане ...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Имате незапазени промени в този документ. Кликнете върху „Остани на тази страница“, за да изчакате за автоматично запаметяване на документа. Кликнете върху „Оставете тази страница“, за да отхвърлите всички незапазени промени.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Оставяте заявлението", - "PE.Controllers.Toolbar.leaveButtonText": "Излезете от тази страница", - "PE.Controllers.Toolbar.stayButtonText": "Остани на тази страница", - "PE.Views.AddImage.textAddress": "Адрес", - "PE.Views.AddImage.textBack": "Обратно", - "PE.Views.AddImage.textFromLibrary": "Картина от библиотеката", - "PE.Views.AddImage.textFromURL": "Картина от URL адрес", - "PE.Views.AddImage.textImageURL": "URL адрес на изображение", - "PE.Views.AddImage.textInsertImage": "Вмъкване на изображение", - "PE.Views.AddImage.textLinkSettings": "Настройки на връзката", - "PE.Views.AddLink.textBack": "Обратно", - "PE.Views.AddLink.textDisplay": "Показ", - "PE.Views.AddLink.textExternalLink": "Външен линк", - "PE.Views.AddLink.textFirst": "Първи слайд", - "PE.Views.AddLink.textInsert": "Вмъкни", - "PE.Views.AddLink.textInternalLink": "Плъзнете в тази презентация", - "PE.Views.AddLink.textLast": "Последен слайд", - "PE.Views.AddLink.textLink": "Връзка", - "PE.Views.AddLink.textLinkSlide": "Връзка към", - "PE.Views.AddLink.textLinkType": "Тип на връзката", - "PE.Views.AddLink.textNext": "Следващ слайд", - "PE.Views.AddLink.textNumber": "Номер на слайда", - "PE.Views.AddLink.textPrev": "Предишен слайд", - "PE.Views.AddLink.textTip": "Съвет на екрана", - "PE.Views.EditChart.textAddCustomColor": "Добавяне на цвят по избор", - "PE.Views.EditChart.textAlign": "Изравнете", - "PE.Views.EditChart.textAlignBottom": "Подравняване отдолу", - "PE.Views.EditChart.textAlignCenter": "Подравняване в центъра", - "PE.Views.EditChart.textAlignLeft": "Подравняване вляво", - "PE.Views.EditChart.textAlignMiddle": "Подравняване на средата", - "PE.Views.EditChart.textAlignRight": "Подравняване надясно", - "PE.Views.EditChart.textAlignTop": "Подравняване отгоре", - "PE.Views.EditChart.textBack": "Обратно", - "PE.Views.EditChart.textBackward": "Преместване назад", - "PE.Views.EditChart.textBorder": "Граница", - "PE.Views.EditChart.textColor": "Цвят", - "PE.Views.EditChart.textCustomColor": "Цвят по избор", - "PE.Views.EditChart.textFill": "Напълнете", - "PE.Views.EditChart.textForward": "Продължавай напред", - "PE.Views.EditChart.textRemoveChart": "Премахване на диаграмата", - "PE.Views.EditChart.textReorder": "Пренареждане", - "PE.Views.EditChart.textSize": "Размер", - "PE.Views.EditChart.textStyle": "Стил", - "PE.Views.EditChart.textToBackground": "Изпращане до фона", - "PE.Views.EditChart.textToForeground": "Доведете до преден план", - "PE.Views.EditChart.textType": "Тип", - "PE.Views.EditChart.txtDistribHor": "Разпределете хоризонтално", - "PE.Views.EditChart.txtDistribVert": "Разпределете вертикално", - "PE.Views.EditImage.textAddress": "Адрес", - "PE.Views.EditImage.textAlign": "Изравнете", - "PE.Views.EditImage.textAlignBottom": "Подравняване отдолу", - "PE.Views.EditImage.textAlignCenter": "Подравняване в центъра", - "PE.Views.EditImage.textAlignLeft": "Подравняване вляво", - "PE.Views.EditImage.textAlignMiddle": "Подравняване на средата", - "PE.Views.EditImage.textAlignRight": "Подравняване надясно", - "PE.Views.EditImage.textAlignTop": "Подравняване отгоре", - "PE.Views.EditImage.textBack": "Обратно", - "PE.Views.EditImage.textBackward": "Преместване назад", - "PE.Views.EditImage.textDefault": "Действителен размер", - "PE.Views.EditImage.textForward": "Продължавай напред", - "PE.Views.EditImage.textFromLibrary": "Картина от библиотеката", - "PE.Views.EditImage.textFromURL": "Картина от URL адрес", - "PE.Views.EditImage.textImageURL": "URL адрес на изображение", - "PE.Views.EditImage.textLinkSettings": "Настройки на връзката", - "PE.Views.EditImage.textRemove": "Премахване на изображението", - "PE.Views.EditImage.textReorder": "Пренареждане", - "PE.Views.EditImage.textReplace": "Заменете", - "PE.Views.EditImage.textReplaceImg": "Замяна на изображението", - "PE.Views.EditImage.textToBackground": "Изпращане до фона", - "PE.Views.EditImage.textToForeground": "Доведете до преден план", - "PE.Views.EditImage.txtDistribHor": "Разпределете хоризонтално", - "PE.Views.EditImage.txtDistribVert": "Разпределете вертикално", - "PE.Views.EditLink.textBack": "Обратно", - "PE.Views.EditLink.textDisplay": "Показ", - "PE.Views.EditLink.textEdit": "Редактиране на връзката", - "PE.Views.EditLink.textExternalLink": "Външен линк", - "PE.Views.EditLink.textFirst": "Първи слайд", - "PE.Views.EditLink.textInternalLink": "Плъзнете в тази презентация", - "PE.Views.EditLink.textLast": "Последен слайд", - "PE.Views.EditLink.textLink": "Връзка", - "PE.Views.EditLink.textLinkSlide": "Връзка към", - "PE.Views.EditLink.textLinkType": "Тип на връзката", - "PE.Views.EditLink.textNext": "Следващ слайд", - "PE.Views.EditLink.textNumber": "Номер на слайда", - "PE.Views.EditLink.textPrev": "Предишен слайд", - "PE.Views.EditLink.textRemove": "Премахване на връзката", - "PE.Views.EditLink.textTip": "Съвет на екрана", - "PE.Views.EditShape.textAddCustomColor": "Добавяне на цвят по избор", - "PE.Views.EditShape.textAlign": "Изравнете", - "PE.Views.EditShape.textAlignBottom": "Подравняване отдолу", - "PE.Views.EditShape.textAlignCenter": "Подравняване в центъра", - "PE.Views.EditShape.textAlignLeft": "Подравняване вляво", - "PE.Views.EditShape.textAlignMiddle": "Подравняване на средата", - "PE.Views.EditShape.textAlignRight": "Подравняване надясно", - "PE.Views.EditShape.textAlignTop": "Подравняване отгоре", - "PE.Views.EditShape.textBack": "Обратно", - "PE.Views.EditShape.textBackward": "Преместване назад", - "PE.Views.EditShape.textBorder": "Граница", - "PE.Views.EditShape.textColor": "Цвят", - "PE.Views.EditShape.textCustomColor": "Цвят по избор", - "PE.Views.EditShape.textEffects": "Ефекти", - "PE.Views.EditShape.textFill": "Напълнете", - "PE.Views.EditShape.textForward": "Продължавай напред", - "PE.Views.EditShape.textOpacity": "Непрозрачност", - "PE.Views.EditShape.textRemoveShape": "Премахване на формата", - "PE.Views.EditShape.textReorder": "Пренареждане", - "PE.Views.EditShape.textReplace": "Заменете", - "PE.Views.EditShape.textSize": "Размер", - "PE.Views.EditShape.textStyle": "Стил", - "PE.Views.EditShape.textToBackground": "Изпращане до фона", - "PE.Views.EditShape.textToForeground": "Доведете до преден план", - "PE.Views.EditShape.txtDistribHor": "Разпределете хоризонтално", - "PE.Views.EditShape.txtDistribVert": "Разпределете вертикално", - "PE.Views.EditSlide.textAddCustomColor": "Добавяне на цвят по избор", - "PE.Views.EditSlide.textApplyAll": "Приложи към всички слайдове", - "PE.Views.EditSlide.textBack": "Обратно", - "PE.Views.EditSlide.textBlack": "Чрез черно", - "PE.Views.EditSlide.textBottom": "Дъно", - "PE.Views.EditSlide.textBottomLeft": "Долу ляво", - "PE.Views.EditSlide.textBottomRight": "Долу вдясно", - "PE.Views.EditSlide.textClock": "Часовник", - "PE.Views.EditSlide.textClockwise": "По часовниковата стрелка", - "PE.Views.EditSlide.textColor": "Цвят", - "PE.Views.EditSlide.textCounterclockwise": "Обратно на часовниковата стрелка", - "PE.Views.EditSlide.textCover": "Покрийте", - "PE.Views.EditSlide.textCustomColor": "Цвят по избор", - "PE.Views.EditSlide.textDelay": "Закъснение", - "PE.Views.EditSlide.textDuplicateSlide": "Дублиране на слайд", - "PE.Views.EditSlide.textDuration": "Продължителност", - "PE.Views.EditSlide.textEffect": "Ефект", - "PE.Views.EditSlide.textFade": "Замирам", - "PE.Views.EditSlide.textFill": "Напълнете", - "PE.Views.EditSlide.textHorizontalIn": "Хоризонтално In", - "PE.Views.EditSlide.textHorizontalOut": "Хоризонтално навън", - "PE.Views.EditSlide.textLayout": "Оформление", - "PE.Views.EditSlide.textLeft": "Наляво", - "PE.Views.EditSlide.textNone": "Нито един", - "PE.Views.EditSlide.textOpacity": "Непрозрачност", - "PE.Views.EditSlide.textPush": "Тласък", - "PE.Views.EditSlide.textRemoveSlide": "Изтриване на слайда", - "PE.Views.EditSlide.textRight": "Прав", - "PE.Views.EditSlide.textSmoothly": "Плавно", - "PE.Views.EditSlide.textSplit": "Разцепване", - "PE.Views.EditSlide.textStartOnClick": "Старт на кликване", - "PE.Views.EditSlide.textStyle": "Стил", - "PE.Views.EditSlide.textTheme": "Тема", - "PE.Views.EditSlide.textTop": "Отгоре", - "PE.Views.EditSlide.textTopLeft": "Горе вляво", - "PE.Views.EditSlide.textTopRight": "Горе в дясно", - "PE.Views.EditSlide.textTransition": "Преход", - "PE.Views.EditSlide.textType": "Тип", - "PE.Views.EditSlide.textUnCover": "Разкрийте", - "PE.Views.EditSlide.textVerticalIn": "Вертикално в", - "PE.Views.EditSlide.textVerticalOut": "Вертикален изход", - "PE.Views.EditSlide.textWedge": "Клин", - "PE.Views.EditSlide.textWipe": "Изтриване", - "PE.Views.EditSlide.textZoom": "Мащаб", - "PE.Views.EditSlide.textZoomIn": "Увеличавам", - "PE.Views.EditSlide.textZoomOut": "Отдалечавам", - "PE.Views.EditSlide.textZoomRotate": "Увеличаване и завъртане", - "PE.Views.EditTable.textAddCustomColor": "Добавяне на цвят по избор", - "PE.Views.EditTable.textAlign": "Изравнете", - "PE.Views.EditTable.textAlignBottom": "Подравняване отдолу", - "PE.Views.EditTable.textAlignCenter": "Подравняване в центъра", - "PE.Views.EditTable.textAlignLeft": "Подравняване вляво", - "PE.Views.EditTable.textAlignMiddle": "Подравняване на средата", - "PE.Views.EditTable.textAlignRight": "Подравняване надясно", - "PE.Views.EditTable.textAlignTop": "Подравняване отгоре", - "PE.Views.EditTable.textBack": "Обратно", - "PE.Views.EditTable.textBackward": "Преместване назад", - "PE.Views.EditTable.textBandedColumn": "Колонна лента", - "PE.Views.EditTable.textBandedRow": "Обвързан ред", - "PE.Views.EditTable.textBorder": "Граница", - "PE.Views.EditTable.textCellMargins": "Маржове на клетките", - "PE.Views.EditTable.textColor": "Цвят", - "PE.Views.EditTable.textCustomColor": "Цвят по избор", - "PE.Views.EditTable.textFill": "Напълнете", - "PE.Views.EditTable.textFirstColumn": "Първа колона", - "PE.Views.EditTable.textForward": "Продължавай напред", - "PE.Views.EditTable.textHeaderRow": "Ред", - "PE.Views.EditTable.textLastColumn": "Последна колона", - "PE.Views.EditTable.textOptions": "Настроики", - "PE.Views.EditTable.textRemoveTable": "Премахване на таблицата", - "PE.Views.EditTable.textReorder": "Пренареждане", - "PE.Views.EditTable.textSize": "Размер", - "PE.Views.EditTable.textStyle": "Стил", - "PE.Views.EditTable.textStyleOptions": "Опции за стил", - "PE.Views.EditTable.textTableOptions": "Опции на таблицата", - "PE.Views.EditTable.textToBackground": "Изпращане до фона", - "PE.Views.EditTable.textToForeground": "Доведете до преден план", - "PE.Views.EditTable.textTotalRow": "Общо ред", - "PE.Views.EditTable.txtDistribHor": "Разпределете хоризонтално", - "PE.Views.EditTable.txtDistribVert": "Разпределете вертикално", - "PE.Views.EditText.textAddCustomColor": "Добавяне на цвят по избор", - "PE.Views.EditText.textAdditional": "Допълнителен", - "PE.Views.EditText.textAdditionalFormat": "Допълнително форматиране", - "PE.Views.EditText.textAfter": "След", - "PE.Views.EditText.textAllCaps": "Всички шапки", - "PE.Views.EditText.textAutomatic": "Автоматичен", - "PE.Views.EditText.textBack": "Обратно", - "PE.Views.EditText.textBefore": "Преди", - "PE.Views.EditText.textBullets": "Маркиран списък", - "PE.Views.EditText.textCharacterBold": "П", - "PE.Views.EditText.textCharacterItalic": "К", - "PE.Views.EditText.textCharacterStrikethrough": "З", - "PE.Views.EditText.textCharacterUnderline": "У", - "PE.Views.EditText.textCustomColor": "Цвят по избор", - "PE.Views.EditText.textDblStrikethrough": "Двойно зачертаване", - "PE.Views.EditText.textDblSuperscript": "Горен индекс", - "PE.Views.EditText.textFontColor": "Цвят на шрифта", - "PE.Views.EditText.textFontColors": "Цветове на шрифта", - "PE.Views.EditText.textFonts": "Шрифт", - "PE.Views.EditText.textFromText": "Разстояние от текста", - "PE.Views.EditText.textLetterSpacing": "Разстояние между буквите", - "PE.Views.EditText.textLineSpacing": "Интервал между редовете", - "PE.Views.EditText.textNone": "Нито един", - "PE.Views.EditText.textNumbers": "Численост", - "PE.Views.EditText.textSize": "Размер", - "PE.Views.EditText.textSmallCaps": "Малки букви", - "PE.Views.EditText.textStrikethrough": "Зачеркнато", - "PE.Views.EditText.textSubscript": "Долен", - "PE.Views.Search.textCase": "Различаващ главни от малки букви", - "PE.Views.Search.textDone": "Завършен", - "PE.Views.Search.textFind": "Намирам", - "PE.Views.Search.textFindAndReplace": "Намерете и заменете", - "PE.Views.Search.textReplace": "Заменете", - "PE.Views.Search.textSearch": "Търсене", - "PE.Views.Settings. textComment": "Коментар", - "PE.Views.Settings.mniSlideStandard": "Стандартно (4: 3)", - "PE.Views.Settings.mniSlideWide": "Широк екран (16: 9)", - "PE.Views.Settings.textAbout": "Относно", - "PE.Views.Settings.textAddress": "адрес", - "PE.Views.Settings.textApplication": "Приложение", - "PE.Views.Settings.textApplicationSettings": "Настройки на приложението", - "PE.Views.Settings.textAuthor": "Автор", - "PE.Views.Settings.textBack": "Обратно", - "PE.Views.Settings.textCentimeter": "Сантиметър", - "PE.Views.Settings.textCollaboration": "Сътрудничество", - "PE.Views.Settings.textColorSchemes": "Цветова схема", - "PE.Views.Settings.textCreated": "Създаден", - "PE.Views.Settings.textCreateDate": "Дата на създаване", - "PE.Views.Settings.textDone": "Завършен", - "PE.Views.Settings.textDownload": "Изтегли", - "PE.Views.Settings.textDownloadAs": "Изтеглете като ...", - "PE.Views.Settings.textEditPresent": "Редактиране на презентацията", - "PE.Views.Settings.textEmail": "електронна поща", - "PE.Views.Settings.textFind": "Намирам", - "PE.Views.Settings.textFindAndReplace": "Намерете и заменете", - "PE.Views.Settings.textHelp": "Помощ", - "PE.Views.Settings.textInch": "Инч", - "PE.Views.Settings.textLastModified": "Последно модифициран", - "PE.Views.Settings.textLastModifiedBy": "Последно модифициран от", - "PE.Views.Settings.textLoading": "Зареждане ... ", - "PE.Views.Settings.textLocation": "местоположение", - "PE.Views.Settings.textOwner": "собственик", - "PE.Views.Settings.textPoint": "Точка", - "PE.Views.Settings.textPoweredBy": "Задвижвани от", - "PE.Views.Settings.textPresentInfo": "Информация за презентация", - "PE.Views.Settings.textPresentSettings": "Настройка на презентация", - "PE.Views.Settings.textPresentSetup": "Настройка на презентацията", - "PE.Views.Settings.textPresentTitle": "Заглавие на презентацията", - "PE.Views.Settings.textPrint": "Печат", - "PE.Views.Settings.textSettings": "Настройки", - "PE.Views.Settings.textSlideSize": "Размер на слайда", - "PE.Views.Settings.textSpellcheck": "Проверка на правописа", - "PE.Views.Settings.textSubject": "Относно", - "PE.Views.Settings.textTel": "тел", - "PE.Views.Settings.textTitle": "Заглавие", - "PE.Views.Settings.textUnitOfMeasurement": "Единица за измерване", - "PE.Views.Settings.textUploaded": "Качено", - "PE.Views.Settings.textVersion": "Версия", - "PE.Views.Settings.unknownText": "Неизвестен", - "PE.Views.Toolbar.textBack": "Обратно" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/cs.json b/apps/presentationeditor/mobile/locale/cs.json index 94badd304..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/cs.json +++ b/apps/presentationeditor/mobile/locale/cs.json @@ -1,523 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Přidat odpověď", - "Common.Controllers.Collaboration.textCancel": "Zrušit", - "Common.Controllers.Collaboration.textDeleteComment": "Smazat komentář", - "Common.Controllers.Collaboration.textDeleteReply": "Smazat odpověď", - "Common.Controllers.Collaboration.textEditUser": "Uživatelé, kteří soubor právě upravují:", - "Common.UI.ThemeColorPalette.textCustomColors": "Uživatelsky určené barvy", - "Common.UI.ThemeColorPalette.textStandartColors": "Standardní barvy", - "Common.UI.ThemeColorPalette.textThemeColors": "Barvy tématu", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Přidat odpověď", - "Common.Views.Collaboration.textBack": "Zpět", - "Common.Views.Collaboration.textCancel": "Zrušit", - "Common.Views.Collaboration.textCollaboration": "Spolupráce", - "Common.Views.Collaboration.textEditUsers": "Uživatelé", - "Common.Views.Collaboration.textNoComments": "Tato prezentace neobsahuje komenáře", - "Common.Views.Collaboration.textСomments": "Komentáře", - "PE.Controllers.AddContainer.textImage": "Obrázek", - "PE.Controllers.AddContainer.textLink": "Odkaz", - "PE.Controllers.AddContainer.textShape": "Tvar", - "PE.Controllers.AddContainer.textSlide": "Snímek", - "PE.Controllers.AddContainer.textTable": "Tabulka", - "PE.Controllers.AddImage.textEmptyImgUrl": "Musíte upřesnit URL obrázku.", - "PE.Controllers.AddImage.txtNotUrl": "Toto pole by mělo obsahovat adresu URL ve formátu 'http://www.example.com'", - "PE.Controllers.AddLink.textDefault": "Vybraný text", - "PE.Controllers.AddLink.textExternalLink": "Externí odkaz", - "PE.Controllers.AddLink.textFirst": "První snímek", - "PE.Controllers.AddLink.textInternalLink": "Snímek v této prezentaci", - "PE.Controllers.AddLink.textLast": "Poslední snímek", - "PE.Controllers.AddLink.textNext": "Další snímek", - "PE.Controllers.AddLink.textPrev": "Předchozí snímek", - "PE.Controllers.AddLink.textSlide": "Snímek", - "PE.Controllers.AddLink.txtNotUrl": "Toto pole by mělo obsahovat adresu URL ve formátu 'http://www.example.com'", - "PE.Controllers.AddOther.textCancel": "Zrušit", - "PE.Controllers.AddOther.textContinue": "Pokračovat", - "PE.Controllers.AddOther.textDelete": "Smazat", - "PE.Controllers.AddTable.textCancel": "Zrušit", - "PE.Controllers.AddTable.textColumns": "Sloupce", - "PE.Controllers.AddTable.textRows": "Řádky", - "PE.Controllers.AddTable.textTableSize": "Velikost tabulky", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Akce kopírovat, vyjmout a vložit použitím kontextové nabídky budou prováděny pouze v rámci právě otevřeného souboru.", - "PE.Controllers.DocumentHolder.menuAddComment": "Přidat komentář", - "PE.Controllers.DocumentHolder.menuAddLink": "Přidat odkaz", - "PE.Controllers.DocumentHolder.menuCopy": "Kopírovat", - "PE.Controllers.DocumentHolder.menuCut": "Vyjmout", - "PE.Controllers.DocumentHolder.menuDelete": "Odstranit", - "PE.Controllers.DocumentHolder.menuEdit": "Upravit", - "PE.Controllers.DocumentHolder.menuMore": "Více", - "PE.Controllers.DocumentHolder.menuOpenLink": "Otevřít odkaz", - "PE.Controllers.DocumentHolder.menuPaste": "Vložit", - "PE.Controllers.DocumentHolder.sheetCancel": "Zrušit", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Akce kopírovat, vyjmout a vložit", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Znovu už nezobrazovat", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Konec náhledu snímku. Opustíte kliknutím.", - "PE.Controllers.EditContainer.textChart": "Graf", - "PE.Controllers.EditContainer.textHyperlink": "Hypertextový odkaz", - "PE.Controllers.EditContainer.textImage": "Obrázek", - "PE.Controllers.EditContainer.textSettings": "Nastavení", - "PE.Controllers.EditContainer.textShape": "Tvar", - "PE.Controllers.EditContainer.textSlide": "Snímek", - "PE.Controllers.EditContainer.textTable": "Tabulka", - "PE.Controllers.EditContainer.textText": "Text", - "PE.Controllers.EditImage.textEmptyImgUrl": "Musíte upřesnit URL obrázku.", - "PE.Controllers.EditImage.txtNotUrl": "Toto pole by mělo obsahovat adresu URL ve formátu 'http://www.example.com'", - "PE.Controllers.EditLink.textDefault": "Vybraný text", - "PE.Controllers.EditLink.textExternalLink": "Externí odkaz", - "PE.Controllers.EditLink.textFirst": "První snímek", - "PE.Controllers.EditLink.textInternalLink": "Snímek v této prezentaci", - "PE.Controllers.EditLink.textLast": "Poslední snímek", - "PE.Controllers.EditLink.textNext": "Další snímek", - "PE.Controllers.EditLink.textPrev": "Předchozí snímek", - "PE.Controllers.EditLink.textSlide": "Snímek", - "PE.Controllers.EditLink.txtNotUrl": "Toto pole by mělo obsahovat adresu URL ve formátu 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Automaticky", - "PE.Controllers.EditText.textFonts": "Fonty", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Zadejte vaše heslo:", - "PE.Controllers.Main.advDRMOptions": "Chráněný soubor", - "PE.Controllers.Main.advDRMPassword": "Heslo", - "PE.Controllers.Main.applyChangesTextText": "Načítání dat...", - "PE.Controllers.Main.applyChangesTitleText": "Načítání dat", - "PE.Controllers.Main.closeButtonText": "Zavřít soubor", - "PE.Controllers.Main.convertationTimeoutText": "Vypršel čas konverze.", - "PE.Controllers.Main.criticalErrorExtText": "Stisknutím tlačítka \"OK\" se vrátíte do seznamu dokumentů.", - "PE.Controllers.Main.criticalErrorTitle": "Chyba", - "PE.Controllers.Main.downloadErrorText": "Stahování selhalo.", - "PE.Controllers.Main.downloadTextText": "Stahování prezentace…", - "PE.Controllers.Main.downloadTitleText": "Stahování prezentace", - "PE.Controllers.Main.errorAccessDeny": "Pokoušíte se provést akci, na kterou nemáte oprávnění.
            Prosím, kontaktujte administrátora vašeho Dokumentového serveru.", - "PE.Controllers.Main.errorBadImageUrl": "Adresa URL obrázku je nesprávná", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Serverové připojení bylo ztraceno. Nadále nemůžete editovat.", - "PE.Controllers.Main.errorConnectToServer": "Dokument nelze uložit. Prosím, zkontrolujte nastavení vašeho připojení nebo kontaktujte vašeho administrátora.
            Při kliknutí na tlačítko \"OK\" budete vyzváni ke stažení dokumentu.", - "PE.Controllers.Main.errorDatabaseConnection": "Externí chyba.
            Chyba připojení k databázi. Prosím, kontaktujte podporu.", - "PE.Controllers.Main.errorDataEncrypted": "Obdrženy šifrované změny – bez hesla je není možné zobrazit.", - "PE.Controllers.Main.errorDataRange": "Nesprávný datový rozsah.", - "PE.Controllers.Main.errorDefaultMessage": "Kód chyby: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Při práci na dokumentu došlo k chybě.
            Použijte volbu „Stáhnout“ a uložte si soubor jako zálohu na svůj počítač.", - "PE.Controllers.Main.errorFilePassProtect": "Soubor je chráněn heslem, bez kterého jej nelze otevřít.", - "PE.Controllers.Main.errorFileSizeExceed": "Velikost souboru překračuje omezení nastavená na serveru, který využíváte.
            Ohledně podrobností se obraťte na správce dokumentového serveru.", - "PE.Controllers.Main.errorKeyEncrypt": "Neznámý klíč deskriptoru", - "PE.Controllers.Main.errorKeyExpire": "Klíč deskriptoru vypršel", - "PE.Controllers.Main.errorProcessSaveResult": "Ukládání selhalo.", - "PE.Controllers.Main.errorServerVersion": "Verze editoru byla aktualizována. Stránka bude znovu načtena, aby se provedly změny.", - "PE.Controllers.Main.errorStockChart": "Nespravné pořadí řádků. Chcete-li vytvořit burzovní graf umístěte data na list v následujícím pořadí:
            otevírací cena, maximální cena, minimální cena, uzavírací cena.", - "PE.Controllers.Main.errorUpdateVersion": "Verze souboru byla změněna. Stránka bude znovu načtena.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Připojení k Internetu bylo obnoveno a verze souboru byla změněna.
            Než budete moci pokračovat v práci, bude třeba si soubor stáhnout nebo si zkopírovat jeho obsah, abyste si zajistili, že se nic neztratí a až poté tuto stránku znovu načtěte.", - "PE.Controllers.Main.errorUserDrop": "Tento soubor není nyní přístupný.", - "PE.Controllers.Main.errorUsersExceed": "Počet uživatelů byl překročen", - "PE.Controllers.Main.errorViewerDisconnect": "Spojení je přerušeno. Stále můžete zobrazit dokument,
            ale nebudete moci stahovat, dokud neobnovíte připojení a nenačtete stránku znovu.", - "PE.Controllers.Main.leavePageText": "V tomto dokumentu máte neuložené změny. Pokud o ně nechcete přijít, klikněte na „Zůstat na této stránce“, poté vyčkejte na automatické uložení dokumentu. V opačném případě klikněte na „Opustit tuto stránku“ a všechny neuložené změny budou zahozeny.", - "PE.Controllers.Main.loadFontsTextText": "Načítání dat...", - "PE.Controllers.Main.loadFontsTitleText": "Načítání dat", - "PE.Controllers.Main.loadFontTextText": "Načítání dat...", - "PE.Controllers.Main.loadFontTitleText": "Načítání dat", - "PE.Controllers.Main.loadImagesTextText": "Načítání obrázků...", - "PE.Controllers.Main.loadImagesTitleText": "Načítání obrázků", - "PE.Controllers.Main.loadImageTextText": "Načítání obrázku...", - "PE.Controllers.Main.loadImageTitleText": "Načítání obrázku", - "PE.Controllers.Main.loadingDocumentTextText": "Načítám prezentace...", - "PE.Controllers.Main.loadingDocumentTitleText": "Načítání prezentace", - "PE.Controllers.Main.loadThemeTextText": "Načítání tématu...", - "PE.Controllers.Main.loadThemeTitleText": "Načítání tématu", - "PE.Controllers.Main.notcriticalErrorTitle": "Varování", - "PE.Controllers.Main.openErrorText": "Při otevírání souboru došlo k chybě.", - "PE.Controllers.Main.openTextText": "Otevírání dokumentu...", - "PE.Controllers.Main.openTitleText": "Otevírání dokumentu", - "PE.Controllers.Main.printTextText": "Tisknutí dokumentu...", - "PE.Controllers.Main.printTitleText": "Tisknutí dokumentu", - "PE.Controllers.Main.reloadButtonText": "Znovu načíst stránku", - "PE.Controllers.Main.requestEditFailedMessageText": "Někdo právě upravuje tento dokument. Prosím zkuste to znovu později.", - "PE.Controllers.Main.requestEditFailedTitleText": "Přístup zamítnut", - "PE.Controllers.Main.saveErrorText": "Během ukládání souboru došlo k chybě.", - "PE.Controllers.Main.savePreparingText": "Příprava na ukládání", - "PE.Controllers.Main.savePreparingTitle": "Příprava ukládání. Prosím čekejte...", - "PE.Controllers.Main.saveTextText": "Ukládání dokumentu...", - "PE.Controllers.Main.saveTitleText": "Ukládání dokumentu", - "PE.Controllers.Main.scriptLoadError": "Připojení je příliš pomalé, některé součásti se nepodařilo načíst. Načtěte stránku znovu.", - "PE.Controllers.Main.splitDividerErrorText": "Počet řádků musí být dělitelem 1%", - "PE.Controllers.Main.splitMaxColsErrorText": "Počet sloupců musí být menší než 1%", - "PE.Controllers.Main.splitMaxRowsErrorText": "Počet řádků musí být menší než 1%", - "PE.Controllers.Main.textAnonymous": "Anonymní", - "PE.Controllers.Main.textBack": "Zpět", - "PE.Controllers.Main.textBuyNow": "Navštívit webovou stránku", - "PE.Controllers.Main.textCancel": "Zrušit", - "PE.Controllers.Main.textClose": "Zavřít", - "PE.Controllers.Main.textCloseTip": "Klepnutím zavřete nápovědu.", - "PE.Controllers.Main.textContactUs": "Obchodní oddělení", - "PE.Controllers.Main.textCustomLoader": "Mějte na paměti, že dle podmínek licence nejste oprávněni měnit načítač.
            Pro získání nabídky se obraťte na naše obchodní oddělení.", - "PE.Controllers.Main.textDone": "Hotovo", - "PE.Controllers.Main.textLoadingDocument": "Načítání prezentace", - "PE.Controllers.Main.textNoLicenseTitle": "omezení na %1 spojení", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Placená funkce", - "PE.Controllers.Main.textPassword": "Heslo", - "PE.Controllers.Main.textPreloader": "Nahrávám...", - "PE.Controllers.Main.textShape": "Tvar", - "PE.Controllers.Main.textTryUndoRedo": "Funkce zpět/zopakovat jsou vypnuty pro rychlý co-editační režim.", - "PE.Controllers.Main.textUsername": "Uživatelské jméno ", - "PE.Controllers.Main.titleLicenseExp": "Platnost licence vypršela", - "PE.Controllers.Main.titleServerVersion": "Editor byl aktualizován", - "PE.Controllers.Main.txtArt": "Zde napište text", - "PE.Controllers.Main.txtBasicShapes": "Základní tvary", - "PE.Controllers.Main.txtButtons": "Tlačítka", - "PE.Controllers.Main.txtCallouts": "Bubliny", - "PE.Controllers.Main.txtCharts": "Grafy", - "PE.Controllers.Main.txtClipArt": "Klipart", - "PE.Controllers.Main.txtDateTime": "Datum a čas", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Nadpis grafu", - "PE.Controllers.Main.txtEditingMode": "Nastavit editační režim...", - "PE.Controllers.Main.txtFiguredArrows": "Orientační šipky", - "PE.Controllers.Main.txtFooter": "Zápatí", - "PE.Controllers.Main.txtHeader": "Záhlaví", - "PE.Controllers.Main.txtImage": "Obrázek", - "PE.Controllers.Main.txtLines": "Čáry", - "PE.Controllers.Main.txtMath": "Matematika", - "PE.Controllers.Main.txtMedia": "Média", - "PE.Controllers.Main.txtNeedSynchronize": "Máte nové aktualizace", - "PE.Controllers.Main.txtPicture": "Obrázek", - "PE.Controllers.Main.txtProtected": "Jakmile zadáte heslo a soubor otevřete, stávající heslo k souboru bude resetováno", - "PE.Controllers.Main.txtRectangles": "Obdelníky", - "PE.Controllers.Main.txtSeries": "Řady", - "PE.Controllers.Main.txtSldLtTBlank": "Prázdný", - "PE.Controllers.Main.txtSldLtTChart": "Graf", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Graf a text", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Klipart a text", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Klipart a svislý text", - "PE.Controllers.Main.txtSldLtTCust": "Vlastní", - "PE.Controllers.Main.txtSldLtTDgm": "Diagram", - "PE.Controllers.Main.txtSldLtTFourObj": "Čtyři objekty", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Média a text", - "PE.Controllers.Main.txtSldLtTObj": "Název a objekt", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Objekt a dva objekty", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objekt a text", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objekt", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objekt nad textem", - "PE.Controllers.Main.txtSldLtTObjTx": "Název, objekt a popisek", - "PE.Controllers.Main.txtSldLtTPicTx": "Obrázek a popisek", - "PE.Controllers.Main.txtSldLtTSecHead": "Záhlaví sekce", - "PE.Controllers.Main.txtSldLtTTbl": "Tabulka", - "PE.Controllers.Main.txtSldLtTTitle": "Název", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Jen název", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Text ve dvou sloupcích", - "PE.Controllers.Main.txtSldLtTTwoObj": "Dva objekty", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Dva objekty a objekt", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Dva objekty a text", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Dva objekty nad textem", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Dva texty a dva objekty", - "PE.Controllers.Main.txtSldLtTTx": "Text", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Text a graf", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Text a Clip Art", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Text a média", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Text a objekt", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Text a dva objekty", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Text nad objektem", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Svislý název a text", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Svislý název a text nad grafem", - "PE.Controllers.Main.txtSldLtTVertTx": "Svislý text", - "PE.Controllers.Main.txtSlideNumber": "Číslo snímku", - "PE.Controllers.Main.txtSlideSubtitle": "Podtitulek snímku", - "PE.Controllers.Main.txtSlideText": "Text snímku", - "PE.Controllers.Main.txtSlideTitle": "Název snímku", - "PE.Controllers.Main.txtStarsRibbons": "Hvězdy a stuhy", - "PE.Controllers.Main.txtXAxis": "Osa X", - "PE.Controllers.Main.txtYAxis": "Osa Y", - "PE.Controllers.Main.unknownErrorText": "Neznámá chyba.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Váš prohlížeč není podporován.", - "PE.Controllers.Main.uploadImageExtMessage": "Neznámý formát obrázku.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Žádné obrázky nenahrány.", - "PE.Controllers.Main.uploadImageSizeMessage": "Překročen maximální limit velikosti obrázku.", - "PE.Controllers.Main.uploadImageTextText": "Nahrávání obrázku...", - "PE.Controllers.Main.uploadImageTitleText": "Nahrávání obrázku", - "PE.Controllers.Main.waitText": "Čekejte prosím ...", - "PE.Controllers.Main.warnLicenseExceeded": "Počet souběžných spojení na dokumentový server byl překročen a dokument bude otevřen pouze pro prohlížení.
            Ohledně podrobností se obraťte na svého správce.", - "PE.Controllers.Main.warnLicenseExp": "Platnost vaší licence vypršela.
            Prosím, aktualizujte vaší licenci a obnovte stránku.", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Počet souběžných uživatelů byl překročen a dokument bude otevřen pouze pro čtení.
            Ohledně podrobností se obraťte na svého správce.", - "PE.Controllers.Main.warnNoLicense": "Používáte verzi open source %1. Verze má omezení pro souběžné připojení k dokumentovému serveru (20 připojení najednou).
            Pokud budete potřebovat více, tak prosím zvažte koupi komerční licence.", - "PE.Controllers.Main.warnNoLicenseUsers": "Tato verze editorů %1 má určitá omezení ohledně souběžně připojených uživatelů.
            Pokud potřebujete více, zvažte zakoupení komerční licence.", - "PE.Controllers.Main.warnProcessRightsChange": "Bylo Vám odebráno právo upravovat tento soubor.", - "PE.Controllers.Search.textNoTextFound": "Text nebyl nalezen", - "PE.Controllers.Search.textReplaceAll": "Nahradit vše", - "PE.Controllers.Settings.notcriticalErrorTitle": "Varování", - "PE.Controllers.Settings.txtLoading": "Nahrávám...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "V tomto dokumentu máte neuložené změny. Pokud o ně nechcete přijít, klikněte na „Zůstat na této stránce“, poté vyčkejte na automatické uložení dokumentu. V opačném případě klikněte na „Opustit tuto stránku“ a všechny neuložené změny budou zahozeny.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Opouštíte aplikaci", - "PE.Controllers.Toolbar.leaveButtonText": "Opustit tuto stránku", - "PE.Controllers.Toolbar.stayButtonText": "Zůstat na této stránce", - "PE.Views.AddImage.textAddress": "Adresa", - "PE.Views.AddImage.textBack": "Zpět", - "PE.Views.AddImage.textFromLibrary": "Obrázek z knihovny", - "PE.Views.AddImage.textFromURL": "Obrázek z adresy URL", - "PE.Views.AddImage.textImageURL": "URL obrázku", - "PE.Views.AddImage.textInsertImage": "Vložit obrázek", - "PE.Views.AddImage.textLinkSettings": "Nastavení odkazů", - "PE.Views.AddLink.textBack": "Zpět", - "PE.Views.AddLink.textDisplay": "Zobrazit", - "PE.Views.AddLink.textExternalLink": "Externí odkaz", - "PE.Views.AddLink.textFirst": "První snímek", - "PE.Views.AddLink.textInsert": "Vložit", - "PE.Views.AddLink.textInternalLink": "Snímek v této prezentaci", - "PE.Views.AddLink.textLast": "Poslední snímek", - "PE.Views.AddLink.textLink": "Odkaz", - "PE.Views.AddLink.textLinkSlide": "Odkaz na", - "PE.Views.AddLink.textLinkType": "Typ odkazu", - "PE.Views.AddLink.textNext": "Další snímek", - "PE.Views.AddLink.textNumber": "Číslo snímku", - "PE.Views.AddLink.textPrev": "Předchozí snímek", - "PE.Views.AddLink.textTip": "Nápověda", - "PE.Views.AddOther.textAddComment": "Přidat komentář", - "PE.Views.AddOther.textBack": "Zpět", - "PE.Views.AddOther.textComment": "Komentář", - "PE.Views.EditChart.textAddCustomColor": "Přidat uživatelsky určenou barvu", - "PE.Views.EditChart.textAlign": "Zarovnat", - "PE.Views.EditChart.textAlignBottom": "Zarovnat dolů", - "PE.Views.EditChart.textAlignCenter": "Zarovnat na střed", - "PE.Views.EditChart.textAlignLeft": "Zarovnat vlevo", - "PE.Views.EditChart.textAlignMiddle": "Zarovnat na střed", - "PE.Views.EditChart.textAlignRight": "Zarovnat vpravo", - "PE.Views.EditChart.textAlignTop": "Zarovnat nahoru", - "PE.Views.EditChart.textBack": "Zpět", - "PE.Views.EditChart.textBackward": "Posunout zpět", - "PE.Views.EditChart.textBorder": "Ohraničení", - "PE.Views.EditChart.textColor": "Barva", - "PE.Views.EditChart.textCustomColor": "Uživatelsky určená barva", - "PE.Views.EditChart.textFill": "Výplň", - "PE.Views.EditChart.textForward": "Posunout vpřed", - "PE.Views.EditChart.textRemoveChart": "Odstranit graf", - "PE.Views.EditChart.textReorder": "Přerovnat", - "PE.Views.EditChart.textSize": "Velikost", - "PE.Views.EditChart.textStyle": "Styl", - "PE.Views.EditChart.textToBackground": "Přesunout do pozadí", - "PE.Views.EditChart.textToForeground": "Přenést do popředí", - "PE.Views.EditChart.textType": "Typ", - "PE.Views.EditChart.txtDistribHor": "Vodorovně rozmístit", - "PE.Views.EditChart.txtDistribVert": "Svisle rozmístit", - "PE.Views.EditImage.textAddress": "Adresa", - "PE.Views.EditImage.textAlign": "Zarovnat", - "PE.Views.EditImage.textAlignBottom": "Zarovnat dolů", - "PE.Views.EditImage.textAlignCenter": "Zarovnat na střed", - "PE.Views.EditImage.textAlignLeft": "Zarovnat vlevo", - "PE.Views.EditImage.textAlignMiddle": "Zarovnat na střed", - "PE.Views.EditImage.textAlignRight": "Zarovnat vpravo", - "PE.Views.EditImage.textAlignTop": "Zarovnat nahoru", - "PE.Views.EditImage.textBack": "Zpět", - "PE.Views.EditImage.textBackward": "Posunout zpět", - "PE.Views.EditImage.textDefault": "Skutečná velikost", - "PE.Views.EditImage.textForward": "Posunout vpřed", - "PE.Views.EditImage.textFromLibrary": "Obrázek z knihovny", - "PE.Views.EditImage.textFromURL": "Obrázek z adresy URL", - "PE.Views.EditImage.textImageURL": "URL obrázku", - "PE.Views.EditImage.textLinkSettings": "Nastavení odkazů", - "PE.Views.EditImage.textRemove": "Odstranit obrázek", - "PE.Views.EditImage.textReorder": "Přerovnat", - "PE.Views.EditImage.textReplace": "Nahradit", - "PE.Views.EditImage.textReplaceImg": "Nahradit obrázek", - "PE.Views.EditImage.textToBackground": "Přesunout do pozadí", - "PE.Views.EditImage.textToForeground": "Přenést do popředí", - "PE.Views.EditImage.txtDistribHor": "Vodorovně rozmístit", - "PE.Views.EditImage.txtDistribVert": "Svisle rozmístit", - "PE.Views.EditLink.textBack": "Zpět", - "PE.Views.EditLink.textDisplay": "Zobrazovaný text", - "PE.Views.EditLink.textEdit": "Upravit odkaz", - "PE.Views.EditLink.textExternalLink": "Externí odkaz", - "PE.Views.EditLink.textFirst": "První snímek", - "PE.Views.EditLink.textInternalLink": "Snímek v této prezentaci", - "PE.Views.EditLink.textLast": "Poslední snímek", - "PE.Views.EditLink.textLink": "Odkaz", - "PE.Views.EditLink.textLinkSlide": "Odkaz na", - "PE.Views.EditLink.textLinkType": "Typ odkazu", - "PE.Views.EditLink.textNext": "Další snímek", - "PE.Views.EditLink.textNumber": "Číslo snímku", - "PE.Views.EditLink.textPrev": "Předchozí snímek", - "PE.Views.EditLink.textRemove": "Odstranit odkaz", - "PE.Views.EditLink.textTip": "Nápověda", - "PE.Views.EditShape.textAddCustomColor": "Přidat uživatelsky určenou barvu", - "PE.Views.EditShape.textAlign": "Zarovnat", - "PE.Views.EditShape.textAlignBottom": "Zarovnat dolů", - "PE.Views.EditShape.textAlignCenter": "Zarovnat na střed", - "PE.Views.EditShape.textAlignLeft": "Zarovnat vlevo", - "PE.Views.EditShape.textAlignMiddle": "Zarovnat na střed", - "PE.Views.EditShape.textAlignRight": "Zarovnat vpravo", - "PE.Views.EditShape.textAlignTop": "Zarovnat nahoru", - "PE.Views.EditShape.textBack": "Zpět", - "PE.Views.EditShape.textBackward": "Posunout zpět", - "PE.Views.EditShape.textBorder": "Ohraničení", - "PE.Views.EditShape.textColor": "Barva", - "PE.Views.EditShape.textCustomColor": "Uživatelsky určená barva", - "PE.Views.EditShape.textEffects": "Efekty", - "PE.Views.EditShape.textFill": "Výplň", - "PE.Views.EditShape.textForward": "Posunout vpřed", - "PE.Views.EditShape.textOpacity": "Průhlednost", - "PE.Views.EditShape.textRemoveShape": "Odstranit formu", - "PE.Views.EditShape.textReorder": "Přerovnat", - "PE.Views.EditShape.textReplace": "Nahradit", - "PE.Views.EditShape.textSize": "Velikost", - "PE.Views.EditShape.textStyle": "Styl", - "PE.Views.EditShape.textToBackground": "Přesunout do pozadí", - "PE.Views.EditShape.textToForeground": "Přenést do popředí", - "PE.Views.EditShape.txtDistribHor": "Vodorovně rozmístit", - "PE.Views.EditShape.txtDistribVert": "Svisle rozmístit", - "PE.Views.EditSlide.textAddCustomColor": "Přidat uživatelsky určenou barvu", - "PE.Views.EditSlide.textApplyAll": "Použít na všechny snímky", - "PE.Views.EditSlide.textBack": "Zpět", - "PE.Views.EditSlide.textBlack": "Přes černou", - "PE.Views.EditSlide.textBottom": "Dole", - "PE.Views.EditSlide.textBottomLeft": "Vlevo dole", - "PE.Views.EditSlide.textBottomRight": "Vpravo dole", - "PE.Views.EditSlide.textClock": "Hodiny", - "PE.Views.EditSlide.textClockwise": "Ve směru hodinových ručiček", - "PE.Views.EditSlide.textColor": "Barva", - "PE.Views.EditSlide.textCounterclockwise": "Proti směru hodinových ručiček", - "PE.Views.EditSlide.textCover": "Zakrýt", - "PE.Views.EditSlide.textCustomColor": "Uživatelsky určená barva", - "PE.Views.EditSlide.textDelay": "Zpoždění", - "PE.Views.EditSlide.textDuplicateSlide": "Kopírovat snímek", - "PE.Views.EditSlide.textDuration": "Doba trvání", - "PE.Views.EditSlide.textEffect": "Efekt", - "PE.Views.EditSlide.textFade": "Vyblednout", - "PE.Views.EditSlide.textFill": "Výplň", - "PE.Views.EditSlide.textHorizontalIn": "Vodorovně uvnitř", - "PE.Views.EditSlide.textHorizontalOut": "Vodorovně vně", - "PE.Views.EditSlide.textLayout": "Rozložení", - "PE.Views.EditSlide.textLeft": "Vlevo", - "PE.Views.EditSlide.textNone": "Žádný", - "PE.Views.EditSlide.textOpacity": "Průhlednost", - "PE.Views.EditSlide.textPush": "Posunout", - "PE.Views.EditSlide.textRemoveSlide": "Odstranit snímek", - "PE.Views.EditSlide.textRight": "Vpravo", - "PE.Views.EditSlide.textSmoothly": "Plynule", - "PE.Views.EditSlide.textSplit": "Rozdělit", - "PE.Views.EditSlide.textStartOnClick": "Začněte kliknutím", - "PE.Views.EditSlide.textStyle": "Styl", - "PE.Views.EditSlide.textTheme": "Téma", - "PE.Views.EditSlide.textTop": "Nahoře", - "PE.Views.EditSlide.textTopLeft": "Vlevo nahoře", - "PE.Views.EditSlide.textTopRight": "Vpravo nahoře", - "PE.Views.EditSlide.textTransition": "Přechod", - "PE.Views.EditSlide.textType": "Typ", - "PE.Views.EditSlide.textUnCover": "Odkrýt", - "PE.Views.EditSlide.textVerticalIn": "Svislý uvnitř", - "PE.Views.EditSlide.textVerticalOut": "Svislý vně", - "PE.Views.EditSlide.textWedge": "Konjunkce", - "PE.Views.EditSlide.textWipe": "Vyčistit", - "PE.Views.EditSlide.textZoom": "Přiblížit", - "PE.Views.EditSlide.textZoomIn": "Přiblížit", - "PE.Views.EditSlide.textZoomOut": "Oddálit", - "PE.Views.EditSlide.textZoomRotate": "Přiblížit a otočit", - "PE.Views.EditTable.textAddCustomColor": "Přidat uživatelsky určenou barvu", - "PE.Views.EditTable.textAlign": "Zarovnat", - "PE.Views.EditTable.textAlignBottom": "Zarovnat dolů", - "PE.Views.EditTable.textAlignCenter": "Zarovnat na střed", - "PE.Views.EditTable.textAlignLeft": "Zarovnat vlevo", - "PE.Views.EditTable.textAlignMiddle": "Zarovnat na střed", - "PE.Views.EditTable.textAlignRight": "Zarovnat vpravo", - "PE.Views.EditTable.textAlignTop": "Zarovnat nahoru", - "PE.Views.EditTable.textBack": "Zpět", - "PE.Views.EditTable.textBackward": "Posunout zpět", - "PE.Views.EditTable.textBandedColumn": "Pruhovaný sloupec", - "PE.Views.EditTable.textBandedRow": "Pruhovaný řádek", - "PE.Views.EditTable.textBorder": "Ohraničení", - "PE.Views.EditTable.textCellMargins": "Okraje buňky", - "PE.Views.EditTable.textColor": "Barva", - "PE.Views.EditTable.textCustomColor": "Uživatelsky určená barva", - "PE.Views.EditTable.textFill": "Výplň", - "PE.Views.EditTable.textFirstColumn": "První sloupec", - "PE.Views.EditTable.textForward": "Posunout vpřed", - "PE.Views.EditTable.textHeaderRow": "Řádek záhlaví", - "PE.Views.EditTable.textLastColumn": "Poslední sloupec", - "PE.Views.EditTable.textOptions": "Možnosti", - "PE.Views.EditTable.textRemoveTable": "Odstranit tabulku", - "PE.Views.EditTable.textReorder": "Přerovnat", - "PE.Views.EditTable.textSize": "Velikost", - "PE.Views.EditTable.textStyle": "Styl", - "PE.Views.EditTable.textStyleOptions": "Možnosti stylu", - "PE.Views.EditTable.textTableOptions": "Možnosti tabulky", - "PE.Views.EditTable.textToBackground": "Přesunout do pozadí", - "PE.Views.EditTable.textToForeground": "Přenést do popředí", - "PE.Views.EditTable.textTotalRow": "Řádek souhrnů", - "PE.Views.EditTable.txtDistribHor": "Vodorovně rozmístit", - "PE.Views.EditTable.txtDistribVert": "Svisle rozmístit", - "PE.Views.EditText.textAddCustomColor": "Přidat uživatelsky určenou barvu", - "PE.Views.EditText.textAdditional": "Další", - "PE.Views.EditText.textAdditionalFormat": "Další formátování", - "PE.Views.EditText.textAfter": "za", - "PE.Views.EditText.textAllCaps": "Všechno velkým", - "PE.Views.EditText.textAutomatic": "Automaticky", - "PE.Views.EditText.textBack": "Zpět", - "PE.Views.EditText.textBefore": "Před", - "PE.Views.EditText.textBullets": "Odrážky", - "PE.Views.EditText.textCharacterBold": "T", - "PE.Views.EditText.textCharacterItalic": "S", - "PE.Views.EditText.textCharacterStrikethrough": "P", - "PE.Views.EditText.textCharacterUnderline": "PO", - "PE.Views.EditText.textCustomColor": "Uživatelsky určená barva", - "PE.Views.EditText.textDblStrikethrough": "Dvojité přeškrtnutí", - "PE.Views.EditText.textDblSuperscript": "Horní index", - "PE.Views.EditText.textFontColor": "Barva písma", - "PE.Views.EditText.textFontColors": "Barvy písma", - "PE.Views.EditText.textFonts": "Fonty", - "PE.Views.EditText.textFromText": "Vzdálenost od textu", - "PE.Views.EditText.textLetterSpacing": "Rozestup mezi písmeny", - "PE.Views.EditText.textLineSpacing": "Řádkování", - "PE.Views.EditText.textNone": "Žádný", - "PE.Views.EditText.textNumbers": "Čísla", - "PE.Views.EditText.textSize": "Velikost", - "PE.Views.EditText.textSmallCaps": "Malá písmena", - "PE.Views.EditText.textStrikethrough": "Přeškrtnutí", - "PE.Views.EditText.textSubscript": "Dolní index", - "PE.Views.Search.textCase": "Rozlišovat malá a velká písmena", - "PE.Views.Search.textDone": "Hotovo", - "PE.Views.Search.textFind": "Najít", - "PE.Views.Search.textFindAndReplace": "Najít a nahradit", - "PE.Views.Search.textReplace": "Nahradit", - "PE.Views.Search.textSearch": "Hledat", - "PE.Views.Settings. textComment": "Komentář", - "PE.Views.Settings.mniSlideStandard": "Standardní (4:3)", - "PE.Views.Settings.mniSlideWide": "Širokoúhlý (16:9)", - "PE.Views.Settings.textAbout": "O", - "PE.Views.Settings.textAddress": "Adresa", - "PE.Views.Settings.textApplication": "Aplikace", - "PE.Views.Settings.textApplicationSettings": "Nastavení aplikace", - "PE.Views.Settings.textAuthor": "Autor", - "PE.Views.Settings.textBack": "Zpět", - "PE.Views.Settings.textCentimeter": "Centimetr", - "PE.Views.Settings.textCollaboration": "Spolupráce", - "PE.Views.Settings.textColorSchemes": "Schémata barev", - "PE.Views.Settings.textCreated": "Vytvořeno", - "PE.Views.Settings.textCreateDate": "Datum vytvoření", - "PE.Views.Settings.textDone": "Hotovo", - "PE.Views.Settings.textDownload": "Stáhnout", - "PE.Views.Settings.textDownloadAs": "Stáhnout jako...", - "PE.Views.Settings.textEditPresent": "Upravit prezentaci", - "PE.Views.Settings.textEmail": "E-mail", - "PE.Views.Settings.textFind": "Najít", - "PE.Views.Settings.textFindAndReplace": "Najít a nahradit", - "PE.Views.Settings.textHelp": "Nápověda", - "PE.Views.Settings.textInch": "Palec", - "PE.Views.Settings.textLastModified": "Naposledy upraveno", - "PE.Views.Settings.textLastModifiedBy": "Naposledy upravil(a)", - "PE.Views.Settings.textLoading": "Nahrávám...", - "PE.Views.Settings.textLocation": "Umístění", - "PE.Views.Settings.textOwner": "Vlastník", - "PE.Views.Settings.textPoint": "Bod", - "PE.Views.Settings.textPoweredBy": "Poháněno", - "PE.Views.Settings.textPresentInfo": "Informace o prezentaci", - "PE.Views.Settings.textPresentSettings": "Nastavení prezentace", - "PE.Views.Settings.textPresentSetup": "Nastavení prezentace", - "PE.Views.Settings.textPresentTitle": "Nadpis prezentace", - "PE.Views.Settings.textPrint": "Tisk", - "PE.Views.Settings.textSettings": "Nastavení", - "PE.Views.Settings.textSlideSize": "Velikost snímku", - "PE.Views.Settings.textSpellcheck": "Kontrola pravopisu", - "PE.Views.Settings.textSubject": "Předmět", - "PE.Views.Settings.textTel": "Sdělit", - "PE.Views.Settings.textTitle": "Nadpis", - "PE.Views.Settings.textUnitOfMeasurement": "Měřit v jednotkách", - "PE.Views.Settings.textUploaded": "Nahráno", - "PE.Views.Settings.textVersion": "Verze", - "PE.Views.Settings.unknownText": "Neznámý", - "PE.Views.Toolbar.textBack": "Zpět" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/de.json b/apps/presentationeditor/mobile/locale/de.json index eae526ecf..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/de.json +++ b/apps/presentationeditor/mobile/locale/de.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Antwort hinzufügen", - "Common.Controllers.Collaboration.textCancel": "Abbrechen", - "Common.Controllers.Collaboration.textDeleteComment": "Kommentar löschen", - "Common.Controllers.Collaboration.textDeleteReply": "Antwort löschen", - "Common.Controllers.Collaboration.textDone": "Fertig", - "Common.Controllers.Collaboration.textEdit": "Bearbeiten", - "Common.Controllers.Collaboration.textEditUser": "Benutzer, die die Datei bearbeiten:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Möchten Sie diesen Kommentar wirklich löschen?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Möchten Sie diese Antwort wirklich löschen?", - "Common.Controllers.Collaboration.textReopen": "Wiederöffnen", - "Common.Controllers.Collaboration.textResolve": "Lösen", - "Common.Controllers.Collaboration.textYes": "Ja", - "Common.UI.ThemeColorPalette.textCustomColors": "Benutzerdefinierte Farben", - "Common.UI.ThemeColorPalette.textStandartColors": "Standardfarben", - "Common.UI.ThemeColorPalette.textThemeColors": "Designfarben", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Antwort hinzufügen", - "Common.Views.Collaboration.textBack": "Zurück", - "Common.Views.Collaboration.textCancel": "Abbrechen", - "Common.Views.Collaboration.textCollaboration": "Zusammenarbeit", - "Common.Views.Collaboration.textDone": "Fertig", - "Common.Views.Collaboration.textEditReply": "Antwort bearbeiten", - "Common.Views.Collaboration.textEditUsers": "Benutzer", - "Common.Views.Collaboration.textEditСomment": "Kommentar bearbeiten", - "Common.Views.Collaboration.textNoComments": "Diese Präsentation enthält keine Kommentare", - "Common.Views.Collaboration.textСomments": "Kommentare", - "PE.Controllers.AddContainer.textImage": "Bild", - "PE.Controllers.AddContainer.textLink": "Link", - "PE.Controllers.AddContainer.textOther": "Sonstige", - "PE.Controllers.AddContainer.textShape": "Form", - "PE.Controllers.AddContainer.textSlide": "Folie", - "PE.Controllers.AddContainer.textTable": "Tabelle", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Warnung", - "PE.Controllers.AddImage.textEmptyImgUrl": "Sie müssen eine Bild-URL angeben.", - "PE.Controllers.AddImage.txtNotUrl": "Dieser Bereich soll ein URL in der Format \"http://www.example.com\" sein.", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Warnung", - "PE.Controllers.AddLink.textDefault": "Ausgewählter Text", - "PE.Controllers.AddLink.textExternalLink": "Externer Link", - "PE.Controllers.AddLink.textFirst": "Erste Folie", - "PE.Controllers.AddLink.textInternalLink": "Folie in dieser Präsentation", - "PE.Controllers.AddLink.textLast": "Letzte Folie", - "PE.Controllers.AddLink.textNext": "Nächste Folie", - "PE.Controllers.AddLink.textPrev": "Vorherige Folie", - "PE.Controllers.AddLink.textSlide": "Folie", - "PE.Controllers.AddLink.txtNotUrl": "Dieser Bereich soll ein URL in der Format \"http://www.example.com\" sein.", - "PE.Controllers.AddOther.textCancel": "Abbrechen", - "PE.Controllers.AddOther.textContinue": "Weiter", - "PE.Controllers.AddOther.textDelete": "Löschen", - "PE.Controllers.AddOther.textDeleteDraft": "Möchten Sie wirklick diesen Entwurf löschen?", - "PE.Controllers.AddTable.textCancel": "Abbrechen", - "PE.Controllers.AddTable.textColumns": "Spalten", - "PE.Controllers.AddTable.textRows": "Zeilen", - "PE.Controllers.AddTable.textTableSize": "Tabellengröße", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Funktionen 'Kopieren', 'Ausschneiden' und 'Einfügen' über das Kontextmenü werden nur in der aktuellen Datei ausgeführt.", - "PE.Controllers.DocumentHolder.menuAddComment": "Kommentar hinzufügen", - "PE.Controllers.DocumentHolder.menuAddLink": "Link hinzufügen", - "PE.Controllers.DocumentHolder.menuCopy": "Kopieren", - "PE.Controllers.DocumentHolder.menuCut": "Ausschneiden", - "PE.Controllers.DocumentHolder.menuDelete": "Löschen", - "PE.Controllers.DocumentHolder.menuEdit": "Bearbeiten", - "PE.Controllers.DocumentHolder.menuMore": "Mehr", - "PE.Controllers.DocumentHolder.menuOpenLink": "Link öffnen", - "PE.Controllers.DocumentHolder.menuPaste": "Einfügen", - "PE.Controllers.DocumentHolder.menuViewComment": "Kommentar anzeigen", - "PE.Controllers.DocumentHolder.sheetCancel": "Abbrechen", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Funktionen \"Kopieren\", \"Ausschneiden\" und \"Einfügen\"", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Nicht wieder anzeigen", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Ende der Folienvorschau. Zum Schließen bitte klicken.", - "PE.Controllers.EditContainer.textChart": "Diagramm", - "PE.Controllers.EditContainer.textHyperlink": "Hyperlink", - "PE.Controllers.EditContainer.textImage": "Bild", - "PE.Controllers.EditContainer.textSettings": "Einstellungen", - "PE.Controllers.EditContainer.textShape": "Form", - "PE.Controllers.EditContainer.textSlide": "Folie", - "PE.Controllers.EditContainer.textTable": "Tabelle", - "PE.Controllers.EditContainer.textText": "Text", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Warnung", - "PE.Controllers.EditImage.textEmptyImgUrl": "Sie müssen eine Bild-URL angeben.", - "PE.Controllers.EditImage.txtNotUrl": "Dieser Bereich soll ein URL in der Format \"http://www.example.com\" sein.", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Warnung", - "PE.Controllers.EditLink.textDefault": "Ausgewählter Text", - "PE.Controllers.EditLink.textExternalLink": "Externer Link", - "PE.Controllers.EditLink.textFirst": "Erste Folie", - "PE.Controllers.EditLink.textInternalLink": "Folie in dieser Präsentation", - "PE.Controllers.EditLink.textLast": "Letzte Folie", - "PE.Controllers.EditLink.textNext": "Nächste Folie", - "PE.Controllers.EditLink.textPrev": "Vorherige Folie", - "PE.Controllers.EditLink.textSlide": "Folie", - "PE.Controllers.EditLink.txtNotUrl": "Dieser Bereich soll ein URL in der Format \"http://www.example.com\" sein.", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Automatisch", - "PE.Controllers.EditText.textFonts": "Schriftarten", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Kennwort eingeben", - "PE.Controllers.Main.advDRMOptions": "Geschützte Datei", - "PE.Controllers.Main.advDRMPassword": "Kennwort", - "PE.Controllers.Main.applyChangesTextText": "Daten werden geladen...", - "PE.Controllers.Main.applyChangesTitleText": "Daten werden geladen", - "PE.Controllers.Main.closeButtonText": "Datei schließen", - "PE.Controllers.Main.convertationTimeoutText": "Zeitüberschreitung bei der Konvertierung.", - "PE.Controllers.Main.criticalErrorExtText": "Drücken Sie \"OK\", um zur Dokumentenliste zurückzukehren.", - "PE.Controllers.Main.criticalErrorTitle": "Fehler", - "PE.Controllers.Main.downloadErrorText": "Herunterladen ist fehlgeschlagen.", - "PE.Controllers.Main.downloadTextText": "Präsentation wird heruntergeladen...", - "PE.Controllers.Main.downloadTitleText": "Präsentation wird heruntergeladen", - "PE.Controllers.Main.errorAccessDeny": "Sie versuchen, eine Aktion durchzuführen, für die Sie keine Rechte haben.
            Bitte wenden Sie sich an Ihren Document Serveradministrator.", - "PE.Controllers.Main.errorBadImageUrl": "URL des Bildes ist falsch", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Verbindung zum Server ist verloren gegangen. Sie können nicht mehr editieren.", - "PE.Controllers.Main.errorConnectToServer": "Das Dokument konnte nicht gespeichert werden. Bitte überprüfen Sie die Verbindungseinstellungen oder wenden Sie sich an Ihren Administrator.
            Wenn Sie auf die Schaltfläche \"OK\" klicken, werden Sie aufgefordert das Dokument herunterzuladen.", - "PE.Controllers.Main.errorDatabaseConnection": "Externer Fehler.
            Datenbank-Verbindungsfehler. Wenden Sie sich an den Support.", - "PE.Controllers.Main.errorDataEncrypted": "Änderungen wurden verschlüsselt. Sie können nicht entschlüsselt werden.", - "PE.Controllers.Main.errorDataRange": "Falscher Datenbereich.", - "PE.Controllers.Main.errorDefaultMessage": "Fehlercode: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Bei der Arbeit mit dem Dokument ist ein Fehler aufgetreten.
            Verwenden Sie die Option \"Herunterladen\", um die Sicherungskopie der Datei auf der Festplatte Ihres Computers zu speichern.", - "PE.Controllers.Main.errorFilePassProtect": "Das Dokument ist kennwortgeschützt und kann nicht geöffnet werden.", - "PE.Controllers.Main.errorFileSizeExceed": "Die Dateigröße überschreitet die für Ihren Server festgelegte Einschränkung.
            Weitere Informationen können Sie von Ihrem Document Server-Administrator erhalten.", - "PE.Controllers.Main.errorKeyEncrypt": "Unbekannter Schlüsseldeskriptor", - "PE.Controllers.Main.errorKeyExpire": "Der Schlüsseldeskriptor ist abgelaufen", - "PE.Controllers.Main.errorOpensource": "Sie können in der kostenlosen Community-Version nur Dokumente zu betrachten öffnen. Eine kommerzielle Lizenz ist für die Nutzung der mobilen Web-Editoren erforderlich.", - "PE.Controllers.Main.errorProcessSaveResult": "Fehler beim Speichern von Daten.", - "PE.Controllers.Main.errorServerVersion": "Editor-Version wurde aktualisiert. Die Seite wird neu geladen, um die Änderungen zu übernehmen.", - "PE.Controllers.Main.errorSessionAbsolute": "Die Bearbeitung ist unmöglich, weil Ihre Sitzung abgelaufen is. Laden Sie die Seite neu.", - "PE.Controllers.Main.errorSessionIdle": "Das Dokument wurde lange nicht bearbeitet. Laden Sie die Seite neu.", - "PE.Controllers.Main.errorSessionToken": "Die Verbindung zum Server wurde unterbrochen. Laden Sie die Seite neu.", - "PE.Controllers.Main.errorStockChart": "Falsche Reihenfolge der Zeilen. Um ein Kursdiagramm zu erstellen, ordnen Sie die Daten auf dem Blatt folgendermaßen an:
            Eröffnungspreis, Höchstpreis, Tiefstpreis, Schlusskurs.", - "PE.Controllers.Main.errorUpdateVersion": "Die Dateiversion wurde geändert. Die Seite wird neu geladen.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Die Internetverbindung wurde wiederhergestellt und die Dateiversion wurde geändert.
            Bevor Sie weiterarbeiten können, müssen Sie die Datei herunterladen oder den Inhalt kopieren, um sicherzustellen, dass nichts verloren geht, und diese Seite anschließend neu laden.", - "PE.Controllers.Main.errorUserDrop": "Kein Zugriff auf diese Datei ist möglich.", - "PE.Controllers.Main.errorUsersExceed": "Die Anzahl der Benutzer ist überschritten ", - "PE.Controllers.Main.errorViewerDisconnect": "Die Verbindung ist unterbrochen. Man kann das Dokument anschauen,
            aber nicht herunterladen, bis die Verbindung wiederhergestellt und die Seite neu geladen wird.", - "PE.Controllers.Main.leavePageText": "Dieses Dokument enthält ungespeicherte Änderungen. Klicken Sie \"Auf dieser Seite bleiben\", um auf automatisches Speichern des Dokumentes zu warten. Klicken Sie \"Diese Seite verlassen\", um alle nicht gespeicherten Änderungen zu verwerfen.", - "PE.Controllers.Main.loadFontsTextText": "Daten werden geladen...", - "PE.Controllers.Main.loadFontsTitleText": "Daten werden geladen", - "PE.Controllers.Main.loadFontTextText": "Daten werden geladen...", - "PE.Controllers.Main.loadFontTitleText": "Daten werden geladen", - "PE.Controllers.Main.loadImagesTextText": "Bilder werden geladen...", - "PE.Controllers.Main.loadImagesTitleText": "Bilder werden geladen", - "PE.Controllers.Main.loadImageTextText": "Bild wird geladen...", - "PE.Controllers.Main.loadImageTitleText": "Bild wird geladen", - "PE.Controllers.Main.loadingDocumentTextText": "Präsentation wird geladen...", - "PE.Controllers.Main.loadingDocumentTitleText": "Präsentation wird geladen ", - "PE.Controllers.Main.loadThemeTextText": "Design wird geladen...", - "PE.Controllers.Main.loadThemeTitleText": "Laden des Designs", - "PE.Controllers.Main.notcriticalErrorTitle": "Achtung", - "PE.Controllers.Main.openErrorText": "Beim Öffnen dieser Datei ist ein Fehler aufgetreten.", - "PE.Controllers.Main.openTextText": "Dokument wird geöffnet...", - "PE.Controllers.Main.openTitleText": "Das Dokument wird geöffnet", - "PE.Controllers.Main.printTextText": "Dokument wird ausgedruckt...", - "PE.Controllers.Main.printTitleText": "Drucken des Dokuments", - "PE.Controllers.Main.reloadButtonText": "Seite neu laden", - "PE.Controllers.Main.requestEditFailedMessageText": "Das Dokument wurde gerade von einem anderen Benutzer bearbeitet. Bitte versuchen Sie es später erneut.", - "PE.Controllers.Main.requestEditFailedTitleText": "Zugriff verweigert", - "PE.Controllers.Main.saveErrorText": "Beim Speichern dieser Datei ist ein Fehler aufgetreten.", - "PE.Controllers.Main.savePreparingText": "Speichervorbereitung", - "PE.Controllers.Main.savePreparingTitle": "Speichervorbereitung. Bitte warten...", - "PE.Controllers.Main.saveTextText": "Dokument wird gespeichert...", - "PE.Controllers.Main.saveTitleText": "Dokument wird gespeichert...", - "PE.Controllers.Main.scriptLoadError": "Die Verbindung ist zu langsam, einige der Komponenten konnten nicht geladen werden. Bitte laden Sie die Seite erneut.", - "PE.Controllers.Main.splitDividerErrorText": "Die Anzahl der Zeilen muss einen Divisor von %1 sein. ", - "PE.Controllers.Main.splitMaxColsErrorText": "Spaltenanzahl muss weniger als %1 sein", - "PE.Controllers.Main.splitMaxRowsErrorText": "Die Anzahl der Zeilen muss weniger als %1 sein", - "PE.Controllers.Main.textAnonymous": "Anonym", - "PE.Controllers.Main.textBack": "Zurück", - "PE.Controllers.Main.textBuyNow": "Webseite besuchen", - "PE.Controllers.Main.textCancel": "Abbrechen", - "PE.Controllers.Main.textClose": "Schließen", - "PE.Controllers.Main.textCloseTip": "Um den Tipp zu schließen, tippen Sie darauf.", - "PE.Controllers.Main.textContactUs": "Verkaufsteam", - "PE.Controllers.Main.textCustomLoader": "Bitte beachten Sie, dass Sie gemäß den Lizenzbedingungen nicht berechtigt sind, den Loader zu wechseln.
            Wenden Sie sich an unseren Vertrieb, um ein Angebot zu erhalten.", - "PE.Controllers.Main.textDone": "Fertig", - "PE.Controllers.Main.textGuest": "Gast", - "PE.Controllers.Main.textHasMacros": "Diese Datei beinhaltet Makros.
            Möchten Sie Makros ausführen?", - "PE.Controllers.Main.textLoadingDocument": "Präsentation wird geladen ", - "PE.Controllers.Main.textNo": "Nein", - "PE.Controllers.Main.textNoLicenseTitle": "Lizenzlimit erreicht", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Kostenpflichtige Funktion", - "PE.Controllers.Main.textPassword": "Kennwort", - "PE.Controllers.Main.textPreloader": "Ladevorgang...", - "PE.Controllers.Main.textRemember": "Meine Auswahl merken", - "PE.Controllers.Main.textShape": "Form", - "PE.Controllers.Main.textTryUndoRedo": "Undo/Redo Optionen sind für den halbformalen Zusammenbearbeitungsmodus deaktiviert.", - "PE.Controllers.Main.textUsername": "Benutzername", - "PE.Controllers.Main.textYes": "Ja", - "PE.Controllers.Main.titleLicenseExp": "Lizenz ist abgelaufen", - "PE.Controllers.Main.titleServerVersion": "Editor wurde aktualisiert", - "PE.Controllers.Main.txtAddFirstSlide": "Klicken Sie, um die erste Folie hinzuzufügen", - "PE.Controllers.Main.txtArt": "Hier den Text eingeben", - "PE.Controllers.Main.txtBasicShapes": "Standardformen", - "PE.Controllers.Main.txtButtons": "Buttons", - "PE.Controllers.Main.txtCallouts": "Legenden", - "PE.Controllers.Main.txtCharts": "Diagramme", - "PE.Controllers.Main.txtClipArt": "ClipArt", - "PE.Controllers.Main.txtDateTime": "Datum und Zeit", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Diagrammtitel", - "PE.Controllers.Main.txtEditingMode": "Bearbeitungsmodus einschalten...", - "PE.Controllers.Main.txtFiguredArrows": "Geformte Pfeile", - "PE.Controllers.Main.txtFooter": "Fußzeile", - "PE.Controllers.Main.txtHeader": "Kopfzeile", - "PE.Controllers.Main.txtImage": "Bild", - "PE.Controllers.Main.txtLines": "Linien", - "PE.Controllers.Main.txtMath": "Mathematik", - "PE.Controllers.Main.txtMedia": "Medien", - "PE.Controllers.Main.txtNeedSynchronize": "Änderungen wurden vorgenommen", - "PE.Controllers.Main.txtPicture": "Bild", - "PE.Controllers.Main.txtProtected": "Sobald Sie das Passwort eingegeben und die Datei geöffnet haben, wird das aktuelle Passwort für die Datei zurückgesetzt", - "PE.Controllers.Main.txtRectangles": "Rechtecke", - "PE.Controllers.Main.txtSeries": "Reihen", - "PE.Controllers.Main.txtSldLtTBlank": "Leer", - "PE.Controllers.Main.txtSldLtTChart": "Diagramm", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Diagramm und Text", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "ClipArt und Text", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "ClipArt und vertikaler Text", - "PE.Controllers.Main.txtSldLtTCust": "Benutzerdefiniert", - "PE.Controllers.Main.txtSldLtTDgm": "Schema", - "PE.Controllers.Main.txtSldLtTFourObj": "Vier Objekte", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Medien und Text", - "PE.Controllers.Main.txtSldLtTObj": "Titel und Objekt", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Objekt und zwei Objekte", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objekt und Text", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objekt", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objekt über Text", - "PE.Controllers.Main.txtSldLtTObjTx": "Titel, Objekt und Beschriftung", - "PE.Controllers.Main.txtSldLtTPicTx": "Bild und Überschrift", - "PE.Controllers.Main.txtSldLtTSecHead": "Überschrift des Abschnitts", - "PE.Controllers.Main.txtSldLtTTbl": "Tabelle", - "PE.Controllers.Main.txtSldLtTTitle": "Titel", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Nur Titel", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Zweispaltiger Text", - "PE.Controllers.Main.txtSldLtTTwoObj": "Zwei Objekte", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Zwei Objekte und Objekt", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Zwei Objekte und Text", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Zwei Objekte über Text", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Zwei Texte und zwei Objekte", - "PE.Controllers.Main.txtSldLtTTx": "Text", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Text und Diagramm", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Text und ClipArt", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Text und Medien", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Text und Objekt", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Text und zwei Objekte", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Text über Objekt", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Vertikaler Titel und Text", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Vertikaler Titel und Text über Diagramm", - "PE.Controllers.Main.txtSldLtTVertTx": "Vertikaler Text", - "PE.Controllers.Main.txtSlideNumber": "Foliennummer", - "PE.Controllers.Main.txtSlideSubtitle": "Folienuntertitel", - "PE.Controllers.Main.txtSlideText": "Folientext", - "PE.Controllers.Main.txtSlideTitle": "Folientitel", - "PE.Controllers.Main.txtStarsRibbons": "Sterne & Bänder", - "PE.Controllers.Main.txtXAxis": "x-Achse", - "PE.Controllers.Main.txtYAxis": "y-Achse", - "PE.Controllers.Main.unknownErrorText": "Unbekannter Fehler.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Ihr Webbrowser wird nicht unterstützt.", - "PE.Controllers.Main.uploadImageExtMessage": "Unbekanntes Bildformat.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Keine Bilder sind hochgeladen.", - "PE.Controllers.Main.uploadImageSizeMessage": "Die maximal zulässige Bildgröße ist überschritten.", - "PE.Controllers.Main.uploadImageTextText": "Bild wird hochgeladen...", - "PE.Controllers.Main.uploadImageTitleText": "Bild wird hochgeladen", - "PE.Controllers.Main.waitText": "Bitte warten...", - "PE.Controllers.Main.warnLicenseExceeded": "Sie haben das Limit für gleichzeitige Verbindungen in %1-Editoren erreicht. Dieses Dokument wird nur zum Anzeigen geöffnet.
            Bitte wenden Sie sich an Ihren Administrator, um weitere Informationen zu erhalten.", - "PE.Controllers.Main.warnLicenseExp": "Ihre Lizenz ist abgelaufen.
            Bitte aktualisieren Sie Ihre Lizenz und laden Sie die Seite neu.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "Die Lizenz ist abgelaufen.
            Die Bearbeitungsfunktionen sind nicht verfügbar.
            Bitte wenden Sie sich an Ihrem Administrator.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "Die Lizenz soll aktualisiert werden.
            Die Bearbeitungsfunktionen sind eingeschränkt.
            Bitte wenden Sie sich an Ihrem Administrator für vollen Zugriff", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Sie haben das Benutzerlimit für %1-Editoren erreicht. Bitte wenden Sie sich an Ihren Administrator, um weitere Informationen zu erhalten.", - "PE.Controllers.Main.warnNoLicense": "Sie haben das Limit für gleichzeitige Verbindungen in %1-Editoren erreicht. Dieses Dokument wird nur zum Anzeigen geöffnet.
            Bitte kontaktieren Sie unser Verkaufsteam, um persönliche Upgrade-Bedingungen zu erhalten.", - "PE.Controllers.Main.warnNoLicenseUsers": "Sie haben das Benutzerlimit für %1-Editoren erreicht. Bitte kontaktieren Sie unser Verkaufsteam, um persönliche Upgrade-Bedingungen zu erhalten.", - "PE.Controllers.Main.warnProcessRightsChange": "Das Recht, die Datei zu bearbeiten, wurde Ihnen verweigert.", - "PE.Controllers.Search.textNoTextFound": "Der Text wurde nicht gefunden.", - "PE.Controllers.Search.textReplaceAll": "Alles ersetzen", - "PE.Controllers.Settings.notcriticalErrorTitle": "Achtung", - "PE.Controllers.Settings.txtLoading": "Ladevorgang...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Dieses Dokument enthält ungespeicherte Änderungen. Klicken Sie \"Auf dieser Seite bleiben\", um auf automatisches Speichern des Dokumentes zu warten. Klicken Sie \"Diese Seite verlassen\", um alle nicht gespeicherten Änderungen zu verwerfen.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Sie verlassen die Anwendung", - "PE.Controllers.Toolbar.leaveButtonText": "Seite verlassen", - "PE.Controllers.Toolbar.stayButtonText": "Auf dieser Seite bleiben", - "PE.Views.AddImage.textAddress": "Adresse", - "PE.Views.AddImage.textBack": "Zurück", - "PE.Views.AddImage.textFromLibrary": "Bild aus der Bibliothek", - "PE.Views.AddImage.textFromURL": "Bild aus URL", - "PE.Views.AddImage.textImageURL": "Bild-URL", - "PE.Views.AddImage.textInsertImage": "Bild einfügen", - "PE.Views.AddImage.textLinkSettings": "Verknüpfungseinstellungen", - "PE.Views.AddLink.textBack": "Zurück", - "PE.Views.AddLink.textDisplay": "Anzeigen", - "PE.Views.AddLink.textExternalLink": "Externer Link", - "PE.Views.AddLink.textFirst": "Erste Folie", - "PE.Views.AddLink.textInsert": "Einfügen", - "PE.Views.AddLink.textInternalLink": "Folie in dieser Präsentation", - "PE.Views.AddLink.textLast": "Letzte Folie", - "PE.Views.AddLink.textLink": "Link", - "PE.Views.AddLink.textLinkSlide": "Verknüpfen mit", - "PE.Views.AddLink.textLinkType": "Hyperlinktyp", - "PE.Views.AddLink.textNext": "Nächste Folie", - "PE.Views.AddLink.textNumber": "Foliennummer", - "PE.Views.AddLink.textPrev": "Vorherige Folie", - "PE.Views.AddLink.textTip": "Info-Tipp", - "PE.Views.AddOther.textAddComment": "Kommentar hinzufügen", - "PE.Views.AddOther.textBack": "Zurück", - "PE.Views.AddOther.textComment": "Kommentar", - "PE.Views.AddOther.textDisplay": "Anzeigen", - "PE.Views.AddOther.textDone": "Fertig", - "PE.Views.AddOther.textExternalLink": "Externer Link", - "PE.Views.AddOther.textFirst": "Erste Folie", - "PE.Views.AddOther.textInsert": "Einfügen", - "PE.Views.AddOther.textInternalLink": "Folie in dieser Präsentation", - "PE.Views.AddOther.textLast": "Letzte Folie", - "PE.Views.AddOther.textLink": "Link", - "PE.Views.AddOther.textLinkSlide": "Verknüpfen mit", - "PE.Views.AddOther.textLinkType": "Linktyp", - "PE.Views.AddOther.textNext": "Nächste Folie", - "PE.Views.AddOther.textNumber": "Foliennummer", - "PE.Views.AddOther.textPrev": "Vorherige Folie", - "PE.Views.AddOther.textTable": "Tabelle", - "PE.Views.AddOther.textTip": "QuickInfo", - "PE.Views.EditChart.textAddCustomColor": "Eine benutzerdefinierte Farbe hinzufügen", - "PE.Views.EditChart.textAlign": "Ausrichtung", - "PE.Views.EditChart.textAlignBottom": "Unten ausrichten", - "PE.Views.EditChart.textAlignCenter": "Zentriert ausrichten", - "PE.Views.EditChart.textAlignLeft": "Links ausrichten", - "PE.Views.EditChart.textAlignMiddle": "Mittig ausrichten", - "PE.Views.EditChart.textAlignRight": "Rechts ausrichten", - "PE.Views.EditChart.textAlignTop": "Oben ausrichten", - "PE.Views.EditChart.textBack": "Zurück", - "PE.Views.EditChart.textBackward": "Rückwärts navigieren", - "PE.Views.EditChart.textBorder": "Rahmen", - "PE.Views.EditChart.textColor": "Farbe", - "PE.Views.EditChart.textCustomColor": "Benutzerdefinierte Farbe", - "PE.Views.EditChart.textFill": "Füllung", - "PE.Views.EditChart.textForward": "Vorwärts navigieren", - "PE.Views.EditChart.textRemoveChart": "Diagramm entfernen", - "PE.Views.EditChart.textReorder": "Neu ordnen", - "PE.Views.EditChart.textSize": "Größe", - "PE.Views.EditChart.textStyle": "Stil", - "PE.Views.EditChart.textToBackground": "In den Hintergrund", - "PE.Views.EditChart.textToForeground": "In den Vordergrund ", - "PE.Views.EditChart.textType": "Typ", - "PE.Views.EditChart.txtDistribHor": "Horizontal verteilen", - "PE.Views.EditChart.txtDistribVert": "Vertikal verteilen", - "PE.Views.EditImage.textAddress": "Adresse", - "PE.Views.EditImage.textAlign": "Ausrichtung", - "PE.Views.EditImage.textAlignBottom": "Unten ausrichten", - "PE.Views.EditImage.textAlignCenter": "Zentriert ausrichten", - "PE.Views.EditImage.textAlignLeft": "Links ausrichten", - "PE.Views.EditImage.textAlignMiddle": "Mittig ausrichten", - "PE.Views.EditImage.textAlignRight": "Rechts ausrichten", - "PE.Views.EditImage.textAlignTop": "Oben ausrichten", - "PE.Views.EditImage.textBack": "Zurück", - "PE.Views.EditImage.textBackward": "Rückwärts navigieren", - "PE.Views.EditImage.textDefault": "Tatsächliche Größe", - "PE.Views.EditImage.textForward": "Vorwärts navigieren", - "PE.Views.EditImage.textFromLibrary": "Bild aus der Bibliothek", - "PE.Views.EditImage.textFromURL": "Bild aus URL", - "PE.Views.EditImage.textImageURL": "Bild-URL", - "PE.Views.EditImage.textLinkSettings": "Verknüpfungseinstellungen", - "PE.Views.EditImage.textRemove": "Bild entfernen", - "PE.Views.EditImage.textReorder": "Neu ordnen", - "PE.Views.EditImage.textReplace": "Ersetzen", - "PE.Views.EditImage.textReplaceImg": "Bild ersetzen", - "PE.Views.EditImage.textToBackground": "In den Hintergrund", - "PE.Views.EditImage.textToForeground": "In den Vordergrund ", - "PE.Views.EditImage.txtDistribHor": "Horizontal verteilen", - "PE.Views.EditImage.txtDistribVert": "Vertikal verteilen", - "PE.Views.EditLink.textBack": "Zurück", - "PE.Views.EditLink.textDisplay": "Anzeigen", - "PE.Views.EditLink.textEdit": "Link bearbeiten", - "PE.Views.EditLink.textExternalLink": "Externer Link", - "PE.Views.EditLink.textFirst": "Erste Folie", - "PE.Views.EditLink.textInternalLink": "Folie in dieser Präsentation", - "PE.Views.EditLink.textLast": "Letzte Folie", - "PE.Views.EditLink.textLink": "Link", - "PE.Views.EditLink.textLinkSlide": "Verknüpfen mit", - "PE.Views.EditLink.textLinkType": "Hyperlinktyp", - "PE.Views.EditLink.textNext": "Nächste Folie", - "PE.Views.EditLink.textNumber": "Foliennummer", - "PE.Views.EditLink.textPrev": "Vorherige Folie", - "PE.Views.EditLink.textRemove": "Link entfernen", - "PE.Views.EditLink.textTip": "Info-Tipp", - "PE.Views.EditShape.textAddCustomColor": "Eine benutzerdefinierte Farbe hinzufügen", - "PE.Views.EditShape.textAlign": "Ausrichtung", - "PE.Views.EditShape.textAlignBottom": "Unten ausrichten", - "PE.Views.EditShape.textAlignCenter": "Zentriert ausrichten", - "PE.Views.EditShape.textAlignLeft": "Links ausrichten", - "PE.Views.EditShape.textAlignMiddle": "Mittig ausrichten", - "PE.Views.EditShape.textAlignRight": "Rechts ausrichten", - "PE.Views.EditShape.textAlignTop": "Oben ausrichten", - "PE.Views.EditShape.textBack": "Zurück", - "PE.Views.EditShape.textBackward": "Rückwärts navigieren", - "PE.Views.EditShape.textBorder": "Rahmen", - "PE.Views.EditShape.textColor": "Farbe", - "PE.Views.EditShape.textCustomColor": "Benutzerdefinierte Farbe", - "PE.Views.EditShape.textEffects": "Effekte", - "PE.Views.EditShape.textFill": "Füllung", - "PE.Views.EditShape.textForward": "Vorwärts navigieren", - "PE.Views.EditShape.textOpacity": "Intransparenz", - "PE.Views.EditShape.textRemoveShape": "AutoForm entfernen", - "PE.Views.EditShape.textReorder": "Neu ordnen", - "PE.Views.EditShape.textReplace": "Ersetzen", - "PE.Views.EditShape.textSize": "Größe", - "PE.Views.EditShape.textStyle": "Stil", - "PE.Views.EditShape.textToBackground": "In den Hintergrund", - "PE.Views.EditShape.textToForeground": "In den Vordergrund ", - "PE.Views.EditShape.txtDistribHor": "Horizontal verteilen", - "PE.Views.EditShape.txtDistribVert": "Vertikal verteilen", - "PE.Views.EditSlide.textAddCustomColor": "Eine benutzerdefinierte Farbe hinzufügen", - "PE.Views.EditSlide.textApplyAll": "Auf alle Folien anwenden", - "PE.Views.EditSlide.textBack": "Zurück", - "PE.Views.EditSlide.textBlack": "Durch Schwarz", - "PE.Views.EditSlide.textBottom": "Unten", - "PE.Views.EditSlide.textBottomLeft": "Unten links", - "PE.Views.EditSlide.textBottomRight": "Unten rechts", - "PE.Views.EditSlide.textClock": "Uhr", - "PE.Views.EditSlide.textClockwise": "Im Uhrzeigersinn", - "PE.Views.EditSlide.textColor": "Farbe", - "PE.Views.EditSlide.textCounterclockwise": "Gegen Uhrzeigersinn", - "PE.Views.EditSlide.textCover": "Bedecken", - "PE.Views.EditSlide.textCustomColor": "Benutzerdefinierte Farbe", - "PE.Views.EditSlide.textDelay": "Verzögern", - "PE.Views.EditSlide.textDuplicateSlide": "Folie duplizieren", - "PE.Views.EditSlide.textDuration": "Dauer", - "PE.Views.EditSlide.textEffect": "Effekt", - "PE.Views.EditSlide.textFade": "Einblendung", - "PE.Views.EditSlide.textFill": "Füllung", - "PE.Views.EditSlide.textHorizontalIn": "Horizontal nach innen", - "PE.Views.EditSlide.textHorizontalOut": "Horizontal nach außen", - "PE.Views.EditSlide.textLayout": "Layout", - "PE.Views.EditSlide.textLeft": "Links", - "PE.Views.EditSlide.textNone": "Kein", - "PE.Views.EditSlide.textOpacity": "Intransparenz", - "PE.Views.EditSlide.textPush": "Schieben", - "PE.Views.EditSlide.textRemoveSlide": "Folie löschen", - "PE.Views.EditSlide.textRight": "Rechts", - "PE.Views.EditSlide.textSmoothly": "Gleitend", - "PE.Views.EditSlide.textSplit": "Aufteilen", - "PE.Views.EditSlide.textStartOnClick": "Bei Klicken beginnen", - "PE.Views.EditSlide.textStyle": "Stil", - "PE.Views.EditSlide.textTheme": "Thema", - "PE.Views.EditSlide.textTop": "Oben", - "PE.Views.EditSlide.textTopLeft": "Oben links", - "PE.Views.EditSlide.textTopRight": "Oben rechts", - "PE.Views.EditSlide.textTransition": "Übergang", - "PE.Views.EditSlide.textType": "Typ", - "PE.Views.EditSlide.textUnCover": "Aufdecken", - "PE.Views.EditSlide.textVerticalIn": "Vertikal nach innen", - "PE.Views.EditSlide.textVerticalOut": "Vertikal nach außen", - "PE.Views.EditSlide.textWedge": "Keil", - "PE.Views.EditSlide.textWipe": "Wischen", - "PE.Views.EditSlide.textZoom": "Zoom", - "PE.Views.EditSlide.textZoomIn": "Vergrößern", - "PE.Views.EditSlide.textZoomOut": "Verkleinern", - "PE.Views.EditSlide.textZoomRotate": "Zoom und Drehung", - "PE.Views.EditTable.textAddCustomColor": "Eine benutzerdefinierte Farbe hinzufügen", - "PE.Views.EditTable.textAlign": "Ausrichtung", - "PE.Views.EditTable.textAlignBottom": "Unten ausrichten", - "PE.Views.EditTable.textAlignCenter": "Zentriert ausrichten", - "PE.Views.EditTable.textAlignLeft": "Links ausrichten", - "PE.Views.EditTable.textAlignMiddle": "Mittig ausrichten", - "PE.Views.EditTable.textAlignRight": "Rechts ausrichten", - "PE.Views.EditTable.textAlignTop": "Oben ausrichten", - "PE.Views.EditTable.textBack": "Zurück", - "PE.Views.EditTable.textBackward": "Rückwärts navigieren", - "PE.Views.EditTable.textBandedColumn": "Gebänderte Spalten", - "PE.Views.EditTable.textBandedRow": "Gebänderte Zeilen", - "PE.Views.EditTable.textBorder": "Rahmen", - "PE.Views.EditTable.textCellMargins": "Zellenränder", - "PE.Views.EditTable.textColor": "Farbe", - "PE.Views.EditTable.textCustomColor": "Benutzerdefinierte Farbe", - "PE.Views.EditTable.textFill": "Füllung", - "PE.Views.EditTable.textFirstColumn": "Erste Spalte", - "PE.Views.EditTable.textForward": "Vorwärts navigieren", - "PE.Views.EditTable.textHeaderRow": "Kopfzeile", - "PE.Views.EditTable.textLastColumn": "Letzte Spalte", - "PE.Views.EditTable.textOptions": "Optionen", - "PE.Views.EditTable.textRemoveTable": "Tabelle entfernen", - "PE.Views.EditTable.textReorder": "Neu ordnen", - "PE.Views.EditTable.textSize": "Größe", - "PE.Views.EditTable.textStyle": "Stil", - "PE.Views.EditTable.textStyleOptions": "Formatoptionen", - "PE.Views.EditTable.textTableOptions": "Tabellenoptionen", - "PE.Views.EditTable.textToBackground": "In den Hintergrund", - "PE.Views.EditTable.textToForeground": "In den Vordergrund ", - "PE.Views.EditTable.textTotalRow": "Ergebniszeile", - "PE.Views.EditTable.txtDistribHor": "Horizontal verteilen", - "PE.Views.EditTable.txtDistribVert": "Vertikal verteilen", - "PE.Views.EditText.textAddCustomColor": "Eine benutzerdefinierte Farbe hinzufügen", - "PE.Views.EditText.textAdditional": "Zusätzlich", - "PE.Views.EditText.textAdditionalFormat": "Zusätzliche Formatierung", - "PE.Views.EditText.textAfter": "Nach Absatz", - "PE.Views.EditText.textAllCaps": "Alle Großbuchstaben", - "PE.Views.EditText.textAutomatic": "Automatisch", - "PE.Views.EditText.textBack": "Zurück", - "PE.Views.EditText.textBefore": "Vor Absatz", - "PE.Views.EditText.textBullets": "Aufzählung", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Benutzerdefinierte Farbe", - "PE.Views.EditText.textDblStrikethrough": "Doppeltes Durchstreichen", - "PE.Views.EditText.textDblSuperscript": "Hochgestellt", - "PE.Views.EditText.textFontColor": "Schriftfarbe", - "PE.Views.EditText.textFontColors": "Schriftfarben", - "PE.Views.EditText.textFonts": "Schriftarten", - "PE.Views.EditText.textFromText": "Abstand vom Text", - "PE.Views.EditText.textLetterSpacing": "Zeichenabstand", - "PE.Views.EditText.textLineSpacing": "Zeilenabstand", - "PE.Views.EditText.textNone": "Kein", - "PE.Views.EditText.textNumbers": "Nummern", - "PE.Views.EditText.textSize": "Größe", - "PE.Views.EditText.textSmallCaps": "Kapitälchen", - "PE.Views.EditText.textStrikethrough": "Durchgestrichen", - "PE.Views.EditText.textSubscript": "Tiefgestellt", - "PE.Views.Search.textCase": "Groß-/Kleinschreibung beachten", - "PE.Views.Search.textDone": "Fertig", - "PE.Views.Search.textFind": "Suche", - "PE.Views.Search.textFindAndReplace": "Suchen und ersetzen", - "PE.Views.Search.textReplace": "Ersetzen", - "PE.Views.Search.textSearch": "Suche", - "PE.Views.Settings. textComment": "Kommentar", - "PE.Views.Settings.mniSlideStandard": "Standard (4:3)", - "PE.Views.Settings.mniSlideWide": "Breitbildschirm (16:9)", - "PE.Views.Settings.textAbout": "Über das Produkt", - "PE.Views.Settings.textAddress": "Adresse", - "PE.Views.Settings.textApplication": "Anwendung", - "PE.Views.Settings.textApplicationSettings": "Anwendungseinstellungen", - "PE.Views.Settings.textAuthor": "Autor", - "PE.Views.Settings.textBack": "Zurück", - "PE.Views.Settings.textCentimeter": "Zentimeter", - "PE.Views.Settings.textCollaboration": "Zusammenarbeit", - "PE.Views.Settings.textColorSchemes": "Farbschemas", - "PE.Views.Settings.textCreated": "Erstellt", - "PE.Views.Settings.textCreateDate": "Erstellungsdatum", - "PE.Views.Settings.textDisableAll": "Alle deaktivieren.", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Alle Makros mit einer Benachrichtigung deaktivieren", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Alle Makros ohne Benachrichtigung deaktivieren", - "PE.Views.Settings.textDone": "Fertig", - "PE.Views.Settings.textDownload": "Herunterladen", - "PE.Views.Settings.textDownloadAs": "Herunterladen als...", - "PE.Views.Settings.textEditPresent": "Präsentation bearbeiten", - "PE.Views.Settings.textEmail": "E-Email", - "PE.Views.Settings.textEnableAll": "Alle aktivieren", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Alle Makros ohne Benachrichtigung aktivieren", - "PE.Views.Settings.textFind": "Suchen", - "PE.Views.Settings.textFindAndReplace": "Suchen und ersetzen", - "PE.Views.Settings.textHelp": "Hilfe", - "PE.Views.Settings.textInch": "Zoll", - "PE.Views.Settings.textLastModified": "Zuletzt geändert", - "PE.Views.Settings.textLastModifiedBy": "Zuletzt geändert von", - "PE.Views.Settings.textLoading": "Ladevorgang...", - "PE.Views.Settings.textLocation": "Speicherort", - "PE.Views.Settings.textMacrosSettings": "Einstellungen von Makros", - "PE.Views.Settings.textOwner": "Besitzer", - "PE.Views.Settings.textPoint": "Punkt", - "PE.Views.Settings.textPoweredBy": "Betrieben von", - "PE.Views.Settings.textPresentInfo": "Päsentation Infos", - "PE.Views.Settings.textPresentSettings": "Präsentationseinstellungen", - "PE.Views.Settings.textPresentSetup": "Präsentation-Einstellungen", - "PE.Views.Settings.textPresentTitle": "Titel der Präsentation", - "PE.Views.Settings.textPrint": "Drucken", - "PE.Views.Settings.textSettings": "Einstellungen", - "PE.Views.Settings.textShowNotification": "Benachrichtigung anzeigen", - "PE.Views.Settings.textSlideSize": "Foliengröße", - "PE.Views.Settings.textSpellcheck": "Rechtschreibprüfung", - "PE.Views.Settings.textSubject": "Thema", - "PE.Views.Settings.textTel": "Tel.", - "PE.Views.Settings.textTitle": "Titel", - "PE.Views.Settings.textUnitOfMeasurement": "Maßeinheit", - "PE.Views.Settings.textUploaded": "Hochgeladen", - "PE.Views.Settings.textVersion": "Version", - "PE.Views.Settings.unknownText": "Unbekannt", - "PE.Views.Toolbar.textBack": "Zurück" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/en.json b/apps/presentationeditor/mobile/locale/en.json index 40ba35902..768aafced 100644 --- a/apps/presentationeditor/mobile/locale/en.json +++ b/apps/presentationeditor/mobile/locale/en.json @@ -1,574 +1,431 @@ { - "Common.Controllers.Collaboration.textAddReply": "Add Reply", - "Common.Controllers.Collaboration.textCancel": "Cancel", - "Common.Controllers.Collaboration.textDeleteComment": "Delete comment", - "Common.Controllers.Collaboration.textDeleteReply": "Delete reply", - "Common.Controllers.Collaboration.textDone": "Done", - "Common.Controllers.Collaboration.textEdit": "Edit", - "Common.Controllers.Collaboration.textEditUser": "Users who are editing the file:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Do you really want to delete this comment?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Do you really want to delete this reply?", - "Common.Controllers.Collaboration.textReopen": "Reopen", - "Common.Controllers.Collaboration.textResolve": "Resolve", - "Common.Controllers.Collaboration.textYes": "Yes", - "Common.UI.ThemeColorPalette.textCustomColors": "Custom Colors", - "Common.UI.ThemeColorPalette.textStandartColors": "Standard Colors", - "Common.UI.ThemeColorPalette.textThemeColors": "Theme Colors", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Add Reply", - "Common.Views.Collaboration.textBack": "Back", - "Common.Views.Collaboration.textCancel": "Cancel", - "Common.Views.Collaboration.textCollaboration": "Collaboration", - "Common.Views.Collaboration.textDone": "Done", - "Common.Views.Collaboration.textEditReply": "Edit Reply", - "Common.Views.Collaboration.textEditUsers": "Users", - "Common.Views.Collaboration.textEditСomment": "Edit Comment", - "Common.Views.Collaboration.textNoComments": "This presentation doesn't contain comments", - "Common.Views.Collaboration.textСomments": "Сomments", - "PE.Controllers.AddContainer.textImage": "Image", - "PE.Controllers.AddContainer.textLink": "Link", - "PE.Controllers.AddContainer.textOther": "Other", - "PE.Controllers.AddContainer.textShape": "Shape", - "PE.Controllers.AddContainer.textSlide": "Slide", - "PE.Controllers.AddContainer.textTable": "Table", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Warning", - "PE.Controllers.AddImage.textEmptyImgUrl": "You need to specify image URL.", - "PE.Controllers.AddImage.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Warning", - "PE.Controllers.AddLink.textDefault": "Selected text", - "PE.Controllers.AddLink.textExternalLink": "External Link", - "PE.Controllers.AddLink.textFirst": "First Slide", - "PE.Controllers.AddLink.textInternalLink": "Slide in this Presentation", - "PE.Controllers.AddLink.textLast": "Last Slide", - "PE.Controllers.AddLink.textNext": "Next Slide", - "PE.Controllers.AddLink.textPrev": "Previous Slide", - "PE.Controllers.AddLink.textSlide": "Slide", - "PE.Controllers.AddLink.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'", - "PE.Controllers.AddOther.textCancel": "Cancel", - "PE.Controllers.AddOther.textContinue": "Continue", - "PE.Controllers.AddOther.textDelete": "Delete", - "PE.Controllers.AddOther.textDeleteDraft": "Do you really want to delete the draft?", - "PE.Controllers.AddTable.textCancel": "Cancel", - "PE.Controllers.AddTable.textColumns": "Columns", - "PE.Controllers.AddTable.textRows": "Rows", - "PE.Controllers.AddTable.textTableSize": "Table Size", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", - "PE.Controllers.DocumentHolder.menuAddComment": "Add Comment", - "PE.Controllers.DocumentHolder.menuAddLink": "Add Link", - "PE.Controllers.DocumentHolder.menuCopy": "Copy", - "PE.Controllers.DocumentHolder.menuCut": "Cut", - "PE.Controllers.DocumentHolder.menuDelete": "Delete", - "PE.Controllers.DocumentHolder.menuEdit": "Edit", - "PE.Controllers.DocumentHolder.menuMore": "More", - "PE.Controllers.DocumentHolder.menuOpenLink": "Open Link", - "PE.Controllers.DocumentHolder.menuPaste": "Paste", - "PE.Controllers.DocumentHolder.menuViewComment": "View Comment", - "PE.Controllers.DocumentHolder.sheetCancel": "Cancel", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copy, Cut and Paste Actions", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Do not show again", - "PE.Controllers.DocumentPreview.txtFinalMessage": "The end of slide preview. Click to exit.", - "PE.Controllers.EditContainer.textChart": "Chart", - "PE.Controllers.EditContainer.textHyperlink": "Hyperlink", - "PE.Controllers.EditContainer.textImage": "Image", - "PE.Controllers.EditContainer.textSettings": "Settings", - "PE.Controllers.EditContainer.textShape": "Shape", - "PE.Controllers.EditContainer.textSlide": "Slide", - "PE.Controllers.EditContainer.textTable": "Table", - "PE.Controllers.EditContainer.textText": "Text", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Warning", - "PE.Controllers.EditImage.textEmptyImgUrl": "You need to specify image URL.", - "PE.Controllers.EditImage.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Warning", - "PE.Controllers.EditLink.textDefault": "Selected text", - "PE.Controllers.EditLink.textExternalLink": "External Link", - "PE.Controllers.EditLink.textFirst": "First Slide", - "PE.Controllers.EditLink.textInternalLink": "Slide in this Presentation", - "PE.Controllers.EditLink.textLast": "Last Slide", - "PE.Controllers.EditLink.textNext": "Next Slide", - "PE.Controllers.EditLink.textPrev": "Previous Slide", - "PE.Controllers.EditLink.textSlide": "Slide", - "PE.Controllers.EditLink.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Auto", - "PE.Controllers.EditText.textFonts": "Fonts", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Enter your password:", - "PE.Controllers.Main.advDRMOptions": "Protected File", - "PE.Controllers.Main.advDRMPassword": "Password", - "PE.Controllers.Main.applyChangesTextText": "Loading data...", - "PE.Controllers.Main.applyChangesTitleText": "Loading Data", - "PE.Controllers.Main.closeButtonText": "Close File", - "PE.Controllers.Main.convertationTimeoutText": "Conversion timeout exceeded.", - "PE.Controllers.Main.criticalErrorExtText": "Press 'OK' to return to document list.", - "PE.Controllers.Main.criticalErrorTitle": "Error", - "PE.Controllers.Main.downloadErrorText": "Download failed.", - "PE.Controllers.Main.downloadTextText": "Downloading presentation...", - "PE.Controllers.Main.downloadTitleText": "Downloading Presentation", - "PE.Controllers.Main.errorAccessDeny": "You are trying to perform an action you do not have rights for.
            Please contact your Document Server administrator.", - "PE.Controllers.Main.errorBadImageUrl": "Image URL is incorrect", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Server connection lost. You can't edit anymore.", - "PE.Controllers.Main.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.
            When you click the 'OK' button, you will be prompted to download the document.", - "PE.Controllers.Main.errorDatabaseConnection": "External error.
            Database connection error. Please, contact support.", - "PE.Controllers.Main.errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", - "PE.Controllers.Main.errorDataRange": "Incorrect data range.", - "PE.Controllers.Main.errorDefaultMessage": "Error code: %1", - "PE.Controllers.Main.errorEditingDownloadas": "An error occurred during the work with the document.
            Use the 'Download' option to save the file backup copy to your computer hard drive.", - "PE.Controllers.Main.errorFilePassProtect": "The file is password protected and cannot be opened.", - "PE.Controllers.Main.errorFileSizeExceed": "The file size exceeds the limitation set for your server.
            Please contact your Document Server administrator for details.", - "PE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor", - "PE.Controllers.Main.errorKeyExpire": "Key descriptor expired", - "PE.Controllers.Main.errorOpensource": "Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.", - "PE.Controllers.Main.errorProcessSaveResult": "Saving is failed.", - "PE.Controllers.Main.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", - "PE.Controllers.Main.errorSessionAbsolute": "The document editing session has expired. Please reload the page.", - "PE.Controllers.Main.errorSessionIdle": "The document has not been edited for quite a long time. Please reload the page.", - "PE.Controllers.Main.errorSessionToken": "The connection to the server has been interrupted. Please reload the page.", - "PE.Controllers.Main.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
            opening price, max price, min price, closing price.", - "PE.Controllers.Main.errorUpdateVersion": "The file version has been changed. The page will be reloaded.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
            Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", - "PE.Controllers.Main.errorUserDrop": "The file cannot be accessed right now.", - "PE.Controllers.Main.errorUsersExceed": "The number of users was exceeded", - "PE.Controllers.Main.errorViewerDisconnect": "Connection is lost. You can still view the document,
            but will not be able to download it until the connection is restored and page is reloaded.", - "PE.Controllers.Main.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.", - "PE.Controllers.Main.loadFontsTextText": "Loading data...", - "PE.Controllers.Main.loadFontsTitleText": "Loading Data", - "PE.Controllers.Main.loadFontTextText": "Loading data...", - "PE.Controllers.Main.loadFontTitleText": "Loading Data", - "PE.Controllers.Main.loadImagesTextText": "Loading images...", - "PE.Controllers.Main.loadImagesTitleText": "Loading Images", - "PE.Controllers.Main.loadImageTextText": "Loading image...", - "PE.Controllers.Main.loadImageTitleText": "Loading Image", - "PE.Controllers.Main.loadingDocumentTextText": "Loading presentation...", - "PE.Controllers.Main.loadingDocumentTitleText": "Loading presentation", - "PE.Controllers.Main.loadThemeTextText": "Loading theme...", - "PE.Controllers.Main.loadThemeTitleText": "Loading Theme", - "PE.Controllers.Main.notcriticalErrorTitle": "Warning", - "PE.Controllers.Main.openErrorText": "An error has occurred while opening the file.", - "PE.Controllers.Main.openTextText": "Opening document...", - "PE.Controllers.Main.openTitleText": "Opening Document", - "PE.Controllers.Main.printTextText": "Printing document...", - "PE.Controllers.Main.printTitleText": "Printing Document", - "PE.Controllers.Main.reloadButtonText": "Reload Page", - "PE.Controllers.Main.requestEditFailedMessageText": "Someone is editing this document right now. Please try again later.", - "PE.Controllers.Main.requestEditFailedTitleText": "Access denied", - "PE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.", - "PE.Controllers.Main.savePreparingText": "Preparing to save", - "PE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...", - "PE.Controllers.Main.saveTextText": "Saving document...", - "PE.Controllers.Main.saveTitleText": "Saving Document", - "PE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.", - "PE.Controllers.Main.splitDividerErrorText": "The number of rows must be a divisor of %1", - "PE.Controllers.Main.splitMaxColsErrorText": "The number of columns must be less than %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "The number of rows must be less than %1", - "PE.Controllers.Main.textAnonymous": "Anonymous", - "PE.Controllers.Main.textBack": "Back", - "PE.Controllers.Main.textBuyNow": "Visit website", - "PE.Controllers.Main.textCancel": "Cancel", - "PE.Controllers.Main.textClose": "Close", - "PE.Controllers.Main.textCloseTip": "Tap to close the tip.", - "PE.Controllers.Main.textContactUs": "Contact sales", - "PE.Controllers.Main.textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader.
            Please contact our Sales Department to get a quote.", - "PE.Controllers.Main.textDone": "Done", - "PE.Controllers.Main.textGuest": "Guest", - "PE.Controllers.Main.textHasMacros": "The file contains automatic macros.
            Do you want to run macros?", - "PE.Controllers.Main.textLoadingDocument": "Loading presentation", - "PE.Controllers.Main.textNo": "No", - "PE.Controllers.Main.textNoLicenseTitle": "License limit reached", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Paid feature", - "PE.Controllers.Main.textPassword": "Password", - "PE.Controllers.Main.textPreloader": "Loading... ", - "PE.Controllers.Main.textRemember": "Remember my choice for all files", - "PE.Controllers.Main.textShape": "Shape", - "PE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", - "PE.Controllers.Main.textUsername": "Username", - "PE.Controllers.Main.textYes": "Yes", - "PE.Controllers.Main.titleLicenseExp": "License expired", - "PE.Controllers.Main.titleServerVersion": "Editor updated", - "PE.Controllers.Main.txtAddFirstSlide": "Click to add the first slide", - "PE.Controllers.Main.txtArt": "Your text here", - "PE.Controllers.Main.txtBasicShapes": "Basic Shapes", - "PE.Controllers.Main.txtButtons": "Buttons", - "PE.Controllers.Main.txtCallouts": "Callouts", - "PE.Controllers.Main.txtCharts": "Charts", - "PE.Controllers.Main.txtClipArt": "Clip Art", - "PE.Controllers.Main.txtDateTime": "Date and time", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Chart Title", - "PE.Controllers.Main.txtEditingMode": "Set editing mode...", - "PE.Controllers.Main.txtFiguredArrows": "Figured Arrows", - "PE.Controllers.Main.txtFooter": "Footer", - "PE.Controllers.Main.txtHeader": "Header", - "PE.Controllers.Main.txtImage": "Image", - "PE.Controllers.Main.txtLines": "Lines", - "PE.Controllers.Main.txtMath": "Math", - "PE.Controllers.Main.txtMedia": "Media", - "PE.Controllers.Main.txtNeedSynchronize": "You have updates", - "PE.Controllers.Main.txtPicture": "Picture", - "PE.Controllers.Main.txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", - "PE.Controllers.Main.txtRectangles": "Rectangles", - "PE.Controllers.Main.txtSeries": "Series", - "PE.Controllers.Main.txtSldLtTBlank": "Blank", - "PE.Controllers.Main.txtSldLtTChart": "Chart", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Chart and Text", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art and Text", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clip Art and Vertical Text", - "PE.Controllers.Main.txtSldLtTCust": "Custom", - "PE.Controllers.Main.txtSldLtTDgm": "Diagram", - "PE.Controllers.Main.txtSldLtTFourObj": "Four Objects", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Media and Text", - "PE.Controllers.Main.txtSldLtTObj": "Title and Object", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Object and Two Objects", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Object and Text", - "PE.Controllers.Main.txtSldLtTObjOnly": "Object", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Object over Text", - "PE.Controllers.Main.txtSldLtTObjTx": "Title, Object, and Caption", - "PE.Controllers.Main.txtSldLtTPicTx": "Picture and Caption", - "PE.Controllers.Main.txtSldLtTSecHead": "Section Header", - "PE.Controllers.Main.txtSldLtTTbl": "Table", - "PE.Controllers.Main.txtSldLtTTitle": "Title", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Title Only", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Two Column Text", - "PE.Controllers.Main.txtSldLtTTwoObj": "Two Objects", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Two Objects and Object", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Two Objects and Text", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Two Objects over Text", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Two Text and Two Objects", - "PE.Controllers.Main.txtSldLtTTx": "Text", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Text and Chart", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Text and Clip Art", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Text and Media", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Text and Object", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Text and Two Objects", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Text over Object", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Vertical Title and Text", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Vertical Title and Text Over Chart", - "PE.Controllers.Main.txtSldLtTVertTx": "Vertical Text", - "PE.Controllers.Main.txtSlideNumber": "Slide number", - "PE.Controllers.Main.txtSlideSubtitle": "Slide subtitle", - "PE.Controllers.Main.txtSlideText": "Slide text", - "PE.Controllers.Main.txtSlideTitle": "Slide title", - "PE.Controllers.Main.txtStarsRibbons": "Stars & Ribbons", - "PE.Controllers.Main.txtXAxis": "X Axis", - "PE.Controllers.Main.txtYAxis": "Y Axis", - "PE.Controllers.Main.unknownErrorText": "Unknown error.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Your browser is not supported.", - "PE.Controllers.Main.uploadImageExtMessage": "Unknown image format.", - "PE.Controllers.Main.uploadImageFileCountMessage": "No images uploaded.", - "PE.Controllers.Main.uploadImageSizeMessage": "Maximium image size limit exceeded.", - "PE.Controllers.Main.uploadImageTextText": "Uploading image...", - "PE.Controllers.Main.uploadImageTitleText": "Uploading Image", - "PE.Controllers.Main.waitText": "Please, wait...", - "PE.Controllers.Main.warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
            Contact your administrator to learn more.", - "PE.Controllers.Main.warnLicenseExp": "Your license has expired.
            Please update your license and refresh the page.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "License expired.
            You have no access to document editing functionality.
            Please contact your administrator.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "License needs to be renewed.
            You have a limited access to document editing functionality.
            Please contact your administrator to get full access", - "PE.Controllers.Main.warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.", - "PE.Controllers.Main.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
            Contact %1 sales team for personal upgrade terms.", - "PE.Controllers.Main.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", - "PE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", - "PE.Controllers.Search.textNoTextFound": "Text not Found", - "PE.Controllers.Search.textReplaceAll": "Replace All", - "PE.Controllers.Settings.notcriticalErrorTitle": "Warning", - "PE.Controllers.Settings.txtLoading": "Loading...", - "PE.Controllers.Toolbar.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.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "You leave the application", - "PE.Controllers.Toolbar.leaveButtonText": "Leave this Page", - "PE.Controllers.Toolbar.stayButtonText": "Stay on this Page", - "PE.Views.AddImage.textAddress": "Address", - "PE.Views.AddImage.textBack": "Back", - "PE.Views.AddImage.textFromLibrary": "Picture from Library", - "PE.Views.AddImage.textFromURL": "Picture from URL", - "PE.Views.AddImage.textImageURL": "Image URL", - "PE.Views.AddImage.textInsertImage": "Insert Image", - "PE.Views.AddImage.textLinkSettings": "Link Settings", - "PE.Views.AddLink.textBack": "Back", - "PE.Views.AddLink.textDisplay": "Display", - "PE.Views.AddLink.textExternalLink": "External Link", - "PE.Views.AddLink.textFirst": "First Slide", - "PE.Views.AddLink.textInsert": "Insert", - "PE.Views.AddLink.textInternalLink": "Slide in this Presentation", - "PE.Views.AddLink.textLast": "Last Slide", - "PE.Views.AddLink.textLink": "Link", - "PE.Views.AddLink.textLinkSlide": "Link to", - "PE.Views.AddLink.textLinkType": "Link Type", - "PE.Views.AddLink.textNext": "Next Slide", - "PE.Views.AddLink.textNumber": "Slide Number", - "PE.Views.AddLink.textPrev": "Previous Slide", - "PE.Views.AddLink.textTip": "Screen Tip", - "PE.Views.AddOther.textAddComment": "Add Comment", - "PE.Views.AddOther.textBack": "Back", - "PE.Views.AddOther.textComment": "Comment", - "PE.Views.AddOther.textDisplay": "Display", - "PE.Views.AddOther.textDone": "Done", - "PE.Views.AddOther.textExternalLink": "External Link", - "PE.Views.AddOther.textFirst": "First Slide", - "PE.Views.AddOther.textInsert": "Insert", - "PE.Views.AddOther.textInternalLink": "Slide in this Presentation", - "PE.Views.AddOther.textLast": "Last Slide", - "PE.Views.AddOther.textLink": "Link", - "PE.Views.AddOther.textLinkSlide": "Link to", - "PE.Views.AddOther.textLinkType": "Link Type", - "PE.Views.AddOther.textNext": "Next Slide", - "PE.Views.AddOther.textNumber": "Slide Number", - "PE.Views.AddOther.textPrev": "Previous Slide", - "PE.Views.AddOther.textTable": "Table", - "PE.Views.AddOther.textTip": "Screen Tip", - "PE.Views.EditChart.textAddCustomColor": "Add Custom Color", - "PE.Views.EditChart.textAlign": "Align", - "PE.Views.EditChart.textAlignBottom": "Align Bottom", - "PE.Views.EditChart.textAlignCenter": "Align Center", - "PE.Views.EditChart.textAlignLeft": "Align Left", - "PE.Views.EditChart.textAlignMiddle": "Align Middle", - "PE.Views.EditChart.textAlignRight": "Align Right", - "PE.Views.EditChart.textAlignTop": "Align Top", - "PE.Views.EditChart.textBack": "Back", - "PE.Views.EditChart.textBackward": "Move Backward", - "PE.Views.EditChart.textBorder": "Border", - "PE.Views.EditChart.textColor": "Color", - "PE.Views.EditChart.textCustomColor": "Custom Color", - "PE.Views.EditChart.textFill": "Fill", - "PE.Views.EditChart.textForward": "Move Forward", - "PE.Views.EditChart.textRemoveChart": "Remove Chart", - "PE.Views.EditChart.textReorder": "Reorder", - "PE.Views.EditChart.textSize": "Size", - "PE.Views.EditChart.textStyle": "Style", - "PE.Views.EditChart.textToBackground": "Send to Background", - "PE.Views.EditChart.textToForeground": "Bring to Foreground", - "PE.Views.EditChart.textType": "Type", - "PE.Views.EditChart.txtDistribHor": "Distribute Horizontally", - "PE.Views.EditChart.txtDistribVert": "Distribute Vertically", - "PE.Views.EditImage.textAddress": "Address", - "PE.Views.EditImage.textAlign": "Align", - "PE.Views.EditImage.textAlignBottom": "Align Bottom", - "PE.Views.EditImage.textAlignCenter": "Align Center", - "PE.Views.EditImage.textAlignLeft": "Align Left", - "PE.Views.EditImage.textAlignMiddle": "Align Middle", - "PE.Views.EditImage.textAlignRight": "Align Right", - "PE.Views.EditImage.textAlignTop": "Align Top", - "PE.Views.EditImage.textBack": "Back", - "PE.Views.EditImage.textBackward": "Move Backward", - "PE.Views.EditImage.textDefault": "Actual Size", - "PE.Views.EditImage.textForward": "Move Forward", - "PE.Views.EditImage.textFromLibrary": "Picture from Library", - "PE.Views.EditImage.textFromURL": "Picture from URL", - "PE.Views.EditImage.textImageURL": "Image URL", - "PE.Views.EditImage.textLinkSettings": "Link Settings", - "PE.Views.EditImage.textRemove": "Remove Image", - "PE.Views.EditImage.textReorder": "Reorder", - "PE.Views.EditImage.textReplace": "Replace", - "PE.Views.EditImage.textReplaceImg": "Replace Image", - "PE.Views.EditImage.textToBackground": "Send to Background", - "PE.Views.EditImage.textToForeground": "Bring to Foreground", - "PE.Views.EditImage.txtDistribHor": "Distribute Horizontally", - "PE.Views.EditImage.txtDistribVert": "Distribute Vertically", - "PE.Views.EditLink.textBack": "Back", - "PE.Views.EditLink.textDisplay": "Display", - "PE.Views.EditLink.textEdit": "Edit Link", - "PE.Views.EditLink.textExternalLink": "External Link", - "PE.Views.EditLink.textFirst": "First Slide", - "PE.Views.EditLink.textInternalLink": "Slide in this Presentation", - "PE.Views.EditLink.textLast": "Last Slide", - "PE.Views.EditLink.textLink": "Link", - "PE.Views.EditLink.textLinkSlide": "Link to", - "PE.Views.EditLink.textLinkType": "Link Type", - "PE.Views.EditLink.textNext": "Next Slide", - "PE.Views.EditLink.textNumber": "Slide Number", - "PE.Views.EditLink.textPrev": "Previous Slide", - "PE.Views.EditLink.textRemove": "Remove Link", - "PE.Views.EditLink.textTip": "Screen Tip", - "PE.Views.EditShape.textAddCustomColor": "Add Custom Color", - "PE.Views.EditShape.textAlign": "Align", - "PE.Views.EditShape.textAlignBottom": "Align Bottom", - "PE.Views.EditShape.textAlignCenter": "Align Center", - "PE.Views.EditShape.textAlignLeft": "Align Left", - "PE.Views.EditShape.textAlignMiddle": "Align Middle", - "PE.Views.EditShape.textAlignRight": "Align Right", - "PE.Views.EditShape.textAlignTop": "Align Top", - "PE.Views.EditShape.textBack": "Back", - "PE.Views.EditShape.textBackward": "Move Backward", - "PE.Views.EditShape.textBorder": "Border", - "PE.Views.EditShape.textColor": "Color", - "PE.Views.EditShape.textCustomColor": "Custom Color", - "PE.Views.EditShape.textEffects": "Effects", - "PE.Views.EditShape.textFill": "Fill", - "PE.Views.EditShape.textForward": "Move Forward", - "PE.Views.EditShape.textOpacity": "Opacity", - "PE.Views.EditShape.textRemoveShape": "Remove Shape", - "PE.Views.EditShape.textReorder": "Reorder", - "PE.Views.EditShape.textReplace": "Replace", - "PE.Views.EditShape.textSize": "Size", - "PE.Views.EditShape.textStyle": "Style", - "PE.Views.EditShape.textToBackground": "Send to Background", - "PE.Views.EditShape.textToForeground": "Bring to Foreground", - "PE.Views.EditShape.txtDistribHor": "Distribute Horizontally", - "PE.Views.EditShape.txtDistribVert": "Distribute Vertically", - "PE.Views.EditSlide.textAddCustomColor": "Add Custom Color", - "PE.Views.EditSlide.textApplyAll": "Apply to All Slides", - "PE.Views.EditSlide.textBack": "Back", - "PE.Views.EditSlide.textBlack": "Through Black", - "PE.Views.EditSlide.textBottom": "Bottom", - "PE.Views.EditSlide.textBottomLeft": "Bottom-Left", - "PE.Views.EditSlide.textBottomRight": "Bottom-Right", - "PE.Views.EditSlide.textClock": "Clock", - "PE.Views.EditSlide.textClockwise": "Clockwise", - "PE.Views.EditSlide.textColor": "Color", - "PE.Views.EditSlide.textCounterclockwise": "Counterclockwise", - "PE.Views.EditSlide.textCover": "Cover", - "PE.Views.EditSlide.textCustomColor": "Custom Color", - "PE.Views.EditSlide.textDelay": "Delay", - "PE.Views.EditSlide.textDuplicateSlide": "Duplicate Slide", - "PE.Views.EditSlide.textDuration": "Duration", - "PE.Views.EditSlide.textEffect": "Effect", - "PE.Views.EditSlide.textFade": "Fade", - "PE.Views.EditSlide.textFill": "Fill", - "PE.Views.EditSlide.textHorizontalIn": "Horizontal In", - "PE.Views.EditSlide.textHorizontalOut": "Horizontal Out", - "PE.Views.EditSlide.textLayout": "Layout", - "PE.Views.EditSlide.textLeft": "Left", - "PE.Views.EditSlide.textNone": "None", - "PE.Views.EditSlide.textOpacity": "Opacity", - "PE.Views.EditSlide.textPush": "Push", - "PE.Views.EditSlide.textRemoveSlide": "Delete Slide", - "PE.Views.EditSlide.textRight": "Right", - "PE.Views.EditSlide.textSmoothly": "Smoothly", - "PE.Views.EditSlide.textSplit": "Split", - "PE.Views.EditSlide.textStartOnClick": "Start On Click", - "PE.Views.EditSlide.textStyle": "Style", - "PE.Views.EditSlide.textTheme": "Theme", - "PE.Views.EditSlide.textTop": "Top", - "PE.Views.EditSlide.textTopLeft": "Top-Left", - "PE.Views.EditSlide.textTopRight": "Top-Right", - "PE.Views.EditSlide.textTransition": "Transition", - "PE.Views.EditSlide.textType": "Type", - "PE.Views.EditSlide.textUnCover": "UnCover", - "PE.Views.EditSlide.textVerticalIn": "Vertical In", - "PE.Views.EditSlide.textVerticalOut": "Vertical Out", - "PE.Views.EditSlide.textWedge": "Wedge", - "PE.Views.EditSlide.textWipe": "Wipe", - "PE.Views.EditSlide.textZoom": "Zoom", - "PE.Views.EditSlide.textZoomIn": "Zoom In", - "PE.Views.EditSlide.textZoomOut": "Zoom Out", - "PE.Views.EditSlide.textZoomRotate": "Zoom and Rotate", - "PE.Views.EditTable.textAddCustomColor": "Add Custom Color", - "PE.Views.EditTable.textAlign": "Align", - "PE.Views.EditTable.textAlignBottom": "Align Bottom", - "PE.Views.EditTable.textAlignCenter": "Align Center", - "PE.Views.EditTable.textAlignLeft": "Align Left", - "PE.Views.EditTable.textAlignMiddle": "Align Middle", - "PE.Views.EditTable.textAlignRight": "Align Right", - "PE.Views.EditTable.textAlignTop": "Align Top", - "PE.Views.EditTable.textBack": "Back", - "PE.Views.EditTable.textBackward": "Move Backward", - "PE.Views.EditTable.textBandedColumn": "Banded Column", - "PE.Views.EditTable.textBandedRow": "Banded Row", - "PE.Views.EditTable.textBorder": "Border", - "PE.Views.EditTable.textCellMargins": "Cell Margins", - "PE.Views.EditTable.textColor": "Color", - "PE.Views.EditTable.textCustomColor": "Custom Color", - "PE.Views.EditTable.textFill": "Fill", - "PE.Views.EditTable.textFirstColumn": "First Column", - "PE.Views.EditTable.textForward": "Move Forward", - "PE.Views.EditTable.textHeaderRow": "Header Row", - "PE.Views.EditTable.textLastColumn": "Last Column", - "PE.Views.EditTable.textOptions": "Options", - "PE.Views.EditTable.textRemoveTable": "Remove Table", - "PE.Views.EditTable.textReorder": "Reorder", - "PE.Views.EditTable.textSize": "Size", - "PE.Views.EditTable.textStyle": "Style", - "PE.Views.EditTable.textStyleOptions": "Style Options", - "PE.Views.EditTable.textTableOptions": "Table Options", - "PE.Views.EditTable.textToBackground": "Send to Background", - "PE.Views.EditTable.textToForeground": "Bring to Foreground", - "PE.Views.EditTable.textTotalRow": "Total Row", - "PE.Views.EditTable.txtDistribHor": "Distribute Horizontally", - "PE.Views.EditTable.txtDistribVert": "Distribute Vertically", - "PE.Views.EditText.textAddCustomColor": "Add Custom Color", - "PE.Views.EditText.textAdditional": "Additional", - "PE.Views.EditText.textAdditionalFormat": "Additional Formatting", - "PE.Views.EditText.textAfter": "After", - "PE.Views.EditText.textAllCaps": "All Caps", - "PE.Views.EditText.textAutomatic": "Automatic", - "PE.Views.EditText.textBack": "Back", - "PE.Views.EditText.textBefore": "Before", - "PE.Views.EditText.textBullets": "Bullets", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Custom Color", - "PE.Views.EditText.textDblStrikethrough": "Double Strikethrough", - "PE.Views.EditText.textDblSuperscript": "Superscript", - "PE.Views.EditText.textFontColor": "Font Color", - "PE.Views.EditText.textFontColors": "Font Colors", - "PE.Views.EditText.textFonts": "Fonts", - "PE.Views.EditText.textFromText": "Distance from Text", - "PE.Views.EditText.textLetterSpacing": "Letter Spacing", - "PE.Views.EditText.textLineSpacing": "Line Spacing", - "PE.Views.EditText.textNone": "None", - "PE.Views.EditText.textNumbers": "Numbers", - "PE.Views.EditText.textSize": "Size", - "PE.Views.EditText.textSmallCaps": "Small Caps", - "PE.Views.EditText.textStrikethrough": "Strikethrough", - "PE.Views.EditText.textSubscript": "Subscript", - "PE.Views.Search.textCase": "Case sensitive", - "PE.Views.Search.textDone": "Done", - "PE.Views.Search.textFind": "Find", - "PE.Views.Search.textFindAndReplace": "Find and Replace", - "PE.Views.Search.textReplace": "Replace", - "PE.Views.Search.textSearch": "Search", - "PE.Views.Settings. textComment": "Comment", - "PE.Views.Settings.mniSlideStandard": "Standard (4:3)", - "PE.Views.Settings.mniSlideWide": "Widescreen (16:9)", - "PE.Views.Settings.textAbout": "About", - "PE.Views.Settings.textAddress": "address", - "PE.Views.Settings.textApplication": "Application", - "PE.Views.Settings.textApplicationSettings": "Application Settings", - "PE.Views.Settings.textAuthor": "Author", - "PE.Views.Settings.textBack": "Back", - "PE.Views.Settings.textCentimeter": "Centimeter", - "PE.Views.Settings.textCollaboration": "Collaboration", - "PE.Views.Settings.textColorSchemes": "Color Schemes", - "PE.Views.Settings.textCreated": "Created", - "PE.Views.Settings.textCreateDate": "Creation date", - "PE.Views.Settings.textDisableAll": "Disable All", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Disable all macros with a notification", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Disable all macros without a notification", - "PE.Views.Settings.textDone": "Done", - "PE.Views.Settings.textDownload": "Download", - "PE.Views.Settings.textDownloadAs": "Download As...", - "PE.Views.Settings.textEditPresent": "Edit Presentation", - "PE.Views.Settings.textEmail": "email", - "PE.Views.Settings.textEnableAll": "Enable All", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Enable all macros without a notification", - "PE.Views.Settings.textFind": "Find", - "PE.Views.Settings.textFindAndReplace": "Find and Replace", - "PE.Views.Settings.textHelp": "Help", - "PE.Views.Settings.textInch": "Inch", - "PE.Views.Settings.textLastModified": "Last Modified", - "PE.Views.Settings.textLastModifiedBy": "Last Modified By", - "PE.Views.Settings.textLoading": "Loading...", - "PE.Views.Settings.textLocation": "Location", - "PE.Views.Settings.textMacrosSettings": "Macros Settings", - "PE.Views.Settings.textOwner": "Owner", - "PE.Views.Settings.textPoint": "Point", - "PE.Views.Settings.textPoweredBy": "Powered by", - "PE.Views.Settings.textPresentInfo": "Presentation Info", - "PE.Views.Settings.textPresentSettings": "Presentation Settings", - "PE.Views.Settings.textPresentSetup": "Presentation Setup", - "PE.Views.Settings.textPresentTitle": "Presentation title", - "PE.Views.Settings.textPrint": "Print", - "PE.Views.Settings.textSettings": "Settings", - "PE.Views.Settings.textShowNotification": "Show Notification", - "PE.Views.Settings.textSlideSize": "Slide Size", - "PE.Views.Settings.textSpellcheck": "Spell Checking", - "PE.Views.Settings.textSubject": "Subject", - "PE.Views.Settings.textTel": "tel", - "PE.Views.Settings.textTitle": "Title", - "PE.Views.Settings.textUnitOfMeasurement": "Unit of Measurement", - "PE.Views.Settings.textUploaded": "Uploaded", - "PE.Views.Settings.textVersion": "Version", - "PE.Views.Settings.unknownText": "Unknown", - "PE.Views.Toolbar.textBack": "Back" + "Controller" : { + "Main" : { + "SDK": { + "Series": "Series", + "Diagram Title": "Chart Title", + "X Axis": "X Axis XAS", + "Y Axis": "Y Axis", + "Your text here": "Your text here", + "Slide text": "Slide text", + "Chart": "Chart", + "ClipArt": "Clip Art", + "Diagram": "Diagram", + "Date and time": "Date and time", + "Footer": "Footer", + "Header": "Header", + "Media": "Media", + "Picture": "Picture", + "Image": "Image", + "Slide number": "Slide number", + "Slide subtitle": "Slide subtitle", + "Table": "Table", + "Slide title": "Slide title" + }, + "closeButtonText": "Close File", + "advDRMOptions": "Protected File", + "advDRMPassword": "Password", + + "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.", + "titleLicenseExp": "License expired", + "warnLicenseExp": "Your license has expired. Please update your license and refresh the page.", + "errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", + "titleServerVersion": "Editor updated", + "notcriticalErrorTitle": "Warning", + "errorOpensource": "Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.", + "warnLicenseLimitedNoAccess": "License expired. You have no access to document editing functionality. Please contact your administrator.", + "warnLicenseLimitedRenewed": "License needs to be renewed. You have a limited access to document editing functionality.
            Please contact your administrator to get full access", + "warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only. Contact your administrator to learn more.", + "warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.", + "warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only. Contact %1 sales team for personal upgrade terms.", + "warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", + "textBuyNow": "Visit website", + "textContactUs": "Contact sales", + "textNoLicenseTitle": "License limit reached", + "textPaidFeature": "Paid feature", + "textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader. Please contact our Sales Department to get a quote.", + "textClose": "Close", + + "errorProcessSaveResult": "Saving is failed.", + "criticalErrorTitle": "Error", + "warnProcessRightsChange": "You have been denied the right to edit the file.", + "errorAccessDeny": "You are trying to perform an action you do not have rights for.
            Please contact your Document Server administrator.", + + "errorUpdateVersion": "The file version has been changed. The page will be reloaded.", + "titleUpdateVersion": "Version changed", + "textHasMacros": "The file contains automatic macros.
            Do you want to run macros?", + "textRemember": "Remember my choice", + "textYes": "Yes", + "textNo": "No" + } + }, + "Error": { + "criticalErrorTitle": "Error", + "unknownErrorText": "Unknown error.", + "convertationTimeoutText": "Convertation timeout exceeded.", + "openErrorText": "An error has occurred while opening the file", + "saveErrorText": "An error has occurred while saving the file", + "downloadErrorText": "Download failed.", + "uploadImageSizeMessage": "Maximium image size limit exceeded.", + "uploadImageExtMessage": "Unknown image format.", + "uploadImageFileCountMessage": "No images uploaded.", + "splitMaxRowsErrorText": "The number of rows 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", + "errorKeyEncrypt": "Unknown key descriptor", + "errorKeyExpire": "Key descriptor expired", + "errorUsersExceed": "Count of users was exceed", + "errorViewerDisconnect": "Connection is lost. You can still view the document,
            but will not be able to download until the connection is restored and page is reloaded.", + "errorFilePassProtect": "The file is password protected and could not be opened.", + "errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
            opening price, max price, min price, closing price.", + "errorDataRange": "Incorrect data range.", + "errorDatabaseConnection": "External error.
            Database connection error. Please, contact support.", + "errorUserDrop": "The file cannot be accessed right now.", + "errorConnectToServer": " The document could not be saved. Please check connection settings or contact your administrator.
            When you click the 'OK' button, you will be prompted to download the document.", + "errorBadImageUrl": "Image url is incorrect", + "errorSessionAbsolute": "The document editing session has expired. Please reload the page.", + "errorSessionIdle": "The document has not been edited for quite a long time. Please reload the page.", + "errorSessionToken": "The connection to the server has been interrupted. Please reload the page.", + "errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", + "errorAccessDeny": "You are trying to perform an action you do not have rights for.
            Please contact your Document Server administrator.", + "errorEditingDownloadas": "An error occurred during the work with the document.
            Use the 'Download' option to save the file backup copy to your computer hard drive.", + "errorFileSizeExceed": "The file size exceeds the limitation set for your server.
            Please contact your Document Server administrator for details.", + "errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
            Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", + "errorDefaultMessage": "Error code: %1", + "criticalErrorExtText": "Press 'OK' to back to document list.", + "notcriticalErrorTitle": "Warning", + "scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page." + }, + "LongActions": { + "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...", + "applyChangesTitleText": "Loading Data", + "applyChangesTextText": "Loading data...", + "savePreparingText": "Preparing to save", + "savePreparingTitle": "Preparing to save. Please wait...", + "waitText": "Please, wait...", + "txtEditingMode": "Set editing mode...", + "loadingDocumentTitleText": "Loading document", + "loadingDocumentTextText": "Loading document...", + "textLoadingDocument": "Loading document", + "loadThemeTitleText": "Loading Theme", + "loadThemeTextText": "Loading theme..." + }, + "ContextMenu": { + "menuViewComment": "View Comment", + "menuAddComment": "Add Comment", + "menuDelete": "Delete", + "menuEdit": "Edit", + "menuAddLink": "Add Link", + "menuOpenLink": "Open Link", + "menuMore": "More", + "menuCancel": "Cancel", + "textCopyCutPasteActions": "Copy, Cut and Paste Actions", + "errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", + "textDoNotShowAgain": "Don't show again" + }, + "Toolbar": { + "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" + }, + "View": { + "Settings": { + "textDone": "Done", + "textSettings": "Settings", + "textFindAndReplace": "Find and Replace", + "textFindAndReplaceAll": "Find and Replace All", + "textPresentationSettings": "Presentation Settings", + "textApplicationSettings": "Application Settings", + "textDownload": "Download", + "textDownloadAs": "Download As...", + "textPrint": "Print", + "textPresentationInfo": "Presentation Info", + "textHelp": "Help", + "textAbout": "About", + "textBack": "Back", + "textUnitOfMeasurement": "Unit Of Measurement", + "textCentimeter": "Centimeter", + "textPoint": "Point", + "textInch": "Inch", + "textSpellcheck": "Spell Checking", + "textMacrosSettings": "Macros Settings", + "textDisableAll": "Disable All", + "textDisableAllMacrosWithoutNotification": "Disable all macros without notification", + "textShowNotification": "Show Notification", + "textDisableAllMacrosWithNotification": "Disable all macros with notification", + "textEnableAll": "Enable All", + "textEnableAllMacrosWithoutNotification": "Enable all macros without notification", + "textLocation": "Location", + "textTitle": "Title", + "textSubject": "Subject", + "textComment": "Comment", + "textCreated": "Created", + "textLastModifiedBy": "Last Modified By", + "textLastModified": "Last Modified", + "textApplication": "Application", + "textLoading": "Loading...", + "textAuthor": "Author", + "textPresentationTitle": "Presentation Title", + "textOwner": "Owner", + "textUploaded": "Uploaded", + "textSlideSize": "Slide Size", + "mniSlideStandard": "Standard (4:3)", + "mniSlideWide": "Widescreen (16:9)", + "textColorSchemes": "Color Schemes", + "textVersion": "Version", + "textAddress": "address:", + "textEmail": "email:", + "textTel": "tel:", + "textPoweredBy": "Powered By", + "textReplaceAll": "Replace All", + "textFind": "Find", + "textSearch": "Search", + "textCaseSensitive": "Case Sensitive", + "textHighlight": "Highlight Results", + "textReplace": "Replace", + "textNoTextFound": "Text not Found", + "textCollaboration": "Collaboration" + }, + "Add": { + "textSlide": "Slide", + "textShape": "Shape", + "textImage": "Image", + "textOther": "Other", + "textPictureFromLibrary": "Picture from Library", + "textPictureFromURL": "Picture from URL", + "textLinkSettings": "LinkSettings", + "textBack": "Back", + "textEmptyImgUrl": "You need to specify image URL.", + "txtNotUrl": "This field should be a URL in the format \"http://www.example.com\"", + "notcriticalErrorTitle": "Warning", + "textAddress": "Address", + "textImageURL": "Image URL", + "textInsertImage": "Insert Image", + "textTable": "Table", + "textComment": "Comment", + "textTableSize": "Table Size", + "textColumns": "Columns", + "textRows": "Rows", + "textCancel": "Cancel", + "textAddLink": "Add Link", + "textLink": "Link", + "textLinkType": "Link Type", + "textExternalLink": "External Link", + "textSlideInThisPresentation": "Slide in this Presentation", + "textLinkTo": "Link to", + "textNextSlide": "Next Slide", + "textPreviousSlide": "Previous Slide", + "textFirstSlide": "First Slide", + "textLastSlide": "Last Slide", + "textSlideNumber": "Slide Number", + "textDisplay": "Display", + "textDefault": "Selected text", + "textScreenTip": "Screen Tip", + "textInsert": "Insert" + }, + "Edit": { + "textText": "Text", + "textSlide": "Slide", + "textTable": "Table", + "textShape": "Shape", + "textImage": "Image", + "textChart": "Chart", + "textHyperlink": "Hyperlink", + "textTheme": "Theme", + "textStyle": "Style", + "textLayout": "Layout", + "textTransition": "Transition", + "textBack": "Back", + "textEffect": "Effect", + "textType": "Type", + "textDuration": "Duration", + "textStartOnClick": "Start On Click", + "textDelay": "Delay", + "textApplyAll": "Apply to All Slides", + "textNone": "None", + "textFade": "Fade", + "textPush": "Push", + "textWipe": "Wipe", + "textSplit": "Split", + "textUnCover": "UnCover", + "textCover": "Cover", + "textClock": "Clock", + "textZoom": "Zoom", + "textSmoothly": "Smoothly", + "textBlack": "Through Black", + "textLeft": "Left", + "textTop": "Top", + "textRight": "Right", + "textBottom": "Bottom", + "textTopLeft": "Top-Left", + "textTopRight": "Top-Right", + "textBottomLeft": "Bottom-Left", + "textBottomRight": "Bottom-Right", + "textVerticalIn": "Vertical In", + "textVerticalOut": "Vertical Out", + "textHorizontalIn": "Horizontal In", + "textHorizontalOut": "Horizontal Out", + "textClockwise": "Clockwise", + "textCounterclockwise": "Counterclockwise", + "textWedge": "Wedge", + "textZoomIn": "Zoom In", + "textZoomOut": "Zoom Out", + "textZoomRotate": "Zoom and Rotate", + "textSec": "s", + "textAddCustomColor": "Add Custom Color", + "textFill": "Fill", + "textBorder": "Border", + "textEffects": "Effects", + "textCustomColor": "Custom Color", + "textDuplicateSlide": "Duplicate Slide", + "textDeleteSlide": "Delete Slide", + "textFontColor": "Font Color", + "textHighlightColor": "Highlight Color", + "textAdditionalFormatting": "Additional Formatting", + "textAdditional": "Additional", + "textBullets": "Bullets", + "textNumbers": "Numbers", + "textLineSpacing": "Line Spacing", + "textFonts": "Fonts", + "textAuto": "Auto", + "textPt": "pt", + "textSize": "Size", + "textStrikethrough": "Strikethrough", + "textDoubleStrikethrough": "Double Strikethrough", + "textSuperscript": "Superscript", + "textSubscript": "Subscript", + "textSmallCaps": "Small Caps", + "textAllCaps": "All Caps", + "textLetterSpacing": "Letter Spacing", + "textDistanceFromText": "Distance From Text", + "textBefore": "Before", + "textAfter": "After", + "textFontColors": "Font Colors", + "textReplace": "Replace", + "textReorder": "Reorder", + "textAlign": "Align", + "textRemoveShape": "Remove Shape", + "textColor": "Color", + "textOpacity": "Opacity", + "textBringToForeground": "Bring to Foreground", + "textSendToBackground": "Send to Background", + "textMoveForward": "Move Forward", + "textMoveBackward": "Move Backward", + "textAlignLeft": "Align Left", + "textAlignCenter": "Align Center", + "textAlignRight": "Align Right", + "textAlignTop": "Align Top", + "textAlignMiddle": "Align Middle", + "textAlignBottom": "Align Bottom", + "textDistributeHorizontally": "Distribute Horizontally", + "textDistributeVertically": "Distribute Vertically", + "textFromLibrary": "Picture from Library", + "textFromURL": "Picture from URL", + "textLinkSettings": "Link Settings", + "textAddress": "Address", + "textImageURL": "Image URL", + "textReplaceImage": "Replace Image", + "textActualSize": "Actual Size", + "textRemoveImage": "Remove Image", + "textEmptyImgUrl": "You need to specify image URL.", + "textNotUrl": "This field should be a URL in the format \"http://www.example.com\"", + "notcriticalErrorTitle": "Warning", + "textPictureFromLibrary": "Picture from Library", + "textPictureFromURL": "Picture from URL", + "textOptions": "Options", + "textHeaderRow": "Header Row", + "textTotalRow": "Total Row", + "textBandedRow": "Banded Row", + "textFirstColumn": "First Column", + "textLastColumn": "Last Column", + "textBandedColumn": "Banded Column", + "textStyleOptions": "Style Options", + "textRemoveTable": "Remove Table", + "textCellMargins": "Cell Margins", + "textRemoveChart": "Remove Chart", + "textNoStyles": "No styles for this type of charts.", + "textLinkType": "Link Type", + "textExternalLink": "External Link", + "textSlideInThisPresentation": "Slide in this Presentation", + "textLink": "Link", + "textLinkTo": "Link to", + "textNextSlide": "Next Slide", + "textPreviousSlide": "Previous Slide", + "textFirstSlide": "First Slide", + "textLastSlide": "Last Slide", + "textSlideNumber": "Slide Number", + "textEditLink": "Edit Link", + "textRemoveLink": "Remove Link", + "textDisplay": "Display", + "textScreenTip": "Screen Tip", + "textDefault": "Selected text", + "textReplaceAll": "Replace All", + "textFind": "Find", + "textFindAndReplace": "Find and Replace", + "textDone": "Done", + "textSearch": "Search", + "textCaseSensitive": "Case Sensitive", + "textHighlight": "Highlight Results", + "textNoTextFound": "Text not Found", + "textSelectObjectToEdit": "Select object to edit", + "textFinalMessage": "The end of slide preview. Click to exit." + } + }, + "Common": { + "ThemeColorPalette": { + "textThemeColors": "Theme Colors", + "textStandartColors": "Standard Colors", + "textCustomColors": "Custom Colors" + }, + "Collaboration": { + "textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", + "notcriticalErrorTitle": "Warning", + "textCollaboration": "Collaboration", + "textBack": "Back", + "textUsers": "Users", + "textEditUser": "Users who are editing the file:", + "textComments": "Comments", + "textAddComment": "Add Comment", + "textCancel": "Cancel", + "textDone": "Done", + "textNoComments": "This document doesn't contain comments", + "textEdit": "Edit", + "textResolve": "Resolve", + "textReopen": "Reopen", + "textAddReply": "Add Reply", + "textDeleteComment": "Delete Comment", + "textMessageDeleteComment": "Do you really want to delete this comment?", + "textMessageDeleteReply": "Do you really want to delete this reply?", + "textDeleteReply": "Delete Reply", + "textEditComment": "Edit Comment", + "textEditReply": "Edit Reply" + } + }, + "About": { + "textAbout": "About", + "textVersion": "Version", + "textEmail": "Email", + "textAddress": "Address", + "textTel": "Tel", + "textPoweredBy": "Powered By", + "textBack": "Back" + } } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/es.json b/apps/presentationeditor/mobile/locale/es.json index 02091d3cf..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/es.json +++ b/apps/presentationeditor/mobile/locale/es.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Responder", - "Common.Controllers.Collaboration.textCancel": "Cancelar", - "Common.Controllers.Collaboration.textDeleteComment": "Eliminar comentario", - "Common.Controllers.Collaboration.textDeleteReply": "Eliminar respuesta", - "Common.Controllers.Collaboration.textDone": "Listo", - "Common.Controllers.Collaboration.textEdit": "Editar", - "Common.Controllers.Collaboration.textEditUser": "El documento está siendo editado por usuarios:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "¿Realmente quiere eliminar este comentario?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "¿Realmente quiere eliminar esta respuesta?", - "Common.Controllers.Collaboration.textReopen": "Volver a abrir", - "Common.Controllers.Collaboration.textResolve": "Resolver", - "Common.Controllers.Collaboration.textYes": "Sí", - "Common.UI.ThemeColorPalette.textCustomColors": "Colores personalizados", - "Common.UI.ThemeColorPalette.textStandartColors": "Colores estándar", - "Common.UI.ThemeColorPalette.textThemeColors": "Colores de tema", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Añadir respuesta", - "Common.Views.Collaboration.textBack": "Atrás", - "Common.Views.Collaboration.textCancel": "Cancelar", - "Common.Views.Collaboration.textCollaboration": "Colaboración", - "Common.Views.Collaboration.textDone": "Listo", - "Common.Views.Collaboration.textEditReply": "Editar respuesta", - "Common.Views.Collaboration.textEditUsers": "Usuarios", - "Common.Views.Collaboration.textEditСomment": "Editar comentario", - "Common.Views.Collaboration.textNoComments": "Esta presentación no contiene comentarios", - "Common.Views.Collaboration.textСomments": "Comentarios", - "PE.Controllers.AddContainer.textImage": "Imagen", - "PE.Controllers.AddContainer.textLink": "Enlace", - "PE.Controllers.AddContainer.textOther": "Otro", - "PE.Controllers.AddContainer.textShape": "Forma", - "PE.Controllers.AddContainer.textSlide": "Diapositiva", - "PE.Controllers.AddContainer.textTable": "Tabla", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Aviso", - "PE.Controllers.AddImage.textEmptyImgUrl": "Hay que especificar URL de imagen.", - "PE.Controllers.AddImage.txtNotUrl": "Este campo debe ser una dirección URL en el formato 'http://www.example.com'", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Aviso", - "PE.Controllers.AddLink.textDefault": "Texto seleccionado", - "PE.Controllers.AddLink.textExternalLink": "Enlace externo", - "PE.Controllers.AddLink.textFirst": "Primera diapositiva", - "PE.Controllers.AddLink.textInternalLink": "Diapositiva en esta presentación", - "PE.Controllers.AddLink.textLast": "Última diapositiva", - "PE.Controllers.AddLink.textNext": "Diapositiva siguiente", - "PE.Controllers.AddLink.textPrev": "Diapositiva anterior", - "PE.Controllers.AddLink.textSlide": "Diapositiva", - "PE.Controllers.AddLink.txtNotUrl": "Este campo debe ser una dirección URL en el formato 'http://www.example.com'", - "PE.Controllers.AddOther.textCancel": "Cancelar", - "PE.Controllers.AddOther.textContinue": "Continuar", - "PE.Controllers.AddOther.textDelete": "Eliminar", - "PE.Controllers.AddOther.textDeleteDraft": "¿Realmente quiere eliminar el borrador?", - "PE.Controllers.AddTable.textCancel": "Cancelar", - "PE.Controllers.AddTable.textColumns": "Columnas", - "PE.Controllers.AddTable.textRows": "Filas", - "PE.Controllers.AddTable.textTableSize": "Tamaño de tabla", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Las acciones de copiar, cortar y pegar utilizando el menú contextual se realizarán sólo dentro del archivo actual.", - "PE.Controllers.DocumentHolder.menuAddComment": "Agregar comentario", - "PE.Controllers.DocumentHolder.menuAddLink": "Añadir enlace ", - "PE.Controllers.DocumentHolder.menuCopy": "Copiar ", - "PE.Controllers.DocumentHolder.menuCut": "Cortar", - "PE.Controllers.DocumentHolder.menuDelete": "Eliminar", - "PE.Controllers.DocumentHolder.menuEdit": "Editar", - "PE.Controllers.DocumentHolder.menuMore": "Más", - "PE.Controllers.DocumentHolder.menuOpenLink": "Abrir enlace", - "PE.Controllers.DocumentHolder.menuPaste": "Pegar", - "PE.Controllers.DocumentHolder.menuViewComment": "Ver comentario", - "PE.Controllers.DocumentHolder.sheetCancel": "Cancelar", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Acciones de Copiar, Cortar y Pegar", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "No mostrar otra vez", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Fin de vista previa de diapositiva. Pulse para salir.", - "PE.Controllers.EditContainer.textChart": "Gráfico", - "PE.Controllers.EditContainer.textHyperlink": "Hiperenlace", - "PE.Controllers.EditContainer.textImage": "Imagen", - "PE.Controllers.EditContainer.textSettings": "Ajustes", - "PE.Controllers.EditContainer.textShape": "Forma", - "PE.Controllers.EditContainer.textSlide": "Diapositiva", - "PE.Controllers.EditContainer.textTable": "Tabla", - "PE.Controllers.EditContainer.textText": "Texto", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Aviso", - "PE.Controllers.EditImage.textEmptyImgUrl": "Hay que especificar URL de imagen.", - "PE.Controllers.EditImage.txtNotUrl": "Este campo debe ser una dirección URL en el formato 'http://www.example.com'", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Aviso", - "PE.Controllers.EditLink.textDefault": "Texto seleccionado", - "PE.Controllers.EditLink.textExternalLink": "Enlace externo", - "PE.Controllers.EditLink.textFirst": "Primera diapositiva", - "PE.Controllers.EditLink.textInternalLink": "Diapositiva en esta presentación", - "PE.Controllers.EditLink.textLast": "Última diapositiva", - "PE.Controllers.EditLink.textNext": "Diapositiva siguiente", - "PE.Controllers.EditLink.textPrev": "Diapositiva anterior", - "PE.Controllers.EditLink.textSlide": "Diapositiva", - "PE.Controllers.EditLink.txtNotUrl": "Este campo debe ser una dirección URL en el formato 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "seg", - "PE.Controllers.EditText.textAuto": "Auto", - "PE.Controllers.EditText.textFonts": "Fuentes", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Introduzca su contraseña:", - "PE.Controllers.Main.advDRMOptions": "Archivo protegido", - "PE.Controllers.Main.advDRMPassword": "Contraseña", - "PE.Controllers.Main.applyChangesTextText": "Cargando datos...", - "PE.Controllers.Main.applyChangesTitleText": "Cargando datos", - "PE.Controllers.Main.closeButtonText": "Cerrar archivo", - "PE.Controllers.Main.convertationTimeoutText": "Tiempo de conversión está superado.", - "PE.Controllers.Main.criticalErrorExtText": "Pulse 'OK' para volver a la lista de documentos.", - "PE.Controllers.Main.criticalErrorTitle": "Error", - "PE.Controllers.Main.downloadErrorText": "Error en la descarga", - "PE.Controllers.Main.downloadTextText": "Descargando presentación...", - "PE.Controllers.Main.downloadTitleText": "Descargando presentación", - "PE.Controllers.Main.errorAccessDeny": "Usted no tiene permisos para realizar la acción que está intentando hacer.
            Por favor, contacte con su Administrador del Servidor de Documentos.", - "PE.Controllers.Main.errorBadImageUrl": "URL de imagen es incorrecto", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "La conexión al servidor se ha perdido. Usted ya no puede editar.", - "PE.Controllers.Main.errorConnectToServer": "No se consiguió guardar el documento. Por favor, compruebe los ajustes de conexión o póngase en contacto con su administrador.
            Al hacer clic en el botón 'OK' se le solicitará que descargue el documento.", - "PE.Controllers.Main.errorDatabaseConnection": "Error externo.
            Error de conexión a la base de datos. Por favor, contacte con el equipo de soporte técnico.", - "PE.Controllers.Main.errorDataEncrypted": "Se han recibido cambios cifrados, ellos no pueden ser descifrados.", - "PE.Controllers.Main.errorDataRange": "Rango de datos incorrecto.", - "PE.Controllers.Main.errorDefaultMessage": "Código de error: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Se produjo un error durante el trabajo con el documento.
            Use la opción 'Descargar' para guardar la copia de seguridad de archivo en el disco duro de su computadora.", - "PE.Controllers.Main.errorFilePassProtect": "El archivo está protegido por una contraseña y no puede ser abierto.", - "PE.Controllers.Main.errorFileSizeExceed": "El tamaño del archivo excede la limitación establecida para su servidor. Póngase en contacto con el administrador del Servidor de documentos para obtener más información.", - "PE.Controllers.Main.errorKeyEncrypt": "Descriptor de clave desconocido", - "PE.Controllers.Main.errorKeyExpire": "Descriptor de clave ha expirado", - "PE.Controllers.Main.errorOpensource": "Usando la gratuita versión Community, puede abrir los documentos sólo para verlos. Para acceder a los editores web móviles se requiere una licencia comercial.", - "PE.Controllers.Main.errorProcessSaveResult": "Fallo en guardar", - "PE.Controllers.Main.errorServerVersion": "La versión del editor ha sido actualizada. La página será recargada para aplicar los cambios.", - "PE.Controllers.Main.errorSessionAbsolute": "La sesión de editar el documento ha expirado. Por favor, recargue la página.", - "PE.Controllers.Main.errorSessionIdle": "El documento no ha sido editado durante bastante tiempo. Por favor, recargue la página.", - "PE.Controllers.Main.errorSessionToken": "La conexión al servidor ha sido interrumpido. Por favor, recargue la página.", - "PE.Controllers.Main.errorStockChart": "Orden de las filas incorrecto. Para crear un gráfico de cotizaciones introduzca los datos en la hoja de la forma siguiente:
            precio de apertura, precio máximo, precio mínimo, precio de cierre.", - "PE.Controllers.Main.errorUpdateVersion": "Se ha cambiado la versión del archivo. La página será actualizada.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "La conexión a Internet ha sido restaurada, y la versión del archivo ha sido cambiada. Antes de poder seguir trabajando, es necesario descargar el archivo o copiar su contenido para asegurarse de que no se pierda nada, y luego recargar esta página. ", - "PE.Controllers.Main.errorUserDrop": "No se puede acceder al archivo ahora.", - "PE.Controllers.Main.errorUsersExceed": "El número de usuarios fue superado", - "PE.Controllers.Main.errorViewerDisconnect": "Se ha perdido la conexión. Usted todavía puede visualizar el documento,
            pero no podrá descargarlo antes de que conexión sea restaurada y se actualice la página.", - "PE.Controllers.Main.leavePageText": "Hay cambios no guardados en este documento. Haga clic en \"Permanecer en esta página\" para esperar la función de guardar automáticamente del documento. Haga clic en \"Abandonar esta página\" para descartar todos los cambios no guardados.", - "PE.Controllers.Main.loadFontsTextText": "Cargando datos...", - "PE.Controllers.Main.loadFontsTitleText": "Cargando datos", - "PE.Controllers.Main.loadFontTextText": "Cargando datos...", - "PE.Controllers.Main.loadFontTitleText": "Cargando datos", - "PE.Controllers.Main.loadImagesTextText": "Cargando imágenes...", - "PE.Controllers.Main.loadImagesTitleText": "Cargando imágenes", - "PE.Controllers.Main.loadImageTextText": "Cargando imagen...", - "PE.Controllers.Main.loadImageTitleText": "Cargando imagen", - "PE.Controllers.Main.loadingDocumentTextText": "Cargando presentación...", - "PE.Controllers.Main.loadingDocumentTitleText": "Cargando presentación", - "PE.Controllers.Main.loadThemeTextText": "Cargando tema...", - "PE.Controllers.Main.loadThemeTitleText": "Cargando tema", - "PE.Controllers.Main.notcriticalErrorTitle": "Aviso", - "PE.Controllers.Main.openErrorText": "Se ha producido un error al abrir el archivo ", - "PE.Controllers.Main.openTextText": "Abriendo documento...", - "PE.Controllers.Main.openTitleText": "Abriendo documento", - "PE.Controllers.Main.printTextText": "Imprimiendo documento...", - "PE.Controllers.Main.printTitleText": "Imprimiendo documento", - "PE.Controllers.Main.reloadButtonText": "Volver a cargar página", - "PE.Controllers.Main.requestEditFailedMessageText": "Alguien está editando este documento en este momento. Por favor, inténtelo de nuevo más tarde.", - "PE.Controllers.Main.requestEditFailedTitleText": "Acceso denegado", - "PE.Controllers.Main.saveErrorText": "Se ha producido un error al guardar el archivo ", - "PE.Controllers.Main.savePreparingText": "Preparando para guardar", - "PE.Controllers.Main.savePreparingTitle": "Preparando para guardar. Espere, por favor...", - "PE.Controllers.Main.saveTextText": "Guardando documento...", - "PE.Controllers.Main.saveTitleText": "Guardando documento", - "PE.Controllers.Main.scriptLoadError": "La conexión a Internet es demasiado lenta, no se podía cargar algunos componentes. Por favor, recargue la página.", - "PE.Controllers.Main.splitDividerErrorText": "El número de filas debe ser un divisor de %1", - "PE.Controllers.Main.splitMaxColsErrorText": "El número de columnas debe ser menos que %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "El número de filas debe ser menos que %1", - "PE.Controllers.Main.textAnonymous": "Anónimo", - "PE.Controllers.Main.textBack": "Atrás", - "PE.Controllers.Main.textBuyNow": "Visitar sitio web", - "PE.Controllers.Main.textCancel": "Cancelar", - "PE.Controllers.Main.textClose": "Cerrar", - "PE.Controllers.Main.textCloseTip": "Pulse para cerrar este consejo", - "PE.Controllers.Main.textContactUs": "Equipo de ventas", - "PE.Controllers.Main.textCustomLoader": "Note, por favor, que según los términos de la licencia Usted no tiene derecho a cambiar el cargador.
            Por favor, póngase en contacto con nuestro Departamento de Ventas para obtener una cotización.", - "PE.Controllers.Main.textDone": "Listo", - "PE.Controllers.Main.textGuest": "Invitado", - "PE.Controllers.Main.textHasMacros": "El archivo contiene macros automáticas.
            ¿Quiere ejecutar macros?", - "PE.Controllers.Main.textLoadingDocument": "Cargando presentación", - "PE.Controllers.Main.textNo": "No", - "PE.Controllers.Main.textNoLicenseTitle": "Se ha alcanzado el límite de licencias", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Función de pago", - "PE.Controllers.Main.textPassword": "Contraseña", - "PE.Controllers.Main.textPreloader": "Cargando...", - "PE.Controllers.Main.textRemember": "Recordar mi elección para todos los archivos", - "PE.Controllers.Main.textShape": "Forma", - "PE.Controllers.Main.textTryUndoRedo": "Las funciones Deshacer/Rehacer son desactivados en el modo de co-edición Rápido.", - "PE.Controllers.Main.textUsername": "Nombre de usuario", - "PE.Controllers.Main.textYes": "Sí", - "PE.Controllers.Main.titleLicenseExp": "Licencia ha expirado", - "PE.Controllers.Main.titleServerVersion": "Editor ha sido actualizado", - "PE.Controllers.Main.txtAddFirstSlide": "Haga clic para añadir la primera diapositiva", - "PE.Controllers.Main.txtArt": "Introduzca su texto aquí", - "PE.Controllers.Main.txtBasicShapes": "Formas básicas", - "PE.Controllers.Main.txtButtons": "Botones", - "PE.Controllers.Main.txtCallouts": "Llamadas", - "PE.Controllers.Main.txtCharts": "Gráficos", - "PE.Controllers.Main.txtClipArt": "Clip Art", - "PE.Controllers.Main.txtDateTime": "Fecha y hora", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Título de gráfico", - "PE.Controllers.Main.txtEditingMode": "Establecer el modo de edición...", - "PE.Controllers.Main.txtFiguredArrows": "Flechas figuradas", - "PE.Controllers.Main.txtFooter": "Pie de página", - "PE.Controllers.Main.txtHeader": "Encabezado", - "PE.Controllers.Main.txtImage": "Imagen", - "PE.Controllers.Main.txtLines": "Líneas", - "PE.Controllers.Main.txtMath": "Matemáticas", - "PE.Controllers.Main.txtMedia": "Medios", - "PE.Controllers.Main.txtNeedSynchronize": "Usted tiene actualizaciones", - "PE.Controllers.Main.txtPicture": "Imagen", - "PE.Controllers.Main.txtProtected": "Una vez que se ha introducido la contraseña y abierto el archivo, la contraseña actual al archivo se restablecerá", - "PE.Controllers.Main.txtRectangles": "Rectángulos", - "PE.Controllers.Main.txtSeries": "Serie", - "PE.Controllers.Main.txtSldLtTBlank": "En blanco", - "PE.Controllers.Main.txtSldLtTChart": "Gráfico", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Gráfico y texto", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art y texto", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clip Art y texto vertical", - "PE.Controllers.Main.txtSldLtTCust": "Personalizado", - "PE.Controllers.Main.txtSldLtTDgm": "Diagrama", - "PE.Controllers.Main.txtSldLtTFourObj": "Cuatro objetos", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Multimedia y texto", - "PE.Controllers.Main.txtSldLtTObj": "Título y objeto", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Objeto y dos objetos", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objeto y texto", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objeto", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objeto encima de texto", - "PE.Controllers.Main.txtSldLtTObjTx": "Título, objeto y leyenda", - "PE.Controllers.Main.txtSldLtTPicTx": "Imagen y leyenda", - "PE.Controllers.Main.txtSldLtTSecHead": "Encabezado de sección", - "PE.Controllers.Main.txtSldLtTTbl": "Tabla", - "PE.Controllers.Main.txtSldLtTTitle": "Título", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Sólo título", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Texto a dos columnas", - "PE.Controllers.Main.txtSldLtTTwoObj": "Dos objetos", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Dos objetos y objeto", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Dos objetos y texto", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Dos objetos encima de texto", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Dos textos y dos objetos", - "PE.Controllers.Main.txtSldLtTTx": "Texto", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Texto y gráfico", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Texto y Clip Art", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Texto y multimedia", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Texto y objeto", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Texto y dos objetos", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Texto encima de objeto", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Título vertical y texto", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Título vertical y texto encima de gráfico", - "PE.Controllers.Main.txtSldLtTVertTx": "Texto vertical", - "PE.Controllers.Main.txtSlideNumber": "Número de diapositiva", - "PE.Controllers.Main.txtSlideSubtitle": "Subtítulo de diapositiva", - "PE.Controllers.Main.txtSlideText": "Texto de diapositiva", - "PE.Controllers.Main.txtSlideTitle": "Título de diapositiva", - "PE.Controllers.Main.txtStarsRibbons": "Cintas y estrellas", - "PE.Controllers.Main.txtXAxis": "Eje X", - "PE.Controllers.Main.txtYAxis": "Eje Y", - "PE.Controllers.Main.unknownErrorText": "Error desconocido.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Su navegador no está soportado.", - "PE.Controllers.Main.uploadImageExtMessage": "Formato de imagen desconocido.", - "PE.Controllers.Main.uploadImageFileCountMessage": "No hay imágenes subidas.", - "PE.Controllers.Main.uploadImageSizeMessage": "Tamaño de imagen máximo está superado.", - "PE.Controllers.Main.uploadImageTextText": "Subiendo imagen...", - "PE.Controllers.Main.uploadImageTitleText": "Subiendo imagen", - "PE.Controllers.Main.waitText": "Por favor, espere...", - "PE.Controllers.Main.warnLicenseExceeded": "Usted ha alcanzado el límite de conexiones simultáneas con %1 editores. Este documento se abrirá sólo para su visualización.
            Por favor, contacte con su administrador para recibir más información.", - "PE.Controllers.Main.warnLicenseExp": "Su licencia ha expirado.
            Por favor, actualice su licencia y después recargue la página.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "Licencia expirada.
            No tiene acceso a la funcionalidad de edición de documentos.
            Por favor, póngase en contacto con su administrador.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "La licencia requiere ser renovada.
            Tiene un acceso limitado a la funcionalidad de edición de documentos.
            Por favor, póngase en contacto con su administrador para obtener un acceso completo", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Usted ha alcanzado el límite de usuarios para los editores de %1. Por favor, contacte con su administrador para recibir más información.", - "PE.Controllers.Main.warnNoLicense": "Usted ha alcanzado el límite de conexiones simultáneas con %1 editores. Este documento se abrirá sólo para su visualización.
            Contacte con el equipo de ventas de %1 para conocer los términos de actualización personal.", - "PE.Controllers.Main.warnNoLicenseUsers": "Usted ha alcanzado el límite de usuarios para los editores de %1.
            Contacte con el equipo de ventas de %1 para conocer los términos de actualización personal.", - "PE.Controllers.Main.warnProcessRightsChange": "El derecho de edición del archivo es denegado.", - "PE.Controllers.Search.textNoTextFound": "Texto no es encontrado", - "PE.Controllers.Search.textReplaceAll": "Reemplazar todo", - "PE.Controllers.Settings.notcriticalErrorTitle": "Aviso", - "PE.Controllers.Settings.txtLoading": "Cargando...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Hay cambios no guardados en este documento. Haga clic en \"Permanecer en esta página\" para esperar la función de guardar automáticamente del documento. Haga clic en \"Abandonar esta página\" para descartar todos los cambios no guardados.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Usted abandona la aplicación", - "PE.Controllers.Toolbar.leaveButtonText": "Salir de esta página", - "PE.Controllers.Toolbar.stayButtonText": "Quedarse en esta página", - "PE.Views.AddImage.textAddress": "Dirección", - "PE.Views.AddImage.textBack": "Atrás", - "PE.Views.AddImage.textFromLibrary": "Imagen de biblioteca", - "PE.Views.AddImage.textFromURL": "Imagen de URL", - "PE.Views.AddImage.textImageURL": "URL de imagen", - "PE.Views.AddImage.textInsertImage": "Insertar imagen", - "PE.Views.AddImage.textLinkSettings": "Ajustes de enlace", - "PE.Views.AddLink.textBack": "Atrás", - "PE.Views.AddLink.textDisplay": "Mostrar", - "PE.Views.AddLink.textExternalLink": "Enlace externo", - "PE.Views.AddLink.textFirst": "Primera diapositiva", - "PE.Views.AddLink.textInsert": "Insertar", - "PE.Views.AddLink.textInternalLink": "Diapositiva en esta presentación", - "PE.Views.AddLink.textLast": "Última diapositiva", - "PE.Views.AddLink.textLink": "Enlace", - "PE.Views.AddLink.textLinkSlide": "Vincular con", - "PE.Views.AddLink.textLinkType": "Tipo de enlace", - "PE.Views.AddLink.textNext": "Diapositiva siguiente", - "PE.Views.AddLink.textNumber": "Número de diapositiva", - "PE.Views.AddLink.textPrev": "Diapositiva anterior", - "PE.Views.AddLink.textTip": "Consejo de pantalla", - "PE.Views.AddOther.textAddComment": "Añadir comentario", - "PE.Views.AddOther.textBack": "Atrás", - "PE.Views.AddOther.textComment": "Comentario", - "PE.Views.AddOther.textDisplay": "Mostrar", - "PE.Views.AddOther.textDone": "Listo", - "PE.Views.AddOther.textExternalLink": "Enlace externo", - "PE.Views.AddOther.textFirst": "Primera diapositiva", - "PE.Views.AddOther.textInsert": "Insertar", - "PE.Views.AddOther.textInternalLink": "Diapositiva en esta presentación", - "PE.Views.AddOther.textLast": "Última diapositiva", - "PE.Views.AddOther.textLink": "Enlace", - "PE.Views.AddOther.textLinkSlide": "Enlace a", - "PE.Views.AddOther.textLinkType": "Típo de enlace", - "PE.Views.AddOther.textNext": "Diapositiva siguiente", - "PE.Views.AddOther.textNumber": "Número de diapositiva", - "PE.Views.AddOther.textPrev": "Diapositiva anterior", - "PE.Views.AddOther.textTable": "Tabla", - "PE.Views.AddOther.textTip": "Sugerencia de Pantalla", - "PE.Views.EditChart.textAddCustomColor": "Añadir un Color Personalizado", - "PE.Views.EditChart.textAlign": "Alineación", - "PE.Views.EditChart.textAlignBottom": "Alinear en la parte inferior", - "PE.Views.EditChart.textAlignCenter": "Alinear al centro", - "PE.Views.EditChart.textAlignLeft": "Alinear a la izquierda", - "PE.Views.EditChart.textAlignMiddle": "Alinear al medio", - "PE.Views.EditChart.textAlignRight": "Alinear a la derecha", - "PE.Views.EditChart.textAlignTop": "Alinear en la parte superior", - "PE.Views.EditChart.textBack": "Atrás", - "PE.Views.EditChart.textBackward": "Mover atrás", - "PE.Views.EditChart.textBorder": "Borde", - "PE.Views.EditChart.textColor": "Color", - "PE.Views.EditChart.textCustomColor": "Color personalizado", - "PE.Views.EditChart.textFill": "Relleno", - "PE.Views.EditChart.textForward": "Mover adelante", - "PE.Views.EditChart.textRemoveChart": "Eliminar gráfico", - "PE.Views.EditChart.textReorder": "Reorganizar", - "PE.Views.EditChart.textSize": "Tamaño", - "PE.Views.EditChart.textStyle": "Estilo", - "PE.Views.EditChart.textToBackground": "Enviar al fondo", - "PE.Views.EditChart.textToForeground": "Traer al primer plano", - "PE.Views.EditChart.textType": "Tipo", - "PE.Views.EditChart.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditChart.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditImage.textAddress": "Dirección", - "PE.Views.EditImage.textAlign": "Alineación", - "PE.Views.EditImage.textAlignBottom": "Alinear en la parte inferior", - "PE.Views.EditImage.textAlignCenter": "Alinear al centro", - "PE.Views.EditImage.textAlignLeft": "Alinear a la izquierda", - "PE.Views.EditImage.textAlignMiddle": "Alinear al medio", - "PE.Views.EditImage.textAlignRight": "Alinear a la derecha", - "PE.Views.EditImage.textAlignTop": "Alinear en la parte superior", - "PE.Views.EditImage.textBack": "Atrás", - "PE.Views.EditImage.textBackward": "Mover atrás", - "PE.Views.EditImage.textDefault": "Tamaño actual", - "PE.Views.EditImage.textForward": "Mover adelante", - "PE.Views.EditImage.textFromLibrary": "Imagen de biblioteca", - "PE.Views.EditImage.textFromURL": "Imagen de URL", - "PE.Views.EditImage.textImageURL": "URL de imagen", - "PE.Views.EditImage.textLinkSettings": "Ajustes de enlace", - "PE.Views.EditImage.textRemove": "Eliminar imagen", - "PE.Views.EditImage.textReorder": "Reorganizar", - "PE.Views.EditImage.textReplace": "Reemplazar", - "PE.Views.EditImage.textReplaceImg": "Reemplazar imagen", - "PE.Views.EditImage.textToBackground": "Enviar al fondo", - "PE.Views.EditImage.textToForeground": "Traer al primer plano", - "PE.Views.EditImage.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditImage.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditLink.textBack": "Atrás", - "PE.Views.EditLink.textDisplay": "Mostrar", - "PE.Views.EditLink.textEdit": "Editar enlace", - "PE.Views.EditLink.textExternalLink": "Enlace externo", - "PE.Views.EditLink.textFirst": "Primera diapositiva", - "PE.Views.EditLink.textInternalLink": "Diapositiva en esta presentación", - "PE.Views.EditLink.textLast": "Última diapositiva", - "PE.Views.EditLink.textLink": "Enlace", - "PE.Views.EditLink.textLinkSlide": "Vincular con", - "PE.Views.EditLink.textLinkType": "Tipo de enlace", - "PE.Views.EditLink.textNext": "Diapositiva siguiente", - "PE.Views.EditLink.textNumber": "Número de diapositiva", - "PE.Views.EditLink.textPrev": "Diapositiva anterior", - "PE.Views.EditLink.textRemove": "Eliminar enlace", - "PE.Views.EditLink.textTip": "Consejo de pantalla", - "PE.Views.EditShape.textAddCustomColor": "Añadir un Color Personalizado", - "PE.Views.EditShape.textAlign": "Alineación", - "PE.Views.EditShape.textAlignBottom": "Alinear en la parte inferior", - "PE.Views.EditShape.textAlignCenter": "Alinear al centro", - "PE.Views.EditShape.textAlignLeft": "Alinear a la izquierda", - "PE.Views.EditShape.textAlignMiddle": "Alinear al medio", - "PE.Views.EditShape.textAlignRight": "Alinear a la derecha", - "PE.Views.EditShape.textAlignTop": "Alinear en la parte superior", - "PE.Views.EditShape.textBack": "Atrás", - "PE.Views.EditShape.textBackward": "Mover atrás", - "PE.Views.EditShape.textBorder": "Borde", - "PE.Views.EditShape.textColor": "Color", - "PE.Views.EditShape.textCustomColor": "Color personalizado", - "PE.Views.EditShape.textEffects": "Efectos", - "PE.Views.EditShape.textFill": "Relleno", - "PE.Views.EditShape.textForward": "Mover adelante", - "PE.Views.EditShape.textOpacity": "Opacidad ", - "PE.Views.EditShape.textRemoveShape": "Eliminar forma", - "PE.Views.EditShape.textReorder": "Reorganizar", - "PE.Views.EditShape.textReplace": "Reemplazar", - "PE.Views.EditShape.textSize": "Tamaño", - "PE.Views.EditShape.textStyle": "Estilo", - "PE.Views.EditShape.textToBackground": "Enviar al fondo", - "PE.Views.EditShape.textToForeground": "Traer al primer plano", - "PE.Views.EditShape.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditShape.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditSlide.textAddCustomColor": "Añadir un Color Personalizado", - "PE.Views.EditSlide.textApplyAll": "Aplicar a todas las diapositivas", - "PE.Views.EditSlide.textBack": "Atrás", - "PE.Views.EditSlide.textBlack": "A través de negro", - "PE.Views.EditSlide.textBottom": "Abajo ", - "PE.Views.EditSlide.textBottomLeft": "Abajo a la izquierda", - "PE.Views.EditSlide.textBottomRight": "Abajo a la derecha", - "PE.Views.EditSlide.textClock": "Reloj", - "PE.Views.EditSlide.textClockwise": "En el sentido de las agujas del reloj", - "PE.Views.EditSlide.textColor": "Color", - "PE.Views.EditSlide.textCounterclockwise": "En el sentido contrario a las agujas del reloj", - "PE.Views.EditSlide.textCover": "Cubrir", - "PE.Views.EditSlide.textCustomColor": "Color personalizado", - "PE.Views.EditSlide.textDelay": "Retraso", - "PE.Views.EditSlide.textDuplicateSlide": "Duplicar diapositiva", - "PE.Views.EditSlide.textDuration": "Duración ", - "PE.Views.EditSlide.textEffect": "Efecto", - "PE.Views.EditSlide.textFade": "Atenuación", - "PE.Views.EditSlide.textFill": "Relleno", - "PE.Views.EditSlide.textHorizontalIn": "Horizontal dentro", - "PE.Views.EditSlide.textHorizontalOut": "Horizontal por fuera", - "PE.Views.EditSlide.textLayout": "Diseño", - "PE.Views.EditSlide.textLeft": "A la izquierda", - "PE.Views.EditSlide.textNone": "Ninguno", - "PE.Views.EditSlide.textOpacity": "Opacidad ", - "PE.Views.EditSlide.textPush": "Inserción", - "PE.Views.EditSlide.textRemoveSlide": "Eliminar diapositiva", - "PE.Views.EditSlide.textRight": "A la derecha", - "PE.Views.EditSlide.textSmoothly": "Suavemente", - "PE.Views.EditSlide.textSplit": "Dividir", - "PE.Views.EditSlide.textStartOnClick": "Iniciar al hacer clic", - "PE.Views.EditSlide.textStyle": "Estilo", - "PE.Views.EditSlide.textTheme": "Tema", - "PE.Views.EditSlide.textTop": "Superior", - "PE.Views.EditSlide.textTopLeft": "Superior izquierda", - "PE.Views.EditSlide.textTopRight": "Superior derecha", - "PE.Views.EditSlide.textTransition": "Transición", - "PE.Views.EditSlide.textType": "Tipo", - "PE.Views.EditSlide.textUnCover": "Revelar", - "PE.Views.EditSlide.textVerticalIn": "Vertical dentro", - "PE.Views.EditSlide.textVerticalOut": "Vertical por fuera", - "PE.Views.EditSlide.textWedge": "Cuña", - "PE.Views.EditSlide.textWipe": "Limpiar", - "PE.Views.EditSlide.textZoom": "Zoom", - "PE.Views.EditSlide.textZoomIn": "Acercar", - "PE.Views.EditSlide.textZoomOut": "Alejar", - "PE.Views.EditSlide.textZoomRotate": "Zoom y girar", - "PE.Views.EditTable.textAddCustomColor": "Añadir un Color Personalizado", - "PE.Views.EditTable.textAlign": "Alineación", - "PE.Views.EditTable.textAlignBottom": "Alinear en la parte inferior", - "PE.Views.EditTable.textAlignCenter": "Alinear al centro", - "PE.Views.EditTable.textAlignLeft": "Alinear a la izquierda", - "PE.Views.EditTable.textAlignMiddle": "Alinear al medio", - "PE.Views.EditTable.textAlignRight": "Alinear a la derecha", - "PE.Views.EditTable.textAlignTop": "Alinear en la parte superior", - "PE.Views.EditTable.textBack": "Atrás", - "PE.Views.EditTable.textBackward": "Mover atrás", - "PE.Views.EditTable.textBandedColumn": "Columna de bandas", - "PE.Views.EditTable.textBandedRow": "Fila de bandas", - "PE.Views.EditTable.textBorder": "Borde", - "PE.Views.EditTable.textCellMargins": "Márgenes de celda", - "PE.Views.EditTable.textColor": "Color", - "PE.Views.EditTable.textCustomColor": "Color personalizado", - "PE.Views.EditTable.textFill": "Relleno", - "PE.Views.EditTable.textFirstColumn": "Primera columna", - "PE.Views.EditTable.textForward": "Mover adelante", - "PE.Views.EditTable.textHeaderRow": "Fila de encabezado", - "PE.Views.EditTable.textLastColumn": "Columna última", - "PE.Views.EditTable.textOptions": "Opciones", - "PE.Views.EditTable.textRemoveTable": "Eliminar tabla", - "PE.Views.EditTable.textReorder": "Reorganizar", - "PE.Views.EditTable.textSize": "Tamaño", - "PE.Views.EditTable.textStyle": "Estilo", - "PE.Views.EditTable.textStyleOptions": "Opciones de estilo", - "PE.Views.EditTable.textTableOptions": "Opciones de tabla", - "PE.Views.EditTable.textToBackground": "Enviar al fondo", - "PE.Views.EditTable.textToForeground": "Traer al primer plano", - "PE.Views.EditTable.textTotalRow": "Fila de totales", - "PE.Views.EditTable.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditTable.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditText.textAddCustomColor": "Añadir un Color Personalizado", - "PE.Views.EditText.textAdditional": "Adicional", - "PE.Views.EditText.textAdditionalFormat": "Formateo adicional", - "PE.Views.EditText.textAfter": "Después", - "PE.Views.EditText.textAllCaps": "Mayúsculas", - "PE.Views.EditText.textAutomatic": "Automático", - "PE.Views.EditText.textBack": "Atrás", - "PE.Views.EditText.textBefore": "Antes", - "PE.Views.EditText.textBullets": "Viñetas", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Color personalizado", - "PE.Views.EditText.textDblStrikethrough": "Doble tachado", - "PE.Views.EditText.textDblSuperscript": "Sobreíndice", - "PE.Views.EditText.textFontColor": "Color de fuente", - "PE.Views.EditText.textFontColors": "Colores de fuente", - "PE.Views.EditText.textFonts": "Fuentes", - "PE.Views.EditText.textFromText": "Distancia del texto", - "PE.Views.EditText.textLetterSpacing": "Espaciado entre letras", - "PE.Views.EditText.textLineSpacing": "Espaciado de línea", - "PE.Views.EditText.textNone": "Ninguno", - "PE.Views.EditText.textNumbers": "Números", - "PE.Views.EditText.textSize": "Tamaño", - "PE.Views.EditText.textSmallCaps": "Mayúsculas pequeñas", - "PE.Views.EditText.textStrikethrough": "Tachado", - "PE.Views.EditText.textSubscript": "Subíndice", - "PE.Views.Search.textCase": "Sensible a las mayúsculas y minúsculas", - "PE.Views.Search.textDone": "Hecho", - "PE.Views.Search.textFind": "Encontrar", - "PE.Views.Search.textFindAndReplace": "Encontrar y reemplazar", - "PE.Views.Search.textReplace": "Reemplazar", - "PE.Views.Search.textSearch": "Búsqueda", - "PE.Views.Settings. textComment": "Comentario", - "PE.Views.Settings.mniSlideStandard": "Estándar (4:3)", - "PE.Views.Settings.mniSlideWide": "Panorámico (16:9)", - "PE.Views.Settings.textAbout": "Acerca de programa", - "PE.Views.Settings.textAddress": "dirección", - "PE.Views.Settings.textApplication": "Aplicación", - "PE.Views.Settings.textApplicationSettings": "Ajustes de aplicación", - "PE.Views.Settings.textAuthor": "Autor", - "PE.Views.Settings.textBack": "Atrás", - "PE.Views.Settings.textCentimeter": "Centímetro", - "PE.Views.Settings.textCollaboration": "Colaboración", - "PE.Views.Settings.textColorSchemes": "Esquemas de color", - "PE.Views.Settings.textCreated": "Creado", - "PE.Views.Settings.textCreateDate": "Fecha de creación", - "PE.Views.Settings.textDisableAll": "Deshabilitar todo", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Desactivar todas las macros con", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Desactivar Todo", - "PE.Views.Settings.textDone": "Listo", - "PE.Views.Settings.textDownload": "Descargar", - "PE.Views.Settings.textDownloadAs": "Descargar como...", - "PE.Views.Settings.textEditPresent": "Editar presentación", - "PE.Views.Settings.textEmail": "email", - "PE.Views.Settings.textEnableAll": "Habilitar todo", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Habilitar todas las macros sin notificación ", - "PE.Views.Settings.textFind": "Buscar", - "PE.Views.Settings.textFindAndReplace": "Encontrar y reemplazar", - "PE.Views.Settings.textHelp": "Ayuda", - "PE.Views.Settings.textInch": "Pulgada", - "PE.Views.Settings.textLastModified": "Última modificación", - "PE.Views.Settings.textLastModifiedBy": "Última modificación por", - "PE.Views.Settings.textLoading": "Cargando...", - "PE.Views.Settings.textLocation": "Ubicación", - "PE.Views.Settings.textMacrosSettings": "Ajustes de macros", - "PE.Views.Settings.textOwner": "Propietario", - "PE.Views.Settings.textPoint": "Punto", - "PE.Views.Settings.textPoweredBy": "Desarrollado por", - "PE.Views.Settings.textPresentInfo": "Información sobre presentación", - "PE.Views.Settings.textPresentSettings": "Ajustes de presentación", - "PE.Views.Settings.textPresentSetup": "Ajustes de presentación", - "PE.Views.Settings.textPresentTitle": "Título de presentación", - "PE.Views.Settings.textPrint": "Imprimir", - "PE.Views.Settings.textSettings": "Ajustes", - "PE.Views.Settings.textShowNotification": "Mostrar notificación", - "PE.Views.Settings.textSlideSize": "Tamaño de diapositiva", - "PE.Views.Settings.textSpellcheck": "Сorrección ortográfica", - "PE.Views.Settings.textSubject": "Asunto", - "PE.Views.Settings.textTel": "Tel.", - "PE.Views.Settings.textTitle": "Título", - "PE.Views.Settings.textUnitOfMeasurement": "Unidad de medida", - "PE.Views.Settings.textUploaded": "Cargado", - "PE.Views.Settings.textVersion": "Versión ", - "PE.Views.Settings.unknownText": "Desconocido", - "PE.Views.Toolbar.textBack": "Atrás" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/fr.json b/apps/presentationeditor/mobile/locale/fr.json index 1cf9d2d3e..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/fr.json +++ b/apps/presentationeditor/mobile/locale/fr.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Ajouter une réponse", - "Common.Controllers.Collaboration.textCancel": "Annuler", - "Common.Controllers.Collaboration.textDeleteComment": "Supprimer commentaire", - "Common.Controllers.Collaboration.textDeleteReply": "Supprimer réponse", - "Common.Controllers.Collaboration.textDone": "Terminé", - "Common.Controllers.Collaboration.textEdit": "Modifier", - "Common.Controllers.Collaboration.textEditUser": "Utilisateurs en train d'éditer le fichier :", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Voulez-vous vraiment supprimer ce commentaire ?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Voulez-vous vraiment supprimer cette réponse ?", - "Common.Controllers.Collaboration.textReopen": "Rouvrir", - "Common.Controllers.Collaboration.textResolve": "Résoudre", - "Common.Controllers.Collaboration.textYes": "Oui", - "Common.UI.ThemeColorPalette.textCustomColors": "Couleurs personnalisées", - "Common.UI.ThemeColorPalette.textStandartColors": "Couleurs standard", - "Common.UI.ThemeColorPalette.textThemeColors": "Couleurs thème", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Ajouter une réponse", - "Common.Views.Collaboration.textBack": "Retour en arrière", - "Common.Views.Collaboration.textCancel": "Annuler", - "Common.Views.Collaboration.textCollaboration": "Collaboration", - "Common.Views.Collaboration.textDone": "Terminé", - "Common.Views.Collaboration.textEditReply": "Modifier la réponse", - "Common.Views.Collaboration.textEditUsers": "Utilisateurs", - "Common.Views.Collaboration.textEditСomment": "Modifier le commentaire", - "Common.Views.Collaboration.textNoComments": "Cette présentation ne contient aucun commentaire", - "Common.Views.Collaboration.textСomments": "Commentaires", - "PE.Controllers.AddContainer.textImage": "Image", - "PE.Controllers.AddContainer.textLink": "Lien", - "PE.Controllers.AddContainer.textOther": "Autre", - "PE.Controllers.AddContainer.textShape": "Forme", - "PE.Controllers.AddContainer.textSlide": "Diapositive", - "PE.Controllers.AddContainer.textTable": "Tableau", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Avertissement", - "PE.Controllers.AddImage.textEmptyImgUrl": "Spécifiez l'URL de l'image", - "PE.Controllers.AddImage.txtNotUrl": "Ce champ doit être une URL au format 'http://www.exemple.com'", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Avertissement", - "PE.Controllers.AddLink.textDefault": "Texte sélectionné", - "PE.Controllers.AddLink.textExternalLink": "Lien externe", - "PE.Controllers.AddLink.textFirst": "Première diapositive", - "PE.Controllers.AddLink.textInternalLink": "Emplacement dans cette présentation", - "PE.Controllers.AddLink.textLast": "Dernière diapositive", - "PE.Controllers.AddLink.textNext": "Diapositive suivante", - "PE.Controllers.AddLink.textPrev": "Diapositive précédente", - "PE.Controllers.AddLink.textSlide": "Diapositive", - "PE.Controllers.AddLink.txtNotUrl": "Ce champ doit être une URL au format 'http://www.exemple.com'", - "PE.Controllers.AddOther.textCancel": "Annuler", - "PE.Controllers.AddOther.textContinue": "Continuer", - "PE.Controllers.AddOther.textDelete": "Supprimer", - "PE.Controllers.AddOther.textDeleteDraft": "Voulez-vous vraiment supprimer le brouillon ?", - "PE.Controllers.AddTable.textCancel": "Annuler", - "PE.Controllers.AddTable.textColumns": "Colonnes", - "PE.Controllers.AddTable.textRows": "Lignes", - "PE.Controllers.AddTable.textTableSize": "Taille tableau", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Actions de copie, de coupe et de collage du menu contextuel seront appliquées seulement dans le fichier actuel.", - "PE.Controllers.DocumentHolder.menuAddComment": "Ajouter un commentaire", - "PE.Controllers.DocumentHolder.menuAddLink": "Ajouter lien", - "PE.Controllers.DocumentHolder.menuCopy": "Copier", - "PE.Controllers.DocumentHolder.menuCut": "Couper", - "PE.Controllers.DocumentHolder.menuDelete": "Supprimer", - "PE.Controllers.DocumentHolder.menuEdit": "Editer", - "PE.Controllers.DocumentHolder.menuMore": "Davantage", - "PE.Controllers.DocumentHolder.menuOpenLink": "Ouvrir lien", - "PE.Controllers.DocumentHolder.menuPaste": "Coller", - "PE.Controllers.DocumentHolder.menuViewComment": "Voir le commentaire", - "PE.Controllers.DocumentHolder.sheetCancel": "Annuler", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Actions copier, couper et coller", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Ne plus afficher", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Fin de l'aperçu de la diapositive. Cliquez pour quitter.", - "PE.Controllers.EditContainer.textChart": "Diagramme", - "PE.Controllers.EditContainer.textHyperlink": "Lien hypertexte", - "PE.Controllers.EditContainer.textImage": "Image", - "PE.Controllers.EditContainer.textSettings": "Réglages", - "PE.Controllers.EditContainer.textShape": "Forme", - "PE.Controllers.EditContainer.textSlide": "Diapositive", - "PE.Controllers.EditContainer.textTable": "Tableau", - "PE.Controllers.EditContainer.textText": "Texte", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Avertissement", - "PE.Controllers.EditImage.textEmptyImgUrl": "Spécifiez l'URL de l'image", - "PE.Controllers.EditImage.txtNotUrl": "Ce champ doit être une URL au format 'http://www.exemple.com'", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Avertissement", - "PE.Controllers.EditLink.textDefault": "Texte sélectionné", - "PE.Controllers.EditLink.textExternalLink": "Lien externe", - "PE.Controllers.EditLink.textFirst": "Première diapositive", - "PE.Controllers.EditLink.textInternalLink": "Emplacement dans cette présentation", - "PE.Controllers.EditLink.textLast": "Dernière diapositive", - "PE.Controllers.EditLink.textNext": "Diapositive suivante", - "PE.Controllers.EditLink.textPrev": "Diapositive précédente", - "PE.Controllers.EditLink.textSlide": "Diapositive", - "PE.Controllers.EditLink.txtNotUrl": "Ce champ doit être une URL au format 'http://www.exemple.com'", - "PE.Controllers.EditSlide.textSec": "sec", - "PE.Controllers.EditText.textAuto": "Auto", - "PE.Controllers.EditText.textFonts": "Polices", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Entrez votre mot de passe :", - "PE.Controllers.Main.advDRMOptions": "Fichier protégé", - "PE.Controllers.Main.advDRMPassword": "Mot de passe", - "PE.Controllers.Main.applyChangesTextText": "Chargement données en cours...", - "PE.Controllers.Main.applyChangesTitleText": "Chargement des données", - "PE.Controllers.Main.closeButtonText": "Fermer fichier", - "PE.Controllers.Main.convertationTimeoutText": "Délai d'attente de la conversion dépassé ", - "PE.Controllers.Main.criticalErrorExtText": "Appuyez sur OK pour revenir à la liste des documents.", - "PE.Controllers.Main.criticalErrorTitle": "Erreur", - "PE.Controllers.Main.downloadErrorText": "Téléchargement echoué.", - "PE.Controllers.Main.downloadTextText": "Téléchargement présentation...", - "PE.Controllers.Main.downloadTitleText": "Téléchargement présentation", - "PE.Controllers.Main.errorAccessDeny": "Vous tentez d'exéсuter une action pour laquelle vous ne disposez pas de droits.
            Veuillez contacter l'administrateur de Document Server.", - "PE.Controllers.Main.errorBadImageUrl": "URL image incorrecte", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Connexion au serveur perdue. Vous ne pouvez plus éditer le document.", - "PE.Controllers.Main.errorConnectToServer": "Enregistrement document échoué. Veuillez vérifier les paramètres de connexion ou contactez l'administrateur.
            Lorsque vous cliquez sur le bouton « OK », vous serez invité à télécharger le document.", - "PE.Controllers.Main.errorDatabaseConnection": "Erreur externe.
            Erreur connexion base de données. Contactez l'assistance technique.", - "PE.Controllers.Main.errorDataEncrypted": "Modifications encodées reçues, mais ne peuvent pas être déchiffrées.", - "PE.Controllers.Main.errorDataRange": "Plage de données incorrecte.", - "PE.Controllers.Main.errorDefaultMessage": "Code d'erreur : %1", - "PE.Controllers.Main.errorEditingDownloadas": "Une erreure s'est produite lors du travail sur le document.
            Utilisez l'option « Télécharger » pour enregistrer une copie de sauvegarde sur le disque dur de votre système.", - "PE.Controllers.Main.errorFilePassProtect": "Le fichier est protégé par un mot de passe et ne peut pas être ouvert.", - "PE.Controllers.Main.errorFileSizeExceed": "Taille de fichier dépasse la limite pour votre serveur.
            Veuillez contacter votre administrateur de Document Server pour plus de renseignements. ", - "PE.Controllers.Main.errorKeyEncrypt": "Descripteur de clé inconnu", - "PE.Controllers.Main.errorKeyExpire": "Descripteur clé expiré", - "PE.Controllers.Main.errorOpensource": "L'utilisation la version gratuite \"Community version\" permet uniquement la visualisation des documents. Pour avoir accès à l'édition sur mobile, une version commerciale est nécessaire.", - "PE.Controllers.Main.errorProcessSaveResult": "Enregistrement échoué.", - "PE.Controllers.Main.errorServerVersion": "Version éditeur mise à jour. La page sera rafraichie pour appliquer les modifications.", - "PE.Controllers.Main.errorSessionAbsolute": "Votre session a expiré. Veuillez recharger la page.", - "PE.Controllers.Main.errorSessionIdle": "Le document n'a pas été modifié depuis trop longtemps. Veuillez recharger la page.", - "PE.Controllers.Main.errorSessionToken": "La connexion au serveur a été interrompue. Veuillez recharger la page.", - "PE.Controllers.Main.errorStockChart": "Ordre lignes incorrect. Pour créer un diagramme boursier, positionnez les données sur la feuille de calcul dans l'ordre suivant :
            cours à l'ouverture, cours maximal, cours minimal, cours à la clôture.", - "PE.Controllers.Main.errorUpdateVersion": "Version fichier changée. La page sera rafraichie.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Connexion internet rétablie, et la version du fichier modifiée.
            Avant de continuer, téléchargez le fichier ou copiez le contenu pour vous assurer que tous les changements ont été enregistrés, puis rafraichissez la page.", - "PE.Controllers.Main.errorUserDrop": "Impossible d'accéder au fichier.", - "PE.Controllers.Main.errorUsersExceed": "Le nombre d'utilisateurs a été dépassé", - "PE.Controllers.Main.errorViewerDisconnect": "Connexion perdue. Le document peut être affiché tout de même,
            mais ne pourra pas être téléсhargé sans que la connexion soit restaurée et la page rafraichie.", - "PE.Controllers.Main.leavePageText": "Vous avez des modifications non enregistrées dans ce document. Soic cliquez sur « Rester sur cette page » et attendez la sauvegarde automatique du document, soit cliquez sur « Quitter cette page » pour abandonner toutes les modifications non enregistrées.", - "PE.Controllers.Main.loadFontsTextText": "Chargement données en cours...", - "PE.Controllers.Main.loadFontsTitleText": "Chargement des données", - "PE.Controllers.Main.loadFontTextText": "Chargement données en cours...", - "PE.Controllers.Main.loadFontTitleText": "Chargement des données", - "PE.Controllers.Main.loadImagesTextText": "Chargement images en cours...", - "PE.Controllers.Main.loadImagesTitleText": "Chargement images", - "PE.Controllers.Main.loadImageTextText": "Chargement image en cours...", - "PE.Controllers.Main.loadImageTitleText": "Chargement image", - "PE.Controllers.Main.loadingDocumentTextText": "Chargement présentation en cours...", - "PE.Controllers.Main.loadingDocumentTitleText": "Chargement présentation", - "PE.Controllers.Main.loadThemeTextText": "Chargement thème en cours...", - "PE.Controllers.Main.loadThemeTitleText": "Chargement thème", - "PE.Controllers.Main.notcriticalErrorTitle": "Avertissement", - "PE.Controllers.Main.openErrorText": "Une erreur s’est produite lors de l’ouverture du fichier", - "PE.Controllers.Main.openTextText": "Ouverture document...", - "PE.Controllers.Main.openTitleText": "Ouverture document", - "PE.Controllers.Main.printTextText": "Impression du document en cours...", - "PE.Controllers.Main.printTitleText": "Impression document", - "PE.Controllers.Main.reloadButtonText": "Recharger page", - "PE.Controllers.Main.requestEditFailedMessageText": "Quelqu'un d'autre est en train d'éditer ce document. Veuillez réessayer plus tard.", - "PE.Controllers.Main.requestEditFailedTitleText": "Accès refusé", - "PE.Controllers.Main.saveErrorText": "Une erreur s'est produite lors de l'enregistrement du fichier.", - "PE.Controllers.Main.savePreparingText": "Préparation à l'enregistrement ", - "PE.Controllers.Main.savePreparingTitle": "Préparation à l'enregistrement en cours. Veuillez patienter...", - "PE.Controllers.Main.saveTextText": "Enregistrement document en cours...", - "PE.Controllers.Main.saveTitleText": "Enregistrement document", - "PE.Controllers.Main.scriptLoadError": "Connexion trop lente. Certains éléments n'ont pas pu être chargés. Veuillez rafraichir la page.", - "PE.Controllers.Main.splitDividerErrorText": "Le nombre de lignes doit être un diviseur de %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Le nombre de colonnes doit être moins que %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Le nombre de lignes doit être moins que %1", - "PE.Controllers.Main.textAnonymous": "Anonyme", - "PE.Controllers.Main.textBack": "Retour en arrière", - "PE.Controllers.Main.textBuyNow": "Visiter site web", - "PE.Controllers.Main.textCancel": "Annuler", - "PE.Controllers.Main.textClose": "Fermer", - "PE.Controllers.Main.textCloseTip": "Appuyez sur l'info-bulle pour le fermer", - "PE.Controllers.Main.textContactUs": "Contacter l'équipe de ventes", - "PE.Controllers.Main.textCustomLoader": "Veuillez noter que, conformément aux clauses du contrat de licence, vous n'êtes pas autorisé à changer le chargeur.
            Veuillez contacter notre service des ventes pour demander un devis.", - "PE.Controllers.Main.textDone": "Effectué", - "PE.Controllers.Main.textGuest": "Invité", - "PE.Controllers.Main.textHasMacros": "Le fichier contient des macros automatiques.
            Voulez-vous exécuter les macros ?", - "PE.Controllers.Main.textLoadingDocument": "Chargement présentation", - "PE.Controllers.Main.textNo": "Non", - "PE.Controllers.Main.textNoLicenseTitle": "La limite de la licence est atteinte", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Fonctionnalité payable", - "PE.Controllers.Main.textPassword": "Mot de passe", - "PE.Controllers.Main.textPreloader": "Chargement en cours...", - "PE.Controllers.Main.textRemember": "Se souvenir de mon choix", - "PE.Controllers.Main.textShape": "Forme", - "PE.Controllers.Main.textTryUndoRedo": "Les fonctions Annuler/Rétablir sont désactivées pour le mode de co-édition rapide.", - "PE.Controllers.Main.textUsername": "Nom d'utilisateur", - "PE.Controllers.Main.textYes": "Oui", - "PE.Controllers.Main.titleLicenseExp": "Licence expirée", - "PE.Controllers.Main.titleServerVersion": "Editeur mis à jour", - "PE.Controllers.Main.txtAddFirstSlide": "Cliquez pour ajouter la première diapositive", - "PE.Controllers.Main.txtArt": "Votre texte ici", - "PE.Controllers.Main.txtBasicShapes": "Formes de base", - "PE.Controllers.Main.txtButtons": "Boutons", - "PE.Controllers.Main.txtCallouts": "Légendes", - "PE.Controllers.Main.txtCharts": "Diagrammes", - "PE.Controllers.Main.txtClipArt": "Clipart", - "PE.Controllers.Main.txtDateTime": "Date et heure", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Titre du diagramme", - "PE.Controllers.Main.txtEditingMode": "Réglage mode d'édition...", - "PE.Controllers.Main.txtFiguredArrows": "Flèches figurées", - "PE.Controllers.Main.txtFooter": "Pied de page", - "PE.Controllers.Main.txtHeader": "En-tête", - "PE.Controllers.Main.txtImage": "Image", - "PE.Controllers.Main.txtLines": "Lignes", - "PE.Controllers.Main.txtMath": "Maths", - "PE.Controllers.Main.txtMedia": "Média", - "PE.Controllers.Main.txtNeedSynchronize": "Il y a des mises à jour", - "PE.Controllers.Main.txtPicture": "Image", - "PE.Controllers.Main.txtProtected": "Une fois le mot de passe a été saisi et le ficher ouvert, le mot de passe actuel sera réinitialisé", - "PE.Controllers.Main.txtRectangles": "Rectangles", - "PE.Controllers.Main.txtSeries": "Série", - "PE.Controllers.Main.txtSldLtTBlank": "Vide", - "PE.Controllers.Main.txtSldLtTChart": "Diagramme", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Diagramme et texte", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clipart et texte", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clipart et texte vertical", - "PE.Controllers.Main.txtSldLtTCust": "Personnalisé", - "PE.Controllers.Main.txtSldLtTDgm": "Schéma", - "PE.Controllers.Main.txtSldLtTFourObj": "Quatre objets", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Média et texte", - "PE.Controllers.Main.txtSldLtTObj": "Titre et objet", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Objet et deux objets", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objet et texte", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objet", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objet sur texte", - "PE.Controllers.Main.txtSldLtTObjTx": "Titre, objet et légende", - "PE.Controllers.Main.txtSldLtTPicTx": "Image et légende", - "PE.Controllers.Main.txtSldLtTSecHead": "En-tête section", - "PE.Controllers.Main.txtSldLtTTbl": "Tableau", - "PE.Controllers.Main.txtSldLtTTitle": "Titre", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Titre seulement", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Texte de deux colonnes", - "PE.Controllers.Main.txtSldLtTTwoObj": "Deux objets", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Deux objets et objet", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Deux objet et texte", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Deux objets sur texte", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Deux textes et deux objets", - "PE.Controllers.Main.txtSldLtTTx": "Texte", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Texte et diagramme", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Texte et Clipart", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Texte et média", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Texte et objet", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Texte et deux objets", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Texte sur objet", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Titre vertical et texte", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Titre vertical et texte sur diagramme", - "PE.Controllers.Main.txtSldLtTVertTx": "Texte vertical", - "PE.Controllers.Main.txtSlideNumber": "Numéro de diapositive", - "PE.Controllers.Main.txtSlideSubtitle": "Sous-titre diapositive", - "PE.Controllers.Main.txtSlideText": "Texte diapositive", - "PE.Controllers.Main.txtSlideTitle": "Titre diapositive", - "PE.Controllers.Main.txtStarsRibbons": "Étoiles et rubans", - "PE.Controllers.Main.txtXAxis": "Axe X", - "PE.Controllers.Main.txtYAxis": "Axe Y", - "PE.Controllers.Main.unknownErrorText": "Erreur inconnue.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Votre navigateur n'est pas compatible.", - "PE.Controllers.Main.uploadImageExtMessage": "Format d'image inconnu.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Aucune image téléchargée.", - "PE.Controllers.Main.uploadImageSizeMessage": "Taille image a dépassé la limite maximale.", - "PE.Controllers.Main.uploadImageTextText": "Téléchargement image en cours...", - "PE.Controllers.Main.uploadImageTitleText": "Téléchargement image", - "PE.Controllers.Main.waitText": "Veuillez patienter...", - "PE.Controllers.Main.warnLicenseExceeded": "Vous avez dépassé le nombre maximal de connexions simultanées aux éditeurs %1. Ce document sera ouvert en lecture seule.
            Contactez votre administrateur pour en savoir davantage.", - "PE.Controllers.Main.warnLicenseExp": "Votre licence est expirée.
            Veuillez mettre à jour votre licence et rafraichissez la page.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "La licence est expirée.
            Vous n'avez plus d'accès aux outils d'édition.
            Veuillez contacter votre administrateur.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "Il est indispensable de renouveler la licence.
            Vous avez un accès limité aux outils d'édition des documents.
            Veuillez contacter votre administrateur pour obtenir un accès complet", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Vous avez atteint le nombre maximal d’utilisateurs d'éditeurs %1. Contactez votre administrateur pour en savoir davantage.", - "PE.Controllers.Main.warnNoLicense": "Vous avez dépassé le nombre maximal de connexions simultanées aux éditeurs %1. Ce document sera ouvert en lecture seule.
            Veuillez contacter le service des ventes %1 pour une mise à niveau.", - "PE.Controllers.Main.warnNoLicenseUsers": "Vous avez atteint le nombre maximal d’utilisateurs d'éditeurs %1. Contactez le service des ventes %1 pour une mise à niveau.", - "PE.Controllers.Main.warnProcessRightsChange": "Le droit d'édition du fichier vous a été refusé.", - "PE.Controllers.Search.textNoTextFound": "Texte non trouvé", - "PE.Controllers.Search.textReplaceAll": "Remplacer tout", - "PE.Controllers.Settings.notcriticalErrorTitle": "Avertissement", - "PE.Controllers.Settings.txtLoading": "Chargement en cours...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Vous avez des modifications non enregistrées dans ce document. Soic cliquez sur « Rester sur cette page » et attendez la sauvegarde automatique du document, soit cliquez sur « Quitter cette page » pour abandonner toutes les modifications non enregistrées.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Vous quittez l'application", - "PE.Controllers.Toolbar.leaveButtonText": "Quitter cette page", - "PE.Controllers.Toolbar.stayButtonText": "Rester sur cette page", - "PE.Views.AddImage.textAddress": "Adresse", - "PE.Views.AddImage.textBack": "Retour en arrière", - "PE.Views.AddImage.textFromLibrary": "Image depuis bibliothèque", - "PE.Views.AddImage.textFromURL": "Image depuis URL", - "PE.Views.AddImage.textImageURL": "URL image", - "PE.Views.AddImage.textInsertImage": "Insérer image", - "PE.Views.AddImage.textLinkSettings": "Réglages lien", - "PE.Views.AddLink.textBack": "Retour en arrière", - "PE.Views.AddLink.textDisplay": "Affichage", - "PE.Views.AddLink.textExternalLink": "Lien externe", - "PE.Views.AddLink.textFirst": "Première diapositive", - "PE.Views.AddLink.textInsert": "Insérer", - "PE.Views.AddLink.textInternalLink": "Emplacement dans cette présentation", - "PE.Views.AddLink.textLast": "Dernière diapositive", - "PE.Views.AddLink.textLink": "Lien", - "PE.Views.AddLink.textLinkSlide": "Lier à", - "PE.Views.AddLink.textLinkType": "Type lien", - "PE.Views.AddLink.textNext": "Diapositive suivante", - "PE.Views.AddLink.textNumber": "Numéro de diapositive", - "PE.Views.AddLink.textPrev": "Diapositive précédente", - "PE.Views.AddLink.textTip": "Info-bulle", - "PE.Views.AddOther.textAddComment": "Ajouter un commentaire", - "PE.Views.AddOther.textBack": "Retour", - "PE.Views.AddOther.textComment": "Commentaire", - "PE.Views.AddOther.textDisplay": "Afficher", - "PE.Views.AddOther.textDone": "Terminé", - "PE.Views.AddOther.textExternalLink": "Lien externe", - "PE.Views.AddOther.textFirst": "Première diapositive", - "PE.Views.AddOther.textInsert": "Insérer", - "PE.Views.AddOther.textInternalLink": "Diapositive dans cette présentation", - "PE.Views.AddOther.textLast": "Dernière diapositive", - "PE.Views.AddOther.textLink": "Lien", - "PE.Views.AddOther.textLinkSlide": "Lien vers", - "PE.Views.AddOther.textLinkType": "Type de lien", - "PE.Views.AddOther.textNext": "Diapositive suivante", - "PE.Views.AddOther.textNumber": "Numéro de diapositive", - "PE.Views.AddOther.textPrev": "Diapositive précédente", - "PE.Views.AddOther.textTable": "Tableau", - "PE.Views.AddOther.textTip": "Info-bulle", - "PE.Views.EditChart.textAddCustomColor": "Ajouter couleur personnalisée", - "PE.Views.EditChart.textAlign": "Aligner", - "PE.Views.EditChart.textAlignBottom": "Aligner en bas", - "PE.Views.EditChart.textAlignCenter": "Aligner au centre", - "PE.Views.EditChart.textAlignLeft": "Aligner à gauche", - "PE.Views.EditChart.textAlignMiddle": "Aligner au milieu", - "PE.Views.EditChart.textAlignRight": "Aligner à droite", - "PE.Views.EditChart.textAlignTop": "Aligner en haut", - "PE.Views.EditChart.textBack": "Retour en arrière", - "PE.Views.EditChart.textBackward": "Déplacer en arrière", - "PE.Views.EditChart.textBorder": "Bordure", - "PE.Views.EditChart.textColor": "Couleur", - "PE.Views.EditChart.textCustomColor": "Couleur personnalisée", - "PE.Views.EditChart.textFill": "Remplissage", - "PE.Views.EditChart.textForward": "Déplacer vers l'avant", - "PE.Views.EditChart.textRemoveChart": "Supprimer diagramme", - "PE.Views.EditChart.textReorder": "Réorganiser", - "PE.Views.EditChart.textSize": "Taille", - "PE.Views.EditChart.textStyle": "Style", - "PE.Views.EditChart.textToBackground": "Amener en arrière plan", - "PE.Views.EditChart.textToForeground": "Amener au premier plan", - "PE.Views.EditChart.textType": "Type", - "PE.Views.EditChart.txtDistribHor": "Distribuer horizontalement", - "PE.Views.EditChart.txtDistribVert": "Distribuer verticalement", - "PE.Views.EditImage.textAddress": "Adresse", - "PE.Views.EditImage.textAlign": "Aligner", - "PE.Views.EditImage.textAlignBottom": "Aligner en bas", - "PE.Views.EditImage.textAlignCenter": "Aligner au centre", - "PE.Views.EditImage.textAlignLeft": "Aligner à gauche", - "PE.Views.EditImage.textAlignMiddle": "Aligner au milieu", - "PE.Views.EditImage.textAlignRight": "Aligner à droite", - "PE.Views.EditImage.textAlignTop": "Aligner en haut", - "PE.Views.EditImage.textBack": "Retour en arrière", - "PE.Views.EditImage.textBackward": "Déplacer en arrière", - "PE.Views.EditImage.textDefault": "Taille actuelle", - "PE.Views.EditImage.textForward": "Déplacer vers l'avant", - "PE.Views.EditImage.textFromLibrary": "Image depuis bibliothèque", - "PE.Views.EditImage.textFromURL": "Image depuis URL", - "PE.Views.EditImage.textImageURL": "URL image", - "PE.Views.EditImage.textLinkSettings": "Réglages lien", - "PE.Views.EditImage.textRemove": "Supprimer image", - "PE.Views.EditImage.textReorder": "Réorganiser", - "PE.Views.EditImage.textReplace": "Remplacer", - "PE.Views.EditImage.textReplaceImg": "Remplacer image", - "PE.Views.EditImage.textToBackground": "Amener en arrière plan", - "PE.Views.EditImage.textToForeground": "Amener au premier plan", - "PE.Views.EditImage.txtDistribHor": "Distribuer horizontalement", - "PE.Views.EditImage.txtDistribVert": "Distribuer verticalement", - "PE.Views.EditLink.textBack": "Retour en arrière", - "PE.Views.EditLink.textDisplay": "Affichage", - "PE.Views.EditLink.textEdit": "Editer lien", - "PE.Views.EditLink.textExternalLink": "Lien externe", - "PE.Views.EditLink.textFirst": "Première diapositive", - "PE.Views.EditLink.textInternalLink": "Emplacement dans cette présentation", - "PE.Views.EditLink.textLast": "Dernière diapositive", - "PE.Views.EditLink.textLink": "Lien", - "PE.Views.EditLink.textLinkSlide": "Lier à", - "PE.Views.EditLink.textLinkType": "Type lien", - "PE.Views.EditLink.textNext": "Diapositive suivante", - "PE.Views.EditLink.textNumber": "Numéro de diapositive", - "PE.Views.EditLink.textPrev": "Diapositive précédente", - "PE.Views.EditLink.textRemove": "Supprimer lien", - "PE.Views.EditLink.textTip": "Info-bulle", - "PE.Views.EditShape.textAddCustomColor": "Ajouter couleur personnalisée", - "PE.Views.EditShape.textAlign": "Aligner", - "PE.Views.EditShape.textAlignBottom": "Aligner en bas", - "PE.Views.EditShape.textAlignCenter": "Aligner au centre", - "PE.Views.EditShape.textAlignLeft": "Aligner à gauche", - "PE.Views.EditShape.textAlignMiddle": "Aligner au milieu", - "PE.Views.EditShape.textAlignRight": "Aligner à droite", - "PE.Views.EditShape.textAlignTop": "Aligner en haut", - "PE.Views.EditShape.textBack": "Retour en arrière", - "PE.Views.EditShape.textBackward": "Déplacer en arrière", - "PE.Views.EditShape.textBorder": "Bordure", - "PE.Views.EditShape.textColor": "Couleur", - "PE.Views.EditShape.textCustomColor": "Couleur personnalisée", - "PE.Views.EditShape.textEffects": "Effets", - "PE.Views.EditShape.textFill": "Remplissage", - "PE.Views.EditShape.textForward": "Déplacer vers l'avant", - "PE.Views.EditShape.textOpacity": "Opacité", - "PE.Views.EditShape.textRemoveShape": "Supprimer forme", - "PE.Views.EditShape.textReorder": "Réorganiser", - "PE.Views.EditShape.textReplace": "Remplacer", - "PE.Views.EditShape.textSize": "Taille", - "PE.Views.EditShape.textStyle": "Style", - "PE.Views.EditShape.textToBackground": "Amener en arrière plan", - "PE.Views.EditShape.textToForeground": "Amener au premier plan", - "PE.Views.EditShape.txtDistribHor": "Distribuer horizontalement", - "PE.Views.EditShape.txtDistribVert": "Distribuer verticalement", - "PE.Views.EditSlide.textAddCustomColor": "Ajouter couleur personnalisée", - "PE.Views.EditSlide.textApplyAll": "Appliquer à toutes les diapositives", - "PE.Views.EditSlide.textBack": "Retour en arrière", - "PE.Views.EditSlide.textBlack": "À travers le noir", - "PE.Views.EditSlide.textBottom": "En bas", - "PE.Views.EditSlide.textBottomLeft": "Bas à gauche", - "PE.Views.EditSlide.textBottomRight": "Bas à droite", - "PE.Views.EditSlide.textClock": "Horloge", - "PE.Views.EditSlide.textClockwise": "Dans le sens des aiguilles d'une montre", - "PE.Views.EditSlide.textColor": "Couleur", - "PE.Views.EditSlide.textCounterclockwise": "Dans le sens inverse des aiguilles d'une montre", - "PE.Views.EditSlide.textCover": "Couvrir", - "PE.Views.EditSlide.textCustomColor": "Couleur personnalisée", - "PE.Views.EditSlide.textDelay": "Retard", - "PE.Views.EditSlide.textDuplicateSlide": "Dupliquer diapositive", - "PE.Views.EditSlide.textDuration": "Durée", - "PE.Views.EditSlide.textEffect": "Effet", - "PE.Views.EditSlide.textFade": "Fondu", - "PE.Views.EditSlide.textFill": "Remplissage", - "PE.Views.EditSlide.textHorizontalIn": "Horizontal intérieur", - "PE.Views.EditSlide.textHorizontalOut": "Horizontal extérieur", - "PE.Views.EditSlide.textLayout": "Disposition", - "PE.Views.EditSlide.textLeft": "Gauche", - "PE.Views.EditSlide.textNone": "Aucun", - "PE.Views.EditSlide.textOpacity": "Opacité", - "PE.Views.EditSlide.textPush": "Expulsion", - "PE.Views.EditSlide.textRemoveSlide": "Supprimer diapositive", - "PE.Views.EditSlide.textRight": "Droite", - "PE.Views.EditSlide.textSmoothly": "Transition douce", - "PE.Views.EditSlide.textSplit": "Fractionner", - "PE.Views.EditSlide.textStartOnClick": "Démarrer en cliquant", - "PE.Views.EditSlide.textStyle": "Style", - "PE.Views.EditSlide.textTheme": "Thème", - "PE.Views.EditSlide.textTop": "Haut", - "PE.Views.EditSlide.textTopLeft": "Haut à gauche", - "PE.Views.EditSlide.textTopRight": "Haut à droite", - "PE.Views.EditSlide.textTransition": "Transition", - "PE.Views.EditSlide.textType": "Type", - "PE.Views.EditSlide.textUnCover": "Découvrir", - "PE.Views.EditSlide.textVerticalIn": "Vertical intérieur", - "PE.Views.EditSlide.textVerticalOut": "Vertical extérieur ", - "PE.Views.EditSlide.textWedge": "Coin", - "PE.Views.EditSlide.textWipe": "Effacer", - "PE.Views.EditSlide.textZoom": "Grossissement", - "PE.Views.EditSlide.textZoomIn": "Agrandir", - "PE.Views.EditSlide.textZoomOut": "Diminuer", - "PE.Views.EditSlide.textZoomRotate": "Grossissement et rotation", - "PE.Views.EditTable.textAddCustomColor": "Ajouter couleur personnalisée", - "PE.Views.EditTable.textAlign": "Aligner", - "PE.Views.EditTable.textAlignBottom": "Aligner en bas", - "PE.Views.EditTable.textAlignCenter": "Aligner au centre", - "PE.Views.EditTable.textAlignLeft": "Aligner à gauche", - "PE.Views.EditTable.textAlignMiddle": "Aligner au milieu", - "PE.Views.EditTable.textAlignRight": "Aligner à droite", - "PE.Views.EditTable.textAlignTop": "Aligner en haut", - "PE.Views.EditTable.textBack": "Retour en arrière", - "PE.Views.EditTable.textBackward": "Déplacer en arrière", - "PE.Views.EditTable.textBandedColumn": "Colonne à couleur alternée", - "PE.Views.EditTable.textBandedRow": "Ligne à couleur alternée", - "PE.Views.EditTable.textBorder": "Bordure", - "PE.Views.EditTable.textCellMargins": "Marges de cellule", - "PE.Views.EditTable.textColor": "Couleur", - "PE.Views.EditTable.textCustomColor": "Couleur personnalisée", - "PE.Views.EditTable.textFill": "Remplissage", - "PE.Views.EditTable.textFirstColumn": "Première colonne", - "PE.Views.EditTable.textForward": "Déplacer vers l'avant", - "PE.Views.EditTable.textHeaderRow": "Ligne d’en-tête", - "PE.Views.EditTable.textLastColumn": "Dernière colonne", - "PE.Views.EditTable.textOptions": "Options", - "PE.Views.EditTable.textRemoveTable": "Supprimer tableau", - "PE.Views.EditTable.textReorder": "Réorganiser", - "PE.Views.EditTable.textSize": "Taille", - "PE.Views.EditTable.textStyle": "Style", - "PE.Views.EditTable.textStyleOptions": "Options style", - "PE.Views.EditTable.textTableOptions": "Options tableau", - "PE.Views.EditTable.textToBackground": "Amener en arrière plan", - "PE.Views.EditTable.textToForeground": "Amener au premier plan", - "PE.Views.EditTable.textTotalRow": "Ligne de total", - "PE.Views.EditTable.txtDistribHor": "Distribuer horizontalement", - "PE.Views.EditTable.txtDistribVert": "Distribuer verticalement", - "PE.Views.EditText.textAddCustomColor": "Ajouter couleur personnalisée", - "PE.Views.EditText.textAdditional": "Supplémentaire", - "PE.Views.EditText.textAdditionalFormat": "Mise en forme supplémentaire", - "PE.Views.EditText.textAfter": "Après", - "PE.Views.EditText.textAllCaps": "Tout en majuscules", - "PE.Views.EditText.textAutomatic": "Automatique", - "PE.Views.EditText.textBack": "Retour en arrière", - "PE.Views.EditText.textBefore": "Avant", - "PE.Views.EditText.textBullets": "Puces", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Couleur personnalisée", - "PE.Views.EditText.textDblStrikethrough": "Barré double", - "PE.Views.EditText.textDblSuperscript": "Exposant", - "PE.Views.EditText.textFontColor": "Couleur police", - "PE.Views.EditText.textFontColors": "Couleurs police", - "PE.Views.EditText.textFonts": "Polices", - "PE.Views.EditText.textFromText": "Distance du texte", - "PE.Views.EditText.textLetterSpacing": "Espacement lettres", - "PE.Views.EditText.textLineSpacing": "Interligne", - "PE.Views.EditText.textNone": "Aucun", - "PE.Views.EditText.textNumbers": "Numéros", - "PE.Views.EditText.textSize": "Taille", - "PE.Views.EditText.textSmallCaps": "Petites majuscules", - "PE.Views.EditText.textStrikethrough": "Barré", - "PE.Views.EditText.textSubscript": "Indice", - "PE.Views.Search.textCase": "Respecter la casse", - "PE.Views.Search.textDone": "Effectué", - "PE.Views.Search.textFind": "Rechercher", - "PE.Views.Search.textFindAndReplace": "Rechercher et remplacer", - "PE.Views.Search.textReplace": "Remplacer", - "PE.Views.Search.textSearch": "Rechercher", - "PE.Views.Settings. textComment": "Commentaire", - "PE.Views.Settings.mniSlideStandard": "Standard (4:3)", - "PE.Views.Settings.mniSlideWide": "Écran large (16:9)", - "PE.Views.Settings.textAbout": "À propos de", - "PE.Views.Settings.textAddress": "adresse", - "PE.Views.Settings.textApplication": "Application", - "PE.Views.Settings.textApplicationSettings": "Réglages application", - "PE.Views.Settings.textAuthor": "Auteur", - "PE.Views.Settings.textBack": "Retour en arrière", - "PE.Views.Settings.textCentimeter": "Centimètre", - "PE.Views.Settings.textCollaboration": "Collaboration", - "PE.Views.Settings.textColorSchemes": "Jeux de couleurs", - "PE.Views.Settings.textCreated": "Créé", - "PE.Views.Settings.textCreateDate": "Date de création", - "PE.Views.Settings.textDisableAll": "Désactiver tout", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Désactiver tous les macros avec notification", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Désactiver tous les macros sans notification", - "PE.Views.Settings.textDone": "Effectué", - "PE.Views.Settings.textDownload": "Télécharger", - "PE.Views.Settings.textDownloadAs": "Télécharger comme...", - "PE.Views.Settings.textEditPresent": "Editer présentation", - "PE.Views.Settings.textEmail": "e-mail", - "PE.Views.Settings.textEnableAll": "Activer tout", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Activer toutes les macros sans notification", - "PE.Views.Settings.textFind": "Rechercher", - "PE.Views.Settings.textFindAndReplace": "Rechercher et remplacer", - "PE.Views.Settings.textHelp": "Aide", - "PE.Views.Settings.textInch": "Pouce", - "PE.Views.Settings.textLastModified": "Dernière modification", - "PE.Views.Settings.textLastModifiedBy": "Dernière modification par", - "PE.Views.Settings.textLoading": "Chargement en cours...", - "PE.Views.Settings.textLocation": "Emplacement", - "PE.Views.Settings.textMacrosSettings": "Réglages macros", - "PE.Views.Settings.textOwner": "Propriétaire", - "PE.Views.Settings.textPoint": "Point", - "PE.Views.Settings.textPoweredBy": "Fondé sur", - "PE.Views.Settings.textPresentInfo": "Renseignements présentation", - "PE.Views.Settings.textPresentSettings": "Options présentation", - "PE.Views.Settings.textPresentSetup": "Réglages présentation", - "PE.Views.Settings.textPresentTitle": "Titre présentation", - "PE.Views.Settings.textPrint": "Imprimer", - "PE.Views.Settings.textSettings": "Réglages", - "PE.Views.Settings.textShowNotification": "Montrer la notification", - "PE.Views.Settings.textSlideSize": "Taille de la diapositive", - "PE.Views.Settings.textSpellcheck": "Vérification orthographe", - "PE.Views.Settings.textSubject": "Sujet", - "PE.Views.Settings.textTel": "tel", - "PE.Views.Settings.textTitle": "Titre", - "PE.Views.Settings.textUnitOfMeasurement": "Unité de mesure", - "PE.Views.Settings.textUploaded": "Téléchargé", - "PE.Views.Settings.textVersion": "Version", - "PE.Views.Settings.unknownText": "Inconnu", - "PE.Views.Toolbar.textBack": "Retour en arrière" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/hu.json b/apps/presentationeditor/mobile/locale/hu.json index d6972dbc2..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/hu.json +++ b/apps/presentationeditor/mobile/locale/hu.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Válasz hozzáadása", - "Common.Controllers.Collaboration.textCancel": "Mégsem", - "Common.Controllers.Collaboration.textDeleteComment": "Hozzászólás törlése", - "Common.Controllers.Collaboration.textDeleteReply": "Válasz törlése", - "Common.Controllers.Collaboration.textDone": "Kész", - "Common.Controllers.Collaboration.textEdit": "Szerkesztés", - "Common.Controllers.Collaboration.textEditUser": "A fájlt szerkesztő felhasználók:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Biztosan töröljük a hozzászólást?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Biztosan töröljük a választ?", - "Common.Controllers.Collaboration.textReopen": "Újranyitás", - "Common.Controllers.Collaboration.textResolve": "Felold", - "Common.Controllers.Collaboration.textYes": "Igen", - "Common.UI.ThemeColorPalette.textCustomColors": "Egyéni színek", - "Common.UI.ThemeColorPalette.textStandartColors": "Sztenderd színek", - "Common.UI.ThemeColorPalette.textThemeColors": "Téma színek", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Válasz hozzáadása", - "Common.Views.Collaboration.textBack": "Vissza", - "Common.Views.Collaboration.textCancel": "Mégsem", - "Common.Views.Collaboration.textCollaboration": "Együttműködés", - "Common.Views.Collaboration.textDone": "Kész", - "Common.Views.Collaboration.textEditReply": "Válasz szerkesztése", - "Common.Views.Collaboration.textEditUsers": "Felhasználók", - "Common.Views.Collaboration.textEditСomment": "Hozzászólás szerkesztése", - "Common.Views.Collaboration.textNoComments": "Ebben a prezentációban nincsenek hozzászólások", - "Common.Views.Collaboration.textСomments": "Hozzászólások", - "PE.Controllers.AddContainer.textImage": "Kép", - "PE.Controllers.AddContainer.textLink": "Link", - "PE.Controllers.AddContainer.textOther": "Egyéb", - "PE.Controllers.AddContainer.textShape": "Alakzat", - "PE.Controllers.AddContainer.textSlide": "Dia", - "PE.Controllers.AddContainer.textTable": "Táblázat", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Figyelmeztetés", - "PE.Controllers.AddImage.textEmptyImgUrl": "Meg kell adni a kép URL linkjét.", - "PE.Controllers.AddImage.txtNotUrl": "A mező URL-címének a 'http://www.example.com' formátumban kell lennie", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Figyelmeztetés", - "PE.Controllers.AddLink.textDefault": "Kiválasztott szöveg", - "PE.Controllers.AddLink.textExternalLink": "Külső hivatkozás", - "PE.Controllers.AddLink.textFirst": "Első dia", - "PE.Controllers.AddLink.textInternalLink": "Csúsztassa be ezt a prezentációt", - "PE.Controllers.AddLink.textLast": "Utolsó dia", - "PE.Controllers.AddLink.textNext": "Következő dia", - "PE.Controllers.AddLink.textPrev": "Korábbi dia", - "PE.Controllers.AddLink.textSlide": "Dia", - "PE.Controllers.AddLink.txtNotUrl": "A mező URL-címének a 'http://www.example.com' formátumban kell lennie", - "PE.Controllers.AddOther.textCancel": "Mégsem", - "PE.Controllers.AddOther.textContinue": "Folytatás", - "PE.Controllers.AddOther.textDelete": "Törlés", - "PE.Controllers.AddOther.textDeleteDraft": "Biztosan töröljük a vázlatot?", - "PE.Controllers.AddTable.textCancel": "Mégse", - "PE.Controllers.AddTable.textColumns": "Oszlopok", - "PE.Controllers.AddTable.textRows": "Sorok", - "PE.Controllers.AddTable.textTableSize": "Táblázat méret", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "A másolás, kivágás és beillesztés a helyi menü segítségével csak az aktuális fájlon belül történik.", - "PE.Controllers.DocumentHolder.menuAddComment": "Hozzászólás hozzáadása", - "PE.Controllers.DocumentHolder.menuAddLink": "Link hozzáadása", - "PE.Controllers.DocumentHolder.menuCopy": "Másol", - "PE.Controllers.DocumentHolder.menuCut": "Kivág", - "PE.Controllers.DocumentHolder.menuDelete": "Töröl", - "PE.Controllers.DocumentHolder.menuEdit": "Szerkeszt", - "PE.Controllers.DocumentHolder.menuMore": "Még", - "PE.Controllers.DocumentHolder.menuOpenLink": "Link megnyitása", - "PE.Controllers.DocumentHolder.menuPaste": "Beilleszt", - "PE.Controllers.DocumentHolder.menuViewComment": "Hozzászólás megtekintése", - "PE.Controllers.DocumentHolder.sheetCancel": "Mégse", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Másolás, kivágás és beillesztés", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Ne mutassa újra", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Vége a diavetítésnek. Kattintson a kilépéshez.", - "PE.Controllers.EditContainer.textChart": "Diagram", - "PE.Controllers.EditContainer.textHyperlink": "Hivatkozás", - "PE.Controllers.EditContainer.textImage": "Kép", - "PE.Controllers.EditContainer.textSettings": "Beállítások", - "PE.Controllers.EditContainer.textShape": "Alakzat", - "PE.Controllers.EditContainer.textSlide": "Dia", - "PE.Controllers.EditContainer.textTable": "Táblázat", - "PE.Controllers.EditContainer.textText": "Szöveg", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Figyelmeztetés", - "PE.Controllers.EditImage.textEmptyImgUrl": "Meg kell adni a kép URL linkjét.", - "PE.Controllers.EditImage.txtNotUrl": "A mező URL-címének a 'http://www.example.com' formátumban kell lennie", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Figyelmeztetés", - "PE.Controllers.EditLink.textDefault": "Kiválasztott szöveg", - "PE.Controllers.EditLink.textExternalLink": "Külső hivatkozás", - "PE.Controllers.EditLink.textFirst": "Első dia", - "PE.Controllers.EditLink.textInternalLink": "Csúsztassa be ezt a prezentációt", - "PE.Controllers.EditLink.textLast": "Utolsó dia", - "PE.Controllers.EditLink.textNext": "Következő dia", - "PE.Controllers.EditLink.textPrev": "Korábbi dia", - "PE.Controllers.EditLink.textSlide": "Dia", - "PE.Controllers.EditLink.txtNotUrl": "A mező URL-címének a 'http://www.example.com' formátumban kell lennie", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Auto", - "PE.Controllers.EditText.textFonts": "Betűtípusok", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Adja meg a jelszavát:", - "PE.Controllers.Main.advDRMOptions": "Védett fájl", - "PE.Controllers.Main.advDRMPassword": "Jelszó", - "PE.Controllers.Main.applyChangesTextText": "Adatok betöltése...", - "PE.Controllers.Main.applyChangesTitleText": "Adatok betöltése", - "PE.Controllers.Main.closeButtonText": "Fájl bezárása", - "PE.Controllers.Main.convertationTimeoutText": "Időtúllépés az átalakítás során.", - "PE.Controllers.Main.criticalErrorExtText": "Nyomja meg az \"OK\"-t a dokumentumok listájához.", - "PE.Controllers.Main.criticalErrorTitle": "Hiba", - "PE.Controllers.Main.downloadErrorText": "Sikertelen letöltés.", - "PE.Controllers.Main.downloadTextText": "Prezentáció letöltése...", - "PE.Controllers.Main.downloadTitleText": "Prezentáció letöltése", - "PE.Controllers.Main.errorAccessDeny": "Olyan műveletet próbál végrehajtani, melyre nincs jogosultsága.
            Vegye fel a kapcsolatot a Document Server adminisztrátorával.", - "PE.Controllers.Main.errorBadImageUrl": "Hibás kép URL", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "A szerver elveszítette a kapcsolatot. A további szerkesztés nem lehetséges.", - "PE.Controllers.Main.errorConnectToServer": "A dokumentum mentése nem lehetséges. Kérjük ellenőrizze a kapcsolódási beállításokat vagy lépjen kapcsolatba a rendszer adminisztrátorral.
            Ha az 'OK'-ra kattint letöltheti a dokumentumot.", - "PE.Controllers.Main.errorDatabaseConnection": "Külső hiba.
            Adatbázis kapcsolati hiba. Kérem vegye igénybe támogatásunkat.", - "PE.Controllers.Main.errorDataEncrypted": "Titkosított változások érkeztek, melyek feloldása sikertelen.", - "PE.Controllers.Main.errorDataRange": "Hibás adattartomány.", - "PE.Controllers.Main.errorDefaultMessage": "Hibakód: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Hiba történt a dokumentummal végzett munka során.
            Használja a 'Letölt' opciót, hogy elmentse a fájl biztonsági másolatát a számítógép merevlemezére.", - "PE.Controllers.Main.errorFilePassProtect": "A dokumentum jelszóval védett, és nem nyitható meg.", - "PE.Controllers.Main.errorFileSizeExceed": "A fájlméret meghaladja a szerverre beállított korlátozást.
            Kérjük, forduljon a Document Server rendszergazdájához a részletekért.", - "PE.Controllers.Main.errorKeyEncrypt": "Ismeretlen kulcsleíró", - "PE.Controllers.Main.errorKeyExpire": "Lejárt kulcsleíró", - "PE.Controllers.Main.errorOpensource": "Az ingyenes közösségi verzió használatával dokumentumokat csak megtekintésre nyithat meg. A mobil webszerkesztőkhöz való hozzáféréshez kereskedelmi licensz szükséges.", - "PE.Controllers.Main.errorProcessSaveResult": "Sikertelen mentés.", - "PE.Controllers.Main.errorServerVersion": "A szerkesztő verziója frissült. Az oldal újratöltésre kerül a módosítások alkalmazásához.", - "PE.Controllers.Main.errorSessionAbsolute": "A dokumentumszerkesztési munkamenet lejárt. Kérjük, töltse újra az oldalt.", - "PE.Controllers.Main.errorSessionIdle": "A dokumentumot sokáig nem szerkesztették. Kérjük, töltse újra az oldalt.", - "PE.Controllers.Main.errorSessionToken": "A szerverrel való kapcsolat megszakadt. Töltse újra az oldalt.", - "PE.Controllers.Main.errorStockChart": "Helytelen sor sorrend. Tőzsdei diagram létrehozásához az adatokat az alábbi sorrendben vigye fel:
            nyitó ár, maximum ár, minimum ár, záró ár.", - "PE.Controllers.Main.errorUpdateVersion": "A dokumentum verziója megváltozott. Az oldal újratöltődik.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Az internet kapcsolat helyreállt, és a fájl verziója megváltozott.
            Mielőtt folytatná a munkát, töltse le a fájlt, vagy másolja vágólapra annak tartalmát, hogy megbizonyosodjon arról, hogy semmi nem veszik el, majd töltse újra az oldalt.", - "PE.Controllers.Main.errorUserDrop": "A dokumentum jelenleg nem elérhető", - "PE.Controllers.Main.errorUsersExceed": "A felhasználók száma túllépve", - "PE.Controllers.Main.errorViewerDisconnect": "A kapcsolat megszakadt. Továbbra is megtekinthető a dokumentum,
            de a kapcsolat helyreálltáig és az oldal újratöltéséig nem lehet letölteni.", - "PE.Controllers.Main.leavePageText": "El nem mentett változások vannak a dokumentumban. Kattintson a 'Maradás az oldalon'-ra hogy megvárja a dokumentum automatikus mentését. Kattintson a 'Az oldal elhagyása'-ra, a nem mentett változások elvetéséhez. ", - "PE.Controllers.Main.loadFontsTextText": "Adatok betöltése...", - "PE.Controllers.Main.loadFontsTitleText": "Adatok betöltése", - "PE.Controllers.Main.loadFontTextText": "Adatok betöltése...", - "PE.Controllers.Main.loadFontTitleText": "Adatok betöltése", - "PE.Controllers.Main.loadImagesTextText": "Képek betöltése...", - "PE.Controllers.Main.loadImagesTitleText": "Képek betöltése", - "PE.Controllers.Main.loadImageTextText": "Kép betöltése...", - "PE.Controllers.Main.loadImageTitleText": "Kép betöltése", - "PE.Controllers.Main.loadingDocumentTextText": "Prezentáció betöltése...", - "PE.Controllers.Main.loadingDocumentTitleText": "Prezentáció betöltése", - "PE.Controllers.Main.loadThemeTextText": "Téma betöltése...", - "PE.Controllers.Main.loadThemeTitleText": "Téma betöltése", - "PE.Controllers.Main.notcriticalErrorTitle": "Figyelmeztetés", - "PE.Controllers.Main.openErrorText": "Hiba történt a fájl megnyitásakor", - "PE.Controllers.Main.openTextText": "Dokumentum megnyitása...", - "PE.Controllers.Main.openTitleText": "Dokumentum megnyitása", - "PE.Controllers.Main.printTextText": "Dokumentum nyomtatása...", - "PE.Controllers.Main.printTitleText": "Dokumentum nyomtatása", - "PE.Controllers.Main.reloadButtonText": "Oldal újratöltése", - "PE.Controllers.Main.requestEditFailedMessageText": "Jelenleg valaki más szerkeszti ezt a dokumentumot. Próbálja újra később.", - "PE.Controllers.Main.requestEditFailedTitleText": "Hozzáférés megtagadva", - "PE.Controllers.Main.saveErrorText": "Hiba történt a fájl mentése során.", - "PE.Controllers.Main.savePreparingText": "Felkészülés mentésre", - "PE.Controllers.Main.savePreparingTitle": "Felkészülés a mentésre. Kérem várjon...", - "PE.Controllers.Main.saveTextText": "Dokumentum mentése...", - "PE.Controllers.Main.saveTitleText": "Dokumentum mentése", - "PE.Controllers.Main.scriptLoadError": "A kapcsolat túl lassú, néhány komponens nem töltődött be. Frissítse az oldalt.", - "PE.Controllers.Main.splitDividerErrorText": "A soroknak számának a(z) %1 osztójának kell lennie", - "PE.Controllers.Main.splitMaxColsErrorText": "Az oszlopok számának kevesebbnek kell lennie mint %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "A soroknak számának kevesebbnek kell lennie, mint %1", - "PE.Controllers.Main.textAnonymous": "Névtelen", - "PE.Controllers.Main.textBack": "Vissza", - "PE.Controllers.Main.textBuyNow": "Weboldalt meglátogat", - "PE.Controllers.Main.textCancel": "Mégse", - "PE.Controllers.Main.textClose": "Bezár", - "PE.Controllers.Main.textCloseTip": "Koppintson a tippek bezárásához.", - "PE.Controllers.Main.textContactUs": "Értékesítési osztály", - "PE.Controllers.Main.textCustomLoader": "Kérjük, vegye figyelembe, hogy az engedély feltételei szerint nem jogosult a betöltő cseréjére.
            Kérjük, forduljon értékesítési osztályunkhoz, hogy árajánlatot kapjon.", - "PE.Controllers.Main.textDone": "Kész", - "PE.Controllers.Main.textGuest": "Vendég", - "PE.Controllers.Main.textHasMacros": "A fájl automatikus makrókat tartalmaz.
            Szeretne makrókat futtatni?", - "PE.Controllers.Main.textLoadingDocument": "Prezentáció betöltése", - "PE.Controllers.Main.textNo": "Nem", - "PE.Controllers.Main.textNoLicenseTitle": "Elérte a licenckorlátot", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Fizetett funkció", - "PE.Controllers.Main.textPassword": "Jelszó", - "PE.Controllers.Main.textPreloader": "Betöltés...", - "PE.Controllers.Main.textRemember": "Emlékezzen a választásomra minden fájlhoz", - "PE.Controllers.Main.textShape": "Alakzat", - "PE.Controllers.Main.textTryUndoRedo": "A Visszavonás/Újra funkciók nem elérhetőek Gyors közös szerkesztés módban.", - "PE.Controllers.Main.textUsername": "Felhasználói név", - "PE.Controllers.Main.textYes": "Igen", - "PE.Controllers.Main.titleLicenseExp": "Lejárt licenc", - "PE.Controllers.Main.titleServerVersion": "Szerkesztő frissítve", - "PE.Controllers.Main.txtAddFirstSlide": "Kattintson az első dia hozzáadásához", - "PE.Controllers.Main.txtArt": "Írja a szöveget ide", - "PE.Controllers.Main.txtBasicShapes": "Egyszerű alakzatok", - "PE.Controllers.Main.txtButtons": "Gombok", - "PE.Controllers.Main.txtCallouts": "Feliratok", - "PE.Controllers.Main.txtCharts": "Diagramok", - "PE.Controllers.Main.txtClipArt": "Galéria", - "PE.Controllers.Main.txtDateTime": "Dátum és idő", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Diagram címe", - "PE.Controllers.Main.txtEditingMode": "Szerkesztési mód beállítása...", - "PE.Controllers.Main.txtFiguredArrows": "Nyíl formák", - "PE.Controllers.Main.txtFooter": "Lábléc", - "PE.Controllers.Main.txtHeader": "Fejléc", - "PE.Controllers.Main.txtImage": "Kép", - "PE.Controllers.Main.txtLines": "Vonalak", - "PE.Controllers.Main.txtMath": "Matematika", - "PE.Controllers.Main.txtMedia": "Média", - "PE.Controllers.Main.txtNeedSynchronize": "Frissítés elérhető", - "PE.Controllers.Main.txtPicture": "Kép", - "PE.Controllers.Main.txtProtected": "Amint beírásra került a kód és megnyílt a fájl, a fájl jelenlegi kódja visszaállítódik.", - "PE.Controllers.Main.txtRectangles": "Négyszögek", - "PE.Controllers.Main.txtSeries": "Sorozatok", - "PE.Controllers.Main.txtSldLtTBlank": "Üres", - "PE.Controllers.Main.txtSldLtTChart": "Diagram", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Diagram és szöveg", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Galéria és szöveg", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Galéria és függőleges szöveg", - "PE.Controllers.Main.txtSldLtTCust": "Egyéni", - "PE.Controllers.Main.txtSldLtTDgm": "Diagram", - "PE.Controllers.Main.txtSldLtTFourObj": "Négy objektum", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Média és szöveg", - "PE.Controllers.Main.txtSldLtTObj": "Cím és objektum", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Objektum és két objektum", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objektum és szöveg", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objektum", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objektum a szöveg fölött", - "PE.Controllers.Main.txtSldLtTObjTx": "Cím, objektum és felirat", - "PE.Controllers.Main.txtSldLtTPicTx": "Kép és felirat", - "PE.Controllers.Main.txtSldLtTSecHead": "Szakasz fejléce", - "PE.Controllers.Main.txtSldLtTTbl": "Táblázat", - "PE.Controllers.Main.txtSldLtTTitle": "Cím", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Csak cím", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Két szövegoszlop", - "PE.Controllers.Main.txtSldLtTTwoObj": "Két objektum", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Objektumok", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Két objektum és szöveg", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Két objektum a szöveg felett", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Két szöveg és két objektum", - "PE.Controllers.Main.txtSldLtTTx": "Szöveg", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Szöveg és diagram", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Szöveg és ClipArt", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Szöveg és média", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Szöveg és objektum", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Szöveg és két objektum", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Szöveg az objektum fölött", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Függőleges cím és szöveg", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Függőleges cím és szöveg a diagram felett", - "PE.Controllers.Main.txtSldLtTVertTx": "Függőleges szöveg", - "PE.Controllers.Main.txtSlideNumber": "Dia száma", - "PE.Controllers.Main.txtSlideSubtitle": "Dia alcíme", - "PE.Controllers.Main.txtSlideText": "Dia szövege", - "PE.Controllers.Main.txtSlideTitle": "Dia címe", - "PE.Controllers.Main.txtStarsRibbons": "Csillagok és szalagok", - "PE.Controllers.Main.txtXAxis": "X tengely", - "PE.Controllers.Main.txtYAxis": "Y tengely", - "PE.Controllers.Main.unknownErrorText": "Ismeretlen hiba.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "A böngészője nem támogatott.", - "PE.Controllers.Main.uploadImageExtMessage": "Ismeretlen képformátum.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Nincs kép feltöltve.", - "PE.Controllers.Main.uploadImageSizeMessage": "Elérte a maximum kép méret limitet.", - "PE.Controllers.Main.uploadImageTextText": "Kép feltöltése...", - "PE.Controllers.Main.uploadImageTitleText": "Kép feltöltése", - "PE.Controllers.Main.waitText": "Kérjük várjon...", - "PE.Controllers.Main.warnLicenseExceeded": "Elérte a(z) %1 szerkesztőhöz tartozó egyidejű csatlakozás korlátját. Ez a dokumentum csak megtekintésre nyílik meg.
            További információért forduljon rendszergazdájához.", - "PE.Controllers.Main.warnLicenseExp": "A licence lejárt.
            Kérem frissítse a licencét, majd az oldalt.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "A licenc lejárt.
            Nincs hozzáférése a dokumentumszerkesztő funkciókhoz.
            Kérjük, lépjen kapcsolatba a rendszergazdával.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "A licencet meg kell újítani.
            Korlátozott hozzáférése van a dokumentumszerkesztési funkciókhoz.
            A teljes hozzáférésért forduljon rendszergazdájához", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Elérte a(z) %1 szerkesztőhöz tartozó felhasználói korlátját. További információért forduljon rendszergazdájához.", - "PE.Controllers.Main.warnNoLicense": "Elérte a(z) %1 szerkesztőhöz tartozó egyidejű csatlakozás korlátját. Ez a dokumentum csak megtekintésre nyílik meg.
            Vegye fel a kapcsolatot a(z) %1 értékesítési csapattal a személyes frissítési feltételekért.", - "PE.Controllers.Main.warnNoLicenseUsers": "Elérte a(z) %1 szerkesztőhöz tartozó felhasználói korlátját. Vegye fel a kapcsolatot a(z) %1 értékesítési csapattal a személyes frissítési feltételekért.", - "PE.Controllers.Main.warnProcessRightsChange": "Nincs joga szerkeszteni a fájl-t.", - "PE.Controllers.Search.textNoTextFound": "A szöveg nem található", - "PE.Controllers.Search.textReplaceAll": "Mindent cserél", - "PE.Controllers.Settings.notcriticalErrorTitle": "Figyelmeztetés", - "PE.Controllers.Settings.txtLoading": "Betöltés...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "El nem mentett változások vannak a dokumentumban. Kattintson a 'Maradás az oldalon'-ra hogy megvárja a dokumentum automatikus mentését. Kattintson a 'Az oldal elhagyása'-ra, a nem mentett változások elvetéséhez. ", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Bezárja az alkalmazást", - "PE.Controllers.Toolbar.leaveButtonText": "Oldal elhagyása", - "PE.Controllers.Toolbar.stayButtonText": "Maradni az oldalon", - "PE.Views.AddImage.textAddress": "Cím", - "PE.Views.AddImage.textBack": "Vissza", - "PE.Views.AddImage.textFromLibrary": "Kép a galériából", - "PE.Views.AddImage.textFromURL": "Kép URL-en keresztül", - "PE.Views.AddImage.textImageURL": "Kép URL", - "PE.Views.AddImage.textInsertImage": "Kép beszúrása", - "PE.Views.AddImage.textLinkSettings": "Link beállítások", - "PE.Views.AddLink.textBack": "Vissza", - "PE.Views.AddLink.textDisplay": "Megjelenít", - "PE.Views.AddLink.textExternalLink": "Külső hivatkozás", - "PE.Views.AddLink.textFirst": "Első dia", - "PE.Views.AddLink.textInsert": "Beszúr", - "PE.Views.AddLink.textInternalLink": "Csúsztassa be ezt a prezentációt", - "PE.Views.AddLink.textLast": "Utolsó dia", - "PE.Views.AddLink.textLink": "Link", - "PE.Views.AddLink.textLinkSlide": "Hivatkozás", - "PE.Views.AddLink.textLinkType": "Link típusa", - "PE.Views.AddLink.textNext": "Következő dia", - "PE.Views.AddLink.textNumber": "Dia száma", - "PE.Views.AddLink.textPrev": "Korábbi dia", - "PE.Views.AddLink.textTip": "Gyorstipp", - "PE.Views.AddOther.textAddComment": "Hozzászólás hozzáadása", - "PE.Views.AddOther.textBack": "Vissza", - "PE.Views.AddOther.textComment": "Hozzászólás", - "PE.Views.AddOther.textDisplay": "Megjelenít", - "PE.Views.AddOther.textDone": "Kész", - "PE.Views.AddOther.textExternalLink": "Külső hivatkozás", - "PE.Views.AddOther.textFirst": "Első dia", - "PE.Views.AddOther.textInsert": "Beszúrás", - "PE.Views.AddOther.textInternalLink": "Dia ebben a bemutatóban", - "PE.Views.AddOther.textLast": "Utolsó dia", - "PE.Views.AddOther.textLink": "Hivatkozás", - "PE.Views.AddOther.textLinkSlide": "Hivatkozás", - "PE.Views.AddOther.textLinkType": "Hivatkozás típusa", - "PE.Views.AddOther.textNext": "Következő dia", - "PE.Views.AddOther.textNumber": "Dia száma", - "PE.Views.AddOther.textPrev": "Előző dia", - "PE.Views.AddOther.textTable": "Táblázat", - "PE.Views.AddOther.textTip": "Képernyőtipp", - "PE.Views.EditChart.textAddCustomColor": "Egyéni szín hozzáadása", - "PE.Views.EditChart.textAlign": "Rendez", - "PE.Views.EditChart.textAlignBottom": "Alulra rendez", - "PE.Views.EditChart.textAlignCenter": "Középre rendez", - "PE.Views.EditChart.textAlignLeft": "Balra rendez", - "PE.Views.EditChart.textAlignMiddle": "Középre rendez", - "PE.Views.EditChart.textAlignRight": "Jobbra rendez", - "PE.Views.EditChart.textAlignTop": "Felfelé rendez", - "PE.Views.EditChart.textBack": "Vissza", - "PE.Views.EditChart.textBackward": "Hátra mozgat", - "PE.Views.EditChart.textBorder": "Szegély", - "PE.Views.EditChart.textColor": "Szín", - "PE.Views.EditChart.textCustomColor": "Egyéni szín", - "PE.Views.EditChart.textFill": "Kitölt", - "PE.Views.EditChart.textForward": "Előre mozgat", - "PE.Views.EditChart.textRemoveChart": "Diagram eltávolítása", - "PE.Views.EditChart.textReorder": "Újrarendez", - "PE.Views.EditChart.textSize": "Méret", - "PE.Views.EditChart.textStyle": "Stílus", - "PE.Views.EditChart.textToBackground": "Háttérbe küld", - "PE.Views.EditChart.textToForeground": "Elölre hoz", - "PE.Views.EditChart.textType": "Típus", - "PE.Views.EditChart.txtDistribHor": "Vízszintes igazítás", - "PE.Views.EditChart.txtDistribVert": "Függőleges igazítás", - "PE.Views.EditImage.textAddress": "Cím", - "PE.Views.EditImage.textAlign": "Rendez", - "PE.Views.EditImage.textAlignBottom": "Alulra rendez", - "PE.Views.EditImage.textAlignCenter": "Középre rendez", - "PE.Views.EditImage.textAlignLeft": "Balra rendez", - "PE.Views.EditImage.textAlignMiddle": "Középre rendez", - "PE.Views.EditImage.textAlignRight": "Jobbra rendez", - "PE.Views.EditImage.textAlignTop": "Felfelé rendez", - "PE.Views.EditImage.textBack": "Vissza", - "PE.Views.EditImage.textBackward": "Hátra mozgat", - "PE.Views.EditImage.textDefault": "Valódi méret", - "PE.Views.EditImage.textForward": "Előre mozgat", - "PE.Views.EditImage.textFromLibrary": "Kép a galériából", - "PE.Views.EditImage.textFromURL": "Kép URL-en keresztül", - "PE.Views.EditImage.textImageURL": "Kép URL", - "PE.Views.EditImage.textLinkSettings": "Link beállítások", - "PE.Views.EditImage.textRemove": "Kép eltávolítása", - "PE.Views.EditImage.textReorder": "Újrarendez", - "PE.Views.EditImage.textReplace": "Cserél", - "PE.Views.EditImage.textReplaceImg": "Képet cserél", - "PE.Views.EditImage.textToBackground": "Háttérbe küld", - "PE.Views.EditImage.textToForeground": "Elölre hoz", - "PE.Views.EditImage.txtDistribHor": "Vízszintes igazítás", - "PE.Views.EditImage.txtDistribVert": "Függőleges igazítás", - "PE.Views.EditLink.textBack": "Vissza", - "PE.Views.EditLink.textDisplay": "Megjelenít", - "PE.Views.EditLink.textEdit": "Hivatkozás szerkesztése", - "PE.Views.EditLink.textExternalLink": "Külső hivatkozás", - "PE.Views.EditLink.textFirst": "Első dia", - "PE.Views.EditLink.textInternalLink": "Csúsztassa be ezt a prezentációt", - "PE.Views.EditLink.textLast": "Utolsó dia", - "PE.Views.EditLink.textLink": "Link", - "PE.Views.EditLink.textLinkSlide": "Hivatkozás", - "PE.Views.EditLink.textLinkType": "Link típusa", - "PE.Views.EditLink.textNext": "Következő dia", - "PE.Views.EditLink.textNumber": "Dia száma", - "PE.Views.EditLink.textPrev": "Korábbi dia", - "PE.Views.EditLink.textRemove": "Link eltávolítása", - "PE.Views.EditLink.textTip": "Gyorstipp", - "PE.Views.EditShape.textAddCustomColor": "Egyéni szín hozzáadása", - "PE.Views.EditShape.textAlign": "Rendez", - "PE.Views.EditShape.textAlignBottom": "Alulra rendez", - "PE.Views.EditShape.textAlignCenter": "Középre rendez", - "PE.Views.EditShape.textAlignLeft": "Balra rendez", - "PE.Views.EditShape.textAlignMiddle": "Középre rendez", - "PE.Views.EditShape.textAlignRight": "Jobbra rendez", - "PE.Views.EditShape.textAlignTop": "Felfelé rendez", - "PE.Views.EditShape.textBack": "Vissza", - "PE.Views.EditShape.textBackward": "Hátra mozgat", - "PE.Views.EditShape.textBorder": "Szegély", - "PE.Views.EditShape.textColor": "Szín", - "PE.Views.EditShape.textCustomColor": "Egyéni szín", - "PE.Views.EditShape.textEffects": "Effektek", - "PE.Views.EditShape.textFill": "Kitölt", - "PE.Views.EditShape.textForward": "Előre mozgat", - "PE.Views.EditShape.textOpacity": "Átlátszóság", - "PE.Views.EditShape.textRemoveShape": "Alakzat eltávolítása", - "PE.Views.EditShape.textReorder": "Újrarendez", - "PE.Views.EditShape.textReplace": "Cserél", - "PE.Views.EditShape.textSize": "Méret", - "PE.Views.EditShape.textStyle": "Stílus", - "PE.Views.EditShape.textToBackground": "Háttérbe küld", - "PE.Views.EditShape.textToForeground": "Elölre hoz", - "PE.Views.EditShape.txtDistribHor": "Vízszintes igazítás", - "PE.Views.EditShape.txtDistribVert": "Függőleges igazítás", - "PE.Views.EditSlide.textAddCustomColor": "Egyéni szín hozzáadása", - "PE.Views.EditSlide.textApplyAll": "Minden diára alkalmaz", - "PE.Views.EditSlide.textBack": "Vissza", - "PE.Views.EditSlide.textBlack": "Fekete", - "PE.Views.EditSlide.textBottom": "Alsó", - "PE.Views.EditSlide.textBottomLeft": "Bal alsó", - "PE.Views.EditSlide.textBottomRight": "Jobb alsó", - "PE.Views.EditSlide.textClock": "Óra", - "PE.Views.EditSlide.textClockwise": "Óramutató járásával megegyezően", - "PE.Views.EditSlide.textColor": "Szín", - "PE.Views.EditSlide.textCounterclockwise": "Óramutató járásával ellenkezően", - "PE.Views.EditSlide.textCover": "Fed", - "PE.Views.EditSlide.textCustomColor": "Egyéni szín", - "PE.Views.EditSlide.textDelay": "Várakozás", - "PE.Views.EditSlide.textDuplicateSlide": "Dia duplikálása", - "PE.Views.EditSlide.textDuration": "Időtartam", - "PE.Views.EditSlide.textEffect": "Effekt", - "PE.Views.EditSlide.textFade": "Áttűnés", - "PE.Views.EditSlide.textFill": "Kitölt", - "PE.Views.EditSlide.textHorizontalIn": "Vízszintesen belül", - "PE.Views.EditSlide.textHorizontalOut": "Vízszintesen kívül", - "PE.Views.EditSlide.textLayout": "Elrendezés", - "PE.Views.EditSlide.textLeft": "Bal", - "PE.Views.EditSlide.textNone": "nincs", - "PE.Views.EditSlide.textOpacity": "Átlátszóság", - "PE.Views.EditSlide.textPush": "Nyom", - "PE.Views.EditSlide.textRemoveSlide": "Dia törlése", - "PE.Views.EditSlide.textRight": "Jobb", - "PE.Views.EditSlide.textSmoothly": "Simán", - "PE.Views.EditSlide.textSplit": "Szétválaszt", - "PE.Views.EditSlide.textStartOnClick": "Érintésre elindít", - "PE.Views.EditSlide.textStyle": "Stílus", - "PE.Views.EditSlide.textTheme": "Téma", - "PE.Views.EditSlide.textTop": "Felső", - "PE.Views.EditSlide.textTopLeft": "Bal felső", - "PE.Views.EditSlide.textTopRight": "Jobb felső", - "PE.Views.EditSlide.textTransition": "Átmenet", - "PE.Views.EditSlide.textType": "Típus", - "PE.Views.EditSlide.textUnCover": "Felfed", - "PE.Views.EditSlide.textVerticalIn": "Függőlegesen befele", - "PE.Views.EditSlide.textVerticalOut": "Függőlegesen kifele", - "PE.Views.EditSlide.textWedge": "Beékel", - "PE.Views.EditSlide.textWipe": "Töröl", - "PE.Views.EditSlide.textZoom": "Zoom", - "PE.Views.EditSlide.textZoomIn": "Zoom be", - "PE.Views.EditSlide.textZoomOut": "Zoom ki", - "PE.Views.EditSlide.textZoomRotate": "Zoom és elforgatás", - "PE.Views.EditTable.textAddCustomColor": "Egyéni szín hozzáadása", - "PE.Views.EditTable.textAlign": "Rendez", - "PE.Views.EditTable.textAlignBottom": "Alulra rendez", - "PE.Views.EditTable.textAlignCenter": "Középre rendez", - "PE.Views.EditTable.textAlignLeft": "Balra rendez", - "PE.Views.EditTable.textAlignMiddle": "Középre rendez", - "PE.Views.EditTable.textAlignRight": "Jobbra rendez", - "PE.Views.EditTable.textAlignTop": "Felfelé rendez", - "PE.Views.EditTable.textBack": "Vissza", - "PE.Views.EditTable.textBackward": "Hátra mozgat", - "PE.Views.EditTable.textBandedColumn": "Oszlopok csíkozása", - "PE.Views.EditTable.textBandedRow": "Sorok csíkozása", - "PE.Views.EditTable.textBorder": "Szegély", - "PE.Views.EditTable.textCellMargins": "Cella margók", - "PE.Views.EditTable.textColor": "Szín", - "PE.Views.EditTable.textCustomColor": "Egyéni szín", - "PE.Views.EditTable.textFill": "Kitölt", - "PE.Views.EditTable.textFirstColumn": "Első oszlop", - "PE.Views.EditTable.textForward": "Előre mozgat", - "PE.Views.EditTable.textHeaderRow": "Fejléc sor", - "PE.Views.EditTable.textLastColumn": "Utolsó oszlop", - "PE.Views.EditTable.textOptions": "Beállítások", - "PE.Views.EditTable.textRemoveTable": "Táblázat eltávolítása", - "PE.Views.EditTable.textReorder": "Újrarendez", - "PE.Views.EditTable.textSize": "Méret", - "PE.Views.EditTable.textStyle": "Stílus", - "PE.Views.EditTable.textStyleOptions": "Stílus beállítások", - "PE.Views.EditTable.textTableOptions": "Táblázat beállítások", - "PE.Views.EditTable.textToBackground": "Háttérbe küld", - "PE.Views.EditTable.textToForeground": "Elölre hoz", - "PE.Views.EditTable.textTotalRow": "Összes sor", - "PE.Views.EditTable.txtDistribHor": "Vízszintes igazítás", - "PE.Views.EditTable.txtDistribVert": "Függőleges igazítás", - "PE.Views.EditText.textAddCustomColor": "Egyéni szín hozzáadása", - "PE.Views.EditText.textAdditional": "További", - "PE.Views.EditText.textAdditionalFormat": "További formázás", - "PE.Views.EditText.textAfter": "után", - "PE.Views.EditText.textAllCaps": "Minden nagybetű", - "PE.Views.EditText.textAutomatic": "Automatikus", - "PE.Views.EditText.textBack": "Vissza", - "PE.Views.EditText.textBefore": "Előtt", - "PE.Views.EditText.textBullets": "Pontok", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "s", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Egyéni szín", - "PE.Views.EditText.textDblStrikethrough": "Dupla áthúzás", - "PE.Views.EditText.textDblSuperscript": "Felső index", - "PE.Views.EditText.textFontColor": "Betűszín", - "PE.Views.EditText.textFontColors": "Betűszínek", - "PE.Views.EditText.textFonts": "Betűtípusok", - "PE.Views.EditText.textFromText": "Távolság a szövegtől", - "PE.Views.EditText.textLetterSpacing": "Betűtávolság", - "PE.Views.EditText.textLineSpacing": "Sortávolság", - "PE.Views.EditText.textNone": "nincs", - "PE.Views.EditText.textNumbers": "Számok", - "PE.Views.EditText.textSize": "Méret", - "PE.Views.EditText.textSmallCaps": "Kisbetűk", - "PE.Views.EditText.textStrikethrough": "Áthúzás", - "PE.Views.EditText.textSubscript": "Alsó index", - "PE.Views.Search.textCase": "Kis-nagybetű érzékeny", - "PE.Views.Search.textDone": "Kész", - "PE.Views.Search.textFind": "Keres", - "PE.Views.Search.textFindAndReplace": "Keres és cserél", - "PE.Views.Search.textReplace": "Cserél", - "PE.Views.Search.textSearch": "Keresés", - "PE.Views.Settings. textComment": "Hozzászólás", - "PE.Views.Settings.mniSlideStandard": "Sztenderd (4:3)", - "PE.Views.Settings.mniSlideWide": "Szélesvásznú (16:9)", - "PE.Views.Settings.textAbout": "Névjegy", - "PE.Views.Settings.textAddress": "Cím", - "PE.Views.Settings.textApplication": "Alkalmazás", - "PE.Views.Settings.textApplicationSettings": "Alkalmazás beállítások", - "PE.Views.Settings.textAuthor": "Szerző", - "PE.Views.Settings.textBack": "Vissza", - "PE.Views.Settings.textCentimeter": "Centiméter", - "PE.Views.Settings.textCollaboration": "Együttműködés", - "PE.Views.Settings.textColorSchemes": "Szín sémák", - "PE.Views.Settings.textCreated": "Létrehozva", - "PE.Views.Settings.textCreateDate": "Létrehozás dátuma", - "PE.Views.Settings.textDisableAll": "Összes letiltása", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Minden értesítéssel rendelkező makró letiltása", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Minden értesítés nélküli makró letiltása", - "PE.Views.Settings.textDone": "Kész", - "PE.Views.Settings.textDownload": "Letöltés", - "PE.Views.Settings.textDownloadAs": "Letöltés mint...", - "PE.Views.Settings.textEditPresent": "Prezentáció szerkesztése", - "PE.Views.Settings.textEmail": "Email", - "PE.Views.Settings.textEnableAll": "Összes engedélyezése", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Minden értesítés nélküli makró engedélyezése", - "PE.Views.Settings.textFind": "Keres", - "PE.Views.Settings.textFindAndReplace": "Keres és cserél", - "PE.Views.Settings.textHelp": "Súgó", - "PE.Views.Settings.textInch": "Hüvelyk", - "PE.Views.Settings.textLastModified": "Utoljára módosított", - "PE.Views.Settings.textLastModifiedBy": "Utoljára módosította", - "PE.Views.Settings.textLoading": "Betöltés...", - "PE.Views.Settings.textLocation": "Hely", - "PE.Views.Settings.textMacrosSettings": "Makró beállítások", - "PE.Views.Settings.textOwner": "Tulajdonos", - "PE.Views.Settings.textPoint": "Pont", - "PE.Views.Settings.textPoweredBy": "Powered by", - "PE.Views.Settings.textPresentInfo": "Prezentáció infó", - "PE.Views.Settings.textPresentSettings": "Bemutató beállításai", - "PE.Views.Settings.textPresentSetup": "Prezentáció beállítások", - "PE.Views.Settings.textPresentTitle": "Prezentáció címe", - "PE.Views.Settings.textPrint": "Nyomtat", - "PE.Views.Settings.textSettings": "Beállítások", - "PE.Views.Settings.textShowNotification": "Értesítés mutatása", - "PE.Views.Settings.textSlideSize": "Dia mérete", - "PE.Views.Settings.textSpellcheck": "Helyesírás-ellenőrzés", - "PE.Views.Settings.textSubject": "Tárgy", - "PE.Views.Settings.textTel": "Tel.", - "PE.Views.Settings.textTitle": "Cím", - "PE.Views.Settings.textUnitOfMeasurement": "Mérési egység", - "PE.Views.Settings.textUploaded": "Feltöltve", - "PE.Views.Settings.textVersion": "Verzió", - "PE.Views.Settings.unknownText": "Ismeretlen", - "PE.Views.Toolbar.textBack": "Vissza" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/it.json b/apps/presentationeditor/mobile/locale/it.json index 733bc58c0..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/it.json +++ b/apps/presentationeditor/mobile/locale/it.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Aggiungi risposta", - "Common.Controllers.Collaboration.textCancel": "Annulla", - "Common.Controllers.Collaboration.textDeleteComment": "Elimina commento", - "Common.Controllers.Collaboration.textDeleteReply": "Elimina risposta", - "Common.Controllers.Collaboration.textDone": "Fatto", - "Common.Controllers.Collaboration.textEdit": "Modifica", - "Common.Controllers.Collaboration.textEditUser": "Utenti che stanno modificando il file:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Sei sicuro di voler eliminare questo commento?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Sei sicuro di voler eliminare questa risposta?", - "Common.Controllers.Collaboration.textReopen": "Riapri", - "Common.Controllers.Collaboration.textResolve": "Risolvi", - "Common.Controllers.Collaboration.textYes": "Sì", - "Common.UI.ThemeColorPalette.textCustomColors": "Colori personalizzati", - "Common.UI.ThemeColorPalette.textStandartColors": "Colori standard", - "Common.UI.ThemeColorPalette.textThemeColors": "Colori del tema", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Aggiungi risposta", - "Common.Views.Collaboration.textBack": "Indietro", - "Common.Views.Collaboration.textCancel": "Annulla", - "Common.Views.Collaboration.textCollaboration": "Collaborazione", - "Common.Views.Collaboration.textDone": "Fatto", - "Common.Views.Collaboration.textEditReply": "Modifica risposta", - "Common.Views.Collaboration.textEditUsers": "Utenti", - "Common.Views.Collaboration.textEditСomment": "Modifica commento", - "Common.Views.Collaboration.textNoComments": "Questa presentazione non contiene commenti", - "Common.Views.Collaboration.textСomments": "Сommenti", - "PE.Controllers.AddContainer.textImage": "Immagine", - "PE.Controllers.AddContainer.textLink": "Collegamento", - "PE.Controllers.AddContainer.textOther": "Altro", - "PE.Controllers.AddContainer.textShape": "Forma", - "PE.Controllers.AddContainer.textSlide": "Diapositiva", - "PE.Controllers.AddContainer.textTable": "Tabella", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Avviso", - "PE.Controllers.AddImage.textEmptyImgUrl": "Specifica URL immagine.", - "PE.Controllers.AddImage.txtNotUrl": "Questo campo deve essere un URL nel formato 'http://www.example.com'", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Avviso", - "PE.Controllers.AddLink.textDefault": "Testo selezionato", - "PE.Controllers.AddLink.textExternalLink": "Collegamento esterno", - "PE.Controllers.AddLink.textFirst": "Prima diapositiva", - "PE.Controllers.AddLink.textInternalLink": "Diapositiva in questa presentazione", - "PE.Controllers.AddLink.textLast": "Ultima diapositiva", - "PE.Controllers.AddLink.textNext": "Diapositiva successiva", - "PE.Controllers.AddLink.textPrev": "Diapositiva precedente", - "PE.Controllers.AddLink.textSlide": "Diapositiva", - "PE.Controllers.AddLink.txtNotUrl": "Questo campo deve essere un URL nel formato 'http://www.example.com'", - "PE.Controllers.AddOther.textCancel": "Annulla", - "PE.Controllers.AddOther.textContinue": "Continua", - "PE.Controllers.AddOther.textDelete": "Elimina", - "PE.Controllers.AddOther.textDeleteDraft": "Sei sicuro di voler eliminare la bozza?", - "PE.Controllers.AddTable.textCancel": "Annulla", - "PE.Controllers.AddTable.textColumns": "Colonne", - "PE.Controllers.AddTable.textRows": "Righe", - "PE.Controllers.AddTable.textTableSize": "Dimensioni tabella", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Le azioni di copia, taglia e incolla utilizzando il menu di scelta rapida verranno eseguite solo all'interno del file corrente.", - "PE.Controllers.DocumentHolder.menuAddComment": "Aggiungi commento", - "PE.Controllers.DocumentHolder.menuAddLink": "Aggiungi collegamento", - "PE.Controllers.DocumentHolder.menuCopy": "Copia", - "PE.Controllers.DocumentHolder.menuCut": "Taglia", - "PE.Controllers.DocumentHolder.menuDelete": "Elimina", - "PE.Controllers.DocumentHolder.menuEdit": "Modifica", - "PE.Controllers.DocumentHolder.menuMore": "Altro", - "PE.Controllers.DocumentHolder.menuOpenLink": "Apri collegamento", - "PE.Controllers.DocumentHolder.menuPaste": "Incolla", - "PE.Controllers.DocumentHolder.menuViewComment": "Visualizza commento", - "PE.Controllers.DocumentHolder.sheetCancel": "Annulla", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Azioni copia/taglia/incolla", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Non visualizzare più", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Fine dell'anteprima della diapositiva. Fai clic per uscire.", - "PE.Controllers.EditContainer.textChart": "Grafico", - "PE.Controllers.EditContainer.textHyperlink": "Collegamento ipertestuale", - "PE.Controllers.EditContainer.textImage": "Immagine", - "PE.Controllers.EditContainer.textSettings": "Impostazioni", - "PE.Controllers.EditContainer.textShape": "Forma", - "PE.Controllers.EditContainer.textSlide": "Diapositiva", - "PE.Controllers.EditContainer.textTable": "Tabella", - "PE.Controllers.EditContainer.textText": "Testo", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Avviso", - "PE.Controllers.EditImage.textEmptyImgUrl": "Specifica URL immagine.", - "PE.Controllers.EditImage.txtNotUrl": "Questo campo deve essere un URL nel formato 'http://www.example.com'", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Avviso", - "PE.Controllers.EditLink.textDefault": "Testo selezionato", - "PE.Controllers.EditLink.textExternalLink": "Collegamento esterno", - "PE.Controllers.EditLink.textFirst": "Prima diapositiva", - "PE.Controllers.EditLink.textInternalLink": "Diapositiva in questa presentazione", - "PE.Controllers.EditLink.textLast": "Ultima diapositiva", - "PE.Controllers.EditLink.textNext": "Diapositiva successiva", - "PE.Controllers.EditLink.textPrev": "Diapositiva precedente", - "PE.Controllers.EditLink.textSlide": "Diapositiva", - "PE.Controllers.EditLink.txtNotUrl": "Questo campo deve essere un URL nel formato 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Auto", - "PE.Controllers.EditText.textFonts": "Caratteri", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Inserisci la tua password:", - "PE.Controllers.Main.advDRMOptions": "File protetto", - "PE.Controllers.Main.advDRMPassword": "Password", - "PE.Controllers.Main.applyChangesTextText": "Caricamento dei dati in corso...", - "PE.Controllers.Main.applyChangesTitleText": "Caricamento dei dati", - "PE.Controllers.Main.closeButtonText": "Chiudi File", - "PE.Controllers.Main.convertationTimeoutText": "È stato superato il tempo limite della conversione.", - "PE.Controllers.Main.criticalErrorExtText": "Premere 'OK' per tornare all'elenco dei documenti.", - "PE.Controllers.Main.criticalErrorTitle": "Errore", - "PE.Controllers.Main.downloadErrorText": "Scaricamento fallito.", - "PE.Controllers.Main.downloadTextText": "Scaricamento della presentazione in corso...", - "PE.Controllers.Main.downloadTitleText": "Scaricamento della presentazione", - "PE.Controllers.Main.errorAccessDeny": "Stai tentando di eseguire un'azione per la quale non disponi di permessi sufficienti.
            Si prega di contattare l'amministratore del Document Server.", - "PE.Controllers.Main.errorBadImageUrl": "URL dell'immagine non corretto", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Connessione al server persa. Non puoi più modificare.", - "PE.Controllers.Main.errorConnectToServer": "Il documento non può essere salvato. Controllare le impostazioni di rete o contattare l'Amministratore.
            Quando fai clic sul pulsante 'OK', ti verrà richiesto di scaricare il documento.", - "PE.Controllers.Main.errorDatabaseConnection": "Errore esterno.
            Errore di connessione al database. Si prega di contattare l'assistenza.", - "PE.Controllers.Main.errorDataEncrypted": "Le modifiche crittografate sono state ricevute, non possono essere decifrate.", - "PE.Controllers.Main.errorDataRange": "Intervallo di dati non corretto.", - "PE.Controllers.Main.errorDefaultMessage": "Codice errore: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Si è verificato un errore mentre si lavorava sul documento.
            Utilizzare l'opzione 'Scarica' per salvare la copia di backup del file sul disco rigido del computer.", - "PE.Controllers.Main.errorFilePassProtect": "Il file è protetto da password e non può essere aperto.", - "PE.Controllers.Main.errorFileSizeExceed": "La dimensione del file supera la limitazione impostata per il tuo server.
            Per i dettagli, contatta l'amministratore del Document Server.", - "PE.Controllers.Main.errorKeyEncrypt": "Descrittore di chiave sconosciuto", - "PE.Controllers.Main.errorKeyExpire": "Descrittore di chiave scaduto", - "PE.Controllers.Main.errorOpensource": "Con la versione gratuita Community puoi aprire i documenti in sola visualizzazione. Per accedere agli editor web mobile, è richiesta una licenza commerciale.", - "PE.Controllers.Main.errorProcessSaveResult": "Salvataggio non riuscito", - "PE.Controllers.Main.errorServerVersion": "La versione dell'editor è stata aggiornata. La pagina verrà ricaricata per applicare le modifiche.", - "PE.Controllers.Main.errorSessionAbsolute": "La sessione di modifica del documento è scaduta. È necessario ricaricare la pagina.", - "PE.Controllers.Main.errorSessionIdle": "È passato troppo tempo dall'ultima modifica apportata al documento. È necessario ricaricare la pagina.", - "PE.Controllers.Main.errorSessionToken": "La connessione al server è stata interrotta, è necessario ricaricare la pagina.", - "PE.Controllers.Main.errorStockChart": "Righe ordinate in modo errato. Per creare un grafico azionario posizionare i dati sul foglio nel seguente ordine:
            prezzo di apertura, prezzo massimo, prezzo minimo, prezzo di chiusura.", - "PE.Controllers.Main.errorUpdateVersion": "La versione del file è stata modificata. La pagina verrà ricaricata.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "La connessione Internet è stata ripristinata e la versione del file è stata modificata.
            Prima di poter continuare a lavorare, è necessario scaricare il file o copiarne il contenuto per assicurarsi che non vada perso nulla, quindi ricaricare questa pagina.", - "PE.Controllers.Main.errorUserDrop": "Impossibile accedere al file in questo momento.", - "PE.Controllers.Main.errorUsersExceed": "È stato superato il numero di utenti", - "PE.Controllers.Main.errorViewerDisconnect": "Connessione assente. È ancora possibile visualizzare il documento,
            ma non sarà possibile scaricarlo fino a che la connessione verrà ristabilita e la pagina ricaricata.", - "PE.Controllers.Main.leavePageText": "Ci sono delle modifiche non salvate in questo documento. Clicca su 'Rimani in questa pagina, in attesa del salvataggio automatico del documento. Clicca su 'Lascia questa pagina' per annullare le modifiche.", - "PE.Controllers.Main.loadFontsTextText": "Caricamento dei dati in corso...", - "PE.Controllers.Main.loadFontsTitleText": "Caricamento dei dati", - "PE.Controllers.Main.loadFontTextText": "Caricamento dei dati in corso...", - "PE.Controllers.Main.loadFontTitleText": "Caricamento dei dati", - "PE.Controllers.Main.loadImagesTextText": "Caricamento delle immagini in corso...", - "PE.Controllers.Main.loadImagesTitleText": "Caricamento delle immagini", - "PE.Controllers.Main.loadImageTextText": "Caricamento dell'immagine in corso...", - "PE.Controllers.Main.loadImageTitleText": "Caricamento dell'immagine", - "PE.Controllers.Main.loadingDocumentTextText": "Caricamento della presentazione in corso...", - "PE.Controllers.Main.loadingDocumentTitleText": "Caricamento della presentazione", - "PE.Controllers.Main.loadThemeTextText": "Caricamento del tema in corso...", - "PE.Controllers.Main.loadThemeTitleText": "Caricamento del tema", - "PE.Controllers.Main.notcriticalErrorTitle": "Avviso", - "PE.Controllers.Main.openErrorText": "Si è verificato un errore durante l'apertura del file", - "PE.Controllers.Main.openTextText": "Apertura del documento in corso...", - "PE.Controllers.Main.openTitleText": "Apertura del documento", - "PE.Controllers.Main.printTextText": "Stampa del documento in corso...", - "PE.Controllers.Main.printTitleText": "Stampa del documento", - "PE.Controllers.Main.reloadButtonText": "Ricarica pagina", - "PE.Controllers.Main.requestEditFailedMessageText": "Qualcuno sta modificando questo documento in questo momento. Si prega di provare più tardi.", - "PE.Controllers.Main.requestEditFailedTitleText": "Accesso negato", - "PE.Controllers.Main.saveErrorText": "Si è verificato un errore durante il salvataggio del file", - "PE.Controllers.Main.savePreparingText": "Preparazione al salvataggio ", - "PE.Controllers.Main.savePreparingTitle": "Preparazione al salvataggio. Attendere prego...", - "PE.Controllers.Main.saveTextText": "Salvataggio del documento in corso...", - "PE.Controllers.Main.saveTitleText": "Salvataggio del documento", - "PE.Controllers.Main.scriptLoadError": "La connessione è troppo lenta, alcuni componenti non possono essere caricati. Si prega di ricaricare la pagina.", - "PE.Controllers.Main.splitDividerErrorText": "Il numero di righe deve essere un divisore di %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Il numero di colonne deve essere inferiore a% 1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Il numero di righe deve essere inferiore a% 1", - "PE.Controllers.Main.textAnonymous": "Anonimo", - "PE.Controllers.Main.textBack": "Indietro", - "PE.Controllers.Main.textBuyNow": "Visita il sito web", - "PE.Controllers.Main.textCancel": "Annulla", - "PE.Controllers.Main.textClose": "Chiudi", - "PE.Controllers.Main.textCloseTip": "Toccare per chiudere il suggerimento.", - "PE.Controllers.Main.textContactUs": "Contatta il reparto vendite.", - "PE.Controllers.Main.textCustomLoader": "Si prega di notare che, in base ai termini della licenza, non si ha il diritto di modificare il caricatore.
            Si prega di contattare il nostro reparto vendite per ottenere un preventivo.", - "PE.Controllers.Main.textDone": "Fatto", - "PE.Controllers.Main.textGuest": "Ospite", - "PE.Controllers.Main.textHasMacros": "Il file contiene delle macro automatiche.
            Vuoi eseguirle?", - "PE.Controllers.Main.textLoadingDocument": "Caricamento della presentazione", - "PE.Controllers.Main.textNo": "No", - "PE.Controllers.Main.textNoLicenseTitle": "Limite di licenza raggiunto", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Funzionalità a pagamento", - "PE.Controllers.Main.textPassword": "Password", - "PE.Controllers.Main.textPreloader": "Caricamento in corso...", - "PE.Controllers.Main.textRemember": "Ricorda la mia scelta per tutti i file", - "PE.Controllers.Main.textShape": "Forma", - "PE.Controllers.Main.textTryUndoRedo": "Le funzioni Annulla/Ripeti sono disattivate nella modalità rapida di co-editing", - "PE.Controllers.Main.textUsername": "Nome utente", - "PE.Controllers.Main.textYes": "Sì", - "PE.Controllers.Main.titleLicenseExp": "La licenza è scaduta", - "PE.Controllers.Main.titleServerVersion": "L'editor è stato aggiornato", - "PE.Controllers.Main.txtAddFirstSlide": "Clicca per aggiungere la prima diapositiva", - "PE.Controllers.Main.txtArt": "Il tuo testo qui", - "PE.Controllers.Main.txtBasicShapes": "Forme di base", - "PE.Controllers.Main.txtButtons": "Bottoni", - "PE.Controllers.Main.txtCallouts": "Callout", - "PE.Controllers.Main.txtCharts": "Grafici", - "PE.Controllers.Main.txtClipArt": "Clip Art", - "PE.Controllers.Main.txtDateTime": "Data e ora", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Titolo del grafico", - "PE.Controllers.Main.txtEditingMode": "Imposta la modalità di modifica...", - "PE.Controllers.Main.txtFiguredArrows": "Frecce figurate", - "PE.Controllers.Main.txtFooter": "Piè di pagina", - "PE.Controllers.Main.txtHeader": "Intestazione", - "PE.Controllers.Main.txtImage": "Immagine", - "PE.Controllers.Main.txtLines": "Linee", - "PE.Controllers.Main.txtMath": "Matematica", - "PE.Controllers.Main.txtMedia": "Multimedia", - "PE.Controllers.Main.txtNeedSynchronize": "Ci sono aggiornamenti disponibili", - "PE.Controllers.Main.txtPicture": "Immagine", - "PE.Controllers.Main.txtProtected": "Una volta inserita la password e aperto il file, verrà ripristinata la password corrente sul file", - "PE.Controllers.Main.txtRectangles": "Rettangoli", - "PE.Controllers.Main.txtSeries": "Serie", - "PE.Controllers.Main.txtSldLtTBlank": "Vuoto", - "PE.Controllers.Main.txtSldLtTChart": "Grafico", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Grafico e testo", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art e testo", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clip Art e testo verticale", - "PE.Controllers.Main.txtSldLtTCust": "Personalizzato", - "PE.Controllers.Main.txtSldLtTDgm": "Diagramma", - "PE.Controllers.Main.txtSldLtTFourObj": "Quattro oggetti", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Multimedia e testo", - "PE.Controllers.Main.txtSldLtTObj": "Titolo e oggetto", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Oggetto e due oggetti", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Oggetto e testo", - "PE.Controllers.Main.txtSldLtTObjOnly": "Oggetto", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Oggetto su testo", - "PE.Controllers.Main.txtSldLtTObjTx": "Titolo, oggetto e didascalia", - "PE.Controllers.Main.txtSldLtTPicTx": "Immagine e didascalia", - "PE.Controllers.Main.txtSldLtTSecHead": "Intestazione di sezione", - "PE.Controllers.Main.txtSldLtTTbl": "Tabella", - "PE.Controllers.Main.txtSldLtTTitle": "Titolo", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Solo titolo", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Testo su due colonne", - "PE.Controllers.Main.txtSldLtTTwoObj": "Due oggetti", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Due oggetti e oggetto", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Due oggetti e testo", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Due oggetti sul testo", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Due testi e due oggetti", - "PE.Controllers.Main.txtSldLtTTx": "Testo", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Testo e grafico", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Testo e Clip Art", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Testo e multimedia", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Testo e oggetto", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Testo e due oggetti", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Testo su oggetto", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Titolo e testo verticali", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Titolo e Testo verticali su grafico", - "PE.Controllers.Main.txtSldLtTVertTx": "Testo verticale", - "PE.Controllers.Main.txtSlideNumber": "Numero Diapositiva", - "PE.Controllers.Main.txtSlideSubtitle": "Sottotitolo diapositiva", - "PE.Controllers.Main.txtSlideText": "Testo diapositiva", - "PE.Controllers.Main.txtSlideTitle": "Titolo diapositiva", - "PE.Controllers.Main.txtStarsRibbons": "Stelle e nastri", - "PE.Controllers.Main.txtXAxis": "Asse X", - "PE.Controllers.Main.txtYAxis": "Asse Y", - "PE.Controllers.Main.unknownErrorText": "Errore sconosciuto.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Il tuo browser non è supportato.", - "PE.Controllers.Main.uploadImageExtMessage": "Formato immagine sconosciuto.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Nessuna immagine caricata.", - "PE.Controllers.Main.uploadImageSizeMessage": "È stata superata la dimensione massima per l'immagine.", - "PE.Controllers.Main.uploadImageTextText": "Caricamento dell'immagine in corso...", - "PE.Controllers.Main.uploadImageTitleText": "Caricamento dell'immagine", - "PE.Controllers.Main.waitText": "Attendere prego...", - "PE.Controllers.Main.warnLicenseExceeded": "Hai raggiunto il limite per le connessioni simultanee agli editor %1. Questo documento verrà aperto in sola lettura.
            Contatta l’amministratore per saperne di più.", - "PE.Controllers.Main.warnLicenseExp": "La tua licenza è scaduta.
            Si prega di aggiornare la licenza e ricaricare la pagina.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "Licenza scaduta.
            Non puoi modificare il documento.
            Contatta l'amministratore", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "La licenza dev'essere rinnovata
            Hai un accesso limitato alle funzioni di modifica del documento
            Contatta l'amministratore per ottenere l'accesso completo", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Hai raggiunto il limite per gli utenti con accesso agli editor %1. Contatta l’amministratore per saperne di più.", - "PE.Controllers.Main.warnNoLicense": "Hai raggiunto il limite per le connessioni simultanee agli editor %1. Questo documento verrà aperto in sola lettura.
            Contatta il team di vendita di %1 per i termini di aggiornamento personali.", - "PE.Controllers.Main.warnNoLicenseUsers": "Hai raggiunto il limite per gli utenti con accesso agli editor %1. Contatta il team di vendita di %1 per i termini di aggiornamento personali.", - "PE.Controllers.Main.warnProcessRightsChange": "Ti è stato negato il diritto di modificare il file.", - "PE.Controllers.Search.textNoTextFound": "Testo non trovato", - "PE.Controllers.Search.textReplaceAll": "Sostituisci tutto", - "PE.Controllers.Settings.notcriticalErrorTitle": "Avviso", - "PE.Controllers.Settings.txtLoading": "Caricamento in corso...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Ci sono delle modifiche non salvate in questo documento. Clicca su 'Rimani in questa pagina, in attesa del salvataggio automatico del documento. Clicca su 'Lascia questa pagina' per annullare le modifiche.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Lascia l'applicazione", - "PE.Controllers.Toolbar.leaveButtonText": "Lascia questa pagina", - "PE.Controllers.Toolbar.stayButtonText": "Rimani su questa pagina", - "PE.Views.AddImage.textAddress": "Indirizzo", - "PE.Views.AddImage.textBack": "Indietro", - "PE.Views.AddImage.textFromLibrary": "Immagine dalla Raccolta", - "PE.Views.AddImage.textFromURL": "Immagine da URL", - "PE.Views.AddImage.textImageURL": "URL dell'immagine", - "PE.Views.AddImage.textInsertImage": "Inserisci immagine", - "PE.Views.AddImage.textLinkSettings": "Impostazioni collegamento", - "PE.Views.AddLink.textBack": "Indietro", - "PE.Views.AddLink.textDisplay": "Visualizza", - "PE.Views.AddLink.textExternalLink": "Collegamento esterno", - "PE.Views.AddLink.textFirst": "Prima diapositiva", - "PE.Views.AddLink.textInsert": "Inserisci", - "PE.Views.AddLink.textInternalLink": "Diapositiva in questa presentazione", - "PE.Views.AddLink.textLast": "Ultima diapositiva", - "PE.Views.AddLink.textLink": "Collegamento", - "PE.Views.AddLink.textLinkSlide": "Collega a", - "PE.Views.AddLink.textLinkType": "Tipo collegamento", - "PE.Views.AddLink.textNext": "Diapositiva successiva", - "PE.Views.AddLink.textNumber": "Numero Diapositiva", - "PE.Views.AddLink.textPrev": "Diapositiva precedente", - "PE.Views.AddLink.textTip": "Suggerimento ", - "PE.Views.AddOther.textAddComment": "Aggiungi commento", - "PE.Views.AddOther.textBack": "Indietro", - "PE.Views.AddOther.textComment": "Commenta", - "PE.Views.AddOther.textDisplay": "Visualizza", - "PE.Views.AddOther.textDone": "Fatto", - "PE.Views.AddOther.textExternalLink": "Collegamento esterno", - "PE.Views.AddOther.textFirst": "Prima diapositiva", - "PE.Views.AddOther.textInsert": "Inserisci", - "PE.Views.AddOther.textInternalLink": "Diapositiva in questa presentazione", - "PE.Views.AddOther.textLast": "Ultima diapositiva", - "PE.Views.AddOther.textLink": "Collegamento", - "PE.Views.AddOther.textLinkSlide": "Collega a", - "PE.Views.AddOther.textLinkType": "Tipo collegamento", - "PE.Views.AddOther.textNext": "Diapositiva successiva", - "PE.Views.AddOther.textNumber": "Numero diapositiva", - "PE.Views.AddOther.textPrev": "Diapositiva precedente", - "PE.Views.AddOther.textTable": "Tabella", - "PE.Views.AddOther.textTip": "Suggerimento ", - "PE.Views.EditChart.textAddCustomColor": "Aggiungi colore personalizzato", - "PE.Views.EditChart.textAlign": "Allinea", - "PE.Views.EditChart.textAlignBottom": "Allinea in basso", - "PE.Views.EditChart.textAlignCenter": "Allinea al centro", - "PE.Views.EditChart.textAlignLeft": "Allinea a sinistra", - "PE.Views.EditChart.textAlignMiddle": "Allinea in mezzo", - "PE.Views.EditChart.textAlignRight": "Allinea a destra", - "PE.Views.EditChart.textAlignTop": "Allinea in alto", - "PE.Views.EditChart.textBack": "Indietro", - "PE.Views.EditChart.textBackward": "Sposta indietro", - "PE.Views.EditChart.textBorder": "Bordo", - "PE.Views.EditChart.textColor": "Colore", - "PE.Views.EditChart.textCustomColor": "Colore personalizzato", - "PE.Views.EditChart.textFill": "Riempimento", - "PE.Views.EditChart.textForward": "Sposta avanti", - "PE.Views.EditChart.textRemoveChart": "Elimina Grafico", - "PE.Views.EditChart.textReorder": "Riordina", - "PE.Views.EditChart.textSize": "Dimensione", - "PE.Views.EditChart.textStyle": "Stile", - "PE.Views.EditChart.textToBackground": "Sposta in secondo piano", - "PE.Views.EditChart.textToForeground": "Porta in primo piano", - "PE.Views.EditChart.textType": "Tipo", - "PE.Views.EditChart.txtDistribHor": "Distribuisci orizzontalmente", - "PE.Views.EditChart.txtDistribVert": "Distribuisci verticalmente", - "PE.Views.EditImage.textAddress": "Indirizzo", - "PE.Views.EditImage.textAlign": "Allinea", - "PE.Views.EditImage.textAlignBottom": "Allinea in basso", - "PE.Views.EditImage.textAlignCenter": "Allinea al centro", - "PE.Views.EditImage.textAlignLeft": "Allinea a sinistra", - "PE.Views.EditImage.textAlignMiddle": "Allinea in mezzo", - "PE.Views.EditImage.textAlignRight": "Allinea a destra", - "PE.Views.EditImage.textAlignTop": "Allinea in alto", - "PE.Views.EditImage.textBack": "Indietro", - "PE.Views.EditImage.textBackward": "Sposta indietro", - "PE.Views.EditImage.textDefault": "Dimensione reale", - "PE.Views.EditImage.textForward": "Sposta avanti", - "PE.Views.EditImage.textFromLibrary": "Immagine dalla Raccolta", - "PE.Views.EditImage.textFromURL": "Immagine da URL", - "PE.Views.EditImage.textImageURL": "URL dell'immagine", - "PE.Views.EditImage.textLinkSettings": "Impostazioni collegamento", - "PE.Views.EditImage.textRemove": "Elimina Immagine", - "PE.Views.EditImage.textReorder": "Riordina", - "PE.Views.EditImage.textReplace": "Sostituisci", - "PE.Views.EditImage.textReplaceImg": "Sostituisci immagine", - "PE.Views.EditImage.textToBackground": "Sposta in secondo piano", - "PE.Views.EditImage.textToForeground": "Porta in primo piano", - "PE.Views.EditImage.txtDistribHor": "Distribuisci orizzontalmente", - "PE.Views.EditImage.txtDistribVert": "Distribuisci verticalmente", - "PE.Views.EditLink.textBack": "Indietro", - "PE.Views.EditLink.textDisplay": "Visualizza", - "PE.Views.EditLink.textEdit": "Modifica collegamento", - "PE.Views.EditLink.textExternalLink": "Collegamento esterno", - "PE.Views.EditLink.textFirst": "Prima diapositiva", - "PE.Views.EditLink.textInternalLink": "Diapositiva in questa presentazione", - "PE.Views.EditLink.textLast": "Ultima diapositiva", - "PE.Views.EditLink.textLink": "Collegamento", - "PE.Views.EditLink.textLinkSlide": "Collega a", - "PE.Views.EditLink.textLinkType": "Tipo collegamento", - "PE.Views.EditLink.textNext": "Diapositiva successiva", - "PE.Views.EditLink.textNumber": "Numero Diapositiva", - "PE.Views.EditLink.textPrev": "Diapositiva precedente", - "PE.Views.EditLink.textRemove": "Elimina Collegamento", - "PE.Views.EditLink.textTip": "Suggerimento ", - "PE.Views.EditShape.textAddCustomColor": "Aggiungi colore personalizzato", - "PE.Views.EditShape.textAlign": "Allinea", - "PE.Views.EditShape.textAlignBottom": "Allinea in basso", - "PE.Views.EditShape.textAlignCenter": "Allinea al centro", - "PE.Views.EditShape.textAlignLeft": "Allinea a sinistra", - "PE.Views.EditShape.textAlignMiddle": "Allinea in mezzo", - "PE.Views.EditShape.textAlignRight": "Allinea a destra", - "PE.Views.EditShape.textAlignTop": "Allinea in alto", - "PE.Views.EditShape.textBack": "Indietro", - "PE.Views.EditShape.textBackward": "Sposta indietro", - "PE.Views.EditShape.textBorder": "Bordo", - "PE.Views.EditShape.textColor": "Colore", - "PE.Views.EditShape.textCustomColor": "Colore personalizzato", - "PE.Views.EditShape.textEffects": "Effetti", - "PE.Views.EditShape.textFill": "Riempimento", - "PE.Views.EditShape.textForward": "Sposta avanti", - "PE.Views.EditShape.textOpacity": "Opacità", - "PE.Views.EditShape.textRemoveShape": "Elimina Forma", - "PE.Views.EditShape.textReorder": "Riordina", - "PE.Views.EditShape.textReplace": "Sostituisci", - "PE.Views.EditShape.textSize": "Dimensione", - "PE.Views.EditShape.textStyle": "Stile", - "PE.Views.EditShape.textToBackground": "Sposta in secondo piano", - "PE.Views.EditShape.textToForeground": "Porta in primo piano", - "PE.Views.EditShape.txtDistribHor": "Distribuisci orizzontalmente", - "PE.Views.EditShape.txtDistribVert": "Distribuisci verticalmente", - "PE.Views.EditSlide.textAddCustomColor": "Aggiungi colore personalizzato", - "PE.Views.EditSlide.textApplyAll": "Applica a tutte le diapositive", - "PE.Views.EditSlide.textBack": "Indietro", - "PE.Views.EditSlide.textBlack": "Attraverso il nero", - "PE.Views.EditSlide.textBottom": "In basso", - "PE.Views.EditSlide.textBottomLeft": "In basso a sinistra", - "PE.Views.EditSlide.textBottomRight": "In basso a destra", - "PE.Views.EditSlide.textClock": "Orologio", - "PE.Views.EditSlide.textClockwise": "In senso orario", - "PE.Views.EditSlide.textColor": "Colore", - "PE.Views.EditSlide.textCounterclockwise": "In senso antiorario", - "PE.Views.EditSlide.textCover": "Copertina", - "PE.Views.EditSlide.textCustomColor": "Colore personalizzato", - "PE.Views.EditSlide.textDelay": "Ritardo", - "PE.Views.EditSlide.textDuplicateSlide": "Duplica diapositiva", - "PE.Views.EditSlide.textDuration": "Durata", - "PE.Views.EditSlide.textEffect": "Effetto", - "PE.Views.EditSlide.textFade": "Dissolvenza", - "PE.Views.EditSlide.textFill": "Riempimento", - "PE.Views.EditSlide.textHorizontalIn": "Avanti orizzontale", - "PE.Views.EditSlide.textHorizontalOut": "Indietro orizzontale", - "PE.Views.EditSlide.textLayout": "Layout", - "PE.Views.EditSlide.textLeft": "Sinistra", - "PE.Views.EditSlide.textNone": "Nessuno", - "PE.Views.EditSlide.textOpacity": "Opacità", - "PE.Views.EditSlide.textPush": "Spingi", - "PE.Views.EditSlide.textRemoveSlide": "Elimina diapositiva", - "PE.Views.EditSlide.textRight": "A destra", - "PE.Views.EditSlide.textSmoothly": "Liscio", - "PE.Views.EditSlide.textSplit": "Dividi", - "PE.Views.EditSlide.textStartOnClick": "Inizia al clic del mouse", - "PE.Views.EditSlide.textStyle": "Stile", - "PE.Views.EditSlide.textTheme": "Tema", - "PE.Views.EditSlide.textTop": "In alto", - "PE.Views.EditSlide.textTopLeft": "in alto a sinistra", - "PE.Views.EditSlide.textTopRight": "in alto a destra", - "PE.Views.EditSlide.textTransition": "Transizione", - "PE.Views.EditSlide.textType": "Tipo", - "PE.Views.EditSlide.textUnCover": "Scopri", - "PE.Views.EditSlide.textVerticalIn": "Avanti verticale", - "PE.Views.EditSlide.textVerticalOut": "Indietro verticale", - "PE.Views.EditSlide.textWedge": "Porzione", - "PE.Views.EditSlide.textWipe": "pulire", - "PE.Views.EditSlide.textZoom": "Zoom", - "PE.Views.EditSlide.textZoomIn": "Ingrandisci", - "PE.Views.EditSlide.textZoomOut": "Rimpicciolisci", - "PE.Views.EditSlide.textZoomRotate": "Zoom e rotazione", - "PE.Views.EditTable.textAddCustomColor": "Aggiungi colore personalizzato", - "PE.Views.EditTable.textAlign": "Allinea", - "PE.Views.EditTable.textAlignBottom": "Allinea in basso", - "PE.Views.EditTable.textAlignCenter": "Allinea al centro", - "PE.Views.EditTable.textAlignLeft": "Allinea a sinistra", - "PE.Views.EditTable.textAlignMiddle": "Allinea in mezzo", - "PE.Views.EditTable.textAlignRight": "Allinea a destra", - "PE.Views.EditTable.textAlignTop": "Allinea in alto", - "PE.Views.EditTable.textBack": "Indietro", - "PE.Views.EditTable.textBackward": "Sposta indietro", - "PE.Views.EditTable.textBandedColumn": "Unisci colonna", - "PE.Views.EditTable.textBandedRow": "Unisci cella", - "PE.Views.EditTable.textBorder": "Bordo", - "PE.Views.EditTable.textCellMargins": "Margini cella", - "PE.Views.EditTable.textColor": "Colore", - "PE.Views.EditTable.textCustomColor": "Colore personalizzato", - "PE.Views.EditTable.textFill": "Riempimento", - "PE.Views.EditTable.textFirstColumn": "Prima colonna", - "PE.Views.EditTable.textForward": "Sposta avanti", - "PE.Views.EditTable.textHeaderRow": "Riga di intestazione", - "PE.Views.EditTable.textLastColumn": "Ultima Colonna", - "PE.Views.EditTable.textOptions": "Opzioni", - "PE.Views.EditTable.textRemoveTable": "Elimina Tabella", - "PE.Views.EditTable.textReorder": "Riordina", - "PE.Views.EditTable.textSize": "Dimensione", - "PE.Views.EditTable.textStyle": "Stile", - "PE.Views.EditTable.textStyleOptions": "Opzioni stile", - "PE.Views.EditTable.textTableOptions": "Opzioni Tabella", - "PE.Views.EditTable.textToBackground": "Sposta in secondo piano", - "PE.Views.EditTable.textToForeground": "Porta in primo piano", - "PE.Views.EditTable.textTotalRow": "Riga del Totale", - "PE.Views.EditTable.txtDistribHor": "Distribuisci orizzontalmente", - "PE.Views.EditTable.txtDistribVert": "Distribuisci verticalmente", - "PE.Views.EditText.textAddCustomColor": "Aggiungi colore personalizzato", - "PE.Views.EditText.textAdditional": "Più...", - "PE.Views.EditText.textAdditionalFormat": "Formattazione aggiuntiva", - "PE.Views.EditText.textAfter": "Dopo", - "PE.Views.EditText.textAllCaps": "Tutto maiuscolo", - "PE.Views.EditText.textAutomatic": "Automatico", - "PE.Views.EditText.textBack": "Indietro", - "PE.Views.EditText.textBefore": "Prima", - "PE.Views.EditText.textBullets": "Elenchi puntati", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Colore personalizzato", - "PE.Views.EditText.textDblStrikethrough": "Barrato doppio", - "PE.Views.EditText.textDblSuperscript": "Apice", - "PE.Views.EditText.textFontColor": "Colore del carattere", - "PE.Views.EditText.textFontColors": "Colori del carattere", - "PE.Views.EditText.textFonts": "Caratteri", - "PE.Views.EditText.textFromText": "Distanza dal testo", - "PE.Views.EditText.textLetterSpacing": "Spaziatura del carattere", - "PE.Views.EditText.textLineSpacing": "Interlinea", - "PE.Views.EditText.textNone": "Nessuno", - "PE.Views.EditText.textNumbers": "Numeri", - "PE.Views.EditText.textSize": "Dimensione", - "PE.Views.EditText.textSmallCaps": "Maiuscoletto", - "PE.Views.EditText.textStrikethrough": "Barrato", - "PE.Views.EditText.textSubscript": "Pedice", - "PE.Views.Search.textCase": "Sensibile al maiuscolo/minuscolo", - "PE.Views.Search.textDone": "Fatto", - "PE.Views.Search.textFind": "Trova", - "PE.Views.Search.textFindAndReplace": "Trova e sostituisci", - "PE.Views.Search.textReplace": "Sostituisci", - "PE.Views.Search.textSearch": "Cerca", - "PE.Views.Settings. textComment": "Commento", - "PE.Views.Settings.mniSlideStandard": "Standard (4:3)", - "PE.Views.Settings.mniSlideWide": "Widescreen (16:9)", - "PE.Views.Settings.textAbout": "Informazioni su", - "PE.Views.Settings.textAddress": "Indirizzo", - "PE.Views.Settings.textApplication": "Applicazione", - "PE.Views.Settings.textApplicationSettings": "Impostazioni Applicazione", - "PE.Views.Settings.textAuthor": "Autore", - "PE.Views.Settings.textBack": "Indietro", - "PE.Views.Settings.textCentimeter": "Centimetro", - "PE.Views.Settings.textCollaboration": "Collaborazione", - "PE.Views.Settings.textColorSchemes": "Combinazioni di colore", - "PE.Views.Settings.textCreated": "Creato", - "PE.Views.Settings.textCreateDate": "Data di creazione", - "PE.Views.Settings.textDisableAll": "Disabilita tutto", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Disabilita tutte le macro con notifica", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Disabilita tutte le macro senza notifica", - "PE.Views.Settings.textDone": "Fatto", - "PE.Views.Settings.textDownload": "Scarica", - "PE.Views.Settings.textDownloadAs": "Scarica come...", - "PE.Views.Settings.textEditPresent": "Modifica presentazione", - "PE.Views.Settings.textEmail": "email", - "PE.Views.Settings.textEnableAll": "Abilita tutto", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Abilita tutte le macro senza notifica", - "PE.Views.Settings.textFind": "Trova", - "PE.Views.Settings.textFindAndReplace": "Trova e sostituisci", - "PE.Views.Settings.textHelp": "Guida", - "PE.Views.Settings.textInch": "Pollice", - "PE.Views.Settings.textLastModified": "Ultima modifica", - "PE.Views.Settings.textLastModifiedBy": "Ultima modifica di", - "PE.Views.Settings.textLoading": "Caricamento in corso...", - "PE.Views.Settings.textLocation": "Posizione", - "PE.Views.Settings.textMacrosSettings": "Impostazioni macro", - "PE.Views.Settings.textOwner": "Proprietario", - "PE.Views.Settings.textPoint": "Punto", - "PE.Views.Settings.textPoweredBy": "Con tecnologia", - "PE.Views.Settings.textPresentInfo": "Informazioni Presentazione", - "PE.Views.Settings.textPresentSettings": "Impostazioni Presentazione", - "PE.Views.Settings.textPresentSetup": "Impostazione Presentazione", - "PE.Views.Settings.textPresentTitle": "Titolo presentazione", - "PE.Views.Settings.textPrint": "Stampa", - "PE.Views.Settings.textSettings": "Impostazioni", - "PE.Views.Settings.textShowNotification": "Mostra notifica", - "PE.Views.Settings.textSlideSize": "Dimensione diapositiva", - "PE.Views.Settings.textSpellcheck": "Controllo ortografico", - "PE.Views.Settings.textSubject": "Oggetto", - "PE.Views.Settings.textTel": "Tel.", - "PE.Views.Settings.textTitle": "Titolo", - "PE.Views.Settings.textUnitOfMeasurement": "Unità di misura", - "PE.Views.Settings.textUploaded": "Caricato", - "PE.Views.Settings.textVersion": "Versione", - "PE.Views.Settings.unknownText": "Sconosciuto", - "PE.Views.Toolbar.textBack": "Indietro" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/ko.json b/apps/presentationeditor/mobile/locale/ko.json index 006b26ca7..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/ko.json +++ b/apps/presentationeditor/mobile/locale/ko.json @@ -1,511 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "답장 추가", - "Common.Controllers.Collaboration.textCancel": "취소", - "Common.Controllers.Collaboration.textDeleteComment": "주석삭제", - "Common.Controllers.Collaboration.textDeleteReply": "답글 삭제", - "Common.Controllers.Collaboration.textDone": "완료", - "Common.Controllers.Collaboration.textEdit": "수정", - "Common.Controllers.Collaboration.textMessageDeleteComment": "정말로 삭제 하시겠습니까", - "Common.Controllers.Collaboration.textMessageDeleteReply": "정말로 삭제 하시겠습니까", - "Common.UI.ThemeColorPalette.textCustomColors": "사용자 정의 색상", - "Common.UI.ThemeColorPalette.textStandartColors": "표준 색상", - "Common.UI.ThemeColorPalette.textThemeColors": "테마 색", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "답장 추가", - "Common.Views.Collaboration.textBack": "뒤로", - "Common.Views.Collaboration.textCancel": "취소", - "Common.Views.Collaboration.textCollaboration": "합치기", - "Common.Views.Collaboration.textDone": "완료", - "Common.Views.Collaboration.textEditReply": "답변편집", - "Common.Views.Collaboration.textEditСomment": "주석 편집", - "PE.Controllers.AddContainer.textImage": "이미지", - "PE.Controllers.AddContainer.textLink": "링크", - "PE.Controllers.AddContainer.textShape": "Shape", - "PE.Controllers.AddContainer.textSlide": "슬라이드", - "PE.Controllers.AddContainer.textTable": "테이블", - "PE.Controllers.AddImage.textEmptyImgUrl": "이미지 URL을 지정해야합니다.", - "PE.Controllers.AddImage.txtNotUrl": "이 필드는 'http://www.example.com'형식의 URL이어야합니다.", - "PE.Controllers.AddLink.textDefault": "선택한 텍스트", - "PE.Controllers.AddLink.textExternalLink": "외부 링크", - "PE.Controllers.AddLink.textFirst": "First Slide", - "PE.Controllers.AddLink.textInternalLink": "이 프리젠 테이션에서 슬라이드하기", - "PE.Controllers.AddLink.textLast": "마지막 슬라이드", - "PE.Controllers.AddLink.textNext": "다음 슬라이드", - "PE.Controllers.AddLink.textPrev": "이전 슬라이드", - "PE.Controllers.AddLink.textSlide": "슬라이드", - "PE.Controllers.AddLink.txtNotUrl": "이 필드는 'http://www.example.com'형식의 URL이어야합니다.", - "PE.Controllers.AddOther.textCancel": "취소", - "PE.Controllers.AddOther.textContinue": "계속", - "PE.Controllers.AddOther.textDelete": "삭제", - "PE.Controllers.AddOther.textDeleteDraft": "정말로 삭제 하시겠습니까", - "PE.Controllers.AddTable.textCancel": "취소", - "PE.Controllers.AddTable.textColumns": "열", - "PE.Controllers.AddTable.textRows": "Rows", - "PE.Controllers.AddTable.textTableSize": "표 크기", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "복사, 자르기 및 붙여 넣기", - "PE.Controllers.DocumentHolder.menuAddComment": "메모 추가", - "PE.Controllers.DocumentHolder.menuAddLink": "링크 추가", - "PE.Controllers.DocumentHolder.menuCopy": "복사", - "PE.Controllers.DocumentHolder.menuCut": "잘라 내기", - "PE.Controllers.DocumentHolder.menuDelete": "삭제", - "PE.Controllers.DocumentHolder.menuEdit": "편집", - "PE.Controllers.DocumentHolder.menuMore": "More", - "PE.Controllers.DocumentHolder.menuOpenLink": "링크 열기", - "PE.Controllers.DocumentHolder.menuPaste": "붙여 넣기", - "PE.Controllers.DocumentHolder.sheetCancel": "취소", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "복사, 자르기 및 붙여 넣기", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "다시 표시하지 않음", - "PE.Controllers.EditContainer.textChart": "차트", - "PE.Controllers.EditContainer.textHyperlink": "하이퍼 링크", - "PE.Controllers.EditContainer.textImage": "이미지", - "PE.Controllers.EditContainer.textSettings": "설정", - "PE.Controllers.EditContainer.textShape": "Shape", - "PE.Controllers.EditContainer.textSlide": "슬라이드", - "PE.Controllers.EditContainer.textTable": "테이블", - "PE.Controllers.EditContainer.textText": "텍스트", - "PE.Controllers.EditImage.textEmptyImgUrl": "이미지 URL을 지정해야합니다.", - "PE.Controllers.EditImage.txtNotUrl": "이 필드는 'http://www.example.com'형식의 URL이어야합니다.", - "PE.Controllers.EditLink.textDefault": "선택한 텍스트", - "PE.Controllers.EditLink.textExternalLink": "외부 링크", - "PE.Controllers.EditLink.textFirst": "First Slide", - "PE.Controllers.EditLink.textInternalLink": "이 프레젠테이션 슬라이드", - "PE.Controllers.EditLink.textLast": "마지막 슬라이드", - "PE.Controllers.EditLink.textNext": "다음 슬라이드", - "PE.Controllers.EditLink.textPrev": "이전 슬라이드", - "PE.Controllers.EditLink.textSlide": "슬라이드", - "PE.Controllers.EditLink.txtNotUrl": "이 필드는 'http://www.example.com'형식의 URL이어야합니다.", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Auto", - "PE.Controllers.EditText.textFonts": "글꼴", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "비밀번호를 입력하십시오 :", - "PE.Controllers.Main.advDRMOptions": "보호 된 파일", - "PE.Controllers.Main.advDRMPassword": "Password", - "PE.Controllers.Main.applyChangesTextText": "데이터로드 중 ...", - "PE.Controllers.Main.applyChangesTitleText": "데이터로드 중", - "PE.Controllers.Main.closeButtonText": "파일 닫기", - "PE.Controllers.Main.convertationTimeoutText": "전환 시간 초과를 초과했습니다.", - "PE.Controllers.Main.criticalErrorExtText": "문서 목록으로 돌아가려면 '확인'을 누르십시오.", - "PE.Controllers.Main.criticalErrorTitle": "오류", - "PE.Controllers.Main.downloadErrorText": "다운로드하지 못했습니다.", - "PE.Controllers.Main.downloadTextText": "문서 다운로드 중 ...", - "PE.Controllers.Main.downloadTitleText": "문서 다운로드 중", - "PE.Controllers.Main.errorBadImageUrl": "이미지 URL이 잘못되었습니다.", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "서버 연결이 끊어졌습니다. 더 이상 편집 할 수 없습니다.", - "PE.Controllers.Main.errorConnectToServer": "문서를 저장할 수 없습니다. 연결 설정을 확인하거나 관리자에게 문의하십시오.
            '확인'버튼을 클릭하면 문서를 다운로드하라는 메시지가 나타납니다.", - "PE.Controllers.Main.errorDatabaseConnection": "외부 오류입니다.
            데이터베이스 연결 오류입니다. 지원팀에 문의하십시오.", - "PE.Controllers.Main.errorDataEncrypted": "암호화 된 변경 사항은", - "PE.Controllers.Main.errorDataRange": "잘못된 데이터 범위입니다.", - "PE.Controllers.Main.errorDefaultMessage": "오류 코드 : % 1", - "PE.Controllers.Main.errorEditingDownloadas": "오류가 발생했습니다.", - "PE.Controllers.Main.errorFilePassProtect": "이 문서는 암호로 보호되어있어 열 수 없습니다.", - "PE.Controllers.Main.errorKeyEncrypt": "알 수없는 키 설명자", - "PE.Controllers.Main.errorKeyExpire": "키 설명자가 만료되었습니다", - "PE.Controllers.Main.errorProcessSaveResult": "저장이 실패했습니다.", - "PE.Controllers.Main.errorServerVersion": "에디터 버전이 업데이트되었습니다. 페이지가 다시로드되어 변경 사항이 적용됩니다.", - "PE.Controllers.Main.errorStockChart": "잘못된 행 순서. 주식형 차트를 작성하려면 시트에 데이터를 다음과 같은 순서로 배치하십시오 :
            개시 가격, 최대 가격, 최소 가격, 마감 가격.", - "PE.Controllers.Main.errorUpdateVersion": "파일 버전이 변경되었습니다. 페이지가 다시로드됩니다.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "인터넷 연결이 복구 되었으며 파일에 수정 사항이 발생되었습니다. 작업을 계속 하시기 전에 반드시 기존의 파일을 다운로드하거나 내용을 복사해서 작업 내용을 잃어 버리는 일이 없도록 한 후에 이 페이지를 새로 고침(reload) 해 주시기 바랍니다.", - "PE.Controllers.Main.errorUserDrop": "파일에 지금 액세스 할 수 없습니다.", - "PE.Controllers.Main.errorUsersExceed": "사용자 수가 초과되었습니다.", - "PE.Controllers.Main.errorViewerDisconnect": "연결이 끊어졌습니다. 문서를 볼 수는

            하지만 연결이 복원 될 때까지 다운로드 할 수 없습니다.", - "PE.Controllers.Main.leavePageText": "이 문서에 변경 사항을 저장하지 않았습니다.이 페이지에 머물러 있으면 문서의 자동 저장을 기다릴 수 있습니다. 저장하지 않은 모든 변경 사항을 취소하려면 '이 페이지를 남겨주세요'를 클릭하십시오.", - "PE.Controllers.Main.loadFontsTextText": "데이터로드 중 ...", - "PE.Controllers.Main.loadFontsTitleText": "데이터로드 중", - "PE.Controllers.Main.loadFontTextText": "데이터로드 중 ...", - "PE.Controllers.Main.loadFontTitleText": "데이터로드 중", - "PE.Controllers.Main.loadImagesTextText": "이미지로드 중 ...", - "PE.Controllers.Main.loadImagesTitleText": "이미지로드 중", - "PE.Controllers.Main.loadImageTextText": "이미지로드 중 ...", - "PE.Controllers.Main.loadImageTitleText": "이미지로드 중", - "PE.Controllers.Main.loadingDocumentTextText": "프레젠테이션로드 중 ...", - "PE.Controllers.Main.loadingDocumentTitleText": "프레젠테이션로드 중", - "PE.Controllers.Main.loadThemeTextText": "테마로드 중 ...", - "PE.Controllers.Main.loadThemeTitleText": "테마로드 중", - "PE.Controllers.Main.notcriticalErrorTitle": "경고", - "PE.Controllers.Main.openErrorText": "파일을 여는 동안 오류가 발생했습니다.", - "PE.Controllers.Main.openTextText": "문서 열기 중 ...", - "PE.Controllers.Main.openTitleText": "문서 열기", - "PE.Controllers.Main.printTextText": "문서 인쇄 중 ...", - "PE.Controllers.Main.printTitleText": "문서 인쇄 중", - "PE.Controllers.Main.reloadButtonText": "페이지 새로 고침", - "PE.Controllers.Main.requestEditFailedMessageText": "누군가이 문서를 지금 편집하고 있습니다. 나중에 다시 시도하십시오.", - "PE.Controllers.Main.requestEditFailedTitleText": "액세스가 거부되었습니다", - "PE.Controllers.Main.saveErrorText": "파일을 저장하는 동안 오류가 발생했습니다.", - "PE.Controllers.Main.savePreparingText": "저장 준비 중", - "PE.Controllers.Main.savePreparingTitle": "저장 준비 중입니다. 잠시 기다려주십시오 ...", - "PE.Controllers.Main.saveTextText": "문서 저장 중 ...", - "PE.Controllers.Main.saveTitleText": "문서 저장 중", - "PE.Controllers.Main.splitDividerErrorText": "행 수는 % 1의 제수 여야합니다", - "PE.Controllers.Main.splitMaxColsErrorText": "열 수가 % 1보다 작아야합니다", - "PE.Controllers.Main.splitMaxRowsErrorText": "행 수가 % 1보다 적어야합니다.", - "PE.Controllers.Main.textAnonymous": "익명", - "PE.Controllers.Main.textBack": "뒤로", - "PE.Controllers.Main.textBuyNow": "웹 사이트 방문", - "PE.Controllers.Main.textCancel": "취소", - "PE.Controllers.Main.textClose": "닫기", - "PE.Controllers.Main.textCloseTip": "팁을 닫으려면 살짝 누르십시오.", - "PE.Controllers.Main.textContactUs": "영업 부서", - "PE.Controllers.Main.textDone": "완료", - "PE.Controllers.Main.textLoadingDocument": "프레젠테이션로드 중", - "PE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE 연결 제한", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPassword": "Password", - "PE.Controllers.Main.textPreloader": "로드 중 ...", - "PE.Controllers.Main.textShape": "Shape", - "PE.Controllers.Main.textTryUndoRedo": "빠른 공동 편집 모드에서 실행 취소 / 다시 실행 기능을 사용할 수 없습니다.", - "PE.Controllers.Main.textUsername": "사용자 이름", - "PE.Controllers.Main.titleLicenseExp": "라이센스 만료", - "PE.Controllers.Main.titleServerVersion": "편집기가 업데이트되었습니다", - "PE.Controllers.Main.txtArt": "여기에 귀하의 텍스트", - "PE.Controllers.Main.txtBasicShapes": "기본 도형", - "PE.Controllers.Main.txtButtons": "버튼", - "PE.Controllers.Main.txtCallouts": "콜 아웃", - "PE.Controllers.Main.txtCharts": "차트", - "PE.Controllers.Main.txtClipArt": "클립 아트", - "PE.Controllers.Main.txtDateTime": "날짜 및 시간", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "차트 제목", - "PE.Controllers.Main.txtEditingMode": "편집 모드 설정 ...", - "PE.Controllers.Main.txtFiguredArrows": "그림 화살", - "PE.Controllers.Main.txtFooter": "Footer", - "PE.Controllers.Main.txtHeader": "머리글", - "PE.Controllers.Main.txtImage": "이미지", - "PE.Controllers.Main.txtLines": "Lines", - "PE.Controllers.Main.txtMath": "수학", - "PE.Controllers.Main.txtMedia": "Media", - "PE.Controllers.Main.txtNeedSynchronize": "업데이트가 있습니다.", - "PE.Controllers.Main.txtPicture": "그림", - "PE.Controllers.Main.txtRectangles": "직사각형", - "PE.Controllers.Main.txtSeries": "Series", - "PE.Controllers.Main.txtSldLtTBlank": "공백", - "PE.Controllers.Main.txtSldLtTChart": "차트", - "PE.Controllers.Main.txtSldLtTChartAndTx": "차트 및 텍스트", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "클립 아트 및 텍스트", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "클립 아트 및 세로 텍스트", - "PE.Controllers.Main.txtSldLtTCust": "사용자 지정", - "PE.Controllers.Main.txtSldLtTDgm": "다이어그램", - "PE.Controllers.Main.txtSldLtTFourObj": "네 개의 개체", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "미디어 및 텍스트", - "PE.Controllers.Main.txtSldLtTObj": "제목 및 개체", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "개체 및 두 개체", - "PE.Controllers.Main.txtSldLtTObjAndTx": "개체 및 텍스트", - "PE.Controllers.Main.txtSldLtTObjOnly": "개체", - "PE.Controllers.Main.txtSldLtTObjOverTx": "텍스트 위에 개체", - "PE.Controllers.Main.txtSldLtTObjTx": "제목, 개체 및 캡션", - "PE.Controllers.Main.txtSldLtTPicTx": "그림 및 캡션", - "PE.Controllers.Main.txtSldLtTSecHead": "섹션 헤더", - "PE.Controllers.Main.txtSldLtTTbl": "테이블", - "PE.Controllers.Main.txtSldLtTTitle": "제목", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Title Only", - "PE.Controllers.Main.txtSldLtTTwoColTx": "두 개의 열 텍스트", - "PE.Controllers.Main.txtSldLtTTwoObj": "두 개체", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "두 개체 및 개체", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "두 개체 및 텍스트", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "텍스트 위에 두 개체", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "두 텍스트 및 두 개체", - "PE.Controllers.Main.txtSldLtTTx": "텍스트", - "PE.Controllers.Main.txtSldLtTTxAndChart": "텍스트 및 차트", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "텍스트 및 클립 아트", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "텍스트 및 미디어", - "PE.Controllers.Main.txtSldLtTTxAndObj": "텍스트 및 개체", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "텍스트 및 두 개의 개체", - "PE.Controllers.Main.txtSldLtTTxOverObj": "텍스트 위에 개체", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "세로 제목 및 텍스트", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "차트의 세로 제목 및 텍스트", - "PE.Controllers.Main.txtSldLtTVertTx": "세로 텍스트", - "PE.Controllers.Main.txtSlideNumber": "슬라이드 번호", - "PE.Controllers.Main.txtSlideSubtitle": "슬라이드 부제목", - "PE.Controllers.Main.txtSlideText": "슬라이드 텍스트", - "PE.Controllers.Main.txtSlideTitle": "슬라이드 제목", - "PE.Controllers.Main.txtStarsRibbons": "별 & 리본", - "PE.Controllers.Main.txtXAxis": "X 축", - "PE.Controllers.Main.txtYAxis": "Y 축", - "PE.Controllers.Main.unknownErrorText": "알 수없는 오류.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "사용중인 브라우저가 지원되지 않습니다.", - "PE.Controllers.Main.uploadImageExtMessage": "알 수없는 이미지 형식입니다.", - "PE.Controllers.Main.uploadImageFileCountMessage": "이미지가 업로드되지 않았습니다.", - "PE.Controllers.Main.uploadImageSizeMessage": "최대 이미지 크기 제한을 초과했습니다.", - "PE.Controllers.Main.uploadImageTextText": "이미지 업로드 중 ...", - "PE.Controllers.Main.uploadImageTitleText": "이미지 업로드 중", - "PE.Controllers.Main.warnLicenseExp": "귀하의 라이센스가 만료되었습니다.
            라이센스를 업데이트하고 페이지를 새로 고침하십시오.", - "PE.Controllers.Main.warnNoLicense": "이 버전의 %1 편집자는 문서 서버에 대한 동시 연결에 특정 제한 사항이 있습니다.
            더 많은 정보가 필요하면 현재 라이센스를 업그레이드하거나 상업용 라이센스를 구입하십시오.", - "PE.Controllers.Main.warnNoLicenseUsers": "이 버전의 %1 편집자는 문서 서버에 대한 동시 연결에 특정 제한 사항이 있습니다.
            더 많은 정보가 필요하면 현재 라이센스를 업그레이드하거나 상업용 라이센스를 구입하십시오.", - "PE.Controllers.Main.warnProcessRightsChange": "파일 편집 권한이 거부되었습니다.", - "PE.Controllers.Search.textNoTextFound": "텍스트를 찾을 수 없습니다", - "PE.Controllers.Settings.notcriticalErrorTitle": "경고", - "PE.Controllers.Settings.txtLoading": "로드 중 ...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "이 문서에 변경 사항을 저장하지 않았습니다.이 페이지에 머물러 있으면 문서의 자동 저장을 기다릴 수 있습니다. 저장하지 않은 모든 변경 사항을 취소하려면 '이 페이지 남겨두기'를 클릭하십시오.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "응용 프로그램을 종료합니다", - "PE.Controllers.Toolbar.leaveButtonText": "이 페이지를 남겨주세요", - "PE.Controllers.Toolbar.stayButtonText": "이 페이지에 머물러 라.", - "PE.Views.AddImage.textAddress": "주소", - "PE.Views.AddImage.textBack": "뒤로", - "PE.Views.AddImage.textFromLibrary": "그림 라이브러리에서", - "PE.Views.AddImage.textFromURL": "URL에서 그림", - "PE.Views.AddImage.textImageURL": "이미지 URL", - "PE.Views.AddImage.textInsertImage": "이미지 삽입", - "PE.Views.AddImage.textLinkSettings": "링크 설정", - "PE.Views.AddLink.textBack": "뒤로", - "PE.Views.AddLink.textDisplay": "표시", - "PE.Views.AddLink.textExternalLink": "외부 링크", - "PE.Views.AddLink.textFirst": "First Slide", - "PE.Views.AddLink.textInsert": "삽입", - "PE.Views.AddLink.textInternalLink": "이 프리젠 테이션에서 슬라이드하기", - "PE.Views.AddLink.textLast": "마지막 슬라이드", - "PE.Views.AddLink.textLink": "링크", - "PE.Views.AddLink.textLinkSlide": "링크 대상", - "PE.Views.AddLink.textLinkType": "링크 유형", - "PE.Views.AddLink.textNext": "다음 슬라이드", - "PE.Views.AddLink.textNumber": "슬라이드 번호", - "PE.Views.AddLink.textPrev": "이전 슬라이드", - "PE.Views.AddLink.textTip": "화면 팁", - "PE.Views.AddOther.textAddComment": "메모 추가", - "PE.Views.AddOther.textBack": "뒤로", - "PE.Views.AddOther.textComment": "댓글", - "PE.Views.AddOther.textDisplay": "표시", - "PE.Views.AddOther.textDone": "완료", - "PE.Views.AddOther.textExternalLink": "외부 링크", - "PE.Views.AddOther.textFirst": "첫 번째 슬라이드", - "PE.Views.AddOther.textInsert": "삽입", - "PE.Views.EditChart.textAddCustomColor": "사용자 색상 추가", - "PE.Views.EditChart.textAlign": "정렬", - "PE.Views.EditChart.textAlignBottom": "아래쪽 정렬", - "PE.Views.EditChart.textAlignCenter": "정렬 센터", - "PE.Views.EditChart.textAlignLeft": "왼쪽 정렬", - "PE.Views.EditChart.textAlignMiddle": "가운데 맞춤", - "PE.Views.EditChart.textAlignRight": "오른쪽 정렬", - "PE.Views.EditChart.textAlignTop": "정렬", - "PE.Views.EditChart.textBack": "뒤로", - "PE.Views.EditChart.textBackward": "뒤로 이동", - "PE.Views.EditChart.textBorder": "테두리", - "PE.Views.EditChart.textColor": "Color", - "PE.Views.EditChart.textCustomColor": "사용자 정의 색상", - "PE.Views.EditChart.textFill": "채우기", - "PE.Views.EditChart.textForward": "앞으로 이동", - "PE.Views.EditChart.textRemoveChart": "차트 제거", - "PE.Views.EditChart.textReorder": "재정렬", - "PE.Views.EditChart.textSize": "크기", - "PE.Views.EditChart.textStyle": "스타일", - "PE.Views.EditChart.textToBackground": "배경으로 보내기", - "PE.Views.EditChart.textToForeground": "포 그라운드로 가져 오기", - "PE.Views.EditChart.textType": "유형", - "PE.Views.EditChart.txtDistribHor": "가로로 배포", - "PE.Views.EditChart.txtDistribVert": "수직 분배", - "PE.Views.EditImage.textAddress": "주소", - "PE.Views.EditImage.textAlign": "정렬", - "PE.Views.EditImage.textAlignBottom": "아래쪽 정렬", - "PE.Views.EditImage.textAlignCenter": "정렬 센터", - "PE.Views.EditImage.textAlignLeft": "왼쪽 정렬", - "PE.Views.EditImage.textAlignMiddle": "가운데 정렬", - "PE.Views.EditImage.textAlignRight": "오른쪽 정렬", - "PE.Views.EditImage.textAlignTop": "정렬", - "PE.Views.EditImage.textBack": "뒤로", - "PE.Views.EditImage.textBackward": "뒤로 이동", - "PE.Views.EditImage.textDefault": "기본 크기", - "PE.Views.EditImage.textForward": "앞으로 이동", - "PE.Views.EditImage.textFromLibrary": "그림 라이브러리에서", - "PE.Views.EditImage.textFromURL": "URL에서 그림", - "PE.Views.EditImage.textImageURL": "이미지 URL", - "PE.Views.EditImage.textLinkSettings": "링크 설정", - "PE.Views.EditImage.textRemove": "이미지 제거", - "PE.Views.EditImage.textReorder": "재정렬", - "PE.Views.EditImage.textReplace": "바꾸기", - "PE.Views.EditImage.textReplaceImg": "이미지 바꾸기", - "PE.Views.EditImage.textToBackground": "배경에 보내기", - "PE.Views.EditImage.textToForeground": "포 그라운드로 가져 오기", - "PE.Views.EditImage.txtDistribHor": "가로로 배포", - "PE.Views.EditImage.txtDistribVert": "수직 분배", - "PE.Views.EditLink.textBack": "뒤로", - "PE.Views.EditLink.textDisplay": "표시", - "PE.Views.EditLink.textEdit": "링크 편집", - "PE.Views.EditLink.textExternalLink": "외부 링크", - "PE.Views.EditLink.textFirst": "First Slide", - "PE.Views.EditLink.textInternalLink": "이 프리젠 테이션에서 슬라이드하기", - "PE.Views.EditLink.textLast": "마지막 슬라이드", - "PE.Views.EditLink.textLink": "링크", - "PE.Views.EditLink.textLinkSlide": "링크 대상", - "PE.Views.EditLink.textLinkType": "링크 유형", - "PE.Views.EditLink.textNext": "다음 슬라이드", - "PE.Views.EditLink.textNumber": "슬라이드 번호", - "PE.Views.EditLink.textPrev": "이전 슬라이드", - "PE.Views.EditLink.textRemove": "링크 제거", - "PE.Views.EditLink.textTip": "화면 팁", - "PE.Views.EditShape.textAddCustomColor": "사용자 색상 추가", - "PE.Views.EditShape.textAlign": "정렬", - "PE.Views.EditShape.textAlignBottom": "아래쪽 정렬", - "PE.Views.EditShape.textAlignCenter": "정렬 중심", - "PE.Views.EditShape.textAlignLeft": "왼쪽 정렬", - "PE.Views.EditShape.textAlignMiddle": "가운데 정렬", - "PE.Views.EditShape.textAlignRight": "오른쪽 정렬", - "PE.Views.EditShape.textAlignTop": "정렬", - "PE.Views.EditShape.textBack": "뒤로", - "PE.Views.EditShape.textBackward": "뒤로 이동", - "PE.Views.EditShape.textBorder": "테두리", - "PE.Views.EditShape.textColor": "Color", - "PE.Views.EditShape.textCustomColor": "사용자 색상", - "PE.Views.EditShape.textEffects": "효과", - "PE.Views.EditShape.textFill": "채우기", - "PE.Views.EditShape.textForward": "앞으로 이동", - "PE.Views.EditShape.textOpacity": "불투명도", - "PE.Views.EditShape.textRemoveShape": "도형 제거", - "PE.Views.EditShape.textReorder": "재정렬", - "PE.Views.EditShape.textReplace": "바꾸기", - "PE.Views.EditShape.textSize": "크기", - "PE.Views.EditShape.textStyle": "스타일", - "PE.Views.EditShape.textToBackground": "배경에 보내기", - "PE.Views.EditShape.textToForeground": "포 그라운드로 가져 오기", - "PE.Views.EditShape.txtDistribHor": "가로로 분포", - "PE.Views.EditShape.txtDistribVert": "수직 배분", - "PE.Views.EditSlide.textAddCustomColor": "사용자 색상 추가", - "PE.Views.EditSlide.textApplyAll": "모든 슬라이드에 적용", - "PE.Views.EditSlide.textBack": "뒤로", - "PE.Views.EditSlide.textBlack": "검정색을 통해", - "PE.Views.EditSlide.textBottom": "Bottom", - "PE.Views.EditSlide.textBottomLeft": "왼쪽 하단", - "PE.Views.EditSlide.textBottomRight": "Bottom-Right", - "PE.Views.EditSlide.textClock": "시계", - "PE.Views.EditSlide.textClockwise": "시계 방향", - "PE.Views.EditSlide.textColor": "Color", - "PE.Views.EditSlide.textCounterclockwise": "반 시계 방향", - "PE.Views.EditSlide.textCover": "표지", - "PE.Views.EditSlide.textCustomColor": "사용자 색상", - "PE.Views.EditSlide.textDelay": "지연", - "PE.Views.EditSlide.textDuplicateSlide": "중복 슬라이드", - "PE.Views.EditSlide.textDuration": "재생 시간", - "PE.Views.EditSlide.textEffect": "효과", - "PE.Views.EditSlide.textFade": "페이드", - "PE.Views.EditSlide.textFill": "채우기", - "PE.Views.EditSlide.textHorizontalIn": "Horizontal In", - "PE.Views.EditSlide.textHorizontalOut": "수평 출력", - "PE.Views.EditSlide.textLayout": "Layout", - "PE.Views.EditSlide.textLeft": "왼쪽", - "PE.Views.EditSlide.textNone": "없음", - "PE.Views.EditSlide.textOpacity": "불투명도", - "PE.Views.EditSlide.textPush": "푸시", - "PE.Views.EditSlide.textRemoveSlide": "슬라이드 삭제", - "PE.Views.EditSlide.textRight": "오른쪽", - "PE.Views.EditSlide.textSmoothly": "부드럽게", - "PE.Views.EditSlide.textSplit": "분할", - "PE.Views.EditSlide.textStartOnClick": "시작시 클릭", - "PE.Views.EditSlide.textStyle": "스타일", - "PE.Views.EditSlide.textTheme": "테마", - "PE.Views.EditSlide.textTop": "Top", - "PE.Views.EditSlide.textTopLeft": "왼쪽 위", - "PE.Views.EditSlide.textTopRight": "오른쪽 상단", - "PE.Views.EditSlide.textTransition": "전환", - "PE.Views.EditSlide.textType": "유형", - "PE.Views.EditSlide.textUnCover": "UnCover", - "PE.Views.EditSlide.textVerticalIn": "Vertical In", - "PE.Views.EditSlide.textVerticalOut": "수직 출력", - "PE.Views.EditSlide.textWedge": "Wedge", - "PE.Views.EditSlide.textWipe": "지우기", - "PE.Views.EditSlide.textZoom": "확대 / 축소", - "PE.Views.EditSlide.textZoomIn": "확대", - "PE.Views.EditSlide.textZoomOut": "축소", - "PE.Views.EditSlide.textZoomRotate": "확대 / 축소 및 회전", - "PE.Views.EditTable.textAddCustomColor": "사용자 색상 추가", - "PE.Views.EditTable.textAlign": "정렬", - "PE.Views.EditTable.textAlignBottom": "아래쪽 정렬", - "PE.Views.EditTable.textAlignCenter": "정렬 센터", - "PE.Views.EditTable.textAlignLeft": "왼쪽 정렬", - "PE.Views.EditTable.textAlignMiddle": "가운데 정렬", - "PE.Views.EditTable.textAlignRight": "오른쪽 정렬", - "PE.Views.EditTable.textAlignTop": "정렬", - "PE.Views.EditTable.textBack": "뒤로", - "PE.Views.EditTable.textBackward": "뒤로 이동", - "PE.Views.EditTable.textBandedColumn": "줄무늬 형 열", - "PE.Views.EditTable.textBandedRow": "줄무늬 행", - "PE.Views.EditTable.textBorder": "테두리", - "PE.Views.EditTable.textCellMargins": "셀 여백", - "PE.Views.EditTable.textColor": "Color", - "PE.Views.EditTable.textCustomColor": "사용자 색상", - "PE.Views.EditTable.textFill": "채우기", - "PE.Views.EditTable.textFirstColumn": "첫 번째 열", - "PE.Views.EditTable.textForward": "앞으로 이동", - "PE.Views.EditTable.textHeaderRow": "머리글 행", - "PE.Views.EditTable.textLastColumn": "마지막 열", - "PE.Views.EditTable.textOptions": "옵션", - "PE.Views.EditTable.textRemoveTable": "테이블 제거", - "PE.Views.EditTable.textReorder": "재정렬", - "PE.Views.EditTable.textSize": "크기", - "PE.Views.EditTable.textStyle": "스타일", - "PE.Views.EditTable.textStyleOptions": "스타일 옵션", - "PE.Views.EditTable.textTableOptions": "테이블 옵션", - "PE.Views.EditTable.textToBackground": "배경에 보내기", - "PE.Views.EditTable.textToForeground": "포 그라운드로 가져 오기", - "PE.Views.EditTable.textTotalRow": "총 행", - "PE.Views.EditTable.txtDistribHor": "가로로 배포", - "PE.Views.EditTable.txtDistribVert": "Vertically Distribute", - "PE.Views.EditText.textAddCustomColor": "사용자 색상 추가", - "PE.Views.EditText.textAdditional": "추가", - "PE.Views.EditText.textAdditionalFormat": "추가 서식 지정", - "PE.Views.EditText.textAfter": "이후", - "PE.Views.EditText.textAllCaps": "모든 대문자", - "PE.Views.EditText.textAutomatic": "자동", - "PE.Views.EditText.textBack": "뒤로", - "PE.Views.EditText.textBefore": "이전", - "PE.Views.EditText.textBullets": "글 머리 기호", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCustomColor": "사용자 색상", - "PE.Views.EditText.textDblStrikethrough": "Double Strikethrough", - "PE.Views.EditText.textDblSuperscript": "위첨자", - "PE.Views.EditText.textFontColor": "글꼴 색", - "PE.Views.EditText.textFontColors": "글꼴 색", - "PE.Views.EditText.textFonts": "글꼴", - "PE.Views.EditText.textFromText": "텍스트로부터의 거리", - "PE.Views.EditText.textLetterSpacing": "문자 간격", - "PE.Views.EditText.textLineSpacing": "줄 간격", - "PE.Views.EditText.textNone": "없음", - "PE.Views.EditText.textNumbers": "숫자", - "PE.Views.EditText.textSize": "크기", - "PE.Views.EditText.textSmallCaps": "작은 대문자", - "PE.Views.EditText.textStrikethrough": "취소 선", - "PE.Views.EditText.textSubscript": "아래 첨자", - "PE.Views.Search.textCase": "대소문자 구별", - "PE.Views.Search.textDone": "완료", - "PE.Views.Search.textFind": "찾기", - "PE.Views.Search.textFindAndReplace": "찾기 및 바꾸기", - "PE.Views.Search.textSearch": "검색", - "PE.Views.Settings. textComment": "댓글", - "PE.Views.Settings.mniSlideStandard": "표준 (4 : 3)", - "PE.Views.Settings.mniSlideWide": "와이드 스크린 (16 : 9)", - "PE.Views.Settings.textAbout": "정보", - "PE.Views.Settings.textAddress": "주소", - "PE.Views.Settings.textApplication": "어플리케이션", - "PE.Views.Settings.textApplicationSettings": "어플리케이션 설정", - "PE.Views.Settings.textAuthor": "저자", - "PE.Views.Settings.textBack": "뒤로", - "PE.Views.Settings.textCentimeter": "센티미터", - "PE.Views.Settings.textCollaboration": "합치기", - "PE.Views.Settings.textColorSchemes": "색 구성표", - "PE.Views.Settings.textCreated": "생성", - "PE.Views.Settings.textCreateDate": "생성 날짜", - "PE.Views.Settings.textDisableAll": "모두 비활성화", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "모든 매크로를", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "모든 매크로 비활성화", - "PE.Views.Settings.textDone": "완료", - "PE.Views.Settings.textDownload": "다운로드", - "PE.Views.Settings.textDownloadAs": "다른 이름으로 다운로드 ...", - "PE.Views.Settings.textEditPresent": "프레젠테이션 편집", - "PE.Views.Settings.textEmail": "이메일", - "PE.Views.Settings.textEnableAll": "모두 활성화", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "없이 모든 매크로 사용", - "PE.Views.Settings.textFind": "찾기", - "PE.Views.Settings.textFindAndReplace": "찾기 및 바꾸기", - "PE.Views.Settings.textHelp": "Help", - "PE.Views.Settings.textInch": "인치", - "PE.Views.Settings.textLoading": "로드 중 ...", - "PE.Views.Settings.textPoweredBy": "Powered by", - "PE.Views.Settings.textPresentInfo": "프레젠테이션 정보", - "PE.Views.Settings.textPresentSetup": "프리젠 테이션 설정", - "PE.Views.Settings.textPresentTitle": "프레젠테이션 제목", - "PE.Views.Settings.textSettings": "설정", - "PE.Views.Settings.textSlideSize": "슬라이드 크기", - "PE.Views.Settings.textTel": "tel", - "PE.Views.Settings.textVersion": "버전", - "PE.Views.Settings.unknownText": "알 수 없음", - "PE.Views.Toolbar.textBack": "뒤로" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/lv.json b/apps/presentationeditor/mobile/locale/lv.json index 09d1b5689..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/lv.json +++ b/apps/presentationeditor/mobile/locale/lv.json @@ -1,445 +1,3 @@ { - "Common.UI.ThemeColorPalette.textStandartColors": "Standarta krāsas", - "Common.UI.ThemeColorPalette.textThemeColors": "Tēmas krāsas", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "PE.Controllers.AddContainer.textImage": "Attēls", - "PE.Controllers.AddContainer.textLink": "Saite", - "PE.Controllers.AddContainer.textShape": "Forma", - "PE.Controllers.AddContainer.textSlide": "Slaids", - "PE.Controllers.AddContainer.textTable": "Tabula", - "PE.Controllers.AddImage.textEmptyImgUrl": "Ir jānorāda attēla URL.", - "PE.Controllers.AddImage.txtNotUrl": "Šim laukam ir jābūt URL formātā 'http://www.example.com'", - "PE.Controllers.AddLink.textDefault": "Izvēlētais teksts", - "PE.Controllers.AddLink.textExternalLink": "Ārējā saite", - "PE.Controllers.AddLink.textFirst": "Pirmais slaids", - "PE.Controllers.AddLink.textInternalLink": "Slaids šajā prezentācijā", - "PE.Controllers.AddLink.textLast": "Pēdējais slaids", - "PE.Controllers.AddLink.textNext": "Nākamais slaids", - "PE.Controllers.AddLink.textPrev": "Iepriekšējais slaids", - "PE.Controllers.AddLink.textSlide": "Slaids", - "PE.Controllers.AddLink.txtNotUrl": "Šim laukam ir jābūt URL formātā 'http://www.example.com'", - "PE.Controllers.AddTable.textCancel": "Atcelt", - "PE.Controllers.AddTable.textColumns": "Kolonnas", - "PE.Controllers.AddTable.textRows": "Rindas", - "PE.Controllers.AddTable.textTableSize": "Tabulas izmērs", - "PE.Controllers.DocumentHolder.menuAddLink": "Pievienot saiti", - "PE.Controllers.DocumentHolder.menuCopy": "Kopēšana", - "PE.Controllers.DocumentHolder.menuCut": "Izgriezt", - "PE.Controllers.DocumentHolder.menuDelete": "Dzēst", - "PE.Controllers.DocumentHolder.menuEdit": "Rediģēt", - "PE.Controllers.DocumentHolder.menuMore": "Vairāk", - "PE.Controllers.DocumentHolder.menuOpenLink": "Atvērt saiti", - "PE.Controllers.DocumentHolder.menuPaste": "Ielīmēt", - "PE.Controllers.DocumentHolder.sheetCancel": "Atcelt", - "PE.Controllers.EditContainer.textChart": "Diagramma", - "PE.Controllers.EditContainer.textHyperlink": "Hipersaite", - "PE.Controllers.EditContainer.textImage": "Attēls", - "PE.Controllers.EditContainer.textSettings": "Iestatījumi", - "PE.Controllers.EditContainer.textShape": "Forma", - "PE.Controllers.EditContainer.textSlide": "Slaids", - "PE.Controllers.EditContainer.textTable": "Tabula", - "PE.Controllers.EditContainer.textText": "Teksts", - "PE.Controllers.EditImage.textEmptyImgUrl": "Ir jānorāda attēla URL.", - "PE.Controllers.EditImage.txtNotUrl": "Šim laukam ir jābūt URL formātā 'http://www.example.com'", - "PE.Controllers.EditLink.textDefault": "Izvēlētais teksts", - "PE.Controllers.EditLink.textExternalLink": "Ārējā saite", - "PE.Controllers.EditLink.textFirst": "Pirmais slaids", - "PE.Controllers.EditLink.textInternalLink": "Slaids šajā prezentācijā", - "PE.Controllers.EditLink.textLast": "Pēdējais slaids", - "PE.Controllers.EditLink.textNext": "Nākamais slaids", - "PE.Controllers.EditLink.textPrev": "Iepriekšējais slaids", - "PE.Controllers.EditLink.textSlide": "Slaids", - "PE.Controllers.EditLink.txtNotUrl": "Šim laukam ir jābūt URL formātā 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Automātiski", - "PE.Controllers.EditText.textFonts": "Fonti", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Ievadiet paroli:", - "PE.Controllers.Main.advDRMOptions": "Aizsargāts fails", - "PE.Controllers.Main.advDRMPassword": "Parole", - "PE.Controllers.Main.applyChangesTextText": "Ielādē datus...", - "PE.Controllers.Main.applyChangesTitleText": "Ielādē datus", - "PE.Controllers.Main.convertationTimeoutText": "Konversijas taimauts pārsniegts.", - "PE.Controllers.Main.criticalErrorExtText": "Nospiediet \"OK\", lai atgrieztos dokumentu sarakstā.", - "PE.Controllers.Main.criticalErrorTitle": "Kļūda", - "PE.Controllers.Main.downloadErrorText": "Lejupielāde neizdevās.", - "PE.Controllers.Main.downloadTextText": "Lejupielādē dokumentu...", - "PE.Controllers.Main.downloadTitleText": "Dokumenta lejupielāde", - "PE.Controllers.Main.errorBadImageUrl": "Nav pareizs attēla URL", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Zudis servera savienojums. Jūs vairs nevarat rediģēt.", - "PE.Controllers.Main.errorConnectToServer": "Dokumentu neizdevās noglabāt. Lūdzu, pārbaudiet savienojuma uzstādījumus vai sazinieties ar savu administratoru.
            Nospiežot \"OK\", jūs varēsit lejupielādēt dokumentu.", - "PE.Controllers.Main.errorDatabaseConnection": "Iekšējā kļūda.
            Datubāzes piekļuves kļūda. Lūdzu, sazinieties ar atbalsta daļu.", - "PE.Controllers.Main.errorDataRange": "Nepareizs datu diapazons", - "PE.Controllers.Main.errorDefaultMessage": "Kļūdas kods: %1", - "PE.Controllers.Main.errorFilePassProtect": "Fails ir aizsargāts ar paroli un to nevar atvērt.", - "PE.Controllers.Main.errorKeyEncrypt": "Nezināms atslēgas deskriptors", - "PE.Controllers.Main.errorKeyExpire": "Atslēgas deskriptora termiņš beidzies", - "PE.Controllers.Main.errorProcessSaveResult": "Saglabāšana neizdevās.", - "PE.Controllers.Main.errorServerVersion": "Redaktora versija ir atjaunināta. Lapa tiks pārlādēta, lai piemērotu izmaiņas.", - "PE.Controllers.Main.errorStockChart": "Nederīga rindu kārtība. Lai izveidotu akciju diagrammu novietojiet datus lapā šādā secībā:
            Sākumcena, maksimālā cena, minimālā cena, slēgšanas cena.", - "PE.Controllers.Main.errorUpdateVersion": "Faila versija ir mainīta. Lapa tiks pārlādēta.", - "PE.Controllers.Main.errorUserDrop": "Failam šobrīd nevar piekļūt.", - "PE.Controllers.Main.errorUsersExceed": "Ir pārsniegts lietotāju skaits", - "PE.Controllers.Main.errorViewerDisconnect": "Zudis savienojums. Jūs joprojām varat aplūkot dokumentu,
            taču jūs nevarēsit to lejupielādēt, kamēr savienojums nebūs atjaunots.", - "PE.Controllers.Main.leavePageText": "Šim dokumentam ir nesaglabātas izmaiņas. Spiediet \"palikt lapā\", lai sagaidītu dokumenta automātisko noglabāšanu. Spiediet \"pamest lapu\", lai atceltu visas nesaglabātās izmaiņas.", - "PE.Controllers.Main.loadFontsTextText": "Ielādē datus...", - "PE.Controllers.Main.loadFontsTitleText": "Ielādē datus", - "PE.Controllers.Main.loadFontTextText": "Ielādē datus...", - "PE.Controllers.Main.loadFontTitleText": "Ielādē datus", - "PE.Controllers.Main.loadImagesTextText": "Ielādē attēlus...", - "PE.Controllers.Main.loadImagesTitleText": "Ielādē attēlus", - "PE.Controllers.Main.loadImageTextText": "Ielādē attēlu...", - "PE.Controllers.Main.loadImageTitleText": "Ielādē attēlu", - "PE.Controllers.Main.loadingDocumentTextText": "Loading presentation...", - "PE.Controllers.Main.loadingDocumentTitleText": "Ielādē prezentāciju", - "PE.Controllers.Main.loadThemeTextText": "Tēmas ielāde...", - "PE.Controllers.Main.loadThemeTitleText": "Tēmas ielāde", - "PE.Controllers.Main.notcriticalErrorTitle": "Brīdinājums", - "PE.Controllers.Main.openErrorText": "Faila atvēršanas laikā radās kļūda", - "PE.Controllers.Main.openTextText": "Dokumenta atvēršana...", - "PE.Controllers.Main.openTitleText": "Dokumenta atvēršana", - "PE.Controllers.Main.printTextText": "Drukā dokumentu...", - "PE.Controllers.Main.printTitleText": "Drukā dokumentu", - "PE.Controllers.Main.reloadButtonText": "Pārlādēt lapu", - "PE.Controllers.Main.requestEditFailedMessageText": "Kāds rediģē šo dokumentu. Lūdzu, mēģiniet vēlreiz vēlāk.", - "PE.Controllers.Main.requestEditFailedTitleText": "Piekļuve liegta", - "PE.Controllers.Main.saveErrorText": "Faila noglabāšanas laikā radās kļūda", - "PE.Controllers.Main.savePreparingText": "Gatavojas saglabāt", - "PE.Controllers.Main.savePreparingTitle": "Gatavojas saglabāt. Lūdzu, uzgaidiet...", - "PE.Controllers.Main.saveTextText": "Dokumenta saglabāšana...", - "PE.Controllers.Main.saveTitleText": "Dokumenta saglabāšana", - "PE.Controllers.Main.splitDividerErrorText": "Rindu skaitam ir jādalās ar %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Kolonnu skaitam ir jābūt mazākam par %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Rindu skaitam ir jābūt mazākam nekā %1", - "PE.Controllers.Main.textAnonymous": "Anonīms lietotājs", - "PE.Controllers.Main.textBack": "Atpakaļ", - "PE.Controllers.Main.textBuyNow": "Apmeklēt vietni", - "PE.Controllers.Main.textCancel": "Atcelt", - "PE.Controllers.Main.textClose": "Aizvērt", - "PE.Controllers.Main.textCloseTip": "Uzspiediet, lai aizvērtu padomu.", - "PE.Controllers.Main.textContactUs": "Pārdošanas nodaļa", - "PE.Controllers.Main.textDone": "Gatavs", - "PE.Controllers.Main.textLoadingDocument": "Ielādē prezentāciju", - "PE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE pieslēguma ierobežojums", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPassword": "Parole", - "PE.Controllers.Main.textPreloader": "Notiek ielāde...", - "PE.Controllers.Main.textShape": "Forma", - "PE.Controllers.Main.textTryUndoRedo": "Atsaukšanas/atkārtošanas funkcijas ātrās koprediģēšanas režīmā ir atspējotas.", - "PE.Controllers.Main.textUsername": "Lietotājvārds", - "PE.Controllers.Main.titleLicenseExp": "Licencei beidzies termiņš", - "PE.Controllers.Main.titleServerVersion": "Atjaunināts redaktors", - "PE.Controllers.Main.txtArt": "Ievadiet savu tekstu", - "PE.Controllers.Main.txtBasicShapes": "Pamata figūras", - "PE.Controllers.Main.txtButtons": "Pogas", - "PE.Controllers.Main.txtCallouts": "Norādes", - "PE.Controllers.Main.txtCharts": "Diagrammas", - "PE.Controllers.Main.txtClipArt": "ClipArt", - "PE.Controllers.Main.txtDateTime": "Datums un laiks", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Diagrammas nosaukums", - "PE.Controllers.Main.txtEditingMode": "Uzstāda rediģēšanas režīmu...", - "PE.Controllers.Main.txtFiguredArrows": "Figūrbultas", - "PE.Controllers.Main.txtFooter": "Kājene", - "PE.Controllers.Main.txtHeader": "Galvene", - "PE.Controllers.Main.txtImage": "Attēls", - "PE.Controllers.Main.txtLines": "Līnijas", - "PE.Controllers.Main.txtMath": "Matemātiskās zīmes", - "PE.Controllers.Main.txtMedia": "Mediji", - "PE.Controllers.Main.txtNeedSynchronize": "Jums ir atjauninājumi", - "PE.Controllers.Main.txtPicture": "Attēls", - "PE.Controllers.Main.txtRectangles": "Taisnstūri", - "PE.Controllers.Main.txtSeries": "Rinda", - "PE.Controllers.Main.txtSldLtTBlank": "Tukšs", - "PE.Controllers.Main.txtSldLtTChart": "Diagramma", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Diagramma un teksts", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art and teksts", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clip Art un vertikāls teksts", - "PE.Controllers.Main.txtSldLtTCust": "Personalizēts", - "PE.Controllers.Main.txtSldLtTDgm": "Shēma", - "PE.Controllers.Main.txtSldLtTFourObj": "Četri objekti", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Mediji un teksts", - "PE.Controllers.Main.txtSldLtTObj": "Nosaukums un objekts", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Ojekts un divi objekti", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objekts un teksts", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objekts", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objekts pāri tekstam", - "PE.Controllers.Main.txtSldLtTObjTx": "Nosaukums, objekts un paraksts", - "PE.Controllers.Main.txtSldLtTPicTx": "Attēls ar parakstu", - "PE.Controllers.Main.txtSldLtTSecHead": "Sadaļas galvene", - "PE.Controllers.Main.txtSldLtTTbl": "Tabula", - "PE.Controllers.Main.txtSldLtTTitle": "Nosaukums", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Vienīgi nosaukums", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Teksts divās kolonnās", - "PE.Controllers.Main.txtSldLtTTwoObj": "Divi objekti", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Divi objekti un objekts", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Divi objekti un objekts", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Divi objekti pāri tekstam", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Divi teksti un divi objekti", - "PE.Controllers.Main.txtSldLtTTx": "Teksts", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Teksts un diagramma", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Teksts un ClipArt", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Teksts un mediji", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Teksts un objekts", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Teksts un divi objekti", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Teksts pāri objektam", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Vertikāls nosaukums un teksts", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Vertikāls nosaukums un teksts pāri diagrammai", - "PE.Controllers.Main.txtSldLtTVertTx": "Vertikāls teksts", - "PE.Controllers.Main.txtSlideNumber": "Slaida numurs", - "PE.Controllers.Main.txtSlideSubtitle": "Slaida apakšnosaukums", - "PE.Controllers.Main.txtSlideText": "Slaida teksts", - "PE.Controllers.Main.txtSlideTitle": "Slaida nosaukums", - "PE.Controllers.Main.txtStarsRibbons": "Zvaigznes un lentas", - "PE.Controllers.Main.txtXAxis": "X ass", - "PE.Controllers.Main.txtYAxis": "Y ass", - "PE.Controllers.Main.unknownErrorText": "Nezināma kļūda", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Jūsu pārlūkprogramma nav atbalstīta.", - "PE.Controllers.Main.uploadImageExtMessage": "Nezināms attēla formāts.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Nav augšupielādēto attēlu.", - "PE.Controllers.Main.uploadImageSizeMessage": "Maksimālais attēla izmērs ir pārsniegts.", - "PE.Controllers.Main.uploadImageTextText": "Augšupielādē attēlu...", - "PE.Controllers.Main.uploadImageTitleText": "Augšupielādē attēlu", - "PE.Controllers.Main.warnLicenseExp": "Jūsu licencei ir beidzies termiņš.
            Lūdzu, atjauniniet savu licenci un pārlādējiet lapu.", - "PE.Controllers.Main.warnNoLicense": "Šai %1 editors versijai ir noteikti ierobežojumi saistībā ar vienlaicīgu pieslēgšanos dokumentu serverim.
            Ja jums ir nepieciešams vairāk, lūdzu, apsveriet Jūsu šībrīža licences līmeņa paaugstināšanu vai komerciālās licences iegādi.", - "PE.Controllers.Main.warnNoLicenseUsers": "Šai %1 editors versijai ir noteikti ierobežojumi saistībā ar vairāku lietotāju vienlaicīgu darbību.
            Ja jums ir nepieciešams vairāk, lūdzu, apsveriet paaugstināt šībrīža licences līmeni vai komerciālās licences iegādi.", - "PE.Controllers.Main.warnProcessRightsChange": "Jums ir liegtas tiesības šo failu rediģēt.", - "PE.Controllers.Search.textNoTextFound": "Teksts nav atrasts", - "PE.Controllers.Settings.notcriticalErrorTitle": "Brīdinājums", - "PE.Controllers.Settings.txtLoading": "Notiek ielāde...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Šim dokumentam ir nesaglabātas izmaiņas. Spiediet \"palikt lapā\", lai sagaidītu dokumenta automātisko noglabāšanu. Spiediet \"pamest lapu\", lai atceltu visas nesaglabātās izmaiņas.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Jūs pametat lietotni", - "PE.Controllers.Toolbar.leaveButtonText": "Pamest lapu", - "PE.Controllers.Toolbar.stayButtonText": "Palikt lapā", - "PE.Views.AddImage.textAddress": "adrese", - "PE.Views.AddImage.textBack": "Atpakaļ", - "PE.Views.AddImage.textFromLibrary": "Attēls no bibliotēkas", - "PE.Views.AddImage.textFromURL": "Attēls no URL", - "PE.Views.AddImage.textImageURL": "Attēla URL", - "PE.Views.AddImage.textInsertImage": "Ievadīt attēlu", - "PE.Views.AddImage.textLinkSettings": "Saites uzstādījumi", - "PE.Views.AddLink.textBack": "Atpakaļ", - "PE.Views.AddLink.textDisplay": "Parādīt", - "PE.Views.AddLink.textExternalLink": "Ārējā saite", - "PE.Views.AddLink.textFirst": "Pirmais slaids", - "PE.Views.AddLink.textInsert": "Ievietot", - "PE.Views.AddLink.textInternalLink": "Slaids šajā prezentācijā", - "PE.Views.AddLink.textLast": "Pēdējais slaids", - "PE.Views.AddLink.textLink": "Saite", - "PE.Views.AddLink.textLinkSlide": "Saistīt ar", - "PE.Views.AddLink.textLinkType": "Saites veids", - "PE.Views.AddLink.textNext": "Nākamais slaids", - "PE.Views.AddLink.textNumber": "Slaida numurs", - "PE.Views.AddLink.textPrev": "Iepriekšējais slaids", - "PE.Views.AddLink.textTip": "Padoms", - "PE.Views.EditChart.textAlign": "Līdzināt", - "PE.Views.EditChart.textAlignBottom": "Līdzināt apakšu", - "PE.Views.EditChart.textAlignCenter": "Līdzināt uz centru", - "PE.Views.EditChart.textAlignLeft": "Līdzināt pa kreisi", - "PE.Views.EditChart.textAlignMiddle": "Līdzināt uz vidu", - "PE.Views.EditChart.textAlignRight": "Līdzināt pa labi", - "PE.Views.EditChart.textAlignTop": "Līdzināt uz augšu", - "PE.Views.EditChart.textBack": "Atpakaļ", - "PE.Views.EditChart.textBackward": "Pārnest atpakaļ", - "PE.Views.EditChart.textBorder": "Robeža", - "PE.Views.EditChart.textColor": "Krāsa", - "PE.Views.EditChart.textFill": "Aizpildīt", - "PE.Views.EditChart.textForward": "Pārnest uz priekšu", - "PE.Views.EditChart.textRemoveChart": "Noņemt diagrammu", - "PE.Views.EditChart.textReorder": "Pārkārtot", - "PE.Views.EditChart.textSize": "Izmērs", - "PE.Views.EditChart.textStyle": "Stils", - "PE.Views.EditChart.textToBackground": "Pārnest uz aizmuguri", - "PE.Views.EditChart.textToForeground": "Nest uz priekšplānu", - "PE.Views.EditChart.textType": "Veids", - "PE.Views.EditChart.txtDistribHor": "Izdalīt pa horizontāli", - "PE.Views.EditChart.txtDistribVert": "Izdalīt pa vertikāli", - "PE.Views.EditImage.textAddress": "adrese", - "PE.Views.EditImage.textAlign": "Līdzināt", - "PE.Views.EditImage.textAlignBottom": "Līdzināt apakšu", - "PE.Views.EditImage.textAlignCenter": "Līdzināt uz centru", - "PE.Views.EditImage.textAlignLeft": "Līdzināt pa kreisi", - "PE.Views.EditImage.textAlignMiddle": "Līdzināt uz vidu", - "PE.Views.EditImage.textAlignRight": "Līdzināt pa labi", - "PE.Views.EditImage.textAlignTop": "Līdzināt uz augšu", - "PE.Views.EditImage.textBack": "Atpakaļ", - "PE.Views.EditImage.textBackward": "Pārnest atpakaļ", - "PE.Views.EditImage.textDefault": "Noklusējuma izmērs", - "PE.Views.EditImage.textForward": "Pārnest uz priekšu", - "PE.Views.EditImage.textFromLibrary": "Attēls no bibliotēkas", - "PE.Views.EditImage.textFromURL": "Attēls no URL", - "PE.Views.EditImage.textImageURL": "Attēla URL", - "PE.Views.EditImage.textLinkSettings": "Saites uzstādījumi", - "PE.Views.EditImage.textRemove": "Noņemt attēlu", - "PE.Views.EditImage.textReorder": "Pārkārtot", - "PE.Views.EditImage.textReplace": "Aizvietot", - "PE.Views.EditImage.textReplaceImg": "Aizvietot attēlu", - "PE.Views.EditImage.textToBackground": "Pārnest uz aizmuguri", - "PE.Views.EditImage.textToForeground": "Nest uz priekšplānu", - "PE.Views.EditImage.txtDistribHor": "Izdalīt pa horizontāli", - "PE.Views.EditImage.txtDistribVert": "Izdalīt pa vertikāli", - "PE.Views.EditLink.textBack": "Atpakaļ", - "PE.Views.EditLink.textDisplay": "Parādīt", - "PE.Views.EditLink.textEdit": "Rediģēt saiti", - "PE.Views.EditLink.textExternalLink": "Ārējā saite", - "PE.Views.EditLink.textFirst": "Pirmais slaids", - "PE.Views.EditLink.textInternalLink": "Slaids šajā prezentācijā", - "PE.Views.EditLink.textLast": "Pēdējais slaids", - "PE.Views.EditLink.textLink": "Saite", - "PE.Views.EditLink.textLinkSlide": "Saistīt ar", - "PE.Views.EditLink.textLinkType": "Saites veids", - "PE.Views.EditLink.textNext": "Nākamais slaids", - "PE.Views.EditLink.textNumber": "Slaida numurs", - "PE.Views.EditLink.textPrev": "Iepriekšējais slaids", - "PE.Views.EditLink.textRemove": "Noņemt saiti", - "PE.Views.EditLink.textTip": "Padoms", - "PE.Views.EditShape.textAlign": "Līdzināt", - "PE.Views.EditShape.textAlignBottom": "Līdzināt apakšu", - "PE.Views.EditShape.textAlignCenter": "Līdzināt uz centru", - "PE.Views.EditShape.textAlignLeft": "Līdzināt pa kreisi", - "PE.Views.EditShape.textAlignMiddle": "Līdzināt uz vidu", - "PE.Views.EditShape.textAlignRight": "Līdzināt pa labi", - "PE.Views.EditShape.textAlignTop": "Līdzināt uz augšu", - "PE.Views.EditShape.textBack": "Atpakaļ", - "PE.Views.EditShape.textBackward": "Pārnest atpakaļ", - "PE.Views.EditShape.textBorder": "Robeža", - "PE.Views.EditShape.textColor": "Krāsa", - "PE.Views.EditShape.textEffects": "Efekti", - "PE.Views.EditShape.textFill": "Aizpildīt", - "PE.Views.EditShape.textForward": "Pārnest uz priekšu", - "PE.Views.EditShape.textOpacity": "Necaurredzamība", - "PE.Views.EditShape.textRemoveShape": "Noņemt figūru", - "PE.Views.EditShape.textReorder": "Pārkārtot", - "PE.Views.EditShape.textReplace": "Aizvietot", - "PE.Views.EditShape.textSize": "Izmērs", - "PE.Views.EditShape.textStyle": "Stils", - "PE.Views.EditShape.textToBackground": "Pārnest uz aizmuguri", - "PE.Views.EditShape.textToForeground": "Nest uz priekšplānu", - "PE.Views.EditShape.txtDistribHor": "Izdalīt pa horizontāli", - "PE.Views.EditShape.txtDistribVert": "Izdalīt pa vertikāli", - "PE.Views.EditSlide.textApplyAll": "Piemērot visiem slaidiem", - "PE.Views.EditSlide.textBack": "Atpakaļ", - "PE.Views.EditSlide.textBlack": "Caur melnu", - "PE.Views.EditSlide.textBottom": "Apakšā", - "PE.Views.EditSlide.textBottomLeft": "Apakšā pa kreisi", - "PE.Views.EditSlide.textBottomRight": "Apakšā pa labi", - "PE.Views.EditSlide.textClock": "Pulkstenis", - "PE.Views.EditSlide.textClockwise": "Pulksteņa rādītāja virzienā", - "PE.Views.EditSlide.textColor": "Krāsa", - "PE.Views.EditSlide.textCounterclockwise": "Pretēji pulksteņa rādītāja virzienam", - "PE.Views.EditSlide.textCover": "Vāks", - "PE.Views.EditSlide.textDelay": "Kavēšanās", - "PE.Views.EditSlide.textDuplicateSlide": "Dublicēt slaidu", - "PE.Views.EditSlide.textDuration": "Ilgums", - "PE.Views.EditSlide.textEffect": "Efekts", - "PE.Views.EditSlide.textFade": "Saplūst", - "PE.Views.EditSlide.textFill": "Aizpildīt", - "PE.Views.EditSlide.textHorizontalIn": "Pa horizontāli iekšā", - "PE.Views.EditSlide.textHorizontalOut": "Pa horizontāli ārā", - "PE.Views.EditSlide.textLayout": "Izklājums", - "PE.Views.EditSlide.textLeft": "Pa kreisi", - "PE.Views.EditSlide.textNone": "Nē", - "PE.Views.EditSlide.textOpacity": "Necaurredzamība", - "PE.Views.EditSlide.textPush": "Izvirzīt", - "PE.Views.EditSlide.textRemoveSlide": "Dzēst slaidu", - "PE.Views.EditSlide.textRight": "Pa labi", - "PE.Views.EditSlide.textSmoothly": "Gludi", - "PE.Views.EditSlide.textSplit": "Sadalīt", - "PE.Views.EditSlide.textStartOnClick": "Palaist ar klikšķi", - "PE.Views.EditSlide.textStyle": "Stils", - "PE.Views.EditSlide.textTheme": "Tēma", - "PE.Views.EditSlide.textTop": "Augša", - "PE.Views.EditSlide.textTopLeft": "Augšā pa kreisi", - "PE.Views.EditSlide.textTopRight": "Augšā pa labi", - "PE.Views.EditSlide.textTransition": "Pāreja", - "PE.Views.EditSlide.textType": "Veids", - "PE.Views.EditSlide.textUnCover": "Atsegt", - "PE.Views.EditSlide.textVerticalIn": "Pa vertikāli iekšā", - "PE.Views.EditSlide.textVerticalOut": "Pa vertikāli ārā", - "PE.Views.EditSlide.textWedge": "Ķīlis", - "PE.Views.EditSlide.textWipe": "Noslaucīt", - "PE.Views.EditSlide.textZoom": "Palielināšana", - "PE.Views.EditSlide.textZoomIn": "Pietuvināt", - "PE.Views.EditSlide.textZoomOut": "Samazināt", - "PE.Views.EditSlide.textZoomRotate": "Palielināt un rotēt", - "PE.Views.EditTable.textAlign": "Līdzināt", - "PE.Views.EditTable.textAlignBottom": "Līdzināt apakšu", - "PE.Views.EditTable.textAlignCenter": "Līdzināt uz centru", - "PE.Views.EditTable.textAlignLeft": "Līdzināt pa kreisi", - "PE.Views.EditTable.textAlignMiddle": "Līdzināt uz vidu", - "PE.Views.EditTable.textAlignRight": "Līdzināt pa labi", - "PE.Views.EditTable.textAlignTop": "Līdzināt uz augšu", - "PE.Views.EditTable.textBack": "Atpakaļ", - "PE.Views.EditTable.textBackward": "Pārnest atpakaļ", - "PE.Views.EditTable.textBandedColumn": "Joslu kolonna", - "PE.Views.EditTable.textBandedRow": "Joslu rinda", - "PE.Views.EditTable.textBorder": "Robeža", - "PE.Views.EditTable.textCellMargins": "Šunu piemales", - "PE.Views.EditTable.textColor": "Krāsa", - "PE.Views.EditTable.textFill": "Aizpildīt", - "PE.Views.EditTable.textFirstColumn": "Pirmā kolonna", - "PE.Views.EditTable.textForward": "Pārnest uz priekšu", - "PE.Views.EditTable.textHeaderRow": "Galvenes rinda", - "PE.Views.EditTable.textLastColumn": "Pēdējā kolonna", - "PE.Views.EditTable.textOptions": "Iespējas", - "PE.Views.EditTable.textRemoveTable": "Noņemt tabulu", - "PE.Views.EditTable.textReorder": "Pārkārtot", - "PE.Views.EditTable.textSize": "Izmērs", - "PE.Views.EditTable.textStyle": "Stils", - "PE.Views.EditTable.textStyleOptions": "Stila iestatījumi", - "PE.Views.EditTable.textTableOptions": "Tabulas uzstādījumi", - "PE.Views.EditTable.textToBackground": "Pārnest uz aizmuguri", - "PE.Views.EditTable.textToForeground": "Nest uz priekšplānu", - "PE.Views.EditTable.textTotalRow": "Koprinda", - "PE.Views.EditTable.txtDistribHor": "Izdalīt pa horizontāli", - "PE.Views.EditTable.txtDistribVert": "Izdalīt pa vertikāli", - "PE.Views.EditText.textAdditional": "Papildu", - "PE.Views.EditText.textAdditionalFormat": "Papildu formatēšana", - "PE.Views.EditText.textAfter": "Pēc", - "PE.Views.EditText.textAllCaps": "Visi lielie burti", - "PE.Views.EditText.textAutomatic": "Automātisks", - "PE.Views.EditText.textBack": "Atpakaļ", - "PE.Views.EditText.textBefore": "Pirms", - "PE.Views.EditText.textBullets": "Aizzīmes", - "PE.Views.EditText.textDblStrikethrough": "Dubultā pārsvītrošana", - "PE.Views.EditText.textDblSuperscript": "Augšteksts", - "PE.Views.EditText.textFontColor": "Fonta krāsa", - "PE.Views.EditText.textFontColors": "Fonta krāsas", - "PE.Views.EditText.textFonts": "Fonti", - "PE.Views.EditText.textFromText": "Attālums no teksta", - "PE.Views.EditText.textLetterSpacing": "Atstarpe", - "PE.Views.EditText.textLineSpacing": "Rindstarpas", - "PE.Views.EditText.textNone": "Nē", - "PE.Views.EditText.textNumbers": "Skaitļi", - "PE.Views.EditText.textSize": "Izmērs", - "PE.Views.EditText.textSmallCaps": "Mazie burti", - "PE.Views.EditText.textStrikethrough": "Pārsvītrots", - "PE.Views.EditText.textSubscript": "Apakšteksts", - "PE.Views.Search.textSearch": "Meklēt", - "PE.Views.Settings.mniSlideStandard": "Standarta (4:3)", - "PE.Views.Settings.mniSlideWide": "Platekrāna (16:9)", - "PE.Views.Settings.textAbout": "Par", - "PE.Views.Settings.textAddress": "adrese", - "PE.Views.Settings.textAuthor": "Autors", - "PE.Views.Settings.textBack": "Atpakaļ", - "PE.Views.Settings.textCreateDate": "Izveides datums", - "PE.Views.Settings.textDone": "Gatavs", - "PE.Views.Settings.textDownload": "Lejupielādēt", - "PE.Views.Settings.textDownloadAs": "Lejupielādēt kā...", - "PE.Views.Settings.textEditPresent": "Rediģēt prezentāciju", - "PE.Views.Settings.textEmail": "e-pasts", - "PE.Views.Settings.textFind": "Atrast", - "PE.Views.Settings.textHelp": "Palīdzība", - "PE.Views.Settings.textLoading": "Notiek ielāde...", - "PE.Views.Settings.textPoweredBy": "Nodrošina", - "PE.Views.Settings.textPresentInfo": "Informācija par prezentāciju", - "PE.Views.Settings.textPresentSetup": "Prezentācijas uzstādīšana", - "PE.Views.Settings.textPresentTitle": "Prezentācijas nosaukums", - "PE.Views.Settings.textSettings": "Iestatījumi", - "PE.Views.Settings.textSlideSize": "Slaida izmērs", - "PE.Views.Settings.textTel": "Tel.", - "PE.Views.Settings.textVersion": "Versija", - "PE.Views.Settings.unknownText": "Nezināms", - "PE.Views.Toolbar.textBack": "Atpakaļ" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/nl.json b/apps/presentationeditor/mobile/locale/nl.json index d98d764ab..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/nl.json +++ b/apps/presentationeditor/mobile/locale/nl.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Reactie toevoegen", - "Common.Controllers.Collaboration.textCancel": "Annuleren", - "Common.Controllers.Collaboration.textDeleteComment": "Verwijder opmerking", - "Common.Controllers.Collaboration.textDeleteReply": "Verwijderen antwoord", - "Common.Controllers.Collaboration.textDone": "Klaar", - "Common.Controllers.Collaboration.textEdit": "Bewerken", - "Common.Controllers.Collaboration.textEditUser": "Document wordt op dit moment bewerkt door verschillende gebruikers.", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Wil je deze opmerking verwijderen?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Wil je dit antwoord verwijderen?", - "Common.Controllers.Collaboration.textReopen": "Heropenen", - "Common.Controllers.Collaboration.textResolve": "Oplossen", - "Common.Controllers.Collaboration.textYes": "Ja", - "Common.UI.ThemeColorPalette.textCustomColors": "Aangepaste kleuren", - "Common.UI.ThemeColorPalette.textStandartColors": "Standaardkleuren", - "Common.UI.ThemeColorPalette.textThemeColors": "Themakleuren", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Reactie toevoegen", - "Common.Views.Collaboration.textBack": "Vorige", - "Common.Views.Collaboration.textCancel": "Annuleren", - "Common.Views.Collaboration.textCollaboration": "Samenwerking", - "Common.Views.Collaboration.textDone": "Klaar", - "Common.Views.Collaboration.textEditReply": "Bewerk antwoord", - "Common.Views.Collaboration.textEditUsers": "Gebruikers", - "Common.Views.Collaboration.textEditСomment": "Opmerking bewerken", - "Common.Views.Collaboration.textNoComments": "Deze presentatie bevat geen opmerkingen", - "Common.Views.Collaboration.textСomments": "Opmerkingen", - "PE.Controllers.AddContainer.textImage": "Afbeelding", - "PE.Controllers.AddContainer.textLink": "Koppeling", - "PE.Controllers.AddContainer.textOther": "Overig", - "PE.Controllers.AddContainer.textShape": "Vorm", - "PE.Controllers.AddContainer.textSlide": "Dia", - "PE.Controllers.AddContainer.textTable": "Tabel", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Waarschuwing", - "PE.Controllers.AddImage.textEmptyImgUrl": "U moet een URL opgeven voor de afbeelding.", - "PE.Controllers.AddImage.txtNotUrl": "Dit veld moet een URL bevatten in de notatie 'http://www.voorbeeld.com'", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Waarschuwing", - "PE.Controllers.AddLink.textDefault": "Geselecteerde tekst", - "PE.Controllers.AddLink.textExternalLink": "Externe koppeling", - "PE.Controllers.AddLink.textFirst": "Eerste dia", - "PE.Controllers.AddLink.textInternalLink": "Dia in deze presentatie", - "PE.Controllers.AddLink.textLast": "Laatste dia", - "PE.Controllers.AddLink.textNext": "Volgende dia", - "PE.Controllers.AddLink.textPrev": "Vorige dia", - "PE.Controllers.AddLink.textSlide": "Dia", - "PE.Controllers.AddLink.txtNotUrl": "Dit veld moet een URL bevatten in de notatie 'http://www.voorbeeld.com'", - "PE.Controllers.AddOther.textCancel": "Annuleren", - "PE.Controllers.AddOther.textContinue": "Doorgaan", - "PE.Controllers.AddOther.textDelete": "Verwijderen", - "PE.Controllers.AddOther.textDeleteDraft": "Wilt u het concept verwijderen?", - "PE.Controllers.AddTable.textCancel": "Annuleren", - "PE.Controllers.AddTable.textColumns": "Kolommen", - "PE.Controllers.AddTable.textRows": "Rijen", - "PE.Controllers.AddTable.textTableSize": "Tabelgrootte", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Acties voor kopiëren, knippen en plakken met behulp van het contextmenu worden alleen in het huidige bestand uitgevoerd.", - "PE.Controllers.DocumentHolder.menuAddComment": "Opmerking toevoegen", - "PE.Controllers.DocumentHolder.menuAddLink": "Koppeling toevoegen", - "PE.Controllers.DocumentHolder.menuCopy": "Kopiëren", - "PE.Controllers.DocumentHolder.menuCut": "Knippen", - "PE.Controllers.DocumentHolder.menuDelete": "Verwijderen", - "PE.Controllers.DocumentHolder.menuEdit": "Bewerken", - "PE.Controllers.DocumentHolder.menuMore": "Meer", - "PE.Controllers.DocumentHolder.menuOpenLink": "Koppeling openen", - "PE.Controllers.DocumentHolder.menuPaste": "Plakken", - "PE.Controllers.DocumentHolder.menuViewComment": "Bekijk opmerking", - "PE.Controllers.DocumentHolder.sheetCancel": "Annuleren", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Acties Kopiëren, Knippen en Plakken", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Niet meer weergeven", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Einde van diavoorbeeld. Klik om af te sluiten.", - "PE.Controllers.EditContainer.textChart": "Grafiek", - "PE.Controllers.EditContainer.textHyperlink": "Hyperlink", - "PE.Controllers.EditContainer.textImage": "Afbeelding", - "PE.Controllers.EditContainer.textSettings": "Instellingen", - "PE.Controllers.EditContainer.textShape": "Vorm", - "PE.Controllers.EditContainer.textSlide": "Dia", - "PE.Controllers.EditContainer.textTable": "Tabel", - "PE.Controllers.EditContainer.textText": "Tekst", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Waarschuwing", - "PE.Controllers.EditImage.textEmptyImgUrl": "U moet een URL opgeven voor de afbeelding.", - "PE.Controllers.EditImage.txtNotUrl": "Dit veld moet een URL bevatten in de notatie 'http://www.voorbeeld.com'", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Waarschuwing", - "PE.Controllers.EditLink.textDefault": "Geselecteerde tekst", - "PE.Controllers.EditLink.textExternalLink": "Externe koppeling", - "PE.Controllers.EditLink.textFirst": "Eerste dia", - "PE.Controllers.EditLink.textInternalLink": "Dia in deze presentatie", - "PE.Controllers.EditLink.textLast": "Laatste dia", - "PE.Controllers.EditLink.textNext": "Volgende dia", - "PE.Controllers.EditLink.textPrev": "Vorige dia", - "PE.Controllers.EditLink.textSlide": "Dia", - "PE.Controllers.EditLink.txtNotUrl": "Dit veld moet een URL bevatten in de notatie 'http://www.voorbeeld.com'", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Automatisch", - "PE.Controllers.EditText.textFonts": "Lettertypen", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Voer uw wachtwoord in:", - "PE.Controllers.Main.advDRMOptions": "Beschermd bestand", - "PE.Controllers.Main.advDRMPassword": "Wachtwoord", - "PE.Controllers.Main.applyChangesTextText": "Gegevens worden geladen...", - "PE.Controllers.Main.applyChangesTitleText": "Gegevens worden geladen", - "PE.Controllers.Main.closeButtonText": "Bestand sluiten", - "PE.Controllers.Main.convertationTimeoutText": "Time-out voor conversie overschreden.", - "PE.Controllers.Main.criticalErrorExtText": "Druk op \"OK\" om terug te gaan naar de lijst met documenten.", - "PE.Controllers.Main.criticalErrorTitle": "Fout", - "PE.Controllers.Main.downloadErrorText": "Download mislukt.", - "PE.Controllers.Main.downloadTextText": "Presentatie wordt gedownload...", - "PE.Controllers.Main.downloadTitleText": "Presentatie wordt gedownload", - "PE.Controllers.Main.errorAccessDeny": "U probeert een actie uit te voeren waarvoor u geen rechten hebt.
            Neem contact op met de beheerder van de documentserver.", - "PE.Controllers.Main.errorBadImageUrl": "URL afbeelding is onjuist", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Verbinding met server verbroken. U kunt niet doorgaan met bewerken.", - "PE.Controllers.Main.errorConnectToServer": "Het document kan niet worden opgeslagen. Controleer de verbindingsinstellingen of neem contact op met de beheerder.
            Wanneer u op de knop 'OK' klikt, wordt u gevraagd het document te downloaden.", - "PE.Controllers.Main.errorDatabaseConnection": "Externe fout.
            Fout in databaseverbinding. Neem contact op met Support.", - "PE.Controllers.Main.errorDataEncrypted": "Versleutelde wijzigingen zijn ontvangen, deze kunnen niet ontcijferd worden.", - "PE.Controllers.Main.errorDataRange": "Onjuist gegevensbereik.", - "PE.Controllers.Main.errorDefaultMessage": "Foutcode: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Er is een fout ontstaan bij het werken met dit document.
            Gebruik de 'Download' optie om een backup op te slaan op uw computer.", - "PE.Controllers.Main.errorFilePassProtect": "Het bestand is beschermd met een wachtwoord en kan niet worden geopend.", - "PE.Controllers.Main.errorFileSizeExceed": "De bestandsgrootte overschrijdt de limiet die is ingesteld voor uw server.
            Neem contact op met uw Document Server-beheerder voor details.", - "PE.Controllers.Main.errorKeyEncrypt": "Onbekende sleuteldescriptor", - "PE.Controllers.Main.errorKeyExpire": "Sleuteldescriptor vervallen", - "PE.Controllers.Main.errorOpensource": "Met de gratis Community-versie kunt u documenten openen om ze alleen te bekijken. Om toegang te krijgen tot mobiele webeditors is een commerciële licentie vereist.", - "PE.Controllers.Main.errorProcessSaveResult": "Opslaan mislukt.", - "PE.Controllers.Main.errorServerVersion": "De versie van de editor is bijgewerkt. De pagina wordt opnieuw geladen om de wijzigingen toe te passen.", - "PE.Controllers.Main.errorSessionAbsolute": "De bewerksessie voor het document is vervallen. Laad de pagina opnieuw.", - "PE.Controllers.Main.errorSessionIdle": "Het document is al lang niet meer bewerkt. Laad de pagina opnieuw.", - "PE.Controllers.Main.errorSessionToken": "De verbinding met de server is onderbroken. Laad de pagina opnieuw.", - "PE.Controllers.Main.errorStockChart": "Onjuiste volgorde rijen. Als u een aandelengrafiek wilt maken, zet u de rijen in de volgende volgorde op het blad:
            beginkoers, hoogste koers, laagste koers, slotkoers.", - "PE.Controllers.Main.errorUpdateVersion": "De bestandsversie is gewijzigd. De pagina wordt opnieuw geladen.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "De internetverbinding is hersteld en de bestandsversie is gewijzigd.
            Voordat u verder kunt werken, moet u het bestand downloaden of de inhoud kopiëren om er zeker van te zijn dat er niets verloren gaat, en deze pagina vervolgens opnieuw laden.", - "PE.Controllers.Main.errorUserDrop": "Toegang tot het bestand is op dit moment niet mogelijk.", - "PE.Controllers.Main.errorUsersExceed": "Het aantal gebruikers is overschreden", - "PE.Controllers.Main.errorViewerDisconnect": "Verbinding is verbroken. U kunt het document nog wel bekijken,
            maar kunt het pas downloaden wanneer de verbinding is hersteld.", - "PE.Controllers.Main.leavePageText": "Dit document bevat niet-opgeslagen wijzigingen. Klik op 'Op deze pagina blijven' om te wachten totdat het document automatisch wordt opgeslagen. Klik op 'Deze pagina verlaten' om de niet-opgeslagen wijzigingen te negeren.", - "PE.Controllers.Main.loadFontsTextText": "Gegevens worden geladen...", - "PE.Controllers.Main.loadFontsTitleText": "Gegevens worden geladen", - "PE.Controllers.Main.loadFontTextText": "Gegevens worden geladen...", - "PE.Controllers.Main.loadFontTitleText": "Gegevens worden geladen", - "PE.Controllers.Main.loadImagesTextText": "Afbeeldingen worden geladen...", - "PE.Controllers.Main.loadImagesTitleText": "Afbeeldingen worden geladen", - "PE.Controllers.Main.loadImageTextText": "Afbeelding wordt geladen...", - "PE.Controllers.Main.loadImageTitleText": "Afbeelding wordt geladen", - "PE.Controllers.Main.loadingDocumentTextText": "Presentatie wordt geladen...", - "PE.Controllers.Main.loadingDocumentTitleText": "Presentatie wordt geladen", - "PE.Controllers.Main.loadThemeTextText": "Thema wordt geladen...", - "PE.Controllers.Main.loadThemeTitleText": "Thema wordt geladen", - "PE.Controllers.Main.notcriticalErrorTitle": "Waarschuwing", - "PE.Controllers.Main.openErrorText": "Er is een fout opgetreden bij het openen van het bestand", - "PE.Controllers.Main.openTextText": "Document wordt geopend...", - "PE.Controllers.Main.openTitleText": "Document wordt geopend", - "PE.Controllers.Main.printTextText": "Document wordt afgedrukt...", - "PE.Controllers.Main.printTitleText": "Document wordt afgedrukt", - "PE.Controllers.Main.reloadButtonText": "Pagina opnieuw laden", - "PE.Controllers.Main.requestEditFailedMessageText": "Het document wordt op dit moment door iemand anders bewerkt. Probeer het later opnieuw.", - "PE.Controllers.Main.requestEditFailedTitleText": "Toegang geweigerd", - "PE.Controllers.Main.saveErrorText": "Er is een fout opgetreden bij het opslaan van het bestand", - "PE.Controllers.Main.savePreparingText": "Voorbereiding op opslaan", - "PE.Controllers.Main.savePreparingTitle": "Bezig met voorbereiding op opslaan. Even geduld...", - "PE.Controllers.Main.saveTextText": "Document wordt opgeslagen...", - "PE.Controllers.Main.saveTitleText": "Document wordt opgeslagen", - "PE.Controllers.Main.scriptLoadError": "De verbinding is te langzaam, sommige componenten konden niet geladen worden. Laad de pagina opnieuw.", - "PE.Controllers.Main.splitDividerErrorText": "Het aantal rijen moet een deler zijn van %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Aantal kolommen moet kleiner zijn dan %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Het aantal rijen moet kleiner zijn dan %1", - "PE.Controllers.Main.textAnonymous": "Anoniem", - "PE.Controllers.Main.textBack": "Terug", - "PE.Controllers.Main.textBuyNow": "Website bezoeken", - "PE.Controllers.Main.textCancel": "Annuleren", - "PE.Controllers.Main.textClose": "Sluiten", - "PE.Controllers.Main.textCloseTip": "Tik om de tip te sluiten.", - "PE.Controllers.Main.textContactUs": "Verkoopafdeling", - "PE.Controllers.Main.textCustomLoader": "Volgens de voorwaarden van de licentie heeft u geen recht om de lader aan te passen.
            Neem contact op met onze verkoopafdeling voor een offerte.", - "PE.Controllers.Main.textDone": "Klaar", - "PE.Controllers.Main.textGuest": "Gastgebruiker", - "PE.Controllers.Main.textHasMacros": "Het bestand bevat automatische macro's.
            Wilt u macro's uitvoeren?", - "PE.Controllers.Main.textLoadingDocument": "Presentatie wordt geladen", - "PE.Controllers.Main.textNo": "Nee", - "PE.Controllers.Main.textNoLicenseTitle": "Licentielimiet bereikt", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Betaalde optie", - "PE.Controllers.Main.textPassword": "Wachtwoord", - "PE.Controllers.Main.textPreloader": "Bezig met laden...", - "PE.Controllers.Main.textRemember": "Onthoud voorkeur", - "PE.Controllers.Main.textShape": "Vorm", - "PE.Controllers.Main.textTryUndoRedo": "De functies Ongedaan maken/Opnieuw zijn gedeactiveerd voor de modus Snel gezamenlijk bewerken.", - "PE.Controllers.Main.textUsername": "Gebruikersnaam", - "PE.Controllers.Main.textYes": "Ja", - "PE.Controllers.Main.titleLicenseExp": "Licentie vervallen", - "PE.Controllers.Main.titleServerVersion": "Editor bijgewerkt", - "PE.Controllers.Main.txtAddFirstSlide": "Klik om de eerste slide te maken", - "PE.Controllers.Main.txtArt": "Hier tekst invoeren", - "PE.Controllers.Main.txtBasicShapes": "Basisvormen", - "PE.Controllers.Main.txtButtons": "Knoppen", - "PE.Controllers.Main.txtCallouts": "Callouts", - "PE.Controllers.Main.txtCharts": "Grafieken", - "PE.Controllers.Main.txtClipArt": "Illustraties", - "PE.Controllers.Main.txtDateTime": "Datum en tijd", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Grafiektitel", - "PE.Controllers.Main.txtEditingMode": "Bewerkmodus instellen...", - "PE.Controllers.Main.txtFiguredArrows": "Pijlvormen", - "PE.Controllers.Main.txtFooter": "Voettekst", - "PE.Controllers.Main.txtHeader": "Koptekst", - "PE.Controllers.Main.txtImage": "Afbeelding", - "PE.Controllers.Main.txtLines": "Lijnen", - "PE.Controllers.Main.txtMath": "Wiskunde", - "PE.Controllers.Main.txtMedia": "Media", - "PE.Controllers.Main.txtNeedSynchronize": "U hebt updates", - "PE.Controllers.Main.txtPicture": "Afbeelding", - "PE.Controllers.Main.txtProtected": "Wanneer u het wachtwoord ingeeft en het bestand opent zal het huidige wachtwoord worden gereset.", - "PE.Controllers.Main.txtRectangles": "Rechthoeken", - "PE.Controllers.Main.txtSeries": "Serie", - "PE.Controllers.Main.txtSldLtTBlank": "Leeg", - "PE.Controllers.Main.txtSldLtTChart": "Grafiek", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Grafiek en tekst", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Illustraties en tekst", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Illustraties en verticale tekst", - "PE.Controllers.Main.txtSldLtTCust": "Aangepast", - "PE.Controllers.Main.txtSldLtTDgm": "Diagram", - "PE.Controllers.Main.txtSldLtTFourObj": "Vier objecten", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Media en tekst", - "PE.Controllers.Main.txtSldLtTObj": "Titel en object", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Object en twee objecten", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Object en tekst", - "PE.Controllers.Main.txtSldLtTObjOnly": "Object", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Object over tekst", - "PE.Controllers.Main.txtSldLtTObjTx": "Titel, object en bijschrift", - "PE.Controllers.Main.txtSldLtTPicTx": "Afbeelding en bijschrift", - "PE.Controllers.Main.txtSldLtTSecHead": "Sectiekop", - "PE.Controllers.Main.txtSldLtTTbl": "Tabel", - "PE.Controllers.Main.txtSldLtTTitle": "Titel", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Alleen titel", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Tekst in twee kolommen", - "PE.Controllers.Main.txtSldLtTTwoObj": "Twee objecten", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Twee objecten en object", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Twee objecten en tekst", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Twee objecten over tekst", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Twee teksten en twee objecten", - "PE.Controllers.Main.txtSldLtTTx": "Tekst", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Tekst en grafiek", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Tekst en illustraties", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Tekst en media", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Tekst en object", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Tekst en twee objecten", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Tekst over object", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Verticale titel en tekst", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Verticale titel en tekst over grafiek", - "PE.Controllers.Main.txtSldLtTVertTx": "Verticale tekst", - "PE.Controllers.Main.txtSlideNumber": "Dianummer", - "PE.Controllers.Main.txtSlideSubtitle": "Subtitel dia", - "PE.Controllers.Main.txtSlideText": "Tekst van dia", - "PE.Controllers.Main.txtSlideTitle": "Diatitel", - "PE.Controllers.Main.txtStarsRibbons": "Sterren en linten", - "PE.Controllers.Main.txtXAxis": "X-as", - "PE.Controllers.Main.txtYAxis": "Y-as", - "PE.Controllers.Main.unknownErrorText": "Onbekende fout.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Uw browser wordt niet ondersteund.", - "PE.Controllers.Main.uploadImageExtMessage": "Onbekende afbeeldingsindeling.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Geen afbeeldingen geüpload.", - "PE.Controllers.Main.uploadImageSizeMessage": "Maximaal toegestane afbeeldingsgrootte overschreden.", - "PE.Controllers.Main.uploadImageTextText": "Afbeelding wordt geüpload...", - "PE.Controllers.Main.uploadImageTitleText": "Afbeelding wordt geüpload", - "PE.Controllers.Main.waitText": "Een moment...", - "PE.Controllers.Main.warnLicenseExceeded": "Het aantal gelijktijdige verbindingen met de document server heeft het maximum overschreven. Het document zal geopend worden in een alleen-lezen modus.
            Neem contact op met de beheerder voor meer informatie.", - "PE.Controllers.Main.warnLicenseExp": "Uw licentie is vervallen.
            Werk uw licentie bij en vernieuw de pagina.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "Licentie verlopen.
            U heeft geen toegang tot documentbewerkingsfunctionaliteit.
            Neem contact op met uw beheerder.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "Licentie moet worden verlengd.
            U heeft beperkte toegang tot documentbewerkingsfunctionaliteit.
            Neem contact op met uw beheerder voor volledige toegang", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Het aantal gelijktijdige gebruikers met de document server heeft het maximum overschreven. Het document zal geopend worden in een alleen-lezen modus.
            Neem contact op met de beheerder voor meer informatie.", - "PE.Controllers.Main.warnNoLicense": "U gebruikt een Open source-versie van %1. In die versie geldt voor het aantal gelijktijdige verbindingen met de documentserver een limiet van 20 verbindingen.
            Als u er meer nodig hebt, kunt u overwegen een commerciële licentie aan te schaffen.", - "PE.Controllers.Main.warnNoLicenseUsers": "Deze versie van %1 bevat limieten voor het aantal gelijktijdige gebruikers.
            Indien meer nodig is, upgrade dan de huidige licentie of schaf een commerciële licentie aan.", - "PE.Controllers.Main.warnProcessRightsChange": "Het recht om het bestand te bewerken is u ontzegd.", - "PE.Controllers.Search.textNoTextFound": "Tekst niet gevonden", - "PE.Controllers.Search.textReplaceAll": "Alles vervangen", - "PE.Controllers.Settings.notcriticalErrorTitle": "Waarschuwing", - "PE.Controllers.Settings.txtLoading": "Bezig met laden...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Dit document bevat niet-opgeslagen wijzigingen. Klik op 'Op deze pagina blijven' om te wachten totdat het document automatisch wordt opgeslagen. Klik op 'Deze pagina verlaten' om de niet-opgeslagen wijzigingen te negeren.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "U verlaat de toepassing", - "PE.Controllers.Toolbar.leaveButtonText": "Pagina verlaten", - "PE.Controllers.Toolbar.stayButtonText": "Op deze pagina blijven", - "PE.Views.AddImage.textAddress": "Adres", - "PE.Views.AddImage.textBack": "Terug", - "PE.Views.AddImage.textFromLibrary": "Afbeelding uit bibliotheek", - "PE.Views.AddImage.textFromURL": "Afbeelding van URL", - "PE.Views.AddImage.textImageURL": "URL afbeelding", - "PE.Views.AddImage.textInsertImage": "Afbeelding invoegen", - "PE.Views.AddImage.textLinkSettings": "Koppelingsinstellingen", - "PE.Views.AddLink.textBack": "Terug", - "PE.Views.AddLink.textDisplay": "Weergeven", - "PE.Views.AddLink.textExternalLink": "Externe koppeling", - "PE.Views.AddLink.textFirst": "Eerste dia", - "PE.Views.AddLink.textInsert": "Invoegen", - "PE.Views.AddLink.textInternalLink": "Dia in deze presentatie", - "PE.Views.AddLink.textLast": "Laatste dia", - "PE.Views.AddLink.textLink": "Koppeling", - "PE.Views.AddLink.textLinkSlide": "Koppelen aan", - "PE.Views.AddLink.textLinkType": "Type koppeling", - "PE.Views.AddLink.textNext": "Volgende dia", - "PE.Views.AddLink.textNumber": "Dianummer", - "PE.Views.AddLink.textPrev": "Vorige dia", - "PE.Views.AddLink.textTip": "Scherminfo", - "PE.Views.AddOther.textAddComment": "Opmerking toevoegen", - "PE.Views.AddOther.textBack": "Vorige", - "PE.Views.AddOther.textComment": "Commentaar", - "PE.Views.AddOther.textDisplay": "Weergeven", - "PE.Views.AddOther.textDone": "Klaar", - "PE.Views.AddOther.textExternalLink": "Externe koppeling", - "PE.Views.AddOther.textFirst": "Eerste dia", - "PE.Views.AddOther.textInsert": "Invoegen", - "PE.Views.AddOther.textInternalLink": "Dia in deze presentatie", - "PE.Views.AddOther.textLast": "Laatste dia", - "PE.Views.AddOther.textLink": "koppeling", - "PE.Views.AddOther.textLinkSlide": "Koppelen aan", - "PE.Views.AddOther.textLinkType": "Type koppeling", - "PE.Views.AddOther.textNext": "Volgende dia", - "PE.Views.AddOther.textNumber": "Dianummer", - "PE.Views.AddOther.textPrev": "Vorige dia", - "PE.Views.AddOther.textTable": "Tabel", - "PE.Views.AddOther.textTip": "Scherminfo", - "PE.Views.EditChart.textAddCustomColor": "Aangepaste kleur toevoegen", - "PE.Views.EditChart.textAlign": "Uitlijnen", - "PE.Views.EditChart.textAlignBottom": "Onder uitlijnen", - "PE.Views.EditChart.textAlignCenter": "Midden uitlijnen", - "PE.Views.EditChart.textAlignLeft": "Links uitlijnen", - "PE.Views.EditChart.textAlignMiddle": "Midden uitlijnen", - "PE.Views.EditChart.textAlignRight": "Rechts uitlijnen", - "PE.Views.EditChart.textAlignTop": "Boven uitlijnen", - "PE.Views.EditChart.textBack": "Terug", - "PE.Views.EditChart.textBackward": "Naar achter verplaatsen", - "PE.Views.EditChart.textBorder": "Rand", - "PE.Views.EditChart.textColor": "Kleur", - "PE.Views.EditChart.textCustomColor": "Aangepaste kleur", - "PE.Views.EditChart.textFill": "Vulling", - "PE.Views.EditChart.textForward": "Naar voren verplaatsen", - "PE.Views.EditChart.textRemoveChart": "Grafiek verwijderen", - "PE.Views.EditChart.textReorder": "Opnieuw ordenen", - "PE.Views.EditChart.textSize": "Grootte", - "PE.Views.EditChart.textStyle": "Stijl", - "PE.Views.EditChart.textToBackground": "Naar achtergrond sturen", - "PE.Views.EditChart.textToForeground": "Naar voorgrond brengen", - "PE.Views.EditChart.textType": "Type", - "PE.Views.EditChart.txtDistribHor": "Horizontaal verdelen", - "PE.Views.EditChart.txtDistribVert": "Verticaal verdelen", - "PE.Views.EditImage.textAddress": "Adres", - "PE.Views.EditImage.textAlign": "Uitlijnen", - "PE.Views.EditImage.textAlignBottom": "Onder uitlijnen", - "PE.Views.EditImage.textAlignCenter": "Midden uitlijnen", - "PE.Views.EditImage.textAlignLeft": "Links uitlijnen", - "PE.Views.EditImage.textAlignMiddle": "Midden uitlijnen", - "PE.Views.EditImage.textAlignRight": "Rechts uitlijnen", - "PE.Views.EditImage.textAlignTop": "Boven uitlijnen", - "PE.Views.EditImage.textBack": "Terug", - "PE.Views.EditImage.textBackward": "Naar achter verplaatsen", - "PE.Views.EditImage.textDefault": "Ware grootte", - "PE.Views.EditImage.textForward": "Naar voren verplaatsen", - "PE.Views.EditImage.textFromLibrary": "Afbeelding uit bibliotheek", - "PE.Views.EditImage.textFromURL": "Afbeelding van URL", - "PE.Views.EditImage.textImageURL": "URL afbeelding", - "PE.Views.EditImage.textLinkSettings": "Koppelingsinstellingen", - "PE.Views.EditImage.textRemove": "Afbeelding verwijderen", - "PE.Views.EditImage.textReorder": "Opnieuw ordenen", - "PE.Views.EditImage.textReplace": "Vervangen", - "PE.Views.EditImage.textReplaceImg": "Afbeelding vervangen", - "PE.Views.EditImage.textToBackground": "Naar achtergrond sturen", - "PE.Views.EditImage.textToForeground": "Naar voorgrond brengen", - "PE.Views.EditImage.txtDistribHor": "Horizontaal verdelen", - "PE.Views.EditImage.txtDistribVert": "Verticaal verdelen", - "PE.Views.EditLink.textBack": "Terug", - "PE.Views.EditLink.textDisplay": "Weergeven", - "PE.Views.EditLink.textEdit": "Koppeling bewerken", - "PE.Views.EditLink.textExternalLink": "Externe koppeling", - "PE.Views.EditLink.textFirst": "Eerste dia", - "PE.Views.EditLink.textInternalLink": "Dia in deze presentatie", - "PE.Views.EditLink.textLast": "Laatste dia", - "PE.Views.EditLink.textLink": "Koppeling", - "PE.Views.EditLink.textLinkSlide": "Koppelen aan", - "PE.Views.EditLink.textLinkType": "Type koppeling", - "PE.Views.EditLink.textNext": "Volgende dia", - "PE.Views.EditLink.textNumber": "Dianummer", - "PE.Views.EditLink.textPrev": "Vorige dia", - "PE.Views.EditLink.textRemove": "Koppeling verwijderen", - "PE.Views.EditLink.textTip": "Scherminfo", - "PE.Views.EditShape.textAddCustomColor": "Aangepaste kleur toevoegen", - "PE.Views.EditShape.textAlign": "Uitlijnen", - "PE.Views.EditShape.textAlignBottom": "Onder uitlijnen", - "PE.Views.EditShape.textAlignCenter": "Midden uitlijnen", - "PE.Views.EditShape.textAlignLeft": "Links uitlijnen", - "PE.Views.EditShape.textAlignMiddle": "Midden uitlijnen", - "PE.Views.EditShape.textAlignRight": "Rechts uitlijnen", - "PE.Views.EditShape.textAlignTop": "Boven uitlijnen", - "PE.Views.EditShape.textBack": "Terug", - "PE.Views.EditShape.textBackward": "Naar achter verplaatsen", - "PE.Views.EditShape.textBorder": "Rand", - "PE.Views.EditShape.textColor": "Kleur", - "PE.Views.EditShape.textCustomColor": "Aangepaste kleur", - "PE.Views.EditShape.textEffects": "Effecten", - "PE.Views.EditShape.textFill": "Vulling", - "PE.Views.EditShape.textForward": "Naar voren verplaatsen", - "PE.Views.EditShape.textOpacity": "Ondoorzichtigheid", - "PE.Views.EditShape.textRemoveShape": "Vorm verwijderen", - "PE.Views.EditShape.textReorder": "Opnieuw ordenen", - "PE.Views.EditShape.textReplace": "Vervangen", - "PE.Views.EditShape.textSize": "Grootte", - "PE.Views.EditShape.textStyle": "Stijl", - "PE.Views.EditShape.textToBackground": "Naar achtergrond sturen", - "PE.Views.EditShape.textToForeground": "Naar voorgrond brengen", - "PE.Views.EditShape.txtDistribHor": "Horizontaal verdelen", - "PE.Views.EditShape.txtDistribVert": "Verticaal verdelen", - "PE.Views.EditSlide.textAddCustomColor": "Aangepaste kleur toevoegen", - "PE.Views.EditSlide.textApplyAll": "Toepassen op alle dia's", - "PE.Views.EditSlide.textBack": "Terug", - "PE.Views.EditSlide.textBlack": "Door zwart", - "PE.Views.EditSlide.textBottom": "Onder", - "PE.Views.EditSlide.textBottomLeft": "Linksonder", - "PE.Views.EditSlide.textBottomRight": "Rechtsonder", - "PE.Views.EditSlide.textClock": "Klok", - "PE.Views.EditSlide.textClockwise": "Rechtsom", - "PE.Views.EditSlide.textColor": "Kleur", - "PE.Views.EditSlide.textCounterclockwise": "Linksom", - "PE.Views.EditSlide.textCover": "Bedekken", - "PE.Views.EditSlide.textCustomColor": "Aangepaste kleur", - "PE.Views.EditSlide.textDelay": "Vertragen", - "PE.Views.EditSlide.textDuplicateSlide": "Dia dupliceren", - "PE.Views.EditSlide.textDuration": "Duur", - "PE.Views.EditSlide.textEffect": "Effect", - "PE.Views.EditSlide.textFade": "Vervagen", - "PE.Views.EditSlide.textFill": "Vulling", - "PE.Views.EditSlide.textHorizontalIn": "Horizontaal naar binnen", - "PE.Views.EditSlide.textHorizontalOut": "Horizontaal naar buiten", - "PE.Views.EditSlide.textLayout": "Indeling", - "PE.Views.EditSlide.textLeft": "Links", - "PE.Views.EditSlide.textNone": "Geen", - "PE.Views.EditSlide.textOpacity": "Ondoorzichtigheid", - "PE.Views.EditSlide.textPush": "Duwen", - "PE.Views.EditSlide.textRemoveSlide": "Dia verwijderen", - "PE.Views.EditSlide.textRight": "Rechts", - "PE.Views.EditSlide.textSmoothly": "Vloeiend", - "PE.Views.EditSlide.textSplit": "Splitsen", - "PE.Views.EditSlide.textStartOnClick": "Bij klik starten", - "PE.Views.EditSlide.textStyle": "Stijl", - "PE.Views.EditSlide.textTheme": "Thema", - "PE.Views.EditSlide.textTop": "Boven", - "PE.Views.EditSlide.textTopLeft": "Linksboven", - "PE.Views.EditSlide.textTopRight": "Rechtsboven", - "PE.Views.EditSlide.textTransition": "Overgang", - "PE.Views.EditSlide.textType": "Type", - "PE.Views.EditSlide.textUnCover": "Onthullen", - "PE.Views.EditSlide.textVerticalIn": "Verticaal naar binnen", - "PE.Views.EditSlide.textVerticalOut": "Verticaal naar buiten", - "PE.Views.EditSlide.textWedge": "Wig", - "PE.Views.EditSlide.textWipe": "Wissen", - "PE.Views.EditSlide.textZoom": "Zoomen", - "PE.Views.EditSlide.textZoomIn": "Inzoomen", - "PE.Views.EditSlide.textZoomOut": "Uitzoomen", - "PE.Views.EditSlide.textZoomRotate": "Zoomen en draaien", - "PE.Views.EditTable.textAddCustomColor": "Aangepaste kleur toevoegen", - "PE.Views.EditTable.textAlign": "Uitlijnen", - "PE.Views.EditTable.textAlignBottom": "Onder uitlijnen", - "PE.Views.EditTable.textAlignCenter": "Midden uitlijnen", - "PE.Views.EditTable.textAlignLeft": "Links uitlijnen", - "PE.Views.EditTable.textAlignMiddle": "Midden uitlijnen", - "PE.Views.EditTable.textAlignRight": "Rechts uitlijnen", - "PE.Views.EditTable.textAlignTop": "Boven uitlijnen", - "PE.Views.EditTable.textBack": "Terug", - "PE.Views.EditTable.textBackward": "Naar achter verplaatsen", - "PE.Views.EditTable.textBandedColumn": "Gestreepte kolom", - "PE.Views.EditTable.textBandedRow": "Gestreepte rij", - "PE.Views.EditTable.textBorder": "Rand", - "PE.Views.EditTable.textCellMargins": "Celmarges", - "PE.Views.EditTable.textColor": "Kleur", - "PE.Views.EditTable.textCustomColor": "Aangepaste kleur", - "PE.Views.EditTable.textFill": "Vulling", - "PE.Views.EditTable.textFirstColumn": "Eerste kolom", - "PE.Views.EditTable.textForward": "Naar voren verplaatsen", - "PE.Views.EditTable.textHeaderRow": "Koprij", - "PE.Views.EditTable.textLastColumn": "Laatste kolom", - "PE.Views.EditTable.textOptions": "Opties", - "PE.Views.EditTable.textRemoveTable": "Tabel verwijderen", - "PE.Views.EditTable.textReorder": "Opnieuw ordenen", - "PE.Views.EditTable.textSize": "Grootte", - "PE.Views.EditTable.textStyle": "Stijl", - "PE.Views.EditTable.textStyleOptions": "Stijlopties", - "PE.Views.EditTable.textTableOptions": "Tabelopties", - "PE.Views.EditTable.textToBackground": "Naar achtergrond sturen", - "PE.Views.EditTable.textToForeground": "Naar voorgrond brengen", - "PE.Views.EditTable.textTotalRow": "Totaalrij", - "PE.Views.EditTable.txtDistribHor": "Horizontaal verdelen", - "PE.Views.EditTable.txtDistribVert": "Verticaal verdelen", - "PE.Views.EditText.textAddCustomColor": "Aangepaste kleur toevoegen", - "PE.Views.EditText.textAdditional": "Extra", - "PE.Views.EditText.textAdditionalFormat": "Aanvullende opmaak", - "PE.Views.EditText.textAfter": "Na", - "PE.Views.EditText.textAllCaps": "Allemaal hoofdletters", - "PE.Views.EditText.textAutomatic": "Automatisch", - "PE.Views.EditText.textBack": "Terug", - "PE.Views.EditText.textBefore": "Vóór", - "PE.Views.EditText.textBullets": "Opsommingstekens", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "s", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Aangepaste kleur", - "PE.Views.EditText.textDblStrikethrough": "Dubbel doorhalen", - "PE.Views.EditText.textDblSuperscript": "Superscript", - "PE.Views.EditText.textFontColor": "Tekenkleur", - "PE.Views.EditText.textFontColors": "Tekenkleuren", - "PE.Views.EditText.textFonts": "Lettertypen", - "PE.Views.EditText.textFromText": "Afstand van tekst", - "PE.Views.EditText.textLetterSpacing": "Letterafstand", - "PE.Views.EditText.textLineSpacing": "Regelafstand", - "PE.Views.EditText.textNone": "Geen", - "PE.Views.EditText.textNumbers": "Nummers", - "PE.Views.EditText.textSize": "Grootte", - "PE.Views.EditText.textSmallCaps": "Kleine hoofdletters", - "PE.Views.EditText.textStrikethrough": "Doorhalen", - "PE.Views.EditText.textSubscript": "Subscript", - "PE.Views.Search.textCase": "Hoofdlettergevoelig", - "PE.Views.Search.textDone": "Klaar", - "PE.Views.Search.textFind": "Zoeken", - "PE.Views.Search.textFindAndReplace": "Zoeken en vervangen", - "PE.Views.Search.textReplace": "Vervangen", - "PE.Views.Search.textSearch": "Zoeken", - "PE.Views.Settings. textComment": "Commentaar", - "PE.Views.Settings.mniSlideStandard": "Standaard (4:3)", - "PE.Views.Settings.mniSlideWide": "Breedbeeld (16:9)", - "PE.Views.Settings.textAbout": "Over ons", - "PE.Views.Settings.textAddress": "adres", - "PE.Views.Settings.textApplication": "Applicatie", - "PE.Views.Settings.textApplicationSettings": "Instellingen", - "PE.Views.Settings.textAuthor": "Auteur", - "PE.Views.Settings.textBack": "Terug", - "PE.Views.Settings.textCentimeter": "Centimeter", - "PE.Views.Settings.textCollaboration": "Samenwerking", - "PE.Views.Settings.textColorSchemes": "Kleurschema's", - "PE.Views.Settings.textCreated": "Aangemaakt", - "PE.Views.Settings.textCreateDate": "Datum gemaakt", - "PE.Views.Settings.textDisableAll": "Alles uitschakelen", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Schakel alle macro's uit met een melding", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Schakel alle macro's uit zonder melding", - "PE.Views.Settings.textDone": "Klaar", - "PE.Views.Settings.textDownload": "Downloaden", - "PE.Views.Settings.textDownloadAs": "Downloaden als...", - "PE.Views.Settings.textEditPresent": "Presentatie bewerken", - "PE.Views.Settings.textEmail": "e-mail", - "PE.Views.Settings.textEnableAll": "Alles inschakelen", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Schakel alle macro's in zonder een notificatie", - "PE.Views.Settings.textFind": "Zoeken", - "PE.Views.Settings.textFindAndReplace": "Zoeken en vervangen", - "PE.Views.Settings.textHelp": "Help", - "PE.Views.Settings.textInch": "Inch", - "PE.Views.Settings.textLastModified": "Laatst aangepast", - "PE.Views.Settings.textLastModifiedBy": "Laatst aangepast door", - "PE.Views.Settings.textLoading": "Bezig met laden...", - "PE.Views.Settings.textLocation": "Locatie", - "PE.Views.Settings.textMacrosSettings": "Macro instellingen", - "PE.Views.Settings.textOwner": "Eigenaar", - "PE.Views.Settings.textPoint": "Punt", - "PE.Views.Settings.textPoweredBy": "Aangedreven door", - "PE.Views.Settings.textPresentInfo": "Info over presentatie", - "PE.Views.Settings.textPresentSettings": "Presentatie instellingen", - "PE.Views.Settings.textPresentSetup": "Presentatie-instellingen", - "PE.Views.Settings.textPresentTitle": "Presentatietitel", - "PE.Views.Settings.textPrint": "Afdrukken", - "PE.Views.Settings.textSettings": "Instellingen", - "PE.Views.Settings.textShowNotification": "Weergeef notificatie", - "PE.Views.Settings.textSlideSize": "Diagrootte", - "PE.Views.Settings.textSpellcheck": "Spellingcontrole", - "PE.Views.Settings.textSubject": "Onderwerp", - "PE.Views.Settings.textTel": "Tel.", - "PE.Views.Settings.textTitle": "Titel", - "PE.Views.Settings.textUnitOfMeasurement": "Maateenheid", - "PE.Views.Settings.textUploaded": "Geüpload", - "PE.Views.Settings.textVersion": "Versie", - "PE.Views.Settings.unknownText": "Onbekend", - "PE.Views.Toolbar.textBack": "Terug" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/pl.json b/apps/presentationeditor/mobile/locale/pl.json index d0fe7bf0c..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/pl.json +++ b/apps/presentationeditor/mobile/locale/pl.json @@ -1,568 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Dodaj odpowiedź", - "Common.Controllers.Collaboration.textCancel": "Anuluj", - "Common.Controllers.Collaboration.textDeleteComment": "Usuń komentarz", - "Common.Controllers.Collaboration.textDeleteReply": "Usuń odpowiedź", - "Common.Controllers.Collaboration.textDone": "Gotowe", - "Common.Controllers.Collaboration.textEdit": "Edytuj", - "Common.Controllers.Collaboration.textEditUser": "Użytkownicy obecnie edytujący plik:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Czy na pewno chcesz usunąć ten komentarz?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Czy na pewno chcesz usunąć tę odpowiedź?", - "Common.Controllers.Collaboration.textReopen": "Otwórz ponownie", - "Common.Controllers.Collaboration.textResolve": "Rozwiąż", - "Common.Controllers.Collaboration.textYes": "Tak", - "Common.UI.ThemeColorPalette.textCustomColors": "Niestandardowe kolory", - "Common.UI.ThemeColorPalette.textStandartColors": "Kolory standardowe", - "Common.UI.ThemeColorPalette.textThemeColors": "Kolory motywu", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Dodaj odpowiedź", - "Common.Views.Collaboration.textBack": "Wstecz", - "Common.Views.Collaboration.textCancel": "Anuluj", - "Common.Views.Collaboration.textCollaboration": "Współpraca", - "Common.Views.Collaboration.textDone": "Gotowe", - "Common.Views.Collaboration.textEditReply": "Edytuj odpowiedź", - "Common.Views.Collaboration.textEditUsers": "Użytkownicy", - "Common.Views.Collaboration.textEditСomment": "Edytuj komentarz", - "Common.Views.Collaboration.textNoComments": "Ta prezentacja nie zawiera komentarzy", - "Common.Views.Collaboration.textСomments": "Komentarze", - "PE.Controllers.AddContainer.textImage": "Obraz", - "PE.Controllers.AddContainer.textLink": "Link", - "PE.Controllers.AddContainer.textOther": "Inne", - "PE.Controllers.AddContainer.textShape": "Kształt", - "PE.Controllers.AddContainer.textSlide": "Slajd", - "PE.Controllers.AddContainer.textTable": "Tabela", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Ostrzeżenie", - "PE.Controllers.AddImage.textEmptyImgUrl": "Musisz podać adres URL obrazu.", - "PE.Controllers.AddImage.txtNotUrl": "To pole powinno być w formacie adresu URL np.: \"http://www.example.com\"", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Ostrzeżenie", - "PE.Controllers.AddLink.textDefault": "Wybrany tekst", - "PE.Controllers.AddLink.textExternalLink": "Link zewnętrzny", - "PE.Controllers.AddLink.textFirst": "Pierwszy slajd", - "PE.Controllers.AddLink.textInternalLink": "Slajd w tej prezentacji", - "PE.Controllers.AddLink.textLast": "Ostatni slajd", - "PE.Controllers.AddLink.textNext": "Następny slajd", - "PE.Controllers.AddLink.textPrev": "Poprzedni slajd", - "PE.Controllers.AddLink.textSlide": "Slajd", - "PE.Controllers.AddLink.txtNotUrl": "To pole powinno być w formacie adresu URL np.: \"http://www.example.com\"", - "PE.Controllers.AddOther.textCancel": "Anuluj", - "PE.Controllers.AddOther.textContinue": "Kontynuuj", - "PE.Controllers.AddOther.textDelete": "Usuń", - "PE.Controllers.AddOther.textDeleteDraft": "Czy na pewno chcesz usunąć wersję roboczą?", - "PE.Controllers.AddTable.textCancel": "Anuluj", - "PE.Controllers.AddTable.textColumns": "Kolumny", - "PE.Controllers.AddTable.textRows": "Wiersze", - "PE.Controllers.AddTable.textTableSize": "Rozmiar tablicy", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Akcje kopiuj, wytnij i wklej wywołane z menu kontekstowego zostaną wykonane tylko dla bieżącego pliku.", - "PE.Controllers.DocumentHolder.menuAddComment": "Dodaj komentarz", - "PE.Controllers.DocumentHolder.menuAddLink": "Dodaj link", - "PE.Controllers.DocumentHolder.menuCopy": "Kopiuj", - "PE.Controllers.DocumentHolder.menuCut": "Wytnij", - "PE.Controllers.DocumentHolder.menuDelete": "Usunąć", - "PE.Controllers.DocumentHolder.menuEdit": "Edytować", - "PE.Controllers.DocumentHolder.menuMore": "Więcej", - "PE.Controllers.DocumentHolder.menuOpenLink": "Otwórz link", - "PE.Controllers.DocumentHolder.menuPaste": "Wklej", - "PE.Controllers.DocumentHolder.menuViewComment": "Zobacz komentarz", - "PE.Controllers.DocumentHolder.sheetCancel": "Anuluj", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Kopiuj, Wytnij i Wklej", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Nie pokazuj ponownie", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Koniec podglądu slajdów. Kliknij, aby wyjść.", - "PE.Controllers.EditContainer.textChart": "Wykres", - "PE.Controllers.EditContainer.textHyperlink": "Hiperlink", - "PE.Controllers.EditContainer.textImage": "Obraz", - "PE.Controllers.EditContainer.textSettings": "Ustawienia", - "PE.Controllers.EditContainer.textShape": "Kształt", - "PE.Controllers.EditContainer.textSlide": "Slajd", - "PE.Controllers.EditContainer.textTable": "Tabela", - "PE.Controllers.EditContainer.textText": "Tekst", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Ostrzeżenie", - "PE.Controllers.EditImage.textEmptyImgUrl": "Musisz podać adres URL obrazu.", - "PE.Controllers.EditImage.txtNotUrl": "To pole powinno być w formacie adresu URL np.: \"http://www.example.com\"", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Ostrzeżenie", - "PE.Controllers.EditLink.textDefault": "Wybrany tekst", - "PE.Controllers.EditLink.textExternalLink": "Link zewnętrzny", - "PE.Controllers.EditLink.textFirst": "Pierwszy slajd", - "PE.Controllers.EditLink.textInternalLink": "Slajd w tej prezentacji", - "PE.Controllers.EditLink.textLast": "Ostatni slajd", - "PE.Controllers.EditLink.textNext": "Następny slajd", - "PE.Controllers.EditLink.textPrev": "Poprzedni slajd", - "PE.Controllers.EditLink.textSlide": "Slajd", - "PE.Controllers.EditLink.txtNotUrl": "To pole powinno być w formacie adresu URL np.: \"http://www.example.com\"", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Automatyczny", - "PE.Controllers.EditText.textFonts": "Czcionki", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Wprowadź swoje hasło:", - "PE.Controllers.Main.advDRMOptions": "Plik chroniony", - "PE.Controllers.Main.advDRMPassword": "Hasło", - "PE.Controllers.Main.applyChangesTextText": "Ładowanie danych...", - "PE.Controllers.Main.applyChangesTitleText": "Ładowanie danych", - "PE.Controllers.Main.closeButtonText": "Zamknij plik", - "PE.Controllers.Main.convertationTimeoutText": "Przekroczono limit czasu konwersji.", - "PE.Controllers.Main.criticalErrorExtText": "Naciśnij \"OK\" aby powrócić do listy dokumentów.", - "PE.Controllers.Main.criticalErrorTitle": "Błąd", - "PE.Controllers.Main.downloadErrorText": "Pobieranie nieudane.", - "PE.Controllers.Main.downloadTextText": "Pobieranie dokumentu...", - "PE.Controllers.Main.downloadTitleText": "Pobieranie dokumentu", - "PE.Controllers.Main.errorAccessDeny": "Próbujesz wykonać działanie, do którego nie masz uprawnień.
            Proszę skontaktować się ze swoim administratorem Serwera Dokumentów.", - "PE.Controllers.Main.errorBadImageUrl": "Adres URL obrazu jest błędny", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Połączenie z serwerem zostało utracone. Nie możesz już edytować.", - "PE.Controllers.Main.errorConnectToServer": "Nie można zapisać dokumentu. Sprawdź ustawienia połączenia lub skontaktuj się z administratorem.
            Po kliknięciu przycisku \"OK\" zostanie wyświetlony monit o pobranie dokumentu.", - "PE.Controllers.Main.errorDatabaseConnection": "Zewnętrzny błąd.
            Błąd połączenia z bazą danych. Proszę skontaktuj się z administratorem.", - "PE.Controllers.Main.errorDataEncrypted": "Otrzymano zaszyfrowane zmiany, nie można ich odszyfrować.", - "PE.Controllers.Main.errorDataRange": "Błędny zakres danych.", - "PE.Controllers.Main.errorDefaultMessage": "Kod błędu: %1", - "PE.Controllers.Main.errorFilePassProtect": "Dokument jest chroniony hasłem i nie może być otwarty.", - "PE.Controllers.Main.errorFileSizeExceed": "Rozmiar pliku przekracza ustalony limit dla twojego serwera.
            Proszę skontaktować z administratorem twojego Serwera Dokumentów w celu uzyskania szczegółowych informacji.", - "PE.Controllers.Main.errorKeyEncrypt": "Nieznany deskryptor klucza", - "PE.Controllers.Main.errorKeyExpire": "Okres ważności deskryptora klucza wygasł", - "PE.Controllers.Main.errorProcessSaveResult": "Zapisywanie nie powiodło się.", - "PE.Controllers.Main.errorServerVersion": "Wersja edytora została zaktualizowana. Strona zostanie ponownie załadowana, aby zastosować zmiany.", - "PE.Controllers.Main.errorSessionAbsolute": "Sesja edycji dokumentu wygasła. Proszę ponownie załadować stronę.", - "PE.Controllers.Main.errorSessionIdle": "Dokument nie był edytowany przez długi czas. Proszę ponownie załadować stronę.", - "PE.Controllers.Main.errorSessionToken": "Połączenie z serwerem zostało przerwane. Proszę ponownie załadować stronę.", - "PE.Controllers.Main.errorStockChart": "Nieprawidłowa kolejność wierszy. Aby zbudować wykres akcji, umieść dane na arkuszu w następującej kolejności:
            cena otwarcia, cena maksymalna, cena minimalna, cena zamknięcia.", - "PE.Controllers.Main.errorUpdateVersion": "Wersja pliku została zmieniona. Strona zostanie ponownie załadowana.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Połączenie z internetem zostało odzyskane, wersja pliku uległa zmianie.
            Zanim będziesz mógł kontynuować pracę, musisz pobrać plik albo skopiować jego zawartość, aby mieć pewność, że nic nie zostało utracone, a następnie odświeżyć stronę.", - "PE.Controllers.Main.errorUserDrop": "Nie można uzyskać dostępu do tego pliku.", - "PE.Controllers.Main.errorUsersExceed": "Liczba użytkowników została przekroczona.", - "PE.Controllers.Main.errorViewerDisconnect": "Połączenie zostało utracone. Nadal możesz przeglądać dokument,
            ale nie będzie mógł go pobrać do momentu przywrócenia połączenia.", - "PE.Controllers.Main.leavePageText": "Masz niezapisane zmiany w tym dokumencie. Kliknij przycisk 'Zostań na tej stronie', aby poczekać na automatyczny zapis dokumentu. Kliknij przycisk \"Pozostaw tę stronę\", aby usunąć wszystkie niezapisane zmiany.", - "PE.Controllers.Main.loadFontsTextText": "Ładowanie danych...", - "PE.Controllers.Main.loadFontsTitleText": "Ładowanie danych", - "PE.Controllers.Main.loadFontTextText": "Ładowanie danych...", - "PE.Controllers.Main.loadFontTitleText": "Ładowanie danych", - "PE.Controllers.Main.loadImagesTextText": "Ładowanie obrazów...", - "PE.Controllers.Main.loadImagesTitleText": "Ładowanie obrazów", - "PE.Controllers.Main.loadImageTextText": "Ładowanie obrazu", - "PE.Controllers.Main.loadImageTitleText": "Ładowanie obrazu", - "PE.Controllers.Main.loadingDocumentTextText": "Ładowanie prezentacji...", - "PE.Controllers.Main.loadingDocumentTitleText": "Ładowanie prezentacji", - "PE.Controllers.Main.loadThemeTextText": "Ładowanie motywu...", - "PE.Controllers.Main.loadThemeTitleText": "Ładowanie motywu", - "PE.Controllers.Main.notcriticalErrorTitle": "Ostrzeżenie", - "PE.Controllers.Main.openErrorText": "Wystąpił błąd podczas otwierania pliku", - "PE.Controllers.Main.openTextText": "Otwieranie dokumentu...", - "PE.Controllers.Main.openTitleText": "Otwieranie dokumentu", - "PE.Controllers.Main.printTextText": "Drukowanie dokumentu...", - "PE.Controllers.Main.printTitleText": "Drukowanie dokumentu", - "PE.Controllers.Main.reloadButtonText": "Przeładuj stronę", - "PE.Controllers.Main.requestEditFailedMessageText": "Ktoś właśnie edytuje ten dokument. Proszę spróbuj później.", - "PE.Controllers.Main.requestEditFailedTitleText": "Odmowa dostępu", - "PE.Controllers.Main.saveErrorText": "Wystąpił błąd podczas zapisywania pliku", - "PE.Controllers.Main.savePreparingText": "Przygotowywanie do zapisu", - "PE.Controllers.Main.savePreparingTitle": "Przygotowywanie do zapisu. Proszę czekać...", - "PE.Controllers.Main.saveTextText": "Zapisywanie dokumentu...", - "PE.Controllers.Main.saveTitleText": "Zapisywanie dokumentu", - "PE.Controllers.Main.scriptLoadError": "Połączenie jest zbyt wolne, niektóre komponenty mogły nie zostać załadowane. Proszę odświeżyć stronę.", - "PE.Controllers.Main.splitDividerErrorText": "Liczba wierszy musi być dzielnikiem %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Liczba kolumn musi być mniejsza niż %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Liczba wierszy musi być mniejsza niż %1", - "PE.Controllers.Main.textAnonymous": "Anonimowy użytkownik ", - "PE.Controllers.Main.textBack": "Powrót", - "PE.Controllers.Main.textBuyNow": "Odwiedź stronę web", - "PE.Controllers.Main.textCancel": "Anuluj", - "PE.Controllers.Main.textClose": "Zamknij", - "PE.Controllers.Main.textCloseTip": "Dotknij, aby zamknąć podpowiedź.", - "PE.Controllers.Main.textContactUs": "Dział sprzedaży", - "PE.Controllers.Main.textDone": "Gotowe", - "PE.Controllers.Main.textGuest": "Gość", - "PE.Controllers.Main.textHasMacros": "Plik zawiera makra automatyczne.
            Czy chcesz uruchomić te makra?", - "PE.Controllers.Main.textLoadingDocument": "Ładowanie prezentacji", - "PE.Controllers.Main.textNo": "Nie", - "PE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE wersja open source", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Płatna funkcja", - "PE.Controllers.Main.textPassword": "Hasło", - "PE.Controllers.Main.textPreloader": "Ładowanie...", - "PE.Controllers.Main.textRemember": "Zapamiętaj mój wybór dla wszystkich plików", - "PE.Controllers.Main.textShape": "Kształt", - "PE.Controllers.Main.textTryUndoRedo": "Funkcje Cofnij/Ponów są wyłączone w trybie Szybkim współtworzenia.", - "PE.Controllers.Main.textUsername": "Nazwa użytkownika", - "PE.Controllers.Main.textYes": "Tak", - "PE.Controllers.Main.titleLicenseExp": "Upłynął okres ważności licencji", - "PE.Controllers.Main.titleServerVersion": "Zaktualizowano edytor", - "PE.Controllers.Main.txtAddFirstSlide": "Kliknij, aby dodać pierwszy slajd", - "PE.Controllers.Main.txtArt": "Twój tekst tutaj", - "PE.Controllers.Main.txtBasicShapes": "Kształty podstawowe", - "PE.Controllers.Main.txtButtons": "Przyciski", - "PE.Controllers.Main.txtCallouts": "Objaśnienia", - "PE.Controllers.Main.txtCharts": "Wykresy", - "PE.Controllers.Main.txtClipArt": "Klipart", - "PE.Controllers.Main.txtDateTime": "Data i czas", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Tytuł wykresu", - "PE.Controllers.Main.txtEditingMode": "Ustaw tryb edycji...", - "PE.Controllers.Main.txtFiguredArrows": "Strzałki", - "PE.Controllers.Main.txtFooter": "Stopka", - "PE.Controllers.Main.txtHeader": "Nagłówek", - "PE.Controllers.Main.txtImage": "Obraz", - "PE.Controllers.Main.txtLines": "Linie", - "PE.Controllers.Main.txtMath": "Matematyczne", - "PE.Controllers.Main.txtMedia": "Klip multimedialny", - "PE.Controllers.Main.txtNeedSynchronize": "Masz aktualizacje", - "PE.Controllers.Main.txtPicture": "Obraz", - "PE.Controllers.Main.txtProtected": "Gdy wpiszesz hasło i otworzysz plik, obecne hasło dla pliku zostanie zresetowane ", - "PE.Controllers.Main.txtRectangles": "Prostokąty", - "PE.Controllers.Main.txtSeries": "Serie", - "PE.Controllers.Main.txtSldLtTBlank": "Pusty", - "PE.Controllers.Main.txtSldLtTChart": "Wykres", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Wykres i tekst", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art and Text", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Grafika i tekst pionowy", - "PE.Controllers.Main.txtSldLtTCust": "Niestandardowy", - "PE.Controllers.Main.txtSldLtTDgm": "Diagram", - "PE.Controllers.Main.txtSldLtTFourObj": "Cztery obiekty", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Media i tekst", - "PE.Controllers.Main.txtSldLtTObj": "Tytuł i obiekt", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Obiekt i dwa obiekty", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Obiekt i tekst", - "PE.Controllers.Main.txtSldLtTObjOnly": "Obiekt", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Obiekt nad tekstem", - "PE.Controllers.Main.txtSldLtTObjTx": "Tytuł, Obiekt i Podpis", - "PE.Controllers.Main.txtSldLtTPicTx": "Obraz i napis", - "PE.Controllers.Main.txtSldLtTSecHead": "Nagłówek sekcji", - "PE.Controllers.Main.txtSldLtTTbl": "Tabela", - "PE.Controllers.Main.txtSldLtTTitle": "Tytuł", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Tylko tytuł", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Dwie kolumny tekstowe", - "PE.Controllers.Main.txtSldLtTTwoObj": "Dwa obiekty", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Dwa obiekty i obiekt", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Dwa obiekty i tekst", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Dwa obiekty nad tekstem", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Dwa teksty i dwa obiekty", - "PE.Controllers.Main.txtSldLtTTx": "Tekst", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Tekst i wykres", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Tekst i obrazek", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Tekst i media", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Tekst i obiekt", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Tekst i dwa obiekty", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Tekst nad obiektem", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Pionowy tytuł i tekst", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Pionowy tytuł i tekst nad wykresem", - "PE.Controllers.Main.txtSldLtTVertTx": "Pionowy tekst", - "PE.Controllers.Main.txtSlideNumber": "Numer slajdu", - "PE.Controllers.Main.txtSlideSubtitle": "Podtytuł slajdu", - "PE.Controllers.Main.txtSlideText": "Treść slajdu", - "PE.Controllers.Main.txtSlideTitle": "Tytuł slajdu", - "PE.Controllers.Main.txtStarsRibbons": "Gwiazdy i wstążki", - "PE.Controllers.Main.txtXAxis": "Oś X", - "PE.Controllers.Main.txtYAxis": "Oś Y", - "PE.Controllers.Main.unknownErrorText": "Nieznany błąd.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Twoja przeglądarka nie jest wspierana.", - "PE.Controllers.Main.uploadImageExtMessage": "Nieznany format obrazu.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Brak zdjęć.", - "PE.Controllers.Main.uploadImageSizeMessage": "Maksymalny rozmiar obrazu został przekroczony.", - "PE.Controllers.Main.uploadImageTextText": "Wysyłanie obrazu...", - "PE.Controllers.Main.uploadImageTitleText": "Wysyłanie obrazu", - "PE.Controllers.Main.waitText": "Proszę czekać...", - "PE.Controllers.Main.warnLicenseExp": "Twoja licencja wygasła.
            Zaktualizuj licencję i odśwież stronę.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "Licencja wygasła.
            Nie masz dostępu do edycji dokumentu.
            Proszę skontaktować się ze swoim administratorem.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "Licencja musi zostać odnowiona.
            Masz ograniczony dostęp do edycji dokumentu.
            Skontaktuj się ze swoim administratorem, aby uzyskać pełny dostęp.", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Schematy kolorów", - "PE.Controllers.Main.warnNoLicense": "Używasz wersji %1 w wersji open source. Wersja ma ograniczenia dla jednoczesnych połączeń z serwerem dokumentów (po 20 połączeń naraz). Jeśli potrzebujesz więcej, rozważ zakup licencji komercyjnej.", - "PE.Controllers.Main.warnProcessRightsChange": "Nie masz prawa edytować tego pliku.", - "PE.Controllers.Search.textNoTextFound": "Nie znaleziono tekstu", - "PE.Controllers.Search.textReplaceAll": "Zamień wszystko", - "PE.Controllers.Settings.notcriticalErrorTitle": "Ostrzeżenie", - "PE.Controllers.Settings.txtLoading": "Ładowanie...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Masz niezapisane zmiany w tym dokumencie. Kliknij przycisk 'Zostań na tej stronie', aby poczekać na automatyczny zapis dokumentu. Kliknij przycisk \"Pozostaw tę stronę\", aby usunąć wszystkie niezapisane zmiany.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Opuszczasz aplikację", - "PE.Controllers.Toolbar.leaveButtonText": "Zostaw tę stronę", - "PE.Controllers.Toolbar.stayButtonText": "Zostań na tej stronie", - "PE.Views.AddImage.textAddress": "adres", - "PE.Views.AddImage.textBack": "Powrót", - "PE.Views.AddImage.textFromLibrary": "Obraz z biblioteki", - "PE.Views.AddImage.textFromURL": "Obraz z URL", - "PE.Views.AddImage.textImageURL": "Adres URL obrazu", - "PE.Views.AddImage.textInsertImage": "Wstaw obraz", - "PE.Views.AddImage.textLinkSettings": "Ustawienia linku", - "PE.Views.AddLink.textBack": "Powrót", - "PE.Views.AddLink.textDisplay": "Pokaż", - "PE.Views.AddLink.textExternalLink": "Link zewnętrzny", - "PE.Views.AddLink.textFirst": "Pierwszy slajd", - "PE.Views.AddLink.textInsert": "Wstawić", - "PE.Views.AddLink.textInternalLink": "Slajd w tej prezentacji", - "PE.Views.AddLink.textLast": "Ostatni slajd", - "PE.Views.AddLink.textLink": "Link", - "PE.Views.AddLink.textLinkSlide": "Link do", - "PE.Views.AddLink.textLinkType": "Typ linku", - "PE.Views.AddLink.textNext": "Następny slajd", - "PE.Views.AddLink.textNumber": "Numer slajdu", - "PE.Views.AddLink.textPrev": "Poprzedni slajd", - "PE.Views.AddLink.textTip": "Wskazówka", - "PE.Views.AddOther.textAddComment": "Dodaj komentarz", - "PE.Views.AddOther.textBack": "Wstecz", - "PE.Views.AddOther.textComment": "Komentarz", - "PE.Views.AddOther.textDisplay": "Pokaż", - "PE.Views.AddOther.textDone": "Gotowe", - "PE.Views.AddOther.textExternalLink": "Link zewnętrzny", - "PE.Views.AddOther.textFirst": "Pierwszy slajd", - "PE.Views.AddOther.textInsert": "Wstaw", - "PE.Views.AddOther.textInternalLink": "Slajd w tej prezentacji", - "PE.Views.AddOther.textLast": "Ostatni slajd", - "PE.Views.AddOther.textLink": "Link", - "PE.Views.AddOther.textLinkSlide": "Link do", - "PE.Views.AddOther.textLinkType": "Typ linku", - "PE.Views.AddOther.textNext": "Następny slajd", - "PE.Views.AddOther.textNumber": "Numer slajdu", - "PE.Views.AddOther.textPrev": "Poprzedni slajd", - "PE.Views.AddOther.textTable": "Tabela", - "PE.Views.AddOther.textTip": "Wskazówka", - "PE.Views.EditChart.textAddCustomColor": "Dodaj niestandardowy kolor", - "PE.Views.EditChart.textAlign": "Wyrównaj", - "PE.Views.EditChart.textAlignBottom": "Wyrównaj do dołu", - "PE.Views.EditChart.textAlignCenter": "Wyrównaj do środka", - "PE.Views.EditChart.textAlignLeft": "Wyrównaj po lewej", - "PE.Views.EditChart.textAlignMiddle": "Wyrównaj do środka", - "PE.Views.EditChart.textAlignRight": "Wyrównaj do prawej", - "PE.Views.EditChart.textAlignTop": "Wyrównaj do góry", - "PE.Views.EditChart.textBack": "Powrót", - "PE.Views.EditChart.textBackward": "Przenieś do tyłu", - "PE.Views.EditChart.textBorder": "Obramowanie", - "PE.Views.EditChart.textColor": "Kolor", - "PE.Views.EditChart.textCustomColor": "Niestandardowy kolor", - "PE.Views.EditChart.textFill": "Wypełnij", - "PE.Views.EditChart.textForward": "Przenieś do przodu", - "PE.Views.EditChart.textRemoveChart": "Usuń wykres", - "PE.Views.EditChart.textReorder": "Zmień kolejność", - "PE.Views.EditChart.textSize": "Rozmiar", - "PE.Views.EditChart.textStyle": "Styl", - "PE.Views.EditChart.textToBackground": "Wyślij do tła", - "PE.Views.EditChart.textToForeground": "Przejdź na pierwszy plan", - "PE.Views.EditChart.textType": "Typ", - "PE.Views.EditChart.txtDistribHor": "Rozdziel poziomo", - "PE.Views.EditChart.txtDistribVert": "Rozdziel pionowo", - "PE.Views.EditImage.textAddress": "adres", - "PE.Views.EditImage.textAlign": "Wyrównaj", - "PE.Views.EditImage.textAlignBottom": "Wyrównaj do dołu", - "PE.Views.EditImage.textAlignCenter": "Wyrównaj do środka", - "PE.Views.EditImage.textAlignLeft": "Wyrównaj po lewej", - "PE.Views.EditImage.textAlignMiddle": "Wyrównaj do środka", - "PE.Views.EditImage.textAlignRight": "Wyrównaj do prawej", - "PE.Views.EditImage.textAlignTop": "Wyrównaj do góry", - "PE.Views.EditImage.textBack": "Powrót", - "PE.Views.EditImage.textBackward": "Przenieś do tyłu", - "PE.Views.EditImage.textDefault": "Domyślny rozmiar", - "PE.Views.EditImage.textForward": "Przenieś do przodu", - "PE.Views.EditImage.textFromLibrary": "Obraz z biblioteki", - "PE.Views.EditImage.textFromURL": "Obraz z URL", - "PE.Views.EditImage.textImageURL": "Adres URL obrazu", - "PE.Views.EditImage.textLinkSettings": "Ustawienia linku", - "PE.Views.EditImage.textRemove": "Usuń obraz", - "PE.Views.EditImage.textReorder": "Zmień kolejność", - "PE.Views.EditImage.textReplace": "Zamienić", - "PE.Views.EditImage.textReplaceImg": "Zamień obraz", - "PE.Views.EditImage.textToBackground": "Wyślij do tła", - "PE.Views.EditImage.textToForeground": "Przejdź na pierwszy plan", - "PE.Views.EditImage.txtDistribHor": "Rozdziel poziomo", - "PE.Views.EditImage.txtDistribVert": "Rozdziel pionowo", - "PE.Views.EditLink.textBack": "Powrót", - "PE.Views.EditLink.textDisplay": "Pokaż", - "PE.Views.EditLink.textEdit": "Edytuj link", - "PE.Views.EditLink.textExternalLink": "Link zewnętrzny", - "PE.Views.EditLink.textFirst": "Pierwszy slajd", - "PE.Views.EditLink.textInternalLink": "Slajd w tej prezentacji", - "PE.Views.EditLink.textLast": "Ostatni slajd", - "PE.Views.EditLink.textLink": "Link", - "PE.Views.EditLink.textLinkSlide": "Link do", - "PE.Views.EditLink.textLinkType": "Typ linku", - "PE.Views.EditLink.textNext": "Następny slajd", - "PE.Views.EditLink.textNumber": "Numer slajdu", - "PE.Views.EditLink.textPrev": "Poprzedni slajd", - "PE.Views.EditLink.textRemove": "Usuń link", - "PE.Views.EditLink.textTip": "Wskazówka", - "PE.Views.EditShape.textAddCustomColor": "Dodaj niestandardowy kolor", - "PE.Views.EditShape.textAlign": "Wyrównaj", - "PE.Views.EditShape.textAlignBottom": "Wyrównaj do dołu", - "PE.Views.EditShape.textAlignCenter": "Wyrównaj do środka", - "PE.Views.EditShape.textAlignLeft": "Wyrównaj po lewej", - "PE.Views.EditShape.textAlignMiddle": "Wyrównaj do środka", - "PE.Views.EditShape.textAlignRight": "Wyrównaj do prawej", - "PE.Views.EditShape.textAlignTop": "Wyrównaj do góry", - "PE.Views.EditShape.textBack": "Powrót", - "PE.Views.EditShape.textBackward": "Przenieś do tyłu", - "PE.Views.EditShape.textBorder": "Obramowanie", - "PE.Views.EditShape.textColor": "Kolor", - "PE.Views.EditShape.textCustomColor": "Niestandardowy kolor", - "PE.Views.EditShape.textEffects": "Efekty", - "PE.Views.EditShape.textFill": "Wypełnij", - "PE.Views.EditShape.textForward": "Przenieś do przodu", - "PE.Views.EditShape.textOpacity": "Nieprzezroczystość", - "PE.Views.EditShape.textRemoveShape": "Usuń kształt", - "PE.Views.EditShape.textReorder": "Zmień kolejność", - "PE.Views.EditShape.textReplace": "Zamienić", - "PE.Views.EditShape.textSize": "Rozmiar", - "PE.Views.EditShape.textStyle": "Styl", - "PE.Views.EditShape.textToBackground": "Wyślij do tła", - "PE.Views.EditShape.textToForeground": "Przejdź na pierwszy plan", - "PE.Views.EditShape.txtDistribHor": "Rozdziel poziomo", - "PE.Views.EditShape.txtDistribVert": "Rozdziel pionowo", - "PE.Views.EditSlide.textAddCustomColor": "Dodaj niestandardowy kolor", - "PE.Views.EditSlide.textApplyAll": "Zatwierdź dla wszystkich slajdów", - "PE.Views.EditSlide.textBack": "Powrót", - "PE.Views.EditSlide.textBlack": "Przez czarne", - "PE.Views.EditSlide.textBottom": "Dół", - "PE.Views.EditSlide.textBottomLeft": "Na dole po lewej", - "PE.Views.EditSlide.textBottomRight": "Prawy dolny", - "PE.Views.EditSlide.textClock": "Zegar", - "PE.Views.EditSlide.textClockwise": "Zgodnie z ruchem wskazówek zegara", - "PE.Views.EditSlide.textColor": "Kolor", - "PE.Views.EditSlide.textCounterclockwise": "Przeciwnie do ruchu wskazówek zegara", - "PE.Views.EditSlide.textCover": "Pokryj", - "PE.Views.EditSlide.textCustomColor": "Niestandardowy kolor", - "PE.Views.EditSlide.textDelay": "Opóźnienie", - "PE.Views.EditSlide.textDuplicateSlide": "Duplikat slajdu", - "PE.Views.EditSlide.textDuration": "Trwanie", - "PE.Views.EditSlide.textEffect": "Efekt", - "PE.Views.EditSlide.textFade": "Blaknąć", - "PE.Views.EditSlide.textFill": "Wypełnij", - "PE.Views.EditSlide.textHorizontalIn": "W poziomie do środka", - "PE.Views.EditSlide.textHorizontalOut": "W poziomie na zewnątrz", - "PE.Views.EditSlide.textLayout": "Układ", - "PE.Views.EditSlide.textLeft": "Lewy", - "PE.Views.EditSlide.textNone": "Nie", - "PE.Views.EditSlide.textOpacity": "Nieprzezroczystość", - "PE.Views.EditSlide.textPush": "Pchnij", - "PE.Views.EditSlide.textRemoveSlide": "Usuń slajd", - "PE.Views.EditSlide.textRight": "Prawy", - "PE.Views.EditSlide.textSmoothly": "Płynnie", - "PE.Views.EditSlide.textSplit": "Podziel", - "PE.Views.EditSlide.textStartOnClick": "Zacznij od kliknięcia", - "PE.Views.EditSlide.textStyle": "Styl", - "PE.Views.EditSlide.textTheme": "Motyw", - "PE.Views.EditSlide.textTop": "Góra", - "PE.Views.EditSlide.textTopLeft": "Lewy górny", - "PE.Views.EditSlide.textTopRight": "W prawym górnym rogu", - "PE.Views.EditSlide.textTransition": "Przejście", - "PE.Views.EditSlide.textType": "Typ", - "PE.Views.EditSlide.textUnCover": "Odkryj", - "PE.Views.EditSlide.textVerticalIn": "W pionie", - "PE.Views.EditSlide.textVerticalOut": "W pionie na zewnątrz", - "PE.Views.EditSlide.textWedge": "Zaklinuj", - "PE.Views.EditSlide.textWipe": "Wytrzyj", - "PE.Views.EditSlide.textZoom": "Powiększenie", - "PE.Views.EditSlide.textZoomIn": "Powiększ", - "PE.Views.EditSlide.textZoomOut": "Pomniejsz", - "PE.Views.EditSlide.textZoomRotate": "Powiększenie i obrót", - "PE.Views.EditTable.textAddCustomColor": "Dodaj niestandardowy kolor", - "PE.Views.EditTable.textAlign": "Wyrównaj", - "PE.Views.EditTable.textAlignBottom": "Wyrównaj do dołu", - "PE.Views.EditTable.textAlignCenter": "Wyrównaj do środka", - "PE.Views.EditTable.textAlignLeft": "Wyrównaj po lewej", - "PE.Views.EditTable.textAlignMiddle": "Wyrównaj do środka", - "PE.Views.EditTable.textAlignRight": "Wyrównaj do prawej", - "PE.Views.EditTable.textAlignTop": "Wyrównaj do góry", - "PE.Views.EditTable.textBack": "Powrót", - "PE.Views.EditTable.textBackward": "Przenieś do tyłu", - "PE.Views.EditTable.textBandedColumn": "Kolumna w paski", - "PE.Views.EditTable.textBandedRow": "Na przemian wiersze", - "PE.Views.EditTable.textBorder": "Obramowanie", - "PE.Views.EditTable.textCellMargins": "Marginesy komórki", - "PE.Views.EditTable.textColor": "Kolor", - "PE.Views.EditTable.textCustomColor": "Niestandardowy kolor", - "PE.Views.EditTable.textFill": "Wypełnij", - "PE.Views.EditTable.textFirstColumn": "Pierwsza kolumna", - "PE.Views.EditTable.textForward": "Przenieś do przodu", - "PE.Views.EditTable.textHeaderRow": "Wiersz nagłówka", - "PE.Views.EditTable.textLastColumn": "Ostatnia kolumna", - "PE.Views.EditTable.textOptions": "Opcje", - "PE.Views.EditTable.textRemoveTable": "Usuń tabelę", - "PE.Views.EditTable.textReorder": "Zmień kolejność", - "PE.Views.EditTable.textSize": "Rozmiar", - "PE.Views.EditTable.textStyle": "Styl", - "PE.Views.EditTable.textStyleOptions": "Opcje stylu", - "PE.Views.EditTable.textTableOptions": "Opcje tabeli", - "PE.Views.EditTable.textToBackground": "Wyślij do tła", - "PE.Views.EditTable.textToForeground": "Przejdź na pierwszy plan", - "PE.Views.EditTable.textTotalRow": "Cały wiersz", - "PE.Views.EditTable.txtDistribHor": "Rozdziel poziomo", - "PE.Views.EditTable.txtDistribVert": "Rozdziel pionowo", - "PE.Views.EditText.textAddCustomColor": "Dodaj niestandardowy kolor", - "PE.Views.EditText.textAdditional": "Inne funkcje", - "PE.Views.EditText.textAdditionalFormat": "Dodatkowe formatowanie", - "PE.Views.EditText.textAfter": "po", - "PE.Views.EditText.textAllCaps": "Wszystkie duże litery", - "PE.Views.EditText.textAutomatic": "Automatyczny", - "PE.Views.EditText.textBack": "Powrót", - "PE.Views.EditText.textBefore": "Przed", - "PE.Views.EditText.textBullets": "Lista punktowa", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Niestandardowy kolor", - "PE.Views.EditText.textDblStrikethrough": "Podwójne przekreślenie", - "PE.Views.EditText.textDblSuperscript": "Indeks górny", - "PE.Views.EditText.textFontColor": "Kolor czcionki", - "PE.Views.EditText.textFontColors": "Kolory czcionki", - "PE.Views.EditText.textFonts": "Czcionki", - "PE.Views.EditText.textFromText": "Odległość od tekstu", - "PE.Views.EditText.textLetterSpacing": "Odstęp między literami", - "PE.Views.EditText.textLineSpacing": "Rozstaw wierszy", - "PE.Views.EditText.textNone": "Nie", - "PE.Views.EditText.textNumbers": "Liczby", - "PE.Views.EditText.textSize": "Rozmiar", - "PE.Views.EditText.textSmallCaps": "Małe litery", - "PE.Views.EditText.textStrikethrough": "Przekreślony", - "PE.Views.EditText.textSubscript": "Indeks", - "PE.Views.Search.textCase": "Rozróżniana wielkość liter", - "PE.Views.Search.textDone": "Gotowe", - "PE.Views.Search.textFind": "Znajdź", - "PE.Views.Search.textFindAndReplace": "Znajdź i zamień", - "PE.Views.Search.textReplace": "Zamień", - "PE.Views.Search.textSearch": "Wyszukiwanie", - "PE.Views.Settings. textComment": "Komentarz", - "PE.Views.Settings.mniSlideStandard": "Standard (4: 3)", - "PE.Views.Settings.mniSlideWide": "Ekran panoramiczny (16:9)", - "PE.Views.Settings.textAbout": "O programie", - "PE.Views.Settings.textAddress": "adres", - "PE.Views.Settings.textApplication": "Aplikacja", - "PE.Views.Settings.textApplicationSettings": "Ustawienia aplikacji", - "PE.Views.Settings.textAuthor": "Autor", - "PE.Views.Settings.textBack": "Powrót", - "PE.Views.Settings.textCentimeter": "Centymetr", - "PE.Views.Settings.textCollaboration": "Współpraca", - "PE.Views.Settings.textCreated": "Utworzono", - "PE.Views.Settings.textCreateDate": "Data utworzenia", - "PE.Views.Settings.textDisableAll": "Wyłącz Wszystkie", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Wyłącz wszystkie makra z powiadomieniem", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Wyłącz wszystkie makra bez powiadomienia", - "PE.Views.Settings.textDone": "Gotowe", - "PE.Views.Settings.textDownload": "Pobierz", - "PE.Views.Settings.textDownloadAs": "Pobierz jako...", - "PE.Views.Settings.textEditPresent": "Edytuj prezentację", - "PE.Views.Settings.textEmail": "e-mail", - "PE.Views.Settings.textEnableAll": "Włącz Wszystkie", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Włącz wszystkie makra z powiadomieniem", - "PE.Views.Settings.textFind": "Znajdź", - "PE.Views.Settings.textFindAndReplace": "Znajdź i zamień", - "PE.Views.Settings.textHelp": "Pomoc", - "PE.Views.Settings.textInch": "Cal", - "PE.Views.Settings.textLastModified": "Ostatnio modyfikowane", - "PE.Views.Settings.textLastModifiedBy": "Ostatnie modyfikowane przez", - "PE.Views.Settings.textLoading": "Ładowanie...", - "PE.Views.Settings.textLocation": "Lokalizacja", - "PE.Views.Settings.textMacrosSettings": "Ustawienia Makr", - "PE.Views.Settings.textOwner": "Właściciel", - "PE.Views.Settings.textPoint": "Punkt", - "PE.Views.Settings.textPoweredBy": "zasilany przez", - "PE.Views.Settings.textPresentInfo": "Informacje o prezentacji", - "PE.Views.Settings.textPresentSettings": "Ustawienia Prezentacji", - "PE.Views.Settings.textPresentSetup": "Konfiguracja prezentacji", - "PE.Views.Settings.textPresentTitle": "Tytuł prezentacji", - "PE.Views.Settings.textPrint": "Drukuj", - "PE.Views.Settings.textSettings": "Ustawienia", - "PE.Views.Settings.textShowNotification": "Pokaż powiadomienie", - "PE.Views.Settings.textSlideSize": "Rozmiar slajdu", - "PE.Views.Settings.textSpellcheck": "Sprawdzanie pisowni", - "PE.Views.Settings.textSubject": "Temat", - "PE.Views.Settings.textTel": "tel", - "PE.Views.Settings.textTitle": "Tytuł", - "PE.Views.Settings.textUnitOfMeasurement": "Jednostka miary", - "PE.Views.Settings.textUploaded": "Przesłano", - "PE.Views.Settings.textVersion": "Wersja", - "PE.Views.Settings.unknownText": "Nieznany", - "PE.Views.Toolbar.textBack": "Powrót" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/pt.json b/apps/presentationeditor/mobile/locale/pt.json index a33b1a6a2..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/pt.json +++ b/apps/presentationeditor/mobile/locale/pt.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Adicionar resposta", - "Common.Controllers.Collaboration.textCancel": "Cancelar", - "Common.Controllers.Collaboration.textDeleteComment": "Excluir comentários", - "Common.Controllers.Collaboration.textDeleteReply": "Excluir resposta", - "Common.Controllers.Collaboration.textDone": "Concluído", - "Common.Controllers.Collaboration.textEdit": "Editar", - "Common.Controllers.Collaboration.textEditUser": "Usuários que estão editando o arquivo:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Você quer realmente excluir este comentário?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Você realmente quer apagar esta resposta?", - "Common.Controllers.Collaboration.textReopen": "Reabrir", - "Common.Controllers.Collaboration.textResolve": "Resolver", - "Common.Controllers.Collaboration.textYes": "Sim", - "Common.UI.ThemeColorPalette.textCustomColors": "Cores personalizadas", - "Common.UI.ThemeColorPalette.textStandartColors": "Cores padronizadas", - "Common.UI.ThemeColorPalette.textThemeColors": "Cores do tema", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "Pt", - "Common.Views.Collaboration.textAddReply": "Adicionar resposta", - "Common.Views.Collaboration.textBack": "Voltar", - "Common.Views.Collaboration.textCancel": "Cancelar", - "Common.Views.Collaboration.textCollaboration": "Colaboração", - "Common.Views.Collaboration.textDone": "Concluído", - "Common.Views.Collaboration.textEditReply": "Editar resposta", - "Common.Views.Collaboration.textEditUsers": "Usuários", - "Common.Views.Collaboration.textEditСomment": "Editar comentário", - "Common.Views.Collaboration.textNoComments": "Esta apresentação não contém comentários", - "Common.Views.Collaboration.textСomments": "Comentários", - "PE.Controllers.AddContainer.textImage": "Imagem", - "PE.Controllers.AddContainer.textLink": "Link", - "PE.Controllers.AddContainer.textOther": "Outro", - "PE.Controllers.AddContainer.textShape": "Forma", - "PE.Controllers.AddContainer.textSlide": "Slide", - "PE.Controllers.AddContainer.textTable": "Tabela", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Aviso", - "PE.Controllers.AddImage.textEmptyImgUrl": "Você precisa especificar uma URL de imagem.", - "PE.Controllers.AddImage.txtNotUrl": "Este campo deve ser uma URL no formato \"http://www.example.com\"", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Aviso", - "PE.Controllers.AddLink.textDefault": "Texto selecionado", - "PE.Controllers.AddLink.textExternalLink": "Link externo", - "PE.Controllers.AddLink.textFirst": "Primeiro slide", - "PE.Controllers.AddLink.textInternalLink": "Slide nesta apresentação", - "PE.Controllers.AddLink.textLast": "Último slide", - "PE.Controllers.AddLink.textNext": "Próximo slide", - "PE.Controllers.AddLink.textPrev": "Slide anterior", - "PE.Controllers.AddLink.textSlide": "Slide", - "PE.Controllers.AddLink.txtNotUrl": "Este campo deve ser uma URL no formato \"http://www.example.com\"", - "PE.Controllers.AddOther.textCancel": "Cancelar", - "PE.Controllers.AddOther.textContinue": "Continuar", - "PE.Controllers.AddOther.textDelete": "Excluir", - "PE.Controllers.AddOther.textDeleteDraft": "Você realmente quer apagar o rascunho?", - "PE.Controllers.AddTable.textCancel": "Cancelar", - "PE.Controllers.AddTable.textColumns": "Colunas", - "PE.Controllers.AddTable.textRows": "Linhas", - "PE.Controllers.AddTable.textTableSize": "Tamanho da tabela", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Copiar, cortar e colar usando o menu de contexto serão aplicadas apenas a este arquivo.", - "PE.Controllers.DocumentHolder.menuAddComment": "Adicionar comentário", - "PE.Controllers.DocumentHolder.menuAddLink": "Adicionar Link", - "PE.Controllers.DocumentHolder.menuCopy": "Copiar", - "PE.Controllers.DocumentHolder.menuCut": "Cortar", - "PE.Controllers.DocumentHolder.menuDelete": "Excluir", - "PE.Controllers.DocumentHolder.menuEdit": "Editar", - "PE.Controllers.DocumentHolder.menuMore": "Mais", - "PE.Controllers.DocumentHolder.menuOpenLink": "Abrir link", - "PE.Controllers.DocumentHolder.menuPaste": "Colar", - "PE.Controllers.DocumentHolder.menuViewComment": "Ver Comentário", - "PE.Controllers.DocumentHolder.sheetCancel": "Cancelar", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copiar, Cortar e Colar", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Não exibir novamente", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Fim da exibição de slides. Clique para sair.", - "PE.Controllers.EditContainer.textChart": "Gráfico", - "PE.Controllers.EditContainer.textHyperlink": "Hiperlink", - "PE.Controllers.EditContainer.textImage": "Imagem", - "PE.Controllers.EditContainer.textSettings": "Configurações", - "PE.Controllers.EditContainer.textShape": "Forma", - "PE.Controllers.EditContainer.textSlide": "Slide", - "PE.Controllers.EditContainer.textTable": "Tabela", - "PE.Controllers.EditContainer.textText": "Тexto", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Aviso", - "PE.Controllers.EditImage.textEmptyImgUrl": "Você precisa especificar uma URL de imagem.", - "PE.Controllers.EditImage.txtNotUrl": "Este campo deve ser uma URL no formato \"http://www.example.com\"", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Aviso", - "PE.Controllers.EditLink.textDefault": "Texto selecionado", - "PE.Controllers.EditLink.textExternalLink": "Link externo", - "PE.Controllers.EditLink.textFirst": "Primeiro slide", - "PE.Controllers.EditLink.textInternalLink": "Slide nesta apresentação", - "PE.Controllers.EditLink.textLast": "Último slide", - "PE.Controllers.EditLink.textNext": "Próximo slide", - "PE.Controllers.EditLink.textPrev": "Slide anterior", - "PE.Controllers.EditLink.textSlide": "Slide", - "PE.Controllers.EditLink.txtNotUrl": "Este campo deve ser uma URL no formato \"http://www.example.com\"", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Automático", - "PE.Controllers.EditText.textFonts": "Fontes", - "PE.Controllers.EditText.textPt": "Pt", - "PE.Controllers.Main.advDRMEnterPassword": "Digite sua senha:", - "PE.Controllers.Main.advDRMOptions": "Arquivo protegido", - "PE.Controllers.Main.advDRMPassword": "Senha", - "PE.Controllers.Main.applyChangesTextText": "Carregando dados...", - "PE.Controllers.Main.applyChangesTitleText": "Carregando dados", - "PE.Controllers.Main.closeButtonText": "Fechar Arquivo", - "PE.Controllers.Main.convertationTimeoutText": "Tempo limite de conversão excedido.", - "PE.Controllers.Main.criticalErrorExtText": "Pressione \"OK\" para voltar para a lista de documento.", - "PE.Controllers.Main.criticalErrorTitle": "Erro", - "PE.Controllers.Main.downloadErrorText": "Transferência falhou.", - "PE.Controllers.Main.downloadTextText": "Transferindo apresentação...", - "PE.Controllers.Main.downloadTitleText": "Tranferindo Apresentação", - "PE.Controllers.Main.errorAccessDeny": "Você está tentando executar uma ação para a qual não tem direitos.
            Entre em contato com o administrador de Servidor de Documentos.", - "PE.Controllers.Main.errorBadImageUrl": "URL da imagem está incorreta", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Conexão ao servidor perdida. Você não pode mais editar.", - "PE.Controllers.Main.errorConnectToServer": "O documento não pode ser gravado. Verifique as configurações de conexão ou entre em contato com o administrador.
            Quando você clicar no botão 'OK', você será solicitado a transferir o documento.", - "PE.Controllers.Main.errorDatabaseConnection": "Erro externo.
            Erro de conexão do banco de dados. Entre em contato com o suporte.", - "PE.Controllers.Main.errorDataEncrypted": "Alteração criptografadas foram recebidas, e não podem ser decifradas.", - "PE.Controllers.Main.errorDataRange": "Intervalo de dados incorreto.", - "PE.Controllers.Main.errorDefaultMessage": "Código do erro: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Ocorreu um erro.
            Use a opção 'Transferir' para gravar a cópia de backup do arquivo em seu computador.", - "PE.Controllers.Main.errorFilePassProtect": "O documento é protegido por senha e não pode ser aberto.", - "PE.Controllers.Main.errorFileSizeExceed": "O tamanho do arquivo excede o limite de seu servidor.
            Por favor, contate seu administrador de Servidor de Documentos para detalhes.", - "PE.Controllers.Main.errorKeyEncrypt": "Descritor de chave desconhecido", - "PE.Controllers.Main.errorKeyExpire": "Descritor de chave expirado", - "PE.Controllers.Main.errorOpensource": "Usando a versão comunitária gratuita, você pode abrir documentos apenas para visualização. Para acessar editores web móveis, é necessária uma licença comercial.", - "PE.Controllers.Main.errorProcessSaveResult": "O salvamento falhou.", - "PE.Controllers.Main.errorServerVersion": "A versão do editor foi atualizada. A página será recarregada para aplicar as alterações.", - "PE.Controllers.Main.errorSessionAbsolute": "A sessão de edição de documentos expirou. Por favor, atualize a página.", - "PE.Controllers.Main.errorSessionIdle": "O documento ficou sem edição por muito tempo. Por favor atualize a página.", - "PE.Controllers.Main.errorSessionToken": "A conexão com o servidor foi interrompida. Por favor atualize a página.", - "PE.Controllers.Main.errorStockChart": "Ordem da linha incorreta. Para criar um gráfico de ações coloque os dados na planilha na seguinte ordem:
            preço de abertura, preço máx., preço mín., preço de fechamento.", - "PE.Controllers.Main.errorUpdateVersion": "A versão do arquivo foi alterada. A página será recarregada.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "A conexão à internet foi restabelecida, e a versão do arquivo foi alterada.
            Antes de continuar seu trabalho, transfira o arquivo ou copie seu conteúdo para assegurar que nada seja perdido, e então, recarregue esta página.", - "PE.Controllers.Main.errorUserDrop": "O arquivo não pode ser acessado agora.", - "PE.Controllers.Main.errorUsersExceed": "O número de usuários foi excedido", - "PE.Controllers.Main.errorViewerDisconnect": "Conexão perdida. Você ainda pode exibir o documento,
            mas não poderá transferir o arquivo até que a conexão seja restaurada e a página recarregada.", - "PE.Controllers.Main.leavePageText": "Há alterações não gravadas neste documento. Clique em 'Ficar nesta Página' para aguardar o salvamento automático do documento. Clique em 'Sair desta página' para descartar as alterações não gravadas.", - "PE.Controllers.Main.loadFontsTextText": "Carregando dados...", - "PE.Controllers.Main.loadFontsTitleText": "Carregando dados", - "PE.Controllers.Main.loadFontTextText": "Carregando dados...", - "PE.Controllers.Main.loadFontTitleText": "Carregando dados", - "PE.Controllers.Main.loadImagesTextText": "Carregando imagens...", - "PE.Controllers.Main.loadImagesTitleText": "Carregando imagens", - "PE.Controllers.Main.loadImageTextText": "Carregando imagem...", - "PE.Controllers.Main.loadImageTitleText": "Carregando imagem", - "PE.Controllers.Main.loadingDocumentTextText": "Carregando apresentação...", - "PE.Controllers.Main.loadingDocumentTitleText": "Carregando apresentação", - "PE.Controllers.Main.loadThemeTextText": "Carregando temas...", - "PE.Controllers.Main.loadThemeTitleText": "Carregando tema", - "PE.Controllers.Main.notcriticalErrorTitle": "Aviso", - "PE.Controllers.Main.openErrorText": "Ocorreu um erro ao abrir o arquivo.", - "PE.Controllers.Main.openTextText": "Abrindo documento...", - "PE.Controllers.Main.openTitleText": "Abrindo documento", - "PE.Controllers.Main.printTextText": "Imprimindo documento...", - "PE.Controllers.Main.printTitleText": "Imprimindo documento", - "PE.Controllers.Main.reloadButtonText": "Recarregar página", - "PE.Controllers.Main.requestEditFailedMessageText": "Alguém está editando este documento neste momento. Tente novamente mais tarde.", - "PE.Controllers.Main.requestEditFailedTitleText": "Acesso negado", - "PE.Controllers.Main.saveErrorText": "Ocorreu um erro ao gravar o arquivo.", - "PE.Controllers.Main.savePreparingText": "Preparando para gravar", - "PE.Controllers.Main.savePreparingTitle": "Preparando para gravar. Aguarde...", - "PE.Controllers.Main.saveTextText": "Salvando documento...", - "PE.Controllers.Main.saveTitleText": "Salvando documento", - "PE.Controllers.Main.scriptLoadError": "A conexão está muito lenta, e alguns dos componentes não puderam ser carregados. Por favor, recarregue a página.", - "PE.Controllers.Main.splitDividerErrorText": "O número de linhas deve ser um divisor de %1", - "PE.Controllers.Main.splitMaxColsErrorText": "O número de colunas deve ser inferior a %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "O número de linhas deve ser inferior a %1", - "PE.Controllers.Main.textAnonymous": "Anônimo", - "PE.Controllers.Main.textBack": "Voltar", - "PE.Controllers.Main.textBuyNow": "Visitar site", - "PE.Controllers.Main.textCancel": "Cancelar", - "PE.Controllers.Main.textClose": "Fechar", - "PE.Controllers.Main.textCloseTip": "Toque para fechar a dica.", - "PE.Controllers.Main.textContactUs": "Contate as vendas", - "PE.Controllers.Main.textCustomLoader": "Por favor, observe que de acordo com os termos de licença, você não tem autorização para alterar o carregador.
            Por favor, contate o Departamento de Vendas para fazer cotação.", - "PE.Controllers.Main.textDone": "Concluído", - "PE.Controllers.Main.textGuest": "Visitante", - "PE.Controllers.Main.textHasMacros": "O arquivo contém macros automáticas.
            Você quer executar macros?", - "PE.Controllers.Main.textLoadingDocument": "Carregando apresentação", - "PE.Controllers.Main.textNo": "Não", - "PE.Controllers.Main.textNoLicenseTitle": "Limite de licença atingido", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Recurso pago", - "PE.Controllers.Main.textPassword": "Senha", - "PE.Controllers.Main.textPreloader": "Carregando...", - "PE.Controllers.Main.textRemember": "Lembre-se da minha escolha", - "PE.Controllers.Main.textShape": "Forma", - "PE.Controllers.Main.textTryUndoRedo": "As funções Desfazer/Refazer estão desabilitadas para o modo de coedição rápido.", - "PE.Controllers.Main.textUsername": "Nome de usuário", - "PE.Controllers.Main.textYes": "Sim", - "PE.Controllers.Main.titleLicenseExp": "Licença expirada", - "PE.Controllers.Main.titleServerVersion": "Editor atualizado", - "PE.Controllers.Main.txtAddFirstSlide": "Clique para adicionar o primeiro slide", - "PE.Controllers.Main.txtArt": "Seu texto aqui", - "PE.Controllers.Main.txtBasicShapes": "Formas básicas", - "PE.Controllers.Main.txtButtons": "Botões", - "PE.Controllers.Main.txtCallouts": "Textos explicativos", - "PE.Controllers.Main.txtCharts": "Gráficos", - "PE.Controllers.Main.txtClipArt": "Clip Art", - "PE.Controllers.Main.txtDateTime": "Data e Hora", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Título do Gráfico", - "PE.Controllers.Main.txtEditingMode": "Definir modo de edição...", - "PE.Controllers.Main.txtFiguredArrows": "Setas figuradas", - "PE.Controllers.Main.txtFooter": "Rodapé", - "PE.Controllers.Main.txtHeader": "Cabeçalho", - "PE.Controllers.Main.txtImage": "Imagem", - "PE.Controllers.Main.txtLines": "Linhas", - "PE.Controllers.Main.txtMath": "Matemática", - "PE.Controllers.Main.txtMedia": "Média", - "PE.Controllers.Main.txtNeedSynchronize": "Você tem atualizações", - "PE.Controllers.Main.txtPicture": "Imagem", - "PE.Controllers.Main.txtProtected": "Ao abrir o arquivo com sua senha, a senha atual será redefinida.", - "PE.Controllers.Main.txtRectangles": "Retângulos", - "PE.Controllers.Main.txtSeries": "Série", - "PE.Controllers.Main.txtSldLtTBlank": "Branco", - "PE.Controllers.Main.txtSldLtTChart": "Gráfico", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Gráfico e Texto", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art e Texto", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clip Art e Texto vertical", - "PE.Controllers.Main.txtSldLtTCust": "Personalizar", - "PE.Controllers.Main.txtSldLtTDgm": "Diagrama", - "PE.Controllers.Main.txtSldLtTFourObj": "Quatro objetos", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Mídia e Texto", - "PE.Controllers.Main.txtSldLtTObj": "Título e Objeto", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Objeto e Dois objetos", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objeto e Texto", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objeto", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objeto sobre o texto", - "PE.Controllers.Main.txtSldLtTObjTx": "Título, objeto e legenda", - "PE.Controllers.Main.txtSldLtTPicTx": "Imagem e Legenda", - "PE.Controllers.Main.txtSldLtTSecHead": "Cabeçalho da seção", - "PE.Controllers.Main.txtSldLtTTbl": "Tabela", - "PE.Controllers.Main.txtSldLtTTitle": "Título", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Apenas título", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Texto em duas colulas", - "PE.Controllers.Main.txtSldLtTTwoObj": "Dois objetos", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Dois objetos e Objeto", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Dois objetos e Texto", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Dois objetos sobre Texto", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Dois textos e Dois objetos", - "PE.Controllers.Main.txtSldLtTTx": "Тexto", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Texto e Gráfico", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Texto e Clip Art", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Texto e Mídia", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Texto e Objeto", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Texto e Dois objetos", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Texto sobre Objeto", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Título vertical e Texto", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Título vertical e Texto sobre gráfico", - "PE.Controllers.Main.txtSldLtTVertTx": "Texto vertical", - "PE.Controllers.Main.txtSlideNumber": "Número do slide", - "PE.Controllers.Main.txtSlideSubtitle": "Legenda do slide", - "PE.Controllers.Main.txtSlideText": "Texto do slide", - "PE.Controllers.Main.txtSlideTitle": "Título do slide", - "PE.Controllers.Main.txtStarsRibbons": "Estrelas e arco-íris", - "PE.Controllers.Main.txtXAxis": "Eixo X", - "PE.Controllers.Main.txtYAxis": "Eixo Y", - "PE.Controllers.Main.unknownErrorText": "Erro desconhecido.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Seu navegador não é suportado.", - "PE.Controllers.Main.uploadImageExtMessage": "Formato de imagem desconhecido.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Sem imagens carregadas.", - "PE.Controllers.Main.uploadImageSizeMessage": "Limite de tamanho máximo da imagem excedido.", - "PE.Controllers.Main.uploadImageTextText": "Carregando imagem...", - "PE.Controllers.Main.uploadImageTitleText": "Carregando imagem", - "PE.Controllers.Main.waitText": "Aguarde...", - "PE.Controllers.Main.warnLicenseExceeded": "Você atingiu o limite de conexões simultâneas para editores %1. Este documento será aberto apenas para visualização.
            Entre em contato com seu administrador para saber mais.", - "PE.Controllers.Main.warnLicenseExp": "Sua licença expirou.
            Atualize sua licença e atualize a página.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "A licença expirou.
            Você não tem acesso à funcionalidade de edição de documentos.
            Por favor, contate seu administrador.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "A licença precisa ser renovada.
            Você tem acesso limitado à funcionalidade de edição de documentos.
            Entre em contato com o administrador para obter acesso total.", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Você atingiu o limite de usuários para editores %1. Entre em contato com seu administrador para saber mais.", - "PE.Controllers.Main.warnNoLicense": "Você atingiu o limite de conexões simultâneas para editores %1. Este documento será aberto apenas para visualização.
            Entre em contato com a equipe de vendas da %1 para obter os termos de atualização pessoais.", - "PE.Controllers.Main.warnNoLicenseUsers": "Você atingiu o limite de usuários para editores %1.
            Entre em contato com a equipe de vendas da %1 para obter os termos de atualização pessoais.", - "PE.Controllers.Main.warnProcessRightsChange": "Foi negado a você o direito de editar o arquivo.", - "PE.Controllers.Search.textNoTextFound": "Texto não encontrado", - "PE.Controllers.Search.textReplaceAll": "Substituir tudo", - "PE.Controllers.Settings.notcriticalErrorTitle": "Aviso", - "PE.Controllers.Settings.txtLoading": "Carregando...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Há alterações não gravadas neste documento. Clique em 'Ficar nesta Página' para aguardar o salvamento automático do documento. Clique em 'Sair desta página' para descartar as alterações não gravadas.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Você saiu do aplicativo", - "PE.Controllers.Toolbar.leaveButtonText": "Sair desta página", - "PE.Controllers.Toolbar.stayButtonText": "Ficar nesta página", - "PE.Views.AddImage.textAddress": "Endereço", - "PE.Views.AddImage.textBack": "Voltar", - "PE.Views.AddImage.textFromLibrary": "Imagem da biblioteca", - "PE.Views.AddImage.textFromURL": "Imagem da URL", - "PE.Views.AddImage.textImageURL": "URL da imagem", - "PE.Views.AddImage.textInsertImage": "Inserir imagem", - "PE.Views.AddImage.textLinkSettings": "Configurações de link", - "PE.Views.AddLink.textBack": "Voltar", - "PE.Views.AddLink.textDisplay": "Exibir", - "PE.Views.AddLink.textExternalLink": "Link externo", - "PE.Views.AddLink.textFirst": "Primeiro slide", - "PE.Views.AddLink.textInsert": "Inserir", - "PE.Views.AddLink.textInternalLink": "Slide nesta apresentação", - "PE.Views.AddLink.textLast": "Último slide", - "PE.Views.AddLink.textLink": "Link", - "PE.Views.AddLink.textLinkSlide": "Vincular a", - "PE.Views.AddLink.textLinkType": "Tipo de link", - "PE.Views.AddLink.textNext": "Próximo slide", - "PE.Views.AddLink.textNumber": "Número do slide", - "PE.Views.AddLink.textPrev": "Slide anterior", - "PE.Views.AddLink.textTip": "Dica de tela", - "PE.Views.AddOther.textAddComment": "Adicionar comentário", - "PE.Views.AddOther.textBack": "Voltar", - "PE.Views.AddOther.textComment": "Comentário", - "PE.Views.AddOther.textDisplay": "Exibir", - "PE.Views.AddOther.textDone": "Concluído", - "PE.Views.AddOther.textExternalLink": "Link externo", - "PE.Views.AddOther.textFirst": "Primeiro slide", - "PE.Views.AddOther.textInsert": "Inserir", - "PE.Views.AddOther.textInternalLink": "Slide nesta apresentação", - "PE.Views.AddOther.textLast": "Último slide", - "PE.Views.AddOther.textLink": "Link", - "PE.Views.AddOther.textLinkSlide": "Vincular a", - "PE.Views.AddOther.textLinkType": "Tipo de vínculo", - "PE.Views.AddOther.textNext": "Próximo slide", - "PE.Views.AddOther.textNumber": "Número do slide", - "PE.Views.AddOther.textPrev": "Slide anterior", - "PE.Views.AddOther.textTable": "Tabela", - "PE.Views.AddOther.textTip": "Dica de tela", - "PE.Views.EditChart.textAddCustomColor": "Adicionar Cor Personalizada", - "PE.Views.EditChart.textAlign": "Alinhar", - "PE.Views.EditChart.textAlignBottom": "Alinhar à parte inferior", - "PE.Views.EditChart.textAlignCenter": "Alinhar ao centro", - "PE.Views.EditChart.textAlignLeft": "Alinhar à esquerda", - "PE.Views.EditChart.textAlignMiddle": "Alinhar ao meio", - "PE.Views.EditChart.textAlignRight": "Alinhar à direita", - "PE.Views.EditChart.textAlignTop": "Alinhar à parte superior", - "PE.Views.EditChart.textBack": "Voltar", - "PE.Views.EditChart.textBackward": "Mover para trás", - "PE.Views.EditChart.textBorder": "Limite", - "PE.Views.EditChart.textColor": "Cor", - "PE.Views.EditChart.textCustomColor": "Cor personalizada", - "PE.Views.EditChart.textFill": "Preencher", - "PE.Views.EditChart.textForward": "Mover para frente", - "PE.Views.EditChart.textRemoveChart": "Remover gráfico", - "PE.Views.EditChart.textReorder": "Reordenar", - "PE.Views.EditChart.textSize": "Tamanho", - "PE.Views.EditChart.textStyle": "Estilo", - "PE.Views.EditChart.textToBackground": "Enviar para plano de fundo", - "PE.Views.EditChart.textToForeground": "Trazer para primeiro plano", - "PE.Views.EditChart.textType": "Tipo", - "PE.Views.EditChart.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditChart.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditImage.textAddress": "Endereço", - "PE.Views.EditImage.textAlign": "Alinhar", - "PE.Views.EditImage.textAlignBottom": "Alinhar à parte inferior", - "PE.Views.EditImage.textAlignCenter": "Alinhar ao centro", - "PE.Views.EditImage.textAlignLeft": "Alinhar à esquerda", - "PE.Views.EditImage.textAlignMiddle": "Alinhar ao meio", - "PE.Views.EditImage.textAlignRight": "Alinhar à direita", - "PE.Views.EditImage.textAlignTop": "Alinhar à parte superior", - "PE.Views.EditImage.textBack": "Voltar", - "PE.Views.EditImage.textBackward": "Mover para trás", - "PE.Views.EditImage.textDefault": "Tamanho real", - "PE.Views.EditImage.textForward": "Mover para frente", - "PE.Views.EditImage.textFromLibrary": "Imagem da biblioteca", - "PE.Views.EditImage.textFromURL": "Imagem da URL", - "PE.Views.EditImage.textImageURL": "URL da imagem", - "PE.Views.EditImage.textLinkSettings": "Configurações de link", - "PE.Views.EditImage.textRemove": "Remover imagem", - "PE.Views.EditImage.textReorder": "Reordenar", - "PE.Views.EditImage.textReplace": "Substituir", - "PE.Views.EditImage.textReplaceImg": "Substituir imagem", - "PE.Views.EditImage.textToBackground": "Enviar para plano de fundo", - "PE.Views.EditImage.textToForeground": "Trazer para primeiro plano", - "PE.Views.EditImage.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditImage.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditLink.textBack": "Voltar", - "PE.Views.EditLink.textDisplay": "Exibir", - "PE.Views.EditLink.textEdit": "Editar Link", - "PE.Views.EditLink.textExternalLink": "Link externo", - "PE.Views.EditLink.textFirst": "Primeiro slide", - "PE.Views.EditLink.textInternalLink": "Slide nesta apresentação", - "PE.Views.EditLink.textLast": "Último slide", - "PE.Views.EditLink.textLink": "Link", - "PE.Views.EditLink.textLinkSlide": "Vincular a", - "PE.Views.EditLink.textLinkType": "Tipo de link", - "PE.Views.EditLink.textNext": "Próximo slide", - "PE.Views.EditLink.textNumber": "Número do slide", - "PE.Views.EditLink.textPrev": "Slide anterior", - "PE.Views.EditLink.textRemove": "Remover link", - "PE.Views.EditLink.textTip": "Dica de tela", - "PE.Views.EditShape.textAddCustomColor": "Adicionar Cor Personalizada", - "PE.Views.EditShape.textAlign": "Alinhar", - "PE.Views.EditShape.textAlignBottom": "Alinhar à parte inferior", - "PE.Views.EditShape.textAlignCenter": "Alinhar ao centro", - "PE.Views.EditShape.textAlignLeft": "Alinhar à esquerda", - "PE.Views.EditShape.textAlignMiddle": "Alinhar ao meio", - "PE.Views.EditShape.textAlignRight": "Alinhar à direita", - "PE.Views.EditShape.textAlignTop": "Alinhar à parte superior", - "PE.Views.EditShape.textBack": "Voltar", - "PE.Views.EditShape.textBackward": "Mover para trás", - "PE.Views.EditShape.textBorder": "Limite", - "PE.Views.EditShape.textColor": "Cor", - "PE.Views.EditShape.textCustomColor": "Cor personalizada", - "PE.Views.EditShape.textEffects": "Efeitos", - "PE.Views.EditShape.textFill": "Preencher", - "PE.Views.EditShape.textForward": "Mover para frente", - "PE.Views.EditShape.textOpacity": "Opacidade", - "PE.Views.EditShape.textRemoveShape": "Remover forma", - "PE.Views.EditShape.textReorder": "Reordenar", - "PE.Views.EditShape.textReplace": "Substituir", - "PE.Views.EditShape.textSize": "Tamanho", - "PE.Views.EditShape.textStyle": "Estilo", - "PE.Views.EditShape.textToBackground": "Enviar para plano de fundo", - "PE.Views.EditShape.textToForeground": "Trazer para primeiro plano", - "PE.Views.EditShape.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditShape.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditSlide.textAddCustomColor": "Adicionar Cor Personalizada", - "PE.Views.EditSlide.textApplyAll": "Aplicar a todos os slides", - "PE.Views.EditSlide.textBack": "Voltar", - "PE.Views.EditSlide.textBlack": "Através de preto", - "PE.Views.EditSlide.textBottom": "Inferior", - "PE.Views.EditSlide.textBottomLeft": "Inferior esquerdo", - "PE.Views.EditSlide.textBottomRight": "Inferior direito", - "PE.Views.EditSlide.textClock": "Relógio", - "PE.Views.EditSlide.textClockwise": "Sentido horário", - "PE.Views.EditSlide.textColor": "Cor", - "PE.Views.EditSlide.textCounterclockwise": "Sentido anti-horário", - "PE.Views.EditSlide.textCover": "Folha de rosto", - "PE.Views.EditSlide.textCustomColor": "Cor personalizada", - "PE.Views.EditSlide.textDelay": "Atraso", - "PE.Views.EditSlide.textDuplicateSlide": "Slide duplicado", - "PE.Views.EditSlide.textDuration": "Duração", - "PE.Views.EditSlide.textEffect": "Efeito", - "PE.Views.EditSlide.textFade": "Esmaecer", - "PE.Views.EditSlide.textFill": "Preencher", - "PE.Views.EditSlide.textHorizontalIn": "Horizontal para dentro", - "PE.Views.EditSlide.textHorizontalOut": "Horizontal para fora", - "PE.Views.EditSlide.textLayout": "Layout", - "PE.Views.EditSlide.textLeft": "Esquerda", - "PE.Views.EditSlide.textNone": "nenhum", - "PE.Views.EditSlide.textOpacity": "Opacidade", - "PE.Views.EditSlide.textPush": "Empurrar", - "PE.Views.EditSlide.textRemoveSlide": "Excluir slide", - "PE.Views.EditSlide.textRight": "Direita", - "PE.Views.EditSlide.textSmoothly": "Suavemente", - "PE.Views.EditSlide.textSplit": "Dividir", - "PE.Views.EditSlide.textStartOnClick": "Iniciar ao clicar", - "PE.Views.EditSlide.textStyle": "Estilo", - "PE.Views.EditSlide.textTheme": "Tema", - "PE.Views.EditSlide.textTop": "Parte superior", - "PE.Views.EditSlide.textTopLeft": "Parte superior esquerda", - "PE.Views.EditSlide.textTopRight": "Parte superior direita", - "PE.Views.EditSlide.textTransition": "Transição", - "PE.Views.EditSlide.textType": "Tipo", - "PE.Views.EditSlide.textUnCover": "Descobrir", - "PE.Views.EditSlide.textVerticalIn": "Vertical para dentro", - "PE.Views.EditSlide.textVerticalOut": "Vertical para fora", - "PE.Views.EditSlide.textWedge": "Triangular", - "PE.Views.EditSlide.textWipe": "Revelar", - "PE.Views.EditSlide.textZoom": "Zoom", - "PE.Views.EditSlide.textZoomIn": "Ampliar", - "PE.Views.EditSlide.textZoomOut": "Reduzir", - "PE.Views.EditSlide.textZoomRotate": "Zoom e Rotação", - "PE.Views.EditTable.textAddCustomColor": "Adicionar Cor Personalizada", - "PE.Views.EditTable.textAlign": "Alinhar", - "PE.Views.EditTable.textAlignBottom": "Alinhar à parte inferior", - "PE.Views.EditTable.textAlignCenter": "Alinhar ao centro", - "PE.Views.EditTable.textAlignLeft": "Alinhar à esquerda", - "PE.Views.EditTable.textAlignMiddle": "Alinhar ao meio", - "PE.Views.EditTable.textAlignRight": "Alinhar à direita", - "PE.Views.EditTable.textAlignTop": "Alinhar à parte superior", - "PE.Views.EditTable.textBack": "Voltar", - "PE.Views.EditTable.textBackward": "Mover para trás", - "PE.Views.EditTable.textBandedColumn": "Unir Colunas", - "PE.Views.EditTable.textBandedRow": "Unir Faixas", - "PE.Views.EditTable.textBorder": "Limite", - "PE.Views.EditTable.textCellMargins": "Margens da célula", - "PE.Views.EditTable.textColor": "Cor", - "PE.Views.EditTable.textCustomColor": "Cor personalizada", - "PE.Views.EditTable.textFill": "Preencher", - "PE.Views.EditTable.textFirstColumn": "Primeira Coluna", - "PE.Views.EditTable.textForward": "Mover para frente", - "PE.Views.EditTable.textHeaderRow": "Linha de Cabeçalho", - "PE.Views.EditTable.textLastColumn": "Última coluna", - "PE.Views.EditTable.textOptions": "Opções", - "PE.Views.EditTable.textRemoveTable": "Remover tabela", - "PE.Views.EditTable.textReorder": "Reordenar", - "PE.Views.EditTable.textSize": "Tamanho", - "PE.Views.EditTable.textStyle": "Estilo", - "PE.Views.EditTable.textStyleOptions": "Opções de estilo", - "PE.Views.EditTable.textTableOptions": "Opções de tabela", - "PE.Views.EditTable.textToBackground": "Enviar para plano de fundo", - "PE.Views.EditTable.textToForeground": "Trazer para primeiro plano", - "PE.Views.EditTable.textTotalRow": "Linha total", - "PE.Views.EditTable.txtDistribHor": "Distribuir horizontalmente", - "PE.Views.EditTable.txtDistribVert": "Distribuir verticalmente", - "PE.Views.EditText.textAddCustomColor": "Adicionar Cor Personalizada", - "PE.Views.EditText.textAdditional": "Adicional", - "PE.Views.EditText.textAdditionalFormat": "Formatação adicional", - "PE.Views.EditText.textAfter": "Depois", - "PE.Views.EditText.textAllCaps": "Todas maiúsculas", - "PE.Views.EditText.textAutomatic": "Automático", - "PE.Views.EditText.textBack": "Voltar", - "PE.Views.EditText.textBefore": "Antes", - "PE.Views.EditText.textBullets": "Marcadores", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Cor personalizada", - "PE.Views.EditText.textDblStrikethrough": "Tachado duplo", - "PE.Views.EditText.textDblSuperscript": "Sobrescrito", - "PE.Views.EditText.textFontColor": "Cor da fonte", - "PE.Views.EditText.textFontColors": "Cor da Fonte", - "PE.Views.EditText.textFonts": "Fontes", - "PE.Views.EditText.textFromText": "Distância do texto", - "PE.Views.EditText.textLetterSpacing": "Espaçamento de letra", - "PE.Views.EditText.textLineSpacing": "Espaçamento de linha", - "PE.Views.EditText.textNone": "nenhum", - "PE.Views.EditText.textNumbers": "Números", - "PE.Views.EditText.textSize": "Tamanho", - "PE.Views.EditText.textSmallCaps": "Versalete", - "PE.Views.EditText.textStrikethrough": "Taxado", - "PE.Views.EditText.textSubscript": "Subscrito", - "PE.Views.Search.textCase": "Diferenciar Maiúsculas de Minúsculas", - "PE.Views.Search.textDone": "Concluído", - "PE.Views.Search.textFind": "Localizar", - "PE.Views.Search.textFindAndReplace": "Localizar e Substituir", - "PE.Views.Search.textReplace": "Substituir", - "PE.Views.Search.textSearch": "Pesquisar", - "PE.Views.Settings. textComment": "Comentário", - "PE.Views.Settings.mniSlideStandard": "Padrão (4:3)", - "PE.Views.Settings.mniSlideWide": "Widescreen (16:9)", - "PE.Views.Settings.textAbout": "Sobre", - "PE.Views.Settings.textAddress": "endereço", - "PE.Views.Settings.textApplication": "Aplicativo", - "PE.Views.Settings.textApplicationSettings": "Configurações de Aplicativo", - "PE.Views.Settings.textAuthor": "Autor", - "PE.Views.Settings.textBack": "Voltar", - "PE.Views.Settings.textCentimeter": "Centímetro", - "PE.Views.Settings.textCollaboration": "Colaboração", - "PE.Views.Settings.textColorSchemes": "Esquemas de cor", - "PE.Views.Settings.textCreated": "Criado", - "PE.Views.Settings.textCreateDate": "Data de criação", - "PE.Views.Settings.textDisableAll": "Desabilitar tudo", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Desativar todas as macros com uma notificação", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Desativar todas as macros sem uma notificação", - "PE.Views.Settings.textDone": "Concluído", - "PE.Views.Settings.textDownload": "Transferir", - "PE.Views.Settings.textDownloadAs": "Transferir como...", - "PE.Views.Settings.textEditPresent": "Editar apresentação", - "PE.Views.Settings.textEmail": "e-mail", - "PE.Views.Settings.textEnableAll": "Habilitar todos", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Habilitar todas as macros sem uma notificação", - "PE.Views.Settings.textFind": "Localizar", - "PE.Views.Settings.textFindAndReplace": "Localizar e substituir", - "PE.Views.Settings.textHelp": "Ajuda", - "PE.Views.Settings.textInch": "Polegada", - "PE.Views.Settings.textLastModified": "Última modificação", - "PE.Views.Settings.textLastModifiedBy": "Última Modificação Por", - "PE.Views.Settings.textLoading": "Carregando...", - "PE.Views.Settings.textLocation": "Localização", - "PE.Views.Settings.textMacrosSettings": "Configurações de macros", - "PE.Views.Settings.textOwner": "Proprietário", - "PE.Views.Settings.textPoint": "Ponto", - "PE.Views.Settings.textPoweredBy": "Desenvolvido por", - "PE.Views.Settings.textPresentInfo": "Informações da apresentação", - "PE.Views.Settings.textPresentSettings": "Configurações da Apresentação", - "PE.Views.Settings.textPresentSetup": "Configuração da apresentação", - "PE.Views.Settings.textPresentTitle": "Título de apresentação", - "PE.Views.Settings.textPrint": "Imprimir", - "PE.Views.Settings.textSettings": "Configurações", - "PE.Views.Settings.textShowNotification": "Mostrar notificação", - "PE.Views.Settings.textSlideSize": "Tamanho de slide", - "PE.Views.Settings.textSpellcheck": "Verificação Ortográfica", - "PE.Views.Settings.textSubject": "Assunto", - "PE.Views.Settings.textTel": "Tel.", - "PE.Views.Settings.textTitle": "Titulo", - "PE.Views.Settings.textUnitOfMeasurement": "Unidade de medida", - "PE.Views.Settings.textUploaded": "Carregado", - "PE.Views.Settings.textVersion": "Versão", - "PE.Views.Settings.unknownText": "Desconhecido", - "PE.Views.Toolbar.textBack": "Voltar" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/ru.json b/apps/presentationeditor/mobile/locale/ru.json index bc04ccc0d..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/ru.json +++ b/apps/presentationeditor/mobile/locale/ru.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Добавить ответ", - "Common.Controllers.Collaboration.textCancel": "Отмена", - "Common.Controllers.Collaboration.textDeleteComment": "Удалить комментарий", - "Common.Controllers.Collaboration.textDeleteReply": "Удалить ответ", - "Common.Controllers.Collaboration.textDone": "Готово", - "Common.Controllers.Collaboration.textEdit": "Редактировать", - "Common.Controllers.Collaboration.textEditUser": "Пользователи, редактирующие документ:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Вы действительно хотите удалить этот комментарий?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Вы действительно хотите удалить этот ответ?", - "Common.Controllers.Collaboration.textReopen": "Переоткрыть", - "Common.Controllers.Collaboration.textResolve": "Решить", - "Common.Controllers.Collaboration.textYes": "Да", - "Common.UI.ThemeColorPalette.textCustomColors": "Пользовательские цвета", - "Common.UI.ThemeColorPalette.textStandartColors": "Стандартные цвета", - "Common.UI.ThemeColorPalette.textThemeColors": "Цвета темы", - "Common.Utils.Metric.txtCm": "см", - "Common.Utils.Metric.txtPt": "пт", - "Common.Views.Collaboration.textAddReply": "Добавить ответ", - "Common.Views.Collaboration.textBack": "Назад", - "Common.Views.Collaboration.textCancel": "Отмена", - "Common.Views.Collaboration.textCollaboration": "Совместная работа", - "Common.Views.Collaboration.textDone": "Готово", - "Common.Views.Collaboration.textEditReply": "Редактировать ответ", - "Common.Views.Collaboration.textEditUsers": "Пользователи", - "Common.Views.Collaboration.textEditСomment": "Редактировать комментарий", - "Common.Views.Collaboration.textNoComments": "Эта презентация не содержит комментариев", - "Common.Views.Collaboration.textСomments": "Комментарии", - "PE.Controllers.AddContainer.textImage": "Рисунок", - "PE.Controllers.AddContainer.textLink": "Ссылка", - "PE.Controllers.AddContainer.textOther": "Другое", - "PE.Controllers.AddContainer.textShape": "Фигура", - "PE.Controllers.AddContainer.textSlide": "Слайд", - "PE.Controllers.AddContainer.textTable": "Таблица", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Внимание", - "PE.Controllers.AddImage.textEmptyImgUrl": "Необходимо указать URL рисунка.", - "PE.Controllers.AddImage.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Внимание", - "PE.Controllers.AddLink.textDefault": "Выделенный текст", - "PE.Controllers.AddLink.textExternalLink": "Внешняя ссылка", - "PE.Controllers.AddLink.textFirst": "Первый слайд", - "PE.Controllers.AddLink.textInternalLink": "Слайд в этой презентации", - "PE.Controllers.AddLink.textLast": "Последний слайд", - "PE.Controllers.AddLink.textNext": "Следующий слайд", - "PE.Controllers.AddLink.textPrev": "Предыдущий слайд", - "PE.Controllers.AddLink.textSlide": "Слайд", - "PE.Controllers.AddLink.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "PE.Controllers.AddOther.textCancel": "Отмена", - "PE.Controllers.AddOther.textContinue": "Продолжить", - "PE.Controllers.AddOther.textDelete": "Удалить", - "PE.Controllers.AddOther.textDeleteDraft": "Вы действительно хотите удалить черновик?", - "PE.Controllers.AddTable.textCancel": "Отмена", - "PE.Controllers.AddTable.textColumns": "Столбцы", - "PE.Controllers.AddTable.textRows": "Строки", - "PE.Controllers.AddTable.textTableSize": "Размер таблицы", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Операции копирования, вырезания и вставки с помощью контекстного меню будут выполняться только в текущем файле.", - "PE.Controllers.DocumentHolder.menuAddComment": "Добавить комментарий", - "PE.Controllers.DocumentHolder.menuAddLink": "Добавить ссылку", - "PE.Controllers.DocumentHolder.menuCopy": "Копировать", - "PE.Controllers.DocumentHolder.menuCut": "Вырезать", - "PE.Controllers.DocumentHolder.menuDelete": "Удалить", - "PE.Controllers.DocumentHolder.menuEdit": "Редактировать", - "PE.Controllers.DocumentHolder.menuMore": "Ещё", - "PE.Controllers.DocumentHolder.menuOpenLink": "Перейти по ссылке", - "PE.Controllers.DocumentHolder.menuPaste": "Вставить", - "PE.Controllers.DocumentHolder.menuViewComment": "Просмотреть комментарий", - "PE.Controllers.DocumentHolder.sheetCancel": "Отмена", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Операции копирования, вырезания и вставки", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Больше не показывать", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Просмотр слайдов завершен. Щелкните, чтобы выйти.", - "PE.Controllers.EditContainer.textChart": "Диаграмма", - "PE.Controllers.EditContainer.textHyperlink": "Гиперссылка", - "PE.Controllers.EditContainer.textImage": "Рисунок", - "PE.Controllers.EditContainer.textSettings": "Настройки", - "PE.Controllers.EditContainer.textShape": "Фигура", - "PE.Controllers.EditContainer.textSlide": "Слайд", - "PE.Controllers.EditContainer.textTable": "Таблица", - "PE.Controllers.EditContainer.textText": "Текст", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Внимание", - "PE.Controllers.EditImage.textEmptyImgUrl": "Необходимо указать URL рисунка.", - "PE.Controllers.EditImage.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Внимание", - "PE.Controllers.EditLink.textDefault": "Выделенный текст", - "PE.Controllers.EditLink.textExternalLink": "Внешняя ссылка", - "PE.Controllers.EditLink.textFirst": "Первый слайд", - "PE.Controllers.EditLink.textInternalLink": "Слайд в этой презентации", - "PE.Controllers.EditLink.textLast": "Последний слайд", - "PE.Controllers.EditLink.textNext": "Следующий слайд", - "PE.Controllers.EditLink.textPrev": "Предыдущий слайд", - "PE.Controllers.EditLink.textSlide": "Слайд", - "PE.Controllers.EditLink.txtNotUrl": "Это поле должно быть URL-адресом в формате 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "сек", - "PE.Controllers.EditText.textAuto": "Авто", - "PE.Controllers.EditText.textFonts": "Шрифты", - "PE.Controllers.EditText.textPt": "пт", - "PE.Controllers.Main.advDRMEnterPassword": "Введите пароль:", - "PE.Controllers.Main.advDRMOptions": "Защищенный файл", - "PE.Controllers.Main.advDRMPassword": "Пароль", - "PE.Controllers.Main.applyChangesTextText": "Загрузка данных...", - "PE.Controllers.Main.applyChangesTitleText": "Загрузка данных", - "PE.Controllers.Main.closeButtonText": "Закрыть файл", - "PE.Controllers.Main.convertationTimeoutText": "Превышено время ожидания конвертации.", - "PE.Controllers.Main.criticalErrorExtText": "Нажмите 'OK' для возврата к списку документов.", - "PE.Controllers.Main.criticalErrorTitle": "Ошибка", - "PE.Controllers.Main.downloadErrorText": "Загрузка не удалась.", - "PE.Controllers.Main.downloadTextText": "Загрузка презентации...", - "PE.Controllers.Main.downloadTitleText": "Загрузка презентации", - "PE.Controllers.Main.errorAccessDeny": "Вы пытаетесь выполнить действие, на которое у вас нет прав.
            Пожалуйста, обратитесь к администратору Сервера документов.", - "PE.Controllers.Main.errorBadImageUrl": "Неправильный URL-адрес рисунка", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Подключение к серверу прервано. Редактирование недоступно.", - "PE.Controllers.Main.errorConnectToServer": "Не удается сохранить документ. Проверьте параметры подключения или обратитесь к вашему администратору.
            Когда вы нажмете на кнопку 'OK', вам будет предложено скачать документ.", - "PE.Controllers.Main.errorDatabaseConnection": "Внешняя ошибка.
            Ошибка подключения к базе данных. Пожалуйста, обратитесь в службу технической поддержки.", - "PE.Controllers.Main.errorDataEncrypted": "Получены зашифрованные изменения, их нельзя расшифровать.", - "PE.Controllers.Main.errorDataRange": "Некорректный диапазон данных.", - "PE.Controllers.Main.errorDefaultMessage": "Код ошибки: %1", - "PE.Controllers.Main.errorEditingDownloadas": "В ходе работы с документом произошла ошибка.
            Используйте опцию 'Скачать', чтобы сохранить резервную копию файла на жестком диске компьютера.", - "PE.Controllers.Main.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.", - "PE.Controllers.Main.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.
            Обратитесь к администратору Сервера документов для получения дополнительной информации.", - "PE.Controllers.Main.errorKeyEncrypt": "Неизвестный дескриптор ключа", - "PE.Controllers.Main.errorKeyExpire": "Срок действия дескриптора ключа истек", - "PE.Controllers.Main.errorOpensource": "Используя бесплатную версию Community, вы можете открывать документы только на просмотр. Для доступа к мобильным веб-редакторам требуется коммерческая лицензия.", - "PE.Controllers.Main.errorProcessSaveResult": "Не удалось завершить сохранение.", - "PE.Controllers.Main.errorServerVersion": "Версия редактора была обновлена. Страница будет перезагружена, чтобы применить изменения.", - "PE.Controllers.Main.errorSessionAbsolute": "Время сеанса редактирования документа истекло. Пожалуйста, обновите страницу.", - "PE.Controllers.Main.errorSessionIdle": "Документ долгое время не редактировался. Пожалуйста, обновите страницу.", - "PE.Controllers.Main.errorSessionToken": "Подключение к серверу было прервано. Пожалуйста, обновите страницу.", - "PE.Controllers.Main.errorStockChart": "Неверный порядок строк. Чтобы создать биржевую диаграмму, расположите данные на листе в следующем порядке:
            цена открытия, максимальная цена, минимальная цена, цена закрытия.", - "PE.Controllers.Main.errorUpdateVersion": "Версия файла была изменена. Страница будет перезагружена.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.
            Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.", - "PE.Controllers.Main.errorUserDrop": "В настоящий момент файл недоступен.", - "PE.Controllers.Main.errorUsersExceed": "Превышено количество пользователей", - "PE.Controllers.Main.errorViewerDisconnect": "Подключение прервано. Вы по-прежнему можете просматривать документ,
            но не сможете скачать его до восстановления подключения и обновления страницы.", - "PE.Controllers.Main.leavePageText": "В документе есть несохраненные изменения. Нажмите 'Остаться на странице', чтобы дождаться автосохранения документа. Нажмите 'Уйти со страницы', чтобы сбросить все несохраненные изменения.", - "PE.Controllers.Main.loadFontsTextText": "Загрузка данных...", - "PE.Controllers.Main.loadFontsTitleText": "Загрузка данных", - "PE.Controllers.Main.loadFontTextText": "Загрузка данных...", - "PE.Controllers.Main.loadFontTitleText": "Загрузка данных", - "PE.Controllers.Main.loadImagesTextText": "Загрузка рисунков...", - "PE.Controllers.Main.loadImagesTitleText": "Загрузка рисунков", - "PE.Controllers.Main.loadImageTextText": "Загрузка рисунка...", - "PE.Controllers.Main.loadImageTitleText": "Загрузка рисунка", - "PE.Controllers.Main.loadingDocumentTextText": "Загрузка презентации...", - "PE.Controllers.Main.loadingDocumentTitleText": "Загрузка презентации", - "PE.Controllers.Main.loadThemeTextText": "Загрузка темы...", - "PE.Controllers.Main.loadThemeTitleText": "Загрузка темы", - "PE.Controllers.Main.notcriticalErrorTitle": "Внимание", - "PE.Controllers.Main.openErrorText": "При открытии файла произошла ошибка.", - "PE.Controllers.Main.openTextText": "Открытие документа...", - "PE.Controllers.Main.openTitleText": "Открытие документа", - "PE.Controllers.Main.printTextText": "Печать документа...", - "PE.Controllers.Main.printTitleText": "Печать документа", - "PE.Controllers.Main.reloadButtonText": "Обновить страницу", - "PE.Controllers.Main.requestEditFailedMessageText": "В настоящее время документ редактируется. Пожалуйста, попробуйте позже.", - "PE.Controllers.Main.requestEditFailedTitleText": "Доступ запрещен", - "PE.Controllers.Main.saveErrorText": "При сохранении файла произошла ошибка.", - "PE.Controllers.Main.savePreparingText": "Подготовка к сохранению", - "PE.Controllers.Main.savePreparingTitle": "Подготовка к сохранению. Пожалуйста, подождите...", - "PE.Controllers.Main.saveTextText": "Сохранение документа...", - "PE.Controllers.Main.saveTitleText": "Сохранение документа", - "PE.Controllers.Main.scriptLoadError": "Слишком медленное подключение, некоторые компоненты не удалось загрузить. Пожалуйста, обновите страницу.", - "PE.Controllers.Main.splitDividerErrorText": "Число строк должно являться делителем для %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Число столбцов должно быть меньше, чем %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Число строк должно быть меньше, чем %1", - "PE.Controllers.Main.textAnonymous": "Анонимный пользователь", - "PE.Controllers.Main.textBack": "Назад", - "PE.Controllers.Main.textBuyNow": "Перейти на сайт", - "PE.Controllers.Main.textCancel": "Отмена", - "PE.Controllers.Main.textClose": "Закрыть", - "PE.Controllers.Main.textCloseTip": "Коснитесь, чтобы закрыть подсказку.", - "PE.Controllers.Main.textContactUs": "Отдел продаж", - "PE.Controllers.Main.textCustomLoader": "Обратите внимание, что по условиям лицензии у вас нет прав изменять экран, отображаемый при загрузке.
            Пожалуйста, обратитесь в наш отдел продаж, чтобы сделать запрос.", - "PE.Controllers.Main.textDone": "Готово", - "PE.Controllers.Main.textGuest": "Гость", - "PE.Controllers.Main.textHasMacros": "Файл содержит автозапускаемые макросы.
            Хотите запустить макросы?", - "PE.Controllers.Main.textLoadingDocument": "Загрузка презентации", - "PE.Controllers.Main.textNo": "Нет", - "PE.Controllers.Main.textNoLicenseTitle": "Лицензионное ограничение", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Платная функция", - "PE.Controllers.Main.textPassword": "Пароль", - "PE.Controllers.Main.textPreloader": "Загрузка...", - "PE.Controllers.Main.textRemember": "Запомнить мой выбор для всех файлов", - "PE.Controllers.Main.textShape": "Фигура", - "PE.Controllers.Main.textTryUndoRedo": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.", - "PE.Controllers.Main.textUsername": "Имя пользователя", - "PE.Controllers.Main.textYes": "Да", - "PE.Controllers.Main.titleLicenseExp": "Истек срок действия лицензии", - "PE.Controllers.Main.titleServerVersion": "Редактор обновлен", - "PE.Controllers.Main.txtAddFirstSlide": "Нажмите, чтобы добавить первый слайд", - "PE.Controllers.Main.txtArt": "Введите ваш текст", - "PE.Controllers.Main.txtBasicShapes": "Основные фигуры", - "PE.Controllers.Main.txtButtons": "Кнопки", - "PE.Controllers.Main.txtCallouts": "Выноски", - "PE.Controllers.Main.txtCharts": "Схемы", - "PE.Controllers.Main.txtClipArt": "Картинка", - "PE.Controllers.Main.txtDateTime": "Дата и время", - "PE.Controllers.Main.txtDiagram": "Рисунок SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Заголовок диаграммы", - "PE.Controllers.Main.txtEditingMode": "Установка режима редактирования...", - "PE.Controllers.Main.txtFiguredArrows": "Фигурные стрелки", - "PE.Controllers.Main.txtFooter": "Нижний колонтитул", - "PE.Controllers.Main.txtHeader": "Верхний колонтитул", - "PE.Controllers.Main.txtImage": "Рисунок", - "PE.Controllers.Main.txtLines": "Линии", - "PE.Controllers.Main.txtMath": "Математические знаки", - "PE.Controllers.Main.txtMedia": "Клип мультимедиа", - "PE.Controllers.Main.txtNeedSynchronize": "Есть обновления", - "PE.Controllers.Main.txtPicture": "Рисунок", - "PE.Controllers.Main.txtProtected": "Как только вы введете пароль и откроете файл, текущий пароль к файлу будет сброшен", - "PE.Controllers.Main.txtRectangles": "Прямоугольники", - "PE.Controllers.Main.txtSeries": "Ряд", - "PE.Controllers.Main.txtSldLtTBlank": "Пустой слайд", - "PE.Controllers.Main.txtSldLtTChart": "Диаграмма", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Диаграмма и текст", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Графика и текст", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Графика и вертикальный текст", - "PE.Controllers.Main.txtSldLtTCust": "Особый", - "PE.Controllers.Main.txtSldLtTDgm": "Схема", - "PE.Controllers.Main.txtSldLtTFourObj": "Четыре объекта", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Медиаклип и текст", - "PE.Controllers.Main.txtSldLtTObj": "Заголовок и объект", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Объект и два объекта", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Объект и текст", - "PE.Controllers.Main.txtSldLtTObjOnly": "Объект", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Объект над текстом", - "PE.Controllers.Main.txtSldLtTObjTx": "Заголовок, объект и подпись", - "PE.Controllers.Main.txtSldLtTPicTx": "Рисунок с подписью", - "PE.Controllers.Main.txtSldLtTSecHead": "Заголовок раздела", - "PE.Controllers.Main.txtSldLtTTbl": "Таблица", - "PE.Controllers.Main.txtSldLtTTitle": "Титульный слайд", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Только заголовок", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Текст в две колонки", - "PE.Controllers.Main.txtSldLtTTwoObj": "Два объекта", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Два объекта и объект", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Два объекта и текст", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Два объекта над текстом", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Два текста и два объекта", - "PE.Controllers.Main.txtSldLtTTx": "Текст", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Текст и диаграмма", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Текст и графика", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Текст и медиаклип", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Текст и объект", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Текст и два объекта", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Текст над объектом", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Вертикальный заголовок и текст", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Вертикальный заголовок и текст над диаграммой", - "PE.Controllers.Main.txtSldLtTVertTx": "Вертикальный текст", - "PE.Controllers.Main.txtSlideNumber": "Номер слайда", - "PE.Controllers.Main.txtSlideSubtitle": "Подзаголовок слайда", - "PE.Controllers.Main.txtSlideText": "Текст слайда", - "PE.Controllers.Main.txtSlideTitle": "Заголовок слайда", - "PE.Controllers.Main.txtStarsRibbons": "Звезды и ленты", - "PE.Controllers.Main.txtXAxis": "Ось X", - "PE.Controllers.Main.txtYAxis": "Ось Y", - "PE.Controllers.Main.unknownErrorText": "Неизвестная ошибка.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.", - "PE.Controllers.Main.uploadImageExtMessage": "Неизвестный формат рисунка.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Ни одного рисунка не загружено.", - "PE.Controllers.Main.uploadImageSizeMessage": "Превышен максимальный размер рисунка.", - "PE.Controllers.Main.uploadImageTextText": "Загрузка рисунка...", - "PE.Controllers.Main.uploadImageTitleText": "Загрузка рисунка", - "PE.Controllers.Main.waitText": "Пожалуйста, подождите...", - "PE.Controllers.Main.warnLicenseExceeded": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт только на просмотр.
            Свяжитесь с администратором, чтобы узнать больше.", - "PE.Controllers.Main.warnLicenseExp": "Истек срок действия лицензии.
            Обновите лицензию, а затем обновите страницу.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "Истек срок действия лицензии.
            Нет доступа к функциональности редактирования документов.
            Пожалуйста, обратитесь к администратору.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "Необходимо обновить лицензию.
            У вас ограниченный доступ к функциональности редактирования документов.
            Пожалуйста, обратитесь к администратору, чтобы получить полный доступ", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Вы достигли лимита на количество пользователей редакторов %1.
            Свяжитесь с администратором, чтобы узнать больше.", - "PE.Controllers.Main.warnNoLicense": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт на просмотр.
            Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.", - "PE.Controllers.Main.warnNoLicenseUsers": "Вы достигли лимита на одновременные подключения к редакторам %1.
            Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.", - "PE.Controllers.Main.warnProcessRightsChange": "Вам было отказано в праве на редактирование этого файла.", - "PE.Controllers.Search.textNoTextFound": "Текст не найден", - "PE.Controllers.Search.textReplaceAll": "Заменить все", - "PE.Controllers.Settings.notcriticalErrorTitle": "Внимание", - "PE.Controllers.Settings.txtLoading": "Загрузка...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "В документе есть несохраненные изменения. Нажмите 'Остаться на странице', чтобы дождаться автосохранения документа. Нажмите 'Уйти со страницы', чтобы сбросить все несохраненные изменения.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Вы выходите из приложения", - "PE.Controllers.Toolbar.leaveButtonText": "Уйти со страницы", - "PE.Controllers.Toolbar.stayButtonText": "Остаться на странице", - "PE.Views.AddImage.textAddress": "Адрес", - "PE.Views.AddImage.textBack": "Назад", - "PE.Views.AddImage.textFromLibrary": "Рисунок из библиотеки", - "PE.Views.AddImage.textFromURL": "Рисунок по URL", - "PE.Views.AddImage.textImageURL": "URL рисунка", - "PE.Views.AddImage.textInsertImage": "Вставить рисунок", - "PE.Views.AddImage.textLinkSettings": "Настройки ссылки", - "PE.Views.AddLink.textBack": "Назад", - "PE.Views.AddLink.textDisplay": "Отображать", - "PE.Views.AddLink.textExternalLink": "Внешняя ссылка", - "PE.Views.AddLink.textFirst": "Первый слайд", - "PE.Views.AddLink.textInsert": "Вставить", - "PE.Views.AddLink.textInternalLink": "Слайд в этой презентации", - "PE.Views.AddLink.textLast": "Последний слайд", - "PE.Views.AddLink.textLink": "Ссылка", - "PE.Views.AddLink.textLinkSlide": "Связать с", - "PE.Views.AddLink.textLinkType": "Тип ссылки", - "PE.Views.AddLink.textNext": "Следующий слайд", - "PE.Views.AddLink.textNumber": "Номер слайда", - "PE.Views.AddLink.textPrev": "Предыдущий слайд", - "PE.Views.AddLink.textTip": "Подсказка", - "PE.Views.AddOther.textAddComment": "Добавить комментарий", - "PE.Views.AddOther.textBack": "Назад", - "PE.Views.AddOther.textComment": "Комментарий", - "PE.Views.AddOther.textDisplay": "Отображать", - "PE.Views.AddOther.textDone": "Готово", - "PE.Views.AddOther.textExternalLink": "Внешняя ссылка", - "PE.Views.AddOther.textFirst": "Первый слайд", - "PE.Views.AddOther.textInsert": "Вставить", - "PE.Views.AddOther.textInternalLink": "Слайд в этой презентации", - "PE.Views.AddOther.textLast": "Последний слайд", - "PE.Views.AddOther.textLink": "Ссылка", - "PE.Views.AddOther.textLinkSlide": "Связать с", - "PE.Views.AddOther.textLinkType": "Тип ссылки", - "PE.Views.AddOther.textNext": "Следующий слайд", - "PE.Views.AddOther.textNumber": "Номер слайда", - "PE.Views.AddOther.textPrev": "Предыдущий слайд", - "PE.Views.AddOther.textTable": "Таблица", - "PE.Views.AddOther.textTip": "Подсказка", - "PE.Views.EditChart.textAddCustomColor": "Добавить пользовательский цвет", - "PE.Views.EditChart.textAlign": "Выравнивание", - "PE.Views.EditChart.textAlignBottom": "По нижнему краю", - "PE.Views.EditChart.textAlignCenter": "По центру", - "PE.Views.EditChart.textAlignLeft": "По левому краю", - "PE.Views.EditChart.textAlignMiddle": "По середине", - "PE.Views.EditChart.textAlignRight": "По правому краю", - "PE.Views.EditChart.textAlignTop": "По верхнему краю", - "PE.Views.EditChart.textBack": "Назад", - "PE.Views.EditChart.textBackward": "Перенести назад", - "PE.Views.EditChart.textBorder": "Граница", - "PE.Views.EditChart.textColor": "Цвет", - "PE.Views.EditChart.textCustomColor": "Пользовательский цвет", - "PE.Views.EditChart.textFill": "Заливка", - "PE.Views.EditChart.textForward": "Перенести вперед", - "PE.Views.EditChart.textRemoveChart": "Удалить диаграмму", - "PE.Views.EditChart.textReorder": "Порядок", - "PE.Views.EditChart.textSize": "Размер", - "PE.Views.EditChart.textStyle": "Стиль", - "PE.Views.EditChart.textToBackground": "Перенести на задний план", - "PE.Views.EditChart.textToForeground": "Перенести на передний план", - "PE.Views.EditChart.textType": "Тип", - "PE.Views.EditChart.txtDistribHor": "Распределить по горизонтали", - "PE.Views.EditChart.txtDistribVert": "Распределить по вертикали", - "PE.Views.EditImage.textAddress": "Адрес", - "PE.Views.EditImage.textAlign": "Выравнивание", - "PE.Views.EditImage.textAlignBottom": "По нижнему краю", - "PE.Views.EditImage.textAlignCenter": "По центру", - "PE.Views.EditImage.textAlignLeft": "По левому краю", - "PE.Views.EditImage.textAlignMiddle": "По середине", - "PE.Views.EditImage.textAlignRight": "По правому краю", - "PE.Views.EditImage.textAlignTop": "По верхнему краю", - "PE.Views.EditImage.textBack": "Назад", - "PE.Views.EditImage.textBackward": "Перенести назад", - "PE.Views.EditImage.textDefault": "Реальный размер", - "PE.Views.EditImage.textForward": "Перенести вперед", - "PE.Views.EditImage.textFromLibrary": "Рисунок из библиотеки", - "PE.Views.EditImage.textFromURL": "Рисунок по URL", - "PE.Views.EditImage.textImageURL": "URL рисунка", - "PE.Views.EditImage.textLinkSettings": "Настройки ссылки", - "PE.Views.EditImage.textRemove": "Удалить рисунок", - "PE.Views.EditImage.textReorder": "Порядок", - "PE.Views.EditImage.textReplace": "Заменить", - "PE.Views.EditImage.textReplaceImg": "Заменить рисунок", - "PE.Views.EditImage.textToBackground": "Перенести на задний план", - "PE.Views.EditImage.textToForeground": "Перенести на передний план", - "PE.Views.EditImage.txtDistribHor": "Распределить по горизонтали", - "PE.Views.EditImage.txtDistribVert": "Распределить по вертикали", - "PE.Views.EditLink.textBack": "Назад", - "PE.Views.EditLink.textDisplay": "Отображать", - "PE.Views.EditLink.textEdit": "Редактировать ссылку", - "PE.Views.EditLink.textExternalLink": "Внешняя ссылка", - "PE.Views.EditLink.textFirst": "Первый слайд", - "PE.Views.EditLink.textInternalLink": "Слайд в этой презентации", - "PE.Views.EditLink.textLast": "Последний слайд", - "PE.Views.EditLink.textLink": "Ссылка", - "PE.Views.EditLink.textLinkSlide": "Связать с", - "PE.Views.EditLink.textLinkType": "Тип ссылки", - "PE.Views.EditLink.textNext": "Следующий слайд", - "PE.Views.EditLink.textNumber": "Номер слайда", - "PE.Views.EditLink.textPrev": "Предыдущий слайд", - "PE.Views.EditLink.textRemove": "Удалить ссылку", - "PE.Views.EditLink.textTip": "Подсказка", - "PE.Views.EditShape.textAddCustomColor": "Добавить пользовательский цвет", - "PE.Views.EditShape.textAlign": "Выравнивание", - "PE.Views.EditShape.textAlignBottom": "По нижнему краю", - "PE.Views.EditShape.textAlignCenter": "По центру", - "PE.Views.EditShape.textAlignLeft": "По левому краю", - "PE.Views.EditShape.textAlignMiddle": "По середине", - "PE.Views.EditShape.textAlignRight": "По правому краю", - "PE.Views.EditShape.textAlignTop": "По верхнему краю", - "PE.Views.EditShape.textBack": "Назад", - "PE.Views.EditShape.textBackward": "Перенести назад", - "PE.Views.EditShape.textBorder": "Граница", - "PE.Views.EditShape.textColor": "Цвет", - "PE.Views.EditShape.textCustomColor": "Пользовательский цвет", - "PE.Views.EditShape.textEffects": "Эффекты", - "PE.Views.EditShape.textFill": "Заливка", - "PE.Views.EditShape.textForward": "Перенести вперед", - "PE.Views.EditShape.textOpacity": "Прозрачность", - "PE.Views.EditShape.textRemoveShape": "Удалить фигуру", - "PE.Views.EditShape.textReorder": "Порядок", - "PE.Views.EditShape.textReplace": "Заменить", - "PE.Views.EditShape.textSize": "Размер", - "PE.Views.EditShape.textStyle": "Стиль", - "PE.Views.EditShape.textToBackground": "Перенести на задний план", - "PE.Views.EditShape.textToForeground": "Перенести на передний план", - "PE.Views.EditShape.txtDistribHor": "Распределить по горизонтали", - "PE.Views.EditShape.txtDistribVert": "Распределить по вертикали", - "PE.Views.EditSlide.textAddCustomColor": "Добавить пользовательский цвет", - "PE.Views.EditSlide.textApplyAll": "Применить ко всем слайдам", - "PE.Views.EditSlide.textBack": "Назад", - "PE.Views.EditSlide.textBlack": "Через черное", - "PE.Views.EditSlide.textBottom": "Снизу", - "PE.Views.EditSlide.textBottomLeft": "Снизу слева", - "PE.Views.EditSlide.textBottomRight": "Снизу справа", - "PE.Views.EditSlide.textClock": "Часы", - "PE.Views.EditSlide.textClockwise": "По часовой стрелке", - "PE.Views.EditSlide.textColor": "Цвет", - "PE.Views.EditSlide.textCounterclockwise": "Против часовой стрелки", - "PE.Views.EditSlide.textCover": "Наплыв", - "PE.Views.EditSlide.textCustomColor": "Пользовательский цвет", - "PE.Views.EditSlide.textDelay": "Задержка", - "PE.Views.EditSlide.textDuplicateSlide": "Дублировать слайд", - "PE.Views.EditSlide.textDuration": "Длительность", - "PE.Views.EditSlide.textEffect": "Эффект", - "PE.Views.EditSlide.textFade": "Выцветание", - "PE.Views.EditSlide.textFill": "Заливка", - "PE.Views.EditSlide.textHorizontalIn": "По горизонтали внутрь", - "PE.Views.EditSlide.textHorizontalOut": "По горизонтали наружу", - "PE.Views.EditSlide.textLayout": "Макет", - "PE.Views.EditSlide.textLeft": "Слева", - "PE.Views.EditSlide.textNone": "Нет", - "PE.Views.EditSlide.textOpacity": "Прозрачность", - "PE.Views.EditSlide.textPush": "Задвигание", - "PE.Views.EditSlide.textRemoveSlide": "Удалить слайд", - "PE.Views.EditSlide.textRight": "Справа", - "PE.Views.EditSlide.textSmoothly": "Плавно", - "PE.Views.EditSlide.textSplit": "Панорама", - "PE.Views.EditSlide.textStartOnClick": "Запускать щелчком", - "PE.Views.EditSlide.textStyle": "Стиль", - "PE.Views.EditSlide.textTheme": "Тема", - "PE.Views.EditSlide.textTop": "Сверху", - "PE.Views.EditSlide.textTopLeft": "Сверху слева", - "PE.Views.EditSlide.textTopRight": "Сверху справа", - "PE.Views.EditSlide.textTransition": "Переход", - "PE.Views.EditSlide.textType": "Тип", - "PE.Views.EditSlide.textUnCover": "Открывание", - "PE.Views.EditSlide.textVerticalIn": "По вертикали внутрь", - "PE.Views.EditSlide.textVerticalOut": "По вертикали наружу", - "PE.Views.EditSlide.textWedge": "Симметрично по кругу", - "PE.Views.EditSlide.textWipe": "Появление", - "PE.Views.EditSlide.textZoom": "Масштабирование", - "PE.Views.EditSlide.textZoomIn": "Увеличение", - "PE.Views.EditSlide.textZoomOut": "Уменьшение", - "PE.Views.EditSlide.textZoomRotate": "Увеличение с поворотом", - "PE.Views.EditTable.textAddCustomColor": "Добавить пользовательский цвет", - "PE.Views.EditTable.textAlign": "Выравнивание", - "PE.Views.EditTable.textAlignBottom": "По нижнему краю", - "PE.Views.EditTable.textAlignCenter": "По центру", - "PE.Views.EditTable.textAlignLeft": "По левому краю", - "PE.Views.EditTable.textAlignMiddle": "По середине", - "PE.Views.EditTable.textAlignRight": "По правому краю", - "PE.Views.EditTable.textAlignTop": "По верхнему краю", - "PE.Views.EditTable.textBack": "Назад", - "PE.Views.EditTable.textBackward": "Перенести назад", - "PE.Views.EditTable.textBandedColumn": "Чередовать столбцы", - "PE.Views.EditTable.textBandedRow": "Чередовать строки", - "PE.Views.EditTable.textBorder": "Граница", - "PE.Views.EditTable.textCellMargins": "Поля ячейки", - "PE.Views.EditTable.textColor": "Цвет", - "PE.Views.EditTable.textCustomColor": "Пользовательский цвет", - "PE.Views.EditTable.textFill": "Заливка", - "PE.Views.EditTable.textFirstColumn": "Первый столбец", - "PE.Views.EditTable.textForward": "Перенести вперед", - "PE.Views.EditTable.textHeaderRow": "Строка заголовка", - "PE.Views.EditTable.textLastColumn": "Последний столбец", - "PE.Views.EditTable.textOptions": "Параметры", - "PE.Views.EditTable.textRemoveTable": "Удалить таблицу", - "PE.Views.EditTable.textReorder": "Порядок", - "PE.Views.EditTable.textSize": "Размер", - "PE.Views.EditTable.textStyle": "Стиль", - "PE.Views.EditTable.textStyleOptions": "Настройки стиля", - "PE.Views.EditTable.textTableOptions": "Настройки таблицы", - "PE.Views.EditTable.textToBackground": "Перенести на задний план", - "PE.Views.EditTable.textToForeground": "Перенести на передний план", - "PE.Views.EditTable.textTotalRow": "Строка итогов", - "PE.Views.EditTable.txtDistribHor": "Распределить по горизонтали", - "PE.Views.EditTable.txtDistribVert": "Распределить по вертикали", - "PE.Views.EditText.textAddCustomColor": "Добавить пользовательский цвет", - "PE.Views.EditText.textAdditional": "Дополнительно", - "PE.Views.EditText.textAdditionalFormat": "Дополнительно", - "PE.Views.EditText.textAfter": "После", - "PE.Views.EditText.textAllCaps": "Все прописные", - "PE.Views.EditText.textAutomatic": "Автоматический", - "PE.Views.EditText.textBack": "Назад", - "PE.Views.EditText.textBefore": "Перед", - "PE.Views.EditText.textBullets": "Маркеры", - "PE.Views.EditText.textCharacterBold": "Ж", - "PE.Views.EditText.textCharacterItalic": "К", - "PE.Views.EditText.textCharacterStrikethrough": "Т", - "PE.Views.EditText.textCharacterUnderline": "Ч", - "PE.Views.EditText.textCustomColor": "Пользовательский цвет", - "PE.Views.EditText.textDblStrikethrough": "Двойное зачёркивание", - "PE.Views.EditText.textDblSuperscript": "Надстрочные", - "PE.Views.EditText.textFontColor": "Цвет шрифта", - "PE.Views.EditText.textFontColors": "Цвета шрифта", - "PE.Views.EditText.textFonts": "Шрифты", - "PE.Views.EditText.textFromText": "Расстояние до текста", - "PE.Views.EditText.textLetterSpacing": "Интервал", - "PE.Views.EditText.textLineSpacing": "Междустрочный интервал", - "PE.Views.EditText.textNone": "Нет", - "PE.Views.EditText.textNumbers": "Нумерация", - "PE.Views.EditText.textSize": "Размер", - "PE.Views.EditText.textSmallCaps": "Малые прописные", - "PE.Views.EditText.textStrikethrough": "Зачёркивание", - "PE.Views.EditText.textSubscript": "Подстрочные", - "PE.Views.Search.textCase": "С учетом регистра", - "PE.Views.Search.textDone": "Готово", - "PE.Views.Search.textFind": "Поиск", - "PE.Views.Search.textFindAndReplace": "Поиск и замена", - "PE.Views.Search.textReplace": "Заменить", - "PE.Views.Search.textSearch": "Поиск", - "PE.Views.Settings. textComment": "Комментарий", - "PE.Views.Settings.mniSlideStandard": "Стандартный (4:3)", - "PE.Views.Settings.mniSlideWide": "Широкоэкранный (16:9)", - "PE.Views.Settings.textAbout": "О программе", - "PE.Views.Settings.textAddress": "адрес", - "PE.Views.Settings.textApplication": "Приложение", - "PE.Views.Settings.textApplicationSettings": "Настройки приложения", - "PE.Views.Settings.textAuthor": "Автор", - "PE.Views.Settings.textBack": "Назад", - "PE.Views.Settings.textCentimeter": "Сантиметр", - "PE.Views.Settings.textCollaboration": "Совместная работа", - "PE.Views.Settings.textColorSchemes": "Цветовые схемы", - "PE.Views.Settings.textCreated": "Создана", - "PE.Views.Settings.textCreateDate": "Дата создания", - "PE.Views.Settings.textDisableAll": "Отключить все", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Отключить все макросы с уведомлением", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Отключить все макросы без уведомления", - "PE.Views.Settings.textDone": "Готово", - "PE.Views.Settings.textDownload": "Скачать", - "PE.Views.Settings.textDownloadAs": "Скачать как...", - "PE.Views.Settings.textEditPresent": "Редактировать", - "PE.Views.Settings.textEmail": "email", - "PE.Views.Settings.textEnableAll": "Включить все", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Включить все макросы без уведомления", - "PE.Views.Settings.textFind": "Поиск", - "PE.Views.Settings.textFindAndReplace": "Поиск и замена", - "PE.Views.Settings.textHelp": "Справка", - "PE.Views.Settings.textInch": "Дюйм", - "PE.Views.Settings.textLastModified": "Последнее изменение", - "PE.Views.Settings.textLastModifiedBy": "Автор последнего изменения", - "PE.Views.Settings.textLoading": "Загрузка...", - "PE.Views.Settings.textLocation": "Размещение", - "PE.Views.Settings.textMacrosSettings": "Настройки макросов", - "PE.Views.Settings.textOwner": "Владелец", - "PE.Views.Settings.textPoint": "Пункт", - "PE.Views.Settings.textPoweredBy": "Разработано", - "PE.Views.Settings.textPresentInfo": "Информация о презентации", - "PE.Views.Settings.textPresentSettings": "Настройки презентации", - "PE.Views.Settings.textPresentSetup": "Настройка презентации", - "PE.Views.Settings.textPresentTitle": "Название презентации", - "PE.Views.Settings.textPrint": "Печать", - "PE.Views.Settings.textSettings": "Настройки", - "PE.Views.Settings.textShowNotification": "Показывать уведомление", - "PE.Views.Settings.textSlideSize": "Размер слайда", - "PE.Views.Settings.textSpellcheck": "Проверка орфографии", - "PE.Views.Settings.textSubject": "Тема", - "PE.Views.Settings.textTel": "Телефон", - "PE.Views.Settings.textTitle": "Название", - "PE.Views.Settings.textUnitOfMeasurement": "Единица измерения", - "PE.Views.Settings.textUploaded": "Загружена", - "PE.Views.Settings.textVersion": "Версия", - "PE.Views.Settings.unknownText": "Неизвестно", - "PE.Views.Toolbar.textBack": "Назад" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/sk.json b/apps/presentationeditor/mobile/locale/sk.json index 52f76648f..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/sk.json +++ b/apps/presentationeditor/mobile/locale/sk.json @@ -1,574 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "Pridať odpoveď", - "Common.Controllers.Collaboration.textCancel": "Zrušiť", - "Common.Controllers.Collaboration.textDeleteComment": "Vymazať komentár", - "Common.Controllers.Collaboration.textDeleteReply": "Vymazať odpoveď", - "Common.Controllers.Collaboration.textDone": "Hotovo", - "Common.Controllers.Collaboration.textEdit": "Upraviť", - "Common.Controllers.Collaboration.textEditUser": "Používatelia, ktorí súbor práve upravujú:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Naozaj chcete zmazať tento komentár?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Naozaj chcete zmazať túto odpoveď?", - "Common.Controllers.Collaboration.textReopen": "Znovu otvoriť", - "Common.Controllers.Collaboration.textResolve": "Vyriešiť", - "Common.Controllers.Collaboration.textYes": "Áno", - "Common.UI.ThemeColorPalette.textCustomColors": "Vlastné farby", - "Common.UI.ThemeColorPalette.textStandartColors": "Štandardné farby", - "Common.UI.ThemeColorPalette.textThemeColors": "Farebné témy", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Pridať odpoveď", - "Common.Views.Collaboration.textBack": "Späť", - "Common.Views.Collaboration.textCancel": "Zrušiť", - "Common.Views.Collaboration.textCollaboration": "Spolupráca", - "Common.Views.Collaboration.textDone": "Hotovo", - "Common.Views.Collaboration.textEditReply": "Upraviť odpoveď", - "Common.Views.Collaboration.textEditUsers": "Používatelia", - "Common.Views.Collaboration.textEditСomment": "Upraviť komentár", - "Common.Views.Collaboration.textNoComments": "Táto prezentácia neobsahuje komentáre", - "Common.Views.Collaboration.textСomments": "Komentáre", - "PE.Controllers.AddContainer.textImage": "Obrázok", - "PE.Controllers.AddContainer.textLink": "Odkaz", - "PE.Controllers.AddContainer.textOther": "Ostatné", - "PE.Controllers.AddContainer.textShape": "Tvar", - "PE.Controllers.AddContainer.textSlide": "Snímka", - "PE.Controllers.AddContainer.textTable": "Tabuľka", - "PE.Controllers.AddImage.notcriticalErrorTitle": "Upozornenie", - "PE.Controllers.AddImage.textEmptyImgUrl": "Musíte upresniť URL obrázka.", - "PE.Controllers.AddImage.txtNotUrl": "Toto pole by malo byť vo formáte 'http://www.example.com'", - "PE.Controllers.AddLink.notcriticalErrorTitle": "Upozornenie", - "PE.Controllers.AddLink.textDefault": "Vybraný text", - "PE.Controllers.AddLink.textExternalLink": "Externý odkaz", - "PE.Controllers.AddLink.textFirst": "Prvá snímka", - "PE.Controllers.AddLink.textInternalLink": "Snímok v tejto prezentácii", - "PE.Controllers.AddLink.textLast": "Posledná snímka", - "PE.Controllers.AddLink.textNext": "Nasledujúca snímka", - "PE.Controllers.AddLink.textPrev": "Predchádzajúca snímka", - "PE.Controllers.AddLink.textSlide": "Snímka", - "PE.Controllers.AddLink.txtNotUrl": "Toto pole by malo byť vo formáte 'http://www.example.com'", - "PE.Controllers.AddOther.textCancel": "Zrušiť", - "PE.Controllers.AddOther.textContinue": "Pokračovať", - "PE.Controllers.AddOther.textDelete": "Vymazať", - "PE.Controllers.AddOther.textDeleteDraft": "Naozaj chcete zmazať koncept?", - "PE.Controllers.AddTable.textCancel": "Zrušiť", - "PE.Controllers.AddTable.textColumns": "Stĺpce", - "PE.Controllers.AddTable.textRows": "Riadky", - "PE.Controllers.AddTable.textTableSize": "Veľkosť tabuľky", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "Akcie kopírovania, vystrihovania a vkladania pomocou kontextovej ponuky sa budú vykonávať iba v práve otvorenom súbore.", - "PE.Controllers.DocumentHolder.menuAddComment": "Pridať komentár", - "PE.Controllers.DocumentHolder.menuAddLink": "Pridať odkaz", - "PE.Controllers.DocumentHolder.menuCopy": "Kopírovať", - "PE.Controllers.DocumentHolder.menuCut": "Vystrihnúť", - "PE.Controllers.DocumentHolder.menuDelete": "Vymazať", - "PE.Controllers.DocumentHolder.menuEdit": "Upraviť", - "PE.Controllers.DocumentHolder.menuMore": "Viac", - "PE.Controllers.DocumentHolder.menuOpenLink": "Otvoriť odkaz", - "PE.Controllers.DocumentHolder.menuPaste": "Vložiť", - "PE.Controllers.DocumentHolder.menuViewComment": "Zobraziť komentár", - "PE.Controllers.DocumentHolder.sheetCancel": "Zrušiť", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "Kopírovať, vystrihnúť a prilepiť", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "Znova už nezobrazovať", - "PE.Controllers.DocumentPreview.txtFinalMessage": "Koniec prezentácie. Kliknutím ukončite.", - "PE.Controllers.EditContainer.textChart": "Graf", - "PE.Controllers.EditContainer.textHyperlink": "Hypertextový odkaz", - "PE.Controllers.EditContainer.textImage": "Obrázok", - "PE.Controllers.EditContainer.textSettings": "Nastavenia", - "PE.Controllers.EditContainer.textShape": "Tvar", - "PE.Controllers.EditContainer.textSlide": "Snímka", - "PE.Controllers.EditContainer.textTable": "Tabuľka", - "PE.Controllers.EditContainer.textText": "Text", - "PE.Controllers.EditImage.notcriticalErrorTitle": "Upozornenie", - "PE.Controllers.EditImage.textEmptyImgUrl": "Musíte upresniť URL obrázka.", - "PE.Controllers.EditImage.txtNotUrl": "Toto pole by malo byť vo formáte 'http://www.example.com'", - "PE.Controllers.EditLink.notcriticalErrorTitle": "Upozornenie", - "PE.Controllers.EditLink.textDefault": "Vybraný text", - "PE.Controllers.EditLink.textExternalLink": "Externý odkaz", - "PE.Controllers.EditLink.textFirst": "Prvá snímka", - "PE.Controllers.EditLink.textInternalLink": "Snímok v tejto prezentácii", - "PE.Controllers.EditLink.textLast": "Posledná snímka", - "PE.Controllers.EditLink.textNext": "Nasledujúca snímka", - "PE.Controllers.EditLink.textPrev": "Predchádzajúca snímka", - "PE.Controllers.EditLink.textSlide": "Snímka", - "PE.Controllers.EditLink.txtNotUrl": "Toto pole by malo byť vo formáte 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Auto", - "PE.Controllers.EditText.textFonts": "Písma", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Zadajte svoje heslo:", - "PE.Controllers.Main.advDRMOptions": "Chránený súbor", - "PE.Controllers.Main.advDRMPassword": "Heslo", - "PE.Controllers.Main.applyChangesTextText": "Načítavanie dát...", - "PE.Controllers.Main.applyChangesTitleText": "Načítavanie dát", - "PE.Controllers.Main.closeButtonText": "Zatvoriť súbor", - "PE.Controllers.Main.convertationTimeoutText": "Prekročený čas konverzie.", - "PE.Controllers.Main.criticalErrorExtText": "Stlačením tlačidla 'OK' sa vrátite do zoznamu dokumentov.", - "PE.Controllers.Main.criticalErrorTitle": "Chyba", - "PE.Controllers.Main.downloadErrorText": "Sťahovanie zlyhalo.", - "PE.Controllers.Main.downloadTextText": "Sťahovanie dokumentu...", - "PE.Controllers.Main.downloadTitleText": "Sťahovanie dokumentu", - "PE.Controllers.Main.errorAccessDeny": "Pokúšate sa vykonať akciu, na ktorú nemáte práva.
            Prosím, kontaktujte svojho správcu dokumentového servera. ", - "PE.Controllers.Main.errorBadImageUrl": "Adresa URL obrázku je nesprávna", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Spojenie so serverom sa stratilo. Už nemôžete upravovať.", - "PE.Controllers.Main.errorConnectToServer": "Dokument sa nepodarilo uložiť. Prosím, skontrolujte nastavenia pripojenia alebo kontaktujte správcu.
            Po kliknutí na tlačidlo 'OK' sa zobrazí výzva na prevzatie dokumentu.", - "PE.Controllers.Main.errorDatabaseConnection": "Externá chyba.
            Chyba spojenia databázy. Obráťte sa prosím na podporu.", - "PE.Controllers.Main.errorDataEncrypted": "Boli prijaté zašifrované zmeny, nemožno ich dekódovať.", - "PE.Controllers.Main.errorDataRange": "Nesprávny rozsah údajov.", - "PE.Controllers.Main.errorDefaultMessage": "Kód chyby: %1", - "PE.Controllers.Main.errorEditingDownloadas": "Pri práci na dokumente sa vyskytla chyba.
            Použite voľbu \"Stiahnuť\" a uložte si súbor ako zálohu na svoj počítač.", - "PE.Controllers.Main.errorFilePassProtect": "Dokument je chránený heslom.", - "PE.Controllers.Main.errorFileSizeExceed": "Veľkosť súboru prekračuje limity vášho servera.
            Pre ďalšie podrobnosti kontaktujte prosím vášho správcu dokumentového servera.", - "PE.Controllers.Main.errorKeyEncrypt": "Neznámy kľúč deskriptoru", - "PE.Controllers.Main.errorKeyExpire": "Kľúč deskriptora vypršal", - "PE.Controllers.Main.errorOpensource": "Pomocou bezplatnej verzie Community môžete otvoriť dokumenty iba na prezeranie. Na prístup k mobilným webovým editorom je potrebná komerčná licencia.", - "PE.Controllers.Main.errorProcessSaveResult": "Uloženie zlyhalo.", - "PE.Controllers.Main.errorServerVersion": "Verzia editora bola aktualizovaná. Stránka sa opätovne načíta, aby sa vykonali zmeny.", - "PE.Controllers.Main.errorSessionAbsolute": "Režim editácie dokumentu vypršal. Prosím, načítajte stránku znova.", - "PE.Controllers.Main.errorSessionIdle": "Dokument nebol dlho upravovaný. Prosím, načítajte stránku znova.", - "PE.Controllers.Main.errorSessionToken": "Spojenie so serverom bolo prerušené. Prosím, načítajte stránku znova.", - "PE.Controllers.Main.errorStockChart": "Nesprávne poradie riadkov. Ak chcete vytvoriť burzový graf, umiestnite údaje na hárok v nasledujúcom poradí:
            začiatočná cena, max cena, min cena, konečná cena.", - "PE.Controllers.Main.errorUpdateVersion": "Verzia súboru bola zmenená. Stránka sa znova načíta.", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internetové spojenie bolo obnovené a verzia súboru bola zmenená.
            Predtým, než budete pokračovať v práci, potrebujete si stiahnuť súbor alebo kópiu jeho obsahu, aby sa nič nestratilo. Potom znovu načítajte stránku.", - "PE.Controllers.Main.errorUserDrop": "K súboru nie je možné práve teraz získať prístup.", - "PE.Controllers.Main.errorUsersExceed": "Počet používateľov bol prekročený", - "PE.Controllers.Main.errorViewerDisconnect": "Spojenie sa stratilo. Dokument môžete zobraziť,
            ale nebude možné ho prevziať, kým sa obnoví spojenie.", - "PE.Controllers.Main.leavePageText": "V tomto dokumente máte neuložené zmeny. Kliknutím na položku 'Zostať na tejto stránke' čakáte na automatické uloženie dokumentu. Kliknutím na položku 'Odísť z tejto stránky' odstránite všetky neuložené zmeny.", - "PE.Controllers.Main.loadFontsTextText": "Načítavanie dát...", - "PE.Controllers.Main.loadFontsTitleText": "Načítavanie dát", - "PE.Controllers.Main.loadFontTextText": "Načítavanie dát...", - "PE.Controllers.Main.loadFontTitleText": "Načítavanie dát", - "PE.Controllers.Main.loadImagesTextText": "Načítavanie obrázkov...", - "PE.Controllers.Main.loadImagesTitleText": "Načítanie obrázkov", - "PE.Controllers.Main.loadImageTextText": "Načítanie obrázku ..", - "PE.Controllers.Main.loadImageTitleText": "Načítavanie obrázku", - "PE.Controllers.Main.loadingDocumentTextText": "Načítavanie prezentácie...", - "PE.Controllers.Main.loadingDocumentTitleText": "Načítavanie prezentácie", - "PE.Controllers.Main.loadThemeTextText": "Načítavanie témy...", - "PE.Controllers.Main.loadThemeTitleText": "Načítavanie témy", - "PE.Controllers.Main.notcriticalErrorTitle": "Upozornenie", - "PE.Controllers.Main.openErrorText": "Pri otváraní súboru sa vyskytla chyba", - "PE.Controllers.Main.openTextText": "Otváranie dokumentu...", - "PE.Controllers.Main.openTitleText": "Otváranie dokumentu", - "PE.Controllers.Main.printTextText": "Tlač dokumentu...", - "PE.Controllers.Main.printTitleText": "Tlač dokumentu", - "PE.Controllers.Main.reloadButtonText": "Obnoviť stránku", - "PE.Controllers.Main.requestEditFailedMessageText": "Niekto tento dokument práve upravuje. Skúste neskôr prosím.", - "PE.Controllers.Main.requestEditFailedTitleText": "Prístup zamietnutý", - "PE.Controllers.Main.saveErrorText": "Pri ukladaní súboru sa vyskytla chyba", - "PE.Controllers.Main.savePreparingText": "Príprava na uloženie", - "PE.Controllers.Main.savePreparingTitle": "Príprava na uloženie. Prosím čakajte...", - "PE.Controllers.Main.saveTextText": "Ukladanie dokumentu...", - "PE.Controllers.Main.saveTitleText": "Ukladanie dokumentu", - "PE.Controllers.Main.scriptLoadError": "Spojenie je príliš pomalé, niektoré komponenty nemožno nahrať. Obnovte prosím stránku.", - "PE.Controllers.Main.splitDividerErrorText": "Počet riadkov musí byť deliteľom %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Počet stĺpcov musí byť menší ako %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Počet riadkov musí byť menší ako %1", - "PE.Controllers.Main.textAnonymous": "Anonymný", - "PE.Controllers.Main.textBack": "Späť", - "PE.Controllers.Main.textBuyNow": "Navštíviť webovú stránku", - "PE.Controllers.Main.textCancel": "Zrušiť", - "PE.Controllers.Main.textClose": "Zatvoriť", - "PE.Controllers.Main.textCloseTip": "Klepnutím zavrite nápovedu.", - "PE.Controllers.Main.textContactUs": "Obchodné oddelenie", - "PE.Controllers.Main.textCustomLoader": "Majte na pamäti, že podľa podmienok licencie nie ste oprávnený meniť načítač.
            Pre získanie ponuky sa obráťte na naše obchodné oddelenie.", - "PE.Controllers.Main.textDone": "Hotovo", - "PE.Controllers.Main.textGuest": "Hosť", - "PE.Controllers.Main.textHasMacros": "Súbor obsahuje automatické makrá.
            Chcete spustiť makrá?", - "PE.Controllers.Main.textLoadingDocument": "Načítavanie prezentácie", - "PE.Controllers.Main.textNo": "Nie", - "PE.Controllers.Main.textNoLicenseTitle": "Bol dosiahnutý limit licencie", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPaidFeature": "Platená funkcia", - "PE.Controllers.Main.textPassword": "Heslo", - "PE.Controllers.Main.textPreloader": "Nahrávanie...", - "PE.Controllers.Main.textRemember": "Pamätať si moju voľbu", - "PE.Controllers.Main.textShape": "Tvar", - "PE.Controllers.Main.textTryUndoRedo": "Funkcie späť/opakovať sú pre rýchly spolu-editačný režim vypnuté.", - "PE.Controllers.Main.textUsername": "Užívateľské meno", - "PE.Controllers.Main.textYes": "Áno", - "PE.Controllers.Main.titleLicenseExp": "Platnosť licencie uplynula", - "PE.Controllers.Main.titleServerVersion": "Editor bol aktualizovaný", - "PE.Controllers.Main.txtAddFirstSlide": "Kliknutím pridajte prvú snímku", - "PE.Controllers.Main.txtArt": "Váš text tu", - "PE.Controllers.Main.txtBasicShapes": "Základné tvary", - "PE.Controllers.Main.txtButtons": "Tlačidlá", - "PE.Controllers.Main.txtCallouts": "Bubliny", - "PE.Controllers.Main.txtCharts": "Grafy", - "PE.Controllers.Main.txtClipArt": "Klipart", - "PE.Controllers.Main.txtDateTime": "Dátum a čas", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Názov grafu", - "PE.Controllers.Main.txtEditingMode": "Nastaviť režim úprav ...", - "PE.Controllers.Main.txtFiguredArrows": "Šipky", - "PE.Controllers.Main.txtFooter": "Päta stránky", - "PE.Controllers.Main.txtHeader": "Hlavička", - "PE.Controllers.Main.txtImage": "Obrázok", - "PE.Controllers.Main.txtLines": "Čiary", - "PE.Controllers.Main.txtMath": "Matematika", - "PE.Controllers.Main.txtMedia": "Médiá ", - "PE.Controllers.Main.txtNeedSynchronize": "Máte aktualizácie", - "PE.Controllers.Main.txtPicture": "Obrázok", - "PE.Controllers.Main.txtProtected": "Akonáhle vložíte heslo a otvoríte súbor, terajšie heslo sa zresetuje.", - "PE.Controllers.Main.txtRectangles": "Obdĺžniky", - "PE.Controllers.Main.txtSeries": "Rady", - "PE.Controllers.Main.txtSldLtTBlank": "Prázdny", - "PE.Controllers.Main.txtSldLtTChart": "Graf", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Graf a text", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Klipart a text", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Klipart a vertikálny text", - "PE.Controllers.Main.txtSldLtTCust": "Vlastný", - "PE.Controllers.Main.txtSldLtTDgm": "Diagram", - "PE.Controllers.Main.txtSldLtTFourObj": "Štyri objekty", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Médiá a text", - "PE.Controllers.Main.txtSldLtTObj": "Názov a objekt", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Objekt a dva objekty", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Objekt a text", - "PE.Controllers.Main.txtSldLtTObjOnly": "Objekt", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Objekt nad textom", - "PE.Controllers.Main.txtSldLtTObjTx": "Názov, objekt a titulok", - "PE.Controllers.Main.txtSldLtTPicTx": "Obraz a titulok", - "PE.Controllers.Main.txtSldLtTSecHead": "Záhlavie sekcie", - "PE.Controllers.Main.txtSldLtTTbl": "Tabuľka", - "PE.Controllers.Main.txtSldLtTTitle": "Názov", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Iba názov", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Text dvojstĺpca", - "PE.Controllers.Main.txtSldLtTTwoObj": "Dva objekty", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Dva objekty a objekt", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Dva objekty a text", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Dva objekty nad textom", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Dva texty a dva objekty", - "PE.Controllers.Main.txtSldLtTTx": "Text", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Text a graf", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Text a Klipart", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Text a médiá", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Text a objekt", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Text a dva objekty", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Text nad objektom", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Vertikálny názov a text", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Vertikálny názov a text nad grafom", - "PE.Controllers.Main.txtSldLtTVertTx": "Vertikálny text", - "PE.Controllers.Main.txtSlideNumber": "Číslo snímku", - "PE.Controllers.Main.txtSlideSubtitle": "Podtitul snímku", - "PE.Controllers.Main.txtSlideText": "Text snímku", - "PE.Controllers.Main.txtSlideTitle": "Názov snímku", - "PE.Controllers.Main.txtStarsRibbons": "Hviezdy a stuhy", - "PE.Controllers.Main.txtXAxis": "Os X", - "PE.Controllers.Main.txtYAxis": "Os Y", - "PE.Controllers.Main.unknownErrorText": "Neznáma chyba.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Váš prehliadač nie je podporovaný.", - "PE.Controllers.Main.uploadImageExtMessage": "Neznámy formát obrázka.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Neboli načítané žiadne obrázky.", - "PE.Controllers.Main.uploadImageSizeMessage": "Maximálny limit veľkosti obrázka bol prekročený.", - "PE.Controllers.Main.uploadImageTextText": "Nahrávanie obrázku...", - "PE.Controllers.Main.uploadImageTitleText": "Nahrávanie obrázku", - "PE.Controllers.Main.waitText": "Prosím čakajte...", - "PE.Controllers.Main.warnLicenseExceeded": "Počet súbežných spojení s dokumentovým serverom bol prekročený a dokument bude znovu otvorený iba na prezeranie.
            Pre ďalšie informácie kontaktujte prosím vášho správcu.", - "PE.Controllers.Main.warnLicenseExp": "Vaša licencia vypršala.
            Prosím, aktualizujte si svoju licenciu a obnovte stránku.", - "PE.Controllers.Main.warnLicenseLimitedNoAccess": "Licencia vypršala.
            K funkcii úprav dokumentu už nemáte prístup.
            Kontaktujte svojho administrátora, prosím.", - "PE.Controllers.Main.warnLicenseLimitedRenewed": "Je potrebné obnoviť licenciu.
            K funkciám úprav dokumentov máte obmedzený prístup.
            Pre získanie úplného prístupu kontaktujte prosím svojho administrátora.", - "PE.Controllers.Main.warnLicenseUsersExceeded": "Počet súbežných užívateľov bol prekročený a dokument bude znovu otvorený len na čítanie.
            Pre ďalšie informácie kontaktujte prosím vášho správcu.", - "PE.Controllers.Main.warnNoLicense": "Táto verzia aplikácie %1 editors má určité obmedzenia pre súbežné pripojenia k dokumentovému serveru.
            Ak potrebujete viac, zvážte aktualizáciu aktuálnej licencie alebo zakúpenie komerčnej.", - "PE.Controllers.Main.warnNoLicenseUsers": "Táto verzia %1 editors má určité obmedzenia pre spolupracujúcich používateľov.
            Ak potrebujete viac, zvážte aktualizáciu vašej aktuálnej licencie alebo kúpu komerčnej.", - "PE.Controllers.Main.warnProcessRightsChange": "Bolo vám zamietnuté právo upravovať súbor.", - "PE.Controllers.Search.textNoTextFound": "Text nebol nájdený", - "PE.Controllers.Search.textReplaceAll": "Nahradiť všetko", - "PE.Controllers.Settings.notcriticalErrorTitle": "Upozornenie", - "PE.Controllers.Settings.txtLoading": "Nahrávanie...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "V tomto dokumente máte neuložené zmeny. Kliknutím na položku 'Zostať na tejto stránke' čakáte na automatické uloženie dokumentu. Kliknutím na položku 'Odísť z tejto stránky' odstránite všetky neuložené zmeny.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Opúšťate aplikáciu", - "PE.Controllers.Toolbar.leaveButtonText": "Opustiť túto stránku", - "PE.Controllers.Toolbar.stayButtonText": "Zostať na tejto stránke", - "PE.Views.AddImage.textAddress": "Adresa", - "PE.Views.AddImage.textBack": "Späť", - "PE.Views.AddImage.textFromLibrary": "Obrázok z Knižnice", - "PE.Views.AddImage.textFromURL": "Obrázok z URL adresy", - "PE.Views.AddImage.textImageURL": "URL obrázka", - "PE.Views.AddImage.textInsertImage": "Vložiť obrázok", - "PE.Views.AddImage.textLinkSettings": "Nastavenia odkazu", - "PE.Views.AddLink.textBack": "Späť", - "PE.Views.AddLink.textDisplay": "Zobraziť", - "PE.Views.AddLink.textExternalLink": "Externý odkaz", - "PE.Views.AddLink.textFirst": "Prvá snímka", - "PE.Views.AddLink.textInsert": "Vložiť", - "PE.Views.AddLink.textInternalLink": "Snímok v tejto prezentácii", - "PE.Views.AddLink.textLast": "Posledná snímka", - "PE.Views.AddLink.textLink": "Odkaz", - "PE.Views.AddLink.textLinkSlide": "Odkaz na", - "PE.Views.AddLink.textLinkType": "Typ odkazu", - "PE.Views.AddLink.textNext": "Nasledujúca snímka", - "PE.Views.AddLink.textNumber": "Číslo snímky", - "PE.Views.AddLink.textPrev": "Predchádzajúca snímka", - "PE.Views.AddLink.textTip": "Nápoveda", - "PE.Views.AddOther.textAddComment": "Pridať komentár", - "PE.Views.AddOther.textBack": "Späť", - "PE.Views.AddOther.textComment": "Komentár", - "PE.Views.AddOther.textDisplay": "Zobraziť", - "PE.Views.AddOther.textDone": "Hotovo", - "PE.Views.AddOther.textExternalLink": "Externý odkaz", - "PE.Views.AddOther.textFirst": "Prvá snímka", - "PE.Views.AddOther.textInsert": "Vložiť", - "PE.Views.AddOther.textInternalLink": "Snímok v tejto prezentácii", - "PE.Views.AddOther.textLast": "Posledná snímka", - "PE.Views.AddOther.textLink": "Odkaz", - "PE.Views.AddOther.textLinkSlide": "Odkaz na", - "PE.Views.AddOther.textLinkType": "Typ odkazu", - "PE.Views.AddOther.textNext": "Nasledujúca snímka", - "PE.Views.AddOther.textNumber": "Číslo snímky", - "PE.Views.AddOther.textPrev": "Predchádzajúca snímka", - "PE.Views.AddOther.textTable": "Tabuľka", - "PE.Views.AddOther.textTip": "Nápoveda", - "PE.Views.EditChart.textAddCustomColor": "Pridať vlastnú farbu", - "PE.Views.EditChart.textAlign": "Zarovnať", - "PE.Views.EditChart.textAlignBottom": "Zarovnať dole", - "PE.Views.EditChart.textAlignCenter": "Centrovať", - "PE.Views.EditChart.textAlignLeft": "Zarovnať doľava", - "PE.Views.EditChart.textAlignMiddle": "Zarovnať na stred", - "PE.Views.EditChart.textAlignRight": "Zarovnať doprava", - "PE.Views.EditChart.textAlignTop": "Zarovnať nahor", - "PE.Views.EditChart.textBack": "Späť", - "PE.Views.EditChart.textBackward": "Posunúť späť", - "PE.Views.EditChart.textBorder": "Orámovanie", - "PE.Views.EditChart.textColor": "Farba", - "PE.Views.EditChart.textCustomColor": "Vlastná farba", - "PE.Views.EditChart.textFill": "Vyplniť", - "PE.Views.EditChart.textForward": "Posunúť vpred", - "PE.Views.EditChart.textRemoveChart": "Odstrániť graf", - "PE.Views.EditChart.textReorder": "Znovu usporiadať/zmena poradia", - "PE.Views.EditChart.textSize": "Veľkosť", - "PE.Views.EditChart.textStyle": "Štýl", - "PE.Views.EditChart.textToBackground": "Presunúť do pozadia", - "PE.Views.EditChart.textToForeground": "Premiestniť do popredia", - "PE.Views.EditChart.textType": "Typ", - "PE.Views.EditChart.txtDistribHor": "Rozložiť horizontálne", - "PE.Views.EditChart.txtDistribVert": "Rozložiť vertikálne", - "PE.Views.EditImage.textAddress": "Adresa", - "PE.Views.EditImage.textAlign": "Zarovnať", - "PE.Views.EditImage.textAlignBottom": "Zarovnať dole", - "PE.Views.EditImage.textAlignCenter": "Centrovať", - "PE.Views.EditImage.textAlignLeft": "Zarovnať doľava", - "PE.Views.EditImage.textAlignMiddle": "Zarovnať na stred", - "PE.Views.EditImage.textAlignRight": "Zarovnať doprava", - "PE.Views.EditImage.textAlignTop": "Zarovnať nahor", - "PE.Views.EditImage.textBack": "Späť", - "PE.Views.EditImage.textBackward": "Posunúť späť", - "PE.Views.EditImage.textDefault": "Aktuálna veľkosť", - "PE.Views.EditImage.textForward": "Posunúť vpred", - "PE.Views.EditImage.textFromLibrary": "Obrázok z Knižnice", - "PE.Views.EditImage.textFromURL": "Obrázok z URL adresy", - "PE.Views.EditImage.textImageURL": "URL obrázka", - "PE.Views.EditImage.textLinkSettings": "Nastavenia odkazu", - "PE.Views.EditImage.textRemove": "Odstrániť obrázok", - "PE.Views.EditImage.textReorder": "Znovu usporiadať/zmena poradia", - "PE.Views.EditImage.textReplace": "Nahradiť", - "PE.Views.EditImage.textReplaceImg": "Nahradiť obrázok", - "PE.Views.EditImage.textToBackground": "Presunúť do pozadia", - "PE.Views.EditImage.textToForeground": "Premiestniť do popredia", - "PE.Views.EditImage.txtDistribHor": "Rozložiť horizontálne", - "PE.Views.EditImage.txtDistribVert": "Rozložiť vertikálne", - "PE.Views.EditLink.textBack": "Späť", - "PE.Views.EditLink.textDisplay": "Zobraziť", - "PE.Views.EditLink.textEdit": "Upraviť odkaz", - "PE.Views.EditLink.textExternalLink": "Externý odkaz", - "PE.Views.EditLink.textFirst": "Prvá snímka", - "PE.Views.EditLink.textInternalLink": "Snímok v tejto prezentácii", - "PE.Views.EditLink.textLast": "Posledná snímka", - "PE.Views.EditLink.textLink": "Odkaz", - "PE.Views.EditLink.textLinkSlide": "Odkaz na", - "PE.Views.EditLink.textLinkType": "Typ odkazu", - "PE.Views.EditLink.textNext": "Nasledujúca snímka", - "PE.Views.EditLink.textNumber": "Číslo snímku", - "PE.Views.EditLink.textPrev": "Predchádzajúca snímka", - "PE.Views.EditLink.textRemove": "Odstrániť odkaz", - "PE.Views.EditLink.textTip": "Nápoveda", - "PE.Views.EditShape.textAddCustomColor": "Pridať vlastnú farbu", - "PE.Views.EditShape.textAlign": "Zarovnať", - "PE.Views.EditShape.textAlignBottom": "Zarovnať dole", - "PE.Views.EditShape.textAlignCenter": "Centrovať", - "PE.Views.EditShape.textAlignLeft": "Zarovnať doľava", - "PE.Views.EditShape.textAlignMiddle": "Zarovnať na stred", - "PE.Views.EditShape.textAlignRight": "Zarovnať doprava", - "PE.Views.EditShape.textAlignTop": "Zarovnať nahor", - "PE.Views.EditShape.textBack": "Späť", - "PE.Views.EditShape.textBackward": "Posunúť späť", - "PE.Views.EditShape.textBorder": "Orámovanie", - "PE.Views.EditShape.textColor": "Farba", - "PE.Views.EditShape.textCustomColor": "Vlastná farba", - "PE.Views.EditShape.textEffects": "Efekty", - "PE.Views.EditShape.textFill": "Vyplniť", - "PE.Views.EditShape.textForward": "Posunúť vpred", - "PE.Views.EditShape.textOpacity": "Priehľadnosť", - "PE.Views.EditShape.textRemoveShape": "Odstrániť tvar", - "PE.Views.EditShape.textReorder": "Znovu usporiadať/zmena poradia", - "PE.Views.EditShape.textReplace": "Nahradiť", - "PE.Views.EditShape.textSize": "Veľkosť", - "PE.Views.EditShape.textStyle": "Štýl", - "PE.Views.EditShape.textToBackground": "Presunúť do pozadia", - "PE.Views.EditShape.textToForeground": "Premiestniť do popredia", - "PE.Views.EditShape.txtDistribHor": "Rozložiť horizontálne", - "PE.Views.EditShape.txtDistribVert": "Rozložiť vertikálne", - "PE.Views.EditSlide.textAddCustomColor": "Pridať vlastnú farbu", - "PE.Views.EditSlide.textApplyAll": "Použiť na všetky snímky", - "PE.Views.EditSlide.textBack": "Späť", - "PE.Views.EditSlide.textBlack": "Prostredníctvom čiernej", - "PE.Views.EditSlide.textBottom": "Dole", - "PE.Views.EditSlide.textBottomLeft": "Dole-vľavo", - "PE.Views.EditSlide.textBottomRight": "Dole-vpravo", - "PE.Views.EditSlide.textClock": "Hodiny", - "PE.Views.EditSlide.textClockwise": "V smere hodinových ručičiek", - "PE.Views.EditSlide.textColor": "Farba", - "PE.Views.EditSlide.textCounterclockwise": "Proti smeru hodinových ručičiek", - "PE.Views.EditSlide.textCover": "Zakryť", - "PE.Views.EditSlide.textCustomColor": "Vlastná farba", - "PE.Views.EditSlide.textDelay": "Oneskorenie", - "PE.Views.EditSlide.textDuplicateSlide": "Kopírovať snímku", - "PE.Views.EditSlide.textDuration": "Trvanie", - "PE.Views.EditSlide.textEffect": "Efekt", - "PE.Views.EditSlide.textFade": "Vyblednúť", - "PE.Views.EditSlide.textFill": "Vyplniť", - "PE.Views.EditSlide.textHorizontalIn": "Horizontálne dnu", - "PE.Views.EditSlide.textHorizontalOut": "Horizontálne von", - "PE.Views.EditSlide.textLayout": "Rozloženie", - "PE.Views.EditSlide.textLeft": "Vľavo", - "PE.Views.EditSlide.textNone": "Žiadny", - "PE.Views.EditSlide.textOpacity": "Priehľadnosť", - "PE.Views.EditSlide.textPush": "Posunúť", - "PE.Views.EditSlide.textRemoveSlide": "Odstrániť snímku", - "PE.Views.EditSlide.textRight": "Vpravo", - "PE.Views.EditSlide.textSmoothly": "Plynule", - "PE.Views.EditSlide.textSplit": "Rozdeliť", - "PE.Views.EditSlide.textStartOnClick": "Začať kliknutím", - "PE.Views.EditSlide.textStyle": "Štýl", - "PE.Views.EditSlide.textTheme": "Téma", - "PE.Views.EditSlide.textTop": "Hore", - "PE.Views.EditSlide.textTopLeft": "Hore-vľavo", - "PE.Views.EditSlide.textTopRight": "Hore-vpravo", - "PE.Views.EditSlide.textTransition": "Prechod", - "PE.Views.EditSlide.textType": "Typ", - "PE.Views.EditSlide.textUnCover": "Odkryť", - "PE.Views.EditSlide.textVerticalIn": "Vertikálne dnu", - "PE.Views.EditSlide.textVerticalOut": "Vertikálne von", - "PE.Views.EditSlide.textWedge": "Konjunkcia", - "PE.Views.EditSlide.textWipe": "Rozotrieť", - "PE.Views.EditSlide.textZoom": "Priblíženie", - "PE.Views.EditSlide.textZoomIn": "Priblížiť", - "PE.Views.EditSlide.textZoomOut": "Oddialiť", - "PE.Views.EditSlide.textZoomRotate": "Priblížiť a otáčať", - "PE.Views.EditTable.textAddCustomColor": "Pridať vlastnú farbu", - "PE.Views.EditTable.textAlign": "Zarovnať", - "PE.Views.EditTable.textAlignBottom": "Zarovnať dole", - "PE.Views.EditTable.textAlignCenter": "Centrovať", - "PE.Views.EditTable.textAlignLeft": "Zarovnať doľava", - "PE.Views.EditTable.textAlignMiddle": "Zarovnať na stred", - "PE.Views.EditTable.textAlignRight": "Zarovnať doprava", - "PE.Views.EditTable.textAlignTop": "Zarovnať nahor", - "PE.Views.EditTable.textBack": "Späť", - "PE.Views.EditTable.textBackward": "Posunúť späť", - "PE.Views.EditTable.textBandedColumn": "Pruhovaný stĺpec", - "PE.Views.EditTable.textBandedRow": "Pruhovaný riadok", - "PE.Views.EditTable.textBorder": "Orámovanie", - "PE.Views.EditTable.textCellMargins": "Okraje bunky", - "PE.Views.EditTable.textColor": "Farba", - "PE.Views.EditTable.textCustomColor": "Vlastná farba", - "PE.Views.EditTable.textFill": "Vyplniť", - "PE.Views.EditTable.textFirstColumn": "Prvý stĺpec", - "PE.Views.EditTable.textForward": "Posunúť vpred", - "PE.Views.EditTable.textHeaderRow": "Riadok hlavičky", - "PE.Views.EditTable.textLastColumn": "Posledný stĺpec", - "PE.Views.EditTable.textOptions": "Možnosti", - "PE.Views.EditTable.textRemoveTable": "Odstrániť tabuľku", - "PE.Views.EditTable.textReorder": "Znovu usporiadať/zmena poradia", - "PE.Views.EditTable.textSize": "Veľkosť", - "PE.Views.EditTable.textStyle": "Štýl", - "PE.Views.EditTable.textStyleOptions": "Možnosti štýlu", - "PE.Views.EditTable.textTableOptions": "Možnosti tabuľky", - "PE.Views.EditTable.textToBackground": "Presunúť do pozadia", - "PE.Views.EditTable.textToForeground": "Premiestniť do popredia", - "PE.Views.EditTable.textTotalRow": "Celkový riadok", - "PE.Views.EditTable.txtDistribHor": "Rozložiť horizontálne", - "PE.Views.EditTable.txtDistribVert": "Rozložiť vertikálne", - "PE.Views.EditText.textAddCustomColor": "Pridať vlastnú farbu", - "PE.Views.EditText.textAdditional": "Ďalšie", - "PE.Views.EditText.textAdditionalFormat": "Ďalšie formátovanie", - "PE.Views.EditText.textAfter": "Za", - "PE.Views.EditText.textAllCaps": "Všetko veľkým", - "PE.Views.EditText.textAutomatic": "Automaticky", - "PE.Views.EditText.textBack": "Späť", - "PE.Views.EditText.textBefore": "Pred", - "PE.Views.EditText.textBullets": "Odrážky", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "Vlastná farba", - "PE.Views.EditText.textDblStrikethrough": "Dvojité prečiarknutie", - "PE.Views.EditText.textDblSuperscript": "Horný index", - "PE.Views.EditText.textFontColor": "Farba písma", - "PE.Views.EditText.textFontColors": "Farby písma", - "PE.Views.EditText.textFonts": "Písma", - "PE.Views.EditText.textFromText": "Vzdialenosť od textu", - "PE.Views.EditText.textLetterSpacing": "Rozstup medzi písmenami", - "PE.Views.EditText.textLineSpacing": "Riadkovanie", - "PE.Views.EditText.textNone": "Žiadny", - "PE.Views.EditText.textNumbers": "Čísla", - "PE.Views.EditText.textSize": "Veľkosť", - "PE.Views.EditText.textSmallCaps": "Malé písmená", - "PE.Views.EditText.textStrikethrough": "Prečiarknutie", - "PE.Views.EditText.textSubscript": "Dolný index", - "PE.Views.Search.textCase": "Rozlišovať veľkosť písmen", - "PE.Views.Search.textDone": "Hotovo", - "PE.Views.Search.textFind": "Hľadať", - "PE.Views.Search.textFindAndReplace": "Hľadať a nahradiť", - "PE.Views.Search.textReplace": "Nahradiť", - "PE.Views.Search.textSearch": "Hľadať", - "PE.Views.Settings. textComment": "Komentár", - "PE.Views.Settings.mniSlideStandard": "Štandard (4:3)", - "PE.Views.Settings.mniSlideWide": "Širokouhlý (16:9)", - "PE.Views.Settings.textAbout": "O aplikácii", - "PE.Views.Settings.textAddress": "adresa", - "PE.Views.Settings.textApplication": "Aplikácia", - "PE.Views.Settings.textApplicationSettings": "Nastavenia aplikácie", - "PE.Views.Settings.textAuthor": "Autor", - "PE.Views.Settings.textBack": "Späť", - "PE.Views.Settings.textCentimeter": "Centimeter", - "PE.Views.Settings.textCollaboration": "Spolupráca", - "PE.Views.Settings.textColorSchemes": "Schéma farieb", - "PE.Views.Settings.textCreated": "Vytvorené", - "PE.Views.Settings.textCreateDate": "Dátum vytvorenia", - "PE.Views.Settings.textDisableAll": "Zablokovať všetko", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "Zablokovať všetky makrá s upozornením", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "Zablokovať všetky makrá bez upozornenia", - "PE.Views.Settings.textDone": "Hotovo", - "PE.Views.Settings.textDownload": "Stiahnuť", - "PE.Views.Settings.textDownloadAs": "Stiahnuť ako...", - "PE.Views.Settings.textEditPresent": "Upraviť prezentáciu", - "PE.Views.Settings.textEmail": "E-mail", - "PE.Views.Settings.textEnableAll": "Povoliť všetko", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "Povoliť všetky makrá bez oznámenia", - "PE.Views.Settings.textFind": "Nájsť", - "PE.Views.Settings.textFindAndReplace": "Hľadať a nahradiť", - "PE.Views.Settings.textHelp": "Pomoc", - "PE.Views.Settings.textInch": "Palec", - "PE.Views.Settings.textLastModified": "Naposledy upravené", - "PE.Views.Settings.textLastModifiedBy": "Naposledy upravil(a) ", - "PE.Views.Settings.textLoading": "Nahrávanie...", - "PE.Views.Settings.textLocation": "Umiestnenie", - "PE.Views.Settings.textMacrosSettings": "Nastavenia makier", - "PE.Views.Settings.textOwner": "Vlastník", - "PE.Views.Settings.textPoint": "Bod", - "PE.Views.Settings.textPoweredBy": "Poháňaný ", - "PE.Views.Settings.textPresentInfo": "Informácie o prezentácii", - "PE.Views.Settings.textPresentSettings": "Nastavení prezentácie", - "PE.Views.Settings.textPresentSetup": "Nastavenie prezentácie", - "PE.Views.Settings.textPresentTitle": "Názov prezentácie", - "PE.Views.Settings.textPrint": "Tlačiť", - "PE.Views.Settings.textSettings": "Nastavenia", - "PE.Views.Settings.textShowNotification": "Ukázať oznámenie", - "PE.Views.Settings.textSlideSize": "Veľkosť snímku", - "PE.Views.Settings.textSpellcheck": "Kontrola pravopisu", - "PE.Views.Settings.textSubject": "Predmet", - "PE.Views.Settings.textTel": "Tel", - "PE.Views.Settings.textTitle": "Názov", - "PE.Views.Settings.textUnitOfMeasurement": "Jednotka merania", - "PE.Views.Settings.textUploaded": "Nahrané", - "PE.Views.Settings.textVersion": "Verzia", - "PE.Views.Settings.unknownText": "Neznámy", - "PE.Views.Toolbar.textBack": "Späť" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/tr.json b/apps/presentationeditor/mobile/locale/tr.json index 24a0a8d1d..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/tr.json +++ b/apps/presentationeditor/mobile/locale/tr.json @@ -1,446 +1,3 @@ { - "Common.UI.ThemeColorPalette.textStandartColors": "Standart Renkler", - "Common.UI.ThemeColorPalette.textThemeColors": "Tema Renkleri", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textBack": "Geri", - "PE.Controllers.AddContainer.textImage": "Resim", - "PE.Controllers.AddContainer.textLink": "Link", - "PE.Controllers.AddContainer.textShape": "Şekil", - "PE.Controllers.AddContainer.textSlide": "Slayt", - "PE.Controllers.AddContainer.textTable": "Tablo", - "PE.Controllers.AddImage.textEmptyImgUrl": "Resim URL'si belirtmelisiniz.", - "PE.Controllers.AddImage.txtNotUrl": "Bu alan 'http://www.example.com' formatında bir URL olmak zorundadır", - "PE.Controllers.AddLink.textDefault": "Seçili metin", - "PE.Controllers.AddLink.textExternalLink": "Harici Bağlantı", - "PE.Controllers.AddLink.textFirst": "İlk Slayt", - "PE.Controllers.AddLink.textInternalLink": "Sunumdaki Slayt", - "PE.Controllers.AddLink.textLast": "Son Slayt", - "PE.Controllers.AddLink.textNext": "Sonraki Slayt", - "PE.Controllers.AddLink.textPrev": "Önceki slayt", - "PE.Controllers.AddLink.textSlide": "Slayt", - "PE.Controllers.AddLink.txtNotUrl": "Bu alan 'http://www.example.com' formatında bir URL olmak zorundadır", - "PE.Controllers.AddTable.textCancel": "İptal", - "PE.Controllers.AddTable.textColumns": "Sütunlar", - "PE.Controllers.AddTable.textRows": "Satırlar", - "PE.Controllers.AddTable.textTableSize": "Tablo Boyutu", - "PE.Controllers.DocumentHolder.menuAddLink": "Link Ekle", - "PE.Controllers.DocumentHolder.menuCopy": "Kopyala", - "PE.Controllers.DocumentHolder.menuCut": "Kes", - "PE.Controllers.DocumentHolder.menuDelete": "Sil", - "PE.Controllers.DocumentHolder.menuEdit": "Düzenle", - "PE.Controllers.DocumentHolder.menuMore": "Daha fazla", - "PE.Controllers.DocumentHolder.menuOpenLink": "Linki Aç", - "PE.Controllers.DocumentHolder.menuPaste": "Yapıştır", - "PE.Controllers.DocumentHolder.sheetCancel": "İptal", - "PE.Controllers.EditContainer.textChart": "Grafik", - "PE.Controllers.EditContainer.textHyperlink": "Hiper Link", - "PE.Controllers.EditContainer.textImage": "Resim", - "PE.Controllers.EditContainer.textSettings": "Ayarlar", - "PE.Controllers.EditContainer.textShape": "Şekil", - "PE.Controllers.EditContainer.textSlide": "Slayt", - "PE.Controllers.EditContainer.textTable": "Tablo", - "PE.Controllers.EditContainer.textText": "Metin", - "PE.Controllers.EditImage.textEmptyImgUrl": "Resim URL'si belirtmelisiniz.", - "PE.Controllers.EditImage.txtNotUrl": "Bu alan 'http://www.example.com' formatında bir URL olmak zorundadır", - "PE.Controllers.EditLink.textDefault": "Seçili metin", - "PE.Controllers.EditLink.textExternalLink": "Harici Bağlantı", - "PE.Controllers.EditLink.textFirst": "İlk Slayt", - "PE.Controllers.EditLink.textInternalLink": "Sunumdaki Slayt", - "PE.Controllers.EditLink.textLast": "Son Slayt", - "PE.Controllers.EditLink.textNext": "Sonraki Slayt", - "PE.Controllers.EditLink.textPrev": "Önceki slayt", - "PE.Controllers.EditLink.textSlide": "Slayt", - "PE.Controllers.EditLink.txtNotUrl": "Bu alan 'http://www.example.com' formatında bir URL olmak zorundadır", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Otomatik", - "PE.Controllers.EditText.textFonts": "Yazı Tipleri", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Şifrenizi girin:", - "PE.Controllers.Main.advDRMOptions": "Korumalı Dosya", - "PE.Controllers.Main.advDRMPassword": "Şifre", - "PE.Controllers.Main.applyChangesTextText": "Veri yükleniyor...", - "PE.Controllers.Main.applyChangesTitleText": "Veri yükleniyor", - "PE.Controllers.Main.convertationTimeoutText": "Değişim süresi geçti.", - "PE.Controllers.Main.criticalErrorExtText": "Belge listesine dönmek için 'TAMAM' tuşuna tıklayın.", - "PE.Controllers.Main.criticalErrorTitle": "Hata", - "PE.Controllers.Main.downloadErrorText": "İndirme başarısız oldu.", - "PE.Controllers.Main.downloadTextText": "Belge indiriliyor...", - "PE.Controllers.Main.downloadTitleText": "Belge indiriliyor", - "PE.Controllers.Main.errorBadImageUrl": "Resim URL'si yanlış", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Sunucu bağlantısı kayboldu. Artık düzenleyemezsiniz.", - "PE.Controllers.Main.errorConnectToServer": "Belge kaydedilemedi. Lütfen internet bağlantınızı kontrol edin veya yöneticiniz ile iletişime geçin.
            'TAMAM' tuşuna tıkladığınızda belgeyi indirebileceksiniz.", - "PE.Controllers.Main.errorDatabaseConnection": "Dışsal hata.
            Veritabanı bağlantı hatası. Lütfen destek ile iletişime geçin.", - "PE.Controllers.Main.errorDataRange": "Yanlış veri aralığı.", - "PE.Controllers.Main.errorDefaultMessage": "Hata kodu: %1", - "PE.Controllers.Main.errorFilePassProtect": "Belge şifre korumalı.", - "PE.Controllers.Main.errorKeyEncrypt": "Bilinmeyen anahtar tanımlayıcı", - "PE.Controllers.Main.errorKeyExpire": "Anahtar tanımlayıcının süresi doldu", - "PE.Controllers.Main.errorProcessSaveResult": "Kaydetme başarısız.", - "PE.Controllers.Main.errorServerVersion": "Editör versiyonu güncellendi. Sayfa yenilenerek değişiklikler uygulanacaktır.", - "PE.Controllers.Main.errorStockChart": "Yanlış dizi sırası. Stok grafiği oluşturma için tablodaki verileri şu sırada yerleştirin:
            açılış fiyatı, maksimum fiyat, minimum fiyat, kapanış fiyatı.", - "PE.Controllers.Main.errorUpdateVersion": "Dosya versiyonu değiştirildi. Sayfa yenilenecektir.", - "PE.Controllers.Main.errorUserDrop": "Belgeye şu an erişilemiyor.", - "PE.Controllers.Main.errorUsersExceed": "Kullanıcı sayısı aşıldı", - "PE.Controllers.Main.errorViewerDisconnect": "Bağlantı kaybedildi. Yine belgeyi görüntüleyebilirsiniz,
            bağlantı geri gelmeden önce indirme işlemi yapılamayacak.", - "PE.Controllers.Main.leavePageText": "Bu belgede kaydedilmemiş değişiklikleriniz var. 'Sayfada Kal' tuşuna tıklayarak otomatik kaydetmeyi bekleyebilirsiniz. 'Sayfadan Ayrıl' tuşuna tıklarsanız kaydedilmemiş tüm değişiklikler silinecektir.", - "PE.Controllers.Main.loadFontsTextText": "Veri yükleniyor...", - "PE.Controllers.Main.loadFontsTitleText": "Veri yükleniyor", - "PE.Controllers.Main.loadFontTextText": "Veri yükleniyor...", - "PE.Controllers.Main.loadFontTitleText": "Veri yükleniyor", - "PE.Controllers.Main.loadImagesTextText": "Resimler yükleniyor...", - "PE.Controllers.Main.loadImagesTitleText": "Resimler yükleniyor", - "PE.Controllers.Main.loadImageTextText": "Resim yükleniyor...", - "PE.Controllers.Main.loadImageTitleText": "Resim yükleniyor", - "PE.Controllers.Main.loadingDocumentTextText": "Sunum yükleniyor...", - "PE.Controllers.Main.loadingDocumentTitleText": "Sunum yükleniyor", - "PE.Controllers.Main.loadThemeTextText": "Tema yükleniyor...", - "PE.Controllers.Main.loadThemeTitleText": "Tema Yükleniyor", - "PE.Controllers.Main.notcriticalErrorTitle": "Uyarı", - "PE.Controllers.Main.openErrorText": "Dosya açılırken bir hata oluştu", - "PE.Controllers.Main.openTextText": "Belge açılıyor...", - "PE.Controllers.Main.openTitleText": "Belge Açılıyor", - "PE.Controllers.Main.printTextText": "Belge yazdırılıyor...", - "PE.Controllers.Main.printTitleText": "Belge Yazdırılıyor", - "PE.Controllers.Main.reloadButtonText": "Sayfayı Yenile", - "PE.Controllers.Main.requestEditFailedMessageText": "Şu anda bu belge başka birisi tarafından düzenleniyor. Lütfen daha sonra tekrar deneyin.", - "PE.Controllers.Main.requestEditFailedTitleText": "Erişim reddedildi", - "PE.Controllers.Main.saveErrorText": "Dosya kaydedilirken bir hata oluştu", - "PE.Controllers.Main.savePreparingText": "Kaydetmeye hazırlanıyor", - "PE.Controllers.Main.savePreparingTitle": "Kaydetmeye hazırlanıyor. Lütfen bekleyin...", - "PE.Controllers.Main.saveTextText": "Belge kaydediliyor...", - "PE.Controllers.Main.saveTitleText": "Belge Kaydediliyor", - "PE.Controllers.Main.splitDividerErrorText": "Satır sayısı %1 bölmelidir", - "PE.Controllers.Main.splitMaxColsErrorText": "Sütun sayısı %1 geçmemelidir", - "PE.Controllers.Main.splitMaxRowsErrorText": "Satır sayısı %1 geçmemelidir", - "PE.Controllers.Main.textAnonymous": "Anonim", - "PE.Controllers.Main.textBack": "Geri", - "PE.Controllers.Main.textBuyNow": "Websitesini ziyaret edin", - "PE.Controllers.Main.textCancel": "İptal", - "PE.Controllers.Main.textClose": "Kapat", - "PE.Controllers.Main.textCloseTip": "İpucunu kapatmak için dokunun.", - "PE.Controllers.Main.textContactUs": "Satış departmanı", - "PE.Controllers.Main.textDone": "Bitti", - "PE.Controllers.Main.textLoadingDocument": "Sunum yükleniyor", - "PE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE açık kaynak sürümü", - "PE.Controllers.Main.textOK": "TAMAM", - "PE.Controllers.Main.textPassword": "Şifre", - "PE.Controllers.Main.textPreloader": "Yükleniyor...", - "PE.Controllers.Main.textShape": "Şekil", - "PE.Controllers.Main.textTryUndoRedo": "Hızlı birlikte düzenleme modunda geri al/ileri al fonksiyonları devre dışıdır.", - "PE.Controllers.Main.textUsername": "Kullanıcı adı", - "PE.Controllers.Main.titleLicenseExp": "Lisans süresi doldu", - "PE.Controllers.Main.titleServerVersion": "Editör güncellendi", - "PE.Controllers.Main.txtArt": "Metni buraya giriniz", - "PE.Controllers.Main.txtBasicShapes": "Temel Şekiller", - "PE.Controllers.Main.txtButtons": "Maddeler", - "PE.Controllers.Main.txtCallouts": "Belirtme Çizgileri", - "PE.Controllers.Main.txtCharts": "Grafikler", - "PE.Controllers.Main.txtClipArt": "Clip Art", - "PE.Controllers.Main.txtDateTime": "Tarih ve saat", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Grafik Başlığı", - "PE.Controllers.Main.txtEditingMode": "Düzenleme modunu belirle...", - "PE.Controllers.Main.txtFiguredArrows": "Şekilli Oklar", - "PE.Controllers.Main.txtFooter": "Altbilgi", - "PE.Controllers.Main.txtHeader": "Başlık", - "PE.Controllers.Main.txtImage": "Resim", - "PE.Controllers.Main.txtLines": "Satırlar", - "PE.Controllers.Main.txtMath": "Matematik", - "PE.Controllers.Main.txtMedia": "Medya", - "PE.Controllers.Main.txtNeedSynchronize": "Güncellemeleriniz var", - "PE.Controllers.Main.txtPicture": "Resim", - "PE.Controllers.Main.txtRectangles": "Dikdörtgenler", - "PE.Controllers.Main.txtSeries": "Seriler", - "PE.Controllers.Main.txtSldLtTBlank": "Boş", - "PE.Controllers.Main.txtSldLtTChart": "Grafik", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Grafik ve Metin", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art ve Metin", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clip Art ve Dikey Metin", - "PE.Controllers.Main.txtSldLtTCust": "Özel", - "PE.Controllers.Main.txtSldLtTDgm": "Diyagram", - "PE.Controllers.Main.txtSldLtTFourObj": "Dört Obje", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Medya ve Metin", - "PE.Controllers.Main.txtSldLtTObj": "Başlık ve Obje", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Obje ve İki Obje", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Obje ve Metin", - "PE.Controllers.Main.txtSldLtTObjOnly": "Obje", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Metin Üstünde Obje", - "PE.Controllers.Main.txtSldLtTObjTx": "Başlık, Obje ve Altyazı", - "PE.Controllers.Main.txtSldLtTPicTx": "Resim ve Başlık", - "PE.Controllers.Main.txtSldLtTSecHead": "Bölüm Üst Başlığı", - "PE.Controllers.Main.txtSldLtTTbl": "Tablo", - "PE.Controllers.Main.txtSldLtTTitle": "Başlık", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Sadece Başlık", - "PE.Controllers.Main.txtSldLtTTwoColTx": "İki Sütunlu Metin", - "PE.Controllers.Main.txtSldLtTTwoObj": "İki Obje", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "İki Obje ve Obje", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "İki Obje ve Metin", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Metin Üstünde İki Obje", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "İki Metin ve İki Obje", - "PE.Controllers.Main.txtSldLtTTx": "Metin", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Metin ve Grafik", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Metin ve Clip Art", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Metin ve Medya", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Metin ve Obje", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Metin ve İki Obje", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Obje üstünde Metin", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Dikey Başlık ve Metin", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Dikey Başlık ve Grafik Üstünde Metin", - "PE.Controllers.Main.txtSldLtTVertTx": "Dikey Metin", - "PE.Controllers.Main.txtSlideNumber": "Slayt numarası", - "PE.Controllers.Main.txtSlideSubtitle": "Slayt altyazısı", - "PE.Controllers.Main.txtSlideText": "Slayt metni", - "PE.Controllers.Main.txtSlideTitle": "Slayt başlığı", - "PE.Controllers.Main.txtStarsRibbons": "Yıldızlar & Kurdeleler", - "PE.Controllers.Main.txtXAxis": "X Ekseni", - "PE.Controllers.Main.txtYAxis": "Y Ekseni", - "PE.Controllers.Main.unknownErrorText": "Bilinmeyen hata.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Tarayıcınız desteklenmiyor.", - "PE.Controllers.Main.uploadImageExtMessage": "Bilinmeyen resim formatı.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Resim yüklenmedi.", - "PE.Controllers.Main.uploadImageSizeMessage": "Maksimum resim boyutu aşıldı.", - "PE.Controllers.Main.uploadImageTextText": "Resim yükleniyor...", - "PE.Controllers.Main.uploadImageTitleText": "Resim Yükleniyor", - "PE.Controllers.Main.warnLicenseExp": "Lisansınızın süresi doldu.
            Lütfen lisansınızı güncelleyin ve sayfayı yenileyin.", - "PE.Controllers.Main.warnNoLicense": "%1'ın açık kaynaklı bir sürümünü kullanıyorsunuz. Sürüm, belge sunucusuna eş zamanlı bağlantılar için sınırlamalar getiriyor (bir seferde 20 bağlantı).
            Daha fazla bilgiye ihtiyacınız varsa, ticari bir lisans satın almayı düşünün lütfen.", - "PE.Controllers.Main.warnProcessRightsChange": "Dosyayı düzenleme hakkınız reddedildi.", - "PE.Controllers.Search.textNoTextFound": "Metin Bulunamadı", - "PE.Controllers.Settings.notcriticalErrorTitle": "Uyarı", - "PE.Controllers.Settings.txtLoading": "Yükleniyor...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Bu belgede kaydedilmemiş değişiklikleriniz var. 'Sayfada Kal' tuşuna tıklayarak otomatik kaydetmeyi bekleyebilirsiniz. 'Sayfadan Ayrıl' tuşuna tıklarsanız kaydedilmemiş tüm değişiklikler silinecektir.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Uygulamadan çıktınız", - "PE.Controllers.Toolbar.leaveButtonText": "Bu Sayfadan Ayrıl", - "PE.Controllers.Toolbar.stayButtonText": "Bu Sayfada Kal", - "PE.Views.AddImage.textAddress": "Adres", - "PE.Views.AddImage.textBack": "Geri", - "PE.Views.AddImage.textFromLibrary": "Kütüphane'den Resim", - "PE.Views.AddImage.textFromURL": "URL'den resim", - "PE.Views.AddImage.textImageURL": "Resim URL'si", - "PE.Views.AddImage.textInsertImage": "Resim Ekle", - "PE.Views.AddImage.textLinkSettings": "Link Ayarları", - "PE.Views.AddLink.textBack": "Geri", - "PE.Views.AddLink.textDisplay": "Görünüm", - "PE.Views.AddLink.textExternalLink": "Harici Bağlantı", - "PE.Views.AddLink.textFirst": "İlk Slayt", - "PE.Views.AddLink.textInsert": "Ekle", - "PE.Views.AddLink.textInternalLink": "Sunumdaki Slayt", - "PE.Views.AddLink.textLast": "Son Slayt", - "PE.Views.AddLink.textLink": "Link", - "PE.Views.AddLink.textLinkSlide": "Şuna bağlantıla:", - "PE.Views.AddLink.textLinkType": "Link Tipi", - "PE.Views.AddLink.textNext": "Sonraki Slayt", - "PE.Views.AddLink.textNumber": "Slayt Numarası", - "PE.Views.AddLink.textPrev": "Önceki slayt", - "PE.Views.AddLink.textTip": "Ekran İpucu", - "PE.Views.EditChart.textAlign": "Hizala", - "PE.Views.EditChart.textAlignBottom": "Alta Hizala", - "PE.Views.EditChart.textAlignCenter": "Ortaya Hizala", - "PE.Views.EditChart.textAlignLeft": "Sola Hizala", - "PE.Views.EditChart.textAlignMiddle": "Ortaya Hizala", - "PE.Views.EditChart.textAlignRight": "Sağa Hizala", - "PE.Views.EditChart.textAlignTop": "Üste Hizala", - "PE.Views.EditChart.textBack": "Geri", - "PE.Views.EditChart.textBackward": "Geri Taşı", - "PE.Views.EditChart.textBorder": "Sınır", - "PE.Views.EditChart.textColor": "Renk", - "PE.Views.EditChart.textFill": "Doldur", - "PE.Views.EditChart.textForward": "İleri Taşı", - "PE.Views.EditChart.textRemoveChart": "Grafiği Kaldır", - "PE.Views.EditChart.textReorder": "Yeniden Sırala", - "PE.Views.EditChart.textSize": "Boyut", - "PE.Views.EditChart.textStyle": "Stil", - "PE.Views.EditChart.textToBackground": "Arka Plana gönder", - "PE.Views.EditChart.textToForeground": "Ön Plana Getir", - "PE.Views.EditChart.textType": "Tip", - "PE.Views.EditChart.txtDistribHor": "Yatay olarak dağıt", - "PE.Views.EditChart.txtDistribVert": "Dikey olarak dağıt", - "PE.Views.EditImage.textAddress": "Adres", - "PE.Views.EditImage.textAlign": "Hizala", - "PE.Views.EditImage.textAlignBottom": "Alta Hizala", - "PE.Views.EditImage.textAlignCenter": "Ortaya Hizala", - "PE.Views.EditImage.textAlignLeft": "Sola Hizala", - "PE.Views.EditImage.textAlignMiddle": "Ortaya Hizala", - "PE.Views.EditImage.textAlignRight": "Sağa Hizala", - "PE.Views.EditImage.textAlignTop": "Üste Hizala", - "PE.Views.EditImage.textBack": "Geri", - "PE.Views.EditImage.textBackward": "Geri Taşı", - "PE.Views.EditImage.textDefault": "Varsayılan Boyut", - "PE.Views.EditImage.textForward": "İleri Taşı", - "PE.Views.EditImage.textFromLibrary": "Kütüphane'den Resim", - "PE.Views.EditImage.textFromURL": "URL'den resim", - "PE.Views.EditImage.textImageURL": "Resim URL'si", - "PE.Views.EditImage.textLinkSettings": "Link Ayarları", - "PE.Views.EditImage.textRemove": "Resmi Kaldır", - "PE.Views.EditImage.textReorder": "Yeniden Sırala", - "PE.Views.EditImage.textReplace": "Değiştir", - "PE.Views.EditImage.textReplaceImg": "Resmi Değiştir", - "PE.Views.EditImage.textToBackground": "Arka Plana gönder", - "PE.Views.EditImage.textToForeground": "Ön Plana Getir", - "PE.Views.EditImage.txtDistribHor": "Yatay olarak dağıt", - "PE.Views.EditImage.txtDistribVert": "Dikey olarak dağıt", - "PE.Views.EditLink.textBack": "Geri", - "PE.Views.EditLink.textDisplay": "Görünüm", - "PE.Views.EditLink.textEdit": "Link Düzenle", - "PE.Views.EditLink.textExternalLink": "Harici Bağlantı", - "PE.Views.EditLink.textFirst": "İlk Slayt", - "PE.Views.EditLink.textInternalLink": "Sunumdaki Slayt", - "PE.Views.EditLink.textLast": "Son Slayt", - "PE.Views.EditLink.textLink": "Link", - "PE.Views.EditLink.textLinkSlide": "Şuna bağlantıla:", - "PE.Views.EditLink.textLinkType": "Link Tipi", - "PE.Views.EditLink.textNext": "Sonraki Slayt", - "PE.Views.EditLink.textNumber": "Slayt Numarası", - "PE.Views.EditLink.textPrev": "Önceki slayt", - "PE.Views.EditLink.textRemove": "Linki Kaldır", - "PE.Views.EditLink.textTip": "Ekran İpucu", - "PE.Views.EditShape.textAlign": "Hizala", - "PE.Views.EditShape.textAlignBottom": "Alta Hizala", - "PE.Views.EditShape.textAlignCenter": "Ortaya Hizala", - "PE.Views.EditShape.textAlignLeft": "Sola Hizala", - "PE.Views.EditShape.textAlignMiddle": "Ortaya Hizala", - "PE.Views.EditShape.textAlignRight": "Sağa Hizala", - "PE.Views.EditShape.textAlignTop": "Üste Hizala", - "PE.Views.EditShape.textBack": "Geri", - "PE.Views.EditShape.textBackward": "Geri Taşı", - "PE.Views.EditShape.textBorder": "Sınır", - "PE.Views.EditShape.textColor": "Renk", - "PE.Views.EditShape.textEffects": "Efektler", - "PE.Views.EditShape.textFill": "Doldur", - "PE.Views.EditShape.textForward": "İleri Taşı", - "PE.Views.EditShape.textOpacity": "Opasite", - "PE.Views.EditShape.textRemoveShape": "Şekli Kaldır", - "PE.Views.EditShape.textReorder": "Yeniden Sırala", - "PE.Views.EditShape.textReplace": "Değiştir", - "PE.Views.EditShape.textSize": "Boyut", - "PE.Views.EditShape.textStyle": "Stil", - "PE.Views.EditShape.textToBackground": "Arka Plana gönder", - "PE.Views.EditShape.textToForeground": "Ön Plana Getir", - "PE.Views.EditShape.txtDistribHor": "Yatay olarak dağıt", - "PE.Views.EditShape.txtDistribVert": "Dikey olarak dağıt", - "PE.Views.EditSlide.textApplyAll": "Tüm Slaytlara Uygula", - "PE.Views.EditSlide.textBack": "Geri", - "PE.Views.EditSlide.textBlack": "Siyah Üzerinden", - "PE.Views.EditSlide.textBottom": "Alt", - "PE.Views.EditSlide.textBottomLeft": "Alt-Sol", - "PE.Views.EditSlide.textBottomRight": "Alt-Sağ", - "PE.Views.EditSlide.textClock": "Saat", - "PE.Views.EditSlide.textClockwise": "Saat Yönünde", - "PE.Views.EditSlide.textColor": "Renk", - "PE.Views.EditSlide.textCounterclockwise": "Saat Yönünün Tersine", - "PE.Views.EditSlide.textCover": "Kapak", - "PE.Views.EditSlide.textDelay": "Geciktir", - "PE.Views.EditSlide.textDuplicateSlide": "Kopya Slayt", - "PE.Views.EditSlide.textDuration": "Süre", - "PE.Views.EditSlide.textEffect": "Efekt", - "PE.Views.EditSlide.textFade": "Gölge", - "PE.Views.EditSlide.textFill": "Doldur", - "PE.Views.EditSlide.textHorizontalIn": "Yatay İçeri", - "PE.Views.EditSlide.textHorizontalOut": "Yatay Dışarı", - "PE.Views.EditSlide.textLayout": "Tasarım", - "PE.Views.EditSlide.textLeft": "Sol", - "PE.Views.EditSlide.textNone": "Hiçbiri", - "PE.Views.EditSlide.textOpacity": "Opasite", - "PE.Views.EditSlide.textPush": "Sıkıştır", - "PE.Views.EditSlide.textRemoveSlide": "Slaytı Sil", - "PE.Views.EditSlide.textRight": "Sağ", - "PE.Views.EditSlide.textSmoothly": "Kolayca", - "PE.Views.EditSlide.textSplit": "Ayır", - "PE.Views.EditSlide.textStartOnClick": "Tıkla Başla", - "PE.Views.EditSlide.textStyle": "Stil", - "PE.Views.EditSlide.textTheme": "Tema", - "PE.Views.EditSlide.textTop": "Üst", - "PE.Views.EditSlide.textTopLeft": "Üst-Sol", - "PE.Views.EditSlide.textTopRight": "Üst-Sağ", - "PE.Views.EditSlide.textTransition": "Geçiş", - "PE.Views.EditSlide.textType": "Tip", - "PE.Views.EditSlide.textUnCover": "Meydana Çıkar", - "PE.Views.EditSlide.textVerticalIn": "Dikey İçeri", - "PE.Views.EditSlide.textVerticalOut": "Dikey Dışarı", - "PE.Views.EditSlide.textWedge": "Wedge", - "PE.Views.EditSlide.textWipe": "Temizle", - "PE.Views.EditSlide.textZoom": "Büyütme", - "PE.Views.EditSlide.textZoomIn": "Yakınlaştır", - "PE.Views.EditSlide.textZoomOut": "Uzaklaştır", - "PE.Views.EditSlide.textZoomRotate": "Büyüt ve Döndür", - "PE.Views.EditTable.textAlign": "Hizala", - "PE.Views.EditTable.textAlignBottom": "Alta Hizala", - "PE.Views.EditTable.textAlignCenter": "Ortaya Hizala", - "PE.Views.EditTable.textAlignLeft": "Sola Hizala", - "PE.Views.EditTable.textAlignMiddle": "Ortaya Hizala", - "PE.Views.EditTable.textAlignRight": "Sağa Hizala", - "PE.Views.EditTable.textAlignTop": "Üste Hizala", - "PE.Views.EditTable.textBack": "Geri", - "PE.Views.EditTable.textBackward": "Geri Taşı", - "PE.Views.EditTable.textBandedColumn": "Çizgili Sütun", - "PE.Views.EditTable.textBandedRow": "Çizgili Satır", - "PE.Views.EditTable.textBorder": "Sınır", - "PE.Views.EditTable.textCellMargins": "Hücre Kenar Boşluğu", - "PE.Views.EditTable.textColor": "Renk", - "PE.Views.EditTable.textFill": "Doldur", - "PE.Views.EditTable.textFirstColumn": "İlk Sütun", - "PE.Views.EditTable.textForward": "İleri Taşı", - "PE.Views.EditTable.textHeaderRow": "Başlık Satır", - "PE.Views.EditTable.textLastColumn": "Son Sütun", - "PE.Views.EditTable.textOptions": "Seçenekler", - "PE.Views.EditTable.textRemoveTable": "Tabloyu Kaldır", - "PE.Views.EditTable.textReorder": "Yeniden Sırala", - "PE.Views.EditTable.textSize": "Boyut", - "PE.Views.EditTable.textStyle": "Stil", - "PE.Views.EditTable.textStyleOptions": "Stil Seçenekleri", - "PE.Views.EditTable.textTableOptions": "Tablo Seçenekleri", - "PE.Views.EditTable.textToBackground": "Arka Plana gönder", - "PE.Views.EditTable.textToForeground": "Ön Plana Getir", - "PE.Views.EditTable.textTotalRow": "Toplam Satır", - "PE.Views.EditTable.txtDistribHor": "Yatay olarak dağıt", - "PE.Views.EditTable.txtDistribVert": "Dikey olarak dağıt", - "PE.Views.EditText.textAdditional": "Ek", - "PE.Views.EditText.textAdditionalFormat": "Ek Format", - "PE.Views.EditText.textAfter": "Sonra", - "PE.Views.EditText.textAllCaps": "Tüm Başlıklar", - "PE.Views.EditText.textAutomatic": "Otomatik", - "PE.Views.EditText.textBack": "Geri", - "PE.Views.EditText.textBefore": "Önce", - "PE.Views.EditText.textBullets": "İmler", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textDblStrikethrough": "Üstü çift çizili", - "PE.Views.EditText.textDblSuperscript": "Üstsimge", - "PE.Views.EditText.textFontColor": "Yazı Tipi Rengi", - "PE.Views.EditText.textFontColors": "Yazı Tipi Rengi", - "PE.Views.EditText.textFonts": "Yazı Tipleri", - "PE.Views.EditText.textFromText": "Metinden mesafe", - "PE.Views.EditText.textLetterSpacing": "Harf Boşlukları", - "PE.Views.EditText.textLineSpacing": "Satır Aralığı", - "PE.Views.EditText.textNone": "Hiçbiri", - "PE.Views.EditText.textNumbers": "Sayılar", - "PE.Views.EditText.textSize": "Boyut", - "PE.Views.EditText.textSmallCaps": "Küçük büyük harfler", - "PE.Views.EditText.textStrikethrough": "Üstü çizili", - "PE.Views.EditText.textSubscript": "Altsimge", - "PE.Views.Search.textSearch": "Ara", - "PE.Views.Settings.mniSlideStandard": "Standart (4:3)", - "PE.Views.Settings.mniSlideWide": "Geniş Ekran (16:9)", - "PE.Views.Settings.textAbout": "Hakkında", - "PE.Views.Settings.textAddress": "adres", - "PE.Views.Settings.textAuthor": "Yazar", - "PE.Views.Settings.textBack": "Geri", - "PE.Views.Settings.textCreateDate": "Oluşturulma tarihi", - "PE.Views.Settings.textDone": "Bitti", - "PE.Views.Settings.textDownload": "İndir", - "PE.Views.Settings.textDownloadAs": "Farklı Kaydet...", - "PE.Views.Settings.textEditPresent": "Sunumu Düzenle", - "PE.Views.Settings.textEmail": "e-posta", - "PE.Views.Settings.textFind": "Bul", - "PE.Views.Settings.textHelp": "Yardım", - "PE.Views.Settings.textLoading": "Yükleniyor...", - "PE.Views.Settings.textPoweredBy": "Sunucu", - "PE.Views.Settings.textPresentInfo": "Sunum Bilgisi", - "PE.Views.Settings.textPresentSetup": "Sunum Kurulumu", - "PE.Views.Settings.textPresentTitle": "Sunum Başlığı", - "PE.Views.Settings.textSettings": "Ayarlar", - "PE.Views.Settings.textSlideSize": "Slayt Boyutu", - "PE.Views.Settings.textTel": "tel", - "PE.Views.Settings.textVersion": "Sürüm", - "PE.Views.Settings.unknownText": "Bilinmeyen", - "PE.Views.Toolbar.textBack": "Geri" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/uk.json b/apps/presentationeditor/mobile/locale/uk.json index 76ee70003..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/uk.json +++ b/apps/presentationeditor/mobile/locale/uk.json @@ -1,445 +1,3 @@ { - "Common.UI.ThemeColorPalette.textStandartColors": "Стандартні кольори", - "Common.UI.ThemeColorPalette.textThemeColors": "Кольорові теми", - "Common.Utils.Metric.txtCm": "см", - "Common.Utils.Metric.txtPt": "Пт", - "PE.Controllers.AddContainer.textImage": "Зображення", - "PE.Controllers.AddContainer.textLink": "Посилання", - "PE.Controllers.AddContainer.textShape": "Форма", - "PE.Controllers.AddContainer.textSlide": "слайд", - "PE.Controllers.AddContainer.textTable": "Таблиця", - "PE.Controllers.AddImage.textEmptyImgUrl": "Потрібно вказати URL-адресу зображення.", - "PE.Controllers.AddImage.txtNotUrl": "Це поле має бути URL-адресою у форматі \"http://www.example.com\"", - "PE.Controllers.AddLink.textDefault": "Вибраний текст", - "PE.Controllers.AddLink.textExternalLink": "Зовнішнє посилання", - "PE.Controllers.AddLink.textFirst": "Перший слайд", - "PE.Controllers.AddLink.textInternalLink": "Слайд у цій Презентації", - "PE.Controllers.AddLink.textLast": "Останній слайд", - "PE.Controllers.AddLink.textNext": "Наступний слайд", - "PE.Controllers.AddLink.textPrev": "Попередній слайд", - "PE.Controllers.AddLink.textSlide": "слайд", - "PE.Controllers.AddLink.txtNotUrl": "Це поле має бути URL-адресою у форматі \"http://www.example.com\"", - "PE.Controllers.AddTable.textCancel": "Скасувати", - "PE.Controllers.AddTable.textColumns": "Колонки", - "PE.Controllers.AddTable.textRows": "Рядки", - "PE.Controllers.AddTable.textTableSize": "Розмір таблиці", - "PE.Controllers.DocumentHolder.menuAddLink": "Додати посилання", - "PE.Controllers.DocumentHolder.menuCopy": "Копіювати", - "PE.Controllers.DocumentHolder.menuCut": "Вирізати", - "PE.Controllers.DocumentHolder.menuDelete": "Видалити", - "PE.Controllers.DocumentHolder.menuEdit": "Редагувати", - "PE.Controllers.DocumentHolder.menuMore": "Більше", - "PE.Controllers.DocumentHolder.menuOpenLink": "Відкрити посилання", - "PE.Controllers.DocumentHolder.menuPaste": "Вставити", - "PE.Controllers.DocumentHolder.sheetCancel": "Скасувати", - "PE.Controllers.EditContainer.textChart": "Діаграма", - "PE.Controllers.EditContainer.textHyperlink": "Гіперсилка", - "PE.Controllers.EditContainer.textImage": "Зображення", - "PE.Controllers.EditContainer.textSettings": "Налаштування", - "PE.Controllers.EditContainer.textShape": "Форма", - "PE.Controllers.EditContainer.textSlide": "слайд", - "PE.Controllers.EditContainer.textTable": "Таблиця", - "PE.Controllers.EditContainer.textText": "Текст", - "PE.Controllers.EditImage.textEmptyImgUrl": "Потрібно вказати URL-адресу зображення.", - "PE.Controllers.EditImage.txtNotUrl": "Це поле має бути URL-адресою у форматі \"http://www.example.com\"", - "PE.Controllers.EditLink.textDefault": "Вибраний текст", - "PE.Controllers.EditLink.textExternalLink": "Зовнішнє посилання", - "PE.Controllers.EditLink.textFirst": "Перший слайд", - "PE.Controllers.EditLink.textInternalLink": "Слайд у цій Презентації", - "PE.Controllers.EditLink.textLast": "Останній слайд", - "PE.Controllers.EditLink.textNext": "Наступний слайд", - "PE.Controllers.EditLink.textPrev": "Попередній слайд", - "PE.Controllers.EditLink.textSlide": "слайд", - "PE.Controllers.EditLink.txtNotUrl": "Це поле має бути URL-адресою у форматі \"http://www.example.com\"", - "PE.Controllers.EditSlide.textSec": "с", - "PE.Controllers.EditText.textAuto": "Авто", - "PE.Controllers.EditText.textFonts": "Шрифти", - "PE.Controllers.EditText.textPt": "Пт", - "PE.Controllers.Main.advDRMEnterPassword": "Введіть свій пароль:", - "PE.Controllers.Main.advDRMOptions": "Захищений файл", - "PE.Controllers.Main.advDRMPassword": "Пароль", - "PE.Controllers.Main.applyChangesTextText": "Завантаження дати...", - "PE.Controllers.Main.applyChangesTitleText": "Дата завантаження", - "PE.Controllers.Main.convertationTimeoutText": "Термін переходу перевищено.", - "PE.Controllers.Main.criticalErrorExtText": "Натисніть \"ОК\", щоб повернутися до списку документів.", - "PE.Controllers.Main.criticalErrorTitle": "Помилка", - "PE.Controllers.Main.downloadErrorText": "Завантаження не вдалося", - "PE.Controllers.Main.downloadTextText": "Завантаження документу...", - "PE.Controllers.Main.downloadTitleText": "Завантаження документу", - "PE.Controllers.Main.errorBadImageUrl": "URL-адреса зображення невірна", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "З'єднання з сервером втрачено. Ви більше не можете редагувати.", - "PE.Controllers.Main.errorConnectToServer": "Не вдалося зберегти документ. Будь ласка, перевірте налаштування з'єднання або зверніться до свого адміністратора.
            Після натискання кнопки «ОК» вам буде запропоновано завантажити документ.", - "PE.Controllers.Main.errorDatabaseConnection": "Зовнішня помилка.
            Помилка підключення до бази даних. Будь ласка, зв'яжіться зі службою підтримки.", - "PE.Controllers.Main.errorDataRange": "Неправильний діапазон даних.", - "PE.Controllers.Main.errorDefaultMessage": "Код помилки: %1 ", - "PE.Controllers.Main.errorFilePassProtect": "Документ захищено паролем", - "PE.Controllers.Main.errorKeyEncrypt": "Невідомий дескриптор ключа", - "PE.Controllers.Main.errorKeyExpire": "Ключовий дескриптор закінчився", - "PE.Controllers.Main.errorProcessSaveResult": "Помилка збереження", - "PE.Controllers.Main.errorServerVersion": "Версія редактора була оновлена. Сторінка буде перезавантажена, щоб застосувати зміни.", - "PE.Controllers.Main.errorStockChart": "Невірний порядок рядків. Щоб побудувати фондову діаграму, помістіть дані на аркуші в наступному порядку: ціна відкриття, максимальна ціна, мінімальна ціна, ціна закриття.", - "PE.Controllers.Main.errorUpdateVersion": "Версія файлу була змінена. Сторінка буде перезавантажена.", - "PE.Controllers.Main.errorUserDrop": "На даний момент файл не доступний.", - "PE.Controllers.Main.errorUsersExceed": "Кількість користувачів перевищено", - "PE.Controllers.Main.errorViewerDisconnect": "З'єднання втрачено. Ви все ще можете переглянути документ
            , але не зможете завантажувати його до відновлення.", - "PE.Controllers.Main.leavePageText": "У цьому документі є незбережені зміни. Натисніть \"Залишатися на цій сторінці\", щоб дочекатись автоматичного збереження документа. Натисніть \"Покинути цю сторінку\", щоб відхилити всі незбережені зміни.", - "PE.Controllers.Main.loadFontsTextText": "Завантаження дати...", - "PE.Controllers.Main.loadFontsTitleText": "Дата завантаження", - "PE.Controllers.Main.loadFontTextText": "Завантаження дати...", - "PE.Controllers.Main.loadFontTitleText": "Дата завантаження", - "PE.Controllers.Main.loadImagesTextText": "Завантаження зображень...", - "PE.Controllers.Main.loadImagesTitleText": "Завантаження зображень", - "PE.Controllers.Main.loadImageTextText": "Завантаження зображення...", - "PE.Controllers.Main.loadImageTitleText": "Завантаження зображення", - "PE.Controllers.Main.loadingDocumentTextText": "Завантаження презентації...", - "PE.Controllers.Main.loadingDocumentTitleText": "Завантаження презентації", - "PE.Controllers.Main.loadThemeTextText": "Завантаження теми...", - "PE.Controllers.Main.loadThemeTitleText": "Завантаження теми", - "PE.Controllers.Main.notcriticalErrorTitle": "Застереження", - "PE.Controllers.Main.openErrorText": "Під час відкриття файлу сталася помилка", - "PE.Controllers.Main.openTextText": "Відкриття документа...", - "PE.Controllers.Main.openTitleText": "Відкриття документа", - "PE.Controllers.Main.printTextText": "Роздрукування документа...", - "PE.Controllers.Main.printTitleText": "Роздрукування документа", - "PE.Controllers.Main.reloadButtonText": "Перезавантажити сторінку", - "PE.Controllers.Main.requestEditFailedMessageText": "Хтось редагує цей документ прямо зараз. Будь-ласка спробуйте пізніше.", - "PE.Controllers.Main.requestEditFailedTitleText": "Доступ заборонено", - "PE.Controllers.Main.saveErrorText": "Під час збереження файлу сталася помилка", - "PE.Controllers.Main.savePreparingText": "Підготовка до зберігання", - "PE.Controllers.Main.savePreparingTitle": "Підготовка до зберігання. Будь ласка, зачекайте...", - "PE.Controllers.Main.saveTextText": "Збереження документа...", - "PE.Controllers.Main.saveTitleText": "Збереження документа", - "PE.Controllers.Main.splitDividerErrorText": "Кількість рядків повинна бути дільником% 1", - "PE.Controllers.Main.splitMaxColsErrorText": "Кількість стовпців повинна бути меншою за% 1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Кількість рядків повинна бути менше% 1", - "PE.Controllers.Main.textAnonymous": "Aнонім", - "PE.Controllers.Main.textBack": "Назад", - "PE.Controllers.Main.textBuyNow": "Відвідати сайт", - "PE.Controllers.Main.textCancel": "Скасувати", - "PE.Controllers.Main.textClose": "Закрити", - "PE.Controllers.Main.textCloseTip": "Натисніть, щоб закрити підказку", - "PE.Controllers.Main.textContactUs": "Відділ продажів", - "PE.Controllers.Main.textDone": "Готово", - "PE.Controllers.Main.textLoadingDocument": "Завантаження презентації", - "PE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE відкрита версія", - "PE.Controllers.Main.textOK": "OК", - "PE.Controllers.Main.textPassword": "Пароль", - "PE.Controllers.Main.textPreloader": "Завантаження...", - "PE.Controllers.Main.textShape": "Форма", - "PE.Controllers.Main.textTryUndoRedo": "Функції Undo / Redo відключені для режиму швидкого редагування.", - "PE.Controllers.Main.textUsername": "Ім'я користувача", - "PE.Controllers.Main.titleLicenseExp": "Термін дії ліцензії закінчився", - "PE.Controllers.Main.titleServerVersion": "Редактор оновлено", - "PE.Controllers.Main.txtArt": "Ваш текст тут", - "PE.Controllers.Main.txtBasicShapes": "Основні форми", - "PE.Controllers.Main.txtButtons": "Кнопки", - "PE.Controllers.Main.txtCallouts": "Виноски", - "PE.Controllers.Main.txtCharts": "Діаграми", - "PE.Controllers.Main.txtClipArt": "Картинки", - "PE.Controllers.Main.txtDateTime": "Дата і час", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Назва діграми", - "PE.Controllers.Main.txtEditingMode": "Встановити режим редагування ...", - "PE.Controllers.Main.txtFiguredArrows": "Фігурні стрілки", - "PE.Controllers.Main.txtFooter": "Нижній колонтитул", - "PE.Controllers.Main.txtHeader": "Заголовок", - "PE.Controllers.Main.txtImage": "Зображення", - "PE.Controllers.Main.txtLines": "Рядки", - "PE.Controllers.Main.txtMath": "Математика", - "PE.Controllers.Main.txtMedia": "Медіа", - "PE.Controllers.Main.txtNeedSynchronize": "У вас є оновлення", - "PE.Controllers.Main.txtPicture": "Картинка", - "PE.Controllers.Main.txtRectangles": "Прямокутники", - "PE.Controllers.Main.txtSeries": "Серії", - "PE.Controllers.Main.txtSldLtTBlank": "Бланк", - "PE.Controllers.Main.txtSldLtTChart": "Діаграма", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Графік та текст", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Картинки і текст", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Картинки і вертикальний текст", - "PE.Controllers.Main.txtSldLtTCust": "Користувальницький", - "PE.Controllers.Main.txtSldLtTDgm": "Діаграма", - "PE.Controllers.Main.txtSldLtTFourObj": "4 об'єкти", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Медіа і текст", - "PE.Controllers.Main.txtSldLtTObj": "Назва і Об'єкт", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Об'єкт і два об'єкти", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Об'єкт і текст", - "PE.Controllers.Main.txtSldLtTObjOnly": "Об'єкт", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Об'єкт над текстом", - "PE.Controllers.Main.txtSldLtTObjTx": "Назва, Об'єкт і підпис", - "PE.Controllers.Main.txtSldLtTPicTx": "Зображення та підпис", - "PE.Controllers.Main.txtSldLtTSecHead": "Заголовок розділу", - "PE.Controllers.Main.txtSldLtTTbl": "Таблиця", - "PE.Controllers.Main.txtSldLtTTitle": "Назва", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Тільки назва", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Дві колонки тексту", - "PE.Controllers.Main.txtSldLtTTwoObj": "Два Об'єкти", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Два Об'єкти і Об'єкт", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Два Об'єкти і текст", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Два Об'єкти над текстом", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Два тексти і два Об'єкти", - "PE.Controllers.Main.txtSldLtTTx": "Текст", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Текст та діаграма", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Текст та відеокліп", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Текст та медіа", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Текст і об'єкт", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Текст і два обєкти", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Текст над об'єктом", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Вертикальний заголовок і текст", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Вертикальний заголовок та текст над діаграмою", - "PE.Controllers.Main.txtSldLtTVertTx": "Вертикальний текст", - "PE.Controllers.Main.txtSlideNumber": "Номер слайду", - "PE.Controllers.Main.txtSlideSubtitle": "Підзаголовки слайду", - "PE.Controllers.Main.txtSlideText": "Текст слайду", - "PE.Controllers.Main.txtSlideTitle": "назва слайду", - "PE.Controllers.Main.txtStarsRibbons": "Зірки та стрічки", - "PE.Controllers.Main.txtXAxis": "X Ось", - "PE.Controllers.Main.txtYAxis": "Y ось", - "PE.Controllers.Main.unknownErrorText": "Невідома помилка.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Ваш браузер не підтримується", - "PE.Controllers.Main.uploadImageExtMessage": "Невідомий формат зображення.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Не завантажено жодного зображення.", - "PE.Controllers.Main.uploadImageSizeMessage": "Максимальний розмір зображення перевищено.", - "PE.Controllers.Main.uploadImageTextText": "Завантаження зображення...", - "PE.Controllers.Main.uploadImageTitleText": "Завантаження зображення", - "PE.Controllers.Main.warnLicenseExp": "Термін дії вашої ліцензії минув.
            Будь ласка, оновіть свою ліцензію та оновіть сторінку.", - "PE.Controllers.Main.warnNoLicense": "Ви використовуєте відкриту версію %1. Ця версія має обмеження для одночасного підключення до сервера документів (20 підключень за один раз).
            Якщо вам потрібно більше, подумайте про придбання комерційної ліцензії.", - "PE.Controllers.Main.warnProcessRightsChange": "Вам відмовлено у наданні права редагувати файл.", - "PE.Controllers.Search.textNoTextFound": "Текст не знайдено", - "PE.Controllers.Settings.notcriticalErrorTitle": "Застереження", - "PE.Controllers.Settings.txtLoading": "Завантаження...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "У цьому документі є незбережені зміни. Натисніть \"Залишатися на цій сторінці\", щоб дочекатись автоматичного збереження документа. Натисніть \"Покинути цю сторінку\", щоб відхилити всі незбережені зміни.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Ви залишили заявку", - "PE.Controllers.Toolbar.leaveButtonText": "Залишити цю сторінку", - "PE.Controllers.Toolbar.stayButtonText": "Залишатись на цій сторінці", - "PE.Views.AddImage.textAddress": "Адреса", - "PE.Views.AddImage.textBack": "Назад", - "PE.Views.AddImage.textFromLibrary": "Зображення з бібліотеки", - "PE.Views.AddImage.textFromURL": "Зображення з URL", - "PE.Views.AddImage.textImageURL": "URL зображення", - "PE.Views.AddImage.textInsertImage": "Вставити зображення", - "PE.Views.AddImage.textLinkSettings": "Налаштування посилання", - "PE.Views.AddLink.textBack": "Назад", - "PE.Views.AddLink.textDisplay": "Дісплей", - "PE.Views.AddLink.textExternalLink": "Зовнішнє посилання", - "PE.Views.AddLink.textFirst": "Перший слайд", - "PE.Views.AddLink.textInsert": "Вставити", - "PE.Views.AddLink.textInternalLink": "Слайд у цій Презентації", - "PE.Views.AddLink.textLast": "Останній слайд", - "PE.Views.AddLink.textLink": "Посилання", - "PE.Views.AddLink.textLinkSlide": "З'єднатися з", - "PE.Views.AddLink.textLinkType": "Тип посилання", - "PE.Views.AddLink.textNext": "Наступний слайд", - "PE.Views.AddLink.textNumber": "Номер слайду", - "PE.Views.AddLink.textPrev": "Попередній слайд", - "PE.Views.AddLink.textTip": "Підказка для екрана", - "PE.Views.EditChart.textAlign": "Вирівняти", - "PE.Views.EditChart.textAlignBottom": "Вирівняти знизу", - "PE.Views.EditChart.textAlignCenter": "Вирівняти центр", - "PE.Views.EditChart.textAlignLeft": "Вирівняти зліва", - "PE.Views.EditChart.textAlignMiddle": "Вирівняти посередині", - "PE.Views.EditChart.textAlignRight": "Вирівняти справа", - "PE.Views.EditChart.textAlignTop": "Вирівняти догори", - "PE.Views.EditChart.textBack": "Назад", - "PE.Views.EditChart.textBackward": "Перемістити назад", - "PE.Views.EditChart.textBorder": "Межа", - "PE.Views.EditChart.textColor": "Колір", - "PE.Views.EditChart.textFill": "Заповнити", - "PE.Views.EditChart.textForward": "Перемістити вперед", - "PE.Views.EditChart.textRemoveChart": "Видалити діаграму", - "PE.Views.EditChart.textReorder": "Змінити порядок", - "PE.Views.EditChart.textSize": "Розмір", - "PE.Views.EditChart.textStyle": "Стиль", - "PE.Views.EditChart.textToBackground": "Надіслати до фону", - "PE.Views.EditChart.textToForeground": "Перенести на передній план", - "PE.Views.EditChart.textType": "Тип", - "PE.Views.EditChart.txtDistribHor": "Розподілити горизонтально", - "PE.Views.EditChart.txtDistribVert": "Розподілити вертикально", - "PE.Views.EditImage.textAddress": "Адреса", - "PE.Views.EditImage.textAlign": "Вирівняти", - "PE.Views.EditImage.textAlignBottom": "Вирівняти знизу", - "PE.Views.EditImage.textAlignCenter": "Вирівняти центр", - "PE.Views.EditImage.textAlignLeft": "Вирівняти зліва", - "PE.Views.EditImage.textAlignMiddle": "Вирівняти посередині", - "PE.Views.EditImage.textAlignRight": "Вирівняти справа", - "PE.Views.EditImage.textAlignTop": "Вирівняти догори", - "PE.Views.EditImage.textBack": "Назад", - "PE.Views.EditImage.textBackward": "Перемістити назад", - "PE.Views.EditImage.textDefault": "За замовчуванням", - "PE.Views.EditImage.textForward": "Перемістити вперед", - "PE.Views.EditImage.textFromLibrary": "Зображення з бібліотеки", - "PE.Views.EditImage.textFromURL": "Зображення з URL", - "PE.Views.EditImage.textImageURL": "URL зображення", - "PE.Views.EditImage.textLinkSettings": "Налаштування посилання", - "PE.Views.EditImage.textRemove": "Видалити зображення", - "PE.Views.EditImage.textReorder": "Змінити порядок", - "PE.Views.EditImage.textReplace": "Замінити", - "PE.Views.EditImage.textReplaceImg": "Замінити зображення", - "PE.Views.EditImage.textToBackground": "Надіслати до фону", - "PE.Views.EditImage.textToForeground": "Перенести на передній план", - "PE.Views.EditImage.txtDistribHor": "Розподілити горизонтально", - "PE.Views.EditImage.txtDistribVert": "Розподілити вертикально", - "PE.Views.EditLink.textBack": "Назад", - "PE.Views.EditLink.textDisplay": "Дісплей", - "PE.Views.EditLink.textEdit": "Редагувати посилання", - "PE.Views.EditLink.textExternalLink": "Зовнішнє посилання", - "PE.Views.EditLink.textFirst": "Перший слайд", - "PE.Views.EditLink.textInternalLink": "Слайд у цій Презентації", - "PE.Views.EditLink.textLast": "Останній слайд", - "PE.Views.EditLink.textLink": "Посилання", - "PE.Views.EditLink.textLinkSlide": "З'єднатися з", - "PE.Views.EditLink.textLinkType": "Тип посилання", - "PE.Views.EditLink.textNext": "Наступний слайд", - "PE.Views.EditLink.textNumber": "Номер слайду", - "PE.Views.EditLink.textPrev": "Попередній слайд", - "PE.Views.EditLink.textRemove": "Видалити посилання", - "PE.Views.EditLink.textTip": "Підказка для екрана", - "PE.Views.EditShape.textAlign": "Вирівняти", - "PE.Views.EditShape.textAlignBottom": "Вирівняти знизу", - "PE.Views.EditShape.textAlignCenter": "Вирівняти центр", - "PE.Views.EditShape.textAlignLeft": "Вирівняти зліва", - "PE.Views.EditShape.textAlignMiddle": "Вирівняти посередині", - "PE.Views.EditShape.textAlignRight": "Вирівняти справа", - "PE.Views.EditShape.textAlignTop": "Вирівняти догори", - "PE.Views.EditShape.textBack": "Назад", - "PE.Views.EditShape.textBackward": "Перемістити назад", - "PE.Views.EditShape.textBorder": "Межа", - "PE.Views.EditShape.textColor": "Колір", - "PE.Views.EditShape.textEffects": "Ефекти", - "PE.Views.EditShape.textFill": "Заповнити", - "PE.Views.EditShape.textForward": "Перемістити вперед", - "PE.Views.EditShape.textOpacity": "Непрозорість", - "PE.Views.EditShape.textRemoveShape": "Видалити форму", - "PE.Views.EditShape.textReorder": "Змінити порядок", - "PE.Views.EditShape.textReplace": "Замінити", - "PE.Views.EditShape.textSize": "Розмір", - "PE.Views.EditShape.textStyle": "Стиль", - "PE.Views.EditShape.textToBackground": "Надіслати до фону", - "PE.Views.EditShape.textToForeground": "Перенести на передній план", - "PE.Views.EditShape.txtDistribHor": "Розподілити горизонтально", - "PE.Views.EditShape.txtDistribVert": "Розподілити вертикально", - "PE.Views.EditSlide.textApplyAll": "Додати до усіх слайдів", - "PE.Views.EditSlide.textBack": "Назад", - "PE.Views.EditSlide.textBlack": "Через Чорний", - "PE.Views.EditSlide.textBottom": "Внизу", - "PE.Views.EditSlide.textBottomLeft": "Внизу ліворуч", - "PE.Views.EditSlide.textBottomRight": "Внизу праворуч", - "PE.Views.EditSlide.textClock": "Годинник", - "PE.Views.EditSlide.textClockwise": "За годинниковою стрілкою", - "PE.Views.EditSlide.textColor": "Колір", - "PE.Views.EditSlide.textCounterclockwise": "Проти годинникової стрілки", - "PE.Views.EditSlide.textCover": "Покрити", - "PE.Views.EditSlide.textDelay": "Затримка", - "PE.Views.EditSlide.textDuplicateSlide": "Продублювати слайд", - "PE.Views.EditSlide.textDuration": "Тривалість", - "PE.Views.EditSlide.textEffect": "Ефект", - "PE.Views.EditSlide.textFade": "Зникати", - "PE.Views.EditSlide.textFill": "Заповнити", - "PE.Views.EditSlide.textHorizontalIn": "Горизонтально в", - "PE.Views.EditSlide.textHorizontalOut": "Горизонтальний вихід", - "PE.Views.EditSlide.textLayout": "Макет", - "PE.Views.EditSlide.textLeft": "Лівий", - "PE.Views.EditSlide.textNone": "Жоден", - "PE.Views.EditSlide.textOpacity": "Непрозорість", - "PE.Views.EditSlide.textPush": "Натиснути", - "PE.Views.EditSlide.textRemoveSlide": "Видалити слайд", - "PE.Views.EditSlide.textRight": "Право", - "PE.Views.EditSlide.textSmoothly": "Гладко", - "PE.Views.EditSlide.textSplit": "Розкол", - "PE.Views.EditSlide.textStartOnClick": "Натисніть на старт", - "PE.Views.EditSlide.textStyle": "Стиль", - "PE.Views.EditSlide.textTheme": "Тема", - "PE.Views.EditSlide.textTop": "Верх", - "PE.Views.EditSlide.textTopLeft": "Вгорі зліва", - "PE.Views.EditSlide.textTopRight": "Вгорі справа", - "PE.Views.EditSlide.textTransition": "Перехід", - "PE.Views.EditSlide.textType": "Тип", - "PE.Views.EditSlide.textUnCover": "Розкрий", - "PE.Views.EditSlide.textVerticalIn": "Вертикальний вхід", - "PE.Views.EditSlide.textVerticalOut": "Вертикальний вихід", - "PE.Views.EditSlide.textWedge": "Трикутна призма", - "PE.Views.EditSlide.textWipe": "Витирати", - "PE.Views.EditSlide.textZoom": "Збільшити", - "PE.Views.EditSlide.textZoomIn": "Збільшити зображення", - "PE.Views.EditSlide.textZoomOut": "Зменшити зображення", - "PE.Views.EditSlide.textZoomRotate": "Збільшити і обертати", - "PE.Views.EditTable.textAlign": "Вирівняти", - "PE.Views.EditTable.textAlignBottom": "Вирівняти знизу", - "PE.Views.EditTable.textAlignCenter": "Вирівняти центр", - "PE.Views.EditTable.textAlignLeft": "Вирівняти зліва", - "PE.Views.EditTable.textAlignMiddle": "Вирівняти посередині", - "PE.Views.EditTable.textAlignRight": "Вирівняти справа", - "PE.Views.EditTable.textAlignTop": "Вирівняти догори", - "PE.Views.EditTable.textBack": "Назад", - "PE.Views.EditTable.textBackward": "Перемістити назад", - "PE.Views.EditTable.textBandedColumn": "Колонка з бланками", - "PE.Views.EditTable.textBandedRow": "Рядок з бланками", - "PE.Views.EditTable.textBorder": "Межа", - "PE.Views.EditTable.textCellMargins": "Поля клітини", - "PE.Views.EditTable.textColor": "Колір", - "PE.Views.EditTable.textFill": "Заповнити", - "PE.Views.EditTable.textFirstColumn": "Перша колонка", - "PE.Views.EditTable.textForward": "Перемістити вперед", - "PE.Views.EditTable.textHeaderRow": "Рядок заголовка", - "PE.Views.EditTable.textLastColumn": "Остання колонка", - "PE.Views.EditTable.textOptions": "Опції", - "PE.Views.EditTable.textRemoveTable": "Видалити таблицю", - "PE.Views.EditTable.textReorder": "Змінити порядок", - "PE.Views.EditTable.textSize": "Розмір", - "PE.Views.EditTable.textStyle": "Стиль", - "PE.Views.EditTable.textStyleOptions": "Опції стилю", - "PE.Views.EditTable.textTableOptions": "Опції таблиці", - "PE.Views.EditTable.textToBackground": "Надіслати до фону", - "PE.Views.EditTable.textToForeground": "Перенести на передній план", - "PE.Views.EditTable.textTotalRow": "Загальні рядки", - "PE.Views.EditTable.txtDistribHor": "Розподілити горизонтально", - "PE.Views.EditTable.txtDistribVert": "Розподілити вертикально", - "PE.Views.EditText.textAdditional": "Додатковий", - "PE.Views.EditText.textAdditionalFormat": "Додаткове форматування", - "PE.Views.EditText.textAfter": "після", - "PE.Views.EditText.textAllCaps": "Усі великі", - "PE.Views.EditText.textAutomatic": "Автоматично", - "PE.Views.EditText.textBack": "Назад", - "PE.Views.EditText.textBefore": "Перед", - "PE.Views.EditText.textBullets": "Кулі", - "PE.Views.EditText.textDblStrikethrough": "Подвійне перекреслення", - "PE.Views.EditText.textDblSuperscript": "Надрядковий", - "PE.Views.EditText.textFontColor": "Колір шрифту", - "PE.Views.EditText.textFontColors": "Кольори шрифту", - "PE.Views.EditText.textFonts": "Шрифти", - "PE.Views.EditText.textFromText": "Відстань від тексту", - "PE.Views.EditText.textLetterSpacing": "Міжрядковий інтервал", - "PE.Views.EditText.textLineSpacing": "Лінія інтервалу", - "PE.Views.EditText.textNone": "Жоден", - "PE.Views.EditText.textNumbers": "Номери", - "PE.Views.EditText.textSize": "Розмір", - "PE.Views.EditText.textSmallCaps": "Зменшені великі", - "PE.Views.EditText.textStrikethrough": "Перекреслення", - "PE.Views.EditText.textSubscript": "Підрядковий", - "PE.Views.Search.textSearch": "Пошук", - "PE.Views.Settings.mniSlideStandard": "Стандартний (4: 3)", - "PE.Views.Settings.mniSlideWide": "Широкоекранний (16: 9)", - "PE.Views.Settings.textAbout": "Про", - "PE.Views.Settings.textAddress": "Адреса", - "PE.Views.Settings.textAuthor": "Автор", - "PE.Views.Settings.textBack": "Назад", - "PE.Views.Settings.textCollaboration": "Співпраця", - "PE.Views.Settings.textCreateDate": "Дата створення", - "PE.Views.Settings.textDone": "Готово", - "PE.Views.Settings.textDownload": "Завантажити", - "PE.Views.Settings.textDownloadAs": "Завантажити як...", - "PE.Views.Settings.textEditPresent": "Редагувати презентацію", - "PE.Views.Settings.textEmail": "Електронна пошта", - "PE.Views.Settings.textFind": "Знайти", - "PE.Views.Settings.textHelp": "Допомога", - "PE.Views.Settings.textLoading": "Завантаження...", - "PE.Views.Settings.textPoweredBy": "Під керуванням", - "PE.Views.Settings.textPresentInfo": "Інфомація про презентацію", - "PE.Views.Settings.textPresentSetup": "Налаштування презентації", - "PE.Views.Settings.textPresentTitle": "Назва презентації", - "PE.Views.Settings.textSettings": "Налаштування", - "PE.Views.Settings.textSlideSize": "Розмір слайду", - "PE.Views.Settings.textTel": "Телефон", - "PE.Views.Settings.textVersion": "Версія", - "PE.Views.Settings.unknownText": "Невідомий", - "PE.Views.Toolbar.textBack": "Назад" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/vi.json b/apps/presentationeditor/mobile/locale/vi.json index 8a71298e3..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/vi.json +++ b/apps/presentationeditor/mobile/locale/vi.json @@ -1,444 +1,3 @@ { - "Common.UI.ThemeColorPalette.textStandartColors": "Màu chuẩn", - "Common.UI.ThemeColorPalette.textThemeColors": "Màu theme", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "PE.Controllers.AddContainer.textImage": "Hình ảnh", - "PE.Controllers.AddContainer.textLink": "Liên kết", - "PE.Controllers.AddContainer.textShape": "Hình dạng", - "PE.Controllers.AddContainer.textSlide": "Kích thước", - "PE.Controllers.AddContainer.textTable": "Bảng", - "PE.Controllers.AddImage.textEmptyImgUrl": "Bạn cần chỉ định URL hình ảnh.", - "PE.Controllers.AddImage.txtNotUrl": "Trường này phải là URL có định dạng 'http://www.example.com'", - "PE.Controllers.AddLink.textDefault": "Văn bản đã chọn", - "PE.Controllers.AddLink.textExternalLink": "Liên kết ngoài", - "PE.Controllers.AddLink.textFirst": "Slide đầu tiên", - "PE.Controllers.AddLink.textInternalLink": "Slide trong Bản trình chiếu này", - "PE.Controllers.AddLink.textLast": "Slide cuối cùng", - "PE.Controllers.AddLink.textNext": "Slide kế tiếp", - "PE.Controllers.AddLink.textPrev": "Slide trước", - "PE.Controllers.AddLink.textSlide": "Kích thước", - "PE.Controllers.AddLink.txtNotUrl": "Trường này phải là URL có định dạng 'http://www.example.com'", - "PE.Controllers.AddTable.textCancel": "Hủy", - "PE.Controllers.AddTable.textColumns": "Cột", - "PE.Controllers.AddTable.textRows": "Hàng", - "PE.Controllers.AddTable.textTableSize": "Kích thước bảng", - "PE.Controllers.DocumentHolder.menuAddLink": "Thêm liên kết", - "PE.Controllers.DocumentHolder.menuCopy": "Sao chép", - "PE.Controllers.DocumentHolder.menuCut": "Cắt", - "PE.Controllers.DocumentHolder.menuDelete": "Xóa", - "PE.Controllers.DocumentHolder.menuEdit": "Chỉnh sửa", - "PE.Controllers.DocumentHolder.menuMore": "Thêm", - "PE.Controllers.DocumentHolder.menuOpenLink": "Mở liên kết", - "PE.Controllers.DocumentHolder.menuPaste": "Dán", - "PE.Controllers.DocumentHolder.sheetCancel": "Hủy", - "PE.Controllers.EditContainer.textChart": "Biểu đồ", - "PE.Controllers.EditContainer.textHyperlink": "Siêu liên kết", - "PE.Controllers.EditContainer.textImage": "Hình ảnh", - "PE.Controllers.EditContainer.textSettings": "Cài đặt", - "PE.Controllers.EditContainer.textShape": "Hình dạng", - "PE.Controllers.EditContainer.textSlide": "Kích thước", - "PE.Controllers.EditContainer.textTable": "Bảng", - "PE.Controllers.EditContainer.textText": "Văn bản", - "PE.Controllers.EditImage.textEmptyImgUrl": "Bạn cần chỉ định URL hình ảnh.", - "PE.Controllers.EditImage.txtNotUrl": "Trường này phải là URL có định dạng 'http://www.example.com'", - "PE.Controllers.EditLink.textDefault": "Văn bản đã chọn", - "PE.Controllers.EditLink.textExternalLink": "Liên kết ngoài", - "PE.Controllers.EditLink.textFirst": "Slide đầu tiên", - "PE.Controllers.EditLink.textInternalLink": "Slide trong Bản trình chiếu này", - "PE.Controllers.EditLink.textLast": "Slide cuối cùng", - "PE.Controllers.EditLink.textNext": "Slide kế tiếp", - "PE.Controllers.EditLink.textPrev": "Slide trước", - "PE.Controllers.EditLink.textSlide": "Kích thước", - "PE.Controllers.EditLink.txtNotUrl": "Trường này phải là URL có định dạng 'http://www.example.com'", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "Tự động", - "PE.Controllers.EditText.textFonts": "Phông chữ", - "PE.Controllers.EditText.textPt": "pt", - "PE.Controllers.Main.advDRMEnterPassword": "Nhập mật khẩu của bạn:", - "PE.Controllers.Main.advDRMOptions": "File được bảo vệ", - "PE.Controllers.Main.advDRMPassword": "Mật khẩu", - "PE.Controllers.Main.applyChangesTextText": "Đang tải dữ liệu...", - "PE.Controllers.Main.applyChangesTitleText": "Đang tải Dữ liệu", - "PE.Controllers.Main.convertationTimeoutText": "Đã quá thời gian chờ chuyển đổi.", - "PE.Controllers.Main.criticalErrorExtText": "Ấn 'OK' để trở lại danh sách tài liệu.", - "PE.Controllers.Main.criticalErrorTitle": "Lỗi", - "PE.Controllers.Main.downloadErrorText": "Tải về không thành công.", - "PE.Controllers.Main.downloadTextText": "Đang tải tài liệu...", - "PE.Controllers.Main.downloadTitleText": "Đang tải tài liệu...", - "PE.Controllers.Main.errorBadImageUrl": "URL hình ảnh không chính xác", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "Kết nối máy chủ bị mất. Bạn không thể chỉnh sửa nữa.", - "PE.Controllers.Main.errorConnectToServer": "Không thể lưu tài liệu. Vui lòng kiểm tra cài đặt kết nối hoặc liên hệ với quản trị viên của bạn.
            Khi bạn nhấp vào nút 'OK', bạn sẽ được nhắc tải xuống tài liệu.", - "PE.Controllers.Main.errorDatabaseConnection": "Lỗi bên ngoài.
            Lỗi kết nối cơ sở dữ liệu. Vui lòng liên hệ bộ phận hỗ trợ.", - "PE.Controllers.Main.errorDataRange": "Phạm vi dữ liệu không chính xác.", - "PE.Controllers.Main.errorDefaultMessage": "Mã lỗi: %1", - "PE.Controllers.Main.errorFilePassProtect": "Tài liệu được bảo vệ bằng mật khẩu.", - "PE.Controllers.Main.errorKeyEncrypt": "Key descriptor không xác định", - "PE.Controllers.Main.errorKeyExpire": "Key của descriptor đã hết hạn", - "PE.Controllers.Main.errorProcessSaveResult": "Lưu không thành công.", - "PE.Controllers.Main.errorServerVersion": "Phiên bản trình chỉnh sửa này đã được cập nhật. Trang sẽ được tải lại để áp dụng các thay đổi.", - "PE.Controllers.Main.errorStockChart": "Thứ tự hàng không chính xác. Để xây dựng một biểu đồ chứng khoán đặt dữ liệu trên giấy theo thứ tự sau:
            giá mở phiên, giá cao nhất, giá thấp nhất, giá đóng phiên.", - "PE.Controllers.Main.errorUpdateVersion": "Phiên bản file này đã được thay đổi. Trang này sẽ được tải lại.", - "PE.Controllers.Main.errorUserDrop": "Không thể truy cập file ngay lúc này.", - "PE.Controllers.Main.errorUsersExceed": "Đã vượt quá số lượng người dùng", - "PE.Controllers.Main.errorViewerDisconnect": "Mất kết nối. Bạn vẫn có thể xem tài liệu,
            nhưng sẽ không thể tải về cho đến khi kết nối được khôi phục.", - "PE.Controllers.Main.leavePageText": "Bạn có những thay đổi chưa lưu trong tài liệu này. Nhấp vào 'Ở lại Trang này' để chờ tự động lưu tài liệu. Nhấp vào 'Rời Trang này' để bỏ tất cả các thay đổi chưa lưu.", - "PE.Controllers.Main.loadFontsTextText": "Đang tải dữ liệu...", - "PE.Controllers.Main.loadFontsTitleText": "Đang tải Dữ liệu", - "PE.Controllers.Main.loadFontTextText": "Đang tải dữ liệu...", - "PE.Controllers.Main.loadFontTitleText": "Đang tải Dữ liệu", - "PE.Controllers.Main.loadImagesTextText": "Đang tải hình ảnh...", - "PE.Controllers.Main.loadImagesTitleText": "Đang tải hình ảnh", - "PE.Controllers.Main.loadImageTextText": "Đang tải hình ảnh...", - "PE.Controllers.Main.loadImageTitleText": "Đang tải hình ảnh", - "PE.Controllers.Main.loadingDocumentTextText": "Đang tải trình chiếu...", - "PE.Controllers.Main.loadingDocumentTitleText": "Đang tải trình chiếu", - "PE.Controllers.Main.loadThemeTextText": "Đang tải theme...", - "PE.Controllers.Main.loadThemeTitleText": "Đang tải Theme", - "PE.Controllers.Main.notcriticalErrorTitle": "Cảnh báo", - "PE.Controllers.Main.openErrorText": "Xảy ra lỗi khi mở file", - "PE.Controllers.Main.openTextText": "Đang mở tài liệu...", - "PE.Controllers.Main.openTitleText": "Đang mở tài liệu...", - "PE.Controllers.Main.printTextText": "Đang in Tài liệu...", - "PE.Controllers.Main.printTitleText": "Đang in Tài liệu", - "PE.Controllers.Main.reloadButtonText": "Tải lại Trang", - "PE.Controllers.Main.requestEditFailedMessageText": "Hiện có ai đó đang chỉnh sửa tài liệu này. Vui lòng thử lại sau.", - "PE.Controllers.Main.requestEditFailedTitleText": "Truy cập bị từ chối", - "PE.Controllers.Main.saveErrorText": "Xảy ra lỗi khi lưu file", - "PE.Controllers.Main.savePreparingText": "Chuẩn bị lưu", - "PE.Controllers.Main.savePreparingTitle": "Chuẩn bị lưu. Vui lòng chờ...", - "PE.Controllers.Main.saveTextText": "Đang lưu tài liệu...", - "PE.Controllers.Main.saveTitleText": "Đang lưu tài liệu...", - "PE.Controllers.Main.splitDividerErrorText": "Số hàng phải là ước của %1", - "PE.Controllers.Main.splitMaxColsErrorText": "Số cột phải nhỏ hơn %1", - "PE.Controllers.Main.splitMaxRowsErrorText": "Số hàng phải nhỏ hơn %1", - "PE.Controllers.Main.textAnonymous": "Nặc danh", - "PE.Controllers.Main.textBack": "Quay lại", - "PE.Controllers.Main.textBuyNow": "Truy cập trang web", - "PE.Controllers.Main.textCancel": "Hủy", - "PE.Controllers.Main.textClose": "Đóng", - "PE.Controllers.Main.textCloseTip": "Chạm để đóng gợi ý.", - "PE.Controllers.Main.textContactUs": "Phòng kinh doanh", - "PE.Controllers.Main.textDone": "Hoàn tất", - "PE.Controllers.Main.textLoadingDocument": "Đang tải trình chiếu", - "PE.Controllers.Main.textNoLicenseTitle": "Phiên bản mã nguồn mở ONLYOFFICE", - "PE.Controllers.Main.textOK": "OK", - "PE.Controllers.Main.textPassword": "Mật khẩu", - "PE.Controllers.Main.textPreloader": "Đang tải...", - "PE.Controllers.Main.textShape": "Hình dạng", - "PE.Controllers.Main.textTryUndoRedo": "Chức năng Hoàn tác/Làm lại bị vô hiệu hóa cho chế độ đồng chỉnh sửa Nhanh.", - "PE.Controllers.Main.textUsername": "Tên đăng nhập", - "PE.Controllers.Main.titleLicenseExp": "Giấy phép hết hạn", - "PE.Controllers.Main.titleServerVersion": "Đã cập nhật trình chỉnh sửa", - "PE.Controllers.Main.txtArt": "Văn bản của bạn ở đây", - "PE.Controllers.Main.txtBasicShapes": "Hình dạng cơ bản", - "PE.Controllers.Main.txtButtons": "Nút", - "PE.Controllers.Main.txtCallouts": "Callout", - "PE.Controllers.Main.txtCharts": "Biểu đồ", - "PE.Controllers.Main.txtClipArt": "Clip Art", - "PE.Controllers.Main.txtDateTime": "Ngày và giờ", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "Tiêu đề biểu đồ", - "PE.Controllers.Main.txtEditingMode": "Đặt chế độ chỉnh sửa...", - "PE.Controllers.Main.txtFiguredArrows": "Mũi tên có hình vẽ", - "PE.Controllers.Main.txtFooter": "Footer", - "PE.Controllers.Main.txtHeader": "Header", - "PE.Controllers.Main.txtImage": "Hình ảnh", - "PE.Controllers.Main.txtLines": "Đường kẻ", - "PE.Controllers.Main.txtMath": "Toán", - "PE.Controllers.Main.txtMedia": "Truyền thông", - "PE.Controllers.Main.txtNeedSynchronize": "Bạn có cập nhật", - "PE.Controllers.Main.txtPicture": "Hình ảnh", - "PE.Controllers.Main.txtRectangles": "Hình chữ nhật", - "PE.Controllers.Main.txtSeries": "Chuỗi", - "PE.Controllers.Main.txtSldLtTBlank": "Trống", - "PE.Controllers.Main.txtSldLtTChart": "Biểu đồ", - "PE.Controllers.Main.txtSldLtTChartAndTx": "Biểu đồ và Văn bản", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "Clip Art và Văn bản", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "Clip Art và Văn bản dọc", - "PE.Controllers.Main.txtSldLtTCust": "Tuỳ chỉnh", - "PE.Controllers.Main.txtSldLtTDgm": "Sơ đồ", - "PE.Controllers.Main.txtSldLtTFourObj": "Bốn đối tượng", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "Truyền thông và Văn bản", - "PE.Controllers.Main.txtSldLtTObj": "Tiêu đề và Đối tượng", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "Đối tượng và Hai đối tượng", - "PE.Controllers.Main.txtSldLtTObjAndTx": "Đối tượng và Văn bản", - "PE.Controllers.Main.txtSldLtTObjOnly": "Đối tượng", - "PE.Controllers.Main.txtSldLtTObjOverTx": "Đối tượng trên Văn bản", - "PE.Controllers.Main.txtSldLtTObjTx": "Tiêu đề, Đối tượng và Chú thích", - "PE.Controllers.Main.txtSldLtTPicTx": "Hình ảnh và Chú thích", - "PE.Controllers.Main.txtSldLtTSecHead": "Phần Header", - "PE.Controllers.Main.txtSldLtTTbl": "Bảng", - "PE.Controllers.Main.txtSldLtTTitle": "Tiêu đề", - "PE.Controllers.Main.txtSldLtTTitleOnly": "Chỉ Tiêu đề", - "PE.Controllers.Main.txtSldLtTTwoColTx": "Hai cột văn bản", - "PE.Controllers.Main.txtSldLtTTwoObj": "Hai đối tượng", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "Hai đối tượng và Đối tượng", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "Hai Đối tượng và Văn bản", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "Hai Đối tượng trên Văn bản", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "Hai Văn bản và hai Đối tượng", - "PE.Controllers.Main.txtSldLtTTx": "Văn bản", - "PE.Controllers.Main.txtSldLtTTxAndChart": "Văn bản và Biểu đồ", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "Văn bản và Clip Art", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "Văn bản và Truyền thông", - "PE.Controllers.Main.txtSldLtTTxAndObj": "Văn bản và Đối tượng", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "Văn bản và Hai đối tượng", - "PE.Controllers.Main.txtSldLtTTxOverObj": "Văn bản trên Đối tượng", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "Tiêu đề và Văn bản dọc", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "Tiêu đề dọc và Văn bản bên trên Biểu đồ", - "PE.Controllers.Main.txtSldLtTVertTx": "Văn bản dọc", - "PE.Controllers.Main.txtSlideNumber": "Số slide", - "PE.Controllers.Main.txtSlideSubtitle": "Phụ đề slide", - "PE.Controllers.Main.txtSlideText": "Nội dung slide", - "PE.Controllers.Main.txtSlideTitle": "Tiêu đề slide", - "PE.Controllers.Main.txtStarsRibbons": "Sao & Ruy-băng", - "PE.Controllers.Main.txtXAxis": "Trục X", - "PE.Controllers.Main.txtYAxis": "Trục Y", - "PE.Controllers.Main.unknownErrorText": "Lỗi không xác định.", - "PE.Controllers.Main.unsupportedBrowserErrorText": "Trình duyệt của bạn không được hỗ trợ.", - "PE.Controllers.Main.uploadImageExtMessage": "Định dạng hình ảnh không xác định.", - "PE.Controllers.Main.uploadImageFileCountMessage": "Không có hình ảnh được tải lên.", - "PE.Controllers.Main.uploadImageSizeMessage": "Đã vượt quá giới hạn kích thước tối đa của hình ảnh.", - "PE.Controllers.Main.uploadImageTextText": "Đang tải lên hình ảnh...", - "PE.Controllers.Main.uploadImageTitleText": "Đang tải lên hình ảnh", - "PE.Controllers.Main.warnLicenseExp": "Giấy phép của bạn đã hết hạn.
            Vui lòng cập nhật giấy phép và làm mới trang.", - "PE.Controllers.Main.warnNoLicense": "Bạn đang sử dụng phiên bản nguồn mở của %1. Phiên bản có giới hạn các kết nối đồng thời với server tài liệu (20 kết nối cùng một lúc).
            Nếu bạn cần thêm, hãy cân nhắc mua giấy phép thương mại.", - "PE.Controllers.Main.warnProcessRightsChange": "Bạn đã bị từ chối quyền chỉnh sửa file này.", - "PE.Controllers.Search.textNoTextFound": "Không tìm thấy nội dung", - "PE.Controllers.Settings.notcriticalErrorTitle": "Cảnh báo", - "PE.Controllers.Settings.txtLoading": "Đang tải...", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "Bạn có những thay đổi chưa lưu trong tài liệu này. Nhấp vào 'Ở lại Trang này' để chờ tự động lưu tài liệu. Nhấp vào 'Rời Trang này' để bỏ tất cả các thay đổi chưa lưu.", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "Bạn rời khỏi ứng dụng", - "PE.Controllers.Toolbar.leaveButtonText": "Rời trang này", - "PE.Controllers.Toolbar.stayButtonText": "Ở lại trang này", - "PE.Views.AddImage.textAddress": "Địa chỉ", - "PE.Views.AddImage.textBack": "Quay lại", - "PE.Views.AddImage.textFromLibrary": "Hình ảnh từ Thư viện", - "PE.Views.AddImage.textFromURL": "Hình ảnh từ URL", - "PE.Views.AddImage.textImageURL": "URL hình ảnh", - "PE.Views.AddImage.textInsertImage": "Chèn hình ảnh", - "PE.Views.AddImage.textLinkSettings": "Cài đặt Liên kết", - "PE.Views.AddLink.textBack": "Quay lại", - "PE.Views.AddLink.textDisplay": "Hiển thị", - "PE.Views.AddLink.textExternalLink": "Liên kết ngoài", - "PE.Views.AddLink.textFirst": "Slide đầu tiên", - "PE.Views.AddLink.textInsert": "Chèn", - "PE.Views.AddLink.textInternalLink": "Slide trong Bản trình chiếu này", - "PE.Views.AddLink.textLast": "Slide cuối cùng", - "PE.Views.AddLink.textLink": "Liên kết", - "PE.Views.AddLink.textLinkSlide": "Liên kết tới", - "PE.Views.AddLink.textLinkType": "Loại liên kết", - "PE.Views.AddLink.textNext": "Slide kế tiếp", - "PE.Views.AddLink.textNumber": "Số slide", - "PE.Views.AddLink.textPrev": "Slide trước", - "PE.Views.AddLink.textTip": "Screen Tip", - "PE.Views.EditChart.textAlign": "Căn chỉnh", - "PE.Views.EditChart.textAlignBottom": "Căn dưới cùng", - "PE.Views.EditChart.textAlignCenter": "Căn trung tâm", - "PE.Views.EditChart.textAlignLeft": "Căn trái", - "PE.Views.EditChart.textAlignMiddle": "Căn giữa", - "PE.Views.EditChart.textAlignRight": "Căn phải", - "PE.Views.EditChart.textAlignTop": "Căn trên cùng", - "PE.Views.EditChart.textBack": "Quay lại", - "PE.Views.EditChart.textBackward": "Di chuyển ngược lại", - "PE.Views.EditChart.textBorder": "Đường viền", - "PE.Views.EditChart.textColor": "Màu sắc", - "PE.Views.EditChart.textFill": "Đổ màu", - "PE.Views.EditChart.textForward": "Di chuyển tiến lên", - "PE.Views.EditChart.textRemoveChart": "Xóa biểu đồ", - "PE.Views.EditChart.textReorder": "Đặt lại", - "PE.Views.EditChart.textSize": "Kích thước", - "PE.Views.EditChart.textStyle": "Kiểu", - "PE.Views.EditChart.textToBackground": "Gửi tới Nền", - "PE.Views.EditChart.textToForeground": "Đưa lên Cận cảnh", - "PE.Views.EditChart.textType": "Loại", - "PE.Views.EditChart.txtDistribHor": "Phân bổ theo chiều ngang", - "PE.Views.EditChart.txtDistribVert": "Phân bổ theo chiều dọc", - "PE.Views.EditImage.textAddress": "Địa chỉ", - "PE.Views.EditImage.textAlign": "Căn chỉnh", - "PE.Views.EditImage.textAlignBottom": "Căn dưới cùng", - "PE.Views.EditImage.textAlignCenter": "Căn trung tâm", - "PE.Views.EditImage.textAlignLeft": "Căn trái", - "PE.Views.EditImage.textAlignMiddle": "Căn giữa", - "PE.Views.EditImage.textAlignRight": "Căn phải", - "PE.Views.EditImage.textAlignTop": "Căn trên cùng", - "PE.Views.EditImage.textBack": "Quay lại", - "PE.Views.EditImage.textBackward": "Di chuyển ngược lại", - "PE.Views.EditImage.textDefault": "Kích thước mặc định", - "PE.Views.EditImage.textForward": "Di chuyển tiến lên", - "PE.Views.EditImage.textFromLibrary": "Hình ảnh từ Thư viện", - "PE.Views.EditImage.textFromURL": "Hình ảnh từ URL", - "PE.Views.EditImage.textImageURL": "URL hình ảnh", - "PE.Views.EditImage.textLinkSettings": "Cài đặt Liên kết", - "PE.Views.EditImage.textRemove": "Xóa hình ảnh", - "PE.Views.EditImage.textReorder": "Đặt lại", - "PE.Views.EditImage.textReplace": "Thay thế", - "PE.Views.EditImage.textReplaceImg": "Thay thế ảnh", - "PE.Views.EditImage.textToBackground": "Gửi tới Nền", - "PE.Views.EditImage.textToForeground": "Đưa lên Cận cảnh", - "PE.Views.EditImage.txtDistribHor": "Phân bổ theo chiều ngang", - "PE.Views.EditImage.txtDistribVert": "Phân bổ theo chiều dọc", - "PE.Views.EditLink.textBack": "Quay lại", - "PE.Views.EditLink.textDisplay": "Hiển thị", - "PE.Views.EditLink.textEdit": "Chỉnh sửa Liên kết", - "PE.Views.EditLink.textExternalLink": "Liên kết ngoài", - "PE.Views.EditLink.textFirst": "Slide đầu tiên", - "PE.Views.EditLink.textInternalLink": "Slide trong Bản trình chiếu này", - "PE.Views.EditLink.textLast": "Slide cuối cùng", - "PE.Views.EditLink.textLink": "Liên kết", - "PE.Views.EditLink.textLinkSlide": "Liên kết tới", - "PE.Views.EditLink.textLinkType": "Loại liên kết", - "PE.Views.EditLink.textNext": "Slide kế tiếp", - "PE.Views.EditLink.textNumber": "Số slide", - "PE.Views.EditLink.textPrev": "Slide trước", - "PE.Views.EditLink.textRemove": "Xóa liên kết", - "PE.Views.EditLink.textTip": "Screen Tip", - "PE.Views.EditShape.textAlign": "Căn chỉnh", - "PE.Views.EditShape.textAlignBottom": "Căn dưới cùng", - "PE.Views.EditShape.textAlignCenter": "Căn trung tâm", - "PE.Views.EditShape.textAlignLeft": "Căn trái", - "PE.Views.EditShape.textAlignMiddle": "Căn giữa", - "PE.Views.EditShape.textAlignRight": "Căn phải", - "PE.Views.EditShape.textAlignTop": "Căn trên cùng", - "PE.Views.EditShape.textBack": "Quay lại", - "PE.Views.EditShape.textBackward": "Di chuyển ngược lại", - "PE.Views.EditShape.textBorder": "Đường viền", - "PE.Views.EditShape.textColor": "Màu sắc", - "PE.Views.EditShape.textEffects": "Hiệu ứng", - "PE.Views.EditShape.textFill": "Đổ màu", - "PE.Views.EditShape.textForward": "Di chuyển tiến lên", - "PE.Views.EditShape.textOpacity": "Độ mờ", - "PE.Views.EditShape.textRemoveShape": "Xóa hình", - "PE.Views.EditShape.textReorder": "Đặt lại", - "PE.Views.EditShape.textReplace": "Thay thế", - "PE.Views.EditShape.textSize": "Kích thước", - "PE.Views.EditShape.textStyle": "Kiểu", - "PE.Views.EditShape.textToBackground": "Gửi tới Nền", - "PE.Views.EditShape.textToForeground": "Đưa lên Cận cảnh", - "PE.Views.EditShape.txtDistribHor": "Phân bổ theo chiều ngang", - "PE.Views.EditShape.txtDistribVert": "Phân bổ theo chiều dọc", - "PE.Views.EditSlide.textApplyAll": "Áp dụng cho tất cả slide", - "PE.Views.EditSlide.textBack": "Quay lại", - "PE.Views.EditSlide.textBlack": "Qua màu đen", - "PE.Views.EditSlide.textBottom": "Dưới cùng", - "PE.Views.EditSlide.textBottomLeft": "Dưới cùng-Bên trái", - "PE.Views.EditSlide.textBottomRight": "Dưới cùng-Bên phải", - "PE.Views.EditSlide.textClock": "Đồng hồ", - "PE.Views.EditSlide.textClockwise": "Theo chiều kim đồng hồ", - "PE.Views.EditSlide.textColor": "Màu sắc", - "PE.Views.EditSlide.textCounterclockwise": "Ngược chiều kim đồng hồ", - "PE.Views.EditSlide.textCover": "Slide mở đầu", - "PE.Views.EditSlide.textDelay": "Trì hoãn", - "PE.Views.EditSlide.textDuplicateSlide": "Nhân bản slide", - "PE.Views.EditSlide.textDuration": "Thời lượng", - "PE.Views.EditSlide.textEffect": "Hiệu ứng", - "PE.Views.EditSlide.textFade": "Mất dần", - "PE.Views.EditSlide.textFill": "Đổ màu", - "PE.Views.EditSlide.textHorizontalIn": "Ngang trong", - "PE.Views.EditSlide.textHorizontalOut": "Ngang ngoài", - "PE.Views.EditSlide.textLayout": "Bố cục", - "PE.Views.EditSlide.textLeft": "Trái", - "PE.Views.EditSlide.textNone": "Không", - "PE.Views.EditSlide.textOpacity": "Độ mờ", - "PE.Views.EditSlide.textPush": "Đẩy", - "PE.Views.EditSlide.textRemoveSlide": "Xóa slide", - "PE.Views.EditSlide.textRight": "Bên phải", - "PE.Views.EditSlide.textSmoothly": "Nhẹ nhàng", - "PE.Views.EditSlide.textSplit": "Chia tách", - "PE.Views.EditSlide.textStartOnClick": "Bắt đầu bằng Nhấp chuột", - "PE.Views.EditSlide.textStyle": "Kiểu", - "PE.Views.EditSlide.textTheme": "Theme", - "PE.Views.EditSlide.textTop": "Trên cùng", - "PE.Views.EditSlide.textTopLeft": "Trên cùng-Bên trái", - "PE.Views.EditSlide.textTopRight": "Trên cùng-Bên phải", - "PE.Views.EditSlide.textTransition": "Đổi kiểu", - "PE.Views.EditSlide.textType": "Loại", - "PE.Views.EditSlide.textUnCover": "Bỏ làm trang đầu", - "PE.Views.EditSlide.textVerticalIn": "Dọc trong", - "PE.Views.EditSlide.textVerticalOut": "Dọc ngoài", - "PE.Views.EditSlide.textWedge": "Hình nêm", - "PE.Views.EditSlide.textWipe": "Tẩy xóa", - "PE.Views.EditSlide.textZoom": "Thu phóng", - "PE.Views.EditSlide.textZoomIn": "Phóng to", - "PE.Views.EditSlide.textZoomOut": "Thu nhỏ", - "PE.Views.EditSlide.textZoomRotate": "Thu phóng và Xoay", - "PE.Views.EditTable.textAlign": "Căn chỉnh", - "PE.Views.EditTable.textAlignBottom": "Căn dưới cùng", - "PE.Views.EditTable.textAlignCenter": "Căn giữa", - "PE.Views.EditTable.textAlignLeft": "Căn trái", - "PE.Views.EditTable.textAlignMiddle": "Căn giữa", - "PE.Views.EditTable.textAlignRight": "Căn phải", - "PE.Views.EditTable.textAlignTop": "Căn trên cùng", - "PE.Views.EditTable.textBack": "Quay lại", - "PE.Views.EditTable.textBackward": "Di chuyển ngược lại", - "PE.Views.EditTable.textBandedColumn": "Cột gắn dải màu", - "PE.Views.EditTable.textBandedRow": "Hàng gắn dải màu", - "PE.Views.EditTable.textBorder": "Đường viền", - "PE.Views.EditTable.textCellMargins": "Lề của ô", - "PE.Views.EditTable.textColor": "Màu sắc", - "PE.Views.EditTable.textFill": "Đổ màu", - "PE.Views.EditTable.textFirstColumn": "Cột đầu tiên", - "PE.Views.EditTable.textForward": "Di chuyển tiến lên", - "PE.Views.EditTable.textHeaderRow": "Dòng Header", - "PE.Views.EditTable.textLastColumn": "Cột cuối cùng", - "PE.Views.EditTable.textOptions": "Tùy chọn", - "PE.Views.EditTable.textRemoveTable": "Xóa bảng", - "PE.Views.EditTable.textReorder": "Đặt lại", - "PE.Views.EditTable.textSize": "Kích thước", - "PE.Views.EditTable.textStyle": "Kiểu", - "PE.Views.EditTable.textStyleOptions": "Tùy chọn kiểu", - "PE.Views.EditTable.textTableOptions": "Tùy chọn bảng", - "PE.Views.EditTable.textToBackground": "Gửi tới Nền", - "PE.Views.EditTable.textToForeground": "Đưa lên Cận cảnh", - "PE.Views.EditTable.textTotalRow": "Tổng số hàng", - "PE.Views.EditTable.txtDistribHor": "Phân bổ theo chiều ngang", - "PE.Views.EditTable.txtDistribVert": "Phân bổ theo chiều dọc", - "PE.Views.EditText.textAdditional": "Bổ sung", - "PE.Views.EditText.textAdditionalFormat": "Định dạng bổ sung", - "PE.Views.EditText.textAfter": "Sau", - "PE.Views.EditText.textAllCaps": "Tất cả Drop cap", - "PE.Views.EditText.textAutomatic": "Tự động", - "PE.Views.EditText.textBack": "Quay lại", - "PE.Views.EditText.textBefore": "Trước", - "PE.Views.EditText.textBullets": "Dấu đầu dòng", - "PE.Views.EditText.textDblStrikethrough": "Gạch đôi giữa chữ", - "PE.Views.EditText.textDblSuperscript": "Chỉ số trên", - "PE.Views.EditText.textFontColor": "Màu chữ", - "PE.Views.EditText.textFontColors": "Màu chữ", - "PE.Views.EditText.textFonts": "Phông chữ", - "PE.Views.EditText.textFromText": "Khoảng cách từ văn bản", - "PE.Views.EditText.textLetterSpacing": "Khoảng cách chữ cái", - "PE.Views.EditText.textLineSpacing": "Khoảng cách dòng", - "PE.Views.EditText.textNone": "Không", - "PE.Views.EditText.textNumbers": "Số", - "PE.Views.EditText.textSize": "Kích thước", - "PE.Views.EditText.textSmallCaps": "Drop cap nhỏ", - "PE.Views.EditText.textStrikethrough": "Gạch giữa chữ", - "PE.Views.EditText.textSubscript": "Chỉ số dưới", - "PE.Views.Search.textSearch": "Tìm kiếm", - "PE.Views.Settings.mniSlideStandard": "Tiêu chuẩn (4:3)", - "PE.Views.Settings.mniSlideWide": "Màn hình rộng (16:9)", - "PE.Views.Settings.textAbout": "Giới thiệu", - "PE.Views.Settings.textAddress": "địa chỉ", - "PE.Views.Settings.textAuthor": "Tác giả", - "PE.Views.Settings.textBack": "Quay lại", - "PE.Views.Settings.textCreateDate": "Ngày tạo", - "PE.Views.Settings.textDone": "Hoàn tất", - "PE.Views.Settings.textDownload": "Tải về", - "PE.Views.Settings.textDownloadAs": "Tải về dưới dạng...", - "PE.Views.Settings.textEditPresent": "Chỉnh sửa bản trình chiếu", - "PE.Views.Settings.textEmail": "email", - "PE.Views.Settings.textFind": "Tìm", - "PE.Views.Settings.textHelp": "Trợ giúp", - "PE.Views.Settings.textLoading": "Đang tải...", - "PE.Views.Settings.textPoweredBy": "Được hỗ trợ bởi", - "PE.Views.Settings.textPresentInfo": "Thông tin Bản trình chiếu", - "PE.Views.Settings.textPresentSetup": "Cài đặt Trình chiếu", - "PE.Views.Settings.textPresentTitle": "Tiêu đề bản trình chiếu", - "PE.Views.Settings.textSettings": "Cài đặt", - "PE.Views.Settings.textSlideSize": "Kích thước slide", - "PE.Views.Settings.textTel": "ĐT", - "PE.Views.Settings.textVersion": "Phiên bản", - "PE.Views.Settings.unknownText": "Không xác định", - "PE.Views.Toolbar.textBack": "Quay lại" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/locale/zh.json b/apps/presentationeditor/mobile/locale/zh.json index 958a157aa..0e0dcd235 100644 --- a/apps/presentationeditor/mobile/locale/zh.json +++ b/apps/presentationeditor/mobile/locale/zh.json @@ -1,563 +1,3 @@ { - "Common.Controllers.Collaboration.textAddReply": "添加回复", - "Common.Controllers.Collaboration.textCancel": "取消", - "Common.Controllers.Collaboration.textDeleteComment": "删除批注", - "Common.Controllers.Collaboration.textDeleteReply": "删除回复", - "Common.Controllers.Collaboration.textDone": "完成", - "Common.Controllers.Collaboration.textEdit": "编辑", - "Common.Controllers.Collaboration.textEditUser": "文件正在被多个用户编辑。", - "Common.Controllers.Collaboration.textMessageDeleteComment": "您确定要删除此批注吗?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "你确定要删除这一回复吗?", - "Common.Controllers.Collaboration.textReopen": "重新打开", - "Common.Controllers.Collaboration.textResolve": "解决", - "Common.Controllers.Collaboration.textYes": "是", - "Common.UI.ThemeColorPalette.textCustomColors": "自定义颜色", - "Common.UI.ThemeColorPalette.textStandartColors": "标准颜色", - "Common.UI.ThemeColorPalette.textThemeColors": "主题颜色", - "Common.Utils.Metric.txtCm": "厘米", - "Common.Utils.Metric.txtPt": "像素", - "Common.Views.Collaboration.textAddReply": "添加回复", - "Common.Views.Collaboration.textBack": "返回", - "Common.Views.Collaboration.textCancel": "取消", - "Common.Views.Collaboration.textCollaboration": "协作", - "Common.Views.Collaboration.textDone": "完成", - "Common.Views.Collaboration.textEditReply": "编辑回复", - "Common.Views.Collaboration.textEditUsers": "用户", - "Common.Views.Collaboration.textEditСomment": "编辑批注", - "Common.Views.Collaboration.textNoComments": "此演示文稿不包含批注", - "Common.Views.Collaboration.textСomments": "评论", - "PE.Controllers.AddContainer.textImage": "图片", - "PE.Controllers.AddContainer.textLink": "链接", - "PE.Controllers.AddContainer.textOther": "其他", - "PE.Controllers.AddContainer.textShape": "形状", - "PE.Controllers.AddContainer.textSlide": "滑动", - "PE.Controllers.AddContainer.textTable": "表格", - "PE.Controllers.AddImage.textEmptyImgUrl": "您需要指定图像URL。", - "PE.Controllers.AddImage.txtNotUrl": "此字段应为格式为“http://www.example.com”的网址", - "PE.Controllers.AddLink.textDefault": "所选文字", - "PE.Controllers.AddLink.textExternalLink": "外部链接", - "PE.Controllers.AddLink.textFirst": "第一张幻灯片", - "PE.Controllers.AddLink.textInternalLink": "幻灯片在本演示文稿", - "PE.Controllers.AddLink.textLast": "最后一张幻灯片", - "PE.Controllers.AddLink.textNext": "下一张幻灯片", - "PE.Controllers.AddLink.textPrev": "上一张幻灯片", - "PE.Controllers.AddLink.textSlide": "滑动", - "PE.Controllers.AddLink.txtNotUrl": "此字段应为格式为“http://www.example.com”的网址", - "PE.Controllers.AddOther.textCancel": "取消", - "PE.Controllers.AddOther.textContinue": "继续", - "PE.Controllers.AddOther.textDelete": "删除", - "PE.Controllers.AddOther.textDeleteDraft": "你确定要删除这一稿吗?", - "PE.Controllers.AddTable.textCancel": "取消", - "PE.Controllers.AddTable.textColumns": "列", - "PE.Controllers.AddTable.textRows": "行", - "PE.Controllers.AddTable.textTableSize": "表格大小", - "PE.Controllers.DocumentHolder.errorCopyCutPaste": "使用上下文菜单的复制、剪切和粘贴操作将仅在当前文件中执行。", - "PE.Controllers.DocumentHolder.menuAddComment": "添加批注", - "PE.Controllers.DocumentHolder.menuAddLink": "增加链接", - "PE.Controllers.DocumentHolder.menuCopy": "复制", - "PE.Controllers.DocumentHolder.menuCut": "剪切", - "PE.Controllers.DocumentHolder.menuDelete": "删除", - "PE.Controllers.DocumentHolder.menuEdit": "编辑", - "PE.Controllers.DocumentHolder.menuMore": "更多", - "PE.Controllers.DocumentHolder.menuOpenLink": "打开链接", - "PE.Controllers.DocumentHolder.menuPaste": "粘贴", - "PE.Controllers.DocumentHolder.menuViewComment": "查看批注", - "PE.Controllers.DocumentHolder.sheetCancel": "取消", - "PE.Controllers.DocumentHolder.textCopyCutPasteActions": "复制,剪切和粘贴操作", - "PE.Controllers.DocumentHolder.textDoNotShowAgain": "不要再显示", - "PE.Controllers.DocumentPreview.txtFinalMessage": "幻灯片预览的结束。单击退出。", - "PE.Controllers.EditContainer.textChart": "图表", - "PE.Controllers.EditContainer.textHyperlink": "超链接", - "PE.Controllers.EditContainer.textImage": "图片", - "PE.Controllers.EditContainer.textSettings": "设置", - "PE.Controllers.EditContainer.textShape": "形状", - "PE.Controllers.EditContainer.textSlide": "滑动", - "PE.Controllers.EditContainer.textTable": "表格", - "PE.Controllers.EditContainer.textText": "文本", - "PE.Controllers.EditImage.textEmptyImgUrl": "您需要指定图像URL。", - "PE.Controllers.EditImage.txtNotUrl": "此字段应为格式为“http://www.example.com”的网址", - "PE.Controllers.EditLink.textDefault": "所选文字", - "PE.Controllers.EditLink.textExternalLink": "外部链接", - "PE.Controllers.EditLink.textFirst": "第一张幻灯片", - "PE.Controllers.EditLink.textInternalLink": "幻灯片在本演示文稿", - "PE.Controllers.EditLink.textLast": "最后一张幻灯片", - "PE.Controllers.EditLink.textNext": "下一张幻灯片", - "PE.Controllers.EditLink.textPrev": "上一张幻灯片", - "PE.Controllers.EditLink.textSlide": "滑动", - "PE.Controllers.EditLink.txtNotUrl": "此字段应为格式为“http://www.example.com”的网址", - "PE.Controllers.EditSlide.textSec": "s", - "PE.Controllers.EditText.textAuto": "汽车", - "PE.Controllers.EditText.textFonts": "字体", - "PE.Controllers.EditText.textPt": "像素", - "PE.Controllers.Main.advDRMEnterPassword": "输入密码:", - "PE.Controllers.Main.advDRMOptions": "受保护的文件", - "PE.Controllers.Main.advDRMPassword": "密码", - "PE.Controllers.Main.applyChangesTextText": "数据加载中…", - "PE.Controllers.Main.applyChangesTitleText": "数据加载中", - "PE.Controllers.Main.closeButtonText": "关闭文件", - "PE.Controllers.Main.convertationTimeoutText": "转换超时", - "PE.Controllers.Main.criticalErrorExtText": "按“确定”返回文件列表", - "PE.Controllers.Main.criticalErrorTitle": "错误:", - "PE.Controllers.Main.downloadErrorText": "下载失败", - "PE.Controllers.Main.downloadTextText": "正在下载演示文稿...", - "PE.Controllers.Main.downloadTitleText": "演示文稿下载中", - "PE.Controllers.Main.errorAccessDeny": "您正在尝试执行您没有权限的操作。
            请联系您的文档服务器管理员.", - "PE.Controllers.Main.errorBadImageUrl": "图片地址不正确", - "PE.Controllers.Main.errorCoAuthoringDisconnect": "服务器连接丢失。您无法再进行编辑。", - "PE.Controllers.Main.errorConnectToServer": "这份文件无法保存。请检查连接设置或联系您的管理员。
            当你点击“OK”按钮,系统将提示您下载文档。", - "PE.Controllers.Main.errorDatabaseConnection": "外部错误。
            数据库连接错误。请联系客服支持。", - "PE.Controllers.Main.errorDataEncrypted": "加密更改已收到,无法对其解密。", - "PE.Controllers.Main.errorDataRange": "数据范围不正确", - "PE.Controllers.Main.errorDefaultMessage": "错误代码:%1", - "PE.Controllers.Main.errorEditingDownloadas": "在处理文档期间发生错误。
            使用“下载”选项将文件备份复制到计算机硬盘中。", - "PE.Controllers.Main.errorFilePassProtect": "该文档受密码保护,无法被打开。", - "PE.Controllers.Main.errorFileSizeExceed": "文件大小超出了为服务器设置的限制.
            有关详细信息,请与文档服务器管理员联系。", - "PE.Controllers.Main.errorKeyEncrypt": "未知密钥描述", - "PE.Controllers.Main.errorKeyExpire": "密钥过期", - "PE.Controllers.Main.errorOpensource": "这个免费的社区版本只能够用来查看文件。要想在手机上使用在线编辑工具,请购买商业版。", - "PE.Controllers.Main.errorProcessSaveResult": "保存失败", - "PE.Controllers.Main.errorServerVersion": "该编辑版本已经更新。该页面将被重新加载以应用更改。", - "PE.Controllers.Main.errorStockChart": "行顺序不正确。建立股票图表将数据按照以下顺序放置在表格上:
            开盘价,最高价格,最低价格,收盘价。", - "PE.Controllers.Main.errorUpdateVersion": "该文件版本已经改变了。该页面将被重新加载。", - "PE.Controllers.Main.errorUpdateVersionOnDisconnect": "网连接已还原文件版本已更改。.
            在继续工作之前,需要下载文件或复制其内容以确保没有丢失任何内容,然后重新加载此页。", - "PE.Controllers.Main.errorUserDrop": "该文件现在无法访问。", - "PE.Controllers.Main.errorUsersExceed": "超过了用户数", - "PE.Controllers.Main.errorViewerDisconnect": "连接丢失。您仍然可以查看文档
            ,但在连接恢复之前无法下载或打印。", - "PE.Controllers.Main.leavePageText": "您在本文档中有未保存的更改。点击“停留在此页面”,等待文档的自动保存。点击“离开此页面”,放弃所有未保存的更改。", - "PE.Controllers.Main.loadFontsTextText": "数据加载中…", - "PE.Controllers.Main.loadFontsTitleText": "数据加载中", - "PE.Controllers.Main.loadFontTextText": "数据加载中…", - "PE.Controllers.Main.loadFontTitleText": "数据加载中", - "PE.Controllers.Main.loadImagesTextText": "图片加载中…", - "PE.Controllers.Main.loadImagesTitleText": "图片加载中", - "PE.Controllers.Main.loadImageTextText": "图片加载中…", - "PE.Controllers.Main.loadImageTitleText": "图片加载中", - "PE.Controllers.Main.loadingDocumentTextText": "载入演示文稿...", - "PE.Controllers.Main.loadingDocumentTitleText": "载入演示", - "PE.Controllers.Main.loadThemeTextText": "装载主题", - "PE.Controllers.Main.loadThemeTitleText": "装载主题", - "PE.Controllers.Main.notcriticalErrorTitle": "警告", - "PE.Controllers.Main.openErrorText": "打开文件时发生错误", - "PE.Controllers.Main.openTextText": "打开文件...", - "PE.Controllers.Main.openTitleText": "正在打开文件", - "PE.Controllers.Main.printTextText": "打印文件", - "PE.Controllers.Main.printTitleText": "打印文件", - "PE.Controllers.Main.reloadButtonText": "重新加载页面", - "PE.Controllers.Main.requestEditFailedMessageText": "有人正在编辑此文档。请稍后再试。", - "PE.Controllers.Main.requestEditFailedTitleText": "访问被拒绝", - "PE.Controllers.Main.saveErrorText": "保存文件时发生错误", - "PE.Controllers.Main.savePreparingText": "图像上传中……", - "PE.Controllers.Main.savePreparingTitle": "图像上传中请稍候...", - "PE.Controllers.Main.saveTextText": "保存文件…", - "PE.Controllers.Main.saveTitleText": "保存文件", - "PE.Controllers.Main.scriptLoadError": "连接速度过慢,部分组件无法被加载。请重新加载页面。", - "PE.Controllers.Main.splitDividerErrorText": "该行数必须是%1的除数。", - "PE.Controllers.Main.splitMaxColsErrorText": "列数必须小于%1", - "PE.Controllers.Main.splitMaxRowsErrorText": "行数必须小于%1", - "PE.Controllers.Main.textAnonymous": "访客", - "PE.Controllers.Main.textBack": "返回", - "PE.Controllers.Main.textBuyNow": "访问网站", - "PE.Controllers.Main.textCancel": "取消", - "PE.Controllers.Main.textClose": "关闭", - "PE.Controllers.Main.textCloseTip": "点击关闭提示。", - "PE.Controllers.Main.textContactUs": "联系销售", - "PE.Controllers.Main.textCustomLoader": "请注意,根据许可条款您无权更改加载程序。
            请联系我们的销售部门获取报价。", - "PE.Controllers.Main.textDone": "完成", - "PE.Controllers.Main.textHasMacros": "这个文件带有自动宏。
            是否要运行宏?", - "PE.Controllers.Main.textLoadingDocument": "载入演示", - "PE.Controllers.Main.textNo": "不", - "PE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE开源版本", - "PE.Controllers.Main.textOK": "确定", - "PE.Controllers.Main.textPaidFeature": "付费功能", - "PE.Controllers.Main.textPassword": "密码", - "PE.Controllers.Main.textPreloader": "载入中……", - "PE.Controllers.Main.textRemember": "记住我的选择", - "PE.Controllers.Main.textShape": "形状", - "PE.Controllers.Main.textTryUndoRedo": "快速共同编辑模式下,Undo / Redo功能被禁用。", - "PE.Controllers.Main.textUsername": "用户名", - "PE.Controllers.Main.textYes": "是", - "PE.Controllers.Main.titleLicenseExp": "许可证过期", - "PE.Controllers.Main.titleServerVersion": "编辑器已更新", - "PE.Controllers.Main.txtArt": "你的文本在此", - "PE.Controllers.Main.txtBasicShapes": "基本形状", - "PE.Controllers.Main.txtButtons": "按钮", - "PE.Controllers.Main.txtCallouts": "标注", - "PE.Controllers.Main.txtCharts": "图表", - "PE.Controllers.Main.txtClipArt": "剪贴画", - "PE.Controllers.Main.txtDateTime": "日期与时间", - "PE.Controllers.Main.txtDiagram": "SmartArt", - "PE.Controllers.Main.txtDiagramTitle": "图表标题", - "PE.Controllers.Main.txtEditingMode": "设置编辑模式..", - "PE.Controllers.Main.txtFiguredArrows": "图形箭头", - "PE.Controllers.Main.txtFooter": "页脚", - "PE.Controllers.Main.txtHeader": "页眉", - "PE.Controllers.Main.txtImage": "图片", - "PE.Controllers.Main.txtLines": "行", - "PE.Controllers.Main.txtMath": "数学", - "PE.Controllers.Main.txtMedia": "媒体", - "PE.Controllers.Main.txtNeedSynchronize": "你有更新", - "PE.Controllers.Main.txtPicture": "图片", - "PE.Controllers.Main.txtProtected": "在您输入密码和打开文件后,该文件的当前密码将被重置", - "PE.Controllers.Main.txtRectangles": "矩形", - "PE.Controllers.Main.txtSeries": "系列", - "PE.Controllers.Main.txtSldLtTBlank": "空白", - "PE.Controllers.Main.txtSldLtTChart": "图表", - "PE.Controllers.Main.txtSldLtTChartAndTx": "图表和文字", - "PE.Controllers.Main.txtSldLtTClipArtAndTx": "剪贴画和文字", - "PE.Controllers.Main.txtSldLtTClipArtAndVertTx": "剪贴画和垂直文本", - "PE.Controllers.Main.txtSldLtTCust": "自定义", - "PE.Controllers.Main.txtSldLtTDgm": "图", - "PE.Controllers.Main.txtSldLtTFourObj": "四个对象", - "PE.Controllers.Main.txtSldLtTMediaAndTx": "媒体和文字", - "PE.Controllers.Main.txtSldLtTObj": "标题和对象", - "PE.Controllers.Main.txtSldLtTObjAndTwoObj": "对象和两个对象", - "PE.Controllers.Main.txtSldLtTObjAndTx": "对象和文本", - "PE.Controllers.Main.txtSldLtTObjOnly": "目的", - "PE.Controllers.Main.txtSldLtTObjOverTx": "对象在文本之上", - "PE.Controllers.Main.txtSldLtTObjTx": "标题,对象和标题", - "PE.Controllers.Main.txtSldLtTPicTx": "图片和标题", - "PE.Controllers.Main.txtSldLtTSecHead": "段首", - "PE.Controllers.Main.txtSldLtTTbl": "表格", - "PE.Controllers.Main.txtSldLtTTitle": "标题", - "PE.Controllers.Main.txtSldLtTTitleOnly": "只有标题", - "PE.Controllers.Main.txtSldLtTTwoColTx": "两列文本", - "PE.Controllers.Main.txtSldLtTTwoObj": "两个对象", - "PE.Controllers.Main.txtSldLtTTwoObjAndObj": "两个对象和对象", - "PE.Controllers.Main.txtSldLtTTwoObjAndTx": "两个对象和文本", - "PE.Controllers.Main.txtSldLtTTwoObjOverTx": "文本上的两个对象", - "PE.Controllers.Main.txtSldLtTTwoTxTwoObj": "两个文本和两个对象", - "PE.Controllers.Main.txtSldLtTTx": "文本", - "PE.Controllers.Main.txtSldLtTTxAndChart": "文字和图表", - "PE.Controllers.Main.txtSldLtTTxAndClipArt": "文字和剪贴画", - "PE.Controllers.Main.txtSldLtTTxAndMedia": "文本和媒体", - "PE.Controllers.Main.txtSldLtTTxAndObj": "文本和对象", - "PE.Controllers.Main.txtSldLtTTxAndTwoObj": "文本和两个对象", - "PE.Controllers.Main.txtSldLtTTxOverObj": "文本对象", - "PE.Controllers.Main.txtSldLtTVertTitleAndTx": "垂直标题和文字", - "PE.Controllers.Main.txtSldLtTVertTitleAndTxOverChart": "垂直标题和文字在图表上", - "PE.Controllers.Main.txtSldLtTVertTx": "垂直文本", - "PE.Controllers.Main.txtSlideNumber": "幻灯片编号", - "PE.Controllers.Main.txtSlideSubtitle": "幻灯片副标题", - "PE.Controllers.Main.txtSlideText": "幻灯片文本", - "PE.Controllers.Main.txtSlideTitle": "幻灯片标题", - "PE.Controllers.Main.txtStarsRibbons": "星星和丝带", - "PE.Controllers.Main.txtXAxis": "X轴", - "PE.Controllers.Main.txtYAxis": "Y轴", - "PE.Controllers.Main.unknownErrorText": "示知错误", - "PE.Controllers.Main.unsupportedBrowserErrorText": "你的浏览器不支持", - "PE.Controllers.Main.uploadImageExtMessage": "未知图像格式", - "PE.Controllers.Main.uploadImageFileCountMessage": "没有图片上传", - "PE.Controllers.Main.uploadImageSizeMessage": "超过了Maximium图像大小限制。", - "PE.Controllers.Main.uploadImageTextText": "上传图片...", - "PE.Controllers.Main.uploadImageTitleText": "图片上传中", - "PE.Controllers.Main.waitText": "请稍候...", - "PE.Controllers.Main.warnLicenseExceeded": "与文档服务器的并发连接次数已超出限制,文档打开后将仅供查看。
            请联系您的账户管理员了解详情。", - "PE.Controllers.Main.warnLicenseExp": "您的许可证已过期。
            请更新您的许可证并刷新页面。", - "PE.Controllers.Main.warnLicenseUsersExceeded": "并发用户数量已超出限制,文档打开后将仅供查看。
            请联系您的账户管理员了解详情。", - "PE.Controllers.Main.warnNoLicense": "该版本对文档服务器的并发连接有限制。
            如果需要更多请考虑购买商业许可证。", - "PE.Controllers.Main.warnNoLicenseUsers": "此版本的 %1 编辑软件对并发用户数量有一定的限制。
            如果需要更多,请考虑购买商用许可证。", - "PE.Controllers.Main.warnProcessRightsChange": "您被拒绝编辑文件的权限。", - "PE.Controllers.Search.textNoTextFound": "文本没找到", - "PE.Controllers.Search.textReplaceAll": "全部替换", - "PE.Controllers.Settings.notcriticalErrorTitle": "警告", - "PE.Controllers.Settings.txtLoading": "载入中……", - "PE.Controllers.Toolbar.dlgLeaveMsgText": "您在本文档中有未保存的更改。点击“停留在此页面”,等待文档的自动保存。点击“离开此页面”,放弃所有未保存的更改。", - "PE.Controllers.Toolbar.dlgLeaveTitleText": "你退出应用程序", - "PE.Controllers.Toolbar.leaveButtonText": "离开这个页面", - "PE.Controllers.Toolbar.stayButtonText": "保持此页上", - "PE.Views.AddImage.textAddress": "地址", - "PE.Views.AddImage.textBack": "返回", - "PE.Views.AddImage.textFromLibrary": "图库", - "PE.Views.AddImage.textFromURL": "图片来自网络", - "PE.Views.AddImage.textImageURL": "图片地址", - "PE.Views.AddImage.textInsertImage": "插入图像", - "PE.Views.AddImage.textLinkSettings": "链接设置", - "PE.Views.AddLink.textBack": "返回", - "PE.Views.AddLink.textDisplay": "展示", - "PE.Views.AddLink.textExternalLink": "外部链接", - "PE.Views.AddLink.textFirst": "第一张幻灯片", - "PE.Views.AddLink.textInsert": "插入", - "PE.Views.AddLink.textInternalLink": "幻灯片在本演示文稿", - "PE.Views.AddLink.textLast": "最后一张幻灯片", - "PE.Views.AddLink.textLink": "链接", - "PE.Views.AddLink.textLinkSlide": "链接到", - "PE.Views.AddLink.textLinkType": "链接类型", - "PE.Views.AddLink.textNext": "下一张幻灯片", - "PE.Views.AddLink.textNumber": "幻灯片编号", - "PE.Views.AddLink.textPrev": "上一张幻灯片", - "PE.Views.AddLink.textTip": "屏幕提示", - "PE.Views.AddOther.textAddComment": "添加批注", - "PE.Views.AddOther.textBack": "返回", - "PE.Views.AddOther.textComment": "批注", - "PE.Views.AddOther.textDisplay": "展示", - "PE.Views.AddOther.textDone": "完成", - "PE.Views.AddOther.textExternalLink": "外部链接", - "PE.Views.AddOther.textFirst": "第一张幻灯片", - "PE.Views.AddOther.textInsert": "插入", - "PE.Views.AddOther.textInternalLink": "本演示文件中的幻灯片", - "PE.Views.AddOther.textLast": "最后一张幻灯片", - "PE.Views.AddOther.textLink": "链接", - "PE.Views.AddOther.textLinkSlide": "链接到", - "PE.Views.AddOther.textLinkType": "链接类型", - "PE.Views.AddOther.textNext": "下一张幻灯片", - "PE.Views.AddOther.textNumber": "幻灯片编号", - "PE.Views.AddOther.textPrev": "上一张幻灯片", - "PE.Views.AddOther.textTable": "表格", - "PE.Views.AddOther.textTip": "屏幕提示", - "PE.Views.EditChart.textAddCustomColor": "\n添加自定义颜色", - "PE.Views.EditChart.textAlign": "对齐", - "PE.Views.EditChart.textAlignBottom": "底部对齐", - "PE.Views.EditChart.textAlignCenter": "居中对齐", - "PE.Views.EditChart.textAlignLeft": "左对齐", - "PE.Views.EditChart.textAlignMiddle": "对齐中间", - "PE.Views.EditChart.textAlignRight": "右对齐", - "PE.Views.EditChart.textAlignTop": "顶端对齐", - "PE.Views.EditChart.textBack": "返回", - "PE.Views.EditChart.textBackward": "向后移动", - "PE.Views.EditChart.textBorder": "边界", - "PE.Views.EditChart.textColor": "颜色", - "PE.Views.EditChart.textCustomColor": "自定义颜色", - "PE.Views.EditChart.textFill": "填满", - "PE.Views.EditChart.textForward": "向前移动", - "PE.Views.EditChart.textRemoveChart": "删除图表", - "PE.Views.EditChart.textReorder": "重新订购", - "PE.Views.EditChart.textSize": "大小", - "PE.Views.EditChart.textStyle": "类型", - "PE.Views.EditChart.textToBackground": "发送到背景", - "PE.Views.EditChart.textToForeground": "放到最上面", - "PE.Views.EditChart.textType": "类型", - "PE.Views.EditChart.txtDistribHor": "水平分布", - "PE.Views.EditChart.txtDistribVert": "垂直分布", - "PE.Views.EditImage.textAddress": "地址", - "PE.Views.EditImage.textAlign": "对齐", - "PE.Views.EditImage.textAlignBottom": "底部对齐", - "PE.Views.EditImage.textAlignCenter": "居中对齐", - "PE.Views.EditImage.textAlignLeft": "左对齐", - "PE.Views.EditImage.textAlignMiddle": "对齐中间", - "PE.Views.EditImage.textAlignRight": "右对齐", - "PE.Views.EditImage.textAlignTop": "顶端对齐", - "PE.Views.EditImage.textBack": "返回", - "PE.Views.EditImage.textBackward": "向后移动", - "PE.Views.EditImage.textDefault": "默认大小", - "PE.Views.EditImage.textForward": "向前移动", - "PE.Views.EditImage.textFromLibrary": "图库", - "PE.Views.EditImage.textFromURL": "图片来自网络", - "PE.Views.EditImage.textImageURL": "图片地址", - "PE.Views.EditImage.textLinkSettings": "链接设置", - "PE.Views.EditImage.textRemove": "删除图片", - "PE.Views.EditImage.textReorder": "重新订购", - "PE.Views.EditImage.textReplace": "替换", - "PE.Views.EditImage.textReplaceImg": "替换图像", - "PE.Views.EditImage.textToBackground": "发送到背景", - "PE.Views.EditImage.textToForeground": "放到最上面", - "PE.Views.EditImage.txtDistribHor": "水平分布", - "PE.Views.EditImage.txtDistribVert": "垂直分布", - "PE.Views.EditLink.textBack": "返回", - "PE.Views.EditLink.textDisplay": "展示", - "PE.Views.EditLink.textEdit": "编辑链接", - "PE.Views.EditLink.textExternalLink": "外部链接", - "PE.Views.EditLink.textFirst": "第一张幻灯片", - "PE.Views.EditLink.textInternalLink": "幻灯片在本演示文稿", - "PE.Views.EditLink.textLast": "最后一张幻灯片", - "PE.Views.EditLink.textLink": "链接", - "PE.Views.EditLink.textLinkSlide": "链接到", - "PE.Views.EditLink.textLinkType": "链接类型", - "PE.Views.EditLink.textNext": "下一张幻灯片", - "PE.Views.EditLink.textNumber": "幻灯片编号", - "PE.Views.EditLink.textPrev": "上一张幻灯片", - "PE.Views.EditLink.textRemove": "删除链接", - "PE.Views.EditLink.textTip": "屏幕提示", - "PE.Views.EditShape.textAddCustomColor": "\n添加自定义颜色", - "PE.Views.EditShape.textAlign": "对齐", - "PE.Views.EditShape.textAlignBottom": "底部对齐", - "PE.Views.EditShape.textAlignCenter": "居中对齐", - "PE.Views.EditShape.textAlignLeft": "左对齐", - "PE.Views.EditShape.textAlignMiddle": "对齐中间", - "PE.Views.EditShape.textAlignRight": "右对齐", - "PE.Views.EditShape.textAlignTop": "顶端对齐", - "PE.Views.EditShape.textBack": "返回", - "PE.Views.EditShape.textBackward": "向后移动", - "PE.Views.EditShape.textBorder": "边界", - "PE.Views.EditShape.textColor": "颜色", - "PE.Views.EditShape.textCustomColor": "自定义颜色", - "PE.Views.EditShape.textEffects": "效果", - "PE.Views.EditShape.textFill": "填满", - "PE.Views.EditShape.textForward": "向前移动", - "PE.Views.EditShape.textOpacity": "不透明度", - "PE.Views.EditShape.textRemoveShape": "去除形状", - "PE.Views.EditShape.textReorder": "重新订购", - "PE.Views.EditShape.textReplace": "替换", - "PE.Views.EditShape.textSize": "大小", - "PE.Views.EditShape.textStyle": "类型", - "PE.Views.EditShape.textToBackground": "发送到背景", - "PE.Views.EditShape.textToForeground": "放到最上面", - "PE.Views.EditShape.txtDistribHor": "水平分布", - "PE.Views.EditShape.txtDistribVert": "垂直分布", - "PE.Views.EditSlide.textAddCustomColor": "\n添加自定义颜色", - "PE.Views.EditSlide.textApplyAll": "适用于所有幻灯片", - "PE.Views.EditSlide.textBack": "返回", - "PE.Views.EditSlide.textBlack": "通过黑色", - "PE.Views.EditSlide.textBottom": "底部", - "PE.Views.EditSlide.textBottomLeft": "左下", - "PE.Views.EditSlide.textBottomRight": "右下", - "PE.Views.EditSlide.textClock": "时钟", - "PE.Views.EditSlide.textClockwise": "顺时针", - "PE.Views.EditSlide.textColor": "颜色", - "PE.Views.EditSlide.textCounterclockwise": "逆时针", - "PE.Views.EditSlide.textCover": "罩", - "PE.Views.EditSlide.textCustomColor": "自定义颜色", - "PE.Views.EditSlide.textDelay": "延迟", - "PE.Views.EditSlide.textDuplicateSlide": "重复幻灯片", - "PE.Views.EditSlide.textDuration": "持续时间", - "PE.Views.EditSlide.textEffect": "影响", - "PE.Views.EditSlide.textFade": "褪色", - "PE.Views.EditSlide.textFill": "填满", - "PE.Views.EditSlide.textHorizontalIn": "水平在", - "PE.Views.EditSlide.textHorizontalOut": "水平出", - "PE.Views.EditSlide.textLayout": "布局", - "PE.Views.EditSlide.textLeft": "左", - "PE.Views.EditSlide.textNone": "没有", - "PE.Views.EditSlide.textOpacity": "不透明度", - "PE.Views.EditSlide.textPush": "推", - "PE.Views.EditSlide.textRemoveSlide": "删除幻灯片", - "PE.Views.EditSlide.textRight": "右", - "PE.Views.EditSlide.textSmoothly": "顺利", - "PE.Views.EditSlide.textSplit": "分裂", - "PE.Views.EditSlide.textStartOnClick": "开始点击", - "PE.Views.EditSlide.textStyle": "类型", - "PE.Views.EditSlide.textTheme": "主题", - "PE.Views.EditSlide.textTop": "顶部", - "PE.Views.EditSlide.textTopLeft": "左上", - "PE.Views.EditSlide.textTopRight": "右上", - "PE.Views.EditSlide.textTransition": "过渡", - "PE.Views.EditSlide.textType": "类型", - "PE.Views.EditSlide.textUnCover": "揭露", - "PE.Views.EditSlide.textVerticalIn": "垂直的", - "PE.Views.EditSlide.textVerticalOut": "垂直输出", - "PE.Views.EditSlide.textWedge": "楔", - "PE.Views.EditSlide.textWipe": "擦拭", - "PE.Views.EditSlide.textZoom": "放大", - "PE.Views.EditSlide.textZoomIn": "放大", - "PE.Views.EditSlide.textZoomOut": "缩小", - "PE.Views.EditSlide.textZoomRotate": "缩放并旋转", - "PE.Views.EditTable.textAddCustomColor": "\n添加自定义颜色", - "PE.Views.EditTable.textAlign": "排列", - "PE.Views.EditTable.textAlignBottom": "底部对齐", - "PE.Views.EditTable.textAlignCenter": "居中对齐", - "PE.Views.EditTable.textAlignLeft": "左对齐", - "PE.Views.EditTable.textAlignMiddle": "对齐中间", - "PE.Views.EditTable.textAlignRight": "右对齐", - "PE.Views.EditTable.textAlignTop": "顶端对齐", - "PE.Views.EditTable.textBack": "返回", - "PE.Views.EditTable.textBackward": "向后移动", - "PE.Views.EditTable.textBandedColumn": "带状列", - "PE.Views.EditTable.textBandedRow": "带状行", - "PE.Views.EditTable.textBorder": "边界", - "PE.Views.EditTable.textCellMargins": "单元格边距", - "PE.Views.EditTable.textColor": "颜色", - "PE.Views.EditTable.textCustomColor": "自定义颜色", - "PE.Views.EditTable.textFill": "填满", - "PE.Views.EditTable.textFirstColumn": "第一列", - "PE.Views.EditTable.textForward": "向前移动", - "PE.Views.EditTable.textHeaderRow": "标题行", - "PE.Views.EditTable.textLastColumn": "最后一列", - "PE.Views.EditTable.textOptions": "选项", - "PE.Views.EditTable.textRemoveTable": "删除表", - "PE.Views.EditTable.textReorder": "重新订购", - "PE.Views.EditTable.textSize": "大小", - "PE.Views.EditTable.textStyle": "类型", - "PE.Views.EditTable.textStyleOptions": "样式选项", - "PE.Views.EditTable.textTableOptions": "表格选项", - "PE.Views.EditTable.textToBackground": "发送到背景", - "PE.Views.EditTable.textToForeground": "放到最上面", - "PE.Views.EditTable.textTotalRow": "总行", - "PE.Views.EditTable.txtDistribHor": "水平分布", - "PE.Views.EditTable.txtDistribVert": "垂直分布", - "PE.Views.EditText.textAddCustomColor": "\n添加自定义颜色", - "PE.Views.EditText.textAdditional": "另外", - "PE.Views.EditText.textAdditionalFormat": "附加格式", - "PE.Views.EditText.textAfter": "后", - "PE.Views.EditText.textAllCaps": "全部大写", - "PE.Views.EditText.textAutomatic": "自动化的", - "PE.Views.EditText.textBack": "返回", - "PE.Views.EditText.textBefore": "以前", - "PE.Views.EditText.textBullets": "着重号", - "PE.Views.EditText.textCharacterBold": "B", - "PE.Views.EditText.textCharacterItalic": "I", - "PE.Views.EditText.textCharacterStrikethrough": "S", - "PE.Views.EditText.textCharacterUnderline": "U", - "PE.Views.EditText.textCustomColor": "自定义颜色", - "PE.Views.EditText.textDblStrikethrough": "双删除线", - "PE.Views.EditText.textDblSuperscript": "上标", - "PE.Views.EditText.textFontColor": "字体颜色", - "PE.Views.EditText.textFontColors": "字体颜色", - "PE.Views.EditText.textFonts": "字体", - "PE.Views.EditText.textFromText": "文字距离", - "PE.Views.EditText.textLetterSpacing": "字母间距", - "PE.Views.EditText.textLineSpacing": "行间距", - "PE.Views.EditText.textNone": "没有", - "PE.Views.EditText.textNumbers": "数字", - "PE.Views.EditText.textSize": "大小", - "PE.Views.EditText.textSmallCaps": "小写", - "PE.Views.EditText.textStrikethrough": "删除线", - "PE.Views.EditText.textSubscript": "下标", - "PE.Views.Search.textCase": "区分大小写", - "PE.Views.Search.textDone": "完成", - "PE.Views.Search.textFind": "查找", - "PE.Views.Search.textFindAndReplace": "查找和替换", - "PE.Views.Search.textReplace": "替换", - "PE.Views.Search.textSearch": "搜索", - "PE.Views.Settings. textComment": "批注", - "PE.Views.Settings.mniSlideStandard": "标准(4:3)", - "PE.Views.Settings.mniSlideWide": "宽屏(16:9)", - "PE.Views.Settings.textAbout": "关于", - "PE.Views.Settings.textAddress": "地址", - "PE.Views.Settings.textApplication": "应用", - "PE.Views.Settings.textApplicationSettings": "应用程序设置", - "PE.Views.Settings.textAuthor": "作者", - "PE.Views.Settings.textBack": "返回", - "PE.Views.Settings.textCentimeter": "厘米", - "PE.Views.Settings.textCollaboration": "协作", - "PE.Views.Settings.textColorSchemes": "颜色方案", - "PE.Views.Settings.textCreated": "已创建", - "PE.Views.Settings.textCreateDate": "创建日期", - "PE.Views.Settings.textDisableAll": "解除所有项目", - "PE.Views.Settings.textDisableAllMacrosWithNotification": "解除所有带通知的宏", - "PE.Views.Settings.textDisableAllMacrosWithoutNotification": "解除所有不带通知的宏", - "PE.Views.Settings.textDone": "完成", - "PE.Views.Settings.textDownload": "下载", - "PE.Views.Settings.textDownloadAs": "下载为...", - "PE.Views.Settings.textEditPresent": "编辑演示文稿", - "PE.Views.Settings.textEmail": "电子邮件", - "PE.Views.Settings.textEnableAll": "启动所有项目", - "PE.Views.Settings.textEnableAllMacrosWithoutNotification": "启动所有不带通知的宏", - "PE.Views.Settings.textFind": "查找", - "PE.Views.Settings.textFindAndReplace": "查找和替换", - "PE.Views.Settings.textHelp": "帮助", - "PE.Views.Settings.textInch": "寸", - "PE.Views.Settings.textLastModified": "上次修改时间", - "PE.Views.Settings.textLastModifiedBy": "上次修改时间", - "PE.Views.Settings.textLoading": "载入中……", - "PE.Views.Settings.textLocation": "位置", - "PE.Views.Settings.textMacrosSettings": "宏设置", - "PE.Views.Settings.textOwner": "创建者", - "PE.Views.Settings.textPoint": "点", - "PE.Views.Settings.textPoweredBy": "支持方", - "PE.Views.Settings.textPresentInfo": "演示信息", - "PE.Views.Settings.textPresentSettings": "演示文稿设置", - "PE.Views.Settings.textPresentSetup": "演示设置", - "PE.Views.Settings.textPresentTitle": "演讲题目", - "PE.Views.Settings.textPrint": "打印", - "PE.Views.Settings.textSettings": "设置", - "PE.Views.Settings.textShowNotification": "显示通知", - "PE.Views.Settings.textSlideSize": "滑动尺寸", - "PE.Views.Settings.textSpellcheck": "拼写检查", - "PE.Views.Settings.textSubject": "主题", - "PE.Views.Settings.textTel": "电话", - "PE.Views.Settings.textTitle": "标题", - "PE.Views.Settings.textUnitOfMeasurement": "计量单位", - "PE.Views.Settings.textUploaded": "上载", - "PE.Views.Settings.textVersion": "版本", - "PE.Views.Settings.unknownText": "未知", - "PE.Views.Toolbar.textBack": "返回" + } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/resources/css/app-ios.css b/apps/presentationeditor/mobile/resources/css/app-ios.css deleted file mode 100644 index f3a167687..000000000 --- a/apps/presentationeditor/mobile/resources/css/app-ios.css +++ /dev/null @@ -1,7760 +0,0 @@ -html, -body, -.framework7-root { - position: relative; - height: 100%; - width: 100%; - overflow-x: hidden; -} -body { - font-family: -apple-system, SF UI Text, Helvetica Neue, Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; - color: #000; - font-size: 14px; - line-height: 1.4; - width: 100%; - -webkit-text-size-adjust: 100%; - background: #fff; - overflow: hidden; -} -.framework7-root { - overflow: hidden; -} -@media all and (width: 1024px) and (height: 691px) and (orientation: landscape) { - html, - body, - .framework7-root { - height: 671px; - } -} -@media all and (width: 1024px) and (height: 692px) and (orientation: landscape) { - html, - body, - .framework7-root { - height: 672px; - } -} -* { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -a, -input, -textarea, -select { - outline: 0; -} -a { - text-decoration: none; - color: #aa5252; -} -p { - margin: 1em 0; -} -/* === Grid === */ -.row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.row > [class*="col-"] { - box-sizing: border-box; -} -.row .col-auto { - width: 100%; -} -.row .col-100 { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); -} -.row.no-gutter .col-100 { - width: 100%; -} -.row .col-95 { - width: 95%; - width: -webkit-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); -} -.row.no-gutter .col-95 { - width: 95%; -} -.row .col-90 { - width: 90%; - width: -webkit-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); -} -.row.no-gutter .col-90 { - width: 90%; -} -.row .col-85 { - width: 85%; - width: -webkit-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); -} -.row.no-gutter .col-85 { - width: 85%; -} -.row .col-80 { - width: 80%; - width: -webkit-calc((100% - 15px*0.25) / 1.25); - width: calc((100% - 15px*0.25) / 1.25); -} -.row.no-gutter .col-80 { - width: 80%; -} -.row .col-75 { - width: 75%; - width: -webkit-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); -} -.row.no-gutter .col-75 { - width: 75%; -} -.row .col-70 { - width: 70%; - width: -webkit-calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); -} -.row.no-gutter .col-70 { - width: 70%; -} -.row .col-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); -} -.row.no-gutter .col-66 { - width: 66.66666666666666%; -} -.row .col-65 { - width: 65%; - width: -webkit-calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); -} -.row.no-gutter .col-65 { - width: 65%; -} -.row .col-60 { - width: 60%; - width: -webkit-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); -} -.row.no-gutter .col-60 { - width: 60%; -} -.row .col-55 { - width: 55%; - width: -webkit-calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); -} -.row.no-gutter .col-55 { - width: 55%; -} -.row .col-50 { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); -} -.row.no-gutter .col-50 { - width: 50%; -} -.row .col-45 { - width: 45%; - width: -webkit-calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); -} -.row.no-gutter .col-45 { - width: 45%; -} -.row .col-40 { - width: 40%; - width: -webkit-calc((100% - 15px*1.5) / 2.5); - width: calc((100% - 15px*1.5) / 2.5); -} -.row.no-gutter .col-40 { - width: 40%; -} -.row .col-35 { - width: 35%; - width: -webkit-calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 15px*1.8571428571428572) / 2.857142857142857); -} -.row.no-gutter .col-35 { - width: 35%; -} -.row .col-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); -} -.row.no-gutter .col-33 { - width: 33.333333333333336%; -} -.row .col-30 { - width: 30%; - width: -webkit-calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); -} -.row.no-gutter .col-30 { - width: 30%; -} -.row .col-25 { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); -} -.row.no-gutter .col-25 { - width: 25%; -} -.row .col-20 { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); -} -.row.no-gutter .col-20 { - width: 20%; -} -.row .col-15 { - width: 15%; - width: -webkit-calc((100% - 15px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 15px*5.666666666666667) / 6.666666666666667); -} -.row.no-gutter .col-15 { - width: 15%; -} -.row .col-10 { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); -} -.row.no-gutter .col-10 { - width: 10%; -} -.row .col-5 { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); -} -.row.no-gutter .col-5 { - width: 5%; -} -.row .col-auto:nth-last-child(1), -.row .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); -} -.row.no-gutter .col-auto:nth-last-child(1), -.row.no-gutter .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; -} -.row .col-auto:nth-last-child(2), -.row .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); -} -.row.no-gutter .col-auto:nth-last-child(2), -.row.no-gutter .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; -} -.row .col-auto:nth-last-child(3), -.row .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); -} -.row.no-gutter .col-auto:nth-last-child(3), -.row.no-gutter .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; -} -.row .col-auto:nth-last-child(4), -.row .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); -} -.row.no-gutter .col-auto:nth-last-child(4), -.row.no-gutter .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; -} -.row .col-auto:nth-last-child(5), -.row .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); -} -.row.no-gutter .col-auto:nth-last-child(5), -.row.no-gutter .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; -} -.row .col-auto:nth-last-child(6), -.row .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 15px*5) / 6); - width: calc((100% - 15px*5) / 6); -} -.row.no-gutter .col-auto:nth-last-child(6), -.row.no-gutter .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; -} -.row .col-auto:nth-last-child(7), -.row .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 15px*6) / 7); - width: calc((100% - 15px*6) / 7); -} -.row.no-gutter .col-auto:nth-last-child(7), -.row.no-gutter .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; -} -.row .col-auto:nth-last-child(8), -.row .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 15px*7) / 8); - width: calc((100% - 15px*7) / 8); -} -.row.no-gutter .col-auto:nth-last-child(8), -.row.no-gutter .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; -} -.row .col-auto:nth-last-child(9), -.row .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 15px*8) / 9); - width: calc((100% - 15px*8) / 9); -} -.row.no-gutter .col-auto:nth-last-child(9), -.row.no-gutter .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; -} -.row .col-auto:nth-last-child(10), -.row .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); -} -.row.no-gutter .col-auto:nth-last-child(10), -.row.no-gutter .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; -} -.row .col-auto:nth-last-child(11), -.row .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 15px*10) / 11); - width: calc((100% - 15px*10) / 11); -} -.row.no-gutter .col-auto:nth-last-child(11), -.row.no-gutter .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; -} -.row .col-auto:nth-last-child(12), -.row .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 15px*11) / 12); - width: calc((100% - 15px*11) / 12); -} -.row.no-gutter .col-auto:nth-last-child(12), -.row.no-gutter .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; -} -.row .col-auto:nth-last-child(13), -.row .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 15px*12) / 13); - width: calc((100% - 15px*12) / 13); -} -.row.no-gutter .col-auto:nth-last-child(13), -.row.no-gutter .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; -} -.row .col-auto:nth-last-child(14), -.row .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 15px*13) / 14); - width: calc((100% - 15px*13) / 14); -} -.row.no-gutter .col-auto:nth-last-child(14), -.row.no-gutter .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; -} -.row .col-auto:nth-last-child(15), -.row .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 15px*14) / 15); - width: calc((100% - 15px*14) / 15); -} -.row.no-gutter .col-auto:nth-last-child(15), -.row.no-gutter .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; -} -.row .col-auto:nth-last-child(16), -.row .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 15px*15) / 16); - width: calc((100% - 15px*15) / 16); -} -.row.no-gutter .col-auto:nth-last-child(16), -.row.no-gutter .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; -} -.row .col-auto:nth-last-child(17), -.row .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 15px*16) / 17); - width: calc((100% - 15px*16) / 17); -} -.row.no-gutter .col-auto:nth-last-child(17), -.row.no-gutter .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; -} -.row .col-auto:nth-last-child(18), -.row .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 15px*17) / 18); - width: calc((100% - 15px*17) / 18); -} -.row.no-gutter .col-auto:nth-last-child(18), -.row.no-gutter .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; -} -.row .col-auto:nth-last-child(19), -.row .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 15px*18) / 19); - width: calc((100% - 15px*18) / 19); -} -.row.no-gutter .col-auto:nth-last-child(19), -.row.no-gutter .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; -} -.row .col-auto:nth-last-child(20), -.row .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); -} -.row.no-gutter .col-auto:nth-last-child(20), -.row.no-gutter .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; -} -.row .col-auto:nth-last-child(21), -.row .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 15px*20) / 21); - width: calc((100% - 15px*20) / 21); -} -.row.no-gutter .col-auto:nth-last-child(21), -.row.no-gutter .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; -} -@media all and (min-width: 768px) { - .row .tablet-100 { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); - } - .row.no-gutter .tablet-100 { - width: 100%; - } - .row .tablet-95 { - width: 95%; - width: -webkit-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - } - .row.no-gutter .tablet-95 { - width: 95%; - } - .row .tablet-90 { - width: 90%; - width: -webkit-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - } - .row.no-gutter .tablet-90 { - width: 90%; - } - .row .tablet-85 { - width: 85%; - width: -webkit-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - } - .row.no-gutter .tablet-85 { - width: 85%; - } - .row .tablet-80 { - width: 80%; - width: -webkit-calc((100% - 15px*0.25) / 1.25); - width: calc((100% - 15px*0.25) / 1.25); - } - .row.no-gutter .tablet-80 { - width: 80%; - } - .row .tablet-75 { - width: 75%; - width: -webkit-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - } - .row.no-gutter .tablet-75 { - width: 75%; - } - .row .tablet-70 { - width: 70%; - width: -webkit-calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - } - .row.no-gutter .tablet-70 { - width: 70%; - } - .row .tablet-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - } - .row.no-gutter .tablet-66 { - width: 66.66666666666666%; - } - .row .tablet-65 { - width: 65%; - width: -webkit-calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - } - .row.no-gutter .tablet-65 { - width: 65%; - } - .row .tablet-60 { - width: 60%; - width: -webkit-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - } - .row.no-gutter .tablet-60 { - width: 60%; - } - .row .tablet-55 { - width: 55%; - width: -webkit-calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - } - .row.no-gutter .tablet-55 { - width: 55%; - } - .row .tablet-50 { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); - } - .row.no-gutter .tablet-50 { - width: 50%; - } - .row .tablet-45 { - width: 45%; - width: -webkit-calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - } - .row.no-gutter .tablet-45 { - width: 45%; - } - .row .tablet-40 { - width: 40%; - width: -webkit-calc((100% - 15px*1.5) / 2.5); - width: calc((100% - 15px*1.5) / 2.5); - } - .row.no-gutter .tablet-40 { - width: 40%; - } - .row .tablet-35 { - width: 35%; - width: -webkit-calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - } - .row.no-gutter .tablet-35 { - width: 35%; - } - .row .tablet-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); - } - .row.no-gutter .tablet-33 { - width: 33.333333333333336%; - } - .row .tablet-30 { - width: 30%; - width: -webkit-calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - } - .row.no-gutter .tablet-30 { - width: 30%; - } - .row .tablet-25 { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); - } - .row.no-gutter .tablet-25 { - width: 25%; - } - .row .tablet-20 { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); - } - .row.no-gutter .tablet-20 { - width: 20%; - } - .row .tablet-15 { - width: 15%; - width: -webkit-calc((100% - 15px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 15px*5.666666666666667) / 6.666666666666667); - } - .row.no-gutter .tablet-15 { - width: 15%; - } - .row .tablet-10 { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); - } - .row.no-gutter .tablet-10 { - width: 10%; - } - .row .tablet-5 { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); - } - .row.no-gutter .tablet-5 { - width: 5%; - } - .row .tablet-auto:nth-last-child(1), - .row .tablet-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); - } - .row.no-gutter .tablet-auto:nth-last-child(1), - .row.no-gutter .tablet-auto:nth-last-child(1) ~ .tablet-auto { - width: 100%; - } - .row .tablet-auto:nth-last-child(2), - .row .tablet-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); - } - .row.no-gutter .tablet-auto:nth-last-child(2), - .row.no-gutter .tablet-auto:nth-last-child(2) ~ .tablet-auto { - width: 50%; - } - .row .tablet-auto:nth-last-child(3), - .row .tablet-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); - } - .row.no-gutter .tablet-auto:nth-last-child(3), - .row.no-gutter .tablet-auto:nth-last-child(3) ~ .tablet-auto { - width: 33.33333333%; - } - .row .tablet-auto:nth-last-child(4), - .row .tablet-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); - } - .row.no-gutter .tablet-auto:nth-last-child(4), - .row.no-gutter .tablet-auto:nth-last-child(4) ~ .tablet-auto { - width: 25%; - } - .row .tablet-auto:nth-last-child(5), - .row .tablet-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); - } - .row.no-gutter .tablet-auto:nth-last-child(5), - .row.no-gutter .tablet-auto:nth-last-child(5) ~ .tablet-auto { - width: 20%; - } - .row .tablet-auto:nth-last-child(6), - .row .tablet-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 15px*5) / 6); - width: calc((100% - 15px*5) / 6); - } - .row.no-gutter .tablet-auto:nth-last-child(6), - .row.no-gutter .tablet-auto:nth-last-child(6) ~ .tablet-auto { - width: 16.66666667%; - } - .row .tablet-auto:nth-last-child(7), - .row .tablet-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 15px*6) / 7); - width: calc((100% - 15px*6) / 7); - } - .row.no-gutter .tablet-auto:nth-last-child(7), - .row.no-gutter .tablet-auto:nth-last-child(7) ~ .tablet-auto { - width: 14.28571429%; - } - .row .tablet-auto:nth-last-child(8), - .row .tablet-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 15px*7) / 8); - width: calc((100% - 15px*7) / 8); - } - .row.no-gutter .tablet-auto:nth-last-child(8), - .row.no-gutter .tablet-auto:nth-last-child(8) ~ .tablet-auto { - width: 12.5%; - } - .row .tablet-auto:nth-last-child(9), - .row .tablet-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 15px*8) / 9); - width: calc((100% - 15px*8) / 9); - } - .row.no-gutter .tablet-auto:nth-last-child(9), - .row.no-gutter .tablet-auto:nth-last-child(9) ~ .tablet-auto { - width: 11.11111111%; - } - .row .tablet-auto:nth-last-child(10), - .row .tablet-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); - } - .row.no-gutter .tablet-auto:nth-last-child(10), - .row.no-gutter .tablet-auto:nth-last-child(10) ~ .tablet-auto { - width: 10%; - } - .row .tablet-auto:nth-last-child(11), - .row .tablet-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 15px*10) / 11); - width: calc((100% - 15px*10) / 11); - } - .row.no-gutter .tablet-auto:nth-last-child(11), - .row.no-gutter .tablet-auto:nth-last-child(11) ~ .tablet-auto { - width: 9.09090909%; - } - .row .tablet-auto:nth-last-child(12), - .row .tablet-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 15px*11) / 12); - width: calc((100% - 15px*11) / 12); - } - .row.no-gutter .tablet-auto:nth-last-child(12), - .row.no-gutter .tablet-auto:nth-last-child(12) ~ .tablet-auto { - width: 8.33333333%; - } - .row .tablet-auto:nth-last-child(13), - .row .tablet-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 15px*12) / 13); - width: calc((100% - 15px*12) / 13); - } - .row.no-gutter .tablet-auto:nth-last-child(13), - .row.no-gutter .tablet-auto:nth-last-child(13) ~ .tablet-auto { - width: 7.69230769%; - } - .row .tablet-auto:nth-last-child(14), - .row .tablet-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 15px*13) / 14); - width: calc((100% - 15px*13) / 14); - } - .row.no-gutter .tablet-auto:nth-last-child(14), - .row.no-gutter .tablet-auto:nth-last-child(14) ~ .tablet-auto { - width: 7.14285714%; - } - .row .tablet-auto:nth-last-child(15), - .row .tablet-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 15px*14) / 15); - width: calc((100% - 15px*14) / 15); - } - .row.no-gutter .tablet-auto:nth-last-child(15), - .row.no-gutter .tablet-auto:nth-last-child(15) ~ .tablet-auto { - width: 6.66666667%; - } - .row .tablet-auto:nth-last-child(16), - .row .tablet-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 15px*15) / 16); - width: calc((100% - 15px*15) / 16); - } - .row.no-gutter .tablet-auto:nth-last-child(16), - .row.no-gutter .tablet-auto:nth-last-child(16) ~ .tablet-auto { - width: 6.25%; - } - .row .tablet-auto:nth-last-child(17), - .row .tablet-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 15px*16) / 17); - width: calc((100% - 15px*16) / 17); - } - .row.no-gutter .tablet-auto:nth-last-child(17), - .row.no-gutter .tablet-auto:nth-last-child(17) ~ .tablet-auto { - width: 5.88235294%; - } - .row .tablet-auto:nth-last-child(18), - .row .tablet-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 15px*17) / 18); - width: calc((100% - 15px*17) / 18); - } - .row.no-gutter .tablet-auto:nth-last-child(18), - .row.no-gutter .tablet-auto:nth-last-child(18) ~ .tablet-auto { - width: 5.55555556%; - } - .row .tablet-auto:nth-last-child(19), - .row .tablet-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 15px*18) / 19); - width: calc((100% - 15px*18) / 19); - } - .row.no-gutter .tablet-auto:nth-last-child(19), - .row.no-gutter .tablet-auto:nth-last-child(19) ~ .tablet-auto { - width: 5.26315789%; - } - .row .tablet-auto:nth-last-child(20), - .row .tablet-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); - } - .row.no-gutter .tablet-auto:nth-last-child(20), - .row.no-gutter .tablet-auto:nth-last-child(20) ~ .tablet-auto { - width: 5%; - } - .row .tablet-auto:nth-last-child(21), - .row .tablet-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 15px*20) / 21); - width: calc((100% - 15px*20) / 21); - } - .row.no-gutter .tablet-auto:nth-last-child(21), - .row.no-gutter .tablet-auto:nth-last-child(21) ~ .tablet-auto { - width: 4.76190476%; - } -} -/* === Views === */ -.views, -.view { - position: relative; - width: 100%; - height: 100%; - z-index: 5000; -} -.views { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.view { - overflow: hidden; - box-sizing: border-box; -} -/* === Pages === */ -.pages { - position: relative; - width: 100%; - height: 100%; - overflow: hidden; - background: #000; -} -.page { - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #efeff4; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page.cached { - display: none; -} -.page-on-left { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); -} -.page-on-center .swipeback-page-shadow { - opacity: 1; -} -.page-on-right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} -.page-on-right .swipeback-page-shadow { - opacity: 0; -} -.page-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - box-sizing: border-box; - height: 100%; - position: relative; - z-index: 1; -} -.swipeback-page-shadow { - position: absolute; - right: 100%; - top: 0; - width: 16px; - height: 100%; - background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - z-index: -1; - content: ''; -} -html.android .swipeback-page-shadow { - display: none; - -webkit-animation: none; - animation: none; -} -.page-transitioning, -.page-transitioning .swipeback-page-shadow { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page-from-right-to-center:before, -.page-from-center-to-right:before { - position: absolute; - right: 100%; - top: 0; - width: 16px; - height: 100%; - background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - z-index: -1; - content: ''; -} -html.android .page-from-right-to-center:before, -html.android .page-from-center-to-right:before { - display: none; - -webkit-animation: none; - animation: none; -} -.page-from-right-to-center { - -webkit-animation: pageFromRightToCenter 400ms forwards; - animation: pageFromRightToCenter 400ms forwards; -} -.page-from-right-to-center:before { - -webkit-animation: pageFromRightToCenterShadow 400ms forwards; - animation: pageFromRightToCenterShadow 400ms forwards; -} -.page-from-center-to-right { - -webkit-animation: pageFromCenterToRight 400ms forwards; - animation: pageFromCenterToRight 400ms forwards; -} -.page-from-center-to-right:before { - -webkit-animation: pageFromCenterToRightShadow 400ms forwards; - animation: pageFromCenterToRightShadow 400ms forwards; -} -@-webkit-keyframes pageFromRightToCenter { - from { - -webkit-transform: translate3d(100%, 0, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromRightToCenter { - from { - transform: translate3d(100%, 0, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes pageFromRightToCenterShadow { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes pageFromRightToCenterShadow { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@-webkit-keyframes pageFromCenterToRight { - from { - -webkit-transform: translate3d(0, 0, 0); - } - to { - -webkit-transform: translate3d(100%, 0, 0); - } -} -@keyframes pageFromCenterToRight { - from { - transform: translate3d(0, 0, 0); - } - to { - transform: translate3d(100%, 0, 0); - } -} -@-webkit-keyframes pageFromCenterToRightShadow { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@keyframes pageFromCenterToRightShadow { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.page-from-center-to-left { - -webkit-animation: pageFromCenterToLeft 400ms forwards; - animation: pageFromCenterToLeft 400ms forwards; -} -.page-from-left-to-center { - -webkit-animation: pageFromLeftToCenter 400ms forwards; - animation: pageFromLeftToCenter 400ms forwards; -} -@-webkit-keyframes pageFromCenterToLeft { - from { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } - to { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - } -} -@keyframes pageFromCenterToLeft { - from { - transform: translate3d(0, 0, 0); - } - to { - opacity: 0.9; - transform: translate3d(-20%, 0, 0); - } -} -@-webkit-keyframes pageFromLeftToCenter { - from { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromLeftToCenter { - from { - transform: translate3d(-20%, 0, 0); - } - to { - opacity: 1; - transform: translate3d(0, 0, 0); - } -} -/* === Toolbars === */ -.navbar-inner, -.toolbar-inner { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - padding: 0 8px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.navbar-inner.cached { - display: none; -} -.navbar, -.toolbar { - height: 44px; - width: 100%; - box-sizing: border-box; - font-size: 17px; - position: relative; - margin: 0; - z-index: 500; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -.navbar b, -.toolbar b { - font-weight: 500; -} -html.ios-gt-8 .navbar b, -html.ios-gt-8 .toolbar b { - font-weight: 600; -} -.navbar, -.toolbar, -.subnavbar { - background: #f7f7f8; -} -.navbar a.link, -.toolbar a.link, -.subnavbar a.link { - line-height: 44px; - height: 44px; - text-decoration: none; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translateZ(0px); - transform: translateZ(0px); -} -html:not(.watch-active-state) .navbar a.link:active, -html:not(.watch-active-state) .toolbar a.link:active, -html:not(.watch-active-state) .subnavbar a.link:active, -.navbar a.link.active-state, -.toolbar a.link.active-state, -.subnavbar a.link.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.navbar a.link i + span, -.toolbar a.link i + span, -.subnavbar a.link i + span, -.navbar a.link i + i, -.toolbar a.link i + i, -.subnavbar a.link i + i, -.navbar a.link span + i, -.toolbar a.link span + i, -.subnavbar a.link span + i, -.navbar a.link span + span, -.toolbar a.link span + span, -.subnavbar a.link span + span { - margin-left: 7px; -} -.navbar a.icon-only, -.toolbar a.icon-only, -.subnavbar a.icon-only { - min-width: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - margin: 0; -} -.navbar i.icon, -.toolbar i.icon, -.subnavbar i.icon { - display: block; -} -.navbar { - left: 0; - top: 0; -} -.navbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .navbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .navbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.navbar:after { - backface-visibility: hidden; -} -.navbar.no-border:after { - display: none; -} -.navbar .center { - font-size: 17px; - font-weight: 500; - text-align: center; - margin: 0; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - line-height: 44px; - -webkit-flex-shrink: 10; - -ms-flex: 0 10 auto; - flex-shrink: 10; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -html.ios-gt-8 .navbar .center { - font-weight: 600; -} -.navbar .left, -.navbar .right { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar .left a + a, -.navbar .right a + a { - margin-left: 15px; -} -.navbar .left { - margin-right: 10px; -} -.navbar .right { - margin-left: 10px; -} -.navbar .right:first-child { - position: absolute; - right: 8px; - height: 100%; -} -.popup .navbar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.subnavbar { - height: 44px; - width: 100%; - position: absolute; - left: 0; - top: 100%; - margin-top: -1px; - z-index: 20; - box-sizing: border-box; - padding: 0 8px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.subnavbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .subnavbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .subnavbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.subnavbar.no-border:after { - display: none; -} -.navbar.no-border .subnavbar { - margin-top: 0; -} -.navbar-on-left .subnavbar, -.navbar-on-right .subnavbar { - pointer-events: none; -} -.navbar .subnavbar, -.page .subnavbar { - position: absolute; -} -.page > .subnavbar { - top: 0; - margin-top: 0; -} -.subnavbar > .buttons-row { - width: 100%; -} -.subnavbar .searchbar, -.subnavbar.searchbar { - position: absolute; -} -.subnavbar.searchbar, -.subnavbar .searchbar { - position: absolute; -} -.subnavbar .searchbar { - left: 0; - top: 0; -} -.toolbar { - left: 0; - bottom: 0; -} -.toolbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .toolbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .toolbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.toolbar.no-border:before { - display: none; -} -.toolbar a { - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -.tabbar { - color: #929292; - z-index: 5001; -} -.tabbar a { - color: #929292; -} -.tabbar a.active { - color: #aa5252; -} -.tabbar a.link { - line-height: 1.4; -} -.tabbar a.tab-link, -.tabbar a.link { - height: 100%; - width: 100%; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - overflow: visible; - -webkit-box-flex: 1; - -ms-flex: 1; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.tabbar i.icon { - height: 30px; -} -.tabbar-labels { - height: 50px; -} -.tabbar-labels a.tab-link, -.tabbar-labels a.link { - padding-top: 4px; - padding-bottom: 4px; - height: 100%; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.tabbar-labels a.tab-link i + span, -.tabbar-labels a.link i + span { - margin: 0; -} -.tabbar-labels span.tabbar-label { - line-height: 1; - display: block; - margin: 0; - letter-spacing: 0.01em; - font-size: 10px; - position: relative; - text-overflow: ellipsis; - white-space: nowrap; -} -.subnavbar input[type="text"], -.navbar input[type="text"], -.subnavbar input[type="password"], -.navbar input[type="password"], -.subnavbar input[type="search"], -.navbar input[type="search"], -.subnavbar input[type="email"], -.navbar input[type="email"], -.subnavbar input[type="tel"], -.navbar input[type="tel"], -.subnavbar input[type="url"], -.navbar input[type="url"] { - box-sizing: border-box; - width: 100%; - height: 28px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 5px; - font-family: inherit; - color: #000; - font-size: 14px; - font-weight: normal; - padding: 0 8px; - background-color: #fff; -} -@media all and (min-width: 768px) { - .tabbar .toolbar-inner { - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - } - .tabbar a.tab-link, - .tabbar a.link { - width: auto; - min-width: 105px; - } - .tabbar-labels { - height: 56px; - } - .tabbar-labels span.tabbar-label { - font-size: 14px; - } -} -.navbar-from-right-to-center .left, -.navbar-from-right-to-center .right, -.navbar-from-right-to-center .center, -.navbar-from-right-to-center .subnavbar, -.navbar-from-right-to-center .fading { - -webkit-animation: navbarElementFadeIn 400ms forwards; - animation: navbarElementFadeIn 400ms forwards; -} -.navbar-from-right-to-center .sliding { - opacity: 1; -} -.navbar-from-center-to-right .left, -.navbar-from-center-to-right .right, -.navbar-from-center-to-right .center, -.navbar-from-center-to-right .subnavbar, -.navbar-from-center-to-right .fading { - -webkit-animation: navbarElementFadeOut 400ms forwards; - animation: navbarElementFadeOut 400ms forwards; -} -.navbar-from-center-to-right .sliding { - opacity: 0; -} -.navbar-from-center-to-right .subnavbar.sliding { - opacity: 1; -} -@-webkit-keyframes navbarElementFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes navbarElementFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -.navbar-from-center-to-left .left, -.navbar-from-center-to-left .right, -.navbar-from-center-to-left .center, -.navbar-from-center-to-left .subnavbar, -.navbar-from-center-to-left .fading { - -webkit-animation: navbarElementFadeOut 400ms forwards; - animation: navbarElementFadeOut 400ms forwards; -} -.navbar-from-center-to-left .sliding { - opacity: 0; -} -.navbar-from-center-to-left .subnavbar.sliding { - opacity: 1; -} -.navbar-from-left-to-center .left, -.navbar-from-left-to-center .right, -.navbar-from-left-to-center .center, -.navbar-from-left-to-center .subnavbar, -.navbar-from-left-to-center .fading { - -webkit-animation: navbarElementFadeIn 400ms forwards; - animation: navbarElementFadeIn 400ms forwards; -} -.navbar-from-left-to-center .sliding { - opacity: 1; -} -.navbar-on-left .left, -.navbar-on-left .right, -.navbar-on-left .center, -.navbar-on-left .subnavbar, -.navbar-on-left .fading { - opacity: 0; -} -.navbar-on-left .sliding { - opacity: 0; -} -.navbar-on-left .subnavbar.sliding { - opacity: 1; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); -} -.navbar-on-right .left, -.navbar-on-right .right, -.navbar-on-right .center, -.navbar-on-right .subnavbar, -.navbar-on-right .fading { - opacity: 0; -} -.navbar-on-right .sliding { - opacity: 0; -} -.navbar-on-right .subnavbar.sliding { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} -@-webkit-keyframes navbarElementFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@keyframes navbarElementFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.navbar-from-right-to-center .left.sliding .back.link .icon, -.navbar-from-center-to-right .left.sliding .back.link .icon, -.navbar-from-center-to-left .left.sliding .back.link .icon, -.navbar-from-left-to-center .left.sliding .back.link .icon { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar-from-right-to-center .sliding, -.navbar-from-center-to-right .sliding, -.navbar-from-center-to-left .sliding, -.navbar-from-left-to-center .sliding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-animation: none; - animation: none; -} -/* === Relation between toolbar/navbar types and pages === */ -.page > .navbar, -.view > .navbar, -.views > .navbar, -.page > .toolbar, -.view > .toolbar, -.views > .toolbar { - position: absolute; -} -.subnavbar ~ .page-content { - padding-top: 44px; -} -.navbar-through .page-content, -.navbar-fixed .page-content { - padding-top: 44px; -} -.navbar-through .with-subnavbar .page-content, -.navbar-fixed .with-subnavbar .page-content, -.navbar-through .page-content.with-subnavbar, -.navbar-fixed .page-content.with-subnavbar, -.navbar-through .subnavbar ~ .page-content, -.navbar-fixed .subnavbar ~ .page-content { - padding-top: 88px; -} -.navbar-through .page .subnavbar, -.navbar-fixed .page .subnavbar, -.navbar-through.page .subnavbar, -.navbar-fixed.page .subnavbar { - top: 44px; -} -.toolbar-through .page-content, -.toolbar-fixed .page-content, -.tabbar-through .page-content, -.tabbar-fixed .page-content { - padding-bottom: 44px; -} -.tabbar-labels-fixed .page-content, -.tabbar-labels-through .page-content { - padding-bottom: 50px; -} -@media all and (min-width: 768px) { - .tabbar-labels-fixed .page-content, - .tabbar-labels-through .page-content { - padding-bottom: 56px; - } -} -.navbar.navbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar.navbar-hiding ~ .page-content .list-group-title, -.navbar.navbar-hiding ~ .pages .list-group-title, -.navbar.navbar-hiding ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .page-content .subnavbar, -.navbar.navbar-hiding ~ .pages .subnavbar, -.navbar.navbar-hiding ~ .page .subnavbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar.navbar-hidden ~ .page-content .list-group-title, -.navbar.navbar-hidden ~ .pages .list-group-title, -.navbar.navbar-hidden ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - top: -44px; -} -.navbar.navbar-hidden ~ .page-content .subnavbar, -.navbar.navbar-hidden ~ .pages .subnavbar, -.navbar.navbar-hidden ~ .page .subnavbar { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page.no-navbar .page-content { - padding-top: 0; -} -.page.no-navbar.with-subnavbar .page-content, -.with-subnavbar .page.no-navbar .page-content, -.page.no-navbar .page-content.with-subnavbar { - padding-top: 44px; -} -.toolbar.toolbar-hiding, -.tabbar.toolbar-hiding, -.toolbar.tabbar-hiding, -.tabbar.tabbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.page.no-toolbar .page-content, -.page.no-tabbar .page-content { - padding-bottom: 0; -} -/* === Search Bar === */ -.searchbar { - height: 44px; - width: 100%; - background: #c9c9ce; - box-sizing: border-box; - padding: 0 8px; - overflow: hidden; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.searchbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #b4b4b4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .searchbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .searchbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.searchbar .searchbar-input { - width: 100%; - height: 28px; - position: relative; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.searchbar input[type="search"] { - box-sizing: border-box; - width: 100%; - height: 28px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 5px; - font-family: inherit; - color: #000; - font-size: 14px; - font-weight: normal; - padding: 0 8px; - background-color: #fff; - padding: 0 28px; - height: 100%; - background-repeat: no-repeat; - background-position: 8px center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2013%2013'%20enable-background%3D'new%200%200%2013%2013'%3E%3Cg%3E%3Cpath%20fill%3D'%23939398'%20d%3D'M5%2C1c2.2%2C0%2C4%2C1.8%2C4%2C4S7.2%2C9%2C5%2C9S1%2C7.2%2C1%2C5S2.8%2C1%2C5%2C1%20M5%2C0C2.2%2C0%2C0%2C2.2%2C0%2C5s2.2%2C5%2C5%2C5s5-2.2%2C5-5S7.8%2C0%2C5%2C0%20L5%2C0z'%2F%3E%3C%2Fg%3E%3Cline%20stroke%3D'%23939398'%20stroke-miterlimit%3D'10'%20x1%3D'12.6'%20y1%3D'12.6'%20x2%3D'8.2'%20y2%3D'8.2'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 13px 13px; - background-size: 13px 13px; -} -.searchbar input[type="search"]::-webkit-input-placeholder { - color: #939398; - opacity: 1; -} -.searchbar input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -.searchbar .searchbar-clear { - position: absolute; - width: 28px; - height: 28px; - right: 0; - top: 0; - opacity: 0; - pointer-events: none; - background-position: center; - background-repeat: no-repeat; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2028%2028'%3E%3Ccircle%20cx%3D'14'%20cy%3D'14'%20r%3D'14'%20fill%3D'%238e8e93'%2F%3E%3Cline%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'8'%20y1%3D'8'%20x2%3D'20'%20y2%3D'20'%2F%3E%3Cline%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'20'%20y1%3D'8'%20x2%3D'8'%20y2%3D'20'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 14px 14px; - background-size: 14px 14px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - cursor: pointer; -} -.searchbar .searchbar-cancel { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - font-size: 17px; - cursor: pointer; - opacity: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 0; - pointer-events: none; - display: none; -} -.searchbar.searchbar-active .searchbar-cancel { - margin-left: 8px; - opacity: 1; - pointer-events: auto; -} -html:not(.watch-active-state) .searchbar.searchbar-active .searchbar-cancel:active, -.searchbar.searchbar-active .searchbar-cancel.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.searchbar.searchbar-not-empty .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 100; - opacity: 0; - pointer-events: none; - background: rgba(0, 0, 0, 0.4); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.searchbar-overlay.searchbar-overlay-active { - opacity: 1; - pointer-events: auto; -} -.searchbar-not-found { - display: none; -} -.hidden-by-searchbar, -.list-block .hidden-by-searchbar, -.list-block li.hidden-by-searchbar { - display: none; -} -.page > .searchbar { - position: absolute; - width: 100%; - left: 0; - top: 0; - z-index: 200; -} -.page > .searchbar ~ .page-content { - padding-top: 44px; -} -.navbar-fixed .page > .searchbar, -.navbar-through .page > .searchbar, -.navbar-fixed > .searchbar, -.navbar-through > .searchbar { - top: 44px; -} -.navbar-fixed .page > .searchbar ~ .page-content, -.navbar-through .page > .searchbar ~ .page-content, -.navbar-fixed > .searchbar ~ .page-content, -.navbar-through > .searchbar ~ .page-content { - padding-top: 88px; -} -/* === Message Bar === */ -.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background: #fff; -} -.messagebar:before { - display: none; -} -.messagebar textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #c8c8cd; - background: #fff; - border-radius: 17px; - box-shadow: none; - display: block; - padding: 6px 15px; - margin: 0; - width: 100%; - height: 34px; - color: #000; - font-size: 17px; - line-height: 20px; - font-family: inherit; - resize: none; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.messagebar .link { - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; -} -.messagebar .link.icon-only:first-child { - margin-left: -6px; -} -.messagebar .link:not(.icon-only) + textarea { - margin-left: 8px; -} -.messagebar textarea + .link { - margin-left: 8px; -} -.messagebar .link { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.messagebar ~ .page-content { - padding-bottom: 44px; -} -.page.no-toolbar .messagebar ~ .page-content { - padding-bottom: 44px; -} -.hidden-toolbar .messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -/* === Icons === */ -i.icon { - display: inline-block; - vertical-align: middle; - background-size: 100% auto; - background-position: center; - background-repeat: no-repeat; - font-style: normal; - position: relative; -} -i.icon.icon-back { - width: 12px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2012%2020'%3E%3Cpath%20d%3D'M10%2C0l2%2C2l-8%2C8l8%2C8l-2%2C2L0%2C10L10%2C0z'%20fill%3D'%23aa5252'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-forward { - width: 12px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2012%2020'%3E%3Cpath%20d%3D'M2%2C20l-2-2l8-8L0%2C2l2-2l10%2C10L2%2C20z'%20fill%3D'%23aa5252'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bars { - width: 21px; - height: 14px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2021%2014'%3E%3Cpath%20fill%3D'%23aa5252'%20d%3D'M0%2C0h2v2H0V0z%20M4%2C0h17v1H4V0z%20M0%2C6h2v2H0V6z%20M4%2C6h17v1H4V6z%20M0%2C12h2v2H0V12z%20M4%2C12h17v1H4V12z'%2F%3E%3C%2Fsvg%3E"); -} -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2ddpx) { - i.icon.icon-bars { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2042%2026'%3E%3Cpath%20fill%3D'%23aa5252'%20d%3D'M0%2C0h4v4H0V0z%20M8%2C1h34v2H8V1z%20M0%2C11h4v4H0V11z%20M8%2C12h34v2H8V12z%20M0%2C22h4v4H0V22z%20M8%2C23h34v2H8V23z'%2F%3E%3C%2Fsvg%3E"); - height: 13px; - } -} -i.icon.icon-camera { - width: 25px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2025%2020'%3E%3Cpath%20fill%3D'%238C8D92'%20d%3D'M13.3%2C5.5c-2.7%2C0-5%2C2.2-5%2C5s2.2%2C5%2C5%2C5c2.7%2C0%2C5-2.2%2C5-5S16%2C5.5%2C13.3%2C5.5z'%2F%3E%3Cpath%20fill%3D'%238C8D92'%20d%3D'M22.8%2C1.8h-3.3c-0.2-1.3-1-1.8-2-1.8H8.1c-1%2C0-1.8%2C0.4-2%2C1.8H2.8C1.4%2C1.8%2C0%2C2.8%2C0%2C4.2v12.6%20c0%2C1.4%2C1.4%2C2.5%2C2.8%2C2.5h20c1.4%2C0%2C2.2-1.1%2C2.2-2.5V4.2C25%2C2.8%2C24.2%2C1.8%2C22.8%2C1.8z%20M3.5%2C6.4C2.6%2C6.4%2C2%2C5.8%2C2%2C5c0-0.8%2C0.7-1.5%2C1.5-1.5%20S5%2C4.1%2C5%2C5C5%2C5.8%2C4.3%2C6.4%2C3.5%2C6.4z%20M13.3%2C16.8c-3.5%2C0-6.3-2.7-6.3-6.2c0-3.3%2C2.5-6.2%2C5.7-6.2h1.2c3.2%2C0%2C5.7%2C2.9%2C5.7%2C6.2%20C19.6%2C14.1%2C16.7%2C16.8%2C13.3%2C16.8z'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-f7 { - width: 29px; - height: 29px; - background-image: url("../img/i-f7-ios.png"); - border-radius: 6px; -} -i.icon.icon-next, -i.icon.icon-prev { - width: 15px; - height: 15px; -} -i.icon.icon-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2015%2015'%3E%3Cg%3E%3Cpath%20fill%3D'%23aa5252'%20d%3D'M1%2C1.6l11.8%2C5.8L1%2C13.4V1.6%20M0%2C0v15l15-7.6L0%2C0L0%2C0z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2015%2015'%3E%3Cg%3E%3Cpath%20fill%3D'%23aa5252'%20d%3D'M14%2C1.6v11.8L2.2%2C7.6L14%2C1.6%20M15%2C0L0%2C7.6L15%2C15V0L15%2C0z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 25px; - height: 25px; - font-size: 31px; - line-height: 20px; - text-align: center; - font-weight: 100; -} -.navbar .framework7-icons, -.navbar .f7-icons, -.toolbar .framework7-icons, -.toolbar .f7-icons { - font-size: 22px; -} -.tabbar .framework7-icons, -.tabbar .f7-icons, -.tabbar-labels .framework7-icons, -.tabbar-labels .f7-icons { - font-size: 25px; -} -/* === Content Block === */ -.content-block { - margin: 35px 0; - padding: 0 15px; - color: #6d6d72; - box-sizing: border-box; -} -.content-block.no-hairlines:before, -.content-block.no-hairlines ul:before, -.content-block.no-hairlines .content-block-inner:before { - display: none; -} -.content-block.no-hairlines:after, -.content-block.no-hairlines ul:after, -.content-block.no-hairlines .content-block-inner:after { - display: none; -} -.content-block-title { - position: relative; - overflow: hidden; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - line-height: 1; - color: #6d6d72; - margin: 35px 15px 10px; -} -.content-block-title + .list-block, -.content-block-title + .content-block, -.content-block-title + .card { - margin-top: 10px; -} -.content-block-inner { - background: #fff; - padding: 10px 15px; - margin-left: -15px; - width: 100%; - position: relative; - color: #000; -} -.content-block-inner:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .content-block-inner:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .content-block-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block.inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; -} -.content-block.inset .content-block-inner { - border-radius: 7px; -} -.content-block.inset .content-block-inner:before { - display: none; -} -.content-block.inset .content-block-inner:after { - display: none; -} -@media all and (min-width: 768px) { - .content-block.tablet-inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; - } - .content-block.tablet-inset .content-block-inner { - border-radius: 7px; - } - .content-block.tablet-inset .content-block-inner:before { - display: none; - } - .content-block.tablet-inset .content-block-inner:after { - display: none; - } -} -/* === Lists === */ -.list-block { - margin: 35px 0; - font-size: 17px; -} -.list-block ul { - background: #fff; - list-style: none; - padding: 0; - margin: 0; - position: relative; -} -.list-block ul:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block ul:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block ul:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul ul { - padding-left: 45px; -} -.list-block ul ul:before { - display: none; -} -.list-block ul ul:after { - display: none; -} -.list-block .align-top, -.list-block .align-top .item-content, -.list-block .align-top .item-inner { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.list-block.inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; -} -.list-block.inset .content-block-title { - margin-left: 0; - margin-right: 0; -} -.list-block.inset ul { - border-radius: 7px; -} -.list-block.inset ul:before { - display: none; -} -.list-block.inset ul:after { - display: none; -} -.list-block.inset li:first-child > a { - border-radius: 7px 7px 0 0; -} -.list-block.inset li:last-child > a { - border-radius: 0 0 7px 7px; -} -.list-block.inset li:first-child:last-child > a { - border-radius: 7px; -} -@media all and (min-width: 768px) { - .list-block.tablet-inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 7px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 7px 7px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 7px 7px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 7px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 7px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 7px 7px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 7px 7px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 7px; - } -} -.list-block li { - box-sizing: border-box; - position: relative; -} -.list-block .item-media { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - box-sizing: border-box; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - padding-top: 7px; - padding-bottom: 8px; -} -.list-block .item-media i + i { - margin-left: 5px; -} -.list-block .item-media i + img { - margin-left: 5px; -} -.list-block .item-media + .item-inner { - margin-left: 15px; -} -.list-block .item-inner { - padding-right: 15px; - position: relative; - width: 100%; - padding-top: 8px; - padding-bottom: 7px; - min-height: 44px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-flex: 1; - -ms-flex: 1; - overflow: hidden; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-title { - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - min-width: 0; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - max-width: 100%; -} -.list-block .item-after { - white-space: nowrap; - color: #8e8e93; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 5px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - max-height: 28px; -} -.list-block .smart-select .item-after, -.list-block .autocomplete-opener .item-after { - max-width: 70%; - overflow: hidden; - text-overflow: ellipsis; - position: relative; - display: block; -} -.list-block .item-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: block; - color: inherit; -} -.list-block .item-link .item-inner { - padding-right: 35px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; - background-repeat: no-repeat; - background-position: 95% center; - background-position: -webkit-calc(100% - 15px) center; - background-position: calc(100% - 15px) center; -} -html:not(.watch-active-state) .list-block .item-link:active, -.list-block .item-link.active-state { - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background-color: #d9d9d9; -} -html:not(.watch-active-state) .list-block .item-link:active .item-inner:after, -.list-block .item-link.active-state .item-inner:after { - background-color: transparent; -} -.list-block .item-link.list-button { - padding: 0 15px; - text-align: center; - color: #007aff; - display: block; - line-height: 43px; -} -.list-block .item-link.list-button:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-link.list-button:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-link.list-button:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-content { - box-sizing: border-box; - padding-left: 15px; - min-height: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.list-block .list-block-label { - margin: 10px 0 35px; - padding: 0 15px; - font-size: 14px; - color: #8f8f94; -} -.list-block .swipeout { - overflow: hidden; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.list-block .swipeout.deleting { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block .swipeout.deleting .swipeout-content { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout.transitioning .swipeout-content, -.list-block .swipeout.transitioning .swipeout-actions-right a, -.list-block .swipeout.transitioning .swipeout-actions-left a, -.list-block .swipeout.transitioning .swipeout-overswipe { - -webkit-transition: 300ms; - transition: 300ms; -} -.list-block .swipeout-content { - position: relative; - z-index: 10; -} -.list-block .swipeout-overswipe { - -webkit-transition: 200ms left; - transition: 200ms left; -} -.list-block .swipeout-actions-left, -.list-block .swipeout-actions-right { - position: absolute; - top: 0; - height: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; -} -.list-block .swipeout-actions-left a, -.list-block .swipeout-actions-right a { - padding: 0 30px; - color: #fff; - background: #c7c7cc; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - position: relative; - left: 0; -} -.list-block .swipeout-actions-left a:after, -.list-block .swipeout-actions-right a:after { - content: ''; - position: absolute; - top: 0; - width: 600%; - height: 100%; - background: inherit; - z-index: -1; -} -.list-block .swipeout-actions-left a.swipeout-delete, -.list-block .swipeout-actions-right a.swipeout-delete { - background: #ff3b30; -} -.list-block .swipeout-actions-right { - right: 0%; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} -.list-block .swipeout-actions-right a:after { - left: 100%; - margin-left: -1px; -} -.list-block .swipeout-actions-left { - left: 0%; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout-actions-left a:after { - right: 100%; - margin-right: -1px; -} -.list-block .item-subtitle { - font-size: 15px; - position: relative; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - text-overflow: ellipsis; -} -.list-block .item-text { - font-size: 15px; - color: #8e8e93; - line-height: 21px; - position: relative; - overflow: hidden; - height: 42px; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - display: -webkit-box; -} -.list-block.media-list .item-title, -.list-block li.media-item .item-title { - font-weight: 500; -} -html.ios-gt-8 .list-block.media-list .item-title, -html.ios-gt-8 .list-block li.media-item .item-title { - font-weight: 600; -} -.list-block.media-list .item-inner, -.list-block li.media-item .item-inner { - display: block; - padding-top: 10px; - padding-bottom: 9px; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block.media-list .item-link .item-inner, -.list-block li.media-item .item-link .item-inner { - background: none; - padding-right: 15px; -} -.list-block.media-list .item-link .item-title-row, -.list-block li.media-item .item-link .item-title-row { - padding-right: 20px; - background: no-repeat right center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; -} -.list-block.media-list .item-media, -.list-block li.media-item .item-media { - padding-top: 9px; - padding-bottom: 10px; -} -.list-block.media-list .item-media img, -.list-block li.media-item .item-media img { - display: block; -} -.list-block.media-list .item-title-row, -.list-block li.media-item .item-title-row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.list-block.media-list .item-content > .item-after, -.list-block li.media-item .item-content > .item-after { - margin-right: 15px; - margin-left: 15px; -} -.list-block .list-group ul:after, -.list-block .list-group ul:before { - z-index: 25; -} -.list-block .list-group + .list-group ul:before { - display: none; -} -.list-block .item-divider, -.list-block .list-group-title { - background: #F7F7F7; - margin-top: -1px; - padding: 4px 15px; - white-space: nowrap; - position: relative; - max-width: 100%; - text-overflow: ellipsis; - overflow: hidden; - color: #8e8e93; - z-index: 15; -} -.list-block .item-divider:before, -.list-block .list-group-title:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block .item-divider:before, -html.pixel-ratio-2 .list-block .list-group-title:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-divider:before, -html.pixel-ratio-3 .list-block .list-group-title:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .list-group-title { - position: relative; - position: -webkit-sticky; - position: -moz-sticky; - position: sticky; - top: 0px; - z-index: 20; - margin-top: 0; -} -.list-block .list-group-title:before { - display: none; -} -.list-block .sortable-handler { - position: absolute; - right: 0; - top: 0; - bottom: 1px; - z-index: 10; - background-repeat: no-repeat; - background-size: 18px 12px; - background-position: center; - width: 35px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2018%2012'%20fill%3D'%23c7c7cc'%3E%3Cpath%20d%3D'M0%2C2V0h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C7V5h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C12v-2h22v2H0z'%2F%3E%3C%2Fsvg%3E"); - opacity: 0; - visibility: hidden; - cursor: pointer; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable .item-inner { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable-opened .sortable-handler { - visibility: visible; - opacity: 1; -} -.list-block.sortable-opened .item-inner, -.list-block.sortable-opened .item-link .item-inner { - padding-right: 35px; -} -.list-block.sortable-opened .item-link .item-inner, -.list-block.sortable-opened .item-link .item-title-row { - background-image: none; -} -.list-block.sortable-sorting li { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block li.sorting { - z-index: 50; - background: rgba(255, 255, 255, 0.8); - box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.6); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.list-block li.sorting .item-inner:after { - display: none; -} -.list-block li:last-child .list-button:after { - display: none; -} -.list-block li:last-child .item-inner:after, -.list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.list-block li li:last-child .item-inner:after, -.list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block.no-hairlines:before, -.list-block.no-hairlines ul:before, -.list-block.no-hairlines .content-block-inner:before { - display: none; -} -.list-block.no-hairlines:after, -.list-block.no-hairlines ul:after, -.list-block.no-hairlines .content-block-inner:after { - display: none; -} -.list-block.no-hairlines-between .item-inner:after, -.list-block.no-hairlines-between .list-button:after, -.list-block.no-hairlines-between .item-divider:after, -.list-block.no-hairlines-between .list-group-title:after, -.list-block.no-hairlines-between .list-group-title:after { - display: none; -} -/* === Forms === */ -.list-block input[type="text"], -.list-block input[type="password"], -.list-block input[type="search"], -.list-block input[type="email"], -.list-block input[type="tel"], -.list-block input[type="url"], -.list-block input[type="date"], -.list-block input[type="datetime-local"], -.list-block input[type="time"], -.list-block input[type="number"], -.list-block select, -.list-block textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0 0 0 0; - box-shadow: none; - display: block; - padding: 0px; - margin: 0; - width: 100%; - height: 43px; - color: #000; - font-size: 17px; - font-family: inherit; -} -.list-block .item-title.label { - vertical-align: top; -} -.list-block .item-title.label + .item-input { - margin-left: 5px; -} -.list-block input[type="date"], -.list-block input[type="datetime-local"] { - line-height: 44px; -} -.list-block select { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -.list-block textarea { - height: 100px; - resize: none; - line-height: 1.4; - padding-top: 8px; - padding-bottom: 7px; -} -.list-block textarea.resizable { - height: 43px; -} -.list-block .item-input { - width: 100%; - margin-top: -8px; - margin-bottom: -7px; - -webkit-box-flex: 1; - -ms-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.list-block .item-title.label { - width: 35%; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.label-switch { - display: inline-block; - vertical-align: middle; - width: 52px; - border-radius: 16px; - box-sizing: border-box; - height: 32px; - position: relative; - cursor: pointer; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.label-switch .checkbox { - width: 52px; - border-radius: 16px; - box-sizing: border-box; - height: 32px; - background: #e5e5e5; - z-index: 0; - margin: 0; - padding: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - cursor: pointer; - position: relative; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch .checkbox:before { - content: ' '; - position: absolute; - left: 2px; - top: 2px; - width: 48px; - border-radius: 16px; - box-sizing: border-box; - height: 28px; - background: #fff; - z-index: 1; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: scale(1); - transform: scale(1); -} -.label-switch .checkbox:after { - content: ' '; - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - position: absolute; - z-index: 2; - top: 2px; - left: 2px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch input[type="checkbox"] { - display: none; -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: #4cd964; -} -.label-switch input[type="checkbox"]:checked + .checkbox:before { - -webkit-transform: scale(0); - transform: scale(0); -} -.label-switch input[type="checkbox"]:checked + .checkbox:after { - -webkit-transform: translateX(20px); - transform: translateX(20px); -} -html.android .label-switch input[type="checkbox"] + .checkbox { - -webkit-transition-duration: 0; - transition-duration: 0; -} -html.android .label-switch input[type="checkbox"] + .checkbox:after, -html.android .label-switch input[type="checkbox"] + .checkbox:before { - -webkit-transition-duration: 0; - transition-duration: 0; -} -.button { - border: 1px solid #aa5252; - color: #aa5252; - text-decoration: none; - text-align: center; - display: block; - border-radius: 5px; - line-height: 27px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 29px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - font-size: 14px; - font-family: inherit; - cursor: pointer; - outline: 0; -} -input[type="submit"].button, -input[type="button"].button { - width: 100%; -} -html:not(.watch-active-state) .button:active, -.button.active-state { - background: rgba(170, 82, 82, 0.15); -} -.button.button-round { - border-radius: 27px; -} -.button.active { - background: #aa5252; - color: #fff; -} -.button.button-big { - font-size: 17px; - height: 44px; - line-height: 42px; -} -.button.button-fill { - color: #fff; - background: #aa5252; - border-color: transparent; -} -html:not(.watch-active-state) .button.button-fill:active, -.button.button-fill.active-state { - opacity: 0.8; -} -.button i.icon:first-child { - margin-right: 10px; -} -.button i.icon:last-child { - margin-left: 10px; -} -.button i.icon:first-child:last-child { - margin-left: 0; - margin-right: 0; -} -.buttons-row { - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.buttons-row .button { - border-radius: 0 0 0 0; - border-left-width: 0; - width: 100%; - -webkit-box-flex: 1; - -ms-flex: 1; -} -.buttons-row .button:first-child { - border-radius: 5px 0 0 5px; - border-left-width: 1px; - border-left-style: solid; -} -.buttons-row .button:last-child { - border-radius: 0 5px 5px 0; -} -.buttons-row .button:first-child:last-child { - border-radius: 5px; -} -.buttons-row .button.button-round:first-child { - border-radius: 27px 0 0 27px; -} -.buttons-row .button.button-round:last-child { - border-radius: 0 27px 27px 0; -} -.range-slider { - width: 100%; - position: relative; - overflow: hidden; - padding-left: 3px; - padding-right: 3px; - margin-left: -1px; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.range-slider input[type="range"] { - position: relative; - height: 28px; - width: 100%; - margin: 4px 0 5px 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: -webkit-gradient(linear, 50% 0, 50% 100%, color-stop(0, #b7b8b7), color-stop(100%, #b7b8b7)); - background: linear-gradient(to right, #b7b8b7 0, #b7b8b7 100%); - background-position: center; - background-size: 100% 2px; - background-repeat: no-repeat; - outline: 0; - border: none; - box-sizing: content-box; - -ms-background-position-y: 500px; -} -.range-slider input[type="range"]:focus, -.range-slider input[type="range"]:active { - border: 0; - outline: 0; -} -.range-slider input[type="range"]:after { - height: 2px; - background: #fff; - content: ' '; - width: 5px; - top: 50%; - margin-top: -1px; - left: -5px; - z-index: 1; - position: absolute; -} -.range-slider input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - height: 28px; - width: 28px; - position: relative; - background: none; -} -.range-slider input[type="range"]::-webkit-slider-thumb:after { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - box-sizing: border-box; - content: ' '; - left: 0; - top: 0; -} -.range-slider input[type="range"]::-webkit-slider-thumb:before { - position: absolute; - top: 50%; - right: 100%; - width: 2000px; - height: 2px; - margin-top: -1px; - z-index: 1; - background: #aa5252; - content: ' '; -} -.range-slider input[type="range"]::-moz-range-track { - width: 100%; - height: 2px; - background: #b7b8b7; - border: none; - outline: 0; -} -.range-slider input[type="range"]::-moz-range-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - box-sizing: border-box; - content: ' '; -} -.range-slider input[type="range"]::-ms-track { - width: 100%; - height: 2px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; -} -.range-slider input[type="range"]::-ms-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - content: ' '; - box-shadow: none; - border: 1px solid rgba(0, 0, 0, 0.2); - box-sizing: border-box; - margin-top: 0; - top: 50%; -} -.range-slider input[type="range"]::-ms-fill-lower { - background: #aa5252; -} -.range-slider input[type="range"]::-ms-fill-upper { - background: #b7b8b7; -} -label.label-checkbox { - cursor: pointer; -} -label.label-checkbox i.icon-form-checkbox { - width: 22px; - height: 22px; - position: relative; - border-radius: 22px; - border: 1px solid #c7c7cc; - box-sizing: border-box; -} -label.label-checkbox i.icon-form-checkbox:after { - content: ' '; - position: absolute; - left: 50%; - margin-left: -6px; - top: 50%; - margin-top: -4px; - width: 12px; - height: 9px; -} -label.label-checkbox input[type="checkbox"], -label.label-checkbox input[type="radio"] { - display: none; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox { - border: none; - background-color: #aa5252; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox:after { - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2012%209'%20xml%3Aspace%3D'preserve'%3E%3Cpolygon%20fill%3D'%23ffffff'%20points%3D'12%2C0.7%2011.3%2C0%203.9%2C7.4%200.7%2C4.2%200%2C4.9%203.9%2C8.8%203.9%2C8.8%203.9%2C8.8%20'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 12px 9px; - background-size: 12px 9px; -} -label.label-radio { - cursor: pointer; -} -label.label-radio input[type="checkbox"], -label.label-radio input[type="radio"] { - display: none; -} -label.label-radio input[type="checkbox"] ~ .item-inner, -label.label-radio input[type="radio"] ~ .item-inner { - padding-right: 35px; -} -label.label-radio input[type="checkbox"]:checked ~ .item-inner, -label.label-radio input[type="radio"]:checked ~ .item-inner { - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2013%2010'%3E%3Cpolygon%20fill%3D'%23aa5252'%20points%3D'11.6%2C0%204.4%2C7.2%201.4%2C4.2%200%2C5.6%204.4%2C10%204.4%2C10%204.4%2C10%2013%2C1.4%20'%2F%3E%3C%2Fsvg%3E"); - background-position: 90% center; - background-position: -webkit-calc(100% - 15px) center; - background-position: calc(100% - 15px) center; - -webkit-background-size: 13px 10px; - background-size: 13px 10px; -} -label.label-checkbox, -label.label-radio { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -html:not(.watch-active-state) label.label-checkbox:active, -html:not(.watch-active-state) label.label-radio:active, -label.label-checkbox.active-state, -label.label-radio.active-state { - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background-color: #d9d9d9; -} -html:not(.watch-active-state) label.label-checkbox:active .item-inner:after, -html:not(.watch-active-state) label.label-radio:active .item-inner:after, -label.label-checkbox.active-state .item-inner:after, -label.label-radio.active-state .item-inner:after { - background-color: transparent; -} -.smart-select select { - display: none; -} -/* === Cards === */ -.cards-list ul, -.card .list-block ul { - background: none; -} -.cards-list > ul:before, -.card .list-block > ul:before { - display: none; -} -.cards-list > ul:after, -.card .list-block > ul:after { - display: none; -} -.card { - background: #fff; - box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3); - margin: 10px; - position: relative; - border-radius: 2px; - font-size: 14px; -} -.card .list-block, -.card .content-block { - margin: 0; -} -.row:not(.no-gutter) .col > .card { - margin-left: 0; - margin-right: 0; -} -.card-content { - position: relative; -} -.card-content-inner { - padding: 15px; - position: relative; -} -.card-content-inner > p:first-child { - margin-top: 0; -} -.card-content-inner > p:last-child { - margin-bottom: 0; -} -.card-content-inner > .list-block, -.card-content-inner > .content-block { - margin: -15px; -} -.card-header, -.card-footer { - min-height: 44px; - position: relative; - padding: 10px 15px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.card-header[valign="top"], -.card-footer[valign="top"] { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.card-header[valign="bottom"], -.card-footer[valign="bottom"] { - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.card-header a.link, -.card-footer a.link { - line-height: 44px; - height: 44px; - text-decoration: none; - position: relative; - margin-top: -10px; - margin-bottom: -10px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -html:not(.watch-active-state) .card-header a.link:active, -html:not(.watch-active-state) .card-footer a.link:active, -.card-header a.link.active-state, -.card-footer a.link.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.card-header a.link i + span, -.card-footer a.link i + span, -.card-header a.link i + i, -.card-footer a.link i + i, -.card-header a.link span + i, -.card-footer a.link span + i, -.card-header a.link span + span, -.card-footer a.link span + span { - margin-left: 7px; -} -.card-header a.link i.icon, -.card-footer a.link i.icon { - display: block; -} -.card-header a.icon-only, -.card-footer a.icon-only { - min-width: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - margin: 0; -} -.card-header { - border-radius: 2px 2px 0 0; - font-size: 17px; -} -.card-header:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #e1e1e1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .card-header:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .card-header:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.card-header.no-border:after { - display: none; -} -.card-footer { - border-radius: 0 0 2px 2px; - color: #6d6d72; -} -.card-footer:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #e1e1e1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .card-footer:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .card-footer:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.card-footer.no-border:before { - display: none; -} -/* === Modals === */ -.modal-overlay, -.preloader-indicator-overlay, -.popup-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.4); - z-index: 13000; - visibility: hidden; - opacity: 0; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.modal-overlay.modal-overlay-visible, -.preloader-indicator-overlay.modal-overlay-visible, -.popup-overlay.modal-overlay-visible { - visibility: visible; - opacity: 1; -} -.popup-overlay { - z-index: 10500; -} -.modal { - width: 270px; - position: absolute; - z-index: 13500; - left: 50%; - margin-left: -135px; - margin-top: 0; - top: 50%; - text-align: center; - border-radius: 13px; - overflow: hidden; - opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -ms-transition-property: -ms-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - color: #000; - display: none; -} -.modal.modal-in { - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal.modal-out { - opacity: 0; - z-index: 13499; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal-inner { - padding: 15px; - border-radius: 13px 13px 0 0; - position: relative; - background: rgba(255, 255, 255, 0.95); -} -.modal-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .modal-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .modal-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.modal-title { - font-weight: 500; - font-size: 18px; - text-align: center; -} -html.ios-gt-8 .modal-title { - font-weight: 600; -} -.modal-title + .modal-text { - margin-top: 5px; -} -.modal-buttons { - height: 44px; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; -} -.modal-buttons.modal-buttons-vertical { - display: block; - height: auto; -} -.modal-button { - width: 100%; - padding: 0 5px; - height: 44px; - font-size: 17px; - line-height: 44px; - text-align: center; - color: #aa5252; - display: block; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - cursor: pointer; - box-sizing: border-box; - -webkit-box-flex: 1; - -ms-flex: 1; - background: rgba(255, 255, 255, 0.95); -} -.modal-button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .modal-button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .modal-button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.modal-button:first-child { - border-radius: 0 0 0 13px; -} -.modal-button:last-child { - border-radius: 0 0 13px 0; -} -.modal-button:last-child:after { - display: none; -} -.modal-button:first-child:last-child { - border-radius: 0 0 13px 13px; -} -.modal-button.modal-button-bold { - font-weight: 500; -} -html.ios-gt-8 .modal-button.modal-button-bold { - font-weight: 600; -} -html:not(.watch-active-state) .modal-button:active, -.modal-button.active-state { - background: rgba(230, 230, 230, 0.95); -} -.modal-buttons-vertical .modal-button { - border-radius: 0; -} -.modal-buttons-vertical .modal-button:after { - display: none; -} -.modal-buttons-vertical .modal-button:before { - display: none; -} -.modal-buttons-vertical .modal-button:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .modal-buttons-vertical .modal-button:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .modal-buttons-vertical .modal-button:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.modal-buttons-vertical .modal-button:last-child { - border-radius: 0 0 13px 13px; -} -.modal-buttons-vertical .modal-button:last-child:after { - display: none; -} -.modal-no-buttons .modal-inner { - border-radius: 13px; -} -.modal-no-buttons .modal-inner:after { - display: none; -} -.modal-no-buttons .modal-buttons { - display: none; -} -.actions-modal { - position: absolute; - left: 0; - bottom: 0; - z-index: 13500; - width: 100%; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 100%; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -@media (min-width: 496px) { - .actions-modal { - width: 480px; - left: 50%; - margin-left: -240px; - } -} -.actions-modal.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal.modal-out { - z-index: 13499; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.actions-modal-group { - margin: 8px; - position: relative; - border-radius: 13px; - overflow: hidden; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal-button, -.actions-modal-label { - width: 100%; - text-align: center; - font-weight: normal; - margin: 0; - background: rgba(255, 255, 255, 0.95); - box-sizing: border-box; - display: block; - position: relative; - overflow: hidden; -} -.actions-modal-button:after, -.actions-modal-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-modal-button:after, -html.pixel-ratio-2 .actions-modal-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-modal-button:after, -html.pixel-ratio-3 .actions-modal-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-modal-button a, -.actions-modal-label a { - text-decoration: none; - color: inherit; - display: block; -} -.actions-modal-button b, -.actions-modal-label b { - font-weight: 500; -} -html.ios-gt-8 .actions-modal-button b, -html.ios-gt-8 .actions-modal-label b { - font-weight: 600; -} -.actions-modal-button.actions-modal-button-bold, -.actions-modal-label.actions-modal-button-bold { - font-weight: 500; -} -html.ios-gt-8 .actions-modal-button.actions-modal-button-bold, -html.ios-gt-8 .actions-modal-label.actions-modal-button-bold { - font-weight: 600; -} -.actions-modal-button.actions-modal-button-red, -.actions-modal-label.actions-modal-button-red { - color: #ff3b30; -} -.actions-modal-button:first-child, -.actions-modal-label:first-child { - border-radius: 13px 13px 0 0; -} -.actions-modal-button:last-child, -.actions-modal-label:last-child { - border-radius: 0 0 13px 13px; -} -.actions-modal-button:last-child:after, -.actions-modal-label:last-child:after { - display: none; -} -.actions-modal-button:first-child:last-child, -.actions-modal-label:first-child:last-child { - border-radius: 13px; -} -.actions-modal-button.disabled, -.actions-modal-label.disabled { - opacity: 0.9; - color: #8e8e93; -} -.actions-modal-button { - cursor: pointer; - height: 57px; - line-height: 57px; - font-size: 20px; - color: #aa5252; - white-space: normal; - text-overflow: ellipsis; -} -html:not(.watch-active-state) .actions-modal-button:active, -.actions-modal-button.active-state { - background: rgba(230, 230, 230, 0.9); -} -.actions-modal-label { - font-size: 13px; - line-height: 1.3; - min-height: 57px; - padding: 8px 10px; - color: #8a8a8a; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -@media (orientation: landscape) { - .actions-modal-label { - min-height: 44px; - } - .actions-modal-button { - height: 44px; - line-height: 44px; - } -} -input.modal-text-input { - box-sizing: border-box; - height: 26px; - background: #fff; - margin: 0; - margin-top: 15px; - padding: 0 5px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 0; - width: 100%; - font-size: 14px; - font-family: inherit; - display: block; - box-shadow: 0 0 0 rgba(0, 0, 0, 0); - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -input.modal-text-input + input.modal-text-input { - margin-top: 5px; -} -.modal-input-double + .modal-input-double input.modal-text-input { - border-top: 0; - margin-top: 0; -} -.popover { - width: 320px; - background: rgba(255, 255, 255, 0.95); - z-index: 13500; - margin: 0; - top: 0; - opacity: 0; - left: 0; - border-radius: 13px; - position: absolute; - display: none; - -webkit-transform: none; - transform: none; - -webkit-transition-property: opacity; - -moz-transition-property: opacity; - -ms-transition-property: opacity; - -o-transition-property: opacity; - transition-property: opacity; -} -.popover.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 1; -} -.popover .list-block { - margin: 0; -} -.popover .list-block ul { - background: none; -} -.popover .list-block:first-child ul { - border-radius: 13px 13px 0 0; -} -.popover .list-block:first-child ul:before { - display: none; -} -.popover .list-block:first-child li:first-child a { - border-radius: 13px 13px 0 0; -} -.popover .list-block:last-child ul { - border-radius: 0 0 13px 13px; -} -.popover .list-block:last-child ul:after { - display: none; -} -.popover .list-block:last-child li:last-child a { - border-radius: 0 0 13px 13px; -} -.popover .list-block:first-child:last-child li:first-child:last-child a, -.popover .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 13px; -} -.popover .list-block + .list-block { - margin-top: 35px; -} -.popover-angle { - width: 26px; - height: 26px; - position: absolute; - left: -26px; - top: 0; - z-index: 100; - overflow: hidden; -} -.popover-angle:after { - content: ' '; - background: rgba(255, 255, 255, 0.95); - width: 26px; - height: 26px; - position: absolute; - left: 0; - top: 0; - border-radius: 3px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} -.popover-angle.on-left { - left: -26px; -} -.popover-angle.on-left:after { - left: 19px; - top: 0; -} -.popover-angle.on-right { - left: 100%; -} -.popover-angle.on-right:after { - left: -19px; - top: 0; -} -.popover-angle.on-top { - left: 0; - top: -26px; -} -.popover-angle.on-top:after { - left: 0; - top: 19px; -} -.popover-angle.on-bottom { - left: 0; - top: 100%; -} -.popover-angle.on-bottom:after { - left: 0; - top: -19px; -} -.popover-inner { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-popover .list-block + .list-block { - margin-top: 20px; -} -.actions-popover .list-block ul { - background: #fff; -} -.actions-popover-label { - padding: 8px 10px; - color: #8a8a8a; - font-size: 13px; - line-height: 1.3; - text-align: center; - position: relative; -} -.actions-popover-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-popover-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-popover-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-popover-label:last-child:after { - display: none; -} -.popup, -.login-screen { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 11000; - background: #fff; - box-sizing: border-box; - display: none; - overflow: auto; - -webkit-overflow-scrolling: touch; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.popup.modal-in, -.login-screen.modal-in, -.popup.modal-out, -.login-screen.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.popup.modal-in, -.login-screen.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.popup.modal-out, -.login-screen.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.login-screen.modal-in, -.login-screen.modal-out { - display: block; -} -@media all and (min-width: 630px) and (min-height: 630px) { - .popup:not(.tablet-fullscreen) { - width: 630px; - height: 630px; - left: 50%; - top: 50%; - margin-left: -315px; - margin-top: -315px; - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } - .popup:not(.tablet-fullscreen).modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - .popup:not(.tablet-fullscreen).modal-out { - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } -} -@media all and (max-width: 629px), (max-height: 629px) { - html.with-statusbar-overlay .popup { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; - } - html.with-statusbar-overlay .popup-overlay { - z-index: 9500; - } -} -html.with-statusbar-overlay .login-screen, -html.with-statusbar-overlay .popup.tablet-fullscreen { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; -} -.modal .preloader { - width: 34px; - height: 34px; -} -.preloader-indicator-overlay { - visibility: visible; - opacity: 0; - background: none; -} -.preloader-indicator-modal { - position: absolute; - left: 50%; - top: 50%; - padding: 8px; - margin-left: -25px; - margin-top: -25px; - background: rgba(0, 0, 0, 0.8); - z-index: 13500; - border-radius: 5px; -} -.preloader-indicator-modal .preloader { - display: block; - width: 34px; - height: 34px; -} -.picker-modal { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 260px; - z-index: 12500; - display: none; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - background: #cfd5da; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal.modal-in, -.picker-modal.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.picker-modal.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal .picker-modal-inner { - height: 100%; - position: relative; -} -.picker-modal .toolbar { - position: relative; - width: 100%; - background: #f7f7f8; -} -.picker-modal .toolbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #929499; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-modal .toolbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal .toolbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-modal .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 44px); - height: -moz-calc(100% - 44px); - height: calc(100% - 44px); -} -.picker-modal.picker-modal-inline, -.popover .picker-modal { - display: block; - position: relative; - background: none; - z-index: inherit; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.picker-modal-inline .toolbar:before, -.popover .picker-modal .toolbar:before { - display: none; -} -.picker-modal.picker-modal-inline .toolbar:after, -.popover .picker-modal .toolbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #929499; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-modal.picker-modal-inline .toolbar:after, -html.pixel-ratio-2 .popover .picker-modal .toolbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal.picker-modal-inline .toolbar:after, -html.pixel-ratio-3 .popover .picker-modal .toolbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.popover .picker-modal { - width: auto; -} -.popover .picker-modal .toolbar { - background: none; -} -.picker-modal.smart-select-picker .page { - background: #fff; -} -.picker-modal.smart-select-picker .toolbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-modal.smart-select-picker .toolbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal.smart-select-picker .toolbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-modal.smart-select-picker .list-block { - margin: 0; -} -.picker-modal.smart-select-picker .list-block ul:before { - display: none; -} -.picker-modal.smart-select-picker .list-block ul:after { - display: none; -} -/* === Panels === */ -.panel-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0); - opacity: 0; - z-index: 5999; - display: none; -} -.panel { - z-index: 1000; - display: none; - background: #111; - box-sizing: border-box; - overflow: auto; - -webkit-overflow-scrolling: touch; - position: absolute; - width: 260px; - top: 0; - height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.panel.panel-left.panel-cover { - z-index: 6000; - left: -260px; -} -.panel.panel-left.panel-reveal { - left: 0; -} -.panel.panel-right.panel-cover { - z-index: 6000; - right: -260px; -} -.panel.panel-right.panel-reveal { - right: 0; -} -body.with-panel-left-cover .views, -body.with-panel-right-cover .views { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -body.with-panel-left-cover .panel-overlay, -body.with-panel-right-cover .panel-overlay { - display: block; -} -body.with-panel-left-reveal .views, -body.with-panel-right-reveal .views { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - transition-property: transform; -} -body.with-panel-left-reveal .panel-overlay, -body.with-panel-right-reveal .panel-overlay { - display: block; -} -body.with-panel-left-reveal .views { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-reveal .panel-overlay { - margin-left: 260px; -} -body.with-panel-left-cover .panel-left { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-right-reveal .views { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-reveal .panel-overlay { - margin-left: -260px; -} -body.with-panel-right-cover .panel-right { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.panel-closing .views { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - transition-property: transform; -} -/* === Tabs === */ -.tabs .tab { - display: none; -} -.tabs .tab.active { - display: block; -} -.tabs-animated-wrap { - position: relative; - width: 100%; - overflow: hidden; - height: 100%; -} -.tabs-animated-wrap > .tabs { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - height: 100%; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabs-animated-wrap > .tabs > .tab { - width: 100%; - display: block; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.tabs-swipeable-wrap { - height: 100%; -} -.tabs-swipeable-wrap > .tabs > .tab { - display: block; -} -/* === Messages === */ -.messages-content { - background: #fff; -} -.messages { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.messages-date { - text-align: center; - font-weight: 500; - font-size: 11px; - line-height: 1; - margin: 10px 15px; - color: #8e8e93; -} -html.ios-gt-8 .messages-date { - font-weight: 600; -} -.messages-date span { - font-weight: 400; -} -.message { - box-sizing: border-box; - margin: 1px 10px 0; - max-width: 70%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.message:first-child { - margin-top: 10px; -} -.message .message-text { - box-sizing: border-box; - border-radius: 16px; - padding: 6px 16px 9px; - min-width: 48px; - min-height: 35px; - font-size: 17px; - line-height: 1.2; - word-break: break-word; -} -.message .message-text img { - max-width: 100%; - height: auto; -} -.message.message-pic .message-text { - padding: 0; - background: none; -} -.message.message-pic img { - display: block; - border-radius: 16px; -} -.message-name { - font-size: 12px; - line-height: 1; - color: #8e8e93; - margin-bottom: 2px; - margin-top: 7px; -} -.message-hide-name .message-name { - display: none; -} -.message-label { - font-size: 12px; - line-height: 1; - color: #8e8e93; - margin-top: 4px; -} -.message-hide-label .message-label { - display: none; -} -.message-avatar { - width: 29px; - height: 29px; - border-radius: 100%; - margin-top: -29px; - position: relative; - top: 1px; - background-size: cover; - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.message-hide-avatar .message-avatar { - opacity: 0; -} -.message-date { - font-size: 12px; - margin-top: 4px; - opacity: 0.8; -} -.message-pic img + .message-date { - margin-top: 8px; -} -.message-sent .message-date { - text-align: right; -} -.message-sent { - -ms-flex-item-align: end; - -webkit-align-self: flex-end; - align-self: flex-end; - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.message-sent .message-name { - margin-right: 16px; -} -.message-sent .message-label { - margin-right: 6px; -} -.message-sent.message-with-avatar .message-text { - margin-right: 29px; -} -.message-sent.message-with-avatar .message-name { - margin-right: 45px; -} -.message-sent.message-with-avatar .message-label { - margin-right: 34px; -} -.message-sent .message-text { - padding-right: 22px; - background-color: #00d449; - color: white; - margin-left: auto; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; -} -.message-sent.message-last .message-text, -.message-sent.message-with-tail .message-text { - border-radius: 16px 16px 0 16px; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; -} -.message-sent.message-last.message-pic img, -.message-sent.message-with-tail.message-pic img { - border-radius: 16px 16px 0 16px; -} -.message-received { - -ms-flex-item-align: start; - -webkit-align-self: flex-start; - align-self: flex-start; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.message-received .message-text { - padding-left: 22px; - background-color: #e5e5ea; - color: #000; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; -} -.message-received .message-name { - margin-left: 16px; -} -.message-received .message-label { - margin-left: 6px; -} -.message-received.message-with-avatar .message-text { - margin-left: 29px; -} -.message-received.message-with-avatar .message-name { - margin-left: 45px; -} -.message-received.message-with-avatar .message-label { - margin-left: 34px; -} -.message-received.message-last .message-text, -.message-received.message-with-tail .message-text { - border-radius: 16px 16px 16px 0; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; -} -.message-received.message-last.message-pic img, -.message-received.message-with-tail.message-pic img { - border-radius: 16px 16px 16px 0; -} -.message-last { - margin-bottom: 8px; -} -.message-appear-from-bottom { - -webkit-animation: messageAppearFromBottom 400ms; - animation: messageAppearFromBottom 400ms; -} -.message-appear-from-top { - -webkit-animation: messageAppearFromTop 400ms; - animation: messageAppearFromTop 400ms; -} -.messages-auto-layout .message-name, -.messages-auto-layout .message-label { - display: none; -} -.messages-auto-layout .message-avatar { - opacity: 0; -} -.messages-auto-layout .message-first .message-name { - display: block; -} -.messages-auto-layout .message-last .message-avatar { - opacity: 1; -} -.messages-auto-layout .message-last .message-label { - display: block; -} -html.retina.ios-6 .message, -html.retina.ios-6 .message.message-pic img { - -webkit-mask-box-image: none; - border-radius: 16px; -} -@-webkit-keyframes messageAppearFromBottom { - from { - -webkit-transform: translate3d(0, 100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromBottom { - from { - transform: translate3d(0, 100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes messageAppearFromTop { - from { - -webkit-transform: translate3d(0, -100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromTop { - from { - transform: translate3d(0, -100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -/* === Statusbar overlay === */ -html.with-statusbar-overlay body { - padding-top: 20px; - box-sizing: border-box; -} -html.with-statusbar-overlay body .statusbar-overlay { - display: block; -} -html.with-statusbar-overlay body .panel { - padding-top: 20px; -} -.statusbar-overlay { - background: #f7f7f8; - z-index: 10000; - position: absolute; - left: 0; - top: 0; - height: 20px; - width: 100%; - display: none; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -/* === Preloader === */ -.preloader { - display: inline-block; - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); - background-position: 50%; - background-size: 100%; - background-repeat: no-repeat; - -webkit-animation: preloader-spin 1s steps(12, end) infinite; - animation: preloader-spin 1s steps(12, end) infinite; -} -@-webkit-keyframes preloader-spin { - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes preloader-spin { - 100% { - transform: rotate(360deg); - } -} -/* === Progress Bar === */ -.progressbar, -.progressbar-infinite { - height: 2px; - width: 100%; - overflow: hidden; - position: relative; - display: block; - background: #b6b6b6; - border-radius: 2px; - -webkit-transform-origin: center top; - transform-origin: center top; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.progressbar { - vertical-align: middle; -} -.progressbar span { - width: 100%; - background: #aa5252; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.progressbar-infinite:before { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #aa5252; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transform-origin: left center; - transform-origin: left center; - -webkit-animation: progressbar-infinite 1s linear infinite; - animation: progressbar-infinite 1s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite { - top: 20px; -} -.progressbar-infinite.color-multi { - background: none; -} -.progressbar-infinite.color-multi:before { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 400%; - height: 100%; - background-image: -webkit-linear-gradient(left, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); - background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); - background-size: 25% 100%; - background-repeat: repeat-x; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-animation: progressbar-infinite-multicolor 3s linear infinite; - animation: progressbar-infinite-multicolor 3s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite.color-multi, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite.color-multi { - top: 20px; -} -body > .progressbar, -.view > .progressbar, -.views > .progressbar, -.page > .progressbar, -.panel > .progressbar, -.popup > .progressbar, -.framework7-root > .progressbar, -body > .progressbar-infinite, -.view > .progressbar-infinite, -.views > .progressbar-infinite, -.page > .progressbar-infinite, -.panel > .progressbar-infinite, -.popup > .progressbar-infinite, -.framework7-root > .progressbar-infinite { - position: absolute; - left: 0; - top: 0; - z-index: 15000; - border-radius: 0; -} -.progressbar-in { - -webkit-animation: progressbar-in 300ms forwards; - animation: progressbar-in 300ms forwards; -} -.progressbar-out { - -webkit-animation: progressbar-out 300ms forwards; - animation: progressbar-out 300ms forwards; -} -html.with-statusbar-overlay body > .progressbar { - top: 20px; -} -@-webkit-keyframes progressbar-in { - from { - opacity: 0; - -webkit-transform: scaleY(0); - } - to { - opacity: 1; - -webkit-transform: scaleY(1); - } -} -@keyframes progressbar-in { - from { - opacity: 0; - transform: scaleY(0); - } - to { - opacity: 1; - transform: scaleY(1); - } -} -@-webkit-keyframes progressbar-out { - from { - opacity: 1; - -webkit-transform: scaleY(1); - } - to { - opacity: 0; - -webkit-transform: scaleY(0); - } -} -@keyframes progressbar-out { - from { - opacity: 1; - transform: scaleY(1); - } - to { - opacity: 0; - transform: scaleY(0); - } -} -@-webkit-keyframes progressbar-infinite { - 0% { - -webkit-transform: translate3d(-50%, 0, 0) scaleX(0.5); - } - 100% { - -webkit-transform: translate3d(100%, 0, 0) scaleX(0.5); - } -} -@keyframes progressbar-infinite { - 0% { - transform: translate3d(-50%, 0, 0) scaleX(0.5); - } - 100% { - transform: translate3d(100%, 0, 0) scaleX(0.5); - } -} -@-webkit-keyframes progressbar-infinite-multicolor { - from { - -webkit-transform: translate3d(0%, 0, 0); - } - to { - -webkit-transform: translate3d(-50%, 0, 0); - } -} -@keyframes progressbar-infinite-multicolor { - from { - transform: translate3d(0%, 0, 0); - } - to { - transform: translate3d(-50%, 0, 0); - } -} -/* === Swiper === */ -.swiper-container { - margin-left: auto; - margin-right: auto; - position: relative; - overflow: hidden; - /* Fix of Webkit flickering */ - z-index: 1; -} -.swiper-container-no-flexbox .swiper-slide { - float: left; -} -.swiper-container-vertical > .swiper-wrapper { - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.swiper-wrapper { - position: relative; - width: 100%; - height: 100%; - z-index: 1; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -.swiper-container-android .swiper-slide, -.swiper-wrapper { - -webkit-transform: translate3d(0px, 0, 0); - -moz-transform: translate3d(0px, 0, 0); - -o-transform: translate(0px, 0px); - -ms-transform: translate3d(0px, 0, 0); - transform: translate3d(0px, 0, 0); -} -.swiper-container-multirow > .swiper-wrapper { - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -ms-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - flex-wrap: wrap; -} -.swiper-container-free-mode > .swiper-wrapper { - -webkit-transition-timing-function: ease-out; - -moz-transition-timing-function: ease-out; - -ms-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; - margin: 0 auto; -} -.swiper-slide { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - width: 100%; - height: 100%; - position: relative; -} -/* Auto Height */ -.swiper-container-autoheight, -.swiper-container-autoheight .swiper-slide { - height: auto; -} -.swiper-container-autoheight .swiper-wrapper { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; - -webkit-transition-property: -webkit-transform, height; - -moz-transition-property: -moz-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform, height; -} -/* a11y */ -.swiper-container .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} -/* IE10 Windows Phone 8 Fixes */ -.swiper-wp8-horizontal { - -ms-touch-action: pan-y; - touch-action: pan-y; -} -.swiper-wp8-vertical { - -ms-touch-action: pan-x; - touch-action: pan-x; -} -/* Arrows */ -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: 50%; - width: 27px; - height: 44px; - margin-top: -22px; - z-index: 10; - cursor: pointer; - -moz-background-size: 27px 44px; - -webkit-background-size: 27px 44px; - background-size: 27px 44px; - background-position: center; - background-repeat: no-repeat; -} -.swiper-button-prev.swiper-button-disabled, -.swiper-button-next.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; -} -.swiper-button-prev, -.swiper-container-rtl .swiper-button-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); - left: 10px; - right: auto; -} -.swiper-button-next, -.swiper-container-rtl .swiper-button-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); - right: 10px; - left: auto; -} -/* Pagination Styles */ -.swiper-pagination { - position: absolute; - text-align: center; - -webkit-transition: 300ms; - -moz-transition: 300ms; - -o-transition: 300ms; - transition: 300ms; - -webkit-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - -o-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - z-index: 10; -} -.swiper-pagination.swiper-pagination-hidden { - opacity: 0; -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-container-horizontal > .swiper-pagination-bullets { - bottom: 10px; - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullet { - width: 8px; - height: 8px; - display: inline-block; - border-radius: 100%; - background: #000; - opacity: 0.2; -} -button.swiper-pagination-bullet { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - -moz-appearance: none; - -ms-appearance: none; - -webkit-appearance: none; - appearance: none; -} -.swiper-pagination-clickable .swiper-pagination-bullet { - cursor: pointer; -} -.swiper-pagination-bullet-active { - opacity: 1; - background: #007aff; -} -.swiper-container-vertical > .swiper-pagination-bullets { - right: 10px; - top: 50%; - -webkit-transform: translate3d(0px, -50%, 0); - -moz-transform: translate3d(0px, -50%, 0); - -o-transform: translate(0px, -50%); - -ms-transform: translate3d(0px, -50%, 0); - transform: translate3d(0px, -50%, 0); -} -.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { - margin: 5px 0; - display: block; -} -.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet { - margin: 0 5px; -} -/* Progress */ -.swiper-pagination-progress { - background: rgba(0, 0, 0, 0.25); - position: absolute; -} -.swiper-pagination-progress .swiper-pagination-progressbar { - background: #007aff; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - -webkit-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - -webkit-transform-origin: left top; - -moz-transform-origin: left top; - -ms-transform-origin: left top; - -o-transform-origin: left top; - transform-origin: left top; -} -.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar { - -webkit-transform-origin: right top; - -moz-transform-origin: right top; - -ms-transform-origin: right top; - -o-transform-origin: right top; - transform-origin: right top; -} -.swiper-container-horizontal > .swiper-pagination-progress { - width: 100%; - height: 4px; - left: 0; - top: 0; -} -.swiper-container-vertical > .swiper-pagination-progress { - width: 4px; - height: 100%; - left: 0; - top: 0; -} -/* 3D Container */ -.swiper-container-3d { - -webkit-perspective: 1200px; - -moz-perspective: 1200px; - -o-perspective: 1200px; - perspective: 1200px; -} -.swiper-container-3d .swiper-wrapper, -.swiper-container-3d .swiper-slide, -.swiper-container-3d .swiper-slide-shadow-left, -.swiper-container-3d .swiper-slide-shadow-right, -.swiper-container-3d .swiper-slide-shadow-top, -.swiper-container-3d .swiper-slide-shadow-bottom, -.swiper-container-3d .swiper-cube-shadow { - -webkit-transform-style: preserve-3d; - -moz-transform-style: preserve-3d; - -ms-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.swiper-container-3d .swiper-slide-shadow-left, -.swiper-container-3d .swiper-slide-shadow-right, -.swiper-container-3d .swiper-slide-shadow-top, -.swiper-container-3d .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; -} -.swiper-container-3d .swiper-slide-shadow-left { - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-right { - background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-top { - background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-bottom { - background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -/* Coverflow */ -.swiper-container-coverflow .swiper-wrapper, -.swiper-container-flip .swiper-wrapper { - /* Windows 8 IE 10 fix */ - -ms-perspective: 1200px; -} -/* Cube + Flip */ -.swiper-container-cube, -.swiper-container-flip { - overflow: visible; -} -.swiper-container-cube .swiper-slide, -.swiper-container-flip .swiper-slide { - pointer-events: none; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; -} -.swiper-container-cube .swiper-slide .swiper-slide, -.swiper-container-flip .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-container-cube .swiper-slide-active, -.swiper-container-flip .swiper-slide-active, -.swiper-container-cube .swiper-slide-active .swiper-slide-active, -.swiper-container-flip .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-container-cube .swiper-slide-shadow-top, -.swiper-container-flip .swiper-slide-shadow-top, -.swiper-container-cube .swiper-slide-shadow-bottom, -.swiper-container-flip .swiper-slide-shadow-bottom, -.swiper-container-cube .swiper-slide-shadow-left, -.swiper-container-flip .swiper-slide-shadow-left, -.swiper-container-cube .swiper-slide-shadow-right, -.swiper-container-flip .swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; -} -/* Cube */ -.swiper-container-cube .swiper-slide { - visibility: hidden; - -webkit-transform-origin: 0 0; - -moz-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - width: 100%; - height: 100%; -} -.swiper-container-cube.swiper-container-rtl .swiper-slide { - -webkit-transform-origin: 100% 0; - -moz-transform-origin: 100% 0; - -ms-transform-origin: 100% 0; - transform-origin: 100% 0; -} -.swiper-container-cube .swiper-slide-active, -.swiper-container-cube .swiper-slide-next, -.swiper-container-cube .swiper-slide-prev, -.swiper-container-cube .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; -} -.swiper-container-cube .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - background: #000; - opacity: 0.6; - -webkit-filter: blur(50px); - filter: blur(50px); - z-index: 0; -} -/* Fade */ -.swiper-container-fade.swiper-container-free-mode .swiper-slide { - -webkit-transition-timing-function: ease-out; - -moz-transition-timing-function: ease-out; - -ms-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.swiper-container-fade .swiper-slide { - pointer-events: none; - -webkit-transition-property: opacity; - -moz-transition-property: opacity; - -o-transition-property: opacity; - transition-property: opacity; -} -.swiper-container-fade .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-container-fade .swiper-slide-active, -.swiper-container-fade .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-zoom-container { - width: 100%; - height: 100%; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -moz-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -moz-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - text-align: center; -} -.swiper-zoom-container > img, -.swiper-zoom-container > svg, -.swiper-zoom-container > canvas { - max-width: 100%; - max-height: 100%; - object-fit: contain; -} -/* Scrollbar */ -.swiper-scrollbar { - border-radius: 10px; - position: relative; - -ms-touch-action: none; - background: rgba(0, 0, 0, 0.1); -} -.swiper-container-horizontal > .swiper-scrollbar { - position: absolute; - left: 1%; - bottom: 3px; - z-index: 50; - height: 5px; - width: 98%; -} -.swiper-container-vertical > .swiper-scrollbar { - position: absolute; - right: 3px; - top: 1%; - z-index: 50; - width: 5px; - height: 98%; -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: rgba(0, 0, 0, 0.5); - border-radius: 10px; - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -/* Preloader */ -.swiper-slide .preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; -} -/* === Columns Picker === */ -.picker-columns { - width: 100%; - height: 260px; - z-index: 11500; -} -.picker-columns.picker-modal-inline, -.popover .picker-columns { - height: 200px; -} -@media (orientation: landscape) and (max-height: 415px) { - .picker-columns:not(.picker-modal-inline) { - height: 200px; - } -} -.popover.popover-picker-columns { - width: 280px; -} -.picker-items { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - padding: 0; - text-align: right; - font-size: 24px; - -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); - -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); -} -.picker-items-col { - overflow: hidden; - position: relative; - max-height: 100%; -} -.picker-items-col.picker-items-col-left { - text-align: left; -} -.picker-items-col.picker-items-col-center { - text-align: center; -} -.picker-items-col.picker-items-col-right { - text-align: right; -} -.picker-items-col.picker-items-col-divider { - color: #000; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.picker-items-col-wrapper { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.picker-item { - height: 36px; - line-height: 36px; - padding: 0 10px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - color: #707274; - left: 0; - top: 0; - width: 100%; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.picker-items-col-absolute .picker-item { - position: absolute; -} -.picker-item.picker-item-far { - pointer-events: none; -} -.picker-item.picker-selected { - color: #000; - -webkit-transform: translate3d(0, 0, 0) rotateX(0deg); - transform: translate3d(0, 0, 0) rotateX(0deg); -} -.picker-center-highlight { - height: 36px; - box-sizing: border-box; - position: absolute; - left: 0; - width: 100%; - top: 50%; - margin-top: -18px; - pointer-events: none; -} -.picker-center-highlight:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #a8abb0; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-center-highlight:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-center-highlight:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #a8abb0; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-center-highlight:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-3d .picker-items { - overflow: hidden; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.picker-3d .picker-items-col, -.picker-3d .picker-items-col-wrapper, -.picker-3d .picker-item { - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.picker-3d .picker-items-col { - overflow: visible; -} -.picker-3d .picker-item { - -webkit-transform-origin: center center -110px; - transform-origin: center center -110px; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -/* === Notifications === */ -.notifications { - position: absolute; - left: 0; - top: 0; - width: 100%; - z-index: 20000; - font-size: 14px; - margin: 0; - border: none; - display: none; - box-sizing: border-box; - max-height: 100%; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-perspective: 1200px; - perspective: 1200px; - padding-top: 8px; - padding-bottom: 8px; -} -.notifications.list-block > ul { - background: none; - margin: 0 auto; - max-width: 584px; -} -.notifications.list-block > ul:before { - display: none; -} -.notifications.list-block > ul:after { - display: none; -} -.with-statusbar-overlay .notifications { - padding-top: 20px; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); -} -.notifications .item-content { - padding-left: 8px; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.notifications .item-title-row { - margin-bottom: 8px; -} -.notifications .item-title-row:before { - position: absolute; - left: 0; - top: 0; - height: 36px; - border-radius: 12px 12px 0 0; - z-index: -1; - background: #fff; - content: ''; - width: 100%; -} -.notifications .item-title { - font-weight: 400 !important; - height: 36px; - text-transform: uppercase; - line-height: 35px; - font-size: 13px; -} -html.ios-gt-8 .notifications .item-title { - font-weight: 400 !important; -} -.notifications .item-subtitle { - font-size: 15px; - font-weight: 500; -} -html.ios-gt-8 .notifications .item-subtitle { - font-weight: 600; -} -.notifications .item-text { - font-size: 14px; - color: inherit; - height: auto; - line-height: inherit; -} -.notifications .item-subtitle:first-child, -.notifications .item-text:first-child { - margin-top: 8px; -} -.notifications .item-content, -.notifications .item-inner { - min-height: 0; -} -.notifications .item-inner { - position: static; -} -.notifications .item-inner:after { - display: none; -} -.notifications .item-media { - width: 20px; -} -.notifications .item-media img { - max-width: 20px; - max-height: 20px; -} -.notifications .item-media i.icon { - width: 20px; - height: 20px; - -webkit-background-size: cover; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} -.notifications .item-media + .item-inner { - margin-left: 8px; - overflow: visible; -} -.notifications li.notification-item { - box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); -} -.notifications li.notification-item .item-inner { - padding-top: 0; -} -.notifications li.notification-item .item-media { - padding-top: 8px; -} -.notifications .item-after { - margin-top: auto; - margin-bottom: auto; -} -.notifications .close-notification { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2044%2044'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cg%20stroke%3D'none'%20stroke-width%3D'1'%20fill%3D'none'%20fill-rule%3D'evenodd'%3E%3Cpath%20d%3D'M22.5%2C20.3786797%20L14.7218254%2C12.6005051%20L12.6005051%2C14.7218254%20L20.3786797%2C22.5%20L12.6005051%2C30.2781746%20L14.7218254%2C32.3994949%20L22.5%2C24.6213203%20L30.2781746%2C32.3994949%20L32.3994949%2C30.2781746%20L24.6213203%2C22.5%20L32.3994949%2C14.7218254%20L30.2781746%2C12.6005051%20L22.5%2C20.3786797%20Z%20M22%2C44%20C34.1502645%2C44%2044%2C34.1502645%2044%2C22%20C44%2C9.8497355%2034.1502645%2C0%2022%2C0%20C9.8497355%2C0%200%2C9.8497355%200%2C22%20C0%2C34.1502645%209.8497355%2C44%2022%2C44%20Z'%20fill%3D'%23000000'%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E"); - background-position: center top; - background-repeat: no-repeat; - -webkit-background-size: 100% auto; - background-size: 100% auto; - position: relative; - opacity: 0.2; -} -.notifications .close-notification span { - position: absolute; - width: 44px; - height: 44px; - left: 50%; - top: 50%; - margin-left: -22px; - margin-top: -22px; -} -.notifications .notification-item { - max-width: 568px; - margin: 0 auto 8px; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - background: rgba(250, 250, 250, 0.95); - border-radius: 12px; - width: -webkit-calc(100% - 16px); - width: -moz-calc(100% - 16px); - width: calc(100% - 16px); - position: absolute; - left: 8px; - top: 0; -} -.notifications .notification-item:last-child { - margin-bottom: 0; -} -.notifications .notification-hidden { - opacity: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -/* === Disabled elements === */ -.disabled, -[disabled] { - opacity: 0.55; - pointer-events: none; -} -.disabled .disabled, -.disabled [disabled], -[disabled] .disabled, -[disabled] [disabled] { - opacity: 1; -} -* { - -webkit-user-select: none; - user-select: none; -} -input, -textarea { - -webkit-touch-callout: default; - -webkit-user-select: text; - user-select: text; -} -#editor-navbar.navbar .right a + a, -#editor-navbar.navbar .left a + a { - margin-left: 0; -} -html:not(.phone) #editor-navbar.navbar .right a + a, -html:not(.phone) #editor-navbar.navbar .left a + a { - margin-left: 10px; -} -.logo-navbar { - height: 68px; -} -.logo-navbar .navbar-inner { - top: 24px; - height: 44px; -} -.phone.ios .container-edit .navbar:before, -.phone.ios .container-collaboration .navbar:before, -.phone.ios .container-filter .navbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .phone.ios .container-edit .navbar:before, -html.pixel-ratio-2 .phone.ios .container-collaboration .navbar:before, -html.pixel-ratio-2 .phone.ios .container-filter .navbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .phone.ios .container-edit .navbar:before, -html.pixel-ratio-3 .phone.ios .container-collaboration .navbar:before, -html.pixel-ratio-3 .phone.ios .container-filter .navbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.phone.ios .container-edit .page-content .list-block:first-child, -.phone.ios .container-collaboration .page-content .list-block:first-child, -.phone.ios .container-filter .page-content .list-block:first-child { - margin-top: -1px; -} -.container-edit.popover, -.container-add.popover, -.container-settings.popover, -.container-collaboration.popover, -.container-filter.popover { - width: 360px; -} -.settings.popup .list-block ul, -.settings.popover .list-block ul { - border-radius: 0 !important; - background: #fff; -} -.settings.popup .list-block ul:last-child:after, -.settings.popover .list-block ul:last-child:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .settings.popup .list-block ul:last-child:after, -html.pixel-ratio-2 .settings.popover .list-block ul:last-child:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .settings.popup .list-block ul:last-child:after, -html.pixel-ratio-3 .settings.popover .list-block ul:last-child:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.settings.popup .list-block:first-child, -.settings.popover .list-block:first-child { - margin-top: 0; -} -.settings.popup .list-block:last-child, -.settings.popover .list-block:last-child { - margin-bottom: 30px; -} -.settings.popup .list-block li:first-child a, -.settings.popover .list-block li:first-child a, -.settings.popup .list-block li:last-child a, -.settings.popover .list-block li:last-child a { - border-radius: 0 !important; -} -.settings.popup > .content-block, -.settings.popover > .content-block, -.settings.popup .popover-inner > .content-block, -.settings.popover .popover-inner > .content-block { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - color: #000; -} -.settings.popup .popover-view, -.settings.popover .popover-view { - border-radius: 13px; -} -.settings.popup .popover-view > .pages, -.settings.popover .popover-view > .pages { - border-radius: 13px; -} -.settings.popup .content-block:first-child, -.settings.popover .content-block:first-child { - margin-top: 0; -} -.settings.popup .content-block:first-child .content-block-inner:before, -.settings.popover .content-block:first-child .content-block-inner:before { - height: 0; -} -.settings .categories { - width: 100%; -} -.settings .categories > .buttons-row { - width: 100%; -} -.settings .categories > .buttons-row .button { - padding: 0 1px; -} -.settings .popover-inner { - height: 400px; -} -.container-add .categories > .buttons-row .button { - display: flex; - justify-content: center; - align-items: center; -} -.container-add .categories > .buttons-row .button.active i.icon { - background-color: transparent; -} -.dataview.page-content { - background: #ffffff; -} -.dataview .row { - justify-content: space-around; -} -.dataview ul { - padding: 0 10px; - list-style: none; -} -.dataview ul li { - display: inline-block; -} -.dataview .active { - position: relative; - z-index: 1; -} -.dataview .active::after { - content: ''; - position: absolute; - width: 22px; - height: 22px; - right: -5px; - bottom: -5px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%2211%22%2F%3E%3Cpath%20d%3D%22M11%2C21A10%2C10%2C0%2C1%2C1%2C21%2C11%2C10%2C10%2C0%2C0%2C1%2C11%2C21h0ZM17.4%2C7.32L17.06%2C7a0.48%2C0.48%2C0%2C0%2C0-.67%2C0l-7%2C6.84L6.95%2C11.24a0.51%2C0.51%2C0%2C0%2C0-.59.08L6%2C11.66a0.58%2C0.58%2C0%2C0%2C0%2C0%2C.65l3.19%2C3.35a0.38%2C0.38%2C0%2C0%2C0%2C.39%2C0L17.4%2C8a0.48%2C0.48%2C0%2C0%2C0%2C0-.67h0Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.item-content .item-after.splitter { - color: #000; -} -.item-content .item-after.splitter label { - margin: 0 5px; -} -.item-content .item-after.splitter .buttons-row { - min-width: 90px; - margin-left: 10px; -} -.item-content .item-after.value { - display: block; - min-width: 60px; - color: #000000; - margin-left: 10px; - text-align: right; -} -.item-content .item-after input.field { - color: #aa5252; -} -.item-content .item-after input.field.placeholder-color::-webkit-input-placeholder { - color: #aa5252; -} -.item-content .item-after input.field.right { - text-align: right; -} -.item-content.buttons .item-inner { - padding-top: 0; - padding-bottom: 0; - align-items: stretch; -} -.item-content.buttons .item-inner > .row { - width: 100%; - align-items: stretch; -} -.item-content.buttons .item-inner > .row .button { - flex: 1; - border: none; - height: inherit; - border-radius: 0; - font-size: 17px; - display: flex; - align-items: center; - justify-content: center; -} -.item-content .item-after .color-preview { - width: 75px; - height: 30px; - margin-top: -3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-content i .color-preview { - width: 22px; - height: 8px; - display: inline-block; - margin-top: 21px; - box-sizing: border-box; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-link.no-indicator .item-inner { - background-image: none; - padding-right: 15px; -} -.list-block .item-link.list-button { - color: #aa5252; -} -.button.active i.icon { - background-color: #fff; -} -.document-menu { - background-color: rgba(0, 0, 0, 0.9); - width: auto; - border-radius: 8px; - z-index: 12500; -} -.document-menu .popover-angle:after { - background: rgba(0, 0, 0, 0.9); -} -.document-menu .list-block { - font-size: 14px; - white-space: pre; -} -.document-menu .list-block:first-child ul { - border-radius: 7px 0 0 7px; -} -.document-menu .list-block:first-child ul:before { - display: none; -} -.document-menu .list-block:first-child li:first-child a { - border-radius: 7px 0 0 7px; -} -.document-menu .list-block:last-child ul { - border-radius: 0 7px 7px 0; -} -.document-menu .list-block:last-child ul:after { - display: none; -} -.document-menu .list-block:last-child li:last-child a { - border-radius: 0 7px 7px 0; -} -.document-menu .list-block:first-child:last-child li:first-child:last-child a, -.document-menu .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 7px; -} -.document-menu .list-block .item-link { - display: inline-block; -} -html:not(.watch-active-state) .document-menu .list-block .item-link:active, -.document-menu .list-block .item-link.active-state { - background-color: #d9d9d9; -} -html:not(.watch-active-state) .document-menu .list-block .item-link:active .item-inner:after, -.document-menu .list-block .item-link.active-state .item-inner:after { - background-color: transparent; -} -html.phone .document-menu .list-block .item-link { - padding: 0 10px; -} -.document-menu .list-block .item-link.list-button { - color: #ffffff; - line-height: 36px; -} -.document-menu .list-block .item-link.list-button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(230, 230, 230, 0.9); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .document-menu .list-block .item-link.list-button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .document-menu .list-block .item-link.list-button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.document-menu .list-block li { - display: inline-block; -} -.document-menu .list-block li:last-child .list-button:after { - display: none; -} -.document-menu .list-block li:last-child .item-inner:after, -.document-menu .list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.document-menu .list-block li li:last-child .item-inner:after, -.document-menu .list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(230, 230, 230, 0.9); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .document-menu .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .document-menu .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .document-menu .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.document-menu .list-block.no-hairlines:before, -.document-menu .list-block.no-hairlines ul:before, -.document-menu .list-block.no-hairlines .content-block-inner:before { - display: none; -} -.document-menu .list-block.no-hairlines:after, -.document-menu .list-block.no-hairlines ul:after, -.document-menu .list-block.no-hairlines .content-block-inner:after { - display: none; -} -.document-menu .list-block.no-hairlines-between .item-inner:after, -.document-menu .list-block.no-hairlines-between .list-button:after, -.document-menu .list-block.no-hairlines-between .item-divider:after, -.document-menu .list-block.no-hairlines-between .list-group-title:after, -.document-menu .list-block.no-hairlines-between .list-group-title:after { - display: none; -} -.color-palette a { - flex-grow: 1; - position: relative; - min-width: 10px; - min-height: 26px; - margin: 1px 1px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-palette a.active:after { - content: ' '; - position: absolute; - width: 100%; - height: 100%; - box-shadow: 0 0 0 1px white, 0 0 0 4px #aa5252; - z-index: 1; - border-radius: 1px; -} -.color-palette a.transparent { - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2022%2022'%20xml%3Aspace%3D'preserve'%3E%3Cline%20stroke%3D'%23ff0000'%20stroke-linecap%3D'undefined'%20stroke-linejoin%3D'undefined'%20id%3D'svg_1'%20y2%3D'0'%20x2%3D'22'%20y1%3D'22'%20x1%3D'0'%20stroke-width%3D'2'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.color-palette .theme-colors .item-inner { - display: inline-block; - overflow: visible; -} -.color-palette .standart-colors .item-inner, -.color-palette .dynamic-colors .item-inner { - overflow: visible; -} -.custom-colors { - display: flex; - justify-content: space-around; - align-items: center; - margin: 15px; -} -.custom-colors.phone { - max-width: 300px; - margin: 0 auto; - margin-top: 4px; -} -.custom-colors.phone .button-round { - margin-top: 20px; -} -.custom-colors .right-block { - margin-left: 20px; -} -.custom-colors .button-round { - height: 72px; - width: 72px; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - border-radius: 100px; - background-color: #ffffff; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-color: transparent; - margin-top: 25px; -} -.custom-colors .button-round.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.custom-colors .color-hsb-preview { - width: 72px; - height: 72px; - border-radius: 100px; - overflow: hidden; - border: 1px solid #c4c4c4; -} -.custom-colors .new-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .current-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .list-block ul:before, -.custom-colors .list-block ul:after { - content: none; -} -.custom-colors .list-block ul li { - border: 1px solid rgba(0, 0, 0, 0.3); -} -.custom-colors .color-picker-wheel { - position: relative; - width: 290px; - max-width: 100%; - height: auto; - font-size: 0; -} -.custom-colors .color-picker-wheel svg { - width: 100%; - height: auto; -} -.custom-colors .color-picker-wheel .color-picker-wheel-handle { - width: calc(16.66666667%); - height: calc(16.66666667%); - position: absolute; - box-sizing: border-box; - border: 2px solid #fff; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); - background: red; - border-radius: 50%; - left: 0; - top: 0; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum { - background-color: #000; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); - position: relative; - width: 45%; - height: 45%; - left: 50%; - top: 50%; - transform: translate3d(-50%, -50%, 0); - position: absolute; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle { - width: 4px; - height: 4px; - position: absolute; - left: -2px; - top: -2px; - z-index: 1; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle:after { - background-color: inherit; - content: ''; - position: absolute; - width: 16px; - height: 16px; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); - box-sizing: border-box; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transition: 150ms; - transition-property: transform; - transform-origin: center; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after { - transform: scale(1.5) translate(-33.333%, -33.333%); -} -.about .page-content { - text-align: center; -} -.about .content-block:first-child { - margin: 15px 0; -} -.about .content-block { - margin: 0 auto 15px; -} -.about .content-block a { - color: #000; -} -.about h3 { - font-weight: normal; - margin: 0; -} -.about h3.vendor { - color: #000; - font-weight: bold; - margin-top: 15px; -} -.about p > label { - margin-right: 5px; -} -.about .logo { - background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center; - margin-top: 20px; -} -.color-schemes-menu { - cursor: pointer; - display: block; - background-color: #fff; -} -.color-schemes-menu .item-inner { - justify-content: flex-start; -} -.color-schemes-menu .color-schema-block { - display: flex; -} -.color-schemes-menu .color { - min-width: 26px; - min-height: 26px; - margin: 0 2px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-schemes-menu .text { - margin-left: 20px; - color: #212121; -} -.page-change { - background-color: #FFFFFF; -} -.page-change .block-description { - background-color: #fff; - padding-top: 15px; - padding-bottom: 15px; - margin: 0; - max-width: 100%; - word-wrap: break-word; -} -.page-change #user-name { - font-size: 17px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-change #date-change { - font-size: 14px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 3px; -} -.page-change #text-change { - color: #000000; - font-size: 15px; - line-height: 20px; - margin: 0; - margin-top: 10px; -} -.page-change .block-btn, -.page-change .content-block.block-btn:first-child { - position: absolute; - bottom: 0; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0; - width: 100%; - height: 44px; - align-items: center; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); -} -.page-change .block-btn #btn-reject-change, -.page-change .content-block.block-btn:first-child #btn-reject-change { - margin-left: 20px; -} -.page-change .block-btn #btn-goto-change, -.page-change .content-block.block-btn:first-child #btn-goto-change { - margin-left: 10px; -} -.page-change .block-btn .change-buttons, -.page-change .content-block.block-btn:first-child .change-buttons, -.page-change .block-btn .accept-reject, -.page-change .content-block.block-btn:first-child .accept-reject { - display: flex; -} -.page-change .block-btn .next-prev, -.page-change .content-block.block-btn:first-child .next-prev { - display: flex; -} -.page-change .block-btn .next-prev .link, -.page-change .content-block.block-btn:first-child .next-prev .link { - width: 44px; -} -.page-change .block-btn .link, -.page-change .content-block.block-btn:first-child .link { - position: relative; - display: flex; - justify-content: center; - align-items: center; - font-size: 17px; - height: 44px; - min-width: 44px; -} -.page-change #no-changes { - padding: 16px; -} -.navbar .center-collaboration { - display: flex; - justify-content: space-around; -} -.container-collaboration .navbar .right.close-collaboration { - position: absolute; - right: 10px; -} -.container-collaboration .page-content .list-block:first-child { - margin-top: -1px; -} -.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #8e8e93; -} -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 500; -} -#user-list ul:before { - content: none; -} -.page-comments .header-comment, -.add-comment .header-comment, -.page-view-comments .header-comment, -.container-edit-comment .header-comment, -.container-add-reply .header-comment, -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - display: flex; - justify-content: space-between; - padding-right: 16px; -} -.page-comments .header-comment .comment-right, -.add-comment .header-comment .comment-right, -.page-view-comments .header-comment .comment-right, -.container-edit-comment .header-comment .comment-right, -.container-add-reply .header-comment .comment-right, -.page-edit-comment .header-comment .comment-right, -.page-add-reply .header-comment .comment-right, -.page-edit-reply .header-comment .comment-right { - display: flex; - justify-content: space-between; - width: 70px; -} -.page-comments .list-block .item-inner, -.add-comment .list-block .item-inner, -.page-view-comments .list-block .item-inner, -.container-edit-comment .list-block .item-inner, -.container-add-reply .list-block .item-inner, -.page-edit-comment .list-block .item-inner, -.page-add-reply .list-block .item-inner, -.page-edit-reply .list-block .item-inner { - display: block; - padding: 16px 0; - word-wrap: break-word; -} -.page-comments .list-reply, -.add-comment .list-reply, -.page-view-comments .list-reply, -.container-edit-comment .list-reply, -.container-add-reply .list-reply, -.page-edit-comment .list-reply, -.page-add-reply .list-reply, -.page-edit-reply .list-reply { - padding-left: 26px; -} -.page-comments .reply-textarea, -.add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .comment-textarea, -.add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .edit-reply-textarea, -.add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - resize: vertical; -} -.page-comments .user-name, -.add-comment .user-name, -.page-view-comments .user-name, -.container-edit-comment .user-name, -.container-add-reply .user-name, -.page-edit-comment .user-name, -.page-add-reply .user-name, -.page-edit-reply .user-name { - font-size: 17px; - line-height: 22px; - color: #000000; - margin: 0; - font-weight: bold; -} -.page-comments .comment-date, -.add-comment .comment-date, -.page-view-comments .comment-date, -.container-edit-comment .comment-date, -.container-add-reply .comment-date, -.page-edit-comment .comment-date, -.page-add-reply .comment-date, -.page-edit-reply .comment-date, -.page-comments .reply-date, -.add-comment .reply-date, -.page-view-comments .reply-date, -.container-edit-comment .reply-date, -.container-add-reply .reply-date, -.page-edit-comment .reply-date, -.page-add-reply .reply-date, -.page-edit-reply .reply-date { - font-size: 13px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 0px; -} -.page-comments .comment-text, -.add-comment .comment-text, -.page-view-comments .comment-text, -.container-edit-comment .comment-text, -.container-add-reply .comment-text, -.page-edit-comment .comment-text, -.page-add-reply .comment-text, -.page-edit-reply .comment-text, -.page-comments .reply-text, -.add-comment .reply-text, -.page-view-comments .reply-text, -.container-edit-comment .reply-text, -.container-add-reply .reply-text, -.page-edit-comment .reply-text, -.page-add-reply .reply-text, -.page-edit-reply .reply-text { - color: #000000; - font-size: 15px; - line-height: 25px; - margin: 0; - max-width: 100%; - padding-right: 15px; -} -.page-comments .comment-text pre, -.add-comment .comment-text pre, -.page-view-comments .comment-text pre, -.container-edit-comment .comment-text pre, -.container-add-reply .comment-text pre, -.page-edit-comment .comment-text pre, -.page-add-reply .comment-text pre, -.page-edit-reply .comment-text pre, -.page-comments .reply-text pre, -.add-comment .reply-text pre, -.page-view-comments .reply-text pre, -.container-edit-comment .reply-text pre, -.container-add-reply .reply-text pre, -.page-edit-comment .reply-text pre, -.page-add-reply .reply-text pre, -.page-edit-reply .reply-text pre { - white-space: pre-wrap; -} -.page-comments .reply-item, -.add-comment .reply-item, -.page-view-comments .reply-item, -.container-edit-comment .reply-item, -.container-add-reply .reply-item, -.page-edit-comment .reply-item, -.page-add-reply .reply-item, -.page-edit-reply .reply-item { - margin-top: 15px; - padding-right: 16px; - padding-top: 13px; -} -.page-comments .reply-item .header-reply, -.add-comment .reply-item .header-reply, -.page-view-comments .reply-item .header-reply, -.container-edit-comment .reply-item .header-reply, -.container-add-reply .reply-item .header-reply, -.page-edit-comment .reply-item .header-reply, -.page-add-reply .reply-item .header-reply, -.page-edit-reply .reply-item .header-reply { - display: flex; - justify-content: space-between; -} -.page-comments .reply-item .user-name, -.add-comment .reply-item .user-name, -.page-view-comments .reply-item .user-name, -.container-edit-comment .reply-item .user-name, -.container-add-reply .reply-item .user-name, -.page-edit-comment .reply-item .user-name, -.page-add-reply .reply-item .user-name, -.page-edit-reply .reply-item .user-name { - padding-top: 3px; -} -.page-comments .reply-item:before, -.add-comment .reply-item:before, -.page-view-comments .reply-item:before, -.container-edit-comment .reply-item:before, -.container-add-reply .reply-item:before, -.page-edit-comment .reply-item:before, -.page-add-reply .reply-item:before, -.page-edit-reply .reply-item:before { - content: ''; - position: absolute; - left: auto; - bottom: 0; - right: auto; - top: 0; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -.page-comments .comment-quote, -.add-comment .comment-quote, -.page-view-comments .comment-quote, -.container-edit-comment .comment-quote, -.container-add-reply .comment-quote, -.page-edit-comment .comment-quote, -.page-add-reply .comment-quote, -.page-edit-reply .comment-quote { - color: #aa5252; - border-left: 1px solid #aa5252; - padding-left: 10px; - padding-right: 16px; - margin: 5px 0; - font-size: 15px; -} -.page-comments .wrap-comment, -.add-comment .wrap-comment, -.page-view-comments .wrap-comment, -.container-edit-comment .wrap-comment, -.container-add-reply .wrap-comment, -.page-edit-comment .wrap-comment, -.page-add-reply .wrap-comment, -.page-edit-reply .wrap-comment, -.page-comments .wrap-reply, -.add-comment .wrap-reply, -.page-view-comments .wrap-reply, -.container-edit-comment .wrap-reply, -.container-add-reply .wrap-reply, -.page-edit-comment .wrap-reply, -.page-add-reply .wrap-reply, -.page-edit-reply .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-comments .comment-textarea, -.add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .reply-textarea, -.add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .edit-reply-textarea, -.add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - margin-top: 10px; - background: transparent; - outline: none; - width: 100%; - font-size: 17px; - border: none; - border-radius: 3px; - min-height: 100px; -} -.settings.popup .list-block ul.list-reply:last-child:after, -.settings.popover .list-block ul.list-reply:last-child:after { - display: none; -} -.container-edit-comment .page { - background-color: #FFFFFF; -} -.container-view-comment { - position: fixed; - -webkit-transition: height 100ms; - transition: height 120ms; - background-color: #FFFFFF; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - height: 50%; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12); -} -.container-view-comment .pages { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments .list-block { - margin-bottom: 100px; -} -.container-view-comment .page-view-comments .list-block ul:before, -.container-view-comment .page-view-comments .list-block ul:after { - content: none; -} -.container-view-comment .page-view-comments .list-block .item-inner { - padding: 0; -} -.container-view-comment .toolbar { - position: fixed; - background-color: #FFFFFF; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .toolbar:before { - content: none; -} -.container-view-comment .toolbar .toolbar-inner { - display: flex; - justify-content: space-between; - padding: 0 16px; -} -.container-view-comment .toolbar .toolbar-inner .button-left { - min-width: 80px; -} -.container-view-comment .toolbar .toolbar-inner .button-right { - min-width: 62px; - display: flex; - justify-content: space-between; -} -.container-view-comment .toolbar .toolbar-inner .button-right a { - padding: 0 12px; -} -.container-view-comment .swipe-container { - display: flex; - justify-content: center; - height: 40px; -} -.container-view-comment .swipe-container .icon-swipe { - margin-top: 8px; - width: 40px; - height: 4px; - background: rgba(0, 0, 0, 0.12); - border-radius: 2px; -} -.container-view-comment .list-block { - margin-top: 0; -} -.container-view-comment.popover { - position: absolute; - border-radius: 4px; - min-height: 170px; - height: 400px; - max-height: 600px; -} -.container-view-comment.popover .toolbar { - position: absolute; - border-radius: 0 0 4px 4px; -} -.container-view-comment.popover .toolbar .toolbar-inner { - padding-right: 0; -} -.container-view-comment.popover .pages { - position: absolute; -} -.container-view-comment.popover .pages .page { - border-radius: 13px; -} -.container-view-comment.popover .pages .page .page-content { - padding: 16px; - padding-bottom: 80px; -} -.container-view-comment.popover .pages .page .page-content .list-block { - margin-bottom: 0px; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content { - padding-left: 0; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, -.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .block-reply { - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { - min-height: 70px; - width: 278px; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; -} -.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { - min-height: 60px; - width: 100%; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; - height: 60px; - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .comment-text { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 8px; - min-height: 80px; - height: 80px; -} -#done-comment { - color: #aa5252; -} -.page-add-comment { - background-color: #FFFFFF; -} -.page-add-comment .wrap-comment, -.page-add-comment .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-add-comment .wrap-comment .header-comment, -.page-add-comment .wrap-reply .header-comment { - justify-content: flex-start; -} -.page-add-comment .wrap-comment .user-name, -.page-add-comment .wrap-reply .user-name { - font-weight: bold; - font-size: 17px; - padding-left: 5px; -} -.page-add-comment .wrap-comment .comment-date, -.page-add-comment .wrap-reply .comment-date { - font-size: 13px; - color: #6d6d72; - padding-left: 5px; -} -.page-add-comment .wrap-comment .wrap-textarea, -.page-add-comment .wrap-reply .wrap-textarea { - margin-top: 16px; - padding-right: 6px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { - font-size: 17px; - border: none; - margin-top: 0; - min-height: 100px; - border-radius: 4px; - width: 100%; - padding-left: 5px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { - color: #8e8e93; - font-size: 17px; -} -.container-add-reply { - height: 100%; -} -.container-add-reply .navbar a.link i + span { - margin-left: 0; -} -.container-add-reply .page { - background-color: #FFFFFF; -} -.actions-modal-button.color-red { - color: #ff3b30; -} -.page-edit-comment, -.page-add-reply, -.page-edit-reply { - background-color: #FFFFFF; -} -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - justify-content: flex-start; -} -.page-edit-comment .navbar .right, -.page-add-reply .navbar .right, -.page-edit-reply .navbar .right { - height: 100%; -} -.page-edit-comment .navbar .right #add-reply, -.page-add-reply .navbar .right #add-reply, -.page-edit-reply .navbar .right #add-reply, -.page-edit-comment .navbar .right #edit-comment, -.page-add-reply .navbar .right #edit-comment, -.page-edit-reply .navbar .right #edit-comment, -.page-edit-comment .navbar .right #edit-reply, -.page-add-reply .navbar .right #edit-reply, -.page-edit-reply .navbar .right #edit-reply { - display: flex; - align-items: center; - padding-left: 16px; - padding-right: 16px; - height: 100%; -} -.container-edit-comment { - position: fixed; -} -.tablet .searchbar.document.replace .center .searchbar:first-child { - margin-right: 10px; -} -.tablet .searchbar.document.replace .center .replace { - display: flex; -} -.tablet .searchbar.document.replace .right .replace { - display: flex; - margin: 0 10px; -} -.tablet .searchbar.document .center { - width: 100%; -} -.tablet .searchbar.document .center .searchbar { - background: inherit; - padding: 0; -} -.tablet .searchbar.document .center .replace { - display: none; -} -.tablet .searchbar.document .right .prev { - margin-left: 0; -} -.tablet .searchbar.document .right .replace { - display: none; -} -.phone .searchbar.document.replace { - height: 88px; -} -.phone .searchbar.document.replace .left { - margin-top: -44px; -} -.phone .searchbar.document.replace .center .searchbar-input { - margin: 8px 0; -} -.phone .searchbar.document.replace .center .replace { - display: block; -} -.phone .searchbar.document.replace .right > .replace { - display: flex; -} -.phone .searchbar.document .left, -.phone .searchbar.document .center, -.phone .searchbar.document .right { - flex-direction: column; -} -.phone .searchbar.document .center { - width: 100%; -} -.phone .searchbar.document .center .searchbar { - background: inherit; - padding: 0; -} -.phone .searchbar.document .center .searchbar:after { - content: none; -} -.phone .searchbar.document .center .replace { - display: none; -} -.phone .searchbar.document .right > p { - margin: 0; -} -.phone .searchbar.document .right > .replace { - display: none; -} -.searchbar.document { - background-color: #f7f7f8; -} -i.icon.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; -} -i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.8%2C15c1.4-1.6%2C2.2-3.7%2C2.2-5.9c0-5-4-9-9-9C4%2C0%2C0%2C4%2C0%2C9c0%2C5%2C4%2C9%2C9%2C9c2.3%2C0%2C4.4-0.9%2C5.9-2.2l5.8%2C5.8l0.2-0.6l0.7-0.2L15.8%2C15z%20M9%2C17c-4.4%2C0-8-3.6-8-8c0-4.4%2C3.6-8%2C8-8c4.4%2C0%2C8%2C3.6%2C8%2C8C17%2C13.5%2C13.5%2C17%2C9%2C17z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-burger { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2217%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2213%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%229%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2219.3%2C5.3%206.1%2C18.4%204.6%2C16.9%2017.8%2C3.8%2017.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M8%201L3%2015h1.19995l1.77686-5h5.04638l.61573%201.7325.87988-.87988L9%201zm.5%201.9L10.66772%209H6.33228z%22%20clip-rule%3D%22evenodd%22%20fill-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M18.3%2011.3l-9.2%209.1-1.5-1.5%209.2-9.1-.7-.7-9.6%209.6L6%2022l3.3-.5%209.6-9.6zm1.2%200L21%209.8s-.2-1.2-.9-1.9c-.7-.8-1.9-.9-1.9-.9l-1.5%201.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-play { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.0464363%2C2.9884553c0.006526%2C0.00296%2C0.0142345%2C0.006835%2C0.0231438%2C0.0119021%20c0.5908604%2C0.3357637%2C12.7118397%2C7.2924433%2C13.8977489%2C8.0268402c-0.5831585%2C0.3417759-13.0137587%2C7.4879274-13.934659%2C7.9826727%20L4.0464363%2C2.9884553%20M3.9889357%2C2C3.4427795%2C2.0000577%2C3.000525%2C2.4533575%2C3.000525%2C3.015348%09c0%2C0.573487%2C0%2C15.1632957%2C0%2C15.9945221C3.000525%2C19.622963%2C3.4796104%2C20%2C3.9940588%2C20%20c0.1729372%2C0%2C0.3499191-0.0426311%2C0.5139763-0.1332226c0.8905602-0.491045%2C13.1880894-7.5583372%2C13.9407387-7.9994459%20c0.6751213-0.3955202%2C0.6867313-1.337512%2C0-1.7326603C17.4031754%2C9.5333271%2C5.1523852%2C2.501852%2C4.5393953%2C2.1535165%20C4.3526201%2C2.0472794%2C4.165401%2C1.9999813%2C3.9889357%2C2L3.9889357%2C2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-undo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C16v2h-1v-2l0%2C0c0-2.9-2.1-5-5-5l0%2C0H1.9L5%2C14c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3l-0.4%2C0.4c-0.1%2C0.1-0.2%2C0.1-0.3%2C0l-4.2-4.2c-0.1-0.1-0.1-0.2%2C0-0.3l0.4-0.4h0.1L4.4%2C6c0.1-0.1%2C0.2-0.1%2C0.3%2C0l0.5%2C0.4c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3L1.9%2C10H16l0%2C0C19.3%2C10%2C22%2C12.7%2C22%2C16L22%2C16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-redo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C16c0-3.3%2C2.7-6%2C6-6v0h14.1l-3.3-3.3c-0.1-0.1-0.1-0.2%2C0-0.3L17.3%2C6c0.1-0.1%2C0.2-0.1%2C0.3%2C0l3.8%2C3.8c0%2C0%2C0.1%2C0%2C0.1%2C0l0.4%2C0.4c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3l-4.2%2C4.2c-0.1%2C0.1-0.2%2C0.1-0.3%2C0l-0.4-0.4c-0.1-0.1-0.1-0.2%2C0-0.3l3.1-3H6v0c-2.9%2C0-5%2C2.1-5%2C5h0v2H0L0%2C16L0%2C16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reader { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M17%2C21H1V9h6V2l0%2C0h10v5h1V1H6.2L0%2C7.6V22h18v-3h-1V21z%20M6%2C2.8V8H1.1L6%2C2.8z%20M13%2C8c-5.1%2C0-9%2C5-9%2C5s4.1%2C5%2C9%2C5c5%2C0%2C9-5%2C9-5S18%2C8%2C13%2C8z%20M8.7%2C15.5C6.8%2C14.4%2C6.4%2C13%2C6.4%2C13s0.4-1.5%2C2.4-2.6C8.3%2C11.2%2C8%2C12%2C8%2C13C8%2C13.9%2C8.3%2C14.8%2C8.7%2C15.5z%20M13%2C16.7c-2.1%2C0-3.7-1.7-3.7-3.7c0-2.1%2C1.7-3.7%2C3.7-3.7c2.1%2C0%2C3.7%2C1.7%2C3.7%2C3.7C16.7%2C15.1%2C15.1%2C16.7%2C13%2C16.7z%20M17.3%2C15.5c0.4-0.7%2C0.7-1.6%2C0.7-2.5c0-1-0.3-1.8-0.7-2.6c2%2C1.1%2C3.4%2C2.6%2C3.4%2C2.6S19.2%2C14.4%2C17.3%2C15.5z%20M13%2C11.7c-0.7%2C0-1.3%2C0.6-1.3%2C1.3s0.6%2C1.3%2C1.3%2C1.3s1.3-0.6%2C1.3-1.3S13.7%2C11.7%2C13%2C11.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-download { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23aa5252%22%3E%3Cpath%20d%3D%22M12%200H11L11%2014L7.39999%2010.3L6.69999%2011.1L11.5%2016L16.3%2011.1L15.6%2010.3L12%2014L12%200Z%22%2F%3E%3Cpath%20d%3D%22M14%205V6H19V20H4V6H9V5H3V21H20V5H14Z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-print { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%201H17V6H21V17H17V21H5V17H1V6H5V1ZM6%206H16V2H6V6ZM5%2016V13H2V16H5ZM2%2012H20V7H2V12ZM20%2013H17V16H20V13ZM16%2013H6V20H16V13ZM14%2016H8V15H14V16ZM14%2018H8V17H14V18Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-spellcheck { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%201L3%2015H4.2L5.97686%2010H11.0231L11.6768%2011.8394C11.955%2011.5504%2012.262%2011.2892%2012.593%2011.0605L9%201H8ZM8.5%202.9L10.6678%209H6.33223L8.5%202.9Z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2021C18.7614%2021%2021%2018.7614%2021%2016C21%2013.2386%2018.7614%2011%2016%2011C13.2386%2011%2011%2013.2386%2011%2016C11%2018.7614%2013.2386%2021%2016%2021ZM15.3536%2018.3536L19.3536%2014.3536L18.6464%2013.6464L15%2017.2929L13.3536%2015.6464L12.6464%2016.3536L14.6464%2018.3536L15%2018.7071L15.3536%2018.3536Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-info { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M10%2C17h2V8h-2V17z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11s4.5%2C10%2C10%2C10s10-4.5%2C10-10S16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4-9-9s4-9%2C9-9s9%2C4%2C9%2C9S16%2C20%2C11%2C20z%20M10%2C7h2V5h-2V7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C12H12v10h-1V12H1v-1h10V1h1v10h10V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.8%2C3l0.4%2C2c0.1%2C0.7%2C0.6%2C1.1%2C1.3%2C1.1c0.3%2C0%2C0.5-0.1%2C0.7-0.2l1.9-1.2l1.1%2C1.1l-1.1%2C1.8C15.8%2C8%2C15.8%2C8.5%2C16%2C8.9c0.2%2C0.4%2C0.5%2C0.7%2C1%2C0.8l2.1%2C0.5v1.6L17%2C12.2c-0.5%2C0.1-0.8%2C0.4-1%2C0.8c-0.2%2C0.4-0.1%2C0.9%2C0.1%2C1.2l1.2%2C1.9l-1.1%2C1.1l-1.8-1.1c-0.2-0.2-0.5-0.2-0.8-0.2c-0.6%2C0-1.2%2C0.5-1.3%2C1.1l-0.5%2C2.1h-1.6l-0.4-2C9.7%2C16.4%2C9.2%2C16%2C8.5%2C16c-0.3%2C0-0.5%2C0.1-0.7%2C0.2l-1.9%2C1.2l-1.1-1.1l1.1-1.8c0.3-0.4%2C0.3-0.9%2C0.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%2C0.8-0.4%2C1-0.8C6.1%2C8.7%2C6%2C8.2%2C5.8%2C7.9l-1-2l1.1-1.1l1.8%2C1.1C8%2C6.1%2C8.2%2C6.2%2C8.5%2C6.2c0.6%2C0%2C1.2-0.5%2C1.3-1.1L10.3%2C3H11.8%20M11%2C15.5c2.5%2C0%2C4.5-2%2C4.5-4.5s-2-4.5-4.5-4.5s-4.5%2C2-4.5%2C4.5S8.5%2C15.5%2C11%2C15.5%20M12.1%2C2H9.9C9.6%2C2%2C9.4%2C2.2%2C9.3%2C2.5L8.8%2C4.9c0%2C0.2-0.2%2C0.3-0.3%2C0.3s-0.1%2C0-0.2-0.1L6.2%2C3.8C6.1%2C3.7%2C6%2C3.7%2C5.8%2C3.7c-0.1%2C0-0.3%2C0-0.4%2C0.1L3.8%2C5.4c-0.1%2C0.2-0.2%2C0.5%2C0%2C0.8l1.3%2C2.1c0.1%2C0.2%2C0.1%2C0.4-0.2%2C0.5L2.5%2C9.3C2.2%2C9.4%2C2%2C9.6%2C2%2C9.9v2.2c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.6l2.4%2C0.5c0.3%2C0.1%2C0.4%2C0.3%2C0.2%2C0.5l-1.3%2C2.1c-0.2%2C0.2-0.1%2C0.6%2C0.1%2C0.8l1.6%2C1.6c0.1%2C0.1%2C0.3%2C0.2%2C0.4%2C0.2s0.2%2C0%2C0.3-0.1L8.3%2C17c0.1-0.1%2C0.1-0.1%2C0.2-0.1s0.3%2C0.1%2C0.3%2C0.3l0.5%2C2.3C9.4%2C19.8%2C9.6%2C20%2C9.9%2C20h2.2c0.3%2C0%2C0.5-0.2%2C0.6-0.5l0.5-2.4c0-0.2%2C0.1-0.3%2C0.3-0.3c0.1%2C0%2C0.1%2C0%2C0.2%2C0.1l2.1%2C1.3c0.1%2C0.1%2C0.2%2C0.1%2C0.3%2C0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2l1.6-1.6c0.2-0.2%2C0.2-0.5%2C0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5%2C0.2-0.5l2.4-0.5c0.3-0.1%2C0.5-0.3%2C0.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%2C0.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%2C0-0.2%2C0-0.3%2C0.1l-2.1%2C1.3C13.6%2C5%2C13.6%2C5%2C13.5%2C5c-0.1%2C0-0.3-0.1-0.3-0.3l-0.5-2.2C12.6%2C2.2%2C12.4%2C2%2C12.1%2C2L12.1%2C2z%20M11%2C14.5c-1.9%2C0-3.5-1.6-3.5-3.5S9.1%2C7.5%2C11%2C7.5s3.5%2C1.6%2C3.5%2C3.5S12.9%2C14.5%2C11%2C14.5L11%2C14.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-about { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3%2C0.7-0.6%2C0.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%2C0l-8.9%2C4.1C-0.9%2C13.8-1%2C14.1-1%2C14.3s0.1%2C0.6%2C0.7%2C0.9l2.6%2C1.2l-2.6%2C1.2C-0.9%2C18-1%2C18.4-1%2C18.5c0%2C0.2%2C0.1%2C0.6%2C0.7%2C0.9l2.5%2C1.2l-2.5%2C1.2C-0.9%2C22.1-1%2C22.5-1%2C22.7c0%2C0.3%2C0.1%2C0.6%2C0.7%2C0.9l8.9%2C4.1c0.5%2C0.2%2C0.8%2C0.3%2C1.4%2C0.3s1-0.1%2C1.4-0.3l8.9-4.1c0.6-0.4%2C0.7-0.6%2C0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9%2C19.2%2C21%2C18.8%2C21%2C18.5z%20M-0.2%2C14.3L-0.2%2C14.3c0%2C0%2C0.1-0.1%2C0.3-0.2L9%2C10c0.6-0.3%2C1.5-0.3%2C2%2C0l8.9%2C4.1c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C18.6c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1C-0.1%2C14.4-0.2%2C14.3-0.2%2C14.3z%20M20.2%2C22.7L20.2%2C22.7c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C27.1c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5C20.1%2C22.7%2C20.2%2C22.7%2C20.2%2C22.7z%20M19.9%2C18.7L11%2C22.8c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0C20.2%2C18.5%2C20.1%2C18.6%2C19.9%2C18.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-help { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.6%2C1.3c-3.3%2C0-6%2C2.8-6%2C6.2c0.3%2C0%2C0.7%2C0%2C0.9%2C0c0-2.9%2C2.3-5.2%2C5.1-5.2s5.1%2C2.3%2C5.1%2C5.2c0%2C1.7-1.9%2C3.2-3%2C4.3C12.9%2C12.6%2C11%2C14.2%2C11%2C16c0%2C1.2%2C0%2C2.2%2C0%2C2.7c0.3%2C0%2C0.6%2C0%2C0.9%2C0c0-0.6%2C0-1.6%2C0-2.5c0-1.4%2C1.1-2.4%2C2.2-3.5c1.7-1.5%2C3.5-3.1%2C3.5-5.2C17.6%2C4.1%2C14.9%2C1.3%2C11.6%2C1.3z%20M11.5%2C20.2c-0.3%2C0-0.5%2C0.2-0.5%2C0.5v0.8c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.5s0.5-0.2%2C0.5-0.5v-0.8C11.9%2C20.4%2C11.7%2C20.2%2C11.5%2C20.2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-setup { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C3v16h22V3H0z%20M21%2C17H1V5h20V17z%20M16.5%2C5.9l-7.2%2C7.2L8.8%2C15H4v1c0%2C0%2C3.2%2C0%2C5%2C0c0.4%2C0%2C0.2%2C0%2C0.2-0.2l2.2-0.6L18.7%2C8L16.5%2C5.9z%20M9.9%2C13.1l6.5-6.4L18%2C8l-6.5%2C6.4L9.9%2C13.1z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-versions { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M19%2C12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2v12c0%2C1.1%2C0.9%2C2%2C2%2C2h18c1.1%2C0%2C2-0.9%2C2-2V14C21%2C12.9%2C20.1%2C12%2C19%2C12z%20M5%2C9h10c0.6%2C0%2C1%2C0.4%2C1%2C1H4C4%2C9.4%2C4.4%2C9%2C5%2C9z%20M3%2C11h14c0.6%2C0%2C1%2C0.4%2C1%2C1H2C2%2C11.4%2C2.4%2C11%2C3%2C11z%20M20%2C26c0%2C0.6-0.4%2C1-1%2C1H1c-0.6%2C0-1-0.4-1-1V14c0-0.6%2C0.4-1%2C1-1h18c0.6%2C0%2C1%2C0.4%2C1%2C1V26z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-additional { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M18.5%2C15.5c-1.1%2C0-2%2C0.9-2%2C2s0.9%2C2%2C2%2C2s2-0.9%2C2-2S19.6%2C15.5%2C18.5%2C15.5z%20M18.5%2C18.5c-0.6%2C0-1-0.4-1-1c0-0.6%2C0.4-1%2C1-1s1%2C0.4%2C1%2C1C19.5%2C18.1%2C19.1%2C18.5%2C18.5%2C18.5z%20M18.5%2C7.5c1.1%2C0%2C2-0.9%2C2-2c0-1.1-0.9-2-2-2s-2%2C0.9-2%2C2C16.5%2C6.6%2C17.4%2C7.5%2C18.5%2C7.5z%20M18.5%2C4.5c0.6%2C0%2C1%2C0.4%2C1%2C1s-0.4%2C1-1%2C1s-1-0.4-1-1S17.9%2C4.5%2C18.5%2C4.5z%20M18.5%2C9.5c-1.1%2C0-2%2C0.9-2%2C2s0.9%2C2%2C2%2C2s2-0.9%2C2-2S19.6%2C9.5%2C18.5%2C9.5z%20M18.5%2C12.5c-0.6%2C0-1-0.4-1-1c0-0.6%2C0.4-1%2C1-1s1%2C0.4%2C1%2C1C19.5%2C12.1%2C19.1%2C12.5%2C18.5%2C12.5z%20M6.9%2C3.8L1%2C18.9h1.5l1.8-4.7h6.9l1.7%2C4.7h1.5L8.6%2C3.8H6.9z%20M4.7%2C12.9l3-7.9l3%2C7.9H4.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-color { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.9%2C12l2.3-6.3l2.2%2C6.3H8.9z%20M4.7%2C17.8h2l1.6-4.3h5.6l1.5%2C4.3h2.1L12.3%2C3.5h-2.2L4.7%2C17.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-selection { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M7.6%2C10.3c0.2%2C0.3%2C0.4%2C0.4%2C0.5%2C0.5c0.3%2C0.2%2C0.6%2C0.3%2C1%2C0.3c0.7%2C0%2C1.3-0.3%2C1.7-0.8c0.4-0.5%2C0.6-1.2%2C0.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%2C0-0.6%2C0.1-0.9%2C0.2C8%2C6%2C7.8%2C6.2%2C7.6%2C6.4V3.8H6.8V11h0.8V10.3z%20M8%2C6.9c0.3-0.3%2C0.7-0.4%2C1.1-0.4c0.5%2C0%2C0.8%2C0.2%2C1%2C0.5c0.2%2C0.4%2C0.4%2C0.8%2C0.4%2C1.4c0%2C0.6-0.1%2C1.1-0.4%2C1.5c-0.2%2C0.4-0.6%2C0.6-1.1%2C0.6c-0.6%2C0-1.1-0.3-1.3-0.9C7.6%2C9.2%2C7.6%2C8.8%2C7.6%2C8.3C7.6%2C7.7%2C7.7%2C7.2%2C8%2C6.9z%20M5.7%2C10.4c-0.1%2C0-0.2%2C0-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%2C5.8%2C4%2C5.6%2C3.3%2C5.6c-0.5%2C0-1%2C0.1-1.4%2C0.4C1.5%2C6.3%2C1.3%2C6.7%2C1.3%2C7.4h0.8c0-0.3%2C0.1-0.5%2C0.2-0.6c0.2-0.2%2C0.5-0.4%2C1-0.4c0.4%2C0%2C0.7%2C0.1%2C0.9%2C0.2c0.2%2C0.1%2C0.3%2C0.4%2C0.3%2C0.7c0%2C0.1%2C0%2C0.3-0.1%2C0.3C4.4%2C7.7%2C4.3%2C7.8%2C4.1%2C7.8L2.7%2C8C2.2%2C8.1%2C1.8%2C8.2%2C1.5%2C8.5C1.2%2C8.8%2C1%2C9.1%2C1%2C9.6c0%2C0.4%2C0.2%2C0.8%2C0.5%2C1.1c0.3%2C0.3%2C0.7%2C0.4%2C1.2%2C0.4c0.4%2C0%2C0.8-0.1%2C1.1-0.3c0.3-0.2%2C0.6-0.4%2C0.8-0.6c0%2C0.2%2C0.1%2C0.4%2C0.2%2C0.5c0.1%2C0.2%2C0.4%2C0.3%2C0.7%2C0.3c0.1%2C0%2C0.2%2C0%2C0.3%2C0c0.1%2C0%2C0.2%2C0%2C0.3-0.1v-0.6c-0.1%2C0-0.1%2C0-0.2%2C0C5.8%2C10.4%2C5.7%2C10.4%2C5.7%2C10.4z%20M4.5%2C9.1c0%2C0.5-0.2%2C0.9-0.7%2C1.2c-0.3%2C0.1-0.6%2C0.2-0.9%2C0.2c-0.3%2C0-0.5-0.1-0.7-0.2C2%2C10.1%2C2%2C9.9%2C2%2C9.6C2%2C9.3%2C2.1%2C9%2C2.4%2C8.9c0.2-0.1%2C0.4-0.2%2C0.7-0.2l0.5-0.1c0.2%2C0%2C0.3-0.1%2C0.5-0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2V9.1z%20M18.5%2C5L8.3%2C15.3l-0.5%2C2c-0.6%2C0.4-1.3%2C0.3-1.5%2C0.6c-0.3%2C0.4%2C0.9%2C0.4%2C1.5%2C0.3c0.4%2C0%2C0.5%2C0%2C0.5-0.2l2.2-0.6L20.7%2C7.1L18.5%2C5z%20M9%2C15.3l9.5-9.5L20%2C7.1l-9.5%2C9.5L9%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bullets { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M7%2C4v1h15V4H7z%20M1%2C6h3V3H1V6z%20M7%2C12h15v-1H7V12z%20M1%2C13h3v-3H1V13z%20M7%2C19h15v-1H7V19z%20M1%2C20h3v-3H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-numbers { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M7%2C3.8v1h15v-1H7z%20M7%2C11.8h15v-1H7V11.8z%20M7%2C18.8h15v-1H7V18.8z%20M3.1%2C6.9h0.7V2H3.3C3.2%2C2.4%2C3.1%2C2.6%2C2.9%2C2.7C2.7%2C2.8%2C2.4%2C2.9%2C2%2C2.9v0.5h1.2V6.9z%20M3.3%2C9C2.6%2C9%2C2.1%2C9.2%2C1.9%2C9.7c-0.2%2C0.3-0.2%2C0.6-0.2%2C1h0.6c0-0.3%2C0.1-0.5%2C0.1-0.7c0.2-0.3%2C0.5-0.5%2C0.9-0.5c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3s0.3%2C0.4%2C0.3%2C0.7c0%2C0.2-0.1%2C0.5-0.3%2C0.7c-0.1%2C0.1-0.3%2C0.3-0.6%2C0.4l-0.7%2C0.4c-0.4%2C0.3-0.7%2C0.5-0.9%2C0.9c-0.2%2C0.3-0.2%2C0.7-0.3%2C1.1h3.4v-0.6H2.2c0.1-0.2%2C0.2-0.5%2C0.4-0.7c0.1-0.1%2C0.3-0.2%2C0.5-0.4L3.6%2C12c0.4-0.2%2C0.7-0.4%2C0.9-0.6c0.3-0.3%2C0.4-0.6%2C0.4-1c0-0.4-0.1-0.7-0.4-1C4.3%2C9.1%2C3.9%2C9%2C3.3%2C9z%20M4.1%2C18.3c0.2-0.1%2C0.3-0.2%2C0.4-0.3c0.2-0.2%2C0.2-0.4%2C0.2-0.7c0-0.4-0.1-0.7-0.4-1C4%2C16.1%2C3.6%2C16%2C3.1%2C16c-0.6%2C0-1.1%2C0.2-1.3%2C0.7c-0.1%2C0.3-0.2%2C0.6-0.2%2C0.9h0.6c0-0.3%2C0.1-0.5%2C0.1-0.6c0.2-0.3%2C0.4-0.4%2C0.9-0.4c0.2%2C0%2C0.4%2C0.1%2C0.6%2C0.2C4%2C16.9%2C4.1%2C17%2C4.1%2C17.3c0%2C0.3-0.1%2C0.6-0.4%2C0.7c-0.1%2C0.1-0.3%2C0.1-0.6%2C0.1c-0.1%2C0-0.1%2C0-0.1%2C0c0%2C0-0.1%2C0-0.2%2C0v0.5c0%2C0%2C0.1%2C0%2C0.1%2C0c0%2C0%2C0.1%2C0%2C0.1%2C0c0.4%2C0%2C0.7%2C0.1%2C0.9%2C0.2c0.2%2C0.1%2C0.3%2C0.4%2C0.3%2C0.7c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3c-0.4%2C0-0.7-0.1-0.9-0.4c-0.1-0.1-0.2-0.4-0.2-0.7H1.5c0%2C0.5%2C0.1%2C0.8%2C0.4%2C1.2C2.1%2C20.8%2C2.5%2C21%2C3.1%2C21c0.6%2C0%2C1-0.1%2C1.3-0.4c0.3-0.3%2C0.5-0.7%2C0.5-1.1c0-0.3-0.1-0.5-0.2-0.7C4.5%2C18.5%2C4.3%2C18.3%2C4.1%2C18.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-linespacing { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpolygon%20id%3D%22XMLID_7_%22%20points%3D%2222%2C4%2022%2C3%2012%2C3%2011%2C3%201%2C3%201%2C4%2011%2C4%2011%2C4.3%208%2C7.4%208.7%2C8.1%2011%2C5.7%2011%2C17.3%208.7%2C14.9%208%2C15.6%2011%2C18.7%2011%2C19%201%2C19%201%2C20%2011%2C20%2012%2C20%2022%2C20%2022%2C19%2012%2C19%2012%2C18.6%2015%2C15.6%2014.3%2C14.9%2012%2C17.2%2012%2C5.8%2014.3%2C8.1%2015%2C7.4%2012%2C4.4%2012%2C4%20%09%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-center { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-jast { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-left { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-right { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-de-indent { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M11%2C15h11v1H11V15z%20M11%2C11h11v1H11V11z%20M11%2C7h11v1H11V7z%20M6.3%2C7L7%2C7.7l-3.8%2C3.8L7%2C15.3L6.3%2C16L2%2C11.8l-0.2-0.3L2%2C11.2L6.3%2C7z%20M1%2C3h21v1H1V3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-in-indent { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev, -i.icon.icon-prev-comment { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M16%2C20.5L15%2C21.5L4.5%2C11l0%2C0l0%2C0L15%2C0.5L16%2C1.5L6.6%2C11L16%2C20.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next, -i.icon.icon-next-comment { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.5%2C11L6%2C1.5l1.1-1.1L17.5%2C11l0%2C0l0%2C0L7.1%2C21.5L6%2C20.5L15.5%2C11z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-left { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M15%2C19h-1H8H7v-1v-3H0V2h7h1h14v4v1v3v1v3v1v3v1H15z%20M15%2C18h6v-3h-6V18z%20M15%2C14h6v-3h-6V14z%20M8%2C18h6v-3H8V18z%20M8%2C14h6v-3H8V14z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M21%2C3h-6v3h6V3z%20M15%2C7v3h6V7H15z%20M3%2C16h1v2h2v1H4v2H3v-2H1v-1h2V16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-right { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C19l0-1l0-3l0-1l0-3l0-1l0-3l0-1l0-4h14h1h7v13h-7v3v1h-1H8H7H0z%20M7%2C15H1v3h6V15z%20M7%2C11H1v3h6V11z%20M14%2C15H8v3h6V15z%20M14%2C11H8v3h6V11z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M1%2C6h6V3H1V6z%20M1%2C7v3h6V7H1z%20M19%2C18h2v1h-2v2h-1v-2h-2v-1h2v-2h1V18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-above { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C20h-6h-1H8H7H0v-1v-3v-1v-3v-1V8V7V1h15v6h6h1v1v3v1v3v1v3v1H21z%20M7%2C8H1v3h6V8z%20M7%2C12H1v3h6V12z%20M7%2C16H1v3h6V16z%20M8%2C19h6v-3H8V19z%20M8%2C15h6v-3H8V15z%20M8%2C11h6V8H8V11z%20M21%2C8h-6v3h6V8z%20M21%2C12h-6v3h6V12z%20M21%2C16h-6v3h6V16z%20M19%2C6h-1V4h-2V3h2V1h1v2h2v1h-2V6z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-below { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C1v1v3v1v3v1v3v1h-1h-6v6H0v-6v-1v-3V9V6V5V2V1h7h1h6h1h6H22z%20M7%2C10H1v3h6V10z%20M7%2C6H1v3h6V6z%20M7%2C2H1v3h6V2z%20M8%2C5h6V2H8V5z%20M8%2C9h6V6H8V9z%20M8%2C13h6v-3H8V13z%20M21%2C10h-6v3h6V10z%20M21%2C6h-6v3h6V6z%20M21%2C2h-6v3h6V2z%20M19%2C17h2v1h-2v2h-1v-2h-2v-1h2v-2h1V17z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-column { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C11H8v0.1c1.9%2C0.2%2C3.5%2C1.3%2C4.4%2C2.9H14V11z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C11h-6v3h6V11z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-row { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M1%2C18h1.2C2.1%2C17.5%2C2%2C17%2C2%2C16.5c0-0.5%2C0.1-1%2C0.2-1.5H1V18z%20M7%2C3H1v3h6V3z%20M7%2C7H1v3h6V7z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-expand-down { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M20.5%2C6.5l1.1%2C1.1L11%2C18l0%2C0l0%2C0L0.5%2C7.5l1.1-1.1l9.5%2C9.5L20.5%2C6.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagebreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M8%2C14v1h1v-1H8z%20M6%2C14v1h1v-1H6z%20M18%2C21H3v-6H2v7h17v-7h-1V21z%20M4%2C14v1h1v-1H4z%20M14%2C14v1h1v-1H14z%20M10%2C14v1h1v-1H10z%20M8.2%2C1L2%2C7.6V14h1V9h6V2l0%2C0h9v12h1V1H8.2z%20M8%2C8H3.1L8%2C2.8V8z%20M12%2C14v1h1v-1H12z%20M16%2C14v1h1v-1H16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-sectionbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C14V2H3v12H2V1h19v13H20z%20M5%2C14v1H4v-1H5z%20M7%2C14v1H6v-1H7z%20M9%2C14v1H8v-1H9z%20M11%2C14v1h-1v-1H11z%20M13%2C14v1h-1v-1H13z%20M15%2C14v1h-1v-1H15z%20M17%2C14v1h-1v-1H17z%20M18%2C14h1v1h-1V14z%20M3%2C21h17v-6h1v7H2v-7h1V21z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-stringbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M18%2C12H5.1L9%2C15.9l-0.7%2C0.7l-4.5-4.5l-0.6-0.6l0.6-0.6l4.5-4.5L9%2C7.1L5.1%2C11H18V5h1v6v1H18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagenumber { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.2%2C1L2%2C7.6V22h17V1H8.2z%20M8%2C2.8V8H3.1L8%2C2.8z%20M18%2C21H3V9h6V2l0%2C0h9V21z%20M12%2C19h1v-4h-0.7c0%2C0.2-0.1-0.1-0.1%2C0c-0.1%2C0.1-0.2%2C0-0.3%2C0c-0.1%2C0.1-0.2%2C0.1-0.4%2C0.1c-0.1%2C0-0.3%2C0-0.4%2C0V16H12V19z%20M15.3%2C17.3C15%2C17.9%2C15.1%2C18.4%2C15%2C19h0.9c0-0.3%2C0-0.6%2C0.1-0.9c0.1-0.3%2C0.1-0.6%2C0.3-0.9c0.1-0.3%2C0.3-0.6%2C0.4-0.9c0.2-0.3%2C0.1-0.3%2C0.3-0.5V15h-3v1h1.9C15.6%2C16.4%2C15.5%2C16.7%2C15.3%2C17.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-link { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M12.4%2C9.8c0%2C0-2.1-0.1-3.8%2C1.2c-2.8%2C2-3.3%2C4.3-3.3%2C4.3s1.6-1.7%2C3.5-2.5c1.7-0.7%2C3.7-0.4%2C3.7-0.4v1.9l4.8-3.3V11l-4.8-3.3V9.8z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11c0%2C5.5%2C4.5%2C10%2C10%2C10s10-4.5%2C10-10C21%2C5.5%2C16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4.1-9-9C2%2C6%2C6%2C2%2C11%2C2s9%2C4.1%2C9%2C9C20%2C16%2C16%2C20%2C11%2C20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-image-library { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bisolation%3Aisolate%3B%7D.cls-2%7Bopacity%3A0.2%3B%7D.cls-3%7Bfill%3A%23fff%3B%7D.cls-10%2C.cls-11%2C.cls-4%2C.cls-6%2C.cls-7%2C.cls-8%2C.cls-9%7Bmix-blend-mode%3Amultiply%3B%7D.cls-4%7Bfill%3Aurl(%23grad_8)%3B%7D.cls-5%7Bfill%3Aurl(%23grad_10)%3B%7D.cls-6%7Bfill%3Aurl(%23grad_12)%3B%7D.cls-7%7Bfill%3Aurl(%23grad_14)%3B%7D.cls-8%7Bfill%3Aurl(%23grad_79)%3B%7D.cls-9%7Bfill%3Aurl(%23grad_77)%3B%7D.cls-10%7Bfill%3Aurl(%23grad_75)%3B%7D.cls-11%7Bfill%3Aurl(%23grad_81)%3B%7D%3C%2Fstyle%3E%3ClinearGradient%20id%3D%22grad_8%22%20x1%3D%2211.08%22%20y1%3D%2210.26%22%20x2%3D%2211.08%22%20y2%3D%221.26%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f3e916%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_10%22%20x1%3D%2211.08%22%20y1%3D%2220.44%22%20x2%3D%2211.08%22%20y2%3D%2211.88%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235eb6e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23958cc3%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_12%22%20x1%3D%221.46%22%20y1%3D%2211.05%22%20x2%3D%2210.46%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(17%205.09)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f86867%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_14%22%20x1%3D%2211.73%22%20y1%3D%2211.05%22%20x2%3D%2220.73%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(27.28%20-5.18)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236ac07f%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_79%22%20x1%3D%2211.74%22%20y1%3D%2210.42%22%20x2%3D%2217.52%22%20y2%3D%224.63%22%20gradientTransform%3D%22translate(30.29%202.51)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3e916%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_77%22%20x1%3D%224.7%22%20y1%3D%2217.49%22%20x2%3D%2210.48%22%20y2%3D%2211.71%22%20gradientTransform%3D%22translate(23.24%2019.65)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%239595c3%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_75%22%20x1%3D%224.69%22%20y1%3D%224.64%22%20x2%3D%2210.47%22%20y2%3D%2210.42%22%20gradientTransform%3D%22translate(7.54%20-3.15)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f86867%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_81%22%20x1%3D%2211.77%22%20y1%3D%2211.78%22%20x2%3D%2217.55%22%20y2%3D%2217.56%22%20gradientTransform%3D%22translate(14.63%20-6.05)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235ec0e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%236ac07f%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Ctitle%3Eicons_for_svg%3C%2Ftitle%3E%3Cg%20class%3D%22cls-1%22%3E%3Cg%20id%3D%22%D0%A1%D0%BB%D0%BE%D0%B9_1%22%20data-name%3D%22%D0%A1%D0%BB%D0%BE%D0%B9%201%22%3E%3Crect%20class%3D%22cls-2%22%20x%3D%220.09%22%20y%3D%220.01%22%20width%3D%2222%22%20height%3D%2222%22%20rx%3D%224%22%20ry%3D%224%22%2F%3E%3Crect%20class%3D%22cls-3%22%20x%3D%220.57%22%20y%3D%220.49%22%20width%3D%2221.04%22%20height%3D%2221.04%22%20rx%3D%223.6%22%20ry%3D%223.6%22%2F%3E%3Crect%20class%3D%22cls-4%22%20x%3D%228.33%22%20y%3D%221.26%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-5%22%20x%3D%228.33%22%20y%3D%2211.76%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-6%22%20x%3D%223.21%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-5.09%2017)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-7%22%20x%3D%2213.48%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(5.18%2027.28)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-8%22%20x%3D%2211.87%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(19.64%2023.19)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-9%22%20x%3D%224.8%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(2.54%2030.33)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-10%22%20x%3D%224.83%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-3.1%207.56)%20rotate(-45)%22%2F%3E%3Crect%20class%3D%22cls-11%22%20x%3D%2211.87%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-6.07%2014.63)%20rotate(-45)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-top { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%222%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%224%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2018%2011%2018%2011%207.83%208.65%209.8%208%208.94%2011.5%206%2015%209%2014.35%209.8%2012%207.83%2012%2018%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-middle { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2210%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2212%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%202%2012%202%2012%207.17%2014.35%205.2%2015%206.06%2011.5%209%208%206%208.65%205.2%2011%207.17%2011%202%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2021%2011%2021%2011%2015.83%208.65%2017.8%208%2016.94%2011.5%2014%2015%2017%2014.35%2017.8%2012%2015.83%2012%2021%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-bottom { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2218%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2220%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%204%2012%204%2012%2015.17%2014.35%2013.2%2015%2014.06%2011.5%2017%208%2014%208.65%2013.2%2011%2015.17%2011%204%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-all { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-none { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-inner { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpolygon%20points%3D%2226%2013%2014%2013%2014%201%2013%201%2013%2013%201%2013%201%2014%2013%2014%2013%2026%2014%2026%2014%2014%2026%2014%2026%2013%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-outer { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-left { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-center { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2213%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-right { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2226%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-top { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-middle { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-bottom { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2226%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-backward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3Cpath%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-forward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-background { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-foreground { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-left { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20class%3D%22st0%22%20d%3D%22M1%2C21h1V1H1V21z%20M4%2C13v4h16v-4H4z%20M12%2C5H4v4h8V5z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-center { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%20id%3D%22XMLID_5_%22%3E%3Cg%20id%3D%22XMLID_24_%22%3E%3Cpolygon%20id%3D%22XMLID_25_%22%20class%3D%22st0%22%20points%3D%2219%2C13%2011%2C13%2011%2C9%2015%2C9%2015%2C5%2011%2C5%2011%2C1%2010%2C1%2010%2C5%206%2C5%206%2C9%2010%2C9%2010%2C13%202%2C13%202%2C17%2010%2C17%2010%2C21%2011%2C21%2011%2C17%2019%2C17%20%09%09%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-right { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%20id%3D%22XMLID_5_%22%3E%3Cg%20id%3D%22XMLID_42_%22%3E%3Cpath%20id%3D%22XMLID_44_%22%20class%3D%22st0%22%20d%3D%22M20%2C1v20h1V1H20z%20M2%2C17h16v-4H2V17z%20M10%2C9h8V5h-8V9z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-top { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M1%2C1v1h20V1H1z%20M9%2C4H5v16h4V4z%20M17%2C12V4h-4v8H17z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-middle { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%20id%3D%22XMLID_5_%22%3E%3Cg%20id%3D%22XMLID_24_%22%3E%3Cpolygon%20id%3D%22XMLID_25_%22%20class%3D%22st0%22%20points%3D%2213%2C2%2013%2C10%209%2C10%209%2C6%205%2C6%205%2C10%201%2C10%201%2C11%205%2C11%205%2C15%209%2C15%209%2C11%2013%2C11%2013%2C19%2017%2C19%2017%2C11%2021%2C11%2021%2C10%2017%2C10%2017%2C2%20%09%09%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-bottom { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M21%2C20v-1H1v1H21z%20M9%2C1H5v16h4V1z%20M13%2C9v8h4V9H13z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-horizontal { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M1%2C1v1h20V1H1z%20M0.999999%2C19.0000076V20h20v-0.9999924H0.999999z%20M9.000001%2C2.9999995h-4v15h4V2.9999995z%20M17%2C13.999999V6.9999986h-3.999999v7.0000005H17z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-vertical { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M0.9999998%2C21h1v-20h-1V21z%20M19.0000076%2C21H20v-20h-0.9999924V21z%20M2.9999995%2C12.999999v3.999999h15%20v-3.999999H2.9999995z%20M13.999999%2C4.999999H6.9999986v4h7.0000005V4.999999z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdf { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2233px%22%20height%3D%2233px%22%20viewBox%3D%22-3.363%20-3.658%2033%2033%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M8.512%2C14.989c0.8-1.567%2C1.709-3.334%2C2.438-5.107l0%2C0l0.287-0.699%20%20c-0.949-3.616-1.52-6.52-1.011-8.396l0%2C0C10.362%2C0.297%2C10.929%2C0%2C11.535%2C0l0%2C0l0.368%2C0.005h0.068c0.83-0.013%2C1.22%2C1.042%2C1.264%2C1.453%20%20l0%2C0c0.073%2C0.684-0.242%2C1.839-0.242%2C1.839l0%2C0c0-0.467%2C0.018-1.221-0.276-1.873l0%2C0c-0.343-0.753-0.671-1.203-0.965-1.274l0%2C0%20%20C11.604%2C0.25%2C11.46%2C0.455%2C11.411%2C0.85l0%2C0c-0.104%2C0.553-0.134%2C1.252-0.134%2C1.611l0%2C0c0%2C1.272%2C0.25%2C2.952%2C0.743%2C4.684l0%2C0%20%20c0.093-0.269%2C0.174-0.526%2C0.24-0.768l0%2C0c0.101-0.38%2C0.743-2.9%2C0.743-2.9l0%2C0c0%2C0-0.162%2C3.354-0.388%2C4.371l0%2C0%20%20c-0.049%2C0.215-0.103%2C0.427-0.158%2C0.644l0%2C0c0.812%2C2.268%2C2.121%2C4.292%2C3.68%2C5.75l0%2C0c0.615%2C0.575%2C1.393%2C1.038%2C2.128%2C1.461l0%2C0%20%20c1.605-0.229%2C3.084-0.338%2C4.318-0.324l0%2C0c1.637%2C0.021%2C2.838%2C0.265%2C3.324%2C0.743l0%2C0c0.237%2C0.232%2C0.335%2C0.514%2C0.364%2C0.83l0%2C0%20%20c0.007%2C0.122-0.053%2C0.41-0.069%2C0.482l0%2C0c0.018-0.088%2C0.018-0.519-1.298-0.938l0%2C0c-1.033-0.33-2.971-0.32-5.295-0.073l0%2C0%20%20c2.688%2C1.315%2C5.308%2C1.969%2C6.138%2C1.577l0%2C0c0.203-0.1%2C0.448-0.437%2C0.448-0.437l0%2C0c0%2C0-0.146%2C0.665-0.252%2C0.831l0%2C0%20%20c-0.134%2C0.18-0.396%2C0.376-0.646%2C0.44l0%2C0c-1.312%2C0.351-4.722-0.459-7.695-2.158l0%2C0c-3.322%2C0.489-6.972%2C1.394-9.896%2C2.354l0%2C0%20%20c-2.874%2C5.036-5.036%2C7.35-6.793%2C6.47l0%2C0l-0.646-0.325c-0.263-0.149-0.303-0.516-0.242-0.813l0%2C0%20%20c0.205-1.003%2C1.462-2.513%2C3.988-4.021l0%2C0c0.272-0.165%2C1.483-0.805%2C1.483-0.805l0%2C0c0%2C0-0.896%2C0.868-1.106%2C1.038l0%2C0%20%20c-2.016%2C1.652-3.504%2C3.73-3.467%2C4.536l0%2C0l0.007%2C0.069C2.643%2C24.936%2C5.21%2C21.45%2C8.512%2C14.989%20M9.559%2C15.525%20%20c-0.551%2C1.038-1.09%2C2.001-1.588%2C2.886l0%2C0c2.752-1.153%2C5.715-1.892%2C8.535-2.416l0%2C0c-0.379-0.262-0.746-0.539-1.093-0.832l0%2C0%20%20c-1.555-1.313-2.737-2.955-3.596-4.681l0%2C0C11.273%2C11.948%2C10.626%2C13.507%2C9.559%2C15.525%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdfa { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.875%2018.648L11.9617%2018.4783C12.7401%2016.954%2013.6102%2015.2503%2014.312%2013.541L14.6%2012.841C13.65%209.225%2013.08%206.322%2013.589%204.445C13.726%203.956%2014.293%203.659%2014.899%203.659L15.268%203.664H15.336C16.166%203.651%2016.556%204.706%2016.6%205.117C16.673%205.8%2016.357%206.956%2016.357%206.956L16.3571%206.87946C16.358%206.40944%2016.3594%205.70047%2016.081%205.083C15.738%204.33%2015.41%203.879%2015.116%203.808C14.968%203.907%2014.824%204.112%2014.774%204.507C14.671%205.06%2014.641%205.759%2014.641%206.119C14.641%207.391%2014.891%209.071%2015.384%2010.802C15.477%2010.534%2015.558%2010.276%2015.624%2010.035C15.725%209.655%2016.367%207.134%2016.367%207.134C16.367%207.134%2016.205%2010.489%2015.979%2011.505C15.931%2011.72%2015.877%2011.932%2015.821%2012.149C16.633%2014.417%2017.942%2016.441%2019.501%2017.899C19.9467%2018.3157%2020.4779%2018.6735%2021.0164%2019H29C30.1046%2019%2031%2019.8954%2031%2021V29C31%2030.1046%2030.1046%2031%2029%2031H17C15.8954%2031%2015%2030.1046%2015%2029V21.5492C13.6156%2021.9019%2012.2807%2022.2896%2011.07%2022.687C8.19599%2027.724%206.03499%2030.038%204.27699%2029.158L3.62999%2028.833C3.36699%2028.683%203.32699%2028.317%203.38799%2028.02C3.59299%2027.017%204.84999%2025.507%207.37599%2023.999C7.64799%2023.834%208.85899%2023.194%208.85899%2023.194C8.85899%2023.194%207.96299%2024.062%207.75299%2024.232C5.73699%2025.884%204.24899%2027.962%204.28599%2028.768L4.29299%2028.837C6.00499%2028.594%208.57299%2025.109%2011.875%2018.648ZM18.775%2018.822C18.8461%2018.882%2018.918%2018.9413%2018.9906%2019H17C15.9681%2019%2015.1187%2019.7815%2015.0114%2020.785C13.7648%2021.146%2012.529%2021.5689%2011.333%2022.07C11.831%2021.185%2012.37%2020.222%2012.921%2019.184C13.989%2017.166%2014.636%2015.607%2015.18%2014.141C16.038%2015.867%2017.221%2017.508%2018.775%2018.822ZM21.5553%2027.3521H24.4447L24.9995%2029H26.7518L23.7581%2021.002H22.231L19.2537%2029H21.006L21.5553%2027.3521ZM23.9998%2026.0172H22.0002L22.9945%2023.0234L23.9998%2026.0172Z%22%20class%3D%22cls-1%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pptx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2265%22%20height%3D%2265%22%20viewBox%3D%2219.951%2032.432%2065.000002%2065.000003%22%20xml%3Aspace%3D%22preserve%22%20%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M%2051.31066%2C44.356609%20C%2047.702785%2C44.433229%2043.9488%2C45.107%2040.5548%2C44.9445%20c%20-0.149%2C13.35%20-0.123719%2C26.7115%20-0.01172%2C40.0625%202.476001%2C0.199%204.9625%2C0.412%207.4375%2C0.625%20-0.011%2C-4.888%206.72e-4%2C-9.776062%200.01367%2C-14.664062%203.088%2C0.100999%206.336828%2C0.300562%209.173828%2C-1.148438%207.988%2C-3.913%209.413391%2C-15.938562%204.025391%2C-22.476562%20-2.8125%2C-2.544001%20-6.274937%2C-3.062954%20-9.882812%2C-2.986329%20z%20m%20-0.416016%2C7.244141%20c%201.641035%2C0.04387%203.222344%2C0.409844%204.261719%2C1.855469%201.425%2C2.45%201.350109%2C5.676172%200.162109%2C8.201172%20-1.425%2C2.575%20-4.650672%2C2.325%20-7.138672%2C2.625%20-0.262%2C-4.188%20-0.236218%2C-8.377172%20-0.199219%2C-12.576172%200.923626%2C-0.04237%201.929442%2C-0.131789%202.914063%2C-0.105469%20z%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-potx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-potx%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22potx%22%20clip-path%3D%22url(%23clip-potx)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cpath%20id%3D%22Path_25%22%20data-name%3D%22Path%2025%22%20d%3D%22M412.988%2C119c-1.658.033-3.382.327-4.94.257-.068%2C5.822-.057%2C11.646%2C0%2C17.467%2C1.136.087%2C2.279.18%2C3.415.273%2C0-2.132%2C0-4.263.006-6.395a8.88%2C8.88%2C0%2C0%2C0%2C4.213-.5c3.669-1.707%2C4.323-6.95%2C1.85-9.8a6.428%2C6.428%2C0%2C0%2C0-4.538-1.3Zm-.192%2C3.159a2.353%2C2.353%2C0%2C0%2C1%2C1.956.809%2C3.776%2C3.776%2C0%2C0%2C1%2C.075%2C3.576c-.655%2C1.124-2.136%2C1.014-3.278%2C1.145-.121-1.826-.108-3.652-.093-5.484C411.881%2C122.189%2C412.343%2C122.15%2C412.8%2C122.162Z%22%20transform%3D%22translate(-404%20-117)%22%20class%3D%22cls-1%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-odp { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%20-54.11%20193.63%20193.63%22%20height%3D%22193.63px%22%20width%3D%22193.63px%22%20y%3D%220px%22%20x%3D%220px%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M193.16%2C5.615V5.609c-0.334-0.173-0.671-0.334-1.005-0.497%20%20c-5.356-2.586-11.256-4.287-17.525-4.88c-11.083-1.049-21.673%2C1.496-30.622%2C6.678c-6.13-3.477-13.071-5.741-20.542-6.448%20%20c-10.298-0.974-20.17%2C1.16-28.697%2C5.629c-0.084%2C0.044-0.17%2C0.095-0.251%2C0.135c-0.207%2C0.162-0.347%2C0.414-0.347%2C0.697%20%20c0%2C0.492%2C0.392%2C0.89%2C0.889%2C0.89c0.046%2C0%2C0.091-0.007%2C0.139-0.017c0.021-0.002%2C0.042-0.011%2C0.061-0.015%20%20c4.586-0.848%2C9.368-1.088%2C14.243-0.627c13.684%2C1.293%2C25.609%2C5.521%2C33.975%2C15.011c0.437%2C0.455%2C0.822%2C0.427%2C1.266-0.024%20%20c10.523-12.2%2C26.662-17.021%2C44.006-15.382c0.968%2C0.094%2C1.921%2C0.213%2C2.871%2C0.355c0.33%2C0.05%2C0.836%2C0.134%2C1.133%2C0.167%20%20c0.572%2C0.063%2C0.88-0.397%2C0.88-0.891C193.629%2C6.056%2C193.485%2C5.776%2C193.16%2C5.615L193.16%2C5.615z%22%20class%3D%22cls-1%22%20%2F%3E%3Cpath%20d%3D%22M173.054%2C48.544c-0.057-0.028-0.107-0.046-0.154-0.065%20%20c-10.518-4.35-22.021-6.758-34.094-6.758c-19.293%2C0-37.154%2C6.127-51.757%2C16.524c-11.146-4.993-23.497-7.776-36.496-7.776%20%20c-18.485%2C0-35.648%2C5.617-49.895%2C15.237c-0.047%2C0.029-0.095%2C0.066-0.149%2C0.104C0.205%2C66.044%2C0%2C66.418%2C0%2C66.848%20%20c0%2C0.729%2C0.592%2C1.323%2C1.323%2C1.323c0.086%2C0%2C0.174-0.013%2C0.259-0.03c0.058-0.015%2C0.107-0.027%2C0.161-0.048%20%20c8.166-2.456%2C16.832-3.791%2C25.798-3.791c23.836%2C0%2C45.083%2C5.634%2C61.08%2C20.681c0.038%2C0.028%2C0.071%2C0.065%2C0.111%2C0.104%20%20c0.232%2C0.205%2C0.53%2C0.325%2C0.863%2C0.325c0.412%2C0%2C0.774-0.188%2C1.018-0.486c0.006%2C0.005%2C0.515-0.72%2C0.773-1.069%20%20c16.246-22.217%2C43.03-33.172%2C72.845-33.172c2.129%2C0%2C4.246%2C0.08%2C6.338%2C0.225c0.602%2C0.047%2C1.873%2C0.144%2C1.902%2C0.144%20%20c0.727%2C0%2C1.322-0.591%2C1.322-1.323C173.796%2C49.203%2C173.492%2C48.752%2C173.054%2C48.544L173.054%2C48.544z%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-otp { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-otp%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22otp%22%20clip-path%3D%22url(%23clip-otp)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_33%22%20data-name%3D%22Path%2033%22%20d%3D%22M125.173%2C121h0c-.046-.03-.093-.059-.141-.088a6.133%2C6.133%2C0%2C0%2C0-2.467-.869%2C6.014%2C6.014%2C0%2C0%2C0-4.309%2C1.188%2C6.223%2C6.223%2C0%2C0%2C0-2.892-1.147%2C5.965%2C5.965%2C0%2C0%2C0-4.039%2C1l-.036.024a.176.176%2C0%2C0%2C0-.049.125.145.145%2C0%2C0%2C0%2C.126.158l.019%2C0a.019.019%2C0%2C0%2C0%2C.009%2C0%2C5.781%2C5.781%2C0%2C0%2C1%2C2.005-.111%2C6.41%2C6.41%2C0%2C0%2C1%2C4.782%2C2.669c.06.081.115.076.178%2C0a6.288%2C6.288%2C0%2C0%2C1%2C6.194-2.735c.136.017.27.038.4.064.047.009.119.024.161.03.08.011.123-.071.123-.159A.155.155%2C0%2C0%2C0%2C125.173%2C121Z%22%20transform%3D%22translate(-94.24%20-116)%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_34%22%20data-name%3D%22Path%2034%22%20d%3D%22M126.894%2C125.978a.175.175%2C0%2C0%2C0-.022-.011%2C11.686%2C11.686%2C0%2C0%2C0-4.905-1.082%2C11.924%2C11.924%2C0%2C0%2C0-7.444%2C2.647%2C11.725%2C11.725%2C0%2C0%2C0-5.251-1.245%2C11.884%2C11.884%2C0%2C0%2C0-7.176%2C2.441.229.229%2C0%2C0%2C0-.022.016.217.217%2C0%2C0%2C0-.073.167.2.2%2C0%2C0%2C0%2C.191.211.167.167%2C0%2C0%2C0%2C.037%2C0%2C.118.118%2C0%2C0%2C0%2C.023-.008%2C11.679%2C11.679%2C0%2C0%2C1%2C3.71-.608c3.429%2C0%2C6.486.9%2C8.787%2C3.315a.093.093%2C0%2C0%2C1%2C.016.016.172.172%2C0%2C0%2C0%2C.123.052.18.18%2C0%2C0%2C0%2C.147-.078s.075-.115.111-.171a12.1%2C12.1%2C0%2C0%2C1%2C10.479-5.315c.306%2C0%2C.611.014.912.037l.273.022a.2.2%2C0%2C0%2C0%2C.191-.211A.211.211%2C0%2C0%2C0%2C126.894%2C125.978Z%22%20transform%3D%22translate(-100%20-115.885)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-users { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%207C16%209.34102%2015.4162%2011.1346%2014.6143%2012.3121C13.8071%2013.4974%2012.8337%2014%2012%2014C11.1663%2014%2010.1929%2013.4974%209.38574%2012.3121C8.5838%2011.1346%208%209.34102%208%207C8%204.61508%209.97853%203%2012%203C14.0215%203%2016%204.61508%2016%207ZM15.1891%2013.2201C14.2865%2014.375%2013.1451%2015%2012%2015C10.8549%2015%209.71347%2014.375%208.81092%2013.2201C7.40473%2013.7844%206.21268%2014.3488%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.7873%2014.3488%2016.5953%2013.7844%2015.1891%2013.2201ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-app-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2014H16C18.2091%2014%2020%2015.7909%2020%2018C20%2020.2091%2018.2091%2022%2016%2022H7C4.79086%2022%203%2020.2091%203%2018C3%2015.7909%204.79086%2014%207%2014ZM16%2013C18.7614%2013%2021%2015.2386%2021%2018C21%2020.7614%2018.7614%2023%2016%2023H7C4.23858%2023%202%2020.7614%202%2018C2%2015.2386%204.23858%2013%207%2013H16Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2020C14.8954%2020%2014%2019.1046%2014%2018C14%2016.8954%2014.8954%2016%2016%2016C17.1046%2016%2018%2016.8954%2018%2018C18%2019.1046%2017.1046%2020%2016%2020ZM16%2021C14.3431%2021%2013%2019.6569%2013%2018C13%2016.3431%2014.3431%2015%2016%2015C17.6569%2015%2019%2016.3431%2019%2018C19%2019.6569%2017.6569%2021%2016%2021Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%203H7C4.79086%203%203%204.79086%203%207C3%209.20914%204.79086%2011%207%2011H16C18.2091%2011%2020%209.20914%2020%207C20%204.79086%2018.2091%203%2016%203ZM7%202C4.23858%202%202%204.23858%202%207C2%209.76142%204.23858%2012%207%2012H16C18.7614%2012%2021%209.76142%2021%207C21%204.23858%2018.7614%202%2016%202H7Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%209C8.10457%209%209%208.10457%209%207C9%205.89543%208.10457%205%207%205C5.89543%205%205%205.89543%205%207C5%208.10457%205.89543%209%207%209ZM7%2010C8.65685%2010%2010%208.65685%2010%207C10%205.34315%208.65685%204%207%204C5.34315%204%204%205.34315%204%207C4%208.65685%205.34315%2010%207%2010Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-cut { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23cut)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.22427%2022.2702C4.51527%2023.1269%206.52738%2022.7183%207.6592%2021.0127C8.79101%2019.3071%208.38572%2017.2943%207.09472%2016.4376C5.80372%2015.5809%203.79161%2015.9896%202.65979%2017.6952C1.52798%2019.4008%201.93328%2021.4136%203.22427%2022.2702ZM2.67135%2023.1035C4.51208%2024.325%207.11827%2023.6364%208.49243%2021.5656C9.8666%2019.4948%209.48837%2016.8259%207.64764%2015.6044C5.80691%2014.3829%203.20072%2015.0714%201.82656%2017.1422C0.452398%2019.2131%200.830625%2021.882%202.67135%2023.1035Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.9158%2022.2702C19.6248%2023.1269%2017.6127%2022.7183%2016.4809%2021.0127C15.349%2019.3071%2015.7543%2017.2943%2017.0453%2016.4376C18.3363%2015.5809%2020.3484%2015.9896%2021.4803%2017.6952C22.6121%2019.4008%2022.2068%2021.4136%2020.9158%2022.2702ZM21.4687%2023.1035C19.628%2024.325%2017.0218%2023.6364%2015.6476%2021.5656C14.2735%2019.4948%2014.6517%2016.8259%2016.4924%2015.6044C18.3331%2014.3829%2020.9393%2015.0714%2022.3135%2017.1422C23.6877%2019.2131%2023.3094%2021.882%2021.4687%2023.1035Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M16.4924%2015.6044L13.9037%2012.4737L19.9552%200.675715C20.0693%200.446914%2019.9552%200.172352%2019.727%200.0808313C19.4416%20-0.0106892%2019.0993%200.0808312%2018.9851%200.263872L12.0233%2011.4212L5.17562%200.263872C5.06149%200.035071%204.71911%20-0.0564496%204.43379%200.035071C4.14847%200.126592%204.03434%200.401153%204.14847%200.629955L10.2001%2012.4279L7.64761%2015.6044L9.2292%2018L12.0233%2013.4804L14.9108%2018L16.4924%2015.6044Z%22%20fill%3D%22white%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22cut%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-copy { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201H15V7H16V0H0V17H8V16H1V1Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M23%208H9V23H23V8ZM8%207V24H24V7H8Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13%205H3V4H13V5Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%209H3V8H8V9Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%2013H3V12H8V13Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H11V11H21V12Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H11V15H21V16Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H11V19H21V20Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-paste { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-menu-comment { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M10%2015C10%2016.6569%208.65685%2018%207%2018C5.34315%2018%204%2016.6569%204%2015C4%2013.3431%205.34315%2012%207%2012C8.65685%2012%2010%2013.3431%2010%2015ZM7%2016.7143C7.94677%2016.7143%208.71429%2015.9468%208.71429%2015C8.71429%2014.0532%207.94677%2013.2857%207%2013.2857C6.05323%2013.2857%205.28571%2014.0532%205.28571%2015C5.28571%2015.9468%206.05323%2016.7143%207%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%2015C18%2016.6569%2016.6569%2018%2015%2018C13.3431%2018%2012%2016.6569%2012%2015C12%2013.3431%2013.3431%2012%2015%2012C16.6569%2012%2018%2013.3431%2018%2015ZM15%2016.7143C15.9468%2016.7143%2016.7143%2015.9468%2016.7143%2015C16.7143%2014.0532%2015.9468%2013.2857%2015%2013.2857C14.0532%2013.2857%2013.2857%2014.0532%2013.2857%2015C13.2857%2015.9468%2014.0532%2016.7143%2015%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M26%2015C26%2016.6569%2024.6569%2018%2023%2018C21.3431%2018%2020%2016.6569%2020%2015C20%2013.3431%2021.3431%2012%2023%2012C24.6569%2012%2026%2013.3431%2026%2015ZM23%2016.7143C23.9468%2016.7143%2024.7143%2015.9468%2024.7143%2015C24.7143%2014.0532%2023.9468%2013.2857%2023%2013.2857C22.0532%2013.2857%2021.2857%2014.0532%2021.2857%2015C21.2857%2015.9468%2022.0532%2016.7143%2023%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81574%2014.7407%207.34084%2014.7345%207.04258%2015.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment.check { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%200H30V30H0V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545V8.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81575%2014.7407%207.34084%2014.7345%207.04258%2015.0228V15.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%234cd964%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insert-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.1538%209.00708H11.8462C10.8266%209.00708%2010%209.83461%2010%2010.8554V15.1694C10%2016.1902%2010.8266%2017.0177%2011.8462%2017.0177H13.8329C13.9409%2017.0177%2014.0454%2017.0556%2014.1284%2017.1248L18.243%2020.392C18.5436%2020.6428%2019%2020.4288%2019%2020.037V17.4798C19%2017.2246%2019.2066%2017.0177%2019.4615%2017.0177H20.1538C21.1734%2017.0177%2022%2016.1902%2022%2015.1694V10.8554C22%209.83461%2021.1734%209.00708%2020.1538%209.00708ZM20%2010.0083C20.5523%2010.0083%2021%2010.4565%2021%2011.0095V15.0154C21%2015.5683%2020.5523%2016.0165%2020%2016.0165H18.0025L18%2018.8995C18%2019.2912%2018%2019%2018%2019L14.5%2016.0165H12C11.4477%2016.0165%2011%2015.5683%2011%2015.0154V11.0095C11%2010.4565%2011.4477%2010.0083%2012%2010.0083H20Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M14.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V12.0346C2%2013.3222%203.18908%2014.013%204.5%2014.013H5.5C5.82773%2014.013%206%2014.1917%206%2014.5136V17.5183C6%2018.0125%206.6135%2018.3352%207%2018.0189L11%2014.9858V13.5L7%2016.5V13.0118H4.5C3.78992%2013.0118%203%2012.732%203%2012.0346V5.50295C3%204.80547%203.78992%204.00118%204.5%204.00118H14.5C15.2101%204.00118%2016%204.80547%2016%205.50295V8.0059H17V5.50295C17%204.2153%2015.8109%203%2014.5%203Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-slide { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4%206C4%204.89543%204.89543%204%206%204H18C19.1046%204%2020%204.89543%2020%206V18C20%2019.1046%2019.1046%2020%2018%2020H6C4.89543%2020%204%2019.1046%204%2018V6ZM11%2010.9333V8H13V10.9333H16V12.9333H13V16H11V12.9333H8V10.9333H11Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-table { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M1%202H22V21H1V2ZM12%203H21V8H12V3ZM12%209H21V14H12V9ZM11%2014V9H2V14H11ZM2%2015V20H11V15H2ZM12%2015H21V20H12V15ZM11%203V8H2V3H11Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-slide { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4%206C4%204.89543%204.89543%204%206%204H18C19.1046%204%2020%204.89543%2020%206V18C20%2019.1046%2019.1046%2020%2018%2020H6C4.89543%2020%204%2019.1046%204%2018V6ZM11%2010.9333V8H13V10.9333H16V12.9333H13V16H11V12.9333H8V10.9333H11Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: #aa5252; -} -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: 44px; - bottom: 0; - height: auto; - overflow: hidden; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -#editor_sdk.with-logo { - top: 68px; -} -#add-table .page, -#add-shape .page { - background-color: #fff; -} -.table-styles .row, -.table-styles .row li { - margin-bottom: 12px; -} -.table-styles li { - margin: 0; - padding: 1px; -} -.table-styles li img { - width: 70px; - height: 50px; -} -.shapes li { - width: 70px; - height: 70px; - margin: 0 1px; -} -.shapes li .thumb { - width: 100%; - height: 100%; - background-color: #aa5252; -} -.bullets ul, -.numbers ul { - margin-top: 10px; -} -.bullets li, -.numbers li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; -} -html.pixel-ratio-2 .bullets li, -html.pixel-ratio-2 .numbers li { - border: 0.5px solid #c4c4c4; -} -html.pixel-ratio-3 .bullets li, -html.pixel-ratio-3 .numbers li { - border: 0.33px solid #c4c4c4; -} -.bullets li .thumb, -.numbers li .thumb { - width: 100%; - height: 100%; - background-color: #ffffff; - background-size: cover; -} -.bullets li .thumb label, -.numbers li .thumb label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; -} -.slide-layout .row { - margin-bottom: 12px; -} -.slide-layout li { - margin: 0; - padding: 1px; -} -.slide-layout li img { - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15); -} -.slide-theme .row { - margin-top: 14px; - margin-bottom: 12px; -} -.slide-theme .row div { - margin: 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15); - width: 85px; - height: 38px; -} -.slide-theme .item-theme { - background-image: url('../../../../../../sdkjs/common/Images/themes_thumbnail.png'); -} -.chart-types li { - width: 60px; - height: 60px; - margin: 6px; -} -.chart-types li .thumb { - width: 100%; - height: 100%; - background-size: contain; -} -.range-slider input[type=range]::-webkit-slider-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - z-index: 10; - -webkit-appearance: none; -} -.modal.modal-in { - max-height: 100%; - overflow: auto; -} -.doc-placeholder { - background: #f5f5f5; - width: 100%; - height: 100%; - left: 0; - top: 0; - bottom: 0; - right: 0; - z-index: 1; - position: absolute; - padding-top: 12px; -} -.doc-placeholder .slide-h { - display: flex; - flex-direction: column; - justify-content: center; - flex-grow: 1; - width: 90%; - height: 100%; - margin: 0 auto; -} -.doc-placeholder .slide-v { - display: flex; - position: relative; - flex-direction: column; - padding-bottom: 56.1333%; -} -.doc-placeholder .slide-container { - position: absolute; - height: 100%; - width: 100%; - background: #fbfbfb; - border: 1px solid #dfdfdf; - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; -} -.doc-placeholder .slide-container > .line { - height: 20%; - margin: 0 120px; - border-radius: 6px; - background: #f5f5f5; -} -.doc-placeholder .slide-container > .line:nth-child(1) { - height: 30%; - margin: 10% 80px 0; -} -.doc-placeholder .slide-container > .line.empty { - background: transparent; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #8e8e93; -} diff --git a/apps/presentationeditor/mobile/resources/css/app-material.css b/apps/presentationeditor/mobile/resources/css/app-material.css deleted file mode 100644 index cbc39d22a..000000000 --- a/apps/presentationeditor/mobile/resources/css/app-material.css +++ /dev/null @@ -1,7670 +0,0 @@ -html, -body, -.framework7-root { - position: relative; - height: 100%; - width: 100%; - overflow-x: hidden; -} -body { - font-family: Roboto, Noto, Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; - color: #212121; - font-size: 14px; - line-height: 1.5; - width: 100%; - -webkit-text-size-adjust: 100%; - background: #fff; - overflow: hidden; -} -.framework7-root { - overflow: hidden; -} -* { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -a, -input, -textarea, -select { - outline: 0; -} -a { - text-decoration: none; - color: #aa5252; -} -p { - margin: 1em 0; -} -/* === Grid === */ -.row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.row > [class*="col-"] { - box-sizing: border-box; -} -.row .col-auto { - width: 100%; -} -.row .col-100 { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); -} -.row.no-gutter .col-100 { - width: 100%; -} -.row .col-95 { - width: 95%; - width: -webkit-calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); -} -.row.no-gutter .col-95 { - width: 95%; -} -.row .col-90 { - width: 90%; - width: -webkit-calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); -} -.row.no-gutter .col-90 { - width: 90%; -} -.row .col-85 { - width: 85%; - width: -webkit-calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); -} -.row.no-gutter .col-85 { - width: 85%; -} -.row .col-80 { - width: 80%; - width: -webkit-calc((100% - 16px*0.25) / 1.25); - width: calc((100% - 16px*0.25) / 1.25); -} -.row.no-gutter .col-80 { - width: 80%; -} -.row .col-75 { - width: 75%; - width: -webkit-calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); -} -.row.no-gutter .col-75 { - width: 75%; -} -.row .col-70 { - width: 70%; - width: -webkit-calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); -} -.row.no-gutter .col-70 { - width: 70%; -} -.row .col-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); -} -.row.no-gutter .col-66 { - width: 66.66666666666666%; -} -.row .col-65 { - width: 65%; - width: -webkit-calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); -} -.row.no-gutter .col-65 { - width: 65%; -} -.row .col-60 { - width: 60%; - width: -webkit-calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); -} -.row.no-gutter .col-60 { - width: 60%; -} -.row .col-55 { - width: 55%; - width: -webkit-calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); -} -.row.no-gutter .col-55 { - width: 55%; -} -.row .col-50 { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); -} -.row.no-gutter .col-50 { - width: 50%; -} -.row .col-45 { - width: 45%; - width: -webkit-calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); -} -.row.no-gutter .col-45 { - width: 45%; -} -.row .col-40 { - width: 40%; - width: -webkit-calc((100% - 16px*1.5) / 2.5); - width: calc((100% - 16px*1.5) / 2.5); -} -.row.no-gutter .col-40 { - width: 40%; -} -.row .col-35 { - width: 35%; - width: -webkit-calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 16px*1.8571428571428572) / 2.857142857142857); -} -.row.no-gutter .col-35 { - width: 35%; -} -.row .col-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); -} -.row.no-gutter .col-33 { - width: 33.333333333333336%; -} -.row .col-30 { - width: 30%; - width: -webkit-calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); -} -.row.no-gutter .col-30 { - width: 30%; -} -.row .col-25 { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); -} -.row.no-gutter .col-25 { - width: 25%; -} -.row .col-20 { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); -} -.row.no-gutter .col-20 { - width: 20%; -} -.row .col-15 { - width: 15%; - width: -webkit-calc((100% - 16px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 16px*5.666666666666667) / 6.666666666666667); -} -.row.no-gutter .col-15 { - width: 15%; -} -.row .col-10 { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); -} -.row.no-gutter .col-10 { - width: 10%; -} -.row .col-5 { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); -} -.row.no-gutter .col-5 { - width: 5%; -} -.row .col-auto:nth-last-child(1), -.row .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); -} -.row.no-gutter .col-auto:nth-last-child(1), -.row.no-gutter .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; -} -.row .col-auto:nth-last-child(2), -.row .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); -} -.row.no-gutter .col-auto:nth-last-child(2), -.row.no-gutter .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; -} -.row .col-auto:nth-last-child(3), -.row .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); -} -.row.no-gutter .col-auto:nth-last-child(3), -.row.no-gutter .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; -} -.row .col-auto:nth-last-child(4), -.row .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); -} -.row.no-gutter .col-auto:nth-last-child(4), -.row.no-gutter .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; -} -.row .col-auto:nth-last-child(5), -.row .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); -} -.row.no-gutter .col-auto:nth-last-child(5), -.row.no-gutter .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; -} -.row .col-auto:nth-last-child(6), -.row .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 16px*5) / 6); - width: calc((100% - 16px*5) / 6); -} -.row.no-gutter .col-auto:nth-last-child(6), -.row.no-gutter .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; -} -.row .col-auto:nth-last-child(7), -.row .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 16px*6) / 7); - width: calc((100% - 16px*6) / 7); -} -.row.no-gutter .col-auto:nth-last-child(7), -.row.no-gutter .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; -} -.row .col-auto:nth-last-child(8), -.row .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 16px*7) / 8); - width: calc((100% - 16px*7) / 8); -} -.row.no-gutter .col-auto:nth-last-child(8), -.row.no-gutter .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; -} -.row .col-auto:nth-last-child(9), -.row .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 16px*8) / 9); - width: calc((100% - 16px*8) / 9); -} -.row.no-gutter .col-auto:nth-last-child(9), -.row.no-gutter .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; -} -.row .col-auto:nth-last-child(10), -.row .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); -} -.row.no-gutter .col-auto:nth-last-child(10), -.row.no-gutter .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; -} -.row .col-auto:nth-last-child(11), -.row .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 16px*10) / 11); - width: calc((100% - 16px*10) / 11); -} -.row.no-gutter .col-auto:nth-last-child(11), -.row.no-gutter .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; -} -.row .col-auto:nth-last-child(12), -.row .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 16px*11) / 12); - width: calc((100% - 16px*11) / 12); -} -.row.no-gutter .col-auto:nth-last-child(12), -.row.no-gutter .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; -} -.row .col-auto:nth-last-child(13), -.row .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 16px*12) / 13); - width: calc((100% - 16px*12) / 13); -} -.row.no-gutter .col-auto:nth-last-child(13), -.row.no-gutter .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; -} -.row .col-auto:nth-last-child(14), -.row .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 16px*13) / 14); - width: calc((100% - 16px*13) / 14); -} -.row.no-gutter .col-auto:nth-last-child(14), -.row.no-gutter .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; -} -.row .col-auto:nth-last-child(15), -.row .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 16px*14) / 15); - width: calc((100% - 16px*14) / 15); -} -.row.no-gutter .col-auto:nth-last-child(15), -.row.no-gutter .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; -} -.row .col-auto:nth-last-child(16), -.row .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 16px*15) / 16); - width: calc((100% - 16px*15) / 16); -} -.row.no-gutter .col-auto:nth-last-child(16), -.row.no-gutter .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; -} -.row .col-auto:nth-last-child(17), -.row .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 16px*16) / 17); - width: calc((100% - 16px*16) / 17); -} -.row.no-gutter .col-auto:nth-last-child(17), -.row.no-gutter .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; -} -.row .col-auto:nth-last-child(18), -.row .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 16px*17) / 18); - width: calc((100% - 16px*17) / 18); -} -.row.no-gutter .col-auto:nth-last-child(18), -.row.no-gutter .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; -} -.row .col-auto:nth-last-child(19), -.row .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 16px*18) / 19); - width: calc((100% - 16px*18) / 19); -} -.row.no-gutter .col-auto:nth-last-child(19), -.row.no-gutter .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; -} -.row .col-auto:nth-last-child(20), -.row .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); -} -.row.no-gutter .col-auto:nth-last-child(20), -.row.no-gutter .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; -} -.row .col-auto:nth-last-child(21), -.row .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 16px*20) / 21); - width: calc((100% - 16px*20) / 21); -} -.row.no-gutter .col-auto:nth-last-child(21), -.row.no-gutter .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; -} -@media all and (min-width: 768px) { - .row .tablet-100 { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); - } - .row.no-gutter .tablet-100 { - width: 100%; - } - .row .tablet-95 { - width: 95%; - width: -webkit-calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - } - .row.no-gutter .tablet-95 { - width: 95%; - } - .row .tablet-90 { - width: 90%; - width: -webkit-calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - } - .row.no-gutter .tablet-90 { - width: 90%; - } - .row .tablet-85 { - width: 85%; - width: -webkit-calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - } - .row.no-gutter .tablet-85 { - width: 85%; - } - .row .tablet-80 { - width: 80%; - width: -webkit-calc((100% - 16px*0.25) / 1.25); - width: calc((100% - 16px*0.25) / 1.25); - } - .row.no-gutter .tablet-80 { - width: 80%; - } - .row .tablet-75 { - width: 75%; - width: -webkit-calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - } - .row.no-gutter .tablet-75 { - width: 75%; - } - .row .tablet-70 { - width: 70%; - width: -webkit-calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - } - .row.no-gutter .tablet-70 { - width: 70%; - } - .row .tablet-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - } - .row.no-gutter .tablet-66 { - width: 66.66666666666666%; - } - .row .tablet-65 { - width: 65%; - width: -webkit-calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - } - .row.no-gutter .tablet-65 { - width: 65%; - } - .row .tablet-60 { - width: 60%; - width: -webkit-calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - } - .row.no-gutter .tablet-60 { - width: 60%; - } - .row .tablet-55 { - width: 55%; - width: -webkit-calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - } - .row.no-gutter .tablet-55 { - width: 55%; - } - .row .tablet-50 { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); - } - .row.no-gutter .tablet-50 { - width: 50%; - } - .row .tablet-45 { - width: 45%; - width: -webkit-calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - } - .row.no-gutter .tablet-45 { - width: 45%; - } - .row .tablet-40 { - width: 40%; - width: -webkit-calc((100% - 16px*1.5) / 2.5); - width: calc((100% - 16px*1.5) / 2.5); - } - .row.no-gutter .tablet-40 { - width: 40%; - } - .row .tablet-35 { - width: 35%; - width: -webkit-calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - } - .row.no-gutter .tablet-35 { - width: 35%; - } - .row .tablet-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); - } - .row.no-gutter .tablet-33 { - width: 33.333333333333336%; - } - .row .tablet-30 { - width: 30%; - width: -webkit-calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - } - .row.no-gutter .tablet-30 { - width: 30%; - } - .row .tablet-25 { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); - } - .row.no-gutter .tablet-25 { - width: 25%; - } - .row .tablet-20 { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); - } - .row.no-gutter .tablet-20 { - width: 20%; - } - .row .tablet-15 { - width: 15%; - width: -webkit-calc((100% - 16px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 16px*5.666666666666667) / 6.666666666666667); - } - .row.no-gutter .tablet-15 { - width: 15%; - } - .row .tablet-10 { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); - } - .row.no-gutter .tablet-10 { - width: 10%; - } - .row .tablet-5 { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); - } - .row.no-gutter .tablet-5 { - width: 5%; - } - .row .tablet-auto:nth-last-child(1), - .row .tablet-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); - } - .row.no-gutter .tablet-auto:nth-last-child(1), - .row.no-gutter .tablet-auto:nth-last-child(1) ~ .tablet-auto { - width: 100%; - } - .row .tablet-auto:nth-last-child(2), - .row .tablet-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); - } - .row.no-gutter .tablet-auto:nth-last-child(2), - .row.no-gutter .tablet-auto:nth-last-child(2) ~ .tablet-auto { - width: 50%; - } - .row .tablet-auto:nth-last-child(3), - .row .tablet-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); - } - .row.no-gutter .tablet-auto:nth-last-child(3), - .row.no-gutter .tablet-auto:nth-last-child(3) ~ .tablet-auto { - width: 33.33333333%; - } - .row .tablet-auto:nth-last-child(4), - .row .tablet-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); - } - .row.no-gutter .tablet-auto:nth-last-child(4), - .row.no-gutter .tablet-auto:nth-last-child(4) ~ .tablet-auto { - width: 25%; - } - .row .tablet-auto:nth-last-child(5), - .row .tablet-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); - } - .row.no-gutter .tablet-auto:nth-last-child(5), - .row.no-gutter .tablet-auto:nth-last-child(5) ~ .tablet-auto { - width: 20%; - } - .row .tablet-auto:nth-last-child(6), - .row .tablet-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 16px*5) / 6); - width: calc((100% - 16px*5) / 6); - } - .row.no-gutter .tablet-auto:nth-last-child(6), - .row.no-gutter .tablet-auto:nth-last-child(6) ~ .tablet-auto { - width: 16.66666667%; - } - .row .tablet-auto:nth-last-child(7), - .row .tablet-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 16px*6) / 7); - width: calc((100% - 16px*6) / 7); - } - .row.no-gutter .tablet-auto:nth-last-child(7), - .row.no-gutter .tablet-auto:nth-last-child(7) ~ .tablet-auto { - width: 14.28571429%; - } - .row .tablet-auto:nth-last-child(8), - .row .tablet-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 16px*7) / 8); - width: calc((100% - 16px*7) / 8); - } - .row.no-gutter .tablet-auto:nth-last-child(8), - .row.no-gutter .tablet-auto:nth-last-child(8) ~ .tablet-auto { - width: 12.5%; - } - .row .tablet-auto:nth-last-child(9), - .row .tablet-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 16px*8) / 9); - width: calc((100% - 16px*8) / 9); - } - .row.no-gutter .tablet-auto:nth-last-child(9), - .row.no-gutter .tablet-auto:nth-last-child(9) ~ .tablet-auto { - width: 11.11111111%; - } - .row .tablet-auto:nth-last-child(10), - .row .tablet-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); - } - .row.no-gutter .tablet-auto:nth-last-child(10), - .row.no-gutter .tablet-auto:nth-last-child(10) ~ .tablet-auto { - width: 10%; - } - .row .tablet-auto:nth-last-child(11), - .row .tablet-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 16px*10) / 11); - width: calc((100% - 16px*10) / 11); - } - .row.no-gutter .tablet-auto:nth-last-child(11), - .row.no-gutter .tablet-auto:nth-last-child(11) ~ .tablet-auto { - width: 9.09090909%; - } - .row .tablet-auto:nth-last-child(12), - .row .tablet-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 16px*11) / 12); - width: calc((100% - 16px*11) / 12); - } - .row.no-gutter .tablet-auto:nth-last-child(12), - .row.no-gutter .tablet-auto:nth-last-child(12) ~ .tablet-auto { - width: 8.33333333%; - } - .row .tablet-auto:nth-last-child(13), - .row .tablet-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 16px*12) / 13); - width: calc((100% - 16px*12) / 13); - } - .row.no-gutter .tablet-auto:nth-last-child(13), - .row.no-gutter .tablet-auto:nth-last-child(13) ~ .tablet-auto { - width: 7.69230769%; - } - .row .tablet-auto:nth-last-child(14), - .row .tablet-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 16px*13) / 14); - width: calc((100% - 16px*13) / 14); - } - .row.no-gutter .tablet-auto:nth-last-child(14), - .row.no-gutter .tablet-auto:nth-last-child(14) ~ .tablet-auto { - width: 7.14285714%; - } - .row .tablet-auto:nth-last-child(15), - .row .tablet-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 16px*14) / 15); - width: calc((100% - 16px*14) / 15); - } - .row.no-gutter .tablet-auto:nth-last-child(15), - .row.no-gutter .tablet-auto:nth-last-child(15) ~ .tablet-auto { - width: 6.66666667%; - } - .row .tablet-auto:nth-last-child(16), - .row .tablet-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 16px*15) / 16); - width: calc((100% - 16px*15) / 16); - } - .row.no-gutter .tablet-auto:nth-last-child(16), - .row.no-gutter .tablet-auto:nth-last-child(16) ~ .tablet-auto { - width: 6.25%; - } - .row .tablet-auto:nth-last-child(17), - .row .tablet-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 16px*16) / 17); - width: calc((100% - 16px*16) / 17); - } - .row.no-gutter .tablet-auto:nth-last-child(17), - .row.no-gutter .tablet-auto:nth-last-child(17) ~ .tablet-auto { - width: 5.88235294%; - } - .row .tablet-auto:nth-last-child(18), - .row .tablet-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 16px*17) / 18); - width: calc((100% - 16px*17) / 18); - } - .row.no-gutter .tablet-auto:nth-last-child(18), - .row.no-gutter .tablet-auto:nth-last-child(18) ~ .tablet-auto { - width: 5.55555556%; - } - .row .tablet-auto:nth-last-child(19), - .row .tablet-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 16px*18) / 19); - width: calc((100% - 16px*18) / 19); - } - .row.no-gutter .tablet-auto:nth-last-child(19), - .row.no-gutter .tablet-auto:nth-last-child(19) ~ .tablet-auto { - width: 5.26315789%; - } - .row .tablet-auto:nth-last-child(20), - .row .tablet-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); - } - .row.no-gutter .tablet-auto:nth-last-child(20), - .row.no-gutter .tablet-auto:nth-last-child(20) ~ .tablet-auto { - width: 5%; - } - .row .tablet-auto:nth-last-child(21), - .row .tablet-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 16px*20) / 21); - width: calc((100% - 16px*20) / 21); - } - .row.no-gutter .tablet-auto:nth-last-child(21), - .row.no-gutter .tablet-auto:nth-last-child(21) ~ .tablet-auto { - width: 4.76190476%; - } -} -/* === Views === */ -.views, -.view { - position: relative; - width: 100%; - height: 100%; - z-index: 5000; -} -.views { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.view { - overflow: hidden; - box-sizing: border-box; -} -/* === Pages === */ -.pages { - position: relative; - width: 100%; - height: 100%; - overflow: hidden; -} -.page { - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #fff; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page.cached { - display: none; -} -.page-on-left { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page-on-right { - opacity: 0; - pointer-events: none; - -webkit-transform: translate3d(0, 56px, 0); - transform: translate3d(0, 56px, 0); -} -.page-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - box-sizing: border-box; - height: 100%; - position: relative; - z-index: 1; -} -.page-transitioning { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.page-from-right-to-center { - pointer-events: none; - -webkit-animation: pageFromRightToCenter 300ms forwards; - animation: pageFromRightToCenter 300ms forwards; -} -.page-from-center-to-right { - pointer-events: none; - -webkit-animation: pageFromCenterToRight 300ms forwards; - animation: pageFromCenterToRight 300ms forwards; -} -@-webkit-keyframes pageFromRightToCenter { - from { - opacity: 0; - -webkit-transform: translate3d(0, 56px, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromRightToCenter { - from { - opacity: 0; - transform: translate3d(0, 56px, 0); - } - to { - opacity: 1; - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes pageFromCenterToRight { - from { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } - to { - opacity: 0; - -webkit-transform: translate3d(0, 56px, 0); - } -} -@keyframes pageFromCenterToRight { - from { - opacity: 1; - transform: translate3d(0, 0, 0); - } - to { - opacity: 0; - transform: translate3d(0, 56px, 0); - } -} -.page-from-center-to-left { - -webkit-animation: pageFromCenterToLeft 300ms forwards; - animation: pageFromCenterToLeft 300ms forwards; -} -.page-from-left-to-center { - -webkit-animation: pageFromLeftToCenter 300ms forwards; - animation: pageFromLeftToCenter 300ms forwards; -} -@-webkit-keyframes pageFromCenterToLeft { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@keyframes pageFromCenterToLeft { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@-webkit-keyframes pageFromLeftToCenter { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@keyframes pageFromLeftToCenter { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -/* === Toolbars === */ -.navbar-inner, -.toolbar-inner { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - box-sizing: border-box; - overflow: hidden; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.navbar-inner { - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; -} -.toolbar-inner { - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.navbar-inner.cached { - display: none; -} -.navbar, -.toolbar { - width: 100%; - box-sizing: border-box; - position: relative; - margin: 0; - z-index: 500; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - color: #fff; -} -.navbar b, -.toolbar b { - font-weight: 500; -} -.navbar ~ .toolbar { - z-index: 499; -} -.navbar, -.toolbar, -.subnavbar { - background: #aa5252; -} -.navbar a.link, -.toolbar a.link, -.subnavbar a.link { - text-decoration: none; - position: relative; - color: #fff; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - padding: 0 16px; - min-width: 48px; -} -.navbar a.link:before, -.toolbar a.link:before, -.subnavbar a.link:before { - content: ''; - width: 152%; - height: 152%; - position: absolute; - left: -26%; - top: -26%; - background-image: -webkit-radial-gradient(center, circle cover, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-image: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-repeat: no-repeat; - background-position: center; - background-size: 100% 100%; - opacity: 0; - pointer-events: none; - -webkit-transition-duration: 600ms; - transition-duration: 600ms; -} -html:not(.watch-active-state) .navbar a.link:active:before, -html:not(.watch-active-state) .toolbar a.link:active:before, -html:not(.watch-active-state) .subnavbar a.link:active:before, -.navbar a.link.active-state:before, -.toolbar a.link.active-state:before, -.subnavbar a.link.active-state:before { - opacity: 1; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.navbar a.link i + span, -.toolbar a.link i + span, -.subnavbar a.link i + span, -.navbar a.link i + i, -.toolbar a.link i + i, -.subnavbar a.link i + i, -.navbar a.link span + i, -.toolbar a.link span + i, -.subnavbar a.link span + i, -.navbar a.link span + span, -.toolbar a.link span + span, -.subnavbar a.link span + span { - margin-left: 8px; -} -.navbar a.icon-only, -.toolbar a.icon-only, -.subnavbar a.icon-only { - min-width: 0; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.navbar i.icon, -.toolbar i.icon, -.subnavbar i.icon { - display: block; -} -.navbar .center, -.subnavbar .center { - font-size: 20px; - font-weight: 500; - text-align: center; - margin: 0 16px; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - line-height: 56px; - display: inline-block; - text-align: left; -} -.navbar .left, -.subnavbar .left, -.navbar .right, -.subnavbar .right { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar .right, -.subnavbar .right { - margin-left: auto; -} -.navbar .right:first-child, -.subnavbar .right:first-child { - position: absolute; - right: 16px; - height: 100%; -} -.navbar { - left: 0; - top: 0; - height: 56px; - font-size: 20px; -} -.navbar a.link { - line-height: 56px; - height: 56px; -} -.popup .navbar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.subnavbar { - height: 48px; - width: 100%; - position: absolute; - left: 0; - top: 100%; - z-index: 20; - box-sizing: border-box; - padding: 0 16px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - overflow: hidden; -} -.subnavbar a.link { - line-height: 48px; - height: 48px; -} -.subnavbar .center { - line-height: 48px; -} -.subnavbar .center:first-child { - margin-left: 56px; -} -.navbar.no-border .subnavbar { - margin-top: 0; -} -.navbar-on-left .subnavbar, -.navbar-on-right .subnavbar { - pointer-events: none; -} -.navbar .subnavbar, -.page .subnavbar { - position: absolute; -} -.page > .subnavbar { - top: 0; - margin-top: 0; -} -.subnavbar > .buttons-row { - width: 100%; -} -.subnavbar .searchbar, -.subnavbar.searchbar { - position: absolute; -} -.subnavbar.searchbar, -.subnavbar .searchbar { - position: absolute; -} -.subnavbar .searchbar { - left: 0; - top: 0; -} -.toolbar { - left: 0; - bottom: 0; - height: 48px; - font-size: 14px; -} -.toolbar a.link { - line-height: 48px; - height: 48px; -} -.toolbar a { - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; -} -.tabbar { - z-index: 5001; - overflow: hidden; - bottom: auto; - top: 0; -} -.tabbar .toolbar-inner { - padding-left: 0; - padding-right: 0; -} -.tabbar a.link { - line-height: 1.4; -} -.tabbar a.tab-link, -.tabbar a.link { - height: 100%; - width: 100%; - box-sizing: border-box; - padding-left: 0; - padding-right: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex: 1; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; - font-size: 14px; - text-transform: uppercase; -} -.tabbar i.icon { - height: 24px; -} -.tabbar a.tab-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - overflow: hidden; - color: rgba(255, 255, 255, 0.7); - position: relative; -} -.tabbar a.tab-link.active, -html:not(.watch-active-state) .tabbar a.tab-link:active, -.tabbar a.tab-link.active-state { - color: #ffffff; -} -.tabbar .tab-link-highlight { - position: absolute; - left: 0; - bottom: 0; - height: 3px; - background: #763939; - background: rgba(255, 255, 255, 0.5); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabbar-labels { - height: 72px; -} -.tabbar-labels a.tab-link, -.tabbar-labels a.link { - padding-top: 12px; - padding-bottom: 12px; - height: 100%; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.tabbar-labels span.tabbar-label { - line-height: 1; - display: block; - margin: 0; - margin-top: 10px; - position: relative; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - max-width: 100%; -} -.tabbar-scrollable .toolbar-inner { - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - overflow: auto; -} -.tabbar-scrollable .toolbar-inner::-webkit-scrollbar { - display: none !important; - width: 0 !important; - height: 0 !important; - -webkit-appearance: none; - opacity: 0 !important; -} -.tabbar-scrollable a.tab-link, -.tabbar-scrollable a.link { - width: auto; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -ms-flex: 0; - padding: 0 16px; -} -.toolbar-bottom { - bottom: 0; - top: auto; -} -.toolbar-bottom .tab-link-highlight { - bottom: auto; - top: 0; -} -.subnavbar input[type="text"], -.navbar input[type="text"], -.subnavbar input[type="password"], -.navbar input[type="password"], -.subnavbar input[type="search"], -.navbar input[type="search"], -.subnavbar input[type="email"], -.navbar input[type="email"], -.subnavbar input[type="tel"], -.navbar input[type="tel"], -.subnavbar input[type="url"], -.navbar input[type="url"] { - box-sizing: border-box; - width: 100%; - height: 32px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 0; - font-family: inherit; - color: #fff; - font-size: 16px; - font-weight: 400; - background-color: transparent; - padding: 0; - border-bottom: 1px solid #fff; -} -.subnavbar input[type="text"]::-webkit-input-placeholder, -.navbar input[type="text"]::-webkit-input-placeholder, -.subnavbar input[type="password"]::-webkit-input-placeholder, -.navbar input[type="password"]::-webkit-input-placeholder, -.subnavbar input[type="search"]::-webkit-input-placeholder, -.navbar input[type="search"]::-webkit-input-placeholder, -.subnavbar input[type="email"]::-webkit-input-placeholder, -.navbar input[type="email"]::-webkit-input-placeholder, -.subnavbar input[type="tel"]::-webkit-input-placeholder, -.navbar input[type="tel"]::-webkit-input-placeholder, -.subnavbar input[type="url"]::-webkit-input-placeholder, -.navbar input[type="url"]::-webkit-input-placeholder { - color: #ffffff; - opacity: 1; -} -/* === Relation between toolbar/navbar types and pages === */ -.page > .navbar, -.view > .navbar, -.views > .navbar, -.page > .toolbar, -.view > .toolbar, -.views > .toolbar { - position: absolute; -} -.subnavbar ~ .page-content { - padding-top: 48px; -} -.toolbar-fixed .page-content, -.tabbar-fixed .page-content { - padding-top: 48px; -} -.tabbar-labels-fixed .page-content { - padding-top: 72px; -} -.toolbar ~ .page-content { - padding-top: 48px; -} -.tabbar-labels ~ .page-content { - padding-top: 72px; -} -.toolbar-bottom ~ .page-content, -.messagebar ~ .page-content { - padding-top: 0; - padding-bottom: 48px; -} -.tabbar-labels.toolbar-bottom ~ .page-content { - padding-bottom: 72px; -} -.navbar-fixed .page-content { - padding-top: 56px; -} -.navbar-fixed.toolbar-fixed .page-content, -.navbar-fixed.tabbar-fixed .page-content, -.navbar-fixed .toolbar-fixed .page-content, -.navbar-fixed .tabbar-fixed .page-content, -.toolbar-fixed .navbar-fixed .page-content, -.tabbar-fixed .navbar-fixed .page-content { - padding-top: 104px; -} -.navbar-fixed.tabbar-labels-fixed .page-content, -.navbar-fixed .tabbar-labels-fixed .page-content, -.tabbar-labels-fixed .navbar-fixed .page-content { - padding-top: 128px; -} -.navbar-fixed .toolbar ~ .page-content { - padding-top: 104px; -} -.navbar-fixed .messagebar ~ .page-content, -.navbar-fixed .toolbar-bottom ~ .page-content { - padding-top: 56px; -} -.navbar-fixed .tabbar-labels ~ .page-content { - padding-top: 128px; -} -.navbar-fixed .tabbar-labels.toolbar-bottom ~ .page-content { - padding-top: 56px; -} -.navbar-fixed .with-subnavbar .page-content, -.navbar-fixed .page-content.with-subnavbar, -.navbar-fixed .subnavbar ~ .page-content { - padding-top: 104px; -} -.navbar-fixed .page .subnavbar, -.navbar-fixed.page .subnavbar { - top: 56px; -} -.navbar-fixed .toolbar { - top: 56px; -} -.navbar-fixed .messagebar, -.navbar-fixed .toolbar-bottom { - top: auto; -} -.navbar.navbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar.navbar-hiding ~ .page-content .list-group-title, -.navbar.navbar-hiding ~ .pages .list-group-title, -.navbar.navbar-hiding ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .page-content .subnavbar, -.navbar.navbar-hiding ~ .pages .subnavbar, -.navbar.navbar-hiding ~ .page .subnavbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .subnavbar, -.navbar.navbar-hiding ~ .toolbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar.navbar-hidden ~ .page-content .list-group-title, -.navbar.navbar-hidden ~ .pages .list-group-title, -.navbar.navbar-hidden ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - top: -56px; -} -.navbar.navbar-hidden ~ .page-content .subnavbar, -.navbar.navbar-hidden ~ .pages .subnavbar, -.navbar.navbar-hidden ~ .page .subnavbar { - -webkit-transform: translate3d(0, -56px, 0); - transform: translate3d(0, -56px, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden ~ .subnavbar, -.navbar.navbar-hidden ~ .toolbar:not(.messagebar):not(.toolbar-bottom) { - -webkit-transform: translate3d(0, -56px, 0); - transform: translate3d(0, -56px, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page.no-navbar .page-content { - padding-top: 0; -} -.page.no-navbar.with-subnavbar .page-content, -.with-subnavbar .page.no-navbar .page-content, -.page.no-navbar .page-content.with-subnavbar { - padding-top: 48px; -} -.toolbar.toolbar-hiding, -.tabbar.toolbar-hiding, -.toolbar.tabbar-hiding, -.tabbar.tabbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar ~ .toolbar.toolbar-hidden, -.navbar ~ .tabbar.toolbar-hidden, -.navbar ~ .toolbar.tabbar-hidden, -.navbar ~ .tabbar.tabbar-hidden { - -webkit-transform: translate3d(0, -104px, 0); - transform: translate3d(0, -104px, 0); -} -.navbar ~ .toolbar.tabbar-labels.toolbar-hidden, -.navbar ~ .tabbar.tabbar-labels.toolbar-hidden { - -webkit-transform: translate3d(0, -128px, 0); - transform: translate3d(0, -128px, 0); -} -.toolbar.toolbar-hidden.messagebar, -.tabbar.toolbar-hidden.messagebar, -.toolbar.toolbar-hidden.toolbar-bottom, -.tabbar.toolbar-hidden.toolbar-bottom { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.page.no-toolbar .page-content, -.page.no-tabbar .page-content { - padding-bottom: 0; -} -/* === Search Bar === */ -.searchbar { - height: 48px; - width: 100%; - background: #aa5252; - box-sizing: border-box; - padding: 0 16px; - overflow: hidden; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - color: #fff; -} -.searchbar a { - position: relative; - color: #fff; -} -.searchbar a:before { - content: ''; - width: 152%; - height: 152%; - position: absolute; - left: -26%; - top: -26%; - background-image: -webkit-radial-gradient(center, circle cover, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-image: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-repeat: no-repeat; - background-position: center; - background-size: 100% 100%; - opacity: 0; - pointer-events: none; - -webkit-transition-duration: 600ms; - transition-duration: 600ms; -} -html:not(.watch-active-state) .searchbar a:active:before, -.searchbar a.active-state:before { - opacity: 1; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.searchbar .searchbar-input { - width: 100%; - height: 32px; - position: relative; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.searchbar input[type="search"] { - box-sizing: border-box; - width: 100%; - height: 32px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 0; - font-family: inherit; - color: #fff; - font-size: 16px; - font-weight: 400; - padding: 0; - border-bottom: 1px solid #fff; - height: 100%; - padding: 0 36px 0 24px; - background-color: transparent; - background-repeat: no-repeat; - background-position: 0 center; - opacity: 0.6; - -webkit-background-size: 24px 24px; - background-size: 24px 24px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M15.5%2014h-.79l-.28-.27C15.41%2012.59%2016%2011.11%2016%209.5%2016%205.91%2013.09%203%209.5%203S3%205.91%203%209.5%205.91%2016%209.5%2016c1.61%200%203.09-.59%204.23-1.57l.27.28v.79l5%204.99L20.49%2019l-4.99-5zm-6%200C7.01%2014%205%2011.99%205%209.5S7.01%205%209.5%205%2014%207.01%2014%209.5%2011.99%2014%209.5%2014z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.searchbar input[type="search"]::-webkit-input-placeholder { - color: #ffffff; - opacity: 1; -} -.searchbar input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -.searchbar .searchbar-clear { - position: absolute; - width: 56px; - height: 100%; - right: -16px; - top: 0; - opacity: 0; - pointer-events: none; - background-position: center; - background-repeat: no-repeat; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23fff'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 24px 24px; - background-size: 24px 24px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - cursor: pointer; -} -.searchbar .searchbar-cancel { - display: none; -} -.searchbar.searchbar-active input[type="search"] { - opacity: 1; -} -.searchbar.searchbar-active .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar.searchbar-not-empty .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 100; - opacity: 0; - pointer-events: none; - background: rgba(0, 0, 0, 0.25); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.searchbar-overlay.searchbar-overlay-active { - opacity: 1; - pointer-events: auto; -} -.searchbar-not-found { - display: none; -} -.hidden-by-searchbar, -.list-block .hidden-by-searchbar, -.list-block li.hidden-by-searchbar { - display: none; -} -.page > .searchbar { - position: absolute; - width: 100%; - left: 0; - top: 0; - z-index: 200; -} -.page > .searchbar ~ .page-content { - padding-top: 48px; -} -.navbar-fixed .page > .searchbar, -.navbar-through .page > .searchbar, -.navbar-fixed > .searchbar, -.navbar-through > .searchbar { - top: 56px; -} -.navbar-fixed .page > .searchbar ~ .page-content, -.navbar-through .page > .searchbar ~ .page-content, -.navbar-fixed > .searchbar ~ .page-content, -.navbar-through > .searchbar ~ .page-content { - padding-top: 104px; -} -/* === Message Bar === */ -.toolbar.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - background: #fff; - height: 48px; - top: auto; - bottom: 0; - font-size: 16px; - overflow: hidden; -} -.toolbar.messagebar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #d1d1d1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .toolbar.messagebar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .toolbar.messagebar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.toolbar.messagebar textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0; - box-shadow: none; - display: block; - padding: 3px 8px 3px; - margin: 0; - width: 100%; - height: 28px; - color: #333; - font-size: 16px; - line-height: 22px; - font-family: inherit; - resize: none; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.toolbar.messagebar a.link { - color: #333; - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; - height: 48px; - line-height: 48px; -} -.toolbar.messagebar a.link:before { - background-image: -webkit-radial-gradient(center, circle cover, rgba(0, 0, 0, 0.1) 66%, rgba(0, 0, 0, 0) 66%); - background-image: radial-gradient(circle at center, rgba(0, 0, 0, 0.1) 66%, rgba(0, 0, 0, 0) 66%); -} -.toolbar.messagebar .link { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.toolbar.messagebar ~ .page-content { - padding-bottom: 48px; -} -.page.no-toolbar .toolbar.messagebar ~ .page-content { - padding-bottom: 48px; -} -.hidden-toolbar .toolbar.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -/* === Icons === */ -i.icon { - display: inline-block; - vertical-align: middle; - background-size: 100% auto; - background-position: center; - background-repeat: no-repeat; - font-style: normal; - position: relative; - /* Material Icons http://google.github.io/material-design-icons/ */ -} -i.icon.icon-back { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M20%2011H7.83l5.59-5.59L12%204l-8%208%208%208%201.41-1.41L7.83%2013H20v-2z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-forward { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M12%204l-1.41%201.41L16.17%2011H4v2h12.17l-5.58%205.59L12%2020l8-8z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bars { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M3%2018h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-camera { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23333'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'3.2'%2F%3E%3Cpath%20d%3D'M9%202L7.17%204H4c-1.1%200-2%20.9-2%202v12c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V6c0-1.1-.9-2-2-2h-3.17L15%202H9zm3%2015c-2.76%200-5-2.24-5-5s2.24-5%205-5%205%202.24%205%205-2.24%205-5%205z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-f7 { - width: 24px; - height: 24px; - background-image: url("../img/i-f7-material.png"); - border-radius: 3px; -} -i.icon.icon-next, -i.icon.icon-prev { - width: 24px; - height: 24px; -} -i.icon.icon-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M10%206L8.59%207.41%2013.17%2012l-4.58%204.59L10%2018l6-6z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M15.41%207.41L14%206l-6%206%206%206%201.41-1.41L10.83%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 24px; - height: 24px; - font-size: 0; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%2013h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-close { - width: 24px; - height: 24px; - font-size: 0; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.badge { - font-size: 10px; - display: inline-block; - color: #fff; - background: #8e8e93; - border-radius: 3px; - padding: 1px 6px; - box-sizing: border-box; - vertical-align: middle; -} -.icon .badge { - position: absolute; - left: 100%; - margin-left: -10px; - top: -2px; - font-size: 10px; - line-height: 1.4; - padding: 1px 5px; -} -/* === Content Block === */ -.content-block { - margin: 32px 0; - padding: 0 16px; - box-sizing: border-box; -} -.content-block.no-hairlines:before, -.content-block.no-hairlines ul:before, -.content-block.no-hairlines .content-block-inner:before { - display: none; -} -.content-block.no-hairlines:after, -.content-block.no-hairlines ul:after, -.content-block.no-hairlines .content-block-inner:after { - display: none; -} -.content-block-title { - position: relative; - overflow: hidden; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - line-height: 1; - margin: 16px 16px 16px; - padding-top: 16px; - line-height: 16px; - font-weight: 500; - color: rgba(0, 0, 0, 0.54); -} -.content-block-title + .list-block, -.content-block-title + .content-block, -.content-block-title + .card { - margin-top: 0px; -} -.content-block-inner { - padding: 16px 16px; - margin-left: -16px; - width: 100%; - position: relative; -} -.content-block-inner:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .content-block-inner:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .content-block-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner > p:first-child { - margin-top: 0; -} -.content-block-inner > p:last-child { - margin-bottom: 0; -} -.content-block.inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 7px; -} -.content-block.inset .content-block-inner { - border-radius: 4px; -} -.content-block.inset .content-block-inner:before { - display: none; -} -.content-block.inset .content-block-inner:after { - display: none; -} -@media all and (min-width: 768px) { - .content-block.tablet-inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; - } - .content-block.tablet-inset .content-block-inner { - border-radius: 4px; - } - .content-block.tablet-inset .content-block-inner:before { - display: none; - } - .content-block.tablet-inset .content-block-inner:after { - display: none; - } -} -/* === Lists === */ -.list-block { - margin: 32px 0; - font-size: 16px; -} -.list-block ul { - list-style: none; - padding: 0; - margin: 0; - position: relative; -} -.list-block ul:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block ul:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block ul:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul ul { - padding-left: 56px; -} -.list-block ul ul:before { - display: none; -} -.list-block ul ul:after { - display: none; -} -.list-block .align-top, -.list-block .align-top .item-content, -.list-block .align-top .item-inner { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.list-block.inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; -} -.list-block.inset .content-block-title { - margin-left: 0; - margin-right: 0; -} -.list-block.inset ul { - border-radius: 4px; -} -.list-block.inset ul:before { - display: none; -} -.list-block.inset ul:after { - display: none; -} -.list-block.inset li:first-child > a { - border-radius: 4px 4px 0 0; -} -.list-block.inset li:last-child > a { - border-radius: 0 0 4px 4px; -} -.list-block.inset li:first-child:last-child > a { - border-radius: 4px; -} -@media all and (min-width: 768px) { - .list-block.tablet-inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 4px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 4px 4px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 4px 4px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 4px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 4px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 4px 4px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 4px 4px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 4px; - } -} -.list-block li { - box-sizing: border-box; - position: relative; -} -.list-block .item-media { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - box-sizing: border-box; - padding-top: 8px; - padding-bottom: 8px; - min-width: 40px; -} -.list-block .item-media i + i { - margin-left: 8px; -} -.list-block .item-media i + img { - margin-left: 8px; -} -.list-block .item-media + .item-inner { - margin-left: 16px; -} -.list-block .item-inner { - padding-right: 16px; - position: relative; - width: 100%; - padding-top: 8px; - padding-bottom: 8px; - min-height: 48px; - box-sizing: border-box; - -webkit-box-flex: 1; - -ms-flex: 1; - min-width: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-title { - min-width: 0; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - max-width: 100%; -} -.list-block .item-after { - white-space: nowrap; - color: #757575; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 8px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - max-height: 28px; - font-size: 14px; -} -.list-block .smart-select .item-after, -.list-block .autocomplete-opener .item-after { - max-width: 70%; - overflow: hidden; - text-overflow: ellipsis; - position: relative; - display: block; -} -.list-block .item-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: block; - color: inherit; - position: relative; - overflow: hidden; - z-index: 0; -} -.list-block .item-link .item-inner { - padding-right: 42px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; - background-repeat: no-repeat; - background-position: 95% center; - background-position: -webkit-calc(100% - 16px) center; - background-position: calc(100% - 16px) center; -} -html:not(.watch-active-state) .list-block .item-link:active, -.list-block .item-link.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.list-block .item-link.list-button { - padding: 0 16px; - font-size: 16px; - display: block; - line-height: 48px; -} -.list-block .item-content { - box-sizing: border-box; - padding-left: 16px; - min-height: 48px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.list-block .list-block-label { - margin: 10px 0 35px; - padding: 0 16px; - font-size: 14px; - color: rgba(0, 0, 0, 0.54); -} -.list-block .swipeout { - overflow: hidden; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.list-block .swipeout.deleting { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block .swipeout.deleting .swipeout-content { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout.transitioning .swipeout-content, -.list-block .swipeout.transitioning .swipeout-actions-right a, -.list-block .swipeout.transitioning .swipeout-actions-left a, -.list-block .swipeout.transitioning .swipeout-overswipe { - -webkit-transition: 300ms; - transition: 300ms; -} -.list-block .swipeout-content { - position: relative; - z-index: 10; -} -.list-block .swipeout-overswipe { - -webkit-transition: 200ms left; - transition: 200ms left; -} -.list-block .swipeout-actions-left, -.list-block .swipeout-actions-right { - position: absolute; - top: 0; - height: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; -} -.list-block .swipeout-actions-left a, -.list-block .swipeout-actions-right a { - padding: 0 24px; - color: #fff; - background: #c7c7cc; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - position: relative; - left: 0; -} -.list-block .swipeout-actions-left a:after, -.list-block .swipeout-actions-right a:after { - content: ''; - position: absolute; - top: 0; - width: 600%; - height: 100%; - background: inherit; - z-index: -1; -} -.list-block .swipeout-actions-left a.swipeout-delete, -.list-block .swipeout-actions-right a.swipeout-delete { - background: #f44336; -} -.list-block .swipeout-actions-right { - right: 0%; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} -.list-block .swipeout-actions-right a:after { - left: 100%; - margin-left: -1px; -} -.list-block .swipeout-actions-left { - left: 0%; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout-actions-left a:after { - right: 100%; - margin-right: -1px; -} -.list-block .item-subtitle { - font-size: 14px; - position: relative; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - text-overflow: ellipsis; -} -.list-block .item-text { - font-size: 14px; - color: #757575; - line-height: 20px; - position: relative; - overflow: hidden; - max-height: 40px; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - display: -webkit-box; -} -.list-block.media-list .item-inner, -.list-block li.media-item .item-inner { - display: block; - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block.media-list .item-link .item-inner, -.list-block li.media-item .item-link .item-inner { - background: none; - padding-right: 16px; -} -.list-block.media-list .item-link .item-title-row, -.list-block li.media-item .item-link .item-title-row { - padding-right: 26px; - background: no-repeat right top; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; -} -.list-block.media-list .item-media, -.list-block li.media-item .item-media { - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: flex-start; - -webkit-align-self: flex-start; - align-self: flex-start; -} -.list-block.media-list .item-media img, -.list-block li.media-item .item-media img { - display: block; -} -.list-block.media-list .item-title-row, -.list-block li.media-item .item-title-row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.list-block.media-list .item-content > .item-after, -.list-block li.media-item .item-content > .item-after { - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: flex-start; - -webkit-align-self: flex-start; - align-self: flex-start; -} -.list-block .list-group ul:after, -.list-block .list-group ul:before { - z-index: 11; -} -.list-block .list-group + .list-group ul:before { - display: none; -} -.list-block .item-divider, -.list-block .list-group-title { - background: #f4f4f4; - padding: 0px 16px; - white-space: nowrap; - position: relative; - max-width: 100%; - text-overflow: ellipsis; - overflow: hidden; - color: rgba(0, 0, 0, 0.54); - height: 48px; - box-sizing: border-box; - line-height: 48px; - font-size: 14px; -} -.list-block .item-divider:before, -.list-block .list-group-title:before { - display: none; -} -.list-block .list-group-title { - position: relative; - position: -webkit-sticky; - position: -moz-sticky; - position: sticky; - top: 0px; - z-index: 10; - margin-top: 0; -} -.list-block .sortable-handler { - position: absolute; - right: 0; - top: 0; - bottom: 1px; - z-index: 10; - background-repeat: no-repeat; - background-size: 18px 12px; - background-position: center; - width: 50px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2018%2012'%20fill%3D'%23c7c7cc'%3E%3Cpath%20d%3D'M0%2C2V0h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C7V5h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C12v-2h22v2H0z'%2F%3E%3C%2Fsvg%3E"); - opacity: 0; - visibility: hidden; - cursor: pointer; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable .item-inner { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable-opened .sortable-handler { - visibility: visible; - opacity: 1; -} -.list-block.sortable-opened .item-inner, -.list-block.sortable-opened .item-link .item-inner { - padding-right: 50px; -} -.list-block.sortable-opened .item-link .item-inner, -.list-block.sortable-opened .item-link .item-title-row { - background-image: none; -} -.list-block.sortable-sorting li { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block li.sorting { - z-index: 50; - background: rgba(255, 255, 255, 0.8); - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.list-block li.sorting .item-inner:after { - display: none; -} -.list-block li:last-child .list-button:after { - display: none; -} -.list-block li:last-child .item-inner:after, -.list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.list-block li li:last-child .item-inner:after, -.list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block.no-hairlines:before, -.list-block.no-hairlines ul:before, -.list-block.no-hairlines .content-block-inner:before { - display: none; -} -.list-block.no-hairlines:after, -.list-block.no-hairlines ul:after, -.list-block.no-hairlines .content-block-inner:after { - display: none; -} -.list-block.no-hairlines-between .item-inner:after, -.list-block.no-hairlines-between .list-button:after, -.list-block.no-hairlines-between .item-divider:after, -.list-block.no-hairlines-between .list-group-title:after, -.list-block.no-hairlines-between .list-group-title:after { - display: none; -} -/* === Forms === */ -.list-block input[type="text"], -.list-block input[type="password"], -.list-block input[type="search"], -.list-block input[type="email"], -.list-block input[type="tel"], -.list-block input[type="url"], -.list-block input[type="date"], -.list-block input[type="datetime-local"], -.list-block input[type="time"], -.list-block input[type="number"], -.list-block select, -.list-block textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0 0 0 0; - box-shadow: none; - display: block; - padding: 0; - margin: 0; - width: 100%; - height: 36px; - color: #212121; - font-size: 16px; - font-family: inherit; -} -.list-block input[type="text"]::-webkit-input-placeholder, -.list-block input[type="password"]::-webkit-input-placeholder, -.list-block input[type="search"]::-webkit-input-placeholder, -.list-block input[type="email"]::-webkit-input-placeholder, -.list-block input[type="tel"]::-webkit-input-placeholder, -.list-block input[type="url"]::-webkit-input-placeholder, -.list-block input[type="date"]::-webkit-input-placeholder, -.list-block input[type="datetime-local"]::-webkit-input-placeholder, -.list-block input[type="time"]::-webkit-input-placeholder, -.list-block input[type="number"]::-webkit-input-placeholder, -.list-block select::-webkit-input-placeholder, -.list-block textarea::-webkit-input-placeholder { - color: rgba(0, 0, 0, 0.35); -} -.list-block .label, -.list-block .floating-label { - vertical-align: top; - color: rgba(0, 0, 0, 0.65); - -webkit-transition-duration: 200ms; - transition-duration: 200ms; - width: 35%; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.list-block input[type="date"], -.list-block input[type="datetime-local"] { - line-height: 44px; -} -.list-block select { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -.list-block textarea { - resize: none; - line-height: 1.4; - padding-top: 8px; - padding-bottom: 7px; - height: 100px; -} -.list-block textarea.resizable { - height: 36px; -} -.list-block .item-input { - width: 100%; - -ms-flex: 1; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - font-size: 0; - position: relative; - margin-bottom: 4px; - min-height: 36px; -} -.list-block .input-item ul:after, -.list-block.inputs-list ul:after { - display: none; -} -.list-block .input-item .item-media, -.list-block.inputs-list .item-media { - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; - min-height: 36px; - margin-bottom: 8px; - padding: 0; -} -.list-block .input-item .item-inner, -.list-block.inputs-list .item-inner { - display: block; - margin-bottom: 4px; - padding-bottom: 0; -} -.list-block .input-item .item-inner:after, -.list-block.inputs-list .item-inner:after { - display: none; -} -.list-block .input-item .label, -.list-block.inputs-list .label, -.list-block .input-item .floating-label, -.list-block.inputs-list .floating-label { - width: 100%; - font-size: 12px; -} -.list-block .input-item .floating-label, -.list-block.inputs-list .floating-label { - -webkit-transform-origin: left; - transform-origin: left; - -webkit-transform: scale(1.33333333) translateY(21px); - transform: scale(1.33333333) translateY(21px); - color: rgba(0, 0, 0, 0.35); - width: auto; - max-width: 75%; -} -.list-block .input-item .floating-label ~ .item-input input::-webkit-input-placeholder, -.list-block.inputs-list .floating-label ~ .item-input input::-webkit-input-placeholder { - color: transparent; -} -.list-block .focus-state .floating-label, -.list-block .not-empty-state .floating-label { - color: rgba(0, 0, 0, 0.65); - -webkit-transform: scale(1) translateY(0); - transform: scale(1) translateY(0); -} -.list-block .focus-state .label, -.list-block .focus-state .floating-label { - color: #aa5252; -} -.item-input-field, -.input-field { - position: relative; -} -.item-input-field:after, -.input-field:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .item-input-field:after, -html.pixel-ratio-2 .input-field:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .item-input-field:after, -html.pixel-ratio-3 .input-field:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.item-input-field:after, -.input-field:after { - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -.item-input-field.focus-state:after, -.input-field.focus-state:after, -.item-input-field.not-empty-state:after, -.input-field.not-empty-state:after, -.focus-state .item-input-field:after, -.focus-state .input-field:after, -.not-empty-state .item-input-field:after, -.not-empty-state .input-field:after { - background: #aa5252; - -webkit-transform: scaleY(2) !important; - transform: scaleY(2) !important; -} -textarea.resizable { - overflow: hidden; -} -.label-switch { - display: inline-block; - vertical-align: middle; - width: 36px; - height: 14px; - position: relative; - cursor: pointer; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.label-switch .checkbox { - width: 36px; - border-radius: 36px; - box-sizing: border-box; - height: 14px; - background: #b0afaf; - z-index: 0; - margin: 0; - padding: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - cursor: pointer; - position: relative; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch .checkbox:after { - content: ' '; - height: 20px; - width: 20px; - border-radius: 20px; - background: #fff; - position: absolute; - z-index: 2; - top: -3px; - left: 0px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch input[type="checkbox"] { - display: none; -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: rgba(170, 82, 82, 0.5); -} -.label-switch input[type="checkbox"]:checked + .checkbox:after { - -webkit-transform: translateX(16px); - transform: translateX(16px); - background: #aa5252; -} -.item-input .label-switch { - top: 11px; -} -.button { - color: #aa5252; - text-decoration: none; - text-align: center; - display: block; - border-radius: 2px; - line-height: 36px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 36px; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - font-family: inherit; - cursor: pointer; - min-width: 64px; - padding: 0 8px; - position: relative; - overflow: hidden; - outline: 0; - border: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -input[type="submit"].button, -input[type="button"].button { - width: 100%; -} -html:not(.watch-active-state) .button:active, -.button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.button.button-fill { - background-color: #aa5252; - color: #fff; -} -html:not(.watch-active-state) .button.button-fill:active, -.button.button-fill.active-state { - background: #8e4545; -} -.button.button-big { - height: 48px; - line-height: 48px; - border-radius: 3px; -} -.button i.icon + span, -.button span:not(.ripple-wave) + span, -.button span:not(.ripple-wave) + i.icon, -.button i.icon + i.icon { - margin-left: 8px; -} -.navbar .button:not(.button-fill), -.toolbar .button:not(.button-fill), -.subnavbar .button:not(.button-fill), -.notifications .button:not(.button-fill) { - color: #fff; -} -html:not(.watch-active-state) .navbar .button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .button:not(.button-fill):active, -.navbar .button:not(.button-fill).active-state, -.toolbar .button:not(.button-fill).active-state, -.subnavbar .button:not(.button-fill).active-state, -.notifications .button:not(.button-fill).active-state { - background: rgba(255, 255, 255, 0.15); -} -.button-raised { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); -} -html:not(.watch-active-state) .button-raised:active, -.button-raised.active-state { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); -} -.buttons-row { - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.buttons-row .button { - margin-left: 16px; - width: 100%; - -webkit-box-flex: 1; - -ms-flex: 1; -} -.buttons-row .button:first-child { - margin-left: 0; -} -.range-slider { - width: 100%; - position: relative; - overflow: hidden; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.range-slider input[type="range"] { - position: relative; - height: 20px; - width: 100%; - margin: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: -webkit-gradient(linear, 50% 0, 50% 100%, color-stop(0, #b9b9b9), color-stop(100%, #b9b9b9)); - background: linear-gradient(to right, #b9b9b9 0, #b9b9b9 100%); - background-position: center; - background-size: 100% 2px; - background-repeat: no-repeat; - outline: 0; - -ms-background-position-y: 500px; -} -.range-slider input[type="range"]:focus, -.range-slider input[type="range"]:active { - border: 0; - outline: 0 none; -} -.range-slider input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #aa5252; - border-radius: 20px; -} -.range-slider input[type="range"]::-webkit-slider-thumb:before { - position: absolute; - top: 50%; - right: 100%; - width: 2000px; - height: 2px; - margin-top: -1px; - z-index: 1; - background: #aa5252; - content: ' '; -} -.range-slider input[type="range"]::-moz-range-track { - width: 100%; - height: 2px; - background: #b7b8b7; - border: none; - outline: 0; -} -.range-slider input[type="range"]::-moz-range-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #aa5252; - border-radius: 20px; -} -.range-slider input[type="range"]::-ms-track { - width: 100%; - height: 2px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; -} -.range-slider input[type="range"]::-ms-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #aa5252; - border-radius: 20px; -} -.range-slider input[type="range"]::-ms-fill-lower { - background: #aa5252; -} -.range-slider input[type="range"]::-ms-fill-upper { - background: #b7b8b7; -} -.item-input .range-slider { - top: 8px; -} -label.label-checkbox { - cursor: pointer; -} -label.label-checkbox i.icon-form-checkbox { - width: 18px; - height: 18px; - position: relative; - border-radius: 2px; - border: 2px solid #6d6d6d; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - background: transparent; -} -label.label-checkbox i.icon-form-checkbox:after { - content: ' '; - position: absolute; - width: 18px; - height: 18px; - left: -2px; - top: -2px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0; - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M9%2016.17L4.83%2012l-1.42%201.41L9%2019%2021%207l-1.41-1.41z'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 100% auto; - background-size: 100% auto; -} -label.label-checkbox input[type="checkbox"], -label.label-checkbox input[type="radio"] { - display: none; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="checkbox"]:checked ~ .item-after i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked ~ .item-after i.icon-form-checkbox, -label.label-checkbox input[type="checkbox"]:checked ~ .item-inner i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked ~ .item-inner i.icon-form-checkbox { - border-color: #aa5252; - background-color: #aa5252; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="checkbox"]:checked ~ .item-after i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked ~ .item-after i.icon-form-checkbox:after, -label.label-checkbox input[type="checkbox"]:checked ~ .item-inner i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked ~ .item-inner i.icon-form-checkbox:after { - opacity: 1; -} -label.label-radio { - cursor: pointer; -} -label.label-radio i.icon-form-radio { - width: 20px; - height: 20px; - position: relative; - border-radius: 20px; - border: 2px solid #6d6d6d; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-radio i.icon-form-radio:after { - content: ' '; - position: absolute; - width: 10px; - height: 10px; - left: 50%; - top: 50%; - margin-left: -5px; - margin-top: -5px; - background-color: #aa5252; - border-radius: 100%; - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-radio input[type="checkbox"], -label.label-radio input[type="radio"] { - display: none; -} -label.label-radio input[type="checkbox"]:checked + .item-media i.icon-form-radio, -label.label-radio input[type="radio"]:checked + .item-media i.icon-form-radio, -label.label-radio input[type="checkbox"]:checked ~ .item-after i.icon-form-radio, -label.label-radio input[type="radio"]:checked ~ .item-after i.icon-form-radio, -label.label-radio input[type="checkbox"]:checked ~ .item-inner i.icon-form-radio, -label.label-radio input[type="radio"]:checked ~ .item-inner i.icon-form-radio { - border-color: #aa5252; -} -label.label-radio input[type="checkbox"]:checked + .item-media i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked + .item-media i.icon-form-radio:after, -label.label-radio input[type="checkbox"]:checked ~ .item-after i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked ~ .item-after i.icon-form-radio:after, -label.label-radio input[type="checkbox"]:checked ~ .item-inner i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked ~ .item-inner i.icon-form-radio:after { - background-color: #aa5252; - -webkit-transform: scale(1); - transform: scale(1); -} -label.label-checkbox, -label.label-radio { - position: relative; - overflow: hidden; - z-index: 0; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-checkbox .item-after i.icon-form-checkbox, -label.label-radio .item-after i.icon-form-checkbox, -label.label-checkbox .item-after i.icon-form-radio, -label.label-radio .item-after i.icon-form-radio { - margin-left: 8px; - margin-right: 16px; -} -.media-list label.label-checkbox .item-media i.icon-form-checkbox, -.media-list label.label-radio .item-media i.icon-form-checkbox, -.media-item label.label-checkbox .item-media i.icon-form-checkbox, -.media-item label.label-radio .item-media i.icon-form-checkbox, -.media-list label.label-checkbox .item-media i.icon-form-radio, -.media-list label.label-radio .item-media i.icon-form-radio, -.media-item label.label-checkbox .item-media i.icon-form-radio, -.media-item label.label-radio .item-media i.icon-form-radio { - margin-top: 4px; -} -html:not(.watch-active-state) label.label-checkbox:active, -html:not(.watch-active-state) label.label-radio:active, -label.label-checkbox.active-state, -label.label-radio.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -html:not(.watch-active-state) label.label-checkbox:active .item-inner:after, -html:not(.watch-active-state) label.label-radio:active .item-inner:after, -label.label-checkbox.active-state .item-inner:after, -label.label-radio.active-state .item-inner:after { - background-color: transparent; -} -.smart-select select { - display: none; -} -/* === Floating Action Button === */ -.floating-button { - position: absolute; - right: 16px; - bottom: 16px; - width: 56px; - height: 56px; - border-radius: 50%; - z-index: 1500; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); - background-color: #aa5252; - color: #fff; - overflow: hidden; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; -} -html:not(.watch-active-state) .floating-button:active, -.floating-button.active-state { - background: #8e4545; -} -.floating-button-toolbar, -.speed-dial { - position: absolute; - right: 16px; - bottom: 16px; - z-index: 1500; -} -.floating-button-toolbar .floating-button, -.speed-dial .floating-button { - right: 0; - bottom: 0; - position: relative; -} -.speed-dial .floating-button i { - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.speed-dial .floating-button i + i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); - transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); - opacity: 0; -} -.speed-dial.speed-dial-opened .floating-button i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); - transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); - opacity: 0; -} -.speed-dial.speed-dial-opened .floating-button i + i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - opacity: 1; -} -.speed-dial-buttons { - position: absolute; - width: 40px; - left: 50%; - margin-left: -20px; - bottom: 100%; - margin-bottom: 16px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: reverse; - -moz-box-orient: vertical; - -moz-box-direction: reverse; - -ms-flex-direction: column-reverse; - -webkit-flex-direction: column-reverse; - flex-direction: column-reverse; - visibility: hidden; - pointer-events: none; -} -.speed-dial-buttons a { - width: 40px; - height: 40px; - opacity: 0; - color: #fff; - border-radius: 50%; - position: relative; - z-index: 1; - overflow: hidden; - background-color: #aa5252; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-transform: translate3d(0, 8px, 0) scale(0.3); - transform: translate3d(0, 8px, 0) scale(0.3); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; -} -html:not(.watch-active-state) .speed-dial-buttons a:active, -.speed-dial-buttons a.active-state { - background: #8e4545; -} -.speed-dial-buttons a + a { - margin-bottom: 16px; -} -.speed-dial-opened .speed-dial-buttons { - visibility: visible; - pointer-events: auto; -} -.speed-dial-opened .speed-dial-buttons a { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0) scaleY(1); - transform: translate3d(0, 0, 0) scaleY(1); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.speed-dial-opened .speed-dial-buttons a:nth-child(2) { - -webkit-transition-delay: 50ms; - transition-delay: 50ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(3) { - -webkit-transition-delay: 100ms; - transition-delay: 100ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(4) { - -webkit-transition-delay: 150ms; - transition-delay: 150ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(5) { - -webkit-transition-delay: 200ms; - transition-delay: 200ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(6) { - -webkit-transition-delay: 250ms; - transition-delay: 250ms; -} -.floating-button-to-popover.floating-button-to-popover { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.floating-button-to-popover.floating-button-to-popover-in { - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.floating-button-to-popover.floating-button-to-popover-in i { - opacity: 0; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.floating-button-to-popover.floating-button-to-popover-scale { - border-radius: 0; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - box-shadow: none; -} -.floating-button-to-popover.floating-button-to-popover-out { - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.floating-button-to-popover.floating-button-to-popover-out i { - opacity: 1; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; - -webkit-transition-delay: 200ms; - transition-delay: 200ms; -} -/* === Modals === */ -.modal-overlay, -.preloader-indicator-overlay, -.popup-overlay, -.picker-modal-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.4); - z-index: 13000; - visibility: hidden; - opacity: 0; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.modal-overlay.modal-overlay-visible, -.preloader-indicator-overlay.modal-overlay-visible, -.popup-overlay.modal-overlay-visible, -.picker-modal-overlay.modal-overlay-visible { - visibility: visible; - opacity: 1; -} -.popup-overlay { - z-index: 10500; -} -.picker-modal-overlay { - z-index: 12000; -} -.modal { - width: 280px; - position: absolute; - z-index: 13500; - left: 50%; - margin-left: -140px; - margin-top: 0; - top: 50%; - border-radius: 3px; - opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -ms-transition-property: -ms-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - color: #757575; - display: none; - background: #fff; - font-size: 16px; - box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); -} -.modal.modal-in { - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal.modal-out { - opacity: 0; - z-index: 13499; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(0.815); - transform: translate3d(0, 0, 0) scale(0.815); -} -.modal-inner { - padding: 24px 24px 20px; - position: relative; -} -.modal-title { - font-weight: 500; - font-size: 20px; - color: #212121; - line-height: 1.3; -} -.modal-title + .modal-text { - margin-top: 20px; -} -.modal-text { - line-height: 1.5; -} -.modal-buttons { - height: 48px; - padding: 6px 8px; - overflow: hidden; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; -} -.modal-buttons.modal-buttons-vertical { - display: block; - height: auto; - padding: 0 0 8px 0; -} -.modal-buttons.modal-buttons-vertical .modal-button { - margin-left: 0; - text-align: right; - height: 48px; - line-height: 48px; - border-radius: 0; - padding-left: 16px; - padding-right: 16px; -} -.modal-button, -.modal-buttons .button { - color: #aa5252; - text-decoration: none; - text-align: center; - display: block; - border-radius: 2px; - line-height: 36px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 36px; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - font-family: inherit; - cursor: pointer; - min-width: 64px; - padding: 0 8px; - position: relative; - overflow: hidden; - outline: 0; - border: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-user-select: none; - user-select: none; -} -input[type="submit"].modal-button, -input[type="submit"].modal-buttons .button, -input[type="button"].modal-button, -input[type="button"].modal-buttons .button { - width: 100%; -} -html:not(.watch-active-state) .modal-button:active, -html:not(.watch-active-state) .modal-buttons .button:active, -.modal-button.active-state, -.modal-buttons .button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.modal-button.button-fill, -.modal-buttons .button.button-fill { - background-color: #aa5252; - color: #fff; -} -html:not(.watch-active-state) .modal-button.button-fill:active, -html:not(.watch-active-state) .modal-buttons .button.button-fill:active, -.modal-button.button-fill.active-state, -.modal-buttons .button.button-fill.active-state { - background: #8e4545; -} -.modal-button.button-big, -.modal-buttons .button.button-big { - height: 48px; - line-height: 48px; - border-radius: 3px; -} -.modal-button i.icon + span, -.modal-buttons .button i.icon + span, -.modal-button span:not(.ripple-wave) + span, -.modal-buttons .button span:not(.ripple-wave) + span, -.modal-button span:not(.ripple-wave) + i.icon, -.modal-buttons .button span:not(.ripple-wave) + i.icon, -.modal-button i.icon + i.icon, -.modal-buttons .button i.icon + i.icon { - margin-left: 8px; -} -.navbar .modal-button:not(.button-fill), -.navbar .modal-buttons .button:not(.button-fill), -.toolbar .modal-button:not(.button-fill), -.toolbar .modal-buttons .button:not(.button-fill), -.subnavbar .modal-button:not(.button-fill), -.subnavbar .modal-buttons .button:not(.button-fill), -.notifications .modal-button:not(.button-fill), -.notifications .modal-buttons .button:not(.button-fill) { - color: #fff; -} -html:not(.watch-active-state) .navbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .navbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .modal-buttons .button:not(.button-fill):active, -.navbar .modal-button:not(.button-fill).active-state, -.navbar .modal-buttons .button:not(.button-fill).active-state, -.toolbar .modal-button:not(.button-fill).active-state, -.toolbar .modal-buttons .button:not(.button-fill).active-state, -.subnavbar .modal-button:not(.button-fill).active-state, -.subnavbar .modal-buttons .button:not(.button-fill).active-state, -.notifications .modal-button:not(.button-fill).active-state, -.notifications .modal-buttons .button:not(.button-fill).active-state { - background: rgba(255, 255, 255, 0.15); -} -.modal-button.active i.icon, -.modal-buttons .button.active i.icon { - background-color: #fff; -} -.modal-button.modal-button-bold, -.modal-buttons .button.modal-button-bold { - font-weight: 700; -} -.modal-button + .modal-button, -.modal-buttons .button + .modal-button { - margin-left: 4px; -} -.modal-no-buttons .modal-buttons { - display: none; -} -.actions-modal { - position: absolute; - left: 0; - bottom: 0; - z-index: 13500; - width: 100%; - background: #fff; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 100%; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-modal.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal.modal-out { - z-index: 13499; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.actions-modal-group { - position: relative; -} -.actions-modal-group:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #d2d2d6; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-modal-group:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-modal-group:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-modal-group:last-child:after { - display: none; -} -.actions-modal-button, -.actions-modal-label { - width: 100%; - font-weight: normal; - margin: 0; - box-sizing: border-box; - display: block; - position: relative; - padding: 0 16px; -} -.actions-modal-button a, -.actions-modal-label a { - text-decoration: none; - color: inherit; - display: block; -} -.actions-modal-button b, -.actions-modal-label b { - font-weight: 500; -} -.actions-modal-button.actions-modal-button-bold, -.actions-modal-label.actions-modal-button-bold { - font-weight: 500; -} -.actions-modal-button.actions-modal-button-red, -.actions-modal-label.actions-modal-button-red { - color: #f44336; -} -.actions-modal-button.disabled, -.actions-modal-label.disabled { - opacity: 0.95; - color: #9e9e9e; -} -.actions-modal-button { - cursor: pointer; - line-height: 48px; - font-size: 16px; - color: rgba(0, 0, 0, 0.87); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.actions-modal-button a, -.actions-modal-button { - position: relative; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -html:not(.watch-active-state) .actions-modal-button:active, -.actions-modal-button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.actions-modal-label { - font-size: 16px; - color: rgba(0, 0, 0, 0.54); - min-height: 56px; - line-height: 1.3; - padding-top: 12px; - padding-bottom: 12px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -input.modal-text-input { - box-sizing: border-box; - height: 36px; - background: #fff; - margin: 0; - margin-top: 15px; - padding: 0; - border: none; - width: 100%; - font-size: 16px; - font-family: inherit; - display: block; - box-shadow: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -input.modal-text-input::-webkit-input-placeholder { - color: rgba(0, 0, 0, 0.35); -} -input.modal-text-input + input.modal-text-input { - margin-top: 16px; -} -.popover { - width: 320px; - background: #fff; - z-index: 13500; - margin: 0; - top: 0; - opacity: 0; - left: 0; - border-radius: 3px; - position: absolute; - display: none; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - -webkit-transform: scale(0.85, 0.6); - transform: scale(0.85, 0.6); - -webkit-transition-property: opacity, -webkit-transform, border-radius; - -moz-transition-property: opacity, -moz-transform, border-radius; - transition-property: opacity, transform, border-radius; -} -.popover.popover-on-top { - -webkit-transform-origin: center bottom; - transform-origin: center bottom; -} -.popover.popover-on-bottom { - -webkit-transform-origin: center top; - transform-origin: center top; -} -.popover.modal-in { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 1; -} -.popover.modal-out { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0; -} -.popover .list-block { - margin: 0; -} -.popover .list-block:first-child:last-child ul:before { - display: none; -} -.popover .list-block:first-child:last-child ul:after { - display: none; -} -.popover .list-block ul { - background: none; -} -.popover .list-block ul:before { - display: none; -} -.popover .list-block:first-child ul { - border-radius: 3px 3px 0 0; -} -.popover .list-block:first-child li:first-child a { - border-radius: 3px 3px 0 0; -} -.popover .list-block:last-child ul { - border-radius: 0 0 3px 3px; -} -.popover .list-block:last-child ul:after { - display: none; -} -.popover .list-block:last-child li:last-child a { - border-radius: 0 0 3px 3px; -} -.popover .list-block:first-child:last-child li:first-child:last-child a, -.popover .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 3px; -} -.popover.popover-floating-button { - -webkit-transform-origin: center center; - transform-origin: center center; - -webkit-transform: scale(0.7); - transform: scale(0.7); - border-radius: 50%; - box-shadow: none; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.popover.popover-floating-button.modal-in { - border-radius: 0%; - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-delay: 200ms; - transition-delay: 200ms; - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -.popover.popover-floating-button.modal-out { - border-radius: 50%; - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.popover.popover-floating-button .list-block { - margin: 0; -} -.popover.popover-floating-button .list-block:first-child ul { - border-radius: 0; -} -.popover.popover-floating-button .list-block:first-child li:first-child a { - border-radius: 0; -} -.popover.popover-floating-button .list-block:last-child ul { - border-radius: 0; -} -.popover.popover-floating-button .list-block:last-child li:last-child a { - border-radius: 0; -} -.popover.popover-floating-button .list-block:first-child:last-child li:first-child:last-child a, -.popover.popover-floating-button .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 0; -} -.popover-inner { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-popover .list-block { - margin: 0; -} -.actions-popover-label { - padding: 8px 16px; - color: rgba(0, 0, 0, 0.54); - font-size: 16px; - line-height: 1.3; - padding-top: 12px; - padding-bottom: 12px; - position: relative; -} -.actions-popover-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #d2d2d6; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-popover-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-popover-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-popover-label:last-child:after { - display: none; -} -.popup, -.login-screen { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 11000; - background: #fff; - box-sizing: border-box; - display: none; - overflow: auto; - -webkit-overflow-scrolling: touch; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.popup.modal-in, -.login-screen.modal-in, -.popup.modal-out, -.login-screen.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.popup.modal-in, -.login-screen.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.popup.modal-out, -.login-screen.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.login-screen.modal-in, -.login-screen.modal-out { - display: block; -} -@media all and (min-width: 630px) and (min-height: 630px) { - .popup:not(.tablet-fullscreen) { - width: 630px; - height: 630px; - left: 50%; - top: 50%; - margin-left: -315px; - margin-top: -315px; - box-shadow: 0px 20px 44px rgba(0, 0, 0, 0.5); - border-radius: 3px; - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } - .popup:not(.tablet-fullscreen).modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - .popup:not(.tablet-fullscreen).modal-out { - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } -} -@media all and (max-width: 629px), (max-height: 629px) { - html.with-statusbar-overlay .popup { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; - } - html.with-statusbar-overlay .popup-overlay { - z-index: 9500; - } -} -html.with-statusbar-overlay .login-screen, -html.with-statusbar-overlay .popup.tablet-fullscreen { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; -} -.modal-preloader .modal-title, -.modal-preloader .modal-inner { - text-align: center; -} -.preloader-indicator-overlay { - visibility: visible; - opacity: 0; - background: none; -} -.preloader-indicator-modal { - position: absolute; - left: 50%; - top: 50%; - padding: 8px; - margin-left: -24px; - margin-top: -24px; - background: rgba(0, 0, 0, 0.8); - z-index: 13500; - border-radius: 4px; -} -.preloader-indicator-modal .preloader { - display: block; -} -.picker-modal { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 260px; - z-index: 12000; - display: none; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - background: #fff; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal.modal-in, -.picker-modal.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.picker-modal.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal .picker-modal-inner { - height: 100%; - position: relative; -} -.picker-modal .toolbar { - position: relative; - width: 100%; - top: 0; -} -.picker-modal .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px); - height: -moz-calc(100% - 48px); - height: calc(100% - 48px); -} -.picker-modal .toolbar a.link { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.picker-modal .picker-header, -.picker-modal .picker-footer { - height: 48px; -} -.picker-modal .picker-header { - background: #aa5252; -} -.picker-modal .picker-header + .toolbar .toolbar-inner { - overflow: visible; -} -.picker-modal .picker-header + .picker-footer + .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px * 3); - height: -moz-calc(100% - 48px * 3); - height: calc(100% - 48px * 3); -} -.picker-modal .picker-footer { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 48px; - padding: 6px 8px; - overflow: hidden; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; -} -.picker-modal .picker-footer.modal-buttons-vertical { - display: block; - height: auto; - padding: 0 0 8px 0; -} -.picker-modal .picker-footer.modal-buttons-vertical .modal-button { - margin-left: 0; - text-align: right; - height: 48px; - line-height: 48px; - border-radius: 0; - padding-left: 16px; - padding-right: 16px; -} -.picker-modal .picker-header + .picker-modal-inner, -.picker-modal .picker-footer + .picker-modal-inner { - height: -webkit-calc(100% - 48px); - height: -moz-calc(100% - 48px); - height: calc(100% - 48px); -} -.picker-modal .picker-header + .toolbar + .picker-modal-inner, -.picker-modal .picker-footer + .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px * 2); - height: -moz-calc(100% - 48px * 2); - height: calc(100% - 48px * 2); -} -.picker-modal.picker-modal-inline, -.popover .picker-modal { - display: block; - position: relative; - background: none; - z-index: inherit; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.picker-modal-inline .toolbar, -.popover .picker-modal .toolbar { - top: 0; -} -.popover .picker-modal { - width: auto; -} -.popover .picker-modal .toolbar:first-child, -.popover .picker-modal .picker-header:first-child { - border-radius: 2px 2px 0 0; -} -.picker-modal.smart-select-picker .list-block { - margin: 0; -} -.picker-modal.smart-select-picker .list-block ul:before { - display: none; -} -.picker-modal.smart-select-picker .list-block ul:after { - display: none; -} -/* === Panels === */ -.panel-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.2); - opacity: 0; - z-index: 5999; - display: none; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.panel { - z-index: 1000; - display: none; - background: #fff; - box-sizing: border-box; - overflow: auto; - -webkit-overflow-scrolling: touch; - position: absolute; - width: 260px; - top: 0; - height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.panel.panel-left.panel-cover { - z-index: 6000; - left: -260px; -} -.panel.panel-left.panel-reveal { - left: 0; -} -.panel.panel-right.panel-cover { - z-index: 6000; - right: -260px; -} -.panel.panel-right.panel-reveal { - right: 0; -} -body.with-panel-left-cover .panel, -body.with-panel-right-cover .panel { - box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); -} -body.with-panel-left-cover .views, -body.with-panel-right-cover .views { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -body.with-panel-left-cover .panel-overlay, -body.with-panel-right-cover .panel-overlay { - display: block; - opacity: 1; -} -body.with-panel-left-reveal .views, -body.with-panel-right-reveal .views { - box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-property: -webkit-transform, box-shadow; - -moz-transition-property: -moz-transform, box-shadow; - transition-property: transform, box-shadow; -} -body.with-panel-left-reveal .panel-overlay, -body.with-panel-right-reveal .panel-overlay { - background: rgba(0, 0, 0, 0); - display: block; - opacity: 0; -} -body.with-panel-left-reveal .views { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-reveal .panel-overlay { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-cover .panel-left { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-right-reveal .views { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-reveal .panel-overlay { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-cover .panel-right { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.panel-closing .panel-overlay { - display: block; -} -body.panel-closing .views { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-property: -webkit-transform, box-shadow; - -moz-transition-property: -moz-transform, box-shadow; - transition-property: transform, box-shadow; -} -/* === Tabs === */ -.tabs .tab { - display: none; -} -.tabs .tab.active { - display: block; -} -.tabs-animated-wrap { - position: relative; - width: 100%; - overflow: hidden; - height: 100%; -} -.tabs-animated-wrap > .tabs { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - height: 100%; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabs-animated-wrap > .tabs > .tab { - width: 100%; - display: block; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.tabs-swipeable-wrap { - height: 100%; -} -.tabs-swipeable-wrap > .tabs > .tab { - display: block; -} -/* === Messages === */ -.messages-content { - background: #eee; -} -.messages { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.messages-date { - text-align: center; - font-weight: 500; - font-size: 12px; - line-height: 1; - margin: 10px 15px; -} -.messages-date span { - font-weight: 400; -} -.message { - box-sizing: border-box; - margin: 0px 8px 8px 8px; - max-width: 80%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.message:first-child { - margin-top: 8px; -} -.message.message-pic img { - display: block; -} -.message-name, -.message-label, -.message-date, -.messages-date { - color: rgba(0, 0, 0, 0.51); -} -.message-name { - font-size: 12px; - line-height: 1; - margin-bottom: 2px; - margin-top: 7px; -} -.message-hide-name .message-name { - display: none; -} -.message-label { - font-size: 12px; - line-height: 1; - margin-top: 4px; -} -.message-hide-label .message-label { - display: none; -} -.message-avatar { - width: 48px; - height: 48px; - border-radius: 100%; - margin-top: -48px; - position: relative; - top: 1px; - background-size: cover; - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.message-hide-avatar .message-avatar { - opacity: 0; -} -.message-text { - box-sizing: border-box; - border-radius: 2px; - padding: 6px 8px; - min-width: 48px; - font-size: 16px; - line-height: 1.2; - word-break: break-word; - color: #333; - min-height: 48px; - position: relative; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.message-text img { - max-width: 100%; - height: auto; -} -.message-pic .message-text { - padding: 8px; -} -.message-date { - font-size: 12px; - margin-top: 4px; -} -.message-pic img + .message-date { - margin-top: 8px; -} -.message-sent { - -ms-flex-item-align: end; - -webkit-align-self: flex-end; - align-self: flex-end; - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.message-sent .message-name, -.message-sent .message-label { - margin-right: 8px; -} -.message-sent .message-text { - background-color: #C8E6C9; - margin-left: auto; - border-radius: 2px 2px 0 2px; - margin-right: 8px; -} -.message-sent .message-text:before { - position: absolute; - content: ''; - border-left: 0px solid transparent; - border-right: 8px solid transparent; - border-bottom: 8px solid #C8E6C9; - left: 100%; - bottom: 0; - width: 0; - height: 0; -} -.message-sent.message-with-avatar .message-text, -.message-sent.message-with-avatar .message-name, -.message-sent.message-with-avatar .message-label { - margin-right: 56px; -} -.message-received { - -ms-flex-item-align: start; - -webkit-align-self: flex-start; - align-self: flex-start; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.message-received .message-text { - background-color: #fff; - border-radius: 2px 2px 2px 0px; - margin-left: 8px; -} -.message-received .message-text:before { - position: absolute; - content: ''; - border-left: 8px solid transparent; - border-right: 0px solid transparent; - border-bottom: 8px solid #fff; - right: 100%; - bottom: 0; - width: 0; - height: 0; -} -.message-received .message-name, -.message-received .message-label { - margin-left: 8px; -} -.message-received.message-with-avatar .message-text, -.message-received.message-with-avatar .message-name, -.message-received.message-with-avatar .message-label { - margin-left: 56px; -} -.message-appear-from-bottom { - -webkit-animation: messageAppearFromBottom 400ms; - animation: messageAppearFromBottom 400ms; -} -.message-appear-from-top { - -webkit-animation: messageAppearFromTop 400ms; - animation: messageAppearFromTop 400ms; -} -@-webkit-keyframes messageAppearFromBottom { - from { - -webkit-transform: translate3d(0, 100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromBottom { - from { - transform: translate3d(0, 100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes messageAppearFromTop { - from { - -webkit-transform: translate3d(0, -100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromTop { - from { - transform: translate3d(0, -100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -/* === Statusbar overlay === */ -html.with-statusbar-overlay body { - padding-top: 20px; - box-sizing: border-box; -} -html.with-statusbar-overlay body .statusbar-overlay { - display: block; -} -html.with-statusbar-overlay body .panel { - padding-top: 20px; -} -.statusbar-overlay { - background: #aa5252; - z-index: 10000; - position: absolute; - left: 0; - top: 0; - height: 20px; - width: 100%; - display: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -/* === - Preloader - By Rudi Theunissen (https://github.com/rtheunissen/md-preloader) -=== */ -.preloader { - font-size: 0; - display: inline-block; - width: 32px; - height: 32px; - -webkit-animation: preloader-outer 3300ms linear infinite; - animation: preloader-outer 3300ms linear infinite; -} -.preloader svg { - width: 100%; - height: 100%; - -webkit-animation: preloader-inner 1320ms linear infinite; - animation: preloader-inner 1320ms linear infinite; -} -.preloader svg circle { - fill: none; - stroke: #757575; - stroke-linecap: square; - -webkit-animation: preloader-arc 1320ms cubic-bezier(0.8, 0, 0.4, 0.8) infinite; - animation: preloader-arc 1320ms cubic-bezier(0.8, 0, 0.4, 0.8) infinite; -} -@-webkit-keyframes preloader-outer { - 0% { - -webkit-transform: rotate(0); - } - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes preloader-outer { - 0% { - transform: rotate(0); - } - 100% { - transform: rotate(360deg); - } -} -@-webkit-keyframes preloader-inner { - 0% { - -webkit-transform: rotate(-100.8deg); - } - 100% { - -webkit-transform: rotate(0); - } -} -@keyframes preloader-inner { - 0% { - transform: rotate(-100.8deg); - } - 100% { - transform: rotate(0); - } -} -@-webkit-keyframes preloader-arc { - 0% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: 0; - } - 40% { - stroke-dasharray: 151.55042961px, 210.48670779px; - stroke-dashoffset: 0; - } - 100% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: -151.55042961px; - } -} -@keyframes preloader-arc { - 0% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: 0; - } - 40% { - stroke-dasharray: 151.55042961px, 210.48670779px; - stroke-dashoffset: 0; - } - 100% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: -151.55042961px; - } -} -.preloader-inner { - position: relative; - display: block; - width: 100%; - height: 100%; - -webkit-animation: preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; - animation: preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; -} -.preloader-inner .preloader-inner-gap { - position: absolute; - width: 2px; - left: 50%; - margin-left: -1px; - top: 0; - bottom: 0; - box-sizing: border-box; - border-top: 4px solid #757575; -} -.preloader-inner .preloader-inner-left, -.preloader-inner .preloader-inner-right { - position: absolute; - top: 0; - height: 100%; - width: 50%; - overflow: hidden; -} -.preloader-inner .preloader-inner-half-circle { - position: absolute; - top: 0; - height: 100%; - width: 200%; - box-sizing: border-box; - border: 4px solid #757575; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation-iteration-count: infinite; - -webkit-animation-duration: 1.3125s; - -webkit-animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); - animation-iteration-count: infinite; - animation-duration: 1.3125s; - animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); -} -.preloader-white .preloader-inner .preloader-inner-gap, -.preloader-white .preloader-inner .preloader-inner-half-circle { - border-color: #fff; -} -.preloader-inner .preloader-inner-left { - left: 0; -} -.preloader-inner .preloader-inner-left .preloader-inner-half-circle { - left: 0; - border-right-color: transparent !important; - -webkit-animation-name: preloader-left-rotate; - animation-name: preloader-left-rotate; -} -.preloader-inner .preloader-inner-right { - right: 0; -} -.preloader-inner .preloader-inner-right .preloader-inner-half-circle { - right: 0; - border-left-color: transparent !important; - -webkit-animation-name: preloader-right-rotate; - animation-name: preloader-right-rotate; -} -.color-multi .preloader-inner .preloader-inner-left .preloader-inner-half-circle { - -webkit-animation-name: preloader-left-rotate-multicolor; - animation-name: preloader-left-rotate-multicolor; -} -.color-multi .preloader-inner .preloader-inner-right .preloader-inner-half-circle { - -webkit-animation-name: preloader-right-rotate-multicolor; - animation-name: preloader-right-rotate-multicolor; -} -@-webkit-keyframes preloader-left-rotate { - 0%, - 100% { - -webkit-transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - } -} -@keyframes preloader-left-rotate { - 0%, - 100% { - transform: rotate(130deg); - } - 50% { - transform: rotate(-5deg); - } -} -@-webkit-keyframes preloader-right-rotate { - 0%, - 100% { - -webkit-transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - } -} -@keyframes preloader-right-rotate { - 0%, - 100% { - transform: rotate(-130deg); - } - 50% { - transform: rotate(5deg); - } -} -@-webkit-keyframes preloader-inner-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - } - 25% { - -webkit-transform: rotate(270deg); - } - 37.5% { - -webkit-transform: rotate(405deg); - } - 50% { - -webkit-transform: rotate(540deg); - } - 62.5% { - -webkit-transform: rotate(675deg); - } - 75% { - -webkit-transform: rotate(810deg); - } - 87.5% { - -webkit-transform: rotate(945deg); - } - 100% { - -webkit-transform: rotate(1080deg); - } -} -@keyframes preloader-inner-rotate { - 12.5% { - transform: rotate(135deg); - } - 25% { - transform: rotate(270deg); - } - 37.5% { - transform: rotate(405deg); - } - 50% { - transform: rotate(540deg); - } - 62.5% { - transform: rotate(675deg); - } - 75% { - transform: rotate(810deg); - } - 87.5% { - transform: rotate(945deg); - } - 100% { - transform: rotate(1080deg); - } -} -@-webkit-keyframes preloader-left-rotate-multicolor { - 0%, - 100% { - border-left-color: #4285F4; - -webkit-transform: rotate(130deg); - } - 75% { - border-left-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-left-color: #F7C223; - border-top-color: #F7C223; - -webkit-transform: rotate(-5deg); - } - 25% { - border-left-color: #DE3E35; - border-top-color: #DE3E35; - } -} -@keyframes preloader-left-rotate-multicolor { - 0%, - 100% { - border-left-color: #4285F4; - transform: rotate(130deg); - } - 75% { - border-left-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-left-color: #F7C223; - border-top-color: #F7C223; - transform: rotate(-5deg); - } - 25% { - border-left-color: #DE3E35; - border-top-color: #DE3E35; - } -} -@-webkit-keyframes preloader-right-rotate-multicolor { - 0%, - 100% { - border-right-color: #4285F4; - -webkit-transform: rotate(-130deg); - } - 75% { - border-right-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-right-color: #F7C223; - border-top-color: #F7C223; - -webkit-transform: rotate(5deg); - } - 25% { - border-top-color: #DE3E35; - border-right-color: #DE3E35; - } -} -@keyframes preloader-right-rotate-multicolor { - 0%, - 100% { - border-right-color: #4285F4; - transform: rotate(-130deg); - } - 75% { - border-right-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-right-color: #F7C223; - border-top-color: #F7C223; - transform: rotate(5deg); - } - 25% { - border-top-color: #DE3E35; - border-right-color: #DE3E35; - } -} -/* === Progress Bar === */ -.progressbar, -.progressbar-infinite { - height: 4px; - width: 100%; - overflow: hidden; - display: block; - position: relative; - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - background: rgba(170, 82, 82, 0.5); -} -.progressbar { - display: block; - vertical-align: middle; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.progressbar span { - content: ''; - width: 100%; - background: #aa5252; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.progressbar-infinite { - z-index: 15000; -} -.progressbar-infinite:before, -.progressbar-infinite:after { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #aa5252; - -webkit-transform-origin: left center; - transform-origin: left center; -} -.progressbar-infinite:before { - -webkit-animation: progressbar-infinite-1 2s linear infinite; - animation: progressbar-infinite-1 2s linear infinite; -} -.progressbar-infinite:after { - -webkit-animation: progressbar-infinite-2 2s linear infinite; - animation: progressbar-infinite-2 2s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite { - top: 20px; -} -.progressbar-infinite.color-multi { - background: none !important; -} -.progressbar-infinite.color-multi:before, -.progressbar-infinite.color-multi:after { - width: 100%; - animation: none; -} -.progressbar-infinite.color-multi:before { - background: none; - -webkit-animation: progressbar-infinite-multicolor-bg 3s step-end infinite; - animation: progressbar-infinite-multicolor-bg 3s step-end infinite; -} -.progressbar-infinite.color-multi:after { - background: none; - -webkit-animation: progressbar-infinite-multicolor-fill 3s linear infinite; - animation: progressbar-infinite-multicolor-fill 3s linear infinite; - -webkit-transform-origin: center center; - transform-origin: center center; -} -body > .progressbar, -.view > .progressbar, -.views > .progressbar, -.page > .progressbar, -.panel > .progressbar, -.popup > .progressbar, -.framework7-root > .progressbar, -body > .progressbar-infinite, -.view > .progressbar-infinite, -.views > .progressbar-infinite, -.page > .progressbar-infinite, -.panel > .progressbar-infinite, -.popup > .progressbar-infinite, -.framework7-root > .progressbar-infinite { - position: absolute; - left: 0; - top: 0; - z-index: 15000; - -webkit-transform-origin: center top; - transform-origin: center top; -} -.progressbar-in { - -webkit-animation: progressbar-in 300ms forwards; - animation: progressbar-in 300ms forwards; -} -.progressbar-out { - -webkit-animation: progressbar-out 300ms forwards; - animation: progressbar-out 300ms forwards; -} -html.with-statusbar-overlay body > .progressbar, -html.with-statusbar-overlay .framework7-root > .progressbar { - top: 20px; -} -@-webkit-keyframes progressbar-in { - from { - opacity: 0; - -webkit-transform: scaleY(0); - } - to { - opacity: 1; - -webkit-transform: scaleY(1); - } -} -@keyframes progressbar-in { - from { - opacity: 0; - transform: scaleY(0); - } - to { - opacity: 1; - transform: scaleY(1); - } -} -@-webkit-keyframes progressbar-out { - from { - opacity: 1; - -webkit-transform: scaleY(1); - } - to { - opacity: 0; - -webkit-transform: scaleY(0); - } -} -@keyframes progressbar-out { - from { - opacity: 1; - transform: scaleY(1); - } - to { - opacity: 0; - transform: scaleY(0); - } -} -@-webkit-keyframes progressbar-infinite-1 { - 0% { - -webkit-transform: translateX(-10%) scaleX(0.1); - } - 25% { - -webkit-transform: translateX(30%) scaleX(0.6); - } - 50% { - -webkit-transform: translateX(100%) scaleX(1); - } - 100% { - -webkit-transform: translateX(100%) scaleX(1); - } -} -@keyframes progressbar-infinite-1 { - 0% { - transform: translateX(-10%) scaleX(0.1); - } - 25% { - transform: translateX(30%) scaleX(0.6); - } - 50% { - transform: translateX(100%) scaleX(1); - } - 100% { - transform: translateX(100%) scaleX(1); - } -} -@-webkit-keyframes progressbar-infinite-2 { - 0% { - -webkit-transform: translateX(-100%) scaleX(1); - } - 40% { - -webkit-transform: translateX(-100%) scaleX(1); - } - 75% { - -webkit-transform: translateX(60%) scaleX(0.35); - } - 90% { - -webkit-transform: translateX(100%) scaleX(0.1); - } - 100% { - -webkit-transform: translateX(100%) scaleX(0.1); - } -} -@keyframes progressbar-infinite-2 { - 0% { - transform: translateX(-100%) scaleX(1); - } - 40% { - transform: translateX(-100%) scaleX(1); - } - 75% { - transform: translateX(60%) scaleX(0.35); - } - 90% { - transform: translateX(100%) scaleX(0.1); - } - 100% { - transform: translateX(100%) scaleX(0.1); - } -} -@-webkit-keyframes progressbar-infinite-multicolor-bg { - 0% { - background-color: #4caf50; - } - 25% { - background-color: #f44336; - } - 50% { - background-color: #2196f3; - } - 75% { - background-color: #ffeb3b; - } -} -@keyframes progressbar-infinite-multicolor-bg { - 0% { - background-color: #4caf50; - } - 25% { - background-color: #f44336; - } - 50% { - background-color: #2196f3; - } - 75% { - background-color: #ffeb3b; - } -} -@-webkit-keyframes progressbar-infinite-multicolor-fill { - 0% { - -webkit-transform: scaleX(0); - background-color: #f44336; - } - 24.9% { - -webkit-transform: scaleX(1); - background-color: #f44336; - } - 25% { - -webkit-transform: scaleX(0); - background-color: #2196f3; - } - 49.9% { - -webkit-transform: scaleX(1); - background-color: #2196f3; - } - 50% { - -webkit-transform: scaleX(0); - background-color: #ffeb3b; - } - 74.9% { - -webkit-transform: scaleX(1); - background-color: #ffeb3b; - } - 75% { - -webkit-transform: scaleX(0); - background-color: #4caf50; - } - 100% { - -webkit-transform: scaleX(1); - background-color: #4caf50; - } -} -@keyframes progressbar-infinite-multicolor-fill { - 0% { - transform: scaleX(0); - background-color: #f44336; - } - 24.9% { - transform: scaleX(1); - background-color: #f44336; - } - 25% { - transform: scaleX(0); - background-color: #2196f3; - } - 49.9% { - transform: scaleX(1); - background-color: #2196f3; - } - 50% { - transform: scaleX(0); - background-color: #ffeb3b; - } - 74.9% { - transform: scaleX(1); - background-color: #ffeb3b; - } - 75% { - transform: scaleX(0); - background-color: #4caf50; - } - 100% { - transform: scaleX(1); - background-color: #4caf50; - } -} -/* === Columns Picker === */ -.picker-columns { - width: 100%; - height: 260px; - z-index: 11500; -} -.picker-columns.picker-modal-inline { - height: 200px; -} -@media (orientation: landscape) and (max-height: 415px) { - .picker-columns:not(.picker-modal-inline) { - height: 200px; - } -} -.popover.popover-picker-columns { - width: 280px; -} -.popover.popover-picker-columns .toolbar { - border-radius: 2px 2px 0 0; -} -.picker-items { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - padding: 0; - text-align: right; - font-size: 20px; - -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); - -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); -} -.picker-items-col { - overflow: hidden; - position: relative; - max-height: 100%; -} -.picker-items-col.picker-items-col-left { - text-align: left; -} -.picker-items-col.picker-items-col-center { - text-align: center; -} -.picker-items-col.picker-items-col-right { - text-align: right; -} -.picker-items-col.picker-items-col-divider { - color: rgba(0, 0, 0, 0.87); - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.picker-items-col-wrapper { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.picker-item { - height: 36px; - line-height: 36px; - padding: 0 10px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - color: rgba(0, 0, 0, 0.54); - left: 0; - top: 0; - width: 100%; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.picker-items-col-absolute .picker-item { - position: absolute; -} -.picker-item.picker-item-far { - pointer-events: none; -} -.picker-item.picker-selected { - color: rgba(0, 0, 0, 0.87); - -webkit-transform: translate3d(0, 0, 0) rotateX(0deg); - transform: translate3d(0, 0, 0) rotateX(0deg); -} -.picker-center-highlight { - height: 36px; - box-sizing: border-box; - position: absolute; - left: 0; - width: 100%; - top: 50%; - margin-top: -18px; - pointer-events: none; -} -.picker-center-highlight:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.15); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-center-highlight:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-center-highlight:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.15); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-center-highlight:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-3d .picker-items { - overflow: hidden; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.picker-3d .picker-items-col, -.picker-3d .picker-items-col-wrapper, -.picker-3d .picker-item { - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.picker-3d .picker-items-col { - overflow: visible; -} -.picker-3d .picker-item { - -webkit-transform-origin: center center -110px; - transform-origin: center center -110px; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -/* === Notifications === */ -.notifications { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - z-index: 10900; - color: #fff; - font-size: 14px; - margin: 0; - border: none; - display: none; - box-sizing: border-box; - max-height: 100%; - overflow: hidden; - -webkit-overflow-scrolling: touch; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.notifications.list-block > ul { - max-width: 568px; - background: #323232; - margin: 0 auto; -} -.notifications.list-block > ul:before { - display: none; -} -.notifications.list-block > ul:after { - display: none; -} -.notifications .item-content { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; - padding-left: 24px; -} -.notifications .item-title { - font-size: 14px; - font-weight: normal; - white-space: normal; - padding-top: 14px; - padding-bottom: 14px; -} -.notifications .item-inner { - padding-right: 24px; - padding-top: 0; - padding-bottom: 0; -} -.notifications .item-inner:after { - display: none; -} -.notifications .item-after { - max-height: none; - margin-left: 16px; -} -.notifications .button.close-notification { - color: #c66969; -} -.notifications .notification-item { - margin: 0 auto; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-transition-delay: 100ms; - transition-delay: 100ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; -} -.notifications .notification-hidden { - opacity: 0; - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.notifications .notification-item-removing { - -webkit-transition-delay: 0ms; - transition-delay: 0ms; -} -@media (min-width: 569px) { - .notifications.list-block > ul { - border-radius: 2px; - width: auto; - min-width: 288px; - } -} -/* === Touch ripple === */ -.ripple, -a.floating-button, -.floating-button > a, -a.link, -a.item-link, -.button, -.modal-button, -.tab-link, -.label-radio, -.label-checkbox, -.actions-modal-button, -.speed-dial-buttons a { - -webkit-user-select: none; - user-select: none; -} -.ripple-wave { - left: 0; - top: 0; - position: absolute !important; - border-radius: 50%; - pointer-events: none; - z-index: -1; - background: rgba(0, 0, 0, 0.1); - padding: 0; - margin: 0; - font-size: 0; - -webkit-transform: translate3d(0px, 0px, 0) scale(0); - transform: translate3d(0px, 0px, 0) scale(0); - -webkit-transition-duration: 1400ms; - transition-duration: 1400ms; -} -.ripple-wave.ripple-wave-fill { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0.35; -} -.ripple-wave.ripple-wave-out { - -webkit-transition-duration: 600ms; - transition-duration: 600ms; - opacity: 0; -} -.button-fill .ripple-wave, -.picker-calendar-day .ripple-wave { - z-index: 1; -} -.button-fill .ripple-wave, -.navbar .ripple-wave, -.toolbar .ripple-wave, -.subnavbar .ripple-wave, -.searchbar .ripple-wave, -.notifications .ripple-wave, -.floating-button .ripple-wave, -.speed-dial-buttons a .ripple-wave { - background: rgba(255, 255, 255, 0.3); -} -.messagebar .ripple-wave { - background: rgba(0, 0, 0, 0.1); -} -/* === Disabled elements === */ -.disabled, -[disabled] { - opacity: 0.55; - pointer-events: none; -} -.disabled .disabled, -.disabled [disabled], -[disabled] .disabled, -[disabled] [disabled] { - opacity: 1; -} -.phone.android .container-edit .page-content .list-block:first-child, -.phone.android .container-collaboration .page-content .list-block:first-child, -.phone.android .container-filter .page-content .list-block:first-child { - margin-top: -1px; -} -.container-edit.popover, -.container-add.popover, -.container-settings.popover, -.container-collaboration.popover, -.container-filter.popover { - width: 360px; -} -.settings.popup .list-block ul, -.settings.popover .list-block ul { - border-radius: 0; - background: #fff; -} -.settings.popup .list-block:first-child, -.settings.popover .list-block:first-child { - margin-top: 0; -} -.settings.popup .list-block:first-child li:first-child a, -.settings.popover .list-block:first-child li:first-child a { - border-radius: 0; -} -.settings.popup > .content-block, -.settings.popover > .content-block, -.settings.popup .popover-inner > .content-block, -.settings.popover .popover-inner > .content-block { - width: 100%; - height: 100%; - margin: 0; - padding: 0; -} -.settings.popup .popover-view, -.settings.popover .popover-view { - border-radius: 2px; -} -.settings.popup .popover-view > .pages, -.settings.popover .popover-view > .pages { - border-radius: 2px; -} -.settings .categories { - width: 100%; - height: 100%; - margin: 0; - padding: 0; -} -.settings .categories > .toolbar { - top: 0; - height: 100%; -} -.settings .popover-inner { - height: 400px; -} -.dataview .row { - justify-content: space-around; -} -.dataview ul { - padding: 0 10px; - list-style: none; - justify-content: space-around; -} -.dataview ul li { - display: inline-block; -} -.dataview .active { - position: relative; - z-index: 1; -} -.dataview .active::after { - content: ''; - position: absolute; - width: 22px; - height: 22px; - right: -5px; - bottom: -5px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%2211%22%2F%3E%3Cpath%20d%3D%22M11%2C21A10%2C10%2C0%2C1%2C1%2C21%2C11%2C10%2C10%2C0%2C0%2C1%2C11%2C21h0ZM17.4%2C7.32L17.06%2C7a0.48%2C0.48%2C0%2C0%2C0-.67%2C0l-7%2C6.84L6.95%2C11.24a0.51%2C0.51%2C0%2C0%2C0-.59.08L6%2C11.66a0.58%2C0.58%2C0%2C0%2C0%2C0%2C.65l3.19%2C3.35a0.38%2C0.38%2C0%2C0%2C0%2C.39%2C0L17.4%2C8a0.48%2C0.48%2C0%2C0%2C0%2C0-.67h0Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.item-content .item-after.splitter label { - color: #000; - margin: 0 5px; - line-height: 36px; -} -.item-content .item-after.splitter .button { - min-width: 40px; - margin-left: 0; -} -.item-content .item-after.value { - display: block; - min-width: 50px; - color: #000000; - margin-left: 10px; - text-align: right; -} -.item-content.buttons .item-inner { - padding-top: 0; - padding-bottom: 0; -} -.item-content.buttons .item-inner > .row { - width: 100%; -} -.item-content.buttons .item-inner > .row .button { - flex: 1; - font-size: 17px; - margin-left: 5px; -} -.item-content.buttons .item-inner > .row .button:first-child { - margin-left: 0; -} -.item-content.buttons .item-inner > .row .button.active { - color: #fff; - background-color: #aa5252; -} -.item-content .color-preview { - width: 30px; - height: 30px; - border-radius: 16px; - margin-top: -3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-link.no-indicator .item-inner { - background-image: none; - padding-right: 16px; -} -.popover .list-block:last-child li:last-child .buttons a { - border-radius: 3px; -} -.button.active i.icon { - background-color: #fff; -} -.document-menu { - width: auto; - line-height: 1 !important; - z-index: 12500; -} -.document-menu .popover-inner { - overflow: hidden; -} -.document-menu .list-block { - white-space: pre; -} -.document-menu .list-block ul { - height: 48px; -} -.document-menu .list-block li { - display: inline-block; -} -html.phone .document-menu .list-block .item-link { - padding: 0 10px; -} -.color-palette a { - flex-grow: 1; - position: relative; - min-width: 10px; - min-height: 26px; - margin: 1px 1px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-palette a.active:after { - content: ' '; - position: absolute; - width: 100%; - height: 100%; - box-shadow: 0 0 0 1px white, 0 0 0 4px #aa5252; - z-index: 1; - border-radius: 1px; -} -.color-palette a.transparent { - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2022%2022'%20xml%3Aspace%3D'preserve'%3E%3Cline%20stroke%3D'%23ff0000'%20stroke-linecap%3D'undefined'%20stroke-linejoin%3D'undefined'%20id%3D'svg_1'%20y2%3D'0'%20x2%3D'22'%20y1%3D'22'%20x1%3D'0'%20stroke-width%3D'2'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.color-palette .theme-colors .item-inner { - display: inline-block; - overflow: visible; -} -.color-palette .standart-colors .item-inner, -.color-palette .dynamic-colors .item-inner { - overflow: visible; -} -.color-palette.list-block:last-child li:last-child a { - border-radius: 0; -} -.custom-colors { - display: flex; - justify-content: space-around; - align-items: center; - margin: 15px; -} -.custom-colors.phone { - max-width: 300px; - margin: 0 auto; - margin-top: 4px; -} -.custom-colors.phone .button-round { - margin-top: 20px; -} -.custom-colors .right-block { - margin-left: 20px; -} -.custom-colors .button-round { - height: 72px; - width: 72px; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - border-radius: 100px; - background-color: #aa5252; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-color: transparent; - margin-top: 25px; -} -.custom-colors .button-round.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.custom-colors .color-hsb-preview { - width: 72px; - height: 72px; - border-radius: 100px; - overflow: hidden; - border: 1px solid #ededed; -} -.custom-colors .new-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .current-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .list-block ul:before, -.custom-colors .list-block ul:after { - content: none; -} -.custom-colors .list-block ul li { - border: 1px solid rgba(0, 0, 0, 0.3); -} -.custom-colors .color-picker-wheel { - position: relative; - width: 290px; - max-width: 100%; - height: auto; - font-size: 0; -} -.custom-colors .color-picker-wheel svg { - width: 100%; - height: auto; -} -.custom-colors .color-picker-wheel .color-picker-wheel-handle { - width: calc(16.66666667%); - height: calc(16.66666667%); - position: absolute; - box-sizing: border-box; - border: 2px solid #fff; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); - background: red; - border-radius: 50%; - left: 0; - top: 0; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum { - background-color: #000; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); - position: relative; - width: 45%; - height: 45%; - left: 50%; - top: 50%; - transform: translate3d(-50%, -50%, 0); - position: absolute; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle { - width: 4px; - height: 4px; - position: absolute; - left: -2px; - top: -2px; - z-index: 1; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle:after { - background-color: inherit; - content: ''; - position: absolute; - width: 16px; - height: 16px; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); - box-sizing: border-box; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transition: 150ms; - transition-property: transform; - transform-origin: center; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after { - transform: scale(1.5) translate(-33.333%, -33.333%); -} -.about .page-content { - text-align: center; -} -.about .content-block:first-child { - margin: 15px 0; -} -.about .content-block { - margin: 0 auto 15px; -} -.about .content-block a { - color: #000; -} -.about h3 { - font-weight: normal; - margin: 0; -} -.about h3.vendor { - color: #000; - font-weight: bold; - margin-top: 15px; -} -.about p > label { - margin-right: 5px; -} -.about .logo { - background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center; -} -.color-schemes-menu { - cursor: pointer; - display: block; - background-color: #fff; -} -.color-schemes-menu .item-inner { - justify-content: flex-start; -} -.color-schemes-menu .color-schema-block { - display: flex; -} -.color-schemes-menu .color { - min-width: 26px; - min-height: 26px; - margin: 0 2px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-schemes-menu .text { - margin-left: 20px; - color: #212121; -} -.page-change .block-description { - background-color: #fff; - padding-top: 15px; - padding-bottom: 15px; - margin: 0; - max-width: 100%; - word-wrap: break-word; -} -.page-change #user-name { - font-size: 16px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-change #date-change { - font-size: 14px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 3px; -} -.page-change #text-change { - color: #000000; - font-size: 15px; - line-height: 20px; - margin: 0; - margin-top: 10px; -} -.page-change .block-btn { - position: absolute; - bottom: 0; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0; - width: 100%; - height: 56px; - align-items: center; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); -} -.page-change .block-btn #btn-reject-change { - margin-left: 15px; -} -.page-change .block-btn .change-buttons, -.page-change .block-btn .accept-reject, -.page-change .block-btn .next-prev { - display: flex; -} -.page-change .block-btn .link { - position: relative; - display: flex; - justify-content: center; - align-items: center; - font-size: 14px; - text-transform: uppercase; - font-weight: 500; - height: 56px; - min-width: 48px; -} -.page-change .header-change { - display: flex; - justify-content: flex-start; - padding-right: 16px; -} -.page-change .header-change .initials-change { - height: 40px; - width: 40px; - border-radius: 50px; - color: #FFFFFF; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - font-size: 18px; -} -.page-change #no-changes { - padding: 16px; -} -.container-collaboration .navbar .right.close-collaboration { - position: absolute; - right: 5px; -} -.container-collaboration .page-content .list-block:first-child { - margin-top: -1px; -} -.page-display-mode .list-block .item-subtitle { - font-size: 14px; - color: #9e9e9e; -} -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 400; -} -#user-list ul:before { - content: none; -} -.page-comments .list-block ul:before, -.page-add-comment .list-block ul:before, -.page-view-comments .list-block ul:before, -.container-edit-comment .list-block ul:before, -.container-add-reply .list-block ul:before, -.page-edit-comment .list-block ul:before, -.page-add-reply .list-block ul:before, -.page-edit-reply .list-block ul:before, -.page-comments .list-block ul:after, -.page-add-comment .list-block ul:after, -.page-view-comments .list-block ul:after, -.container-edit-comment .list-block ul:after, -.container-add-reply .list-block ul:after, -.page-edit-comment .list-block ul:after, -.page-add-reply .list-block ul:after, -.page-edit-reply .list-block ul:after { - content: none; -} -.page-comments .list-block .item-inner, -.page-add-comment .list-block .item-inner, -.page-view-comments .list-block .item-inner, -.container-edit-comment .list-block .item-inner, -.container-add-reply .list-block .item-inner, -.page-edit-comment .list-block .item-inner, -.page-add-reply .list-block .item-inner, -.page-edit-reply .list-block .item-inner { - display: block; - padding: 16px 0; - word-wrap: break-word; -} -.page-comments .list-block .item-inner:after, -.page-add-comment .list-block .item-inner:after, -.page-view-comments .list-block .item-inner:after, -.container-edit-comment .list-block .item-inner:after, -.container-add-reply .list-block .item-inner:after, -.page-edit-comment .list-block .item-inner:after, -.page-add-reply .list-block .item-inner:after, -.page-edit-reply .list-block .item-inner:after { - content: none; -} -.page-comments .list-reply, -.page-add-comment .list-reply, -.page-view-comments .list-reply, -.container-edit-comment .list-reply, -.container-add-reply .list-reply, -.page-edit-comment .list-reply, -.page-add-reply .list-reply, -.page-edit-reply .list-reply { - padding-left: 26px; -} -.page-comments .reply-textarea, -.page-add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .comment-textarea, -.page-add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .edit-reply-textarea, -.page-add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - resize: vertical; -} -.page-comments .user-name, -.page-add-comment .user-name, -.page-view-comments .user-name, -.container-edit-comment .user-name, -.container-add-reply .user-name, -.page-edit-comment .user-name, -.page-add-reply .user-name, -.page-edit-reply .user-name { - font-size: 16px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-comments .comment-date, -.page-add-comment .comment-date, -.page-view-comments .comment-date, -.container-edit-comment .comment-date, -.container-add-reply .comment-date, -.page-edit-comment .comment-date, -.page-add-reply .comment-date, -.page-edit-reply .comment-date, -.page-comments .reply-date, -.page-add-comment .reply-date, -.page-view-comments .reply-date, -.container-edit-comment .reply-date, -.container-add-reply .reply-date, -.page-edit-comment .reply-date, -.page-add-reply .reply-date, -.page-edit-reply .reply-date { - font-size: 12px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 0px; -} -.page-comments .comment-text, -.page-add-comment .comment-text, -.page-view-comments .comment-text, -.container-edit-comment .comment-text, -.container-add-reply .comment-text, -.page-edit-comment .comment-text, -.page-add-reply .comment-text, -.page-edit-reply .comment-text, -.page-comments .reply-text, -.page-add-comment .reply-text, -.page-view-comments .reply-text, -.container-edit-comment .reply-text, -.container-add-reply .reply-text, -.page-edit-comment .reply-text, -.page-add-reply .reply-text, -.page-edit-reply .reply-text { - color: #000000; - font-size: 15px; - line-height: 25px; - margin: 0; - max-width: 100%; - padding-right: 15px; -} -.page-comments .comment-text pre, -.page-add-comment .comment-text pre, -.page-view-comments .comment-text pre, -.container-edit-comment .comment-text pre, -.container-add-reply .comment-text pre, -.page-edit-comment .comment-text pre, -.page-add-reply .comment-text pre, -.page-edit-reply .comment-text pre, -.page-comments .reply-text pre, -.page-add-comment .reply-text pre, -.page-view-comments .reply-text pre, -.container-edit-comment .reply-text pre, -.container-add-reply .reply-text pre, -.page-edit-comment .reply-text pre, -.page-add-reply .reply-text pre, -.page-edit-reply .reply-text pre { - white-space: pre-wrap; -} -.page-comments .reply-item, -.page-add-comment .reply-item, -.page-view-comments .reply-item, -.container-edit-comment .reply-item, -.container-add-reply .reply-item, -.page-edit-comment .reply-item, -.page-add-reply .reply-item, -.page-edit-reply .reply-item { - padding-right: 16px; - padding-top: 13px; -} -.page-comments .reply-item .header-reply, -.page-add-comment .reply-item .header-reply, -.page-view-comments .reply-item .header-reply, -.container-edit-comment .reply-item .header-reply, -.container-add-reply .reply-item .header-reply, -.page-edit-comment .reply-item .header-reply, -.page-add-reply .reply-item .header-reply, -.page-edit-reply .reply-item .header-reply { - display: flex; - justify-content: space-between; -} -.page-comments .reply-item .user-name, -.page-add-comment .reply-item .user-name, -.page-view-comments .reply-item .user-name, -.container-edit-comment .reply-item .user-name, -.container-add-reply .reply-item .user-name, -.page-edit-comment .reply-item .user-name, -.page-add-reply .reply-item .user-name, -.page-edit-reply .reply-item .user-name { - padding-top: 3px; -} -.page-comments .comment-quote, -.page-add-comment .comment-quote, -.page-view-comments .comment-quote, -.container-edit-comment .comment-quote, -.container-add-reply .comment-quote, -.page-edit-comment .comment-quote, -.page-add-reply .comment-quote, -.page-edit-reply .comment-quote { - color: #aa5252; - border-left: 1px solid #aa5252; - padding-left: 10px; - padding-right: 16px; - margin: 5px 0; - font-size: 15px; -} -.page-comments .wrap-comment, -.page-add-comment .wrap-comment, -.page-view-comments .wrap-comment, -.container-edit-comment .wrap-comment, -.container-add-reply .wrap-comment, -.page-edit-comment .wrap-comment, -.page-add-reply .wrap-comment, -.page-edit-reply .wrap-comment, -.page-comments .wrap-reply, -.page-add-comment .wrap-reply, -.page-view-comments .wrap-reply, -.container-edit-comment .wrap-reply, -.container-add-reply .wrap-reply, -.page-edit-comment .wrap-reply, -.page-add-reply .wrap-reply, -.page-edit-reply .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-comments .comment-textarea, -.page-add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .reply-textarea, -.page-add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .edit-reply-textarea, -.page-add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - margin-top: 10px; - background: transparent; - outline: none; - width: 100%; - font-size: 15px; - border: none; - border-radius: 3px; - min-height: 100px; -} -.page-comments .header-comment, -.page-add-comment .header-comment, -.page-view-comments .header-comment, -.container-edit-comment .header-comment, -.container-add-reply .header-comment, -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - display: flex; - justify-content: space-between; - padding-right: 16px; -} -.page-comments .header-comment .comment-right, -.page-add-comment .header-comment .comment-right, -.page-view-comments .header-comment .comment-right, -.container-edit-comment .header-comment .comment-right, -.container-add-reply .header-comment .comment-right, -.page-edit-comment .header-comment .comment-right, -.page-add-reply .header-comment .comment-right, -.page-edit-reply .header-comment .comment-right { - display: flex; - justify-content: space-between; - width: 70px; -} -.page-comments .header-comment .comment-left, -.page-add-comment .header-comment .comment-left, -.page-view-comments .header-comment .comment-left, -.container-edit-comment .header-comment .comment-left, -.container-add-reply .header-comment .comment-left, -.page-edit-comment .header-comment .comment-left, -.page-add-reply .header-comment .comment-left, -.page-edit-reply .header-comment .comment-left { - display: flex; - justify-content: space-between; -} -.page-comments .header-comment .initials-comment, -.page-add-comment .header-comment .initials-comment, -.page-view-comments .header-comment .initials-comment, -.container-edit-comment .header-comment .initials-comment, -.container-add-reply .header-comment .initials-comment, -.page-edit-comment .header-comment .initials-comment, -.page-add-reply .header-comment .initials-comment, -.page-edit-reply .header-comment .initials-comment { - height: 40px; - width: 40px; - border-radius: 50px; - color: #FFFFFF; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - font-size: 18px; -} -.page-comments .header-reply .reply-left, -.page-add-comment .header-reply .reply-left, -.page-view-comments .header-reply .reply-left, -.container-edit-comment .header-reply .reply-left, -.container-add-reply .header-reply .reply-left, -.page-edit-comment .header-reply .reply-left, -.page-add-reply .header-reply .reply-left, -.page-edit-reply .header-reply .reply-left { - display: flex; - justify-content: space-between; - align-items: flex-start; -} -.page-comments .header-reply .initials-reply, -.page-add-comment .header-reply .initials-reply, -.page-view-comments .header-reply .initials-reply, -.container-edit-comment .header-reply .initials-reply, -.container-add-reply .header-reply .initials-reply, -.page-edit-comment .header-reply .initials-reply, -.page-add-reply .header-reply .initials-reply, -.page-edit-reply .header-reply .initials-reply { - width: 24px; - height: 24px; - color: #FFFFFF; - font-size: 11px; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - border-radius: 50px; - margin-top: 5px; -} -.settings.popup .list-block ul.list-reply:last-child:after, -.settings.popover .list-block ul.list-reply:last-child:after { - display: none; -} -.container-view-comment { - position: fixed; - -webkit-transition: height 100ms; - transition: height 100ms; - background-color: #FFFFFF; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - height: 50%; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .page-view-comments { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments .list-block { - margin-bottom: 120px; -} -.container-view-comment .page-view-comments .list-block ul:before, -.container-view-comment .page-view-comments .list-block ul:after { - content: none; -} -.container-view-comment .page-view-comments .list-block .item-inner { - padding: 0; -} -.container-view-comment .toolbar { - position: fixed; - background-color: #FFFFFF; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .toolbar.toolbar-bottom { - top: auto; -} -.container-view-comment .toolbar:before { - content: none; -} -.container-view-comment .toolbar a.link { - color: #aa5252; - font-size: 16px; -} -.container-view-comment .toolbar .toolbar-inner { - display: flex; - justify-content: space-between; - padding: 0 16px; -} -.container-view-comment .toolbar .toolbar-inner .button-left { - min-width: 80px; -} -.container-view-comment .toolbar .toolbar-inner .button-right { - min-width: 62px; - display: flex; - justify-content: space-between; -} -.container-view-comment .toolbar .toolbar-inner .button-right a { - padding: 0 8px; -} -.container-view-comment .swipe-container { - display: flex; - justify-content: center; - height: 40px; -} -.container-view-comment .swipe-container .icon-swipe { - margin-top: 8px; - width: 40px; - height: 4px; - background: rgba(0, 0, 0, 0.12); - border-radius: 2px; -} -.container-view-comment .list-block { - margin-top: 0; -} -.container-view-comment.popover { - position: absolute; - border-radius: 4px; - min-height: 170px; - height: 400px; - max-height: 600px; -} -.container-view-comment.popover .toolbar { - position: absolute; - border-radius: 0 0 4px 4px; -} -.container-view-comment.popover .toolbar .toolbar-inner { - padding-right: 0; -} -.container-view-comment.popover .pages { - position: absolute; -} -.container-view-comment.popover .pages .page { - border-radius: 13px; -} -.container-view-comment.popover .pages .page .page-content { - padding: 16px; - padding-bottom: 80px; -} -.container-view-comment.popover .pages .page .page-content .list-block { - margin-bottom: 0px; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content { - padding-left: 0; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, -.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .block-reply { - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { - min-height: 70px; - width: 278px; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; -} -.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { - min-height: 60px; - width: 100%; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; - height: 60px; - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .comment-text { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 8px; - min-height: 80px; - height: 80px; -} -#done-comment { - padding: 0 16px; -} -.page-add-comment .wrap-comment, -.page-add-comment .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-add-comment .wrap-comment .header-comment, -.page-add-comment .wrap-reply .header-comment { - justify-content: flex-start; -} -.page-add-comment .wrap-comment .user-name, -.page-add-comment .wrap-reply .user-name { - font-size: 17px; - font-weight: bold; -} -.page-add-comment .wrap-comment .comment-date, -.page-add-comment .wrap-reply .comment-date { - font-size: 13px; - color: #6d6d72; -} -.page-add-comment .wrap-comment .wrap-textarea, -.page-add-comment .wrap-reply .wrap-textarea { - margin-top: 16px; - padding-right: 6px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { - font-size: 17px; - border: none; - margin-top: 0; - min-height: 100px; - border-radius: 4px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { - color: #9e9e9e; - font-size: 17px; -} -.container-edit-comment, -.container-add-reply { - height: 100%; -} -.container-edit-comment .navbar:after, -.container-add-reply .navbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -.container-edit-comment .navbar .navbar-inner, -.container-add-reply .navbar .navbar-inner { - justify-content: space-between; -} -.container-edit-comment .navbar a.link i + span, -.container-add-reply .navbar a.link i + span { - margin-left: 0; -} -.container-edit-comment .navbar .center, -.container-add-reply .navbar .center { - font-size: 18px; -} -.container-edit-comment .navbar .right, -.container-add-reply .navbar .right { - margin-left: 0; -} -.container-edit-comment .page-add-comment, -.container-add-reply .page-add-comment { - background-color: #FFFFFF; -} -.container-edit-comment .header-comment, -.container-add-reply .header-comment { - justify-content: flex-start; -} -.actions-modal-button.color-red { - color: #f44336; -} -.page-edit-comment, -.page-add-reply, -.page-edit-reply { - background-color: #FFFFFF; -} -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - justify-content: flex-start; -} -.page-edit-comment .navbar .right, -.page-add-reply .navbar .right, -.page-edit-reply .navbar .right { - height: 100%; -} -.page-edit-comment .navbar .right #add-new-reply, -.page-add-reply .navbar .right #add-new-reply, -.page-edit-reply .navbar .right #add-new-reply, -.page-edit-comment .navbar .right #edit-comment, -.page-add-reply .navbar .right #edit-comment, -.page-edit-reply .navbar .right #edit-comment, -.page-edit-comment .navbar .right #edit-reply, -.page-add-reply .navbar .right #edit-reply, -.page-edit-reply .navbar .right #edit-reply { - display: flex; - align-items: center; - padding-left: 16px; - padding-right: 16px; - height: 100%; -} -.container-edit-comment { - position: fixed; -} -.tablet .searchbar.document.replace .center > .replace { - display: flex; -} -.tablet .searchbar.document.replace .right .replace { - display: flex; -} -.tablet .searchbar.document.replace .link.replace { - font-size: 16px; -} -.tablet .searchbar.document .center { - width: 100%; - display: flex; - margin: 0; - overflow: visible; -} -.tablet .searchbar.document .center .searchbar { - overflow: visible; -} -.tablet .searchbar.document .center .searchbar.search { - padding: 0; -} -.tablet .searchbar.document .center > .replace { - display: none; -} -.tablet .searchbar.document .right .replace { - display: none; -} -.phone .searchbar.document.replace { - height: 96px; -} -.phone .searchbar.document.replace .link.replace { - font-size: 16px; -} -.phone .searchbar.document.replace .left { - margin-top: -48px; -} -.phone .searchbar.document.replace .center .replace { - display: block; -} -.phone .searchbar.document.replace .right > .replace { - display: flex; -} -.phone .searchbar.document .left, -.phone .searchbar.document .center, -.phone .searchbar.document .right { - flex-direction: column; -} -.phone .searchbar.document .center { - width: 100%; - margin: 0; - overflow: visible; -} -.phone .searchbar.document .center .searchbar { - padding: 0; -} -.phone .searchbar.document .center .replace { - display: none; -} -.phone .searchbar.document .right > p { - margin: 0; -} -.phone .searchbar.document .right > p a.link { - height: 48px; -} -.phone .searchbar.document .right > .replace { - display: none; -} -i.icon.icon-expand-up { - width: 17px; - height: 17px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000000%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C5.1%202%2C13.9%204.1%2C16%2011.1%2C9.2%2017.9%2C16%2020%2C13.9%2011.2%2C5.1%2011.1%2C5%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-expand-down { - width: 17px; - height: 17px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000000%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C16.9%202%2C8.1%204.1%2C6%2011.1%2C12.8%2017.9%2C6%2020%2C8.1%2011.2%2C16.9%2011.1%2C17%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M19.5%2C16.8L16%2C13.3c0.7-1.1%2C1.1-2.4%2C1.1-3.8C17%2C5.4%2C13.6%2C2%2C9.5%2C2S2%2C5.4%2C2%2C9.5S5.4%2C17%2C9.5%2C17c1.4%2C0%2C2.7-0.4%2C3.8-1.1l3.5%2C3.5c0.7%2C0.7%2C1.9%2C0.7%2C2.6%2C0C20.2%2C18.7%2C20.2%2C17.6%2C19.5%2C16.8z%20M9.5%2C15.3c-3.2%2C0-5.8-2.6-5.8-5.8s2.6-5.8%2C5.8-5.8s5.8%2C2.6%2C5.8%2C5.8S12.7%2C15.3%2C9.5%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2217.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M2.5%2015L8%201h2l4.4146%2011.2574-1.6009%201.6008L12.12012%2012h-6.25L4.75%2015zM9%203.66998L6.62012%2010h4.75976z%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M10%2019.50035V22h2.49965l7.37231-7.37231-2.49965-2.49965zm11.805-6.80572c.26-.25997.26-.67991%200-.93987l-1.5598-1.559787c-.25992-.259964-.67986-.259964-.93983%200L18.08554%2011.4148l2.49966%202.49966z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-play { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.0464363%2C2.9884553c0.006526%2C0.00296%2C0.0142345%2C0.006835%2C0.0231438%2C0.0119021%20c0.5908604%2C0.3357637%2C12.7118397%2C7.2924433%2C13.8977489%2C8.0268402c-0.5831585%2C0.3417759-13.0137587%2C7.4879274-13.934659%2C7.9826727%20L4.0464363%2C2.9884553%20M3.9889357%2C2C3.4427795%2C2.0000577%2C3.000525%2C2.4533575%2C3.000525%2C3.015348%09c0%2C0.573487%2C0%2C15.1632957%2C0%2C15.9945221C3.000525%2C19.622963%2C3.4796104%2C20%2C3.9940588%2C20%20c0.1729372%2C0%2C0.3499191-0.0426311%2C0.5139763-0.1332226c0.8905602-0.491045%2C13.1880894-7.5583372%2C13.9407387-7.9994459%20c0.6751213-0.3955202%2C0.6867313-1.337512%2C0-1.7326603C17.4031754%2C9.5333271%2C5.1523852%2C2.501852%2C4.5393953%2C2.1535165%20C4.3526201%2C2.0472794%2C4.165401%2C1.9999813%2C3.9889357%2C2L3.9889357%2C2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reader { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M17%2C21H1V9h6V2l0%2C0h10v5h1V1H6.2L0%2C7.6V22h18v-3h-1V21z%20M6%2C2.8V8H1.1L6%2C2.8z%20M13%2C8c-5.1%2C0-9%2C5-9%2C5s4.1%2C5%2C9%2C5c5%2C0%2C9-5%2C9-5S18%2C8%2C13%2C8z%20M8.7%2C15.5C6.8%2C14.4%2C6.4%2C13%2C6.4%2C13s0.4-1.5%2C2.4-2.6C8.3%2C11.2%2C8%2C12%2C8%2C13C8%2C13.9%2C8.3%2C14.8%2C8.7%2C15.5z%20M13%2C16.7c-2.1%2C0-3.7-1.7-3.7-3.7c0-2.1%2C1.7-3.7%2C3.7-3.7c2.1%2C0%2C3.7%2C1.7%2C3.7%2C3.7C16.7%2C15.1%2C15.1%2C16.7%2C13%2C16.7z%20M17.3%2C15.5c0.4-0.7%2C0.7-1.6%2C0.7-2.5c0-1-0.3-1.8-0.7-2.6c2%2C1.1%2C3.4%2C2.6%2C3.4%2C2.6S19.2%2C14.4%2C17.3%2C15.5z%20M13%2C11.7c-0.7%2C0-1.3%2C0.6-1.3%2C1.3s0.6%2C1.3%2C1.3%2C1.3s1.3-0.6%2C1.3-1.3S13.7%2C11.7%2C13%2C11.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-download { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23aa5252%22%3E%3Cpath%20d%3D%22M12%200H11L11%2014L7.39999%2010.3L6.69999%2011.1L11.5%2016L16.3%2011.1L15.6%2010.3L12%2014L12%200Z%22%2F%3E%3Cpath%20d%3D%22M14%205V6H19V20H4V6H9V5H3V21H20V5H14Z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-print { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%201H17V6H21V17H17V21H5V17H1V6H5V1ZM6%206H16V2H6V6ZM5%2016V13H2V16H5ZM2%2012H20V7H2V12ZM20%2013H17V16H20V13ZM16%2013H6V20H16V13ZM14%2016H8V15H14V16ZM14%2018H8V17H14V18Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-spellcheck { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%201L3%2015H4.2L5.97686%2010H11.0231L11.6768%2011.8394C11.955%2011.5504%2012.262%2011.2892%2012.593%2011.0605L9%201H8ZM8.5%202.9L10.6678%209H6.33223L8.5%202.9Z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2021C18.7614%2021%2021%2018.7614%2021%2016C21%2013.2386%2018.7614%2011%2016%2011C13.2386%2011%2011%2013.2386%2011%2016C11%2018.7614%2013.2386%2021%2016%2021ZM15.3536%2018.3536L19.3536%2014.3536L18.6464%2013.6464L15%2017.2929L13.3536%2015.6464L12.6464%2016.3536L14.6464%2018.3536L15%2018.7071L15.3536%2018.3536Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-info { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M10%2C17h2V8h-2V17z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11s4.5%2C10%2C10%2C10s10-4.5%2C10-10S16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4-9-9s4-9%2C9-9s9%2C4%2C9%2C9S16%2C20%2C11%2C20z%20M10%2C7h2V5h-2V7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-about { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3%2C0.7-0.6%2C0.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%2C0l-8.9%2C4.1C-0.9%2C13.8-1%2C14.1-1%2C14.3s0.1%2C0.6%2C0.7%2C0.9l2.6%2C1.2l-2.6%2C1.2C-0.9%2C18-1%2C18.4-1%2C18.5c0%2C0.2%2C0.1%2C0.6%2C0.7%2C0.9l2.5%2C1.2l-2.5%2C1.2C-0.9%2C22.1-1%2C22.5-1%2C22.7c0%2C0.3%2C0.1%2C0.6%2C0.7%2C0.9l8.9%2C4.1c0.5%2C0.2%2C0.8%2C0.3%2C1.4%2C0.3s1-0.1%2C1.4-0.3l8.9-4.1c0.6-0.4%2C0.7-0.6%2C0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9%2C19.2%2C21%2C18.8%2C21%2C18.5z%20M-0.2%2C14.3L-0.2%2C14.3c0%2C0%2C0.1-0.1%2C0.3-0.2L9%2C10c0.6-0.3%2C1.5-0.3%2C2%2C0l8.9%2C4.1c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C18.6c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1C-0.1%2C14.4-0.2%2C14.3-0.2%2C14.3z%20M20.2%2C22.7L20.2%2C22.7c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C27.1c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5C20.1%2C22.7%2C20.2%2C22.7%2C20.2%2C22.7z%20M19.9%2C18.7L11%2C22.8c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0C20.2%2C18.5%2C20.1%2C18.6%2C19.9%2C18.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-help { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.6%2C1.3c-3.3%2C0-6%2C2.8-6%2C6.2c0.3%2C0%2C0.7%2C0%2C0.9%2C0c0-2.9%2C2.3-5.2%2C5.1-5.2s5.1%2C2.3%2C5.1%2C5.2c0%2C1.7-1.9%2C3.2-3%2C4.3C12.9%2C12.6%2C11%2C14.2%2C11%2C16c0%2C1.2%2C0%2C2.2%2C0%2C2.7c0.3%2C0%2C0.6%2C0%2C0.9%2C0c0-0.6%2C0-1.6%2C0-2.5c0-1.4%2C1.1-2.4%2C2.2-3.5c1.7-1.5%2C3.5-3.1%2C3.5-5.2C17.6%2C4.1%2C14.9%2C1.3%2C11.6%2C1.3z%20M11.5%2C20.2c-0.3%2C0-0.5%2C0.2-0.5%2C0.5v0.8c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.5s0.5-0.2%2C0.5-0.5v-0.8C11.9%2C20.4%2C11.7%2C20.2%2C11.5%2C20.2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-setup { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C3v16h22V3H0z%20M21%2C17H1V5h20V17z%20M16.5%2C5.9l-7.2%2C7.2L8.8%2C15H4v1c0%2C0%2C3.2%2C0%2C5%2C0c0.4%2C0%2C0.2%2C0%2C0.2-0.2l2.2-0.6L18.7%2C8L16.5%2C5.9z%20M9.9%2C13.1l6.5-6.4L18%2C8l-6.5%2C6.4L9.9%2C13.1z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-versions { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M19%2C12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2v12c0%2C1.1%2C0.9%2C2%2C2%2C2h18c1.1%2C0%2C2-0.9%2C2-2V14C21%2C12.9%2C20.1%2C12%2C19%2C12z%20M5%2C9h10c0.6%2C0%2C1%2C0.4%2C1%2C1H4C4%2C9.4%2C4.4%2C9%2C5%2C9z%20M3%2C11h14c0.6%2C0%2C1%2C0.4%2C1%2C1H2C2%2C11.4%2C2.4%2C11%2C3%2C11z%20M20%2C26c0%2C0.6-0.4%2C1-1%2C1H1c-0.6%2C0-1-0.4-1-1V14c0-0.6%2C0.4-1%2C1-1h18c0.6%2C0%2C1%2C0.4%2C1%2C1V26z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-center { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-jast { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-left { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-right { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-de-indent { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M11%2C15h11v1H11V15z%20M11%2C11h11v1H11V11z%20M11%2C7h11v1H11V7z%20M6.3%2C7L7%2C7.7l-3.8%2C3.8L7%2C15.3L6.3%2C16L2%2C11.8l-0.2-0.3L2%2C11.2L6.3%2C7z%20M1%2C3h21v1H1V3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-in-indent { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-left { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M15%2C19h-1H8H7v-1v-3H0V2h7h1h14v4v1v3v1v3v1v3v1H15z%20M15%2C18h6v-3h-6V18z%20M15%2C14h6v-3h-6V14z%20M8%2C18h6v-3H8V18z%20M8%2C14h6v-3H8V14z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M21%2C3h-6v3h6V3z%20M15%2C7v3h6V7H15z%20M3%2C16h1v2h2v1H4v2H3v-2H1v-1h2V16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-column-right { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C19l0-1l0-3l0-1l0-3l0-1l0-3l0-1l0-4h14h1h7v13h-7v3v1h-1H8H7H0z%20M7%2C15H1v3h6V15z%20M7%2C11H1v3h6V11z%20M14%2C15H8v3h6V15z%20M14%2C11H8v3h6V11z%20M14%2C10V7H8v3H14z%20M8%2C3v3h6V3H8z%20M1%2C6h6V3H1V6z%20M1%2C7v3h6V7H1z%20M19%2C18h2v1h-2v2h-1v-2h-2v-1h2v-2h1V18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-above { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C20h-6h-1H8H7H0v-1v-3v-1v-3v-1V8V7V1h15v6h6h1v1v3v1v3v1v3v1H21z%20M7%2C8H1v3h6V8z%20M7%2C12H1v3h6V12z%20M7%2C16H1v3h6V16z%20M8%2C19h6v-3H8V19z%20M8%2C15h6v-3H8V15z%20M8%2C11h6V8H8V11z%20M21%2C8h-6v3h6V8z%20M21%2C12h-6v3h6V12z%20M21%2C16h-6v3h6V16z%20M19%2C6h-1V4h-2V3h2V1h1v2h2v1h-2V6z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-add-row-below { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C1v1v3v1v3v1v3v1h-1h-6v6H0v-6v-1v-3V9V6V5V2V1h7h1h6h1h6H22z%20M7%2C10H1v3h6V10z%20M7%2C6H1v3h6V6z%20M7%2C2H1v3h6V2z%20M8%2C5h6V2H8V5z%20M8%2C9h6V6H8V9z%20M8%2C13h6v-3H8V13z%20M21%2C10h-6v3h6V10z%20M21%2C6h-6v3h6V6z%20M21%2C2h-6v3h6V2z%20M19%2C17h2v1h-2v2h-1v-2h-2v-1h2v-2h1V17z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-column { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C11H8v0.1c1.9%2C0.2%2C3.5%2C1.3%2C4.4%2C2.9H14V11z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C11h-6v3h6V11z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-remove-row { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C19h-6h-1h-1.6c-0.9%2C1.8-2.7%2C3-4.9%2C3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z%20M1%2C18h1.2C2.1%2C17.5%2C2%2C17%2C2%2C16.5c0-0.5%2C0.1-1%2C0.2-1.5H1V18z%20M7%2C3H1v3h6V3z%20M7%2C7H1v3h6V7z%20M7.5%2C12C5%2C12%2C3%2C14%2C3%2C16.5S5%2C21%2C7.5%2C21s4.5-2%2C4.5-4.5S10%2C12%2C7.5%2C12z%20M14%2C3H8v3h6V3z%20M14%2C7H8v3h6V7z%20M14%2C15h-1.2c0.1%2C0.5%2C0.2%2C1%2C0.2%2C1.5c0%2C0.5-0.1%2C1-0.2%2C1.5H14V15z%20M21%2C3h-6v3h6V3z%20M21%2C7h-6v3h6V7z%20M21%2C15h-6v3h6V15z%20M9.6%2C19.3l-2.1-2.1l-2.1%2C2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1%2C2.1l2.1-2.1l0.7%2C0.7l-2.1%2C2.1l2.1%2C2.1L9.6%2C19.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagebreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M8%2C14v1h1v-1H8z%20M6%2C14v1h1v-1H6z%20M18%2C21H3v-6H2v7h17v-7h-1V21z%20M4%2C14v1h1v-1H4z%20M14%2C14v1h1v-1H14z%20M10%2C14v1h1v-1H10z%20M8.2%2C1L2%2C7.6V14h1V9h6V2l0%2C0h9v12h1V1H8.2z%20M8%2C8H3.1L8%2C2.8V8z%20M12%2C14v1h1v-1H12z%20M16%2C14v1h1v-1H16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-sectionbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C14V2H3v12H2V1h19v13H20z%20M5%2C14v1H4v-1H5z%20M7%2C14v1H6v-1H7z%20M9%2C14v1H8v-1H9z%20M11%2C14v1h-1v-1H11z%20M13%2C14v1h-1v-1H13z%20M15%2C14v1h-1v-1H15z%20M17%2C14v1h-1v-1H17z%20M18%2C14h1v1h-1V14z%20M3%2C21h17v-6h1v7H2v-7h1V21z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-stringbreak { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M18%2C12H5.1L9%2C15.9l-0.7%2C0.7l-4.5-4.5l-0.6-0.6l0.6-0.6l4.5-4.5L9%2C7.1L5.1%2C11H18V5h1v6v1H18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-pagenumber { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.2%2C1L2%2C7.6V22h17V1H8.2z%20M8%2C2.8V8H3.1L8%2C2.8z%20M18%2C21H3V9h6V2l0%2C0h9V21z%20M12%2C19h1v-4h-0.7c0%2C0.2-0.1-0.1-0.1%2C0c-0.1%2C0.1-0.2%2C0-0.3%2C0c-0.1%2C0.1-0.2%2C0.1-0.4%2C0.1c-0.1%2C0-0.3%2C0-0.4%2C0V16H12V19z%20M15.3%2C17.3C15%2C17.9%2C15.1%2C18.4%2C15%2C19h0.9c0-0.3%2C0-0.6%2C0.1-0.9c0.1-0.3%2C0.1-0.6%2C0.3-0.9c0.1-0.3%2C0.3-0.6%2C0.4-0.9c0.2-0.3%2C0.1-0.3%2C0.3-0.5V15h-3v1h1.9C15.6%2C16.4%2C15.5%2C16.7%2C15.3%2C17.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-image-library { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20%205.5H4C3.72386%205.5%203.5%205.72386%203.5%206V15.5822L8.03349%2011.6898C8.47476%2011.3109%209.11904%2011.2865%209.58778%2011.6308L13.5726%2014.5579L15.9619%2012.6774C16.4488%2012.2942%2017.1428%2012.3255%2017.5933%2012.7509L20.5%2015.4962V6C20.5%205.72386%2020.2761%205.5%2020%205.5ZM20.5%2017.5294L20.485%2017.5453L16.7201%2013.9895L14.3509%2015.8542C13.9095%2016.2016%2013.2905%2016.2119%2012.8378%2015.8793L8.85988%2012.9573L3.5%2017.5592V18C3.5%2018.2761%203.72386%2018.5%204%2018.5H20C20.2761%2018.5%2020.5%2018.2761%2020.5%2018V17.5294ZM4%204C2.89543%204%202%204.89543%202%206V18C2%2019.1046%202.89543%2020%204%2020H20C21.1046%2020%2022%2019.1046%2022%2018V6C22%204.89543%2021.1046%204%2020%204H4ZM16.5%209.5C16.5%2011.1569%2015.1569%2012.5%2013.5%2012.5C11.8431%2012.5%2010.5%2011.1569%2010.5%209.5C10.5%207.84315%2011.8431%206.5%2013.5%206.5C15.1569%206.5%2016.5%207.84315%2016.5%209.5ZM13.5%2011C14.3284%2011%2015%2010.3284%2015%209.5C15%208.67157%2014.3284%208%2013.5%208C12.6716%208%2012%208.67157%2012%209.5C12%2010.3284%2012.6716%2011%2013.5%2011Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0%200H24V24H0V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-top { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%222%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%224%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2018%2011%2018%2011%207.83%208.65%209.8%208%208.94%2011.5%206%2015%209%2014.35%209.8%2012%207.83%2012%2018%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-middle { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2210%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2212%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%202%2012%202%2012%207.17%2014.35%205.2%2015%206.06%2011.5%209%208%206%208.65%205.2%2011%207.17%2011%202%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2021%2011%2021%2011%2015.83%208.65%2017.8%208%2016.94%2011.5%2014%2015%2017%2014.35%2017.8%2012%2015.83%2012%2021%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-bottom { - width: 22px; - height: 22px; - background-color: #aa5252; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2218%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2220%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%204%2012%204%2012%2015.17%2014.35%2013.2%2015%2014.06%2011.5%2017%208%2014%208.65%2013.2%2011%2015.17%2011%204%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-all { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-none { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-inner { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpolygon%20points%3D%2226%2013%2014%2013%2014%201%2013%201%2013%2013%201%2013%201%2014%2013%2014%2013%2026%2014%2026%2014%2014%2026%2014%2026%2013%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-outer { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-left { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-center { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2213%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-right { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2226%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-top { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-middle { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-bottom { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2226%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-backward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3Cpath%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-forward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-background { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-foreground { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-left { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20class%3D%22st0%22%20d%3D%22M1%2C21h1V1H1V21z%20M4%2C13v4h16v-4H4z%20M12%2C5H4v4h8V5z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-center { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%20id%3D%22XMLID_5_%22%3E%3Cg%20id%3D%22XMLID_24_%22%3E%3Cpolygon%20id%3D%22XMLID_25_%22%20class%3D%22st0%22%20points%3D%2219%2C13%2011%2C13%2011%2C9%2015%2C9%2015%2C5%2011%2C5%2011%2C1%2010%2C1%2010%2C5%206%2C5%206%2C9%2010%2C9%2010%2C13%202%2C13%202%2C17%2010%2C17%2010%2C21%2011%2C21%2011%2C17%2019%2C17%20%09%09%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-right { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%20id%3D%22XMLID_5_%22%3E%3Cg%20id%3D%22XMLID_42_%22%3E%3Cpath%20id%3D%22XMLID_44_%22%20class%3D%22st0%22%20d%3D%22M20%2C1v20h1V1H20z%20M2%2C17h16v-4H2V17z%20M10%2C9h8V5h-8V9z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-top { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M1%2C1v1h20V1H1z%20M9%2C4H5v16h4V4z%20M17%2C12V4h-4v8H17z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-middle { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3Cg%20id%3D%22XMLID_5_%22%3E%3Cg%20id%3D%22XMLID_24_%22%3E%3Cpolygon%20id%3D%22XMLID_25_%22%20class%3D%22st0%22%20points%3D%2213%2C2%2013%2C10%209%2C10%209%2C6%205%2C6%205%2C10%201%2C10%201%2C11%205%2C11%205%2C15%209%2C15%209%2C11%2013%2C11%2013%2C19%2017%2C19%2017%2C11%2021%2C11%2021%2C10%2017%2C10%2017%2C2%20%09%09%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-bottom { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M21%2C20v-1H1v1H21z%20M9%2C1H5v16h4V1z%20M13%2C9v8h4V9H13z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-horizontal { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M1%2C1v1h20V1H1z%20M0.999999%2C19.0000076V20h20v-0.9999924H0.999999z%20M9.000001%2C2.9999995h-4v15h4V2.9999995z%20M17%2C13.999999V6.9999986h-3.999999v7.0000005H17z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-align-vertical { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20style%3D%22enable-background%3Anew%200%200%2022%2022%3B%22%20xml%3Aspace%3D%22preserve%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cg%20id%3D%22XMLID_35_%22%3E%3Cpath%20id%3D%22XMLID_36_%22%20d%3D%22M0.9999998%2C21h1v-20h-1V21z%20M19.0000076%2C21H20v-20h-0.9999924V21z%20M2.9999995%2C12.999999v3.999999h15%20v-3.999999H2.9999995z%20M13.999999%2C4.999999H6.9999986v4h7.0000005V4.999999z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdf { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2233px%22%20height%3D%2233px%22%20viewBox%3D%22-3.363%20-3.658%2033%2033%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M8.512%2C14.989c0.8-1.567%2C1.709-3.334%2C2.438-5.107l0%2C0l0.287-0.699%20%20c-0.949-3.616-1.52-6.52-1.011-8.396l0%2C0C10.362%2C0.297%2C10.929%2C0%2C11.535%2C0l0%2C0l0.368%2C0.005h0.068c0.83-0.013%2C1.22%2C1.042%2C1.264%2C1.453%20%20l0%2C0c0.073%2C0.684-0.242%2C1.839-0.242%2C1.839l0%2C0c0-0.467%2C0.018-1.221-0.276-1.873l0%2C0c-0.343-0.753-0.671-1.203-0.965-1.274l0%2C0%20%20C11.604%2C0.25%2C11.46%2C0.455%2C11.411%2C0.85l0%2C0c-0.104%2C0.553-0.134%2C1.252-0.134%2C1.611l0%2C0c0%2C1.272%2C0.25%2C2.952%2C0.743%2C4.684l0%2C0%20%20c0.093-0.269%2C0.174-0.526%2C0.24-0.768l0%2C0c0.101-0.38%2C0.743-2.9%2C0.743-2.9l0%2C0c0%2C0-0.162%2C3.354-0.388%2C4.371l0%2C0%20%20c-0.049%2C0.215-0.103%2C0.427-0.158%2C0.644l0%2C0c0.812%2C2.268%2C2.121%2C4.292%2C3.68%2C5.75l0%2C0c0.615%2C0.575%2C1.393%2C1.038%2C2.128%2C1.461l0%2C0%20%20c1.605-0.229%2C3.084-0.338%2C4.318-0.324l0%2C0c1.637%2C0.021%2C2.838%2C0.265%2C3.324%2C0.743l0%2C0c0.237%2C0.232%2C0.335%2C0.514%2C0.364%2C0.83l0%2C0%20%20c0.007%2C0.122-0.053%2C0.41-0.069%2C0.482l0%2C0c0.018-0.088%2C0.018-0.519-1.298-0.938l0%2C0c-1.033-0.33-2.971-0.32-5.295-0.073l0%2C0%20%20c2.688%2C1.315%2C5.308%2C1.969%2C6.138%2C1.577l0%2C0c0.203-0.1%2C0.448-0.437%2C0.448-0.437l0%2C0c0%2C0-0.146%2C0.665-0.252%2C0.831l0%2C0%20%20c-0.134%2C0.18-0.396%2C0.376-0.646%2C0.44l0%2C0c-1.312%2C0.351-4.722-0.459-7.695-2.158l0%2C0c-3.322%2C0.489-6.972%2C1.394-9.896%2C2.354l0%2C0%20%20c-2.874%2C5.036-5.036%2C7.35-6.793%2C6.47l0%2C0l-0.646-0.325c-0.263-0.149-0.303-0.516-0.242-0.813l0%2C0%20%20c0.205-1.003%2C1.462-2.513%2C3.988-4.021l0%2C0c0.272-0.165%2C1.483-0.805%2C1.483-0.805l0%2C0c0%2C0-0.896%2C0.868-1.106%2C1.038l0%2C0%20%20c-2.016%2C1.652-3.504%2C3.73-3.467%2C4.536l0%2C0l0.007%2C0.069C2.643%2C24.936%2C5.21%2C21.45%2C8.512%2C14.989%20M9.559%2C15.525%20%20c-0.551%2C1.038-1.09%2C2.001-1.588%2C2.886l0%2C0c2.752-1.153%2C5.715-1.892%2C8.535-2.416l0%2C0c-0.379-0.262-0.746-0.539-1.093-0.832l0%2C0%20%20c-1.555-1.313-2.737-2.955-3.596-4.681l0%2C0C11.273%2C11.948%2C10.626%2C13.507%2C9.559%2C15.525%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdfa { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.875%2018.648L11.9617%2018.4783C12.7401%2016.954%2013.6102%2015.2503%2014.312%2013.541L14.6%2012.841C13.65%209.225%2013.08%206.322%2013.589%204.445C13.726%203.956%2014.293%203.659%2014.899%203.659L15.268%203.664H15.336C16.166%203.651%2016.556%204.706%2016.6%205.117C16.673%205.8%2016.357%206.956%2016.357%206.956L16.3571%206.87946C16.358%206.40944%2016.3594%205.70047%2016.081%205.083C15.738%204.33%2015.41%203.879%2015.116%203.808C14.968%203.907%2014.824%204.112%2014.774%204.507C14.671%205.06%2014.641%205.759%2014.641%206.119C14.641%207.391%2014.891%209.071%2015.384%2010.802C15.477%2010.534%2015.558%2010.276%2015.624%2010.035C15.725%209.655%2016.367%207.134%2016.367%207.134C16.367%207.134%2016.205%2010.489%2015.979%2011.505C15.931%2011.72%2015.877%2011.932%2015.821%2012.149C16.633%2014.417%2017.942%2016.441%2019.501%2017.899C19.9467%2018.3157%2020.4779%2018.6735%2021.0164%2019H29C30.1046%2019%2031%2019.8954%2031%2021V29C31%2030.1046%2030.1046%2031%2029%2031H17C15.8954%2031%2015%2030.1046%2015%2029V21.5492C13.6156%2021.9019%2012.2807%2022.2896%2011.07%2022.687C8.19599%2027.724%206.03499%2030.038%204.27699%2029.158L3.62999%2028.833C3.36699%2028.683%203.32699%2028.317%203.38799%2028.02C3.59299%2027.017%204.84999%2025.507%207.37599%2023.999C7.64799%2023.834%208.85899%2023.194%208.85899%2023.194C8.85899%2023.194%207.96299%2024.062%207.75299%2024.232C5.73699%2025.884%204.24899%2027.962%204.28599%2028.768L4.29299%2028.837C6.00499%2028.594%208.57299%2025.109%2011.875%2018.648ZM18.775%2018.822C18.8461%2018.882%2018.918%2018.9413%2018.9906%2019H17C15.9681%2019%2015.1187%2019.7815%2015.0114%2020.785C13.7648%2021.146%2012.529%2021.5689%2011.333%2022.07C11.831%2021.185%2012.37%2020.222%2012.921%2019.184C13.989%2017.166%2014.636%2015.607%2015.18%2014.141C16.038%2015.867%2017.221%2017.508%2018.775%2018.822ZM21.5553%2027.3521H24.4447L24.9995%2029H26.7518L23.7581%2021.002H22.231L19.2537%2029H21.006L21.5553%2027.3521ZM23.9998%2026.0172H22.0002L22.9945%2023.0234L23.9998%2026.0172Z%22%20class%3D%22cls-1%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pptx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2265%22%20height%3D%2265%22%20viewBox%3D%2219.951%2032.432%2065.000002%2065.000003%22%20xml%3Aspace%3D%22preserve%22%20%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M%2051.31066%2C44.356609%20C%2047.702785%2C44.433229%2043.9488%2C45.107%2040.5548%2C44.9445%20c%20-0.149%2C13.35%20-0.123719%2C26.7115%20-0.01172%2C40.0625%202.476001%2C0.199%204.9625%2C0.412%207.4375%2C0.625%20-0.011%2C-4.888%206.72e-4%2C-9.776062%200.01367%2C-14.664062%203.088%2C0.100999%206.336828%2C0.300562%209.173828%2C-1.148438%207.988%2C-3.913%209.413391%2C-15.938562%204.025391%2C-22.476562%20-2.8125%2C-2.544001%20-6.274937%2C-3.062954%20-9.882812%2C-2.986329%20z%20m%20-0.416016%2C7.244141%20c%201.641035%2C0.04387%203.222344%2C0.409844%204.261719%2C1.855469%201.425%2C2.45%201.350109%2C5.676172%200.162109%2C8.201172%20-1.425%2C2.575%20-4.650672%2C2.325%20-7.138672%2C2.625%20-0.262%2C-4.188%20-0.236218%2C-8.377172%20-0.199219%2C-12.576172%200.923626%2C-0.04237%201.929442%2C-0.131789%202.914063%2C-0.105469%20z%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-potx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-potx%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22potx%22%20clip-path%3D%22url(%23clip-potx)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cpath%20id%3D%22Path_25%22%20data-name%3D%22Path%2025%22%20d%3D%22M412.988%2C119c-1.658.033-3.382.327-4.94.257-.068%2C5.822-.057%2C11.646%2C0%2C17.467%2C1.136.087%2C2.279.18%2C3.415.273%2C0-2.132%2C0-4.263.006-6.395a8.88%2C8.88%2C0%2C0%2C0%2C4.213-.5c3.669-1.707%2C4.323-6.95%2C1.85-9.8a6.428%2C6.428%2C0%2C0%2C0-4.538-1.3Zm-.192%2C3.159a2.353%2C2.353%2C0%2C0%2C1%2C1.956.809%2C3.776%2C3.776%2C0%2C0%2C1%2C.075%2C3.576c-.655%2C1.124-2.136%2C1.014-3.278%2C1.145-.121-1.826-.108-3.652-.093-5.484C411.881%2C122.189%2C412.343%2C122.15%2C412.8%2C122.162Z%22%20transform%3D%22translate(-404%20-117)%22%20class%3D%22cls-1%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-odp { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%20-54.11%20193.63%20193.63%22%20height%3D%22193.63px%22%20width%3D%22193.63px%22%20y%3D%220px%22%20x%3D%220px%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M193.16%2C5.615V5.609c-0.334-0.173-0.671-0.334-1.005-0.497%20%20c-5.356-2.586-11.256-4.287-17.525-4.88c-11.083-1.049-21.673%2C1.496-30.622%2C6.678c-6.13-3.477-13.071-5.741-20.542-6.448%20%20c-10.298-0.974-20.17%2C1.16-28.697%2C5.629c-0.084%2C0.044-0.17%2C0.095-0.251%2C0.135c-0.207%2C0.162-0.347%2C0.414-0.347%2C0.697%20%20c0%2C0.492%2C0.392%2C0.89%2C0.889%2C0.89c0.046%2C0%2C0.091-0.007%2C0.139-0.017c0.021-0.002%2C0.042-0.011%2C0.061-0.015%20%20c4.586-0.848%2C9.368-1.088%2C14.243-0.627c13.684%2C1.293%2C25.609%2C5.521%2C33.975%2C15.011c0.437%2C0.455%2C0.822%2C0.427%2C1.266-0.024%20%20c10.523-12.2%2C26.662-17.021%2C44.006-15.382c0.968%2C0.094%2C1.921%2C0.213%2C2.871%2C0.355c0.33%2C0.05%2C0.836%2C0.134%2C1.133%2C0.167%20%20c0.572%2C0.063%2C0.88-0.397%2C0.88-0.891C193.629%2C6.056%2C193.485%2C5.776%2C193.16%2C5.615L193.16%2C5.615z%22%20class%3D%22cls-1%22%20%2F%3E%3Cpath%20d%3D%22M173.054%2C48.544c-0.057-0.028-0.107-0.046-0.154-0.065%20%20c-10.518-4.35-22.021-6.758-34.094-6.758c-19.293%2C0-37.154%2C6.127-51.757%2C16.524c-11.146-4.993-23.497-7.776-36.496-7.776%20%20c-18.485%2C0-35.648%2C5.617-49.895%2C15.237c-0.047%2C0.029-0.095%2C0.066-0.149%2C0.104C0.205%2C66.044%2C0%2C66.418%2C0%2C66.848%20%20c0%2C0.729%2C0.592%2C1.323%2C1.323%2C1.323c0.086%2C0%2C0.174-0.013%2C0.259-0.03c0.058-0.015%2C0.107-0.027%2C0.161-0.048%20%20c8.166-2.456%2C16.832-3.791%2C25.798-3.791c23.836%2C0%2C45.083%2C5.634%2C61.08%2C20.681c0.038%2C0.028%2C0.071%2C0.065%2C0.111%2C0.104%20%20c0.232%2C0.205%2C0.53%2C0.325%2C0.863%2C0.325c0.412%2C0%2C0.774-0.188%2C1.018-0.486c0.006%2C0.005%2C0.515-0.72%2C0.773-1.069%20%20c16.246-22.217%2C43.03-33.172%2C72.845-33.172c2.129%2C0%2C4.246%2C0.08%2C6.338%2C0.225c0.602%2C0.047%2C1.873%2C0.144%2C1.902%2C0.144%20%20c0.727%2C0%2C1.322-0.591%2C1.322-1.323C173.796%2C49.203%2C173.492%2C48.752%2C173.054%2C48.544L173.054%2C48.544z%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-otp { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-otp%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%23aa5252%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22otp%22%20clip-path%3D%22url(%23clip-otp)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_33%22%20data-name%3D%22Path%2033%22%20d%3D%22M125.173%2C121h0c-.046-.03-.093-.059-.141-.088a6.133%2C6.133%2C0%2C0%2C0-2.467-.869%2C6.014%2C6.014%2C0%2C0%2C0-4.309%2C1.188%2C6.223%2C6.223%2C0%2C0%2C0-2.892-1.147%2C5.965%2C5.965%2C0%2C0%2C0-4.039%2C1l-.036.024a.176.176%2C0%2C0%2C0-.049.125.145.145%2C0%2C0%2C0%2C.126.158l.019%2C0a.019.019%2C0%2C0%2C0%2C.009%2C0%2C5.781%2C5.781%2C0%2C0%2C1%2C2.005-.111%2C6.41%2C6.41%2C0%2C0%2C1%2C4.782%2C2.669c.06.081.115.076.178%2C0a6.288%2C6.288%2C0%2C0%2C1%2C6.194-2.735c.136.017.27.038.4.064.047.009.119.024.161.03.08.011.123-.071.123-.159A.155.155%2C0%2C0%2C0%2C125.173%2C121Z%22%20transform%3D%22translate(-94.24%20-116)%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_34%22%20data-name%3D%22Path%2034%22%20d%3D%22M126.894%2C125.978a.175.175%2C0%2C0%2C0-.022-.011%2C11.686%2C11.686%2C0%2C0%2C0-4.905-1.082%2C11.924%2C11.924%2C0%2C0%2C0-7.444%2C2.647%2C11.725%2C11.725%2C0%2C0%2C0-5.251-1.245%2C11.884%2C11.884%2C0%2C0%2C0-7.176%2C2.441.229.229%2C0%2C0%2C0-.022.016.217.217%2C0%2C0%2C0-.073.167.2.2%2C0%2C0%2C0%2C.191.211.167.167%2C0%2C0%2C0%2C.037%2C0%2C.118.118%2C0%2C0%2C0%2C.023-.008%2C11.679%2C11.679%2C0%2C0%2C1%2C3.71-.608c3.429%2C0%2C6.486.9%2C8.787%2C3.315a.093.093%2C0%2C0%2C1%2C.016.016.172.172%2C0%2C0%2C0%2C.123.052.18.18%2C0%2C0%2C0%2C.147-.078s.075-.115.111-.171a12.1%2C12.1%2C0%2C0%2C1%2C10.479-5.315c.306%2C0%2C.611.014.912.037l.273.022a.2.2%2C0%2C0%2C0%2C.191-.211A.211.211%2C0%2C0%2C0%2C126.894%2C125.978Z%22%20transform%3D%22translate(-100%20-115.885)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-users { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.5%207C15.5%209.26153%2014.9357%2010.9518%2014.201%2012.0307C13.4584%2013.121%2012.6234%2013.5%2012%2013.5C11.3766%2013.5%2010.5416%2013.121%209.79901%2012.0307C9.0643%2010.9518%208.5%209.26153%208.5%207C8.5%204.92262%2010.2222%203.5%2012%203.5C13.7778%203.5%2015.5%204.92262%2015.5%207ZM14.8461%2013.6216C14.006%2014.5191%2013.0044%2015%2012%2015C10.9956%2015%209.99399%2014.5191%209.15395%2013.6216C7.69714%2014.1996%206.4782%2014.7725%205.52945%2015.3496C3.82884%2016.3839%203.5%2017.1203%203.5%2017.5C3.5%2018.0104%203.76355%2018.6977%205.04703%2019.3409C6.37522%2020.0065%208.60909%2020.4999%2012%2020.5C15.3909%2020.5%2017.6248%2020.0065%2018.953%2019.3409C20.2364%2018.6977%2020.5%2018.0104%2020.5%2017.5C20.5%2017.1203%2020.1712%2016.3839%2018.4705%2015.3496C17.5218%2014.7725%2016.3029%2014.1996%2014.8461%2013.6216ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-app-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2014H16C18.2091%2014%2020%2015.7909%2020%2018C20%2020.2091%2018.2091%2022%2016%2022H7C4.79086%2022%203%2020.2091%203%2018C3%2015.7909%204.79086%2014%207%2014ZM16%2013C18.7614%2013%2021%2015.2386%2021%2018C21%2020.7614%2018.7614%2023%2016%2023H7C4.23858%2023%202%2020.7614%202%2018C2%2015.2386%204.23858%2013%207%2013H16Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2020C14.8954%2020%2014%2019.1046%2014%2018C14%2016.8954%2014.8954%2016%2016%2016C17.1046%2016%2018%2016.8954%2018%2018C18%2019.1046%2017.1046%2020%2016%2020ZM16%2021C14.3431%2021%2013%2019.6569%2013%2018C13%2016.3431%2014.3431%2015%2016%2015C17.6569%2015%2019%2016.3431%2019%2018C19%2019.6569%2017.6569%2021%2016%2021Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%203H7C4.79086%203%203%204.79086%203%207C3%209.20914%204.79086%2011%207%2011H16C18.2091%2011%2020%209.20914%2020%207C20%204.79086%2018.2091%203%2016%203ZM7%202C4.23858%202%202%204.23858%202%207C2%209.76142%204.23858%2012%207%2012H16C18.7614%2012%2021%209.76142%2021%207C21%204.23858%2018.7614%202%2016%202H7Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%209C8.10457%209%209%208.10457%209%207C9%205.89543%208.10457%205%207%205C5.89543%205%205%205.89543%205%207C5%208.10457%205.89543%209%207%209ZM7%2010C8.65685%2010%2010%208.65685%2010%207C10%205.34315%208.65685%204%207%204C5.34315%204%204%205.34315%204%207C4%208.65685%205.34315%2010%207%2010Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-cut { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23cut)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.22427%2022.2702C4.51527%2023.1269%206.52738%2022.7183%207.6592%2021.0127C8.79101%2019.3071%208.38572%2017.2943%207.09472%2016.4376C5.80372%2015.5809%203.79161%2015.9896%202.65979%2017.6952C1.52798%2019.4008%201.93328%2021.4136%203.22427%2022.2702ZM2.67135%2023.1035C4.51208%2024.325%207.11827%2023.6364%208.49243%2021.5656C9.8666%2019.4948%209.48837%2016.8259%207.64764%2015.6044C5.80691%2014.3829%203.20072%2015.0714%201.82656%2017.1422C0.452398%2019.2131%200.830625%2021.882%202.67135%2023.1035Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.9158%2022.2702C19.6248%2023.1269%2017.6127%2022.7183%2016.4809%2021.0127C15.349%2019.3071%2015.7543%2017.2943%2017.0453%2016.4376C18.3363%2015.5809%2020.3484%2015.9896%2021.4803%2017.6952C22.6121%2019.4008%2022.2068%2021.4136%2020.9158%2022.2702ZM21.4687%2023.1035C19.628%2024.325%2017.0218%2023.6364%2015.6476%2021.5656C14.2735%2019.4948%2014.6517%2016.8259%2016.4924%2015.6044C18.3331%2014.3829%2020.9393%2015.0714%2022.3135%2017.1422C23.6877%2019.2131%2023.3094%2021.882%2021.4687%2023.1035Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M16.4924%2015.6044L13.9037%2012.4737L19.9552%200.675715C20.0693%200.446914%2019.9552%200.172352%2019.727%200.0808313C19.4416%20-0.0106892%2019.0993%200.0808312%2018.9851%200.263872L12.0233%2011.4212L5.17562%200.263872C5.06149%200.035071%204.71911%20-0.0564496%204.43379%200.035071C4.14847%200.126592%204.03434%200.401153%204.14847%200.629955L10.2001%2012.4279L7.64761%2015.6044L9.2292%2018L12.0233%2013.4804L14.9108%2018L16.4924%2015.6044Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22cut%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22black%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-copy { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201H15V7H16V0H0V17H8V16H1V1Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M23%208H9V23H23V8ZM8%207V24H24V7H8Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13%205H3V4H13V5Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%209H3V8H8V9Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%2013H3V12H8V13Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H11V11H21V12Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H11V15H21V16Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H11V19H21V20Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-paste { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-menu-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.6047%2016.5848C17.0078%2016.1793%2017.4729%2015.9766%2018%2015.9766C18.5271%2015.9766%2018.9922%2016.1793%2019.3953%2016.5848C19.7984%2016.9903%2020%2017.4581%2020%2017.9883C20%2018.5185%2019.7984%2018.9864%2019.3953%2019.3918C18.9922%2019.7973%2018.5271%2020%2018%2020C17.4729%2020%2017.0078%2019.7973%2016.6047%2019.3918C16.2016%2018.9864%2016%2018.5185%2016%2017.9883C16%2017.4581%2016.2016%2016.9903%2016.6047%2016.5848ZM16.6047%2010.5965C17.0078%2010.191%2017.4729%209.9883%2018%209.9883C18.5271%209.9883%2018.9922%2010.191%2019.3953%2010.5965C19.7984%2011.0019%2020%2011.4698%2020%2012C20%2012.5302%2019.7984%2012.9981%2019.3953%2013.4035C18.9922%2013.809%2018.5271%2014.0117%2018%2014.0117C17.4729%2014.0117%2017.0078%2013.809%2016.6047%2013.4035C16.2016%2012.9981%2016%2012.5302%2016%2012C16%2011.4698%2016.2016%2011.0019%2016.6047%2010.5965ZM19.3953%207.4152C18.9922%207.82066%2018.5271%208.02339%2018%208.02339C17.4729%208.02339%2017.0078%207.82066%2016.6047%207.4152C16.2016%207.00975%2016%206.54191%2016%206.0117C16%205.48148%2016.2016%205.01365%2016.6047%204.60819C17.0078%204.20273%2017.4729%204%2018%204C18.5271%204%2018.9922%204.20273%2019.3953%204.60819C19.7984%205.01365%2020%205.48148%2020%206.0117C20%206.54191%2019.7984%207.00975%2019.3953%207.4152Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment.check { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%2340865C%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.4219%207.40625L10.8281%2012L15.4219%2016.5938L14.0156%2018L8.01562%2012L14.0156%206L15.4219%207.40625Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9.98438%206L15.9844%2012L9.98438%2018L8.57812%2016.5938L13.1719%2012L8.57812%207.40625L9.98438%206Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-done-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insert-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V15.0346C2%2016.3222%203.18908%2017.013%204.5%2017.013H5.5C5.82773%2017.013%206%2017.1917%206%2017.5136V21L12%2017H20C21.1046%2017%2022%2016.1046%2022%2015V8H20.5V14.5C20.5%2015.0523%2020.0523%2015.5%2019.5%2015.5H11.5L7.5%2018V15.5H4.5C3.94772%2015.5%203.5%2015.0523%203.5%2014.5V5.5C3.5%204.94772%203.94772%204.5%204.5%204.5H19.5C20.0523%204.5%2020.5%204.94772%2020.5%205.5V8H22V5.50295C22%204.2153%2020.8109%203%2019.5%203Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M6%207.5H18V9H6L6%207.5Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M6%2011H18V12.5H6V11Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-done-comment-white { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-table { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4%205.59961H11.2V8.79961H4V5.59961Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M12.8%205.59961H20V8.79961H12.8V5.59961Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M4%2010.3996H11.2V13.5996H4V10.3996Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M12.8%2010.3996H20V13.5996H12.8V10.3996Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M4%2015.1996H11.2V18.3996H4V15.1996Z%22%20fill%3D%22%23aa5252%22%2F%3E%3Cpath%20d%3D%22M12.8%2015.1996H20V18.3996H12.8V15.1996Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-link { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.0235%207C18.4006%207%2019.5743%207.49845%2020.5446%208.49534C21.5149%209.46108%2022%2010.6293%2022%2012C22%2013.3708%2021.5149%2014.5546%2020.5446%2015.5515C19.5743%2016.5172%2018.4006%2017.0001%2017.0235%2017.0001H13V15H17C17.8451%2015%2018.5884%2014.7882%2019.1831%2014.1963C19.8091%2013.5733%2020%2012.8411%2020%2012C20%2011.1589%2019.8091%2010.4424%2019.1831%209.85049C18.5884%209.22743%2017.8685%209%2017.0235%209H13V7H17.0235ZM8.00939%2012.9814V11.0187H15.9906V12.9814H8.00939ZM4.76995%209.85049C4.17527%2010.4424%204%2011.1589%204%2012C4%2012.8411%204.17527%2013.5733%204.76995%2014.1963C5.39593%2014.7882%206.15493%2015%207%2015H11.0141V17.0001H6.97653C5.59937%2017.0001%204.42567%2016.5172%203.4554%2015.5515C2.48513%2014.5546%202%2013.3708%202%2012C2%2010.6293%202.48513%209.46108%203.4554%208.49534C4.42567%207.49845%205.59937%207%206.97653%207H11.0141V9H6.97653C6.13146%209%205.39593%209.22743%204.76995%209.85049Z%22%20fill%3D%22%23aa5252%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; -} -.navbar i.icon.icon-undo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C17v-2c0-1.7-1.3-3-3-3H3.7l3.4%2C3.4l-1.4%2C1.4l-5.2-5.2L0%2C11l0.5-0.6l5.2-5.2l1.4%2C1.4L3.7%2C10H17c2.8%2C0%2C5%2C2.2%2C5%2C5v2H20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-redo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C17v-2c0-2.8%2C2.2-5%2C5-5h13.3l-3.4-3.4l1.4-1.4l5.2%2C5.2L22%2C11l-0.5%2C0.6l-5.2%2C5.2l-1.4-1.4l3.4-3.4H5c-1.7%2C0-3%2C1.3-3%2C3v2H0z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M19.5%2C16.8L16%2C13.3c0.7-1.1%2C1.1-2.4%2C1.1-3.8C17%2C5.4%2C13.6%2C2%2C9.5%2C2S2%2C5.4%2C2%2C9.5S5.4%2C17%2C9.5%2C17c1.4%2C0%2C2.7-0.4%2C3.8-1.1l3.5%2C3.5c0.7%2C0.7%2C1.9%2C0.7%2C2.6%2C0C20.2%2C18.7%2C20.2%2C17.6%2C19.5%2C16.8z%20M9.5%2C15.3c-3.2%2C0-5.8-2.6-5.8-5.8s2.6-5.8%2C5.8-5.8s5.8%2C2.6%2C5.8%2C5.8S12.7%2C15.3%2C9.5%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-burger { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-8%201%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M-6%2C6v2h18V6H-6z%20M-6%2C13h18v-2H-6V13z%20M-6%2C18h18v-2H-6V18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-plus { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C12h-9v9h-2v-9H1v-2h9V1h2v9h9V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2217.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-play { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.0464363%2C2.9884553c0.006526%2C0.00296%2C0.0142345%2C0.006835%2C0.0231438%2C0.0119021%20c0.5908604%2C0.3357637%2C12.7118397%2C7.2924433%2C13.8977489%2C8.0268402c-0.5831585%2C0.3417759-13.0137587%2C7.4879274-13.934659%2C7.9826727%20L4.0464363%2C2.9884553%20M3.9889357%2C2C3.4427795%2C2.0000577%2C3.000525%2C2.4533575%2C3.000525%2C3.015348%09c0%2C0.573487%2C0%2C15.1632957%2C0%2C15.9945221C3.000525%2C19.622963%2C3.4796104%2C20%2C3.9940588%2C20%20c0.1729372%2C0%2C0.3499191-0.0426311%2C0.5139763-0.1332226c0.8905602-0.491045%2C13.1880894-7.5583372%2C13.9407387-7.9994459%20c0.6751213-0.3955202%2C0.6867313-1.337512%2C0-1.7326603C17.4031754%2C9.5333271%2C5.1523852%2C2.501852%2C4.5393953%2C2.1535165%20C4.3526201%2C2.0472794%2C4.165401%2C1.9999813%2C3.9889357%2C2L3.9889357%2C2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M12.1%2C2H9.9C9.6%2C2%2C9.4%2C2.2%2C9.3%2C2.5L8.8%2C4.9c0%2C0.2-0.2%2C0.3-0.3%2C0.3s-0.1%2C0-0.2-0.1L6.2%2C3.8C6.1%2C3.7%2C6%2C3.7%2C5.8%2C3.7c-0.1%2C0-0.3%2C0-0.4%2C0.1L3.8%2C5.4c-0.1%2C0.2-0.2%2C0.5%2C0%2C0.8l1.3%2C2.1c0.1%2C0.2%2C0.1%2C0.4-0.2%2C0.5L2.5%2C9.3C2.2%2C9.4%2C2%2C9.6%2C2%2C9.9v2.2c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.6l2.4%2C0.5c0.3%2C0.1%2C0.4%2C0.3%2C0.2%2C0.5l-1.3%2C2.1c-0.2%2C0.2-0.1%2C0.6%2C0.1%2C0.8l1.6%2C1.6c0.1%2C0.1%2C0.3%2C0.2%2C0.4%2C0.2s0.2%2C0%2C0.3-0.1L8.3%2C17c0.1-0.1%2C0.1-0.1%2C0.2-0.1s0.3%2C0.1%2C0.3%2C0.3l0.5%2C2.3C9.4%2C19.8%2C9.6%2C20%2C9.9%2C20h2.2c0.3%2C0%2C0.5-0.2%2C0.6-0.5l0.5-2.4c0-0.2%2C0.1-0.3%2C0.3-0.3c0.1%2C0%2C0.1%2C0%2C0.2%2C0.1l2.1%2C1.3c0.1%2C0.1%2C0.2%2C0.1%2C0.3%2C0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2l1.6-1.6c0.2-0.2%2C0.2-0.5%2C0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5%2C0.2-0.5l2.4-0.5c0.3-0.1%2C0.5-0.3%2C0.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%2C0.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%2C0-0.3%2C0.1l-2.1%2C1.3C13.6%2C5%2C13.6%2C5%2C13.5%2C5s-0.3-0.1-0.3-0.3l-0.5-2.2C12.6%2C2.2%2C12.4%2C2%2C12.1%2C2L12.1%2C2z%20M11%2C14.5c-1.9%2C0-3.5-1.6-3.5-3.5S9.1%2C7.5%2C11%2C7.5s3.5%2C1.6%2C3.5%2C3.5S12.9%2C14.5%2C11%2C14.5L11%2C14.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-prev { - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%225.1%2C10.9%2013.9%2C2%2016%2C4.1%209.2%2C11.1%2016%2C17.9%2013.9%2C20%205.1%2C11.2%205%2C11.1%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-next { - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%2216.9%2C10.9%208.1%2C2%206%2C4.1%2012.8%2C11.1%206%2C17.9%208.1%2C20%2016.9%2C11.2%2017%2C11.1%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-expand-down { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C16.9%202%2C8.1%204.1%2C6%2011.1%2C12.8%2017.9%2C6%2020%2C8.1%2011.2%2C16.9%2011.1%2C17%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M14.9912%206C14.9912%208.18203%2014.4464%209.76912%2013.7789%2010.7492C13.101%2011.7447%2012.4042%2012%2011.9912%2012C11.5782%2012%2010.8814%2011.7447%2010.2035%2010.7492C9.53601%209.76912%208.99121%208.18203%208.99121%206C8.99121%204.23017%2010.4571%203%2011.9912%203C13.5254%203%2014.9912%204.23017%2014.9912%206ZM13.4917%2013.6397C13.0059%2013.8771%2012.4989%2014%2011.9912%2014C11.4861%2014%2010.9817%2013.8784%2010.4983%2013.6434C8.53188%2014.3681%206.94518%2015.0737%205.78927%2015.7768C4.10512%2016.8011%204%2017.4079%204%2017.5C4%2017.7664%204.1014%2018.3077%205.27104%2018.8939C6.50029%2019.5099%208.64545%2019.9999%2012%2020C15.3546%2020%2017.4997%2019.5099%2018.7289%2018.8939C19.8986%2018.3078%2020%2017.7664%2020%2017.5C20%2017.4079%2019.8949%2016.8011%2018.2107%2015.7768C17.0529%2015.0726%2015.4627%2014.3657%2013.4917%2013.6397ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-slide { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2%204C2%202.89543%202.89543%202%204%202H20C21.1046%202%2022%202.89543%2022%204V20C22%2021.1046%2021.1046%2022%2020%2022H4C2.89543%2022%202%2021.1046%202%2020V4ZM11%2011V7.00001H13V11H17V13H13V17H11V13H7V11H11Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%2215%22%20r%3D%227%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%203C2.44772%203%202%203.44772%202%204V17C2%2017.5523%202.44772%2018%203%2018H8.58152C8.20651%2017.0736%208%2016.0609%208%2015C8%2010.5817%2011.5817%207%2016%207C16.6906%207%2017.3608%207.08751%2018%207.25204V4C18%203.44772%2017.5523%203%2017%203H3Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.23958%2018L8.09375%2013.5L10.9062%2016.5L14.7604%2012L19.7604%2018H4.23958ZM21.3229%2020.3906C21.7743%2019.9844%2022%2019.5156%2022%2018.9844V5.01562C22%204.48438%2021.7743%204.01562%2021.3229%203.60938C20.8715%203.20313%2020.3507%203%2019.7604%203H4.23958C3.64931%203%203.12847%203.20313%202.67708%203.60938C2.22569%204.01562%202%204.48438%202%205.01562V18.9844C2%2019.5156%202.22569%2019.9844%202.67708%2020.3906C3.12847%2020.7969%203.64931%2021%204.23958%2021H19.7604C20.3507%2021%2020.8715%2020.7969%2021.3229%2020.3906ZM8%2011C9.10457%2011%2010%2010.1046%2010%209C10%207.89543%209.10457%207%208%207C6.89543%207%206%207.89543%206%209C6%2010.1046%206.89543%2011%208%2011Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0.000477791%200H24.0005V24H0.000477791V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2012C7%2013.6569%205.65685%2015%204%2015C2.34315%2015%201%2013.6569%201%2012C1%2010.3431%202.34315%209%204%209C5.65685%209%207%2010.3431%207%2012ZM15%2012C15%2013.6569%2013.6569%2015%2012%2015C10.3431%2015%209%2013.6569%209%2012C9%2010.3431%2010.3431%209%2012%209C13.6569%209%2015%2010.3431%2015%2012ZM20%2015C21.6569%2015%2023%2013.6569%2023%2012C23%2010.3431%2021.6569%209%2020%209C18.3431%209%2017%2010.3431%2017%2012C17%2013.6569%2018.3431%2015%2020%2015Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-close-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.9844%206.42188L13.4062%2012L18.9844%2017.5781L17.5781%2018.9844L12%2013.4062L6.42188%2018.9844L5.01562%2017.5781L10.5938%2012L5.01562%206.42188L6.42188%205.01562L12%2010.5938L17.5781%205.01562L18.9844%206.42188Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-center { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-jast { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-left { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-right { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-de-indent { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M11%2C15h11v1H11V15z%20M11%2C11h11v1H11V11z%20M11%2C7h11v1H11V7z%20M6.3%2C7L7%2C7.7l-3.8%2C3.8L7%2C15.3L6.3%2C16L2%2C11.8l-0.2-0.3L2%2C11.2L6.3%2C7z%20M1%2C3h21v1H1V3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-in-indent { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-left { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-center { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%228.08%22%20width%3D%2212%22%20height%3D%2210.92%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-right { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2215%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-top { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2212%2018%2011%2018%2011%207.83%208.65%209.8%208%208.94%2011.5%206%2015%209%2014.35%209.8%2012%207.83%2012%2018%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-middle { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2210%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2212%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2211%202%2012%202%2012%207.17%2014.35%205.2%2015%206.06%2011.5%209%208%206%208.65%205.2%2011%207.17%2011%202%22%2F%3E%3Cpolygon%20points%3D%2212%2021%2011%2021%2011%2015.83%208.65%2017.8%208%2016.94%2011.5%2014%2015%2017%2014.35%2017.8%2012%2015.83%2012%2021%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-bottom { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2218%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2220%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2211%204%2012%204%2012%2015.17%2014.35%2013.2%2015%2014.06%2011.5%2017%208%2014%208.65%2013.2%2011%2015.17%2011%204%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish .item-content.buttons .item-inner > .row .button.active { - background-color: #f1d1d1; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=textRect] .thumb { - background-image: url('../img/shapes/shape-01.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=line] .thumb { - background-image: url('../img/shapes/shape-02.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=lineWithArrow] .thumb { - background-image: url('../img/shapes/shape-03.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=lineWithTwoArrows] .thumb { - background-image: url('../img/shapes/shape-04.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rect] .thumb { - background-image: url('../img/shapes/shape-05.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=hexagon] .thumb { - background-image: url('../img/shapes/shape-06.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=roundRect] .thumb { - background-image: url('../img/shapes/shape-07.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=ellipse] .thumb { - background-image: url('../img/shapes/shape-08.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=triangle] .thumb { - background-image: url('../img/shapes/shape-09.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rtTriangle] .thumb { - background-image: url('../img/shapes/shape-10.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=trapezoid] .thumb { - background-image: url('../img/shapes/shape-11.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=diamond] .thumb { - background-image: url('../img/shapes/shape-12.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rightArrow] .thumb { - background-image: url('../img/shapes/shape-13.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=leftRightArrow] .thumb { - background-image: url('../img/shapes/shape-14.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=leftArrow] .thumb { - background-image: url('../img/shapes/shape-15.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=bentUpArrow] .thumb { - background-image: url('../img/shapes/shape-16.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=flowChartOffpageConnector] .thumb { - background-image: url('../img/shapes/shape-17.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=heart] .thumb { - background-image: url('../img/shapes/shape-18.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=mathMinus] .thumb { - background-image: url('../img/shapes/shape-19.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=mathPlus] .thumb { - background-image: url('../img/shapes/shape-20.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=parallelogram] .thumb { - background-image: url('../img/shapes/shape-21.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=wedgeRectCallout] .thumb { - background-image: url('../img/shapes/shape-22.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=wedgeEllipseCallout] .thumb { - background-image: url('../img/shapes/shape-23.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=cloudCallout] .thumb { - background-image: url('../img/shapes/shape-24.svg'); - background-color: transparent; -} -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: 48px; - bottom: 0; - height: auto; - overflow: hidden; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -#editor_sdk.with-logo { - top: 80px; -} -* { - -webkit-user-select: none; - user-select: none; -} -input, -textarea { - -webkit-touch-callout: default; - -webkit-user-select: text; - user-select: text; -} -#editor-navbar.navbar .right { - padding-right: 4px; -} -#editor-navbar.navbar .right a.link, -#editor-navbar.navbar .left a.link { - padding: 0 13px; -} -.logo-navbar { - height: 80px; -} -.logo-navbar .navbar-inner { - top: 24px; - height: 56px; -} -#add-table .page, -#add-shape .page { - background-color: #fff; -} -.container-add .categories i.icon { - opacity: 0.5; -} -.container-add .categories .active i.icon { - opacity: 1; -} -.table-styles .row, -.table-styles .row li { - margin-bottom: 12px; -} -.table-styles li { - margin: 0; - padding: 1px; -} -.table-styles li img { - width: 70px; - height: 50px; -} -.shapes li { - width: 70px; - height: 70px; - margin: 0 1px; -} -.shapes li .thumb { - width: 100%; - height: 100%; - background-color: #aa5252; -} -.bullets ul, -.numbers ul { - margin-top: 10px; -} -.bullets li, -.numbers li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; -} -html.pixel-ratio-2 .bullets li, -html.pixel-ratio-2 .numbers li { - border: 0.5px solid #c4c4c4; -} -html.pixel-ratio-3 .bullets li, -html.pixel-ratio-3 .numbers li { - border: 0.33px solid #c4c4c4; -} -.bullets li .thumb, -.numbers li .thumb { - width: 100%; - height: 100%; - background-color: #ffffff; - background-size: cover; -} -.bullets li .thumb label, -.numbers li .thumb label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; -} -.slide-layout .row { - margin-bottom: 12px; -} -.slide-layout li { - margin: 0; - padding: 1px; -} -.slide-layout li img { - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15); -} -.slide-theme .row { - margin-top: 14px; - margin-bottom: 12px; -} -.slide-theme .row div { - margin: 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15); - width: 85px; - height: 38px; -} -.slide-theme .item-theme { - background-image: url('../../../../../../sdkjs/common/Images/themes_thumbnail.png'); -} -.chart-types li { - width: 60px; - height: 60px; - margin: 6px; -} -.chart-types li .thumb { - width: 100%; - height: 100%; - background-size: contain; -} -.modal.modal-in { - max-height: 100%; - overflow: auto; -} -.doc-placeholder { - background: #f5f5f5; - width: 100%; - height: 100%; - left: 0; - top: 0; - bottom: 0; - right: 0; - z-index: 1; - position: absolute; - padding-top: 22px; -} -.doc-placeholder .slide-h { - display: flex; - flex-direction: column; - justify-content: center; - flex-grow: 1; - width: 90%; - height: 100%; - margin: 0 auto; -} -.doc-placeholder .slide-v { - display: flex; - position: relative; - flex-direction: column; - padding-bottom: 56.1333%; -} -.doc-placeholder .slide-container { - position: absolute; - height: 100%; - width: 100%; - background: #fbfbfb; - border: 1px solid #dfdfdf; - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; -} -.doc-placeholder .slide-container > .line { - height: 20%; - margin: 0 120px; - border-radius: 6px; - background: #f5f5f5; -} -.doc-placeholder .slide-container > .line:nth-child(1) { - height: 30%; - margin: 10% 80px 0; -} -.doc-placeholder .slide-container > .line.empty { - background: transparent; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #9e9e9e; -} diff --git a/apps/presentationeditor/mobile/resources/less/app-ios.less b/apps/presentationeditor/mobile/resources/less/app-ios.less deleted file mode 100644 index 26369273e..000000000 --- a/apps/presentationeditor/mobile/resources/less/app-ios.less +++ /dev/null @@ -1,338 +0,0 @@ -@import url('../../../../../vendor/framework7/src/less/ios/_mixins.less'); -@import url('../../../../../vendor/framework7/src/less/ios/_colors-vars.less'); - -// Colors -@themeColor: #aa5252; // (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; - } -} - -.logo-navbar { - height: 68px; - .navbar-inner { - top: 24px; - height: 44px; - } -} - -@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('../../../../common/mobile/resources/less/ios/_color-schema.less'); -@import url('../../../../common/mobile/resources/less/ios/_collaboration.less'); - -@import url('ios/_search.less'); -@import url('ios/_icons.less'); - -.label-switch input[type="checkbox"]:checked + .checkbox { - background: @themeColor; -} - -// Top offset - -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: @toolbarSize; - bottom: 0; - height: auto; - overflow: hidden; - .transition(300ms); -} - -#editor_sdk.with-logo { - top: 68px; -} - -// 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; - } - } -} - -// Bullets and numbers - -.bullets, -.numbers { - ul { - margin-top: 10px; - } - - li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; - html.pixel-ratio-2 & { - border: 0.5px solid #c4c4c4; - } - html.pixel-ratio-3 & { - border: 0.33px solid #c4c4c4; - } - - &.active { - // - } - - .thumb { - width: 100%; - height: 100%; - background-color: @white; - background-size: cover; - - label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; - } - } - } -} - -// Slide layout - -.slide-layout { - .row { - margin-bottom: 12px; - } - - li { - margin: 0; - padding: 1px; - - img { - box-shadow: 0 0 0 1px rgba(0,0,0,0.15); - } - } -} - -// Slide theme - -.slide-theme { - .row { - margin-top: 14px; - margin-bottom: 12px; - - div { - margin: 0; - box-shadow: 0 0 0 1px rgba(0,0,0,0.15); - width: 85px; - height: 38px; - } - } - - .item-theme { - background-image: url('../../../../../../sdkjs/common/Images/themes_thumbnail.png'); - } -} - -// Charts - -.chart-types { - li { - width: 60px; - height: 60px; - margin: 6px; - - .thumb { - width: 100%; - height: 100%; - background-size: contain; - } - } -} - -// Workaround ios 10.3 - -.range-slider input[type=range]::-webkit-slider-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - box-shadow: 0 2px 4px rgba(0,0,0,0.4); - z-index: 10; - -webkit-appearance: none; -} - -.modal.modal-in { - max-height: 100%; - overflow: auto; -} - -// Skeleton of document - -.doc-placeholder { - background: #f5f5f5; - width: 100%; - height: 100%; - left: 0; - top: 0; - bottom: 0; - right: 0; - z-index: 1; - position: absolute; - padding-top: 12px; - - .slide-h { - display: flex; - flex-direction: column; - justify-content: center; - flex-grow: 1; - width: 90%; - height: 100%; - margin: 0 auto; - } - - .slide-v { - display: flex; - position: relative; - flex-direction: column; - padding-bottom: 56.1333%; - } - - .slide-container { - position: absolute; - height: 100%; - width: 100%; - background: #fbfbfb; - border: 1px solid #dfdfdf; - - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; - - > .line { - height: 20%; - margin: 0 120px; - border-radius: 6px; - background: #f5f5f5; - - &:nth-child(1) { - height: 30%; - margin: 10% 80px 0; - } - - &.empty { - background: transparent; - } - } - } -} - -// Macros settings -.page-macros-settings[data-page="settings-macros-view"] { - .list-block { - li.media-item { - .item-title { - font-weight: normal; - } - .item-subtitle { - font-size: 14px; - color: @gray; - } - } - } -} diff --git a/apps/presentationeditor/mobile/resources/less/app-material.less b/apps/presentationeditor/mobile/resources/less/app-material.less deleted file mode 100644 index b3418e3de..000000000 --- a/apps/presentationeditor/mobile/resources/less/app-material.less +++ /dev/null @@ -1,337 +0,0 @@ -@import url('../../../../../vendor/framework7/src/less/material/_mixins.less'); -@import url('../../../../../vendor/framework7/src/less/material/_colors-vars.less'); - -// Colors -@themeColor: #aa5252; // (223,103,55) -@themeColorLight: #f1d1d1; -@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('../../../../common/mobile/resources/less/material/_color-schema.less'); -@import url('../../../../common/mobile/resources/less/material/_collaboration.less'); - -@import url('material/_search.less'); -@import url('material/_icons.less'); -@import url('../../../../common/mobile/resources/less/material/_sailfish_fix.less'); - -// Top offset - -#editor_sdk { - position: absolute; - left: 0; - right: 0; - top: @toolbarSize; - bottom: 0; - height: auto; - overflow: hidden; - .transition(300ms); -} -#editor_sdk.with-logo { - top: 80px; -} - - -// 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 { - padding-right: 4px; -} -#editor-navbar.navbar .right a.link, -#editor-navbar.navbar .left a.link { - padding: 0 13px; -} - -.logo-navbar { - height: 80px; - .navbar-inner { - top: 24px; - height: 56px; - } -} - -// Add Container - -#add-table, -#add-shape { - .page { - background-color: #fff; - } -} -.container-add { - .categories { - i.icon { - opacity: 0.5; - } - .active { - i.icon { - opacity: 1; - } - } - } -} - -// 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; - } - } -} - -// Bullets and numbers - -.bullets, -.numbers { - ul { - margin-top: 10px; - } - - li { - width: 70px; - height: 70px; - margin-right: 1px; - border: 1px solid #c4c4c4; - html.pixel-ratio-2 & { - border: 0.5px solid #c4c4c4; - } - html.pixel-ratio-3 & { - border: 0.33px solid #c4c4c4; - } - - &.active { - // - } - - .thumb { - width: 100%; - height: 100%; - background-color: @white; - background-size: cover; - - label { - width: 100%; - text-align: center; - position: absolute; - top: 34%; - } - } - } -} - -// Slide layout - -.slide-layout { - .row { - margin-bottom: 12px; - } - - li { - margin: 0; - padding: 1px; - - img { - box-shadow: 0 0 0 1px rgba(0,0,0,0.15); - } - } -} - -// Slide theme - -.slide-theme { - .row { - margin-top: 14px; - margin-bottom: 12px; - - div { - margin: 0; - box-shadow: 0 0 0 1px rgba(0,0,0,0.15); - width: 85px; - height: 38px; - } - } - .item-theme { - background-image: url('../../../../../../sdkjs/common/Images/themes_thumbnail.png'); - } -} - -// Charts - -.chart-types { - li { - width: 60px; - height: 60px; - margin: 6px; - - .thumb { - width: 100%; - height: 100%; - background-size: contain; - } - } -} - -.modal.modal-in { - max-height: 100%; - overflow: auto; -} - -// Skeleton of document - -.doc-placeholder { - background: #f5f5f5; - width: 100%; - height: 100%; - left: 0; - top: 0; - bottom: 0; - right: 0; - z-index: 1; - position: absolute; - padding-top: 22px; - - .slide-h { - display: flex; - flex-direction: column; - justify-content: center; - flex-grow: 1; - width: 90%; - height: 100%; - margin: 0 auto; - } - - .slide-v { - display: flex; - position: relative; - flex-direction: column; - padding-bottom: 56.1333%; - } - - .slide-container { - position: absolute; - height: 100%; - width: 100%; - background: #fbfbfb; - border: 1px solid #dfdfdf; - - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; - - > .line { - height: 20%; - margin: 0 120px; - border-radius: 6px; - background: #f5f5f5; - - &:nth-child(1) { - height: 30%; - margin: 10% 80px 0; - } - - &.empty { - background: transparent; - } - } - } -} - -// Macros settings -.page-macros-settings[data-page="settings-macros-view"] { - .list-block { - li.media-item { - .item-title { - font-weight: normal; - } - .item-subtitle { - font-size: 14px; - color: @gray; - } - } - } -} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/resources/less/ios/_icons.less b/apps/presentationeditor/mobile/resources/less/ios/_icons.less deleted file mode 100644 index d894e0ecf..000000000 --- a/apps/presentationeditor/mobile/resources/less/ios/_icons.less +++ /dev/null @@ -1,510 +0,0 @@ -// Icons -i.icon { - &.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-burger { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-play { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-undo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-redo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-reader { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-download { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-print { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-spellcheck { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-info { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-plus { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-about { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-help { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-setup { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-versions { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-additional { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-color { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-selection { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-bullets { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-numbers { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-linespacing { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-align-center { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-jast { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-left { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-right { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-de-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-in-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-prev, &.icon-prev-comment { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-next, &.icon-next-comment { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-column-left { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-column-right { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-above { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-below { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-column { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-row { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagebreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-sectionbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-stringbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagenumber { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-link { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-image-library { - width: 22px; - height: 22px; - .encoded-svg-background('icons_for_svg'); - } - - &.icon-text-valign-top { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-middle { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-bottom { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - - // Presets of table borders - - &.icon-table-borders-all { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-none { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-inner { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-outer { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-left { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-center { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-right { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-top { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-middle { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-bottom { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Reorder - - &.icon-move-backward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-forward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-background { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-foreground { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - &.icon-align-left { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-center { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-right { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-top { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-middle { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-bottom { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-horizontal { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-vertical { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - // Formats - - &.icon-format-pdf { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pdfa { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pptx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-potx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-odp { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-otp { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - - // Collaboration - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-users { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-app-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-cut { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-copy { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-paste { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - //comments - &.icon-menu-comment { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-resolve-comment { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-resolve-comment.check { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-insert-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - //Insert - &.icon-add-slide { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-table { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} - -.active { - i.icon { - &.icon-add-slide { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - } -} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/resources/less/ios/_search.less b/apps/presentationeditor/mobile/resources/less/ios/_search.less deleted file mode 100644 index a6f69da4a..000000000 --- a/apps/presentationeditor/mobile/resources/less/ios/_search.less +++ /dev/null @@ -1,117 +0,0 @@ -// 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; - } - - .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%); - background-color: #f7f7f8; -} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/resources/less/material/_icons.less b/apps/presentationeditor/mobile/resources/less/material/_icons.less deleted file mode 100644 index 37a7a33bc..000000000 --- a/apps/presentationeditor/mobile/resources/less/material/_icons.less +++ /dev/null @@ -1,545 +0,0 @@ -// Icons -i.icon { - &.icon-expand-up { - width: 17px; - height: 17px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 17px; - height: 17px; - .encoded-svg-background(''); - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-play { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-reader { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-download { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-print { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-spellcheck { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-info { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-about { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-help { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-setup { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-versions { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - //&.icon-text-additional { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-text-color { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-text-selection { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-bullets { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-numbers { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - //&.icon-linespacing { - // width: 22px; - // height: 22px; - // .encoded-svg-background(''); - //} - &.icon-text-align-center { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-jast { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-left { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-right { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-de-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-in-indent { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-table-add-column-left { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-column-right { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-above { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-add-row-below { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-column { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-table-remove-row { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagebreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-sectionbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-stringbreak { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-pagenumber { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-image-library { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - - &.icon-text-valign-top { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-middle { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-bottom { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - - // Presets of table borders - - &.icon-table-borders-all { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-none { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-inner { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-outer { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-left { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-center { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-right { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-top { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-middle { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-bottom { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Reorder - - &.icon-move-backward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-forward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-background { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-foreground { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - &.icon-align-left { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-center { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-right { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-top { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-middle { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-bottom { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-horizontal { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-align-vertical { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - // Formats - - &.icon-format-pdf { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pdfa { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pptx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-potx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-odp { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-otp { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - - // Collaboration - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-users { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-app-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-cut { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-copy { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-paste { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - //Comments - &.icon-menu-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-resolve-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-resolve-comment.check { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-prev-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-next-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-done-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-insert-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-done-comment-white { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-table { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-link { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} - -// Overwrite color for toolbar -.navbar { - i.icon { - &.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; - } - &.icon-undo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-redo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-burger { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-plus { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-play { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-prev { - width: 20px; - height: 20px; - .encoded-svg-background(''); - } - &.icon-next { - width: 20px; - height: 20px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-slide { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-close-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - } -} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/resources/less/material/_search.less b/apps/presentationeditor/mobile/resources/less/material/_search.less deleted file mode 100644 index 42e5d041f..000000000 --- a/apps/presentationeditor/mobile/resources/less/material/_search.less +++ /dev/null @@ -1,120 +0,0 @@ -// 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 { - //min-width: 15px; - } - - .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 diff --git a/apps/presentationeditor/mobile/src/app.js b/apps/presentationeditor/mobile/src/app.js new file mode 100644 index 000000000..0f945afb1 --- /dev/null +++ b/apps/presentationeditor/mobile/src/app.js @@ -0,0 +1,44 @@ +// Import React and ReactDOM +import React, { Suspense } from 'react'; +import ReactDOM from 'react-dom'; + +// Import Framework7 +import Framework7 from 'framework7/lite-bundle'; +import { Dom7 } from 'framework7'; +window.$$ = Dom7; + +// Import Framework7-React Plugin +import Framework7React from 'framework7-react'; + +import jQuery from 'jquery'; +window.jQuery = jQuery; +window.$ = jQuery; + +// Import Framework7 Styles +import 'framework7/framework7-bundle.css'; + +// Import App Custom Styles +import './less/app.less'; + +// Import App Component +import App from './page/app'; +import { I18nextProvider } from 'react-i18next'; +import i18n from './lib/i18n.js'; + +import { Provider } from 'mobx-react' +import { stores } from './store/mainStore' + +// Init F7 React Plugin +Framework7.use(Framework7React) + +// Mount React App +ReactDOM.render( + + + + + + + , + document.getElementById('app'), +); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx b/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx new file mode 100644 index 000000000..e72ce5d66 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx @@ -0,0 +1,223 @@ +import React, { useContext } from 'react'; +import { f7 } from 'framework7-react'; +import { inject, observer } from "mobx-react"; +import { withTranslation} from 'react-i18next'; +import { LocalStorage } from '../../../../common/mobile/utils/LocalStorage'; + +import ContextMenuController from '../../../../common/mobile/lib/controller/ContextMenu'; +import { idContextMenuElement } from '../../../../common/mobile/lib/view/ContextMenu'; +import { Device } from '../../../../common/mobile/utils/device'; +import EditorUIController from '../lib/patch'; + +@inject ( stores => ({ + isEdit: stores.storeAppOptions.isEdit, + canViewComments: stores.storeAppOptions.canViewComments, + users: stores.users, + isDisconnected: stores.users.isDisconnected +})) +class ContextMenu extends ContextMenuController { + constructor(props) { + super(props); + + // console.log('context menu controller created'); + this.onApiShowComment = this.onApiShowComment.bind(this); + this.onApiHideComment = this.onApiHideComment.bind(this); + this.getUserName = this.getUserName.bind(this); + } + + static closeContextMenu() { + f7.popover.close(idContextMenuElement, false); + } + + getUserName(id) { + const user = this.props.users.searchUserByCurrentId(id); + return Common.Utils.UserInfoParser.getParsedName(user.asc_getUserName()); + } + + componentWillUnmount() { + super.componentWillUnmount(); + + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onShowComment', this.onApiShowComment); + api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment); + } + + + onApiShowComment(comments) { + this.isComments = comments && comments.length > 0; + } + + onApiHideComment() { + this.isComments = false; + } + + // onMenuClosed() { + // super.onMenuClosed(); + // } + + onMenuItemClick(action) { + super.onMenuItemClick(action); + + if ( EditorUIController.ContextMenu && EditorUIController.ContextMenu.handleMenuItemClick(this, action) ) + return; + + const api = Common.EditorApi.get(); + switch (action) { + case 'cut': + if ( !LocalStorage.getBool("pe-hide-copy-cut-paste-warning")) { + this.showCopyCutPasteModal(); + } + break; + case 'copy': + if (!api.Copy() && !LocalStorage.getBool("pe-hide-copy-cut-paste-warning")) { + this.showCopyCutPasteModal(); + } + break; + case 'paste': + if ( !LocalStorage.getBool("pe-hide-copy-cut-paste-warning")) { + this.showCopyCutPasteModal(); + } + break; + case 'viewcomment': + Common.Notifications.trigger('viewcomment'); + break; + case 'openlink': + const stack = Common.EditorApi.get().getSelectedElements(); + let value; + stack.forEach((item) => { + if (item.get_ObjectType() == Asc.c_oAscTypeSelectElement.Hyperlink) { + value = item.get_ObjectValue().get_Value(); + } + }); + value && this.openLink(value); + break; + } + } + + showCopyCutPasteModal() { + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + f7.dialog.create({ + title: _t.textCopyCutPasteActions, + text: _t.errorCopyCutPaste, + content: `
            + + ${_t.textDoNotShowAgain} +
            `, + buttons: [{ + text: 'OK', + onClick: () => { + const dontShow = $$('input[name="checkbox-show"]').prop('checked'); + if (dontShow) LocalStorage.setItem("de-hide-copy-cut-paste-warning", 1); + } + }] + }).open(); + } + + openLink(url) { + const api = Common.EditorApi.get(); + if (api.asc_getUrlType(url) > 0) { + const newDocumentPage = window.open(url, '_blank'); + if (newDocumentPage) { + newDocumentPage.focus(); + } + } else { + api.asc_GoToInternalHyperlink(url); + } + } + + onDocumentReady() { + super.onDocumentReady(); + + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onShowComment', this.onApiShowComment); + api.asc_registerCallback('asc_onHideComment', this.onApiHideComment); + } + + initMenuItems() { + if ( !Common.EditorApi ) return []; + + const { isEdit } = this.props; + + if (isEdit && EditorUIController.ContextMenu) { + return EditorUIController.ContextMenu.mapMenuItems(this); + } else { + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + + const { canViewComments, isDisconnected } = this.props; + + const api = Common.EditorApi.get(); + const stack = api.getSelectedElements(); + const canCopy = api.can_CopyCut(); + + let itemsIcon = [], + itemsText = []; + + let isText = false, + isTable = false, + isImage = false, + isChart = false, + isShape = false, + isLink = false, + isSlide = false, + isObject = false; + + stack.forEach(item => { + const objectType = item.get_ObjectType(), + objectValue = item.get_ObjectValue(); + + if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { + isText = true; + } else if (objectType == Asc.c_oAscTypeSelectElement.Image) { + isImage = true; + } else if (objectType == Asc.c_oAscTypeSelectElement.Chart) { + isChart = true; + } else if (objectType == Asc.c_oAscTypeSelectElement.Shape) { + isShape = true; + } else if (objectType == Asc.c_oAscTypeSelectElement.Table) { + isTable = true; + } else if (objectType == Asc.c_oAscTypeSelectElement.Hyperlink) { + isLink = true; + } else if (objectType == Asc.c_oAscTypeSelectElement.Slide) { + isSlide = true; + } + }); + + isObject = isText || isImage || isChart || isShape || isTable; + + if (canCopy && isObject) { + itemsIcon.push({ + event: 'copy', + icon: 'icon-copy' + }); + } + if (canViewComments && this.isComments && !isEdit) { + itemsText.push({ + caption: _t.menuViewComment, + event: 'viewcomment' + }); + } + + if (isLink) { + itemsText.push({ + caption: _t.menuOpenLink, + event: 'openlink' + }); + } + + return itemsIcon.concat(itemsText); + } + } + + initExtraItems () { + return (this.extraItems && this.extraItems.length > 0 ? this.extraItems : []); + } +} + +const _ContextMenu = withTranslation()(ContextMenu); +_ContextMenu.closeContextMenu = ContextMenu.closeContextMenu; +export { _ContextMenu as default }; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/Error.jsx b/apps/presentationeditor/mobile/src/controller/Error.jsx new file mode 100644 index 000000000..a8cd9213e --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/Error.jsx @@ -0,0 +1,222 @@ +import React, { useEffect } from 'react'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; + +const ErrorController = inject('storeAppOptions')(({storeAppOptions, LoadingDocument}) => { + const {t} = useTranslation(); + const _t = t("Error", { returnObjects: true }); + + useEffect(() => { + Common.Notifications.on('engineCreated', (api) => { + api.asc_registerCallback('asc_onError', onError); + }); + return () => { + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onError', onError); + } + }); + + const onError = (id, level, errData) => { + if (id === -82) return; // format error + + if (id === Asc.c_oAscError.ID.LoadingScriptError) { + f7.notification.create({ + title: _t.criticalErrorTitle, + text: _t.scriptLoadError, + closeButton: true + }).open(); + return; + } + + Common.Notifications.trigger('preloader:close'); + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); + + const api = Common.EditorApi.get(); + + const config = { + closable: false + }; + + switch (id) + { + case Asc.c_oAscError.ID.Unknown: + config.msg = _t.unknownErrorText; + break; + + case Asc.c_oAscError.ID.ConvertationTimeout: + config.msg = _t.convertationTimeoutText; + break; + + case Asc.c_oAscError.ID.ConvertationOpenError: + config.msg = _t.openErrorText; + break; + + case Asc.c_oAscError.ID.ConvertationSaveError: + config.msg = _t.saveErrorText; + break; + + case Asc.c_oAscError.ID.DownloadError: + config.msg = _t.downloadErrorText; + break; + + case Asc.c_oAscError.ID.UplImageSize: + config.msg = _t.uploadImageSizeMessage; + break; + + case Asc.c_oAscError.ID.UplImageExt: + config.msg = _t.uploadImageExtMessage; + break; + + case Asc.c_oAscError.ID.UplImageFileCount: + config.msg = _t.uploadImageFileCountMessage; + break; + + case Asc.c_oAscError.ID.SplitCellMaxRows: + config.msg = _t.splitMaxRowsErrorText.replace('%1', errData.get_Value()); + break; + + case Asc.c_oAscError.ID.SplitCellMaxCols: + config.msg = _t.splitMaxColsErrorText.replace('%1', errData.get_Value()); + break; + + case Asc.c_oAscError.ID.SplitCellRowsDivider: + config.msg = _t.splitDividerErrorText.replace('%1', errData.get_Value()); + break; + + case Asc.c_oAscError.ID.VKeyEncrypt: + config.msg = _t.errorKeyEncrypt; + break; + + case Asc.c_oAscError.ID.KeyExpire: + config.msg = _t.errorKeyExpire; + break; + + case Asc.c_oAscError.ID.UserCountExceed: + config.msg = _t.errorUsersExceed; + break; + + case Asc.c_oAscError.ID.CoAuthoringDisconnect: + config.msg = _t.errorViewerDisconnect; + break; + + case Asc.c_oAscError.ID.ConvertationPassword: + config.msg = _t.errorFilePassProtect; + break; + + case Asc.c_oAscError.ID.StockChartError: + config.msg = _t.errorStockChart; + break; + + case Asc.c_oAscError.ID.DataRangeError: + config.msg = _t.errorDataRange; + break; + + case Asc.c_oAscError.ID.Database: + config.msg = _t.errorDatabaseConnection; + break; + + case Asc.c_oAscError.ID.UserDrop: + const lostEditingRights = storeAppOptions.lostEditingRights; + if (lostEditingRights) { + storeAppOptions.changeEditingRights(false); + return; + } + storeAppOptions.changeEditingRights(true); + config.msg = _t.errorUserDrop; + break; + + case Asc.c_oAscError.ID.Warning: + config.msg = _t.errorConnectToServer; + break; + + case Asc.c_oAscError.ID.UplImageUrl: + config.msg = _t.errorBadImageUrl; + break; + + case Asc.c_oAscError.ID.SessionAbsolute: + config.msg = _t.errorSessionAbsolute; + break; + + case Asc.c_oAscError.ID.SessionIdle: + config.msg = _t.errorSessionIdle; + break; + + case Asc.c_oAscError.ID.SessionToken: + config.msg = _t.errorSessionToken; + break; + + case Asc.c_oAscError.ID.DataEncrypted: + config.msg = _t.errorDataEncrypted; + break; + + case Asc.c_oAscError.ID.AccessDeny: + config.msg = _t.errorAccessDeny; + break; + + case Asc.c_oAscError.ID.EditingError: + config.msg = _t.errorEditingDownloadas; + break; + + case Asc.c_oAscError.ID.ConvertationOpenLimitError: + config.msg = _t.errorFileSizeExceed; + break; + + case Asc.c_oAscError.ID.UpdateVersion: + config.msg = _t.errorUpdateVersionOnDisconnect; + break; + + default: + config.msg = _t.errorDefaultMessage.replace('%1', id); + break; + } + + if (level === Asc.c_oAscError.Level.Critical) { + + // report only critical errors + Common.Gateway.reportError(id, config.msg); + + config.title = _t.criticalErrorTitle; + + if (storeAppOptions.canBackToFolder && !storeAppOptions.isDesktopApp) { + config.msg += '

            ' + _t.criticalErrorExtText; + config.callback = function() { + Common.Notifications.trigger('goback', true); + } + } + if (id === Asc.c_oAscError.ID.DataEncrypted) { + api.asc_coAuthoringDisconnect(); + Common.Notifications.trigger('api:disconnect'); + } + } + else { + Common.Gateway.reportWarning(id, config.msg); + + config.title = _t.notcriticalErrorTitle; + config.callback = (btn) => { + if (id === Asc.c_oAscError.ID.Warning && btn === 'ok' && (storeAppOptions.canDownload || storeAppOptions.canDownloadOrigin)) { + api.asc_DownloadOrigin(); + } + storeAppOptions.changeEditingRights(false); + }; + } + + f7.dialog.create({ + cssClass: 'error-dialog', + title : config.title, + text : config.msg, + buttons: [ + { + text: 'OK', + onClick: config.callback + } + ] + }).open(); + + Common.component.Analytics.trackEvent('Internal Error', id.toString()); + }; + + return null +}); + +export default ErrorController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/LongActions.jsx b/apps/presentationeditor/mobile/src/controller/LongActions.jsx new file mode 100644 index 000000000..f5b5e50b7 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/LongActions.jsx @@ -0,0 +1,186 @@ +import React, { useEffect } from 'react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import IrregularStack from "../../../../common/mobile/utils/IrregularStack"; + +const LongActionsController = () => { + const {t} = useTranslation(); + const _t = t("LongActions", {returnObjects: true}); + + const ApplyEditRights = -255; + const LoadingDocument = -256; + + const stackLongActions = new IrregularStack({ + strongCompare : function(obj1, obj2){return obj1.id === obj2.id && obj1.type === obj2.type;}, + weakCompare : function(obj1, obj2){return obj1.type === obj2.type;} + }); + + let loadMask = null; + + const closePreloader = () => { + if (loadMask && loadMask.el) { + f7.dialog.close(loadMask.el); + } + }; + + useEffect( () => { + Common.Notifications.on('engineCreated', (api) => { + api.asc_registerCallback('asc_onStartAction', onLongActionBegin); + api.asc_registerCallback('asc_onEndAction', onLongActionEnd); + api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument); + }); + Common.Notifications.on('preloader:endAction', onLongActionEnd); + Common.Notifications.on('preloader:beginAction', onLongActionBegin); + Common.Notifications.on('preloader:close', closePreloader); + + return (() => { + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onStartAction', onLongActionBegin); + api.asc_unregisterCallback('asc_onEndAction', onLongActionEnd); + api.asc_unregisterCallback('asc_onOpenDocumentProgress', onOpenDocument); + + Common.Notifications.off('preloader:endAction', onLongActionEnd); + Common.Notifications.off('preloader:beginAction', onLongActionBegin); + Common.Notifications.off('preloader:close', closePreloader); + }) + }); + + const onLongActionBegin = (type, id) => { + const action = {id: id, type: type}; + stackLongActions.push(action); + setLongActionView(action); + }; + + const onLongActionEnd = (type, id) => { + let action = {id: id, type: type}; + stackLongActions.pop(action); + + //this.updateWindowTitle(true); + + action = stackLongActions.get({type: Asc.c_oAscAsyncActionType.Information}); + + if (action) { + setLongActionView(action) + } + + action = stackLongActions.get({type: Asc.c_oAscAsyncActionType.BlockInteraction}); + + if (action) { + setLongActionView(action) + } else { + loadMask && loadMask.el && loadMask.el.classList.contains('modal-in') && f7.dialog.close(loadMask.el); + } + }; + + const setLongActionView = (action) => { + let title = ''; + let text = ''; + switch (action.id) { + case Asc.c_oAscAsyncAction['Open']: + title = _t.openTitleText; + text = _t.openTextText; + break; + + case Asc.c_oAscAsyncAction['Save']: + title = _t.saveTitleText; + text = _t.saveTextText; + break; + + case Asc.c_oAscAsyncAction['LoadDocumentFonts']: + title = _t.loadFontsTitleText; + text = _t.loadFontsTextText; + break; + + case Asc.c_oAscAsyncAction['LoadDocumentImages']: + title = _t.loadImagesTitleText; + text = _t.loadImagesTextText; + break; + + case Asc.c_oAscAsyncAction['LoadFont']: + title = _t.loadFontTitleText; + text = _t.loadFontTextText; + break; + + case Asc.c_oAscAsyncAction['LoadImage']: + title = _t.loadImageTitleText; + text = _t.loadImageTextText; + break; + + case Asc.c_oAscAsyncAction['DownloadAs']: + title = _t.downloadTitleText; + text = _t.downloadTextText; + break; + + case Asc.c_oAscAsyncAction['Print']: + title = _t.printTitleText; + text = _t.printTextText; + break; + + case Asc.c_oAscAsyncAction['UploadImage']: + title = _t.uploadImageTitleText; + text = _t.uploadImageTextText; + break; + + case Asc.c_oAscAsyncAction['LoadTheme']: + title = _t.loadThemeTitleText; + text = _t.loadThemeTextText; + break; + + case Asc.c_oAscAsyncAction['ApplyChanges']: + title = _t.applyChangesTitleText; + text = _t.applyChangesTextText; + break; + + case Asc.c_oAscAsyncAction['PrepareToSave']: + title = _t.savePreparingText; + text = _t.savePreparingTitle; + break; + + case Asc.c_oAscAsyncAction['Waiting']: + title = _t.waitText; + text = _t.waitText; + break; + + case ApplyEditRights: + title = _t.txtEditingMode; + text = _t.txtEditingMode; + break; + + case LoadingDocument: + title = _t.loadingDocumentTitleText; + text = _t.loadingDocumentTextText; + break; + default: + if (typeof action.id == 'string'){ + title = action.id; + text = action.id; + } + break; + } + + if (action.type === Asc.c_oAscAsyncActionType['BlockInteraction']) { + if (action.id === Asc.c_oAscAsyncAction['ApplyChanges'] || action.id === Asc.c_oAscAsyncAction['LoadDocumentFonts']) { + return; + } + + if (loadMask && loadMask.el && loadMask.el.classList.contains('modal-in')) { + loadMask.el.getElementsByClassName('dialog-title')[0].innerHTML = title; + } else { + loadMask = f7.dialog.preloader(title); + } + } + }; + + const onOpenDocument = (progress) => { + if (loadMask && loadMask.el) { + const $title = loadMask.el.getElementsByClassName('dialog-title')[0]; + const proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount()); + + $title.innerHTML = `${_t.textLoadingDocument}: ${Math.min(Math.round(proc * 100), 100)}%`; + } + }; + + return null; +}; + +export default LongActionsController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/Main.jsx b/apps/presentationeditor/mobile/src/controller/Main.jsx new file mode 100644 index 000000000..aa19b3374 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/Main.jsx @@ -0,0 +1,794 @@ + +import React, { Component, Fragment } from 'react' +import { inject } from "mobx-react"; +import { f7 } from "framework7-react"; +import { withTranslation } from 'react-i18next'; +import CollaborationController from '../../../../common/mobile/lib/controller/collaboration/Collaboration.jsx'; +import EditorUIController from '../lib/patch'; +import { + CommentsController, + ViewCommentsController +} from "../../../../common/mobile/lib/controller/collaboration/Comments"; +import ErrorController from "./Error"; +import LongActionsController from "./LongActions"; +import {LocalStorage} from "../../../../common/mobile/utils/LocalStorage"; +import About from '../../../../common/mobile/lib/view/About'; +import PluginsController from '../../../../common/mobile/lib/controller/Plugins.jsx'; + +@inject( + "storeFocusObjects", + "storeAppOptions", + "storePresentationInfo", + "storePresentationSettings", + "storeSlideSettings", + "storeTextSettings", + "storeTableSettings", + "storeChartSettings", + "storeLinkSettings", + "storeApplicationSettings" + ) +class MainController extends Component { + constructor (props) { + super(props) + window.editorType = 'pe'; + + this.LoadingDocument = -256; + + this._state = { + licenseType: false, + isDocModified: false + }; + + this.defaultTitleText = __APP_TITLE_TEXT__; + + const { t } = this.props; + this._t = t('Controller.Main', {returnObjects:true}); + } + + initSdk () { + const script = document.createElement("script"); + script.src = "../../../../sdkjs/develop/sdkjs/slide/scripts.js"; + script.async = true; + script.onload = () => { + let dep_scripts = [ + '../../../vendor/xregexp/xregexp-all-min.js', + '../../../vendor/sockjs/sockjs.min.js']; + dep_scripts.push(...sdk_scripts); + + const promise_get_script = (scriptpath) => { + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = scriptpath; + script.onload = () => { + resolve('ok'); + }; + script.onerror = () => { + reject('error'); + }; + + document.body.appendChild(script); + }); + }; + + const loadConfig = data => { + EditorUIController.isSupportEditFeature(); + + console.log('load config'); + + this.editorConfig = Object.assign({}, this.editorConfig, data.config); + + this.props.storeAppOptions.setConfigOptions(this.editorConfig); + + this.editorConfig.lang && this.api.asc_setLocale(this.editorConfig.lang); + + let value = LocalStorage.getItem("pe-mobile-macros-mode"); + if (value === null) { + value = this.editorConfig.customization ? this.editorConfig.customization.macrosMode : 'warn'; + value = (value === 'enable') ? 1 : (value === 'disable' ? 2 : 0); + } else { + value = parseInt(value); + } + this.props.storeApplicationSettings.changeMacrosSettings(value); + }; + + const loadDocument = data => { + this.permissions = {}; + this.document = data.doc; + + let docInfo = {}; + + if (data.doc) { + this.permissions = Object.assign(this.permissions, data.doc.permissions); + + const _permissions = Object.assign({}, data.doc.permissions); + const _user = new Asc.asc_CUserInfo(); + const _userOptions = this.props.storeAppOptions.user; + _user.put_Id(_userOptions.id); + _user.put_FullName(_userOptions.fullname); + + docInfo = new Asc.asc_CDocInfo(); + docInfo.put_Id(data.doc.key); + docInfo.put_Url(data.doc.url); + docInfo.put_Title(data.doc.title); + docInfo.put_Format(data.doc.fileType); + docInfo.put_VKey(data.doc.vkey); + docInfo.put_Options(data.doc.options); + docInfo.put_UserInfo(_user); + docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); + docInfo.put_Token(data.doc.token); + docInfo.put_Permissions(_permissions); + docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); + + let enable = !this.editorConfig.customization || (this.editorConfig.customization.macros !== false); + docInfo.asc_putIsEnabledMacroses(!!enable); + enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins !== false); + docInfo.asc_putIsEnabledPlugins(!!enable); + } + + this.api.asc_registerCallback('asc_onGetEditorPermissions', onEditorPermissions); + this.api.asc_registerCallback('asc_onLicenseChanged', this.onLicenseChanged.bind(this)); + this.api.asc_registerCallback('asc_onRunAutostartMacroses', this.onRunAutostartMacroses.bind(this)); + this.api.asc_setDocInfo(docInfo); + this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId); + + // Presentation Info + + const storePresentationInfo = this.props.storePresentationInfo; + + storePresentationInfo.setDataDoc(this.document); + + // Common.SharedSettings.set('document', data.doc); + + if (data.doc) { + Common.Notifications.trigger('setdoctitle', data.doc.title); + } + }; + + const onEditorPermissions = params => { + const licType = params.asc_getLicenseType(); + + this.appOptions.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); + + const storeAppOptions = this.props.storeAppOptions; + storeAppOptions.setPermissionOptions(this.document, licType, params, this.permissions); + this.applyMode(storeAppOptions); + + this.api.asc_LoadDocument(); + this.api.Resize(); + }; + + const _process_array = (array, fn) => { + let results = []; + return array.reduce(function(p, item) { + return p.then(function() { + return fn(item).then(function(data) { + results.push(data); + return results; + }); + }); + }, Promise.resolve()); + }; + + _process_array(dep_scripts, promise_get_script) + .then ( result => { + const {t} = this.props; + this.api = new Asc.asc_docs_api({ + 'id-view': 'editor_sdk', + 'mobile': true, + 'translate': t('Controller.Main.SDK', {returnObjects:true}) + }); + + Common.Notifications.trigger('engineCreated', this.api); + Common.EditorApi = {get: () => this.api}; + + this.appOptions = {}; + this.bindEvents(); + + let value = LocalStorage.getItem("pe-settings-fontrender"); + if (value===null) value = window.devicePixelRatio > 1 ? '1' : '3'; + this.api.SetFontRenderingMode(parseInt(value)); + this.api.SetDrawingFreeze(true); + this.api.SetThemesPath("../../../../sdkjs/slide/themes/"); + Common.Utils.Metric.setCurrentMetric(1); //pt + + Common.Gateway.on('init', loadConfig); + Common.Gateway.on('showmessage', this.onExternalMessage.bind(this)); + Common.Gateway.on('opendocument', loadDocument); + Common.Gateway.appReady(); + + Common.Gateway.on('internalcommand', function(data) { + if (data.command === 'hardBack') { + if ($$('.modal-in').length > 0) { + if ( !($$('.error-dialog.modal-in').length > 0) ) { + f7.dialog.close(); + } + Common.Gateway.internalMessage('hardBack', false); + } else + Common.Gateway.internalMessage('hardBack', true); + } + }); + Common.Gateway.internalMessage('listenHardBack'); + }, error => { + console.log('promise failed ' + error); + }); + }; + + script.onerror = () => { + console.log('error'); + }; + + document.body.appendChild(script); + } + + applyMode(appOptions) { + this.api.asc_enableKeyEvents(appOptions.isEdit); + this.api.asc_setViewMode(!appOptions.isEdit && !appOptions.isRestrictedEdit); + (appOptions.isRestrictedEdit && appOptions.canComments) && this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyComments); + + let value = LocalStorage.getItem('pe-mobile-settings-unit'); + value = (value !== null) ? + parseInt(value) : + (appOptions.customization && appOptions.customization.unit ? Common.Utils.Metric.c_MetricUnits[appOptions.customization.unit.toLocaleLowerCase()] : Common.Utils.Metric.getDefaultMetric()); + (value === undefined) && (value = Common.Utils.Metric.getDefaultMetric()); + Common.Utils.Metric.setCurrentMetric(value); + this.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)); + + this.api.asc_registerCallback('asc_onDocumentModifiedChanged', this.onDocumentModifiedChanged.bind(this)); + this.api.asc_registerCallback('asc_onDocumentCanSaveChanged', this.onDocumentCanSaveChanged.bind(this)); + + //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 = this.onBeforeUnload.bind(this); + window.onunload = this.onUnload.bind(this); + } + + onDocumentModifiedChanged () { + const isModified = this.api.asc_isDocumentCanSave(); + if (this._state.isDocModified !== isModified) { + this._isDocReady && Common.Gateway.setDocumentModified(this.api.isDocumentModified()); + } + + this.updateWindowTitle(); + } + + onDocumentCanSaveChanged (isCanSave) { + // + } + + onBeforeUnload () { + LocalStorage.save(); + + if (this.api.isDocumentModified()) { + this.api.asc_stopSaving(); + this.continueSavingTimer = window.setTimeout(() => { + this.api.asc_continueSaving(); + }, 500); + + return this._t.leavePageText; + } + } + + onUnload () { + if (this.continueSavingTimer) + clearTimeout(this.continueSavingTimer); + } + + bindEvents () { + this.api.asc_registerCallback('asc_onDocumentContentReady', this.onDocumentContentReady.bind(this)); + this.api.asc_registerCallback('asc_onDocumentUpdateVersion', this.onUpdateVersion.bind(this)); + this.api.asc_registerCallback('asc_onServerVersion', this.onServerVersion.bind(this)); + this.api.asc_registerCallback('asc_onAdvancedOptions', this.onAdvancedOptions.bind(this)); + this.api.asc_registerCallback('asc_onDocumentName', this.onDocumentName.bind(this)); + this.api.asc_registerCallback('asc_onPrintUrl', this.onPrintUrl.bind(this)); + this.api.asc_registerCallback('asc_onPrint', this.onPrint.bind(this)); + this.api.asc_registerCallback('asc_onMeta', this.onMeta.bind(this)); + + EditorUIController.initThemeColors && EditorUIController.initThemeColors(); + + const storePresentationSettings = this.props.storePresentationSettings; + + this.api.asc_registerCallback('asc_onPresentationSize', (width, height) => { + storePresentationSettings.changeSizeIndex(width, height); + }); + + this.api.asc_registerCallback('asc_onSendThemeColorSchemes', (arr) => { + storePresentationSettings.addSchemes(arr); + }); + + EditorUIController.initFocusObjects && EditorUIController.initFocusObjects(this.props.storeFocusObjects); + + EditorUIController.initEditorStyles && EditorUIController.initEditorStyles(this.props.storeSlideSettings); + + // Text settings + + const storeTextSettings = this.props.storeTextSettings; + + EditorUIController.initFonts && EditorUIController.initFonts(storeTextSettings); + + this.api.asc_registerCallback('asc_onVerticalAlign', (typeBaseline) => { + storeTextSettings.resetTypeBaseline(typeBaseline); + }); + + this.api.asc_registerCallback('asc_onListType', (data) => { + let type = data.get_ListType(); + let subtype = data.get_ListSubType(); + + storeTextSettings.resetListType(type); + + switch (type) { + case 0: + storeTextSettings.resetBullets(subtype); + storeTextSettings.resetNumbers(-1); + break; + case 1: + storeTextSettings.resetNumbers(subtype); + storeTextSettings.resetBullets(-1); + break; + default: + storeTextSettings.resetBullets(-1); + storeTextSettings.resetNumbers(-1); + } + }); + + this.api.asc_registerCallback('asc_onPrAlign', (align) => { + storeTextSettings.resetParagraphAlign(align); + }); + + this.api.asc_registerCallback('asc_onVerticalTextAlign', valign => { + storeTextSettings.resetParagraphValign(valign); + }); + + this.api.asc_registerCallback('asc_canIncreaseIndent', value => { + storeTextSettings.resetIncreaseIndent(value); + }); + + this.api.asc_registerCallback('asc_canDecreaseIndent', value => { + storeTextSettings.resetDecreaseIndent(value); + }); + + this.api.asc_registerCallback('asc_onTextColor', (color) => { + storeTextSettings.resetTextColor(color); + }); + + this.api.asc_registerCallback('asc_onParaSpacingLine', (vc) => { + storeTextSettings.resetLineSpacing(vc); + }); + + //link settings + const storeLinkSettings = this.props.storeLinkSettings; + this.api.asc_registerCallback('asc_onCanAddHyperlink', (value) => { + storeLinkSettings.canAddHyperlink(value); + }); + + // Table settings + + EditorUIController.initTableTemplates && EditorUIController.initTableTemplates(this.props.storeTableSettings); + + // Chart settings + + EditorUIController.updateChartStyles && EditorUIController.updateChartStyles(this.props.storeChartSettings, this.props.storeFocusObjects); + } + + onDocumentContentReady () { + if (this._isDocReady) + return; + + this._isDocReady = true; + + const appOptions = this.props.storeAppOptions; + const appSettings = this.props.storeApplicationSettings; + + this.api.SetDrawingFreeze(false); + + Common.Notifications.trigger('preloader:close'); + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + + let value = LocalStorage.getItem("pe-settings-zoom"); + const zf = (value!==null) ? parseInt(value) : (appOptions.customization && appOptions.customization.zoom ? parseInt(appOptions.customization.zoom) : -1); + (zf === -1) ? this.api.zoomFitToPage() : ((zf === -2) ? this.api.zoomFitToWidth() : this.api.zoom(zf>0 ? zf : 100)); + + value = LocalStorage.getBool("pe-mobile-spellcheck", !(appOptions.customization && appOptions.customization.spellcheck===false)); + appSettings.changeSpellCheck(value); + this.api.asc_setSpellCheck(value); + + this.updateWindowTitle(true); + + this.api.SetTextBoxInputMode(LocalStorage.getBool("pe-settings-inputmode")); + + if (appOptions.isEdit && this.needToUpdateVersion) { + Common.Notifications.trigger('api:disconnect'); + } + + Common.Gateway.on('processsaveresult', this.onProcessSaveResult.bind(this)); + Common.Gateway.on('processrightschange', this.onProcessRightsChange.bind(this)); + Common.Gateway.on('downloadas', this.onDownloadAs.bind(this)); + Common.Gateway.on('requestclose', this.onRequestClose.bind(this)); + + Common.Gateway.sendInfo({ + mode: appOptions.isEdit ? 'edit' : 'view' + }); + + this.api.Resize(); + this.api.zoomFitToPage(); + this.api.asc_GetDefaultTableStyles && setTimeout(() => {this.api.asc_GetDefaultTableStyles()}, 1); + + this.applyLicense(); + + Common.Gateway.documentReady(); + f7.emit('resize'); + + Common.Notifications.trigger('document:ready'); + } + + onLicenseChanged (params) { + const appOptions = this.props.storeAppOptions; + const licType = params.asc_getLicenseType(); + if (licType !== undefined && appOptions.canEdit && appOptions.config.mode !== 'view' && + (licType === Asc.c_oLicenseResult.Connections || licType === Asc.c_oLicenseResult.UsersCount || licType === Asc.c_oLicenseResult.ConnectionsOS || licType === Asc.c_oLicenseResult.UsersCountOS + || licType === Asc.c_oLicenseResult.SuccessLimit && (appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0)) + this._state.licenseType = licType; + if (this._isDocReady && this._state.licenseType) + this.applyLicense(); + } + + applyLicense () { + const _t = this._t; + const warnNoLicense = _t.warnNoLicense.replace(/%1/g, __COMPANY_NAME__); + const warnNoLicenseUsers = _t.warnNoLicenseUsers.replace(/%1/g, __COMPANY_NAME__); + const textNoLicenseTitle = _t.textNoLicenseTitle.replace(/%1/g, __COMPANY_NAME__); + const warnLicenseExceeded = _t.warnLicenseExceeded.replace(/%1/g, __COMPANY_NAME__); + const warnLicenseUsersExceeded = _t.warnLicenseUsersExceeded.replace(/%1/g, __COMPANY_NAME__); + + const appOptions = this.props.storeAppOptions; + if (appOptions.config.mode !== 'view' && !EditorUIController.isSupportEditFeature()) { + let value = LocalStorage.getItem("pe-opensource-warning"); + value = (value !== null) ? parseInt(value) : 0; + const now = (new Date).getTime(); + if (now - value > 86400000) { + LocalStorage.setItem("pe-opensource-warning", now); + f7.dialog.create({ + title: _t.notcriticalErrorTitle, + text : _t.errorOpensource, + buttons: [{text: 'OK'}] + }).open(); + } + Common.Notifications.trigger('toolbar:activatecontrols'); + return; + } + + if (this._state.licenseType) { + let license = this._state.licenseType; + let buttons = [{text: 'OK'}]; + if ((appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0 && + (license === Asc.c_oLicenseResult.SuccessLimit || + license === Asc.c_oLicenseResult.ExpiredLimited || + appOptions.permissionsLicense === Asc.c_oLicenseResult.SuccessLimit) + ) { + license = (license === Asc.c_oLicenseResult.ExpiredLimited) ? _t.warnLicenseLimitedNoAccess : _t.warnLicenseLimitedRenewed; + } else if (license === Asc.c_oLicenseResult.Connections || license === Asc.c_oLicenseResult.UsersCount) { + license = (license===Asc.c_oLicenseResult.Connections) ? warnLicenseExceeded : warnLicenseUsersExceeded; + } else { + license = (license === Asc.c_oLicenseResult.ConnectionsOS) ? warnNoLicense : warnNoLicenseUsers; + buttons = [{ + text: _t.textBuyNow, + bold: true, + onClick: function() { + window.open(`${__PUBLISHER_URL__}`, "_blank"); + } + }, + { + text: _t.textContactUs, + onClick: function() { + window.open(`mailto:${__SALES_EMAIL__}`, "_blank"); + } + }]; + } + if (this._state.licenseType === Asc.c_oLicenseResult.SuccessLimit) { + Common.Notifications.trigger('toolbar:activatecontrols'); + } else { + Common.Notifications.trigger('toolbar:activatecontrols'); + Common.Notifications.trigger('toolbar:deactivateeditcontrols'); + Common.Notifications.trigger('api:disconnect'); + } + + let value = LocalStorage.getItem("pe-license-warning"); + value = (value !== null) ? parseInt(value) : 0; + const now = (new Date).getTime(); + + if (now - value > 86400000) { + LocalStorage.setItem("pe-license-warning", now); + f7.dialog.create({ + title: textNoLicenseTitle, + text : license, + buttons: buttons + }).open(); + } + } else { + if (!appOptions.isDesktopApp && !appOptions.canBrandingExt && + appOptions.config && appOptions.config.customization && (appOptions.config.customization.loaderName || appOptions.config.customization.loaderLogo)) { + f7.dialog.create({ + title: _t.textPaidFeature, + text : _t.textCustomLoader, + buttons: [{ + text: _t.textContactUs, + bold: true, + onClick: () => { + window.open(`mailto:${__SALES_EMAIL__}`, "_blank"); + } + }, + { text: _t.textClose }] + }).open(); + } + Common.Notifications.trigger('toolbar:activatecontrols'); + } + } + + onUpdateVersion (callback) { + const _t = this._t; + + this.needToUpdateVersion = true; + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + + f7.dialog.alert( + _t.errorUpdateVersion, + _t.titleUpdateVersion, + () => { + Common.Gateway.updateVersion(); + if (callback) { + callback.call(this); + } + Common.Notifications.trigger('preloader:beginAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + }); + } + + onServerVersion (buildVersion) { + if (this.changeServerVersion) return true; + const _t = this._t; + + if (About.appVersion() !== buildVersion && !window.compareVersions) { + this.changeServerVersion = true; + f7.dialog.alert( + _t.errorServerVersion, + _t.titleServerVersion, + () => { + setTimeout(() => {Common.Gateway.updateVersion()}, 0); + }); + return true; + } + return false; + } + + onAdvancedOptions (type, advOptions) { + if ($$('.dlg-adv-options.modal-in').length > 0) return; + + const _t = this._t; + + if (type == Asc.c_oAscAdvancedOptionsID.DRM) { + Common.Notifications.trigger('preloader:close'); + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + + const buttons = [{ + text: 'OK', + bold: true, + close: false, + onClick: () => { + const password = document.getElementById('modal-password').value; + this.api.asc_setAdvancedOptions(type, new Asc.asc_CDRMAdvancedOptions(password)); + + if (!this._isDocReady) { + Common.Notifications.trigger('preloader:beginAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + } + } + }]; + if (this.props.storeAppOptions.canRequestClose) + buttons.push({ + text: _t.closeButtonText, + onClick: () => { + Common.Gateway.requestClose(); + } + }); + + f7.dialog.create({ + title: _t.advDRMOptions, + text: (typeof advOptions === 'string' ? advOptions : _t.txtProtected), + content: + `
            + +
            `, + buttons: buttons, + cssClass: 'dlg-adv-options' + }).open(); + } + } + + onDocumentName () { + this.updateWindowTitle(true); + } + + updateWindowTitle (force) { + const isModified = this.api.isDocumentModified(); + if (this._state.isDocModified !== isModified || force) { + const title = this.defaultTitleText; + + if (window.document.title !== title) { + window.document.title = title; + } + + this._isDocReady && (this._state.isDocModified !== isModified) && Common.Gateway.setDocumentModified(isModified); + this._state.isDocModified = isModified; + } + } + + onPrint () { + if (!this.props.storeAppOptions.canPrint) return; + + if (this.api) + this.api.asc_Print(); + Common.component.Analytics.trackEvent('Print'); + } + + onPrintUrl (url) { + if (this.iframePrint) { + this.iframePrint.parentNode.removeChild(this.iframePrint); + this.iframePrint = null; + } + + if (!this.iframePrint) { + this.iframePrint = document.createElement("iframe"); + this.iframePrint.id = "id-print-frame"; + this.iframePrint.style.display = 'none'; + this.iframePrint.style.visibility = "hidden"; + this.iframePrint.style.position = "fixed"; + this.iframePrint.style.right = "0"; + this.iframePrint.style.bottom = "0"; + document.body.appendChild(this.iframePrint); + this.iframePrint.onload = function() { + this.iframePrint.contentWindow.focus(); + this.iframePrint.contentWindow.print(); + this.iframePrint.contentWindow.blur(); + window.focus(); + }; + } + + if (url) { + this.iframePrint.src = url; + } + } + + onMeta (meta) { + this.updateWindowTitle(true); + Common.Gateway.metaChange(meta); + } + + onExternalMessage (msg) { + if (msg && msg.msg) { + msg.msg = (msg.msg).toString(); + f7.notification.create({ + //title: uiApp.params.modalTitle, + text: [msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)], + closeButton: true + }).open(); + + Common.component.Analytics.trackEvent('External Error'); + } + } + + onRunAutostartMacroses () { + const config = this.props.storeAppOptions.config; + const enable = !config.customization || (config.customization.macros !== false); + if (enable) { + const value = this.props.storeApplicationSettings.macrosMode; + if (value === 1) { + this.api.asc_runAutostartMacroses(); + } else if (value === 0) { + const _t = this._t; + f7.dialog.create({ + title: _t.notcriticalErrorTitle, + text: _t.textHasMacros, + content: `
            + + ${_t.textRemember} +
            `, + buttons: [{ + text: _t.textYes, + onClick: () => { + const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked'); + if (dontshow) { + this.props.storeApplicationSettings.changeMacrosSettings(1); + LocalStorage.setItem("pe-mobile-macros-mode", 1); + } + setTimeout(() => { + this.api.asc_runAutostartMacroses(); + }, 1); + }}, + { + text: _t.textNo, + onClick: () => { + const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked'); + if (dontshow) { + this.props.storeApplicationSettings.changeMacrosSettings(2); + LocalStorage.setItem("pe-mobile-macros-mode", 2); + } + } + }] + }).open(); + } + } + } + + onProcessSaveResult (data) { + this.api.asc_OnSaveEnd(data.result); + + if (data && data.result === false) { + const _t = this._t; + f7.dialog.alert( + (!data.message) ? _t.errorProcessSaveResult : data.message, + _t.criticalErrorTitle + ); + } + } + + onProcessRightsChange (data) { + if (data && data.enabled === false) { + const appOptions = this.props.storeAppOptions; + const old_rights = appOptions.lostEditingRights; + appOptions.changeEditingRights(!old_rights); + this.api.asc_coAuthoringDisconnect(); + Common.Notifications.trigger('api:disconnect'); + + if (!old_rights) { + const _t = this._t; + f7.dialog.alert( + (!data.message) ? _t.warnProcessRightsChange : data.message, + _t.notcriticalErrorTitle, + () => { appOptions.changeEditingRights(false); } + ); + } + } + } + + onDownloadAs () { + if ( !this.props.storeAppOptions.canDownload) { + Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, this.errorAccessDeny); + return; + } + this._state.isFromGatewayDownloadAs = true; + this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PPTX, true)); + } + + onRequestClose () { + Common.Gateway.requestClose(); + } + + render () { + return ( + + + + + + {EditorUIController.getEditCommentControllers && EditorUIController.getEditCommentControllers()} + + + + ) + } + + componentDidMount () { + this.initSdk(); + } +} + +const translated = withTranslation()(MainController); +export {translated as MainController}; diff --git a/apps/presentationeditor/mobile/src/controller/Preview.jsx b/apps/presentationeditor/mobile/src/controller/Preview.jsx new file mode 100644 index 000000000..df6cd83aa --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/Preview.jsx @@ -0,0 +1,106 @@ +import React, { useEffect, useState } from 'react'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import Preview from "../view/Preview"; + +const PreviewController = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}) + + let _view, _touches, _touchStart, _touchEnd; + + _view = $$('#pe-preview'); + + useEffect(() => { + const onDocumentReady = () => { + const api = Common.EditorApi.get(); + + api.asc_registerCallback('asc_onEndDemonstration', onEndDemonstration); + api.DemonstrationEndShowMessage(_t.textFinalMessage); + }; + + show(); + onDocumentReady(); + + _view.on('touchstart', onTouchStart); + _view.on('touchmove', onTouchMove); + _view.on('touchend', onTouchEnd); + _view.on('click', onClick); + + return () => { + const api = Common.EditorApi.get(); + + api.asc_unregisterCallback('asc_onEndDemonstration', onEndDemonstration); + + _view.off('touchstart', onTouchStart); + _view.off('touchmove', onTouchMove); + _view.off('touchend', onTouchEnd); + _view.off('click', onClick); + }; + }, []); + + const show = () => { + const api = Common.EditorApi.get(); + api.StartDemonstration('presentation-preview', api.getCurrentPage()); + }; + + const onTouchStart = e => { + e.preventDefault(); + + _touches = []; + + for (let i = 0; i < e.touches.length; i++) { + _touches.push([e.touches[i].pageX, e.touches[i].pageY]); + } + _touchEnd = _touchStart = [e.touches[0].pageX, e.touches[0].pageY]; + }; + + const onTouchMove = e => { + e.preventDefault(); + + const api = Common.EditorApi.get(); + + _touchEnd = [e.touches[0].pageX, e.touches[0].pageY]; + + if (e.touches.length < 2 ) return; + + for (let i = 0; i < e.touches.length; i++) { + if (Math.abs(e.touches[i].pageX - _touches[i][0]) > 20 || Math.abs(e.touches[i].pageY - _touches[i][1]) > 20 ) { + api.EndDemonstration(); + break; + } + } + }; + + const onTouchEnd = e => { + e.preventDefault(); + + const api = Common.EditorApi.get(); + + if (_touchEnd[0] - _touchStart[0] > 20) + api.DemonstrationPrevSlide(); + else if (_touchStart[0] - _touchEnd[0] > 20) + api.DemonstrationNextSlide(); + }; + + const onClick = e => { + const api = Common.EditorApi.get(); + api.DemonstrationNextSlide(); + }; + + // API Handlers + + const onEndDemonstration = () => { + props.onclosed(); + }; + + return ( + + ) +}; + +export {PreviewController as Preview}; + + + diff --git a/apps/presentationeditor/mobile/src/controller/Search.jsx b/apps/presentationeditor/mobile/src/controller/Search.jsx new file mode 100644 index 000000000..3f9706fb2 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/Search.jsx @@ -0,0 +1,102 @@ +import React from 'react'; +import { List, ListItem, Toggle, Page, Navbar, NavRight, Link } from 'framework7-react'; +import { SearchController, SearchView, SearchSettingsView } from '../../../../common/mobile/lib/controller/Search'; +import { f7 } from 'framework7-react'; +import { withTranslation } from 'react-i18next'; +import { Device } from '../../../../common/mobile/utils/device'; + +class SearchSettings extends SearchSettingsView { + constructor(props) { + super(props); + } + + extraSearchOptions() { + const anc_markup = super.extraSearchOptions(); + const show_popover = !Device.phone; + const { t } = this.props; + const _t = t("View.Settings", {returnObjects: true}); + + const markup = ( + + + {!show_popover && + + {_t.textDone} + + } + + + this.onFindReplaceClick('find')} /> + this.onFindReplaceClick('replace')} /> + this.onFindReplaceClick('replace-all')}> + + + + + + + + ); + + return {...anc_markup, ...markup}; + } +} + +class PESearchView extends SearchView { + constructor(props) { + super(props); + } + + searchParams() { + let params = super.searchParams(); + + const checkboxCaseSensitive = f7.toggle.get('.toggle-case-sensitive'); + const searchOptions = { + caseSensitive: checkboxCaseSensitive.checked, + }; + + return {...params, ...searchOptions}; + } + + onSearchbarShow(isshowed, bar) { + super.onSearchbarShow(isshowed, bar); + } +} + +const Search = withTranslation()(props => { + const { t } = props; + const _t = t('View.Settings', {returnObjects: true}); + + const onSearchQuery = params => { + const api = Common.EditorApi.get(); + + if (params.find && params.find.length) { + if (!api.findText(params.find, params.forward, params.caseSensitive) ) { + f7.dialog.alert(null, _t.textNoTextFound); + } + } + }; + + const onReplaceQuery = params => { + const api = Common.EditorApi.get(); + + if (params.find && params.find.length) { + api.asc_replaceText(params.find, params.replace, false, params.caseSensitive); + } + } + + const onReplaceAllQuery = params => { + const api = Common.EditorApi.get(); + + if (params.find && params.find.length) { + api.asc_replaceText(params.find, params.replace, true, params.caseSensitive); + } + } + + return +}); + +const SearchSettingsWithTranslation = withTranslation()(SearchSettings); + +export {Search, SearchSettingsWithTranslation as SearchSettings} diff --git a/apps/presentationeditor/mobile/src/controller/Toolbar.jsx b/apps/presentationeditor/mobile/src/controller/Toolbar.jsx new file mode 100644 index 000000000..d92f94f4a --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/Toolbar.jsx @@ -0,0 +1,209 @@ +import React, { useEffect, useState } from 'react'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import ToolbarView from "../view/Toolbar"; + +const ToolbarController = inject('storeAppOptions', 'users')(props => { + const {t} = useTranslation(); + const _t = t("Toolbar", { returnObjects: true }); + + const appOptions = props.storeAppOptions; + const isDisconnected = props.users.isDisconnected; + const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments; + + useEffect(() => { + const onDocumentReady = () => { + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onCanUndo', onApiCanUndo); + api.asc_registerCallback('asc_onCanRedo', onApiCanRedo); + api.asc_registerCallback('asc_onFocusObject', onApiFocusObject); + api.asc_registerCallback('asc_onCoAuthoringDisconnect', onCoAuthoringDisconnect); + api.asc_registerCallback('asc_onCountPages', onApiCountPages); + Common.Notifications.on('api:disconnect', onCoAuthoringDisconnect); + Common.Notifications.on('toolbar:activatecontrols', activateControls); + Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); + Common.Notifications.on('goback', goBack); + }; + if ( !Common.EditorApi ) { + Common.Notifications.on('document:ready', onDocumentReady); + Common.Notifications.on('setdoctitle', setDocTitle); + Common.Gateway.on('init', loadConfig); + } else { + onDocumentReady(); + } + + return () => { + Common.Notifications.off('document:ready', onDocumentReady); + Common.Notifications.off('setdoctitle', setDocTitle); + Common.Notifications.off('api:disconnect', onCoAuthoringDisconnect); + Common.Notifications.off('toolbar:activatecontrols', activateControls); + Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls); + Common.Notifications.off('goback', goBack); + + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onCanUndo', onApiCanUndo); + api.asc_unregisterCallback('asc_onCanRedo', onApiCanRedo); + api.asc_unregisterCallback('asc_onFocusObject', onApiFocusObject); + api.asc_unregisterCallback('asc_onCoAuthoringDisconnect', onCoAuthoringDisconnect); + api.asc_unregisterCallback('asc_onCountPages', onApiCountPages); + } + }); + + const [docTitle, resetDocTitle] = useState(''); + const setDocTitle = (title) => { + resetDocTitle(title); + } + + // Back button + const [isShowBack, setShowBack] = useState(false); + const loadConfig = (data) => { + if (data && data.config && data.config.canBackToFolder !== false && + data.config.customization && data.config.customization.goback && + (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) { + setShowBack(true); + } + }; + const onBack = () => { + const api = Common.EditorApi.get(); + if (api.isDocumentModified()) { + f7.dialog.create({ + title : _t.dlgLeaveTitleText, + text : _t.dlgLeaveMsgText, + verticalButtons: true, + buttons : [ + { + text: _t.leaveButtonText, + onClick: function() { + goBack(); + } + }, + { + text: _t.stayButtonText, + bold: true + } + ] + }).open(); + } else { + goBack(); + } + }; + const goBack = (current) => { + //if ( !Common.Controllers.Desktop.process('goback') ) { + if (appOptions.customization.goback.requestClose && appOptions.canRequestClose) { + Common.Gateway.requestClose(); + } else { + const href = appOptions.customization.goback.url; + if (!current && appOptions.customization.goback.blank !== false) { + window.open(href, "_blank"); + } else { + parent.location.href = href; + } + } + //} + } + + // Undo and Redo + const [isCanUndo, setCanUndo] = useState(true); + const [isCanRedo, setCanRedo] = useState(true); + const onApiCanUndo = (can) => { + if (isDisconnected) return; + setCanUndo(can); + }; + const onApiCanRedo = (can) => { + if (isDisconnected) return; + setCanRedo(can); + }; + const onUndo = () => { + const api = Common.EditorApi.get(); + if (api) { + api.Undo(); + } + }; + const onRedo = () => { + const api = Common.EditorApi.get(); + if (api) { + api.Redo(); + } + } + + const [disabledAdd, setDisabledAdd] = useState(false); + const [disabledEdit, setDisabledEdit] = useState(false); + const onApiFocusObject = (objects) => { + if (isDisconnected) return; + + if (objects.length > 0) { + let slide_deleted = false, + slide_lock = false, + no_object = true, + objectLocked = false; + objects.forEach((object) => { + const type = object.get_ObjectType(); + const objectValue = object.get_ObjectValue(); + if (type === Asc.c_oAscTypeSelectElement.Slide) { + slide_deleted = objectValue.get_LockDelete(); + slide_lock = objectValue.get_LockLayout() || objectValue.get_LockBackground() || objectValue.get_LockTransition() || objectValue.get_LockTiming(); + } else if (objectValue && typeof objectValue.get_Locked === 'function') { + no_object = false; + objectLocked = objectLocked || objectValue.get_Locked(); + } + }); + + setDisabledAdd(slide_deleted); + setDisabledEdit(slide_deleted || (objectLocked || no_object) && slide_lock); + } + }; + + const [disabledPreview, setDisabledPreview] = useState(false); + const onApiCountPages = (count) => { + setDisabledPreview(count <= 0); + }; + + const [disabledEditControls, setDisabledEditControls] = useState(false); + const [disabledSettings, setDisabledSettings] = useState(false); + const deactivateEditControls = (enableDownload) => { + setDisabledEditControls(true); + if (enableDownload) { + //DE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); + } else { + setDisabledSettings(true); + } + }; + + + const [disabledControls, setDisabledControls] = useState(true); + const activateControls = () => { + setDisabledControls(false); + }; + + const onCoAuthoringDisconnect = (enableDownload) => { + deactivateEditControls(enableDownload); + setCanUndo(false); + setCanRedo(false); + f7.popover.close(); + f7.sheet.close(); + f7.popup.close(); + }; + + return ( + + ) +}); + +export {ToolbarController as Toolbar}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/add/AddImage.jsx b/apps/presentationeditor/mobile/src/controller/add/AddImage.jsx new file mode 100644 index 000000000..4aafae09b --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/add/AddImage.jsx @@ -0,0 +1,59 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import {AddImage} from '../../view/add/AddImage'; + +class AddImageController extends Component { + constructor (props) { + super(props); + this.onInsertByFile = this.onInsertByFile.bind(this); + this.onInsertByUrl = this.onInsertByUrl.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onInsertByFile () { + const api = Common.EditorApi.get(); + api.asc_addImage(); + this.closeModal(); + } + + onInsertByUrl (value) { + const { t } = this.props; + const _t = t("View.Add", { returnObjects: true }); + + const _value = value.replace(/ /g, ''); + + if (_value) { + if ((/((^https?)|(^ftp)):\/\/.+/i.test(_value))) { + this.closeModal(); + const api = Common.EditorApi.get(); + api.AddImageUrl(_value); + } else { + f7.dialog.alert(_t.txtNotUrl, _t.notcriticalErrorTitle); + } + } else { + f7.dialog.alert(_t.textEmptyImgUrl, _t.notcriticalErrorTitle); + } + } + + render () { + return ( + + ) + } +} + +const AddImageWithTranslation = withTranslation()(AddImageController); + +export {AddImageWithTranslation as AddImageController}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/add/AddLink.jsx b/apps/presentationeditor/mobile/src/controller/add/AddLink.jsx new file mode 100644 index 000000000..609372460 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/add/AddLink.jsx @@ -0,0 +1,113 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import {PageLink} from '../../view/add/AddLink'; + +class AddLinkController extends Component { + constructor (props) { + super(props); + this.onInsertLink = this.onInsertLink.bind(this); + this.getTextDisplay = this.getTextDisplay.bind(this); + + const api = Common.EditorApi.get(); + this.textDisplay = api.can_AddHyperlink(); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onInsertLink (type, linkInfo) { + const api = Common.EditorApi.get(); + const { t } = this.props; + const _t = t("View.Add", { returnObjects: true }); + + const c_oHyperlinkType = { + InternalLink: 0, + WebLink: 1 + }; + const display = linkInfo.display; + const tip = linkInfo.tip; + const props = new Asc.CHyperlinkProperty(); + let def_display = ''; + + if (type == c_oHyperlinkType.WebLink) { + let url = linkInfo.url; + const urltype = api.asc_getUrlType(url.trim()); + const isEmail = (urltype == 2); + if (urltype < 1) { + f7.dialog.alert(_t.txtNotUrl, _t.notcriticalErrorTitle); + return; + } + + url = url.replace(/^\s+|\s+$/g, ''); + if (!/(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url)) + url = (isEmail ? 'mailto:' : 'http://' ) + url; + url = url.replace(new RegExp("%20", 'g'), " "); + + props.put_Value(url); + props.put_ToolTip(tip); + def_display = url; + } else { + let url = "ppaction://hlink"; + let slidetip = ''; + switch (linkInfo.linkTo) { + case 0: + url = url + "showjump?jump=nextslide"; + slidetip = _t.textNextSlide; + break; + case 1: + url = url + "showjump?jump=previousslide"; + slidetip = _t.textPrevSlide; + break; + case 2: + url = url + "showjump?jump=firstslide"; + slidetip = _t.textFirstSlide; + break; + case 3: + url = url + "showjump?jump=lastslide"; + slidetip = _t.textLastSlide; + break; + case 4: + url = url + "sldjumpslide" + linkInfo.numberTo; + slidetip = _t.textSlide + ' ' + (linkInfo.numberTo + 1); + break; + } + props.put_Value(url); + props.put_ToolTip(!tip ? slidetip : tip); + def_display = slidetip; + } + + if (!linkInfo.displayDisabled) { + props.put_Text(!display ? def_display : display); + } else + props.put_Text(null); + + api.add_Hyperlink(props); + + this.closeModal(); + } + + getTextDisplay () { + return this.textDisplay; + } + + render () { + return ( + + ) + } +} + +const AddLinkWithTranslation = withTranslation()(AddLinkController); + +export {AddLinkWithTranslation as AddLinkController}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/add/AddOther.jsx b/apps/presentationeditor/mobile/src/controller/add/AddOther.jsx new file mode 100644 index 000000000..4ac82cca4 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/add/AddOther.jsx @@ -0,0 +1,130 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import {AddOther} from '../../view/add/AddOther'; + +class AddOtherController extends Component { + constructor (props) { + super(props); + this.onStyleClick = this.onStyleClick.bind(this); + this.initStyleTable = this.initStyleTable.bind(this); + + this.initTable = false; + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + initStyleTable () { + if (!this.initTable) { + const api = Common.EditorApi.get(); + api.asc_GetDefaultTableStyles(); + this.initTable = true; + } + } + + onStyleClick (type) { + const api = Common.EditorApi.get(); + + this.closeModal(); + + const { t } = this.props; + const _t = t("View.Add", { returnObjects: true }); + + let picker; + + const dialog = f7.dialog.create({ + title: _t.textTableSize, + text: '', + content: + '
            ' + + '
            ' + + '
            ' + _t.textColumns + '
            ' + + '
            ' + _t.textRows + '
            ' + + '
            ' + + '
            ' + + '
            ', + buttons: [ + { + text: _t.textCancel + }, + { + text: 'OK', + bold: true, + onClick: function () { + const size = picker.value; + + api.put_Table(parseInt(size[0]), parseInt(size[1]), undefined, type.toString()); + } + } + ] + }).open(); + dialog.on('opened', () => { + picker = f7.picker.create({ + containerEl: document.getElementById('picker-table-size'), + cols: [ + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + }, + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + } + ], + toolbar: false, + rotateEffect: true, + value: [3, 3] + }); + }); + } + + hideAddComment () { + const api = Common.EditorApi.get(); + const stack = api.getSelectedElements(); + let isText = false, + isChart = false; + + stack.forEach((item) => { + const objectType = item.get_ObjectType(); + if (objectType === Asc.c_oAscTypeSelectElement.Paragraph) { + isText = true; + } else if (objectType === Asc.c_oAscTypeSelectElement.Chart) { + isChart = true; + } + }); + if (stack.length > 0) { + const topObject = stack[stack.length - 1]; + const topObjectValue = topObject.get_ObjectValue(); + let objectLocked = typeof topObjectValue.get_Locked === 'function' ? topObjectValue.get_Locked() : false; + !objectLocked && (objectLocked = typeof topObjectValue.get_LockDelete === 'function' ? topObjectValue.get_LockDelete() : false); + if (!objectLocked) { + return ((isText && isChart) || api.can_AddQuotedComment() === false); + } + } + return true; + } + + render () { + return ( + + ) + } +} + +const AddOtherWithTranslation = withTranslation()(AddOtherController); + +export {AddOtherWithTranslation as AddOtherController}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/add/AddShape.jsx b/apps/presentationeditor/mobile/src/controller/add/AddShape.jsx new file mode 100644 index 000000000..74d3cdd5d --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/add/AddShape.jsx @@ -0,0 +1,36 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import AddShape from '../../view/add/AddShape'; + +class AddShapeController extends Component { + constructor (props) { + super(props); + this.onShapeClick = this.onShapeClick.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onShapeClick (type) { + const api = Common.EditorApi.get(); + api.AddShapeOnCurrentPage(type); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +export default AddShapeController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/add/AddSlide.jsx b/apps/presentationeditor/mobile/src/controller/add/AddSlide.jsx new file mode 100644 index 000000000..6c2cb706b --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/add/AddSlide.jsx @@ -0,0 +1,36 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import AddSlide from '../../view/add/AddSlide'; + +class AddSlideController extends Component { + constructor (props) { + super(props); + this.onSlideLayout = this.onSlideLayout.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onSlideLayout (type) { + const api = Common.EditorApi.get(); + api.AddSlide(type); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +export default AddSlideController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/edit/EditChart.jsx b/apps/presentationeditor/mobile/src/controller/edit/EditChart.jsx new file mode 100644 index 000000000..a26798154 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/edit/EditChart.jsx @@ -0,0 +1,179 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditChart } from '../../view/edit/EditChart' + +class EditChartController extends Component { + constructor (props) { + super(props); + this.onType = this.onType.bind(this); + this.onBorderColor = this.onBorderColor.bind(this); + this.onBorderSize = this.onBorderSize.bind(this); + + const type = props.storeFocusObjects.chartObject.getType(); + if (type==Asc.c_oAscChartTypeSettings.comboBarLine || + type==Asc.c_oAscChartTypeSettings.comboBarLineSecondary || + type==Asc.c_oAscChartTypeSettings.comboAreaBar || + type==Asc.c_oAscChartTypeSettings.comboCustom) { + props.storeChartSettings.clearChartStyles(); + } else { + const api = Common.EditorApi.get(); + props.storeChartSettings.updateChartStyles(api.asc_getChartPreviews(type)); + } + } + + onRemoveChart () { + const api = Common.EditorApi.get(); + api.asc_Remove(); + + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + + onReorder(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'all-up': + api.shapes_bringToFront(); + break; + case 'all-down': + api.shapes_bringToBack(); + break; + case 'move-up': + api.shapes_bringForward(); + break; + case 'move-down': + api.shapes_bringBackward(); + break; + } + } + + onAlign(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'align-left': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); + break; + case 'align-center': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); + break; + case 'align-right': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); + break; + case 'align-top': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); + break; + case 'align-middle': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); + break; + case 'align-bottom': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); + break; + case 'distrib-hor': + api.DistributeHorizontally(); + break; + case 'distrib-vert': + api.DistributeVertically(); + break; + } + } + + onStyle (style) { + const api = Common.EditorApi.get(); + let chart = new Asc.CAscChartProp(); + chart.putStyle(style); + api.ChartApply(chart); + } + + onType (type) { + const api = Common.EditorApi.get(); + let chart = new Asc.CAscChartProp(); + chart.changeType(type); + api.ChartApply(chart); + // Force update styles + this.props.storeChartSettings.updateChartStyles(api.asc_getChartPreviews(chart.getType())); + } + + onFillColor (color) { + const api = Common.EditorApi.get(); + const shape = new Asc.asc_CShapeProperty(); + const fill = new Asc.asc_CShapeFill(); + + if (color == 'transparent') { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); + fill.put_fill(null); + } else { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); + fill.put_fill(new Asc.asc_CFillSolid()); + fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); + } + + shape.put_fill(fill); + api.ShapeApply(shape); + } + + onBorderColor (color) { + const api = Common.EditorApi.get(); + const currentShape = this.props.storeFocusObjects.shapeObject; + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + + if (currentShape.get_stroke().get_width() < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); + stroke.put_width(currentShape.get_stroke().get_width()); + stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); + } + + shape.put_stroke(stroke); + api.ShapeApply(shape); + } + + onBorderSize (value) { + const api = Common.EditorApi.get(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + + const _borderColor = this.props.storeChartSettings.borderColor; + + if (value < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + if (_borderColor == 'transparent') + stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); + else + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); + stroke.put_width(value * 25.4 / 72.0); + } + + shape.put_stroke(stroke); + api.ShapeApply(shape); + this.props.storeChartSettings.initBorderColor(this.props.storeFocusObjects.shapeObject.get_stroke()); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR + } + + render () { + return ( + + ) + } +} + +export default inject("storeChartSettings", "storeFocusObjects")(observer(EditChartController)); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/edit/EditImage.jsx b/apps/presentationeditor/mobile/src/controller/edit/EditImage.jsx new file mode 100644 index 000000000..eb607e1f6 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/edit/EditImage.jsx @@ -0,0 +1,120 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditImage } from '../../view/edit/EditImage'; + +class EditImageController extends Component { + constructor (props) { + super(props); + this.onRemoveImage = this.onRemoveImage.bind(this); + this.onReplaceByFile = this.onReplaceByFile.bind(this); + this.onReplaceByUrl = this.onReplaceByUrl.bind(this); + } + + onReorder(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'all-up': + api.shapes_bringToFront(); + break; + case 'all-down': + api.shapes_bringToBack(); + break; + case 'move-up': + api.shapes_bringForward(); + break; + case 'move-down': + api.shapes_bringBackward(); + break; + } + } + + onAlign(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'align-left': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); + break; + case 'align-center': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); + break; + case 'align-right': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); + break; + case 'align-top': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); + break; + case 'align-middle': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); + break; + case 'align-bottom': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); + break; + case 'distrib-hor': + api.DistributeHorizontally(); + break; + case 'distrib-vert': + api.DistributeVertically(); + break; + } + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + }; + + onDefaultSize() { + const api = Common.EditorApi.get(); + let imgsize = api.get_OriginalSizeImage(), + properties = new Asc.asc_CImgProperty(); + + properties.put_Width(imgsize.get_ImageWidth()); + properties.put_Height(imgsize.get_ImageHeight()); + properties.put_ResetCrop(true); + api.ImgApply(properties); + } + + onRemoveImage() { + const api = Common.EditorApi.get(); + api.asc_Remove(); + this.closeModal(); + } + + onReplaceByFile() { + const api = Common.EditorApi.get(); + api.ChangeImageFromFile(); + this.closeModal(); + } + + onReplaceByUrl(value) { + const api = Common.EditorApi.get(); + const image = new Asc.asc_CImgProperty(); + image.put_ImageUrl(value); + api.ImgApply(image); + this.closeModal(); + } + + + render () { + return ( + + ) + } +} + +export default EditImageController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/edit/EditLink.jsx b/apps/presentationeditor/mobile/src/controller/edit/EditLink.jsx new file mode 100644 index 000000000..756545b16 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/edit/EditLink.jsx @@ -0,0 +1,180 @@ +import React, { Component } from 'react'; +import { f7 } from 'framework7-react'; +import { Device } from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; +import { withTranslation } from 'react-i18next'; + +import { EditLink } from '../../view/edit/EditLink'; + +class EditLinkController extends Component { + constructor (props) { + super(props); + + const api = Common.EditorApi.get(); + + this.onEditLink = this.onEditLink.bind(this); + this.onRemoveLink = this.onRemoveLink.bind(this); + this.initLink = this.initLink.bind(this); + this.slidesCount = api.getCountPages(); + this.initLink(); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + + initLink() { + const api = Common.EditorApi.get(); + const linkObject = this.props.storeFocusObjects.linkObject; + const url = linkObject.get_Value(); + const tooltip = linkObject.get_ToolTip(); + const display = linkObject.get_Text(); + + this.url = url; + this.tooltip = tooltip; + this.display = display; + this.slideLink = 0; + this.slideNum = 0; + + let indAction; + let slidesCount; + let slideNum; + + if(url === null || url === undefined || url === '') { + this.typeLink = 1; + } + else { + indAction = url.indexOf("ppaction://hlink"); + if(0 == indAction) { + if (url == "ppaction://hlinkshowjump?jump=firstslide") { + this.slideLink = 2; + } else if (url == "ppaction://hlinkshowjump?jump=lastslide") { + this.slideLink = 3; + } + else if (url == "ppaction://hlinkshowjump?jump=nextslide") { + this.slideLink = 0; + } + else if (url == "ppaction://hlinkshowjump?jump=previousslide") { + this.slideLink = 1; + } + else { + this.slideLink = 4; + slidesCount = api.getCountPages(); + let mask = "ppaction://hlinksldjumpslide", + indSlide = url.indexOf(mask); + if (0 == indSlide) { + this.slideNum = parseInt(url.substring(mask.length)); + if (slideNum < 0) this.slideNum = 0; + if (slideNum >= slidesCount) this.slideNum = slidesCount - 1; + } else this.slideNum = 0; + } + this.typeLink = 0 + } else { + this.typeLink = 1; + } + } + } + + onEditLink(type, linkInfo) { + const api = Common.EditorApi.get(); + const { t } = this.props; + const _t = t("View.Edit", { returnObjects: true }); + + const c_oHyperlinkType = { + InternalLink: 0, + WebLink: 1 + }; + + const display = linkInfo.display; + const tip = linkInfo.tip; + const props = new Asc.CHyperlinkProperty(); + let def_display = ''; + + if (type == c_oHyperlinkType.WebLink) { + let url = linkInfo.url; + const urltype = api.asc_getUrlType(url.trim()); + const isEmail = (urltype == 2); + if (urltype < 1) { + f7.dialog.alert(_t.textNotUrl, _t.notcriticalErrorTitle); + return; + } + + url = url.replace(/^\s+|\s+$/g, ''); + if (!/(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url)) + url = (isEmail ? 'mailto:' : 'http://' ) + url; + url = url.replace(new RegExp("%20", 'g'), " "); + + props.put_Value(url); + props.put_ToolTip(tip); + def_display = url; + } else { + let url = "ppaction://hlink"; + let slidetip = ''; + switch (linkInfo.linkTo) { + case 0: + url = url + "showjump?jump=nextslide"; + slidetip = _t.textNextSlide; + break; + case 1: + url = url + "showjump?jump=previousslide"; + slidetip = _t.textPreviousSlide; + break; + case 2: + url = url + "showjump?jump=firstslide"; + slidetip = _t.textFirstSlide; + break; + case 3: + url = url + "showjump?jump=lastslide"; + slidetip = _t.textLastSlide; + break; + case 4: + url = url + "sldjumpslide" + linkInfo.numberTo; + slidetip = _t.textSlide + ' ' + (linkInfo.numberTo + 1); + break; + } + props.put_Value(url); + props.put_ToolTip(tip === '' ? slidetip : tip); + def_display = slidetip; + } + + if (!linkInfo.displayDisabled) { + props.put_Text(display === '' ? def_display : display); + } else + props.put_Text(null); + + api.change_Hyperlink(props); + + this.closeModal(); + } + + onRemoveLink() { + const api = Common.EditorApi.get(); + api.remove_Hyperlink(); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +const EditLinkWithTranslation = inject("storeFocusObjects")(observer(withTranslation()(EditLinkController))); + +export {EditLinkWithTranslation as EditLinkController}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/edit/EditShape.jsx b/apps/presentationeditor/mobile/src/controller/edit/EditShape.jsx new file mode 100644 index 000000000..a7b42a95d --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/edit/EditShape.jsx @@ -0,0 +1,182 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditShape } from '../../view/edit/EditShape'; + +class EditShapeController extends Component { + constructor (props) { + super(props); + this.onRemoveShape = this.onRemoveShape.bind(this); + this.onBorderSize = this.onBorderSize.bind(this); + this.onBorderColor = this.onBorderColor.bind(this); + + this.props.storeShapeSettings.setFillColor(undefined); + this.props.storeShapeSettings.setBorderColor(undefined); + } + + onReplace(type) { + const api = Common.EditorApi.get(); + api.ChangeShapeType(type); + } + + onReorder(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'all-up': + api.shapes_bringToFront(); + break; + case 'all-down': + api.shapes_bringToBack(); + break; + case 'move-up': + api.shapes_bringForward(); + break; + case 'move-down': + api.shapes_bringBackward(); + break; + + } + } + + onAlign(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'align-left': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); + break; + case 'align-center': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); + break; + case 'align-right': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); + break; + case 'align-top': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); + break; + case 'align-middle': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); + break; + case 'align-bottom': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); + break; + case 'distrib-hor': + api.DistributeHorizontally(); + break; + case 'distrib-vert': + api.DistributeVertically(); + break; + } + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + }; + + onRemoveShape() { + const api = Common.EditorApi.get(); + api.asc_Remove(); + this.closeModal(); + } + + onFillColor(color) { + const api = Common.EditorApi.get(); + + let shape = new Asc.asc_CShapeProperty(), + fill = new Asc.asc_CShapeFill(); + + if (color == 'transparent') { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); + fill.put_fill(null); + } else { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); + fill.put_fill(new Asc.asc_CFillSolid()); + fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); + } + + shape.put_fill(fill); + api.ShapeApply(shape); + } + + onBorderColor(color) { + const api = Common.EditorApi.get(); + const _shapeObject = this.props.storeFocusObjects.shapeObject; + + if (_shapeObject && _shapeObject.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { + let shape = new Asc.asc_CShapeProperty(), + stroke = new Asc.asc_CStroke(); + + if (_shapeObject.get_stroke().get_width() < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); + stroke.put_width(_shapeObject.get_stroke().get_width()); + stroke.asc_putPrstDash(_shapeObject.get_stroke().asc_getPrstDash()); + } + + shape.put_stroke(stroke); + api.ShapeApply(shape); + } + } + + onBorderSize(value) { + const api = Common.EditorApi.get(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + + const _borderColor = this.props.storeShapeSettings.borderColorView; + + if (value < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + if (_borderColor == 'transparent') + stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); + else + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); + stroke.put_width(value * 25.4 / 72.0); + } + + shape.put_stroke(stroke); + api.ShapeApply(shape); + + this.props.storeShapeSettings.initBorderColorView(this.props.storeFocusObjects.shapeObject); + } + + onOpacity(value) { + const api = Common.EditorApi.get(); + + let fill = new Asc.asc_CShapeFill(), + shape = new Asc.asc_CShapeProperty(); + + fill.put_transparent(parseInt(value * 2.55)); + shape.put_fill(fill); + api.ShapeApply(shape); + } + + + render () { + return ( + + ) + } +} + +export default inject("storeShapeSettings", "storeFocusObjects")(observer(EditShapeController)); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/edit/EditSlide.jsx b/apps/presentationeditor/mobile/src/controller/edit/EditSlide.jsx new file mode 100644 index 000000000..db1ae774c --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/edit/EditSlide.jsx @@ -0,0 +1,160 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { EditSlide } from '../../view/edit/EditSlide'; + +class EditSlideController extends Component { + constructor (props) { + super(props); + this.onDuplicateSlide = this.onDuplicateSlide.bind(this); + this.onRemoveSlide = this.onRemoveSlide.bind(this); + } + + onThemeClick(index) { + const api = Common.EditorApi.get(); + api.ChangeTheme(index); + } + + onLayoutClick(index) { + const api = Common.EditorApi.get(); + api.ChangeLayout(index); + } + + onApplyAll() { + const api = Common.EditorApi.get(); + api.SlideTransitionApplyToAll(); + }; + + changeDuration(duration) { + const api = Common.EditorApi.get(); + + let props = new Asc.CAscSlideProps(), + timing = new Asc.CAscSlideTransition(), + _effectDuration = duration * 1000; + + timing.put_TransitionDuration(_effectDuration); + props.put_transition(timing); + api.SetSlideProps(props); + }; + + onStartClick(value) { + const api = Common.EditorApi.get(); + + let props = new Asc.CAscSlideProps(), + timing = new Asc.CAscSlideTransition(); + + timing.put_SlideAdvanceOnMouseClick(value); + props.put_transition(timing); + api.SetSlideProps(props); + }; + + onDelayCheck(value, _effectDelay) { + const api = Common.EditorApi.get(); + + let props = new Asc.CAscSlideProps(), + timing = new Asc.CAscSlideTransition(); + + timing.put_SlideAdvanceAfter(value); + timing.put_SlideAdvanceDuration(_effectDelay); + props.put_transition(timing); + api.SetSlideProps(props); + }; + + onDelay(value) { + const api = Common.EditorApi.get(); + + let props = new Asc.CAscSlideProps(), + timing = new Asc.CAscSlideTransition(), + _effectDelay = value * 1000; + + timing.put_SlideAdvanceDuration(_effectDelay); + props.put_transition(timing); + api.SetSlideProps(props); + }; + + onEffectClick(value, effectType) { + const api = Common.EditorApi.get(); + + let props = new Asc.CAscSlideProps(), + timing = new Asc.CAscSlideTransition(); + // _effectType = this.fillEffectTypes(value); + + timing.put_TransitionType(value); + timing.put_TransitionOption(effectType); + props.put_transition(timing); + api.SetSlideProps(props); + }; + + onEffectTypeClick(value, effect) { + const api = Common.EditorApi.get(); + + let props = new Asc.CAscSlideProps(), + timing = new Asc.CAscSlideTransition(); + + timing.put_TransitionType(effect); + timing.put_TransitionOption(value); + props.put_transition(timing); + api.SetSlideProps(props); + } + + onFillColor(color) { + const api = Common.EditorApi.get(); + + let props = new Asc.CAscSlideProps(), + fill = new Asc.asc_CShapeFill(); + + if (color == 'transparent') { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); + fill.put_fill(null); + } else { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); + fill.put_fill(new Asc.asc_CFillSolid()); + fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); + } + + props.put_background(fill); + api.SetSlideProps(props); + + }; + + closeModal() { + if (Device.phone) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + }; + + onDuplicateSlide() { + const api = Common.EditorApi.get(); + api.DublicateSlide(); + this.closeModal(); + }; + + onRemoveSlide() { + const api = Common.EditorApi.get(); + api.DeleteSlide(); + this.closeModal(); + }; + + render () { + return ( + + ) + } +} + +export default EditSlideController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/edit/EditTable.jsx b/apps/presentationeditor/mobile/src/controller/edit/EditTable.jsx new file mode 100644 index 000000000..9ae2be6ba --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/edit/EditTable.jsx @@ -0,0 +1,221 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditTable } from '../../view/edit/EditTable'; + +class EditTableController extends Component { + constructor (props) { + super(props); + this.closeIfNeed = this.closeIfNeed.bind(this); + this.onRemoveTable = this.onRemoveTable.bind(this); + this.onAddColumnLeft = this.onAddColumnLeft.bind(this); + this.onAddColumnRight = this.onAddColumnRight.bind(this); + this.onAddRowAbove = this.onAddRowAbove.bind(this); + this.onAddRowBelow = this.onAddRowBelow.bind(this); + this.onRemoveColumn = this.onRemoveColumn.bind(this); + this.onRemoveRow = this.onRemoveRow.bind(this); + } + + closeIfNeed () { + if (!this.props.storeFocusObjects.isTableInStack) { + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + } + + onRemoveTable () { + const api = Common.EditorApi.get(); + api.remTable(); + this.closeIfNeed(); + } + + onAddColumnLeft () { + const api = Common.EditorApi.get(); + api.addColumnLeft(); + this.closeIfNeed(); + } + + onAddColumnRight () { + const api = Common.EditorApi.get(); + api.addColumnRight(); + this.closeIfNeed(); + } + + onAddRowAbove () { + const api = Common.EditorApi.get(); + api.addRowAbove(); + this.closeIfNeed(); + } + + onAddRowBelow () { + const api = Common.EditorApi.get(); + api.addRowBelow(); + this.closeIfNeed(); + } + + onRemoveColumn () { + const api = Common.EditorApi.get(); + api.remColumn(); + this.closeIfNeed(); + } + + onRemoveRow () { + const api = Common.EditorApi.get(); + api.remRow(); + this.closeIfNeed(); + } + + onOptionMargin (value) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + const margins = new Asc.CMargins(); + const val = Common.Utils.Metric.fnRecalcToMM(value); + margins.put_Top(val); + margins.put_Right(val); + margins.put_Bottom(val); + margins.put_Left(val); + margins.put_Flag(2); + properties.put_CellMargins(margins); + api.tblApply(properties); + } + + onStyleClick (type) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + properties.put_TableStyle(type.toString()); + api.tblApply(properties); + } + + onCheckTemplateChange (tableLook, type, isChecked) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + + switch (type) { + case 0: + tableLook.put_FirstRow(isChecked); + break; + case 1: + tableLook.put_LastRow(isChecked); + break; + case 2: + tableLook.put_BandHor(isChecked); + break; + case 3: + tableLook.put_FirstCol(isChecked); + break; + case 4: + tableLook.put_LastCol(isChecked); + break; + case 5: + tableLook.put_BandVer(isChecked); + break; + } + + properties.put_TableLook(tableLook); + api.tblApply(properties); + } + + onFillColor (color) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + const background = new Asc.CBackground(); + properties.put_CellsBackground(background); + + if ('transparent' == color) { + background.put_Value(1); + } else { + background.put_Value(0); + background.put_Color(Common.Utils.ThemeColor.getRgbColor(color)); + } + + properties.put_CellSelect(true); + api.tblApply(properties); + } + + onBorderTypeClick (cellBorders) { + const api = Common.EditorApi.get(); + const properties = new Asc.CTableProp(); + const _cellBorders = !cellBorders ? new Asc.CBorders() : cellBorders; + properties.put_CellBorders(_cellBorders); + properties.put_CellSelect(true); + api.tblApply(properties); + } + + onReorder(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'all-up': + api.shapes_bringToFront(); + break; + case 'all-down': + api.shapes_bringToBack(); + break; + case 'move-up': + api.shapes_bringForward(); + break; + case 'move-down': + api.shapes_bringBackward(); + break; + + } + } + + onAlign(type) { + const api = Common.EditorApi.get(); + + switch(type) { + case 'align-left': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_LEFT); + break; + case 'align-center': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_CENTER); + break; + case 'align-right': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_RIGHT); + break; + case 'align-top': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_TOP); + break; + case 'align-middle': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_MIDDLE); + break; + case 'align-bottom': + api.put_ShapesAlign(Asc.c_oAscAlignShapeType.ALIGN_BOTTOM); + break; + case 'distrib-hor': + api.DistributeHorizontally(); + break; + case 'distrib-vert': + api.DistributeVertically(); + break; + } + } + + render () { + return ( + + ) + } +} + +export default inject("storeFocusObjects")(observer(EditTableController)); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/edit/EditText.jsx b/apps/presentationeditor/mobile/src/controller/edit/EditText.jsx new file mode 100644 index 000000000..02adafcb8 --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/edit/EditText.jsx @@ -0,0 +1,258 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditText } from '../../view/edit/EditText'; + +class EditTextController extends Component { + constructor (props) { + super(props); + } + + toggleBold(value) { + const api = Common.EditorApi.get(); + api.put_TextPrBold(value); + }; + + toggleItalic(value) { + const api = Common.EditorApi.get(); + api.put_TextPrItalic(value); + }; + + toggleUnderline(value) { + const api = Common.EditorApi.get(); + api.put_TextPrUnderline(value); + }; + + toggleStrikethrough(value) { + const api = Common.EditorApi.get(); + api.put_TextPrStrikeout(value); + }; + + onParagraphAlign(type) { + const api = Common.EditorApi.get(); + let value; + + switch (type) { + case 'just': + value = 3; + break; + case 'right': + value = 0; + break; + case 'center': + value = 2; + break; + default: + value = 1; + break; + } + + api.put_PrAlign(value); + }; + + onParagraphValign(type) { + const api = Common.EditorApi.get(); + let value; + + switch(type) { + case 'top': + value = Asc.c_oAscVAlign.Top; + break; + case 'center': + value = Asc.c_oAscVAlign.Center; + break; + case 'bottom': + value = Asc.c_oAscVAlign.Bottom; + break; + } + + api.setVerticalAlign(value); + }; + + onParagraphMove(type) { + const api = Common.EditorApi.get(); + + if(type === 'left') { + api.DecreaseIndent(); + } else { + api.IncreaseIndent(); + } + }; + + onDistanceBefore(distance, isDecrement) { + const api = Common.EditorApi.get(); + let step; + let newDistance; + + if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { + step = 1; + } else { + step = 0.01; + } + + const maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); + + if(isDecrement) { + newDistance = Math.max(-1, distance - step); + } else { + newDistance = (distance < 0) ? 0 : Math.min(maxValue, distance + step); + } + + newDistance = parseFloat(newDistance.toFixed(2)); + + api.put_LineSpacingBeforeAfter(0, (newDistance < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(newDistance)); + }; + + onDistanceAfter(distance, isDecrement) { + const api = Common.EditorApi.get(); + let step; + let newDistance; + + if (Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { + step = 1; + } else { + step = 0.01; + } + + const maxValue = Common.Utils.Metric.fnRecalcFromMM(558.8); + + if(isDecrement) { + newDistance = Math.max(-1, distance - step); + } else { + newDistance = (distance < 0) ? 0 : Math.min(maxValue, distance + step); + } + + newDistance = parseFloat(newDistance.toFixed(2)); + + api.put_LineSpacingBeforeAfter(1, (newDistance < 0) ? -1 : Common.Utils.Metric.fnRecalcToMM(newDistance)); + }; + + changeFontSize(curSize, isDecrement) { + const api = Common.EditorApi.get(); + let size = curSize; + + if (isDecrement) { + typeof size === 'undefined' ? api.FontSizeOut() : size = Math.max(1, --size); + } else { + typeof size === 'undefined' ? api.FontSizeIn : size = Math.min(300, ++size); + } + if (typeof size !== 'undefined') { + api.put_TextPrFontSize(size); + } + }; + + changeFontFamily(name) { + const api = Common.EditorApi.get(); + if (name) { + api.put_TextPrFontName(name); + } + } + + onTextColor(color) { + const api = Common.EditorApi.get(); + api.put_TextColor(Common.Utils.ThemeColor.getRgbColor(color)); + } + + // Additional + + onAdditionalStrikethrough(type, value) { + const api = Common.EditorApi.get(); + const paragraphProps = new Asc.asc_CParagraphProperty(); + + if ('strikethrough' === type) { + paragraphProps.put_DStrikeout(false); + paragraphProps.put_Strikeout(value); + } else { + paragraphProps.put_DStrikeout(value); + paragraphProps.put_Strikeout(false); + } + + api.paraApply(paragraphProps); + } + + onAdditionalCaps(type, value) { + const api = Common.EditorApi.get(); + const paragraphProps = new Asc.asc_CParagraphProperty(); + + if ('small' === type) { + paragraphProps.put_AllCaps(false); + paragraphProps.put_SmallCaps(value); + } else { + paragraphProps.put_AllCaps(value); + paragraphProps.put_SmallCaps(false); + } + + api.paraApply(paragraphProps); + } + + onAdditionalScript(type, value) { + const api = Common.EditorApi.get(); + + if ('superscript' === type) { + api.put_TextPrBaseline(value ? 1 : 0); + } else { + api.put_TextPrBaseline(value ? 2 : 0); + } + } + + changeLetterSpacing(curSpacing, isDecrement) { + const api = Common.EditorApi.get(); + let spacing = curSpacing; + + if (isDecrement) { + spacing = (spacing === null || spacing === undefined) ? 0 : Math.max(-100, --spacing); + } else { + spacing = (spacing === null || spacing === undefined) ? 0 : Math.min(100, ++spacing); + } + + const properties = new Asc.asc_CParagraphProperty(); + properties.put_TextSpacing(Common.Utils.Metric.fnRecalcToMM(spacing)); + api.paraApply(properties); + } + + onBullet(type) { + const api = Common.EditorApi.get(); + api.put_ListType(0, parseInt(type)); + } + + onNumber(type) { + const api = Common.EditorApi.get(); + api.put_ListType(1, parseInt(type)); + } + + onLineSpacing(value) { + const api = Common.EditorApi.get(); + const LINERULE_AUTO = 1; + api.put_PrLineSpacing(LINERULE_AUTO, value); + } + + render () { + return ( + + ) + } +} + +export default EditTextController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/settings/ApplicationSettings.jsx b/apps/presentationeditor/mobile/src/controller/settings/ApplicationSettings.jsx new file mode 100644 index 000000000..bc72b63bb --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/settings/ApplicationSettings.jsx @@ -0,0 +1,40 @@ +import React, { Component } from "react"; +import { ApplicationSettings } from "../../view/settings/ApplicationSettings"; +import { LocalStorage } from '../../../../../common/mobile/utils/LocalStorage'; + +class ApplicationSettingsController extends Component { + constructor(props) { + super(props); + } + + setUnitMeasurement(value) { + const api = Common.EditorApi.get(); + value = (value !== null) ? parseInt(value) : Common.Utils.Metric.getDefaultMetric(); + Common.Utils.Metric.setCurrentMetric(value); + LocalStorage.setItem("pe-mobile-settings-unit", value); + 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)); + } + + switchSpellCheck(value) { + LocalStorage.setBool("pe-mobile-spellcheck", value); + Common.EditorApi.get().asc_setSpellCheck(value); + } + + setMacrosSettings(value) { + LocalStorage.setItem("pe-mobile-macros-mode", value); + } + + + render() { + return ( + + ) + } +} + + +export default ApplicationSettingsController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/settings/Download.jsx b/apps/presentationeditor/mobile/src/controller/settings/Download.jsx new file mode 100644 index 000000000..84914f18b --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/settings/Download.jsx @@ -0,0 +1,36 @@ +import React, { Component } from "react"; +import Download from "../../view/settings/Download"; +import { Device } from '../../../../../common/mobile/utils/device'; +import { f7 } from 'framework7-react'; + +class DownloadController extends Component { + constructor(props) { + super(props); + this.onSaveFormat = this.onSaveFormat.bind(this); + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('.settings-popup', true); + } else { + f7.popover.close('#settings-popover'); + } + } + + onSaveFormat(format) { + const api = Common.EditorApi.get(); + if(format) { + api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); + } + this.closeModal(); + } + + render() { + return ( + + ); + } +} + + +export default DownloadController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/settings/PresentationInfo.jsx b/apps/presentationeditor/mobile/src/controller/settings/PresentationInfo.jsx new file mode 100644 index 000000000..eea17514a --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/settings/PresentationInfo.jsx @@ -0,0 +1,97 @@ +import React, { Component } from "react"; +import PresentationInfo from "../../view/settings/PresentationInfo"; + +class PresentationInfoController extends Component { + constructor(props) { + super(props); + this.docProps = this.getDocProps(); + this.getModified = this.getModified(); + this.getModifiedBy = this.getModifiedBy(); + this.getCreators = this.getCreators(); + this.title = this.getTitle(); + this.subject = this.getSubject(); + this.description = this.getDescription(); + this.getCreated = this.getCreated(); + } + + getDocProps() { + const api = Common.EditorApi.get(); + return api.asc_getCoreProps(); + } + + getAppProps() { + const api = Common.EditorApi.get(); + const appProps = api.asc_getAppProps(); + + if (appProps) { + return `${!appProps.asc_getApplication() ? '' : appProps.asc_getApplication() + ' ' + appProps.asc_getAppVersion()}`; + } + } + + getModified() { + let valueModified = this.docProps.asc_getModified(); + // const _lang = this.props.storeAppOptions.lang; + + if (valueModified) { + return ( + valueModified.toLocaleString("en", { + year: "numeric", + month: "2-digit", + day: "2-digit", + }) + + " " + + valueModified.toLocaleTimeString("en", { timeStyle: "short" }) + ); + } + } + + getModifiedBy() { + let valueModifiedBy = this.docProps.asc_getLastModifiedBy(); + + if (valueModifiedBy) { + return Common.Utils.UserInfoParser.getParsedName(valueModifiedBy); + } + } + + getCreators() { + return this.docProps.asc_getCreator(); + } + + getTitle() { + return this.docProps.asc_getTitle(); + } + + getSubject() { + return this.docProps.asc_getSubject(); + } + + getDescription() { + return this.docProps.asc_getDescription(); + } + + getCreated() { + let value = this.docProps.asc_getCreated(); + + if(value) { + return value.toLocaleString("en", {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString("en", {timeStyle: 'short'}); + } + } + + render() { + return ( + + ); + } +} + + +export default PresentationInfoController; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/controller/settings/PresentationSettings.jsx b/apps/presentationeditor/mobile/src/controller/settings/PresentationSettings.jsx new file mode 100644 index 000000000..cb3c6803d --- /dev/null +++ b/apps/presentationeditor/mobile/src/controller/settings/PresentationSettings.jsx @@ -0,0 +1,65 @@ +import React, {Component} from 'react'; +import { observer, inject } from "mobx-react"; +import {PresentationSettings} from '../../view/settings/PresentationSettings'; + +class PresentationSettingsController extends Component { + constructor(props) { + super(props); + this.initSlideSize = this.initSlideSize.bind(this); + this.onSlideSize = this.onSlideSize.bind(this); + this.initSlideSize(); + } + + initSlideSize() { + if (!this.init) { + const api = Common.EditorApi.get(); + const slideSizes = [ + [9144000, 6858000, Asc.c_oAscSlideSZType.SzScreen4x3], + [12192000, 6858000, Asc.c_oAscSlideSZType.SzCustom] + ]; + + this.props.storePresentationSettings.initSlideSizes(slideSizes); + this.props.storePresentationSettings.changeSizeIndex(api.get_PresentationWidth(), api.get_PresentationHeight()); + this.init = true; + } + } + + onSlideSize(slideSizeArr) { + const api = Common.EditorApi.get(); + + let ratio = slideSizeArr[1] / slideSizeArr[0]; + let currentHeight = this.props.storePresentationSettings.currentPageSize.height; + let currentPageSize = { + width: ((currentHeight || slideSizeArr[1]) / ratio), + height: currentHeight + }; + // api.changeSlideSize(slideSizeArr[0], slideSizeArr[1], slideSizeArr[2]); + api.changeSlideSize(currentPageSize.width, currentPageSize.height, slideSizeArr[2]); + } + + // Color Schemes + + initPageColorSchemes() { + const api = Common.EditorApi.get(); + return api.asc_GetCurrentColorSchemeIndex(); + } + + onColorSchemeChange(newScheme) { + const api = Common.EditorApi.get(); + api.asc_ChangeColorSchemeByIdx(newScheme); + } + + + render() { + return ( + + ) + } +} + +export default inject("storePresentationSettings")(observer(PresentationSettingsController)); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/index_dev.html b/apps/presentationeditor/mobile/src/index_dev.html new file mode 100644 index 000000000..4342a52b6 --- /dev/null +++ b/apps/presentationeditor/mobile/src/index_dev.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + Presentation Editor + + + + + + + + + + + + + + +
            + + + + + \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/less/app-ios.less b/apps/presentationeditor/mobile/src/less/app-ios.less new file mode 100644 index 000000000..dda949856 --- /dev/null +++ b/apps/presentationeditor/mobile/src/less/app-ios.less @@ -0,0 +1,6 @@ + +.device-ios { + + +} + diff --git a/apps/presentationeditor/mobile/src/less/app-material.less b/apps/presentationeditor/mobile/src/less/app-material.less new file mode 100644 index 000000000..82d6f5c70 --- /dev/null +++ b/apps/presentationeditor/mobile/src/less/app-material.less @@ -0,0 +1,24 @@ + +// Colors +@themeColorLight: #a2bdde; +@navBarIconColor: #fff; + + +.device-android { + --f7-navbar-bg-color: @themeColor; + --f7-navbar-link-color: @navBarIconColor; + --f7-navbar-text-color: @navBarIconColor; + + // Main Toolbar + #editor-navbar.navbar .right { + padding-right: 4px; + } + #editor-navbar.navbar .right a.link, + #editor-navbar.navbar .left a.link { + padding: 0 13px; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + width: auto; + } +} diff --git a/apps/presentationeditor/mobile/src/less/app.less b/apps/presentationeditor/mobile/src/less/app.less new file mode 100644 index 000000000..47f58eb33 --- /dev/null +++ b/apps/presentationeditor/mobile/src/less/app.less @@ -0,0 +1,23 @@ +@themeColor: #aa5252; + +@import '../../../../../vendor/framework7-react/node_modules/framework7/less/mixins.less'; + +@import '../../../../common/mobile/resources/less/_mixins.less'; +@import '../../../../common/mobile/resources/less/collaboration.less'; +@import '../../../../common/mobile/resources/less/common.less'; +@import '../../../../common/mobile/resources/less/common-ios.less'; +@import '../../../../common/mobile/resources/less/common-material.less'; +@import '../../../../common/mobile/resources/less/icons.less'; +@import '../../../../common/mobile/resources/less/dataview.less'; +@import '../../../../common/mobile/resources/less/about.less'; +@import '../../../../common/mobile/resources/less/search.less'; +@import '../../../../common/mobile/resources/less/contextmenu.less'; +@import '../../../../common/mobile/resources/less/comments.less'; +@import './app-material.less'; +@import './app-ios.less'; +@import './icons-ios.less'; +@import './icons-material.less'; + +:root { + --f7-popover-width: 360px; +} diff --git a/apps/presentationeditor/mobile/src/less/icons-ios.less b/apps/presentationeditor/mobile/src/less/icons-ios.less new file mode 100644 index 000000000..d08a23aaf --- /dev/null +++ b/apps/presentationeditor/mobile/src/less/icons-ios.less @@ -0,0 +1,557 @@ +// Icons +.device-ios { + i.icon { + &.icon-logo { + width: 100px; + height: 14px; + background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; + } + + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-burger { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-edit { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-edit-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-play { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-undo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-redo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-reader { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-download { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-print { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-spellcheck { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-info { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-about { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-help { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-setup { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-versions { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-text-additional { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-text-color { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-text-selection { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-bullets { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-numbers { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-linespacing { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-text-align-center { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-align-just { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-align-left { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-align-right { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-de-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-in-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-table-add-column-left { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-add-column-right { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-add-row-above { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-add-row-below { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-remove-column { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-remove-row { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-expand-down { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-pagebreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-sectionbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-stringbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-pagenumber { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-link { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-image-library { + width: 22px; + height: 22px; + .encoded-svg-background('icons_for_svg'); + } + + &.icon-text-valign-top { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-valign-middle { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-valign-bottom { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + // Presets of table borders + + &.icon-table-borders-all { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-none { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-inner { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-outer { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-left { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-center { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-right { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-top { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-middle { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-bottom { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + // Reorder + + &.icon-move-backward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-move-forward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-move-background { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-move-foreground { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-align-left { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-center { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-right { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-top { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-middle { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-bottom { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-horizontal { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-vertical { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Formats + + &.icon-format-pdf { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-pdfa { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-pptx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-potx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-odp { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-otp { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + // Collaboration + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-app-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + //comments + &.icon-menu-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-resolve-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-resolve-comment.check { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + //Insert + &.icon-add-slide { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + + .tab-link-active { + i.icon { + &.icon-add-slide { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/less/icons-material.less b/apps/presentationeditor/mobile/src/less/icons-material.less new file mode 100644 index 000000000..199f3c59c --- /dev/null +++ b/apps/presentationeditor/mobile/src/less/icons-material.less @@ -0,0 +1,592 @@ +// Icons +.device-android { + i.icon { + &.icon-expand-up { + width: 17px; + height: 17px; + .encoded-svg-background(''); + } + + &.icon-expand-down { + width: 17px; + height: 17px; + .encoded-svg-background(''); + } + + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-edit { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-edit-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-play { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-reader { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-download { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-print { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-spellcheck { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-info { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-about { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-help { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-setup { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-versions { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + //&.icon-text-additional { + // width: 22px; + // height: 22px; + // .encoded-svg-background(''); + //} + //&.icon-text-color { + // width: 22px; + // height: 22px; + // .encoded-svg-background(''); + //} + //&.icon-text-selection { + // width: 22px; + // height: 22px; + // .encoded-svg-background(''); + //} + //&.icon-bullets { + // width: 22px; + // height: 22px; + // .encoded-svg-background(''); + //} + //&.icon-numbers { + // width: 22px; + // height: 22px; + // .encoded-svg-background(''); + //} + //&.icon-linespacing { + // width: 22px; + // height: 22px; + // .encoded-svg-background(''); + //} + &.icon-text-align-center { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-align-just { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-align-left { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-align-right { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-de-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-in-indent { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-table-add-column-left { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-add-column-right { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-add-row-above { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-add-row-below { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-remove-column { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-table-remove-row { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-pagebreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-sectionbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-stringbreak { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-pagenumber { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-image-library { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-text-valign-top { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-valign-middle { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + &.icon-text-valign-bottom { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + + // Presets of table borders + + &.icon-table-borders-all { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-none { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-inner { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-outer { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-left { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-center { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-right { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-top { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-middle { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-table-borders-bottom { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + // Reorder + + &.icon-move-backward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-move-forward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-move-background { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-move-foreground { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + &.icon-align-left { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-center { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-right { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-top { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-middle { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-bottom { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-horizontal { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-align-vertical { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Formats + + &.icon-format-pdf { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-pdfa { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-pptx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-potx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-odp { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + &.icon-format-otp { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + + // Collaboration + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-app-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + //Comments + &.icon-menu-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-resolve-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-resolve-comment.check { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-done-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-done-comment-white { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-link { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + } + + // Overwrite color for toolbar + .navbar { + i.icon { + &.icon-logo { + width: 100px; + height: 14px; + background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; + } + + &.icon-undo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-redo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-burger { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-edit { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-play { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-prev { + width: 20px; + height: 20px; + .encoded-svg-background(''); + } + + &.icon-next { + width: 20px; + height: 20px; + .encoded-svg-background(''); + } + + &.icon-expand-down { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-add-slide { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + &.icon-close-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/lib/i18n.js b/apps/presentationeditor/mobile/src/lib/i18n.js new file mode 100644 index 000000000..b3d3566ee --- /dev/null +++ b/apps/presentationeditor/mobile/src/lib/i18n.js @@ -0,0 +1,17 @@ +import i18n from 'i18next' +import {initReactI18next} from 'react-i18next' +import Fetch from 'i18next-fetch-backend' + +i18n.use(initReactI18next) + .use(Fetch) + .init({ + lng: Common.Locale.currentLang, + fallbackLng: "en", + escapeValue: false, + backend: { + loadPath: './locale/{{lng}}.json' + }, + interpolation: { escapeValue: false }, + }); + +export default i18n; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/lib/patch.jsx b/apps/presentationeditor/mobile/src/lib/patch.jsx new file mode 100644 index 000000000..ec7b37a2c --- /dev/null +++ b/apps/presentationeditor/mobile/src/lib/patch.jsx @@ -0,0 +1,6 @@ + +const EditorUIController = () => null; + +EditorUIController.isSupportEditFeature = () => false; + +export default EditorUIController; diff --git a/apps/presentationeditor/mobile/src/page/app.jsx b/apps/presentationeditor/mobile/src/page/app.jsx new file mode 100644 index 000000000..55d94d9b2 --- /dev/null +++ b/apps/presentationeditor/mobile/src/page/app.jsx @@ -0,0 +1,47 @@ +import React from 'react'; + +import {App,Panel,Views,View,Popup,Page,Navbar,Toolbar,NavRight,Link,Block,BlockTitle,List,ListItem,ListInput,ListButton,BlockFooter} from 'framework7-react'; +import { f7ready } from 'framework7-react'; + +import '../../../../common/Analytics.js'; + +import '../../../../common/Gateway.js'; +import '../../../../common/main/lib/util/utils.js'; + +import routes from '../router/routes.js'; + +import Notifications from '../../../../common/mobile/utils/notifications.js' +import {MainController} from '../controller/Main'; +import {Device} from '../../../../common/mobile/utils/device' + + // Framework7 Parameters +const f7params = { + name: 'Presentation Editor', // App name + theme: 'auto', // Automatic theme detection + + routes: routes, // App routes +}; + +export default class extends React.Component { + constructor() { + super(); + + Common.Notifications = new Notifications(); + } + + render() { + return ( + + {/* Your main view, should have "view-main" class */} + + + + ) + } + + componentDidMount() { + f7ready(f7 => { + Device.initDom(); + }); + } +} diff --git a/apps/presentationeditor/mobile/src/page/main.jsx b/apps/presentationeditor/mobile/src/page/main.jsx new file mode 100644 index 000000000..c7f0400e4 --- /dev/null +++ b/apps/presentationeditor/mobile/src/page/main.jsx @@ -0,0 +1,111 @@ +import React, { Component, Fragment } from 'react'; +import { Page, View, Navbar, Subnavbar, Icon } from 'framework7-react'; +import { observer, inject } from "mobx-react"; + +import EditOptions from '../view/edit/Edit'; +import AddOptions from '../view/add/Add'; +import Settings from '../view/settings/Settings'; +import CollaborationView from '../../../../common/mobile/lib/view/collaboration/Collaboration.jsx'; +import { Preview } from "../controller/Preview"; +import { Search, SearchSettings } from '../controller/Search'; +import ContextMenu from '../controller/ContextMenu'; +import { Toolbar } from "../controller/Toolbar"; +class MainPage extends Component { + constructor(props) { + super(props); + this.state = { + editOptionsVisible: false, + addOptionsVisible: false, + settingsVisible: false, + collaborationVisible: false, + previewVisible: false + }; + } + + onClosePreview = () => { + this.setState({previewVisible: false}); + } + + handleClickToOpenOptions = (opts, showOpts) => { + ContextMenu.closeContextMenu(); + + this.setState(state => { + if ( opts == 'edit' ) + return {editOptionsVisible: true}; + else if ( opts == 'add' ) + return { + addOptionsVisible: true, + addShowOptions: showOpts + }; + else if ( opts == 'settings' ) + return {settingsVisible: true}; + else if ( opts == 'coauth' ) + return {collaborationVisible: true}; + else if ( opts == 'preview' ) + return {previewVisible: true}; + }); + }; + + handleOptionsViewClosed = opts => { + (async () => { + await 1 && this.setState(state => { + if ( opts == 'edit' ) + return {editOptionsVisible: false}; + else if ( opts == 'add' ) + return {addOptionsVisible: false}; + else if ( opts == 'settings' ) + return {settingsVisible: false}; + else if ( opts == 'coauth' ) + return {collaborationVisible: false} + else if ( opts == 'preview' ) + return {previewVisible: false}; + }) + })(); + }; + + render() { + const appOptions = this.props.storeAppOptions; + const config = appOptions.config; + const showLogo = !(appOptions.canBrandingExt && (config.customization && (config.customization.loaderName || config.customization.loaderLogo))); + + return ( + + {!this.state.previewVisible ? null : } + + {/* Top Navbar */} + + {showLogo &&
            } + + + + +
            + {/* Page content */} + + + + + { + !this.state.editOptionsVisible ? null : + + } + { + !this.state.addOptionsVisible ? null : + + } + { + !this.state.settingsVisible ? null : + + } + { + !this.state.collaborationVisible ? null : + + } + +
            +
            + ) + } +} + +export default inject("storeAppOptions")(observer(MainPage)); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/router/routes.js b/apps/presentationeditor/mobile/src/router/routes.js new file mode 100644 index 000000000..d5dc65d43 --- /dev/null +++ b/apps/presentationeditor/mobile/src/router/routes.js @@ -0,0 +1,11 @@ + +import MainPage from '../page/main'; + +var routes = [ + { + path: '/', + component: MainPage, + } +]; + +export default routes; diff --git a/apps/presentationeditor/mobile/src/store/appOptions.js b/apps/presentationeditor/mobile/src/store/appOptions.js new file mode 100644 index 000000000..c68baecff --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/appOptions.js @@ -0,0 +1,78 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storeAppOptions { + constructor() { + makeObservable(this, { + isEdit: observable, + canViewComments: observable, + setConfigOptions: action, + setPermissionOptions: action + }); + } + + isEdit = false; + canViewComments = false; + config = {}; + + setConfigOptions (config) { + this.config = config; + this.user = Common.Utils.fillUserInfo(config.user, config.lang, "Local.User"/*me.textAnonymous*/); + this.isDesktopApp = config.targetApp == 'desktop'; + this.canCreateNew = !!config.createUrl && !this.isDesktopApp; + this.canOpenRecent = config.recent !== undefined && !this.isDesktopApp; + this.templates = config.templates; + this.recent = config.recent; + this.createUrl = config.createUrl; + this.lang = config.lang; + this.location = (typeof (config.location) == 'string') ? config.location.toLowerCase() : ''; + this.sharingSettingsUrl = config.sharingSettingsUrl; + this.fileChoiceUrl = config.fileChoiceUrl; + this.mergeFolderUrl = config.mergeFolderUrl; + this.canAnalytics = false; + this.canRequestClose = config.canRequestClose; + this.customization = config.customization; + this.canBackToFolder = (config.canBackToFolder!==false) && (typeof (config.customization) == 'object') && (typeof (config.customization.goback) == 'object') + && (!!(config.customization.goback.url) || config.customization.goback.requestClose && this.canRequestClose); + this.canBack = this.canBackToFolder === true; + this.canPlugins = false; + } + + setPermissionOptions (document, licType, params, permissions) { + this.review = (permissions.review === undefined) ? (permissions.edit !== false) : permissions.review; + this.canAnalytics = params.asc_getIsAnalyticsEnable(); + this.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); + this.isLightVersion = params.asc_getIsLight(); + this.canCoAuthoring = !this.isLightVersion; + this.isOffline = Common.EditorApi.get().asc_isOffline(); + this.isReviewOnly = (permissions.review === true) && (permissions.edit === false); + this.canRequestEditRights = this.config.canRequestEditRights; + this.canEdit = (permissions.edit !== false || permissions.review === true) && // can edit or review + (this.config.canRequestEditRights || this.config.mode !== 'view') && // if mode=="view" -> canRequestEditRights must be defined + (!this.isReviewOnly || this.canLicense) && // if isReviewOnly==true -> canLicense must be true + true/*isSupportEditFeature*/; + this.isEdit = this.canLicense && this.canEdit && this.config.mode !== 'view'; + this.canReview = this.canLicense && this.isEdit && (permissions.review===true); + this.canUseHistory = this.canLicense && !this.isLightVersion && this.config.canUseHistory && this.canCoAuthoring && !this.isDesktopApp; + this.canHistoryClose = this.config.canHistoryClose; + this.canUseMailMerge = this.canLicense && this.canEdit && !this.isDesktopApp; + this.canSendEmailAddresses = this.canLicense && this.config.canSendEmailAddresses && this.canEdit && this.canCoAuthoring; + this.canComments = this.canLicense && (permissions.comment === undefined ? this.isEdit : permissions.comment) && (this.config.mode !== 'view'); + this.canComments = this.canComments && !((typeof (this.customization) == 'object') && this.customization.comments===false); + this.canViewComments = this.canComments || !((typeof (this.customization) == 'object') && this.customization.comments===false); + this.canEditComments = this.isOffline || !(typeof (this.customization) == 'object' && this.customization.commentAuthorOnly); + this.canChat = this.canLicense && !this.isOffline && !((typeof (this.customization) == 'object') && this.customization.chat === false); + this.canEditStyles = this.canLicense && this.canEdit; + this.canPrint = (permissions.print !== false); + this.isRestrictedEdit = !this.isEdit && this.canComments; + this.trialMode = params.asc_getLicenseMode(); + + const type = /^(?:(pdf|djvu|xps))$/.exec(document.fileType); + this.canDownloadOrigin = permissions.download !== false && (type && typeof type[1] === 'string'); + this.canDownload = permissions.download !== false && (!type || typeof type[1] !== 'string'); + + this.canBranding = params.asc_getCustomization(); + this.canBrandingExt = params.asc_getCanBranding() && (typeof this.customization == 'object'); + + this.canUseReviewPermissions = this.canLicense && this.customization && this.customization.reviewPermissions && (typeof (this.customization.reviewPermissions) == 'object'); + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/applicationSettings.js b/apps/presentationeditor/mobile/src/store/applicationSettings.js new file mode 100644 index 000000000..46a9f1e8f --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/applicationSettings.js @@ -0,0 +1,30 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storeApplicationSettings { + constructor() { + makeObservable(this, { + unitMeasurement: observable, + isSpellChecking: observable, + macrosMode: observable, + changeUnitMeasurement: action, + changeSpellCheck: action, + changeMacrosSettings: action + }); + } + + unitMeasurement = 1; + isSpellChecking = true; + macrosMode = 0; + + changeUnitMeasurement(value) { + this.unitMeasurement = +value; + } + + changeSpellCheck(value) { + this.isSpellChecking = value; + } + + changeMacrosSettings(value) { + this.macrosMode = +value; + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/chartSettings.js b/apps/presentationeditor/mobile/src/store/chartSettings.js new file mode 100644 index 000000000..935fc7203 --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/chartSettings.js @@ -0,0 +1,172 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeChartSettings { + constructor() { + makeObservable(this, { + chartStyles: observable, + fillColor: observable, + borderColor: observable, + clearChartStyles: action, + updateChartStyles: action, + styles: computed, + types: computed, + setFillColor: action, + getFillColor: action, + setBorderColor: action, + initBorderColor: action + }); + } + + // Style + + chartStyles = null; + + clearChartStyles () { + this.chartStyles = null; + } + + updateChartStyles (styles) { + this.chartStyles = styles; + } + + get styles () { + if (!this.chartStyles) return null; + const widthContainer = document.querySelector(".page-content").clientWidth; + const columns = parseInt(widthContainer / 70); // magic + let row = -1; + const styles = []; + + this.chartStyles.forEach((style, index) => { + if (0 == index % columns) { + styles.push([]); + row++ + } + styles[row].push(style); + }); + + return styles; + } + + get types () { + const types = [ + { type: Asc.c_oAscChartTypeSettings.barNormal, thumb: 'chart-03.png'}, + { type: Asc.c_oAscChartTypeSettings.barStacked, thumb: 'chart-02.png'}, + { type: Asc.c_oAscChartTypeSettings.barStackedPer, thumb: 'chart-01.png'}, + { type: Asc.c_oAscChartTypeSettings.lineNormal, thumb: 'chart-06.png'}, + { type: Asc.c_oAscChartTypeSettings.lineStacked, thumb: 'chart-05.png'}, + { type: Asc.c_oAscChartTypeSettings.lineStackedPer, thumb: 'chart-04.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarNormal, thumb: 'chart-09.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStacked, thumb: 'chart-08.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStackedPer, thumb: 'chart-07.png'}, + { type: Asc.c_oAscChartTypeSettings.areaNormal, thumb: 'chart-12.png'}, + { type: Asc.c_oAscChartTypeSettings.areaStacked, thumb: 'chart-11.png'}, + { type: Asc.c_oAscChartTypeSettings.areaStackedPer, thumb: 'chart-10.png'}, + { type: Asc.c_oAscChartTypeSettings.pie, thumb: 'chart-13.png'}, + { type: Asc.c_oAscChartTypeSettings.doughnut, thumb: 'chart-14.png'}, + { type: Asc.c_oAscChartTypeSettings.pie3d, thumb: 'chart-22.png'}, + { type: Asc.c_oAscChartTypeSettings.scatter, thumb: 'chart-15.png'}, + { type: Asc.c_oAscChartTypeSettings.stock, thumb: 'chart-16.png'}, + { type: Asc.c_oAscChartTypeSettings.line3d, thumb: 'chart-21.png'}, + { type: Asc.c_oAscChartTypeSettings.barNormal3d, thumb: 'chart-17.png'}, + { type: Asc.c_oAscChartTypeSettings.barStacked3d, thumb: 'chart-18.png'}, + { type: Asc.c_oAscChartTypeSettings.barStackedPer3d, thumb: 'chart-19.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarNormal3d, thumb: 'chart-25.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStacked3d, thumb: 'chart-24.png'}, + { type: Asc.c_oAscChartTypeSettings.hBarStackedPer3d, thumb: 'chart-23.png'}, + { type: Asc.c_oAscChartTypeSettings.barNormal3dPerspective, thumb: 'chart-20.png'} + ]; + const columns = 3; + const arr = []; + let row = -1; + types.forEach((type, index) => { + if (0 == index % columns) { + arr.push([]); + row++ + } + arr[row].push(type); + }); + return arr; + } + + // Fill Color + + fillColor = undefined; + + setFillColor (color) { + this.fillColor = color; + } + + getFillColor (shapeProperties) { + let fill = shapeProperties.get_fill(); + const fillType = fill.get_type(); + let color = 'transparent'; + + if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { + fill = fill.get_fill(); + const sdkColor = fill.get_color(); + if (sdkColor) { + if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; + } else { + color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); + } + } + } + + this.fillColor = color; + return color; + } + + // Border size and border color + + borderColor; + + setBorderColor (color) { + this.borderColor = color; + } + + initBorderColor (stroke) { + let color = 'transparent'; + + if (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { + const sdkColor = stroke.get_color(); + if (sdkColor) { + if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; + } + else { + color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); + } + } + } + + this.borderColor = color; + return color; + } + + borderSizeTransform () { + const _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; + + return { + sizeByIndex: function (index) { + if (index < 1) return _sizes[0]; + if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/focusObjects.js b/apps/presentationeditor/mobile/src/store/focusObjects.js new file mode 100644 index 000000000..2a363150a --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/focusObjects.js @@ -0,0 +1,77 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeFocusObjects { + constructor() { + makeObservable(this, { + _focusObjects: observable, + resetFocusObjects: action, + settings: computed, + slideObject: computed, + paragraphObject: computed, + paragraphLocked: computed, + shapeObject: computed, + imageObject: computed, + tableObject: computed, + isTableInStack: computed, + chartObject: computed, + linkObject: computed + }); + } + + _focusObjects = []; + + resetFocusObjects(objects) { + this._focusObjects = objects; + } + + get settings() { + return !!this.intf ? this.intf.filterFocusObjects() : null; + } + + get slideObject() { + return !!this.intf ? this.intf.getSlideObject() : null; + } + + get paragraphObject() { + return !!this.intf ? this.intf.getParagraphObject() : null; + } + + get paragraphLocked() { + let _paragraphLocked = false; + for (let object of this._focusObjects) { + if (Asc.c_oAscTypeSelectElement.Paragraph == object.get_ObjectType()) { + _paragraphLocked = object.get_ObjectValue().get_Locked(); + } + } + return _paragraphLocked; + } + + get shapeObject() { + return !!this.intf ? this.intf.getShapeObject() : null; + } + + get imageObject() { + return !!this.intf ? this.intf.getImageObject() : null; + } + + get tableObject() { + return !!this.intf ? this.intf.getTableObject() : null; + } + + get isTableInStack() { + for (let object of this._focusObjects) { + if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Table) { + return true; + } + } + return false; + } + + get chartObject() { + return !!this.intf ? this.intf.getChartObject() : null; + } + + get linkObject() { + return !!this.intf ? this.intf.getLinkObject() : null; + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/linkSettings.js b/apps/presentationeditor/mobile/src/store/linkSettings.js new file mode 100644 index 000000000..a163d68df --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/linkSettings.js @@ -0,0 +1,16 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storeLinkSettings { + constructor() { + makeObservable(this, { + canAddLink: observable, + canAddHyperlink: action + }); + } + + canAddLink; + + canAddHyperlink (value) { + this.canAddLink = value; + } +} diff --git a/apps/presentationeditor/mobile/src/store/mainStore.js b/apps/presentationeditor/mobile/src/store/mainStore.js new file mode 100644 index 000000000..299a6a63b --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/mainStore.js @@ -0,0 +1,42 @@ + +import {storeAppOptions} from './appOptions'; +// import {storeDocumentSettings} from './documentSettings'; +import {storeFocusObjects} from "./focusObjects"; +import {storeUsers} from '../../../../common/mobile/lib/store/users'; +import {storeApplicationSettings} from './applicationSettings'; +import {storePresentationInfo} from './presentationInfo'; +import {storePresentationSettings} from './presentationSettings'; +import { storePalette } from './palette'; +import { storeSlideSettings } from './slideSettings'; +import { storeTextSettings } from './textSettings'; +import { storeShapeSettings } from './shapeSettings'; +import { storeTableSettings } from "./tableSettings"; +import { storeChartSettings } from "./chartSettings"; +import { storeLinkSettings } from "./linkSettings"; +// import {storeParagraphSettings} from "./paragraphSettings"; +// import {storeShapeSettings} from "./shapeSettings"; +// import {storeImageSettings} from "./imageSettings"; +import {storeComments} from "../../../../common/mobile/lib/store/comments"; + +export const stores = { + storeAppOptions: new storeAppOptions(), + storeFocusObjects: new storeFocusObjects(), + // storeDocumentSettings: new storeDocumentSettings(), + users: new storeUsers(), + storeApplicationSettings: new storeApplicationSettings(), + storePresentationInfo: new storePresentationInfo(), + storePresentationSettings: new storePresentationSettings(), + storeSlideSettings: new storeSlideSettings(), + storePalette: new storePalette(), + storeTextSettings: new storeTextSettings(), + storeShapeSettings: new storeShapeSettings(), + storeTableSettings: new storeTableSettings(), + storeChartSettings: new storeChartSettings(), + storeLinkSettings: new storeLinkSettings(), + // storeTextSettings: new storeTextSettings(), + // storeParagraphSettings: new storeParagraphSettings(), + // storeShapeSettings: new storeShapeSettings(), + // storeChartSettings: new storeChartSettings(), + storeComments: new storeComments() +}; + diff --git a/apps/presentationeditor/mobile/src/store/palette.js b/apps/presentationeditor/mobile/src/store/palette.js new file mode 100644 index 000000000..48e15904b --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/palette.js @@ -0,0 +1,16 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storePalette { + constructor() { + makeObservable(this, { + customColors: observable, + changeCustomColors: action + }); + } + + customColors = []; + + changeCustomColors (colors) { + this.customColors = colors; + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/presentationInfo.js b/apps/presentationeditor/mobile/src/store/presentationInfo.js new file mode 100644 index 000000000..29b690525 --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/presentationInfo.js @@ -0,0 +1,16 @@ +import { action, observable, makeObservable } from "mobx"; + +export class storePresentationInfo { + constructor() { + makeObservable(this, { + dataDoc: observable, + setDataDoc: action + }); + } + + dataDoc; + + setDataDoc(obj) { + this.dataDoc = obj; + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/presentationSettings.js b/apps/presentationeditor/mobile/src/store/presentationSettings.js new file mode 100644 index 000000000..1fc6c04f8 --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/presentationSettings.js @@ -0,0 +1,43 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storePresentationSettings { + constructor() { + makeObservable(this, { + slideSizes: observable, + currentPageSize: observable, + slideSizeIndex: observable, + allSchemes: observable, + changeSizeIndex: action, + addSchemes: action, + initSlideSizes: action + }) + } + + slideSizes = []; + currentPageSize; + slideSizeIndex; + + changeSizeIndex(width, height) { + this.currentPageSize = {width, height}; + let ratio = height / width; + + this.slideSizes.forEach((array, index) => { + if(Math.abs(array[1] / array[0] - ratio) < 0.001) { + this.slideSizeIndex = index; + } + }); + } + + initSlideSizes(value) { + this.slideSizes = value; + } + + // Color Schemes + + allSchemes; + + addSchemes(arr) { + this.allSchemes = arr; + } + +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/shapeSettings.js b/apps/presentationeditor/mobile/src/store/shapeSettings.js new file mode 100644 index 000000000..b2b88fef9 --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/shapeSettings.js @@ -0,0 +1,234 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeShapeSettings { + constructor() { + makeObservable(this, { + fillColor: observable, + borderColorView: observable, + setFillColor: action, + getFillColor: action, + setBorderColor: action, + initBorderColorView: action + }); + } + + getStyleGroups () { + const styles = [ + { + title: 'Text', + thumb: 'shape-01.svg', + type: 'textRect' + }, + { + title: 'Line', + thumb: 'shape-02.svg', + type: 'line' + }, + { + title: 'Line with arrow', + thumb: 'shape-03.svg', + type: 'lineWithArrow' + }, + { + title: 'Line with two arrows', + thumb: 'shape-04.svg', + type: 'lineWithTwoArrows' + }, + { + title: 'Rect', + thumb: 'shape-05.svg', + type: 'rect' + }, + { + title: 'Hexagon', + thumb: 'shape-06.svg', + type: 'hexagon' + }, + { + title: 'Round rect', + thumb: 'shape-07.svg', + type: 'roundRect' + }, + { + title: 'Ellipse', + thumb: 'shape-08.svg', + type: 'ellipse' + }, + { + title: 'Triangle', + thumb: 'shape-09.svg', + type: 'triangle' + }, + { + title: 'Triangle', + thumb: 'shape-10.svg', + type: 'rtTriangle' + }, + { + title: 'Trapezoid', + thumb: 'shape-11.svg', + type: 'trapezoid' + }, + { + title: 'Diamond', + thumb: 'shape-12.svg', + type: 'diamond' + }, + { + title: 'Right arrow', + thumb: 'shape-13.svg', + type: 'rightArrow' + }, + { + title: 'Left-right arrow', + thumb: 'shape-14.svg', + type: 'leftRightArrow' + }, + { + title: 'Left arrow callout', + thumb: 'shape-15.svg', + type: 'leftArrow' + }, + { + title: 'Right arrow callout', + thumb: 'shape-16.svg', + type: 'bentUpArrow' + }, + { + title: 'Flow chart off page connector', + thumb: 'shape-17.svg', + type: 'flowChartOffpageConnector' + }, + { + title: 'Heart', + thumb: 'shape-18.svg', + type: 'heart' + }, + { + title: 'Math minus', + thumb: 'shape-19.svg', + type: 'mathMinus' + }, + { + title: 'Math plus', + thumb: 'shape-20.svg', + type: 'mathPlus' + }, + { + title: 'Parallelogram', + thumb: 'shape-21.svg', + type: 'parallelogram' + }, + { + title: 'Wedge rect callout', + thumb: 'shape-22.svg', + type: 'wedgeRectCallout' + }, + { + title: 'Wedge ellipse callout', + thumb: 'shape-23.svg', + type: 'wedgeEllipseCallout' + }, + { + title: 'Cloud callout', + thumb: 'shape-24.svg', + type: 'cloudCallout' + } + ]; + const groups = []; + let i = 0; + for (let row=0; row _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } + +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/slideSettings.js b/apps/presentationeditor/mobile/src/store/slideSettings.js new file mode 100644 index 000000000..18ab8a04d --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/slideSettings.js @@ -0,0 +1,88 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeSlideSettings { + constructor() { + makeObservable(this, { + arrayLayouts: observable, + slideLayoutIndex: observable, + fillColor: observable, + arrayThemes: observable, + slideThemeIndex: observable, + getFillColor: action, + changeFillColor: action, + addArrayLayouts: action, + slideLayouts: computed, + changeSlideLayoutIndex: action, + addArrayThemes: action, + changeSlideThemeIndex: action, + }); + } + + arrayLayouts; + slideLayoutIndex = -1; + fillColor = undefined; + arrayThemes; + slideThemeIndex; + + getFillColor (slideObject) { + let color = 'transparent'; + let fill = slideObject.get_background(), + fillType = fill.get_type(); + let sdkColor; + + if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { + fill = fill.get_fill(); + sdkColor = fill.get_color(); + + if (sdkColor) { + if (sdkColor.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + color = {color: Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()), effectValue: sdkColor.get_value()}; + } else { + color = Common.Utils.ThemeColor.getHexColor(sdkColor.get_r(), sdkColor.get_g(), sdkColor.get_b()); + } + } + } + + this.fillColor = color; + return color; + } + + changeFillColor (color) { + this.fillColor = color; + } + + addArrayLayouts(array) { + this.arrayLayouts = array; + } + + get slideLayouts () { + const layouts = []; + const columns = 2; + let row = -1; + this.arrayLayouts.forEach((item, index)=>{ + if (0 == index % columns) { + layouts.push([]); + row++ + } + layouts[row].push({ + type: item.getIndex(), + image: item.get_Image(), + width: item.get_Width(), + height: item.get_Height() + }); + }); + return layouts; + } + + changeSlideLayoutIndex(index) { + this.slideLayoutIndex = index; + } + + addArrayThemes(array) { + this.arrayThemes = array; + } + + changeSlideThemeIndex(index) { + this.slideThemeIndex = index; + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/tableSettings.js b/apps/presentationeditor/mobile/src/store/tableSettings.js new file mode 100644 index 000000000..272093980 --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/tableSettings.js @@ -0,0 +1,156 @@ +import {action, observable, computed, makeObservable} from 'mobx'; +import {f7} from 'framework7-react'; + +export class storeTableSettings { + constructor() { + makeObservable(this, { + _templates: observable, + cellBorders: observable, + cellBorderWidth: observable, + cellBorderColor: observable, + initTableTemplates: action, + styles: computed, + updateCellBorderWidth: action, + updateCellBorderColor: action, + }); + } + + _templates = []; + + initTableTemplates (templates) { + this._templates = templates; + } + + get styles () { + let styles = []; + for (let template of this._templates) { + styles.push({ + imageUrl : template.asc_getImage(), + templateId : template.asc_getId() + }); + } + return styles; + } + + getTableLook (tableObject) { + return tableObject.get_TableLook() + } + + getCellMargins (tableObject) { + const margins = tableObject.get_CellMargins(); + return margins.get_Left(); + } + + // Fill color + + getFillColor (tableObject) { + const background = tableObject.get_CellsBackground(); + let fillColor = 'transparent'; + if (background) { + if (background.get_Value() == 0) { + const color = background.get_Color(); + if (color) { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + fillColor = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value()}; + } else { + fillColor = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + } + + return fillColor; + } + + // Border style + + cellBorders; + cellBorderWidth = 0.5; + cellBorderColor = '000000'; + + borderSizeTransform () { + const _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; + + return { + sizeByIndex: function (index) { + if (index < 1) return _sizes[0]; + if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } + + updateCellBorderWidth (value) { + this.cellBorderWidth = value; + } + + updateCellBorderColor (value) { + this.cellBorderColor = value; + } + + updateBordersStyle (border) { + this.cellBorders = new Asc.CBorders(); + const visible = (border != ''); + + if (border.indexOf('l') > -1 || !visible) { + if (this.cellBorders.get_Left()===null || this.cellBorders.get_Left()===undefined) + this.cellBorders.put_Left(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Left(), visible); + } + if (border.indexOf('t') > -1 || !visible) { + if (this.cellBorders.get_Top()===null || this.cellBorders.get_Top()===undefined) + this.cellBorders.put_Top(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Top(), visible); + } + if (border.indexOf('r') > -1 || !visible) { + if (this.cellBorders.get_Right()===null || this.cellBorders.get_Right()===undefined) + this.cellBorders.put_Right(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Right(), visible); + } + if (border.indexOf('b') > -1 || !visible) { + if (this.cellBorders.get_Bottom()===null || this.cellBorders.get_Bottom()===undefined) + this.cellBorders.put_Bottom(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_Bottom(), visible); + } + if (border.indexOf('c') > -1 || !visible) { + if (this.cellBorders.get_InsideV()===null || this.cellBorders.get_InsideV()===undefined) + this.cellBorders.put_InsideV(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_InsideV(), visible); + } + if (border.indexOf('m') > -1 || !visible) { + if (this.cellBorders.get_InsideH()===null || this.cellBorders.get_InsideH()===undefined) + this.cellBorders.put_InsideH(new Asc.asc_CTextBorder()); + this.updateBorderStyle (this.cellBorders.get_InsideH(), visible); + } + } + + updateBorderStyle (border, visible) { + if (!border) { + border = new Asc.asc_CTextBorder(); + } + if (visible && this.cellBorderWidth > 0){ + const size = parseFloat(this.cellBorderWidth); + border.put_Value(1); + border.put_Size(size * 25.4 / 72.0); + const color = Common.Utils.ThemeColor.getRgbColor(this.cellBorderColor); + border.put_Color(color); + } + else { + border.put_Value(0); + } + } +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/store/textSettings.js b/apps/presentationeditor/mobile/src/store/textSettings.js new file mode 100644 index 000000000..7f4b50f26 --- /dev/null +++ b/apps/presentationeditor/mobile/src/store/textSettings.js @@ -0,0 +1,207 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeTextSettings { + constructor() { + makeObservable(this, { + fontsArray: observable, + fontName: observable, + fontSize: observable, + isBold: observable, + isItalic: observable, + isUnderline: observable, + isStrikethrough: observable, + typeBaseline: observable, + listType: observable, + typeBullets: observable, + typeNumbers: observable, + paragraphAlign: observable, + paragraphValign: observable, + canIncreaseIndent: observable, + canDecreaseIndent: observable, + textColor: observable, + customTextColors: observable, + lineSpacing: observable, + initEditorFonts: action, + resetFontName: action, + resetFontSize: action, + resetIsBold: action, + resetIsItalic: action, + resetIsUnderline: action, + resetIsStrikeout: action, + resetIncreaseIndent: action, + resetDecreaseIndent: action, + resetTypeBaseline: action, + isSuperscript: computed, + isSubscript: computed, + resetListType: action, + resetBullets: action, + resetNumbers: action, + resetParagraphAlign: action, + resetParagraphValign: action, + resetTextColor: action, + changeCustomTextColors: action, + resetLineSpacing: action + }); + } + + fontsArray = []; + fontName = ''; + fontSize = undefined; + isBold = false; + isItalic = false; + isUnderline = false; + isStrikethrough = false; + typeBaseline = undefined; + listType = undefined; + typeBullets = undefined; + typeNumbers = undefined; + paragraphAlign = undefined; + paragraphValign = undefined; + canIncreaseIndent = undefined; + canDecreaseIndent = undefined; + textColor = undefined; + customTextColors = []; + lineSpacing = undefined; + + initEditorFonts (fonts, select) { + let array = []; + for (let font of fonts) { + let fontId = font.asc_getFontId(); + array.push({ + id : fontId, + name : font.asc_getFontName(), + //displayValue: font.asc_getFontName(), + imgidx : font.asc_getFontThumbnail(), + type : font.asc_getFontType() + }); + } + this.fontsArray = array; + } + + resetFontName (font) { + let name = (typeof font.get_Name) === "function" ? font.get_Name() : font.asc_getName(); + this.fontName = name; + } + + resetFontSize (size) { + this.fontSize = size; + } + + resetIsBold (isBold) { + this.isBold = isBold; + } + + resetIsItalic (isItalic) { + this.isItalic = isItalic; + } + + resetIsUnderline (isUnderline) { + this.isUnderline = isUnderline; + } + + resetIsStrikeout (isStrikethrough) { + this.isStrikethrough = isStrikethrough; + } + + // Indent + + resetIncreaseIndent(value) { + this.canIncreaseIndent = value; + } + + resetDecreaseIndent(value) { + this.canDecreaseIndent = value; + } + + // vertical align + + resetTypeBaseline (typeBaseline) { + this.typeBaseline = typeBaseline; + } + + get isSuperscript() { + return (this.typeBaseline === 1); + } + + get isSubscript() { + return (this.typeBaseline === 2); + } + + // bullets + + resetListType (type) { + this.listType = type; + } + + resetBullets (type) { + this.typeBullets = type; + } + + resetNumbers (type) { + this.typeNumbers = type; + } + + resetParagraphAlign (align) { + let value; + switch (align) { + case 0: + value = 'right'; + break; + case 1: + value = 'left'; + break; + case 2: + value = 'center'; + break; + case 3: + value = 'just'; + break; + } + this.paragraphAlign = value; + } + + resetParagraphValign (align) { + let value; + switch (align) { + case 0: + value = 'bottom'; + break; + case 4: + value = 'top'; + break; + case 1: + value = 'center'; + break; + } + this.paragraphValign = value; + } + + resetTextColor (color) { + let value; + if (color) { + if (color.get_auto()) { + value = 'auto'; + } else { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + value = { + color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), + effectValue: color.get_value() + } + } else { + value = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + this.textColor = value; + } + + changeCustomTextColors (colors) { + this.customTextColors = colors; + } + + resetLineSpacing (vc) { + let line = (vc.get_Line() === null || vc.get_LineRule() === null || vc.get_LineRule() != 1) ? -1 : vc.get_Line(); + this.lineSpacing = line; + } + +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/Preview.jsx b/apps/presentationeditor/mobile/src/view/Preview.jsx new file mode 100644 index 000000000..96a618b42 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/Preview.jsx @@ -0,0 +1,11 @@ +import React from 'react'; + +const Preview = () => { + return ( +
            +
            +
            + ) +}; + +export default Preview; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/Toolbar.jsx b/apps/presentationeditor/mobile/src/view/Toolbar.jsx new file mode 100644 index 000000000..cc053e6ae --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/Toolbar.jsx @@ -0,0 +1,41 @@ +import React, {Fragment} from 'react'; +import {NavLeft, NavRight, NavTitle, Link, Icon} from 'framework7-react'; +import { Device } from '../../../../common/mobile/utils/device'; +import EditorUIController from '../lib/patch' + +const ToolbarView = props => { + return ( + + + {props.isShowBack && } + {Device.ios && props.isEdit && EditorUIController.getUndoRedo && EditorUIController.getUndoRedo({ + disabledUndo: !props.isCanUndo, + disabledRedo: !props.isCanRedo, + onUndoClick: props.onUndo, + onRedoClick: props.onRedo + })} + + {!Device.phone && {props.docTitle}} + + {Device.android && props.isEdit && EditorUIController.getUndoRedo && EditorUIController.getUndoRedo({ + disabledUndo: !props.isCanUndo, + disabledRedo: !props.isCanRedo, + onUndoClick: props.onUndo, + onRedoClick: props.onRedo + })} + {props.openOptions('preview')}}> + {props.isEdit && EditorUIController.getToolbarOptions && EditorUIController.getToolbarOptions({ + disabledAdd: props.disabledAdd || props.disabledControls, + disabledEdit: props.disabledEdit || props.disabledControls, + onEditClick: () => props.openOptions('edit'), + onAddClick: () => props.openOptions('add') + })} + { Device.phone ? null : } + {props.displayCollaboration && window.matchMedia("(min-width: 390px)").matches ? props.openOptions('coauth')}> : null} + props.openOptions('settings')}> + + + ) +}; + +export default ToolbarView; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/add/Add.jsx b/apps/presentationeditor/mobile/src/view/add/Add.jsx new file mode 100644 index 000000000..9608afc93 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/add/Add.jsx @@ -0,0 +1,171 @@ +import React, {Component, useEffect} from 'react'; +import {View,Page,Navbar,NavRight, NavTitle, Link,Popup,Popover,Icon,Tabs,Tab} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {f7} from 'framework7-react'; +import { observer, inject } from "mobx-react"; +import {Device} from '../../../../../common/mobile/utils/device'; + +import AddSlideController from "../../controller/add/AddSlide"; +import AddShapeController from "../../controller/add/AddShape"; +import {AddImageController} from "../../controller/add/AddImage"; +import {PageImageLinkSettings} from "./AddImage"; +import {AddOtherController} from "../../controller/add/AddOther"; +import {PageAddTable} from "./AddOther"; +import {AddLinkController} from "../../controller/add/AddLink"; +import {PageTypeLink, PageLinkTo} from "./AddLink"; + +const routes = [ + // Image + { + path: '/add-image-from-url/', + component: PageImageLinkSettings + }, + // Other + { + path: '/add-table/', + component: PageAddTable + }, + { + path: '/add-link/', + component: AddLinkController + }, + { + path: '/add-link-type/', + component: PageTypeLink + }, + { + path: '/add-link-to/', + component: PageLinkTo + } +]; + +const AddLayoutNavbar = ({ tabs, inPopover }) => { + const isAndroid = Device.android; + return ( + + {tabs.length > 1 ? +
            + {tabs.map((item, index) => + + + )} + {isAndroid && } +
            : + {tabs[0].caption} + } + { !inPopover && } +
            + ) +}; + +const AddLayoutContent = ({ tabs }) => { + return ( + + {tabs.map((item, index) => + + {item.component} + + )} + + ) +}; + +const AddTabs = props => { + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + const api = Common.EditorApi.get(); + const countPages = api.getCountPages(); + const showPanels = props.showPanels; + const tabs = []; + if (!showPanels && countPages) { + tabs.push({ + caption: _t.textSlide, + id: 'add-slide', + icon: 'icon-add-slide', + component: + }); + tabs.push({ + caption: _t.textShape, + id: 'add-shape', + icon: 'icon-add-shape', + component: + }); + tabs.push({ + caption: _t.textImage, + id: 'add-image', + icon: 'icon-add-image', + component: + }); + tabs.push({ + caption: _t.textOther, + id: 'add-other', + icon: 'icon-add-other', + component: + }); + } + if(!showPanels && !countPages) { + tabs.push({ + caption: _t.textSlide, + id: 'add-slide', + icon: 'icon-add-slide', + component: + }); + } + if (showPanels && showPanels === 'link') { + tabs.push({ + caption: _t.textAddLink, + id: 'add-link', + component: + }); + } + return ( + + + + + + + ) +}; + +class AddView extends Component { + constructor(props) { + super(props); + + this.onoptionclick = this.onoptionclick.bind(this); + } + onoptionclick(page){ + f7.views.current.router.navigate(page); + } + render() { + const show_popover = this.props.usePopover; + return ( + show_popover ? + this.props.onclosed()}> + + : + this.props.onclosed()}> + + + ) + } +} + +const Add = props => { + useEffect(() => { + if ( Device.phone ) + f7.popup.open('.add-popup'); + else f7.popover.open('#add-popover', '#btn-add'); + + return () => { + // component will unmount + } + }); + const onviewclosed = () => { + if ( props.onclosed ) + props.onclosed(); + }; + return +}; + +export default Add; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/add/AddImage.jsx b/apps/presentationeditor/mobile/src/view/add/AddImage.jsx new file mode 100644 index 000000000..f25c979df --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/add/AddImage.jsx @@ -0,0 +1,49 @@ +import React, {useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Page, Navbar, Icon, ListButton, ListInput, BlockTitle} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; + +const PageLinkSettings = props => { + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + const [stateValue, setValue] = useState(''); + return ( + + + {_t.textAddress} + + {setValue(event.target.value)}} + > + + + + {props.onInsertByUrl(stateValue)}}> + + + ) +}; + +const AddImage = props => { + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + return ( + + {props.onInsertByFile()}}> + + + + + + + ) +}; + +export {AddImage, PageLinkSettings as PageImageLinkSettings}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/add/AddLink.jsx b/apps/presentationeditor/mobile/src/view/add/AddLink.jsx new file mode 100644 index 000000000..621df428c --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/add/AddLink.jsx @@ -0,0 +1,154 @@ +import React, {useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Page, Navbar, Icon, ListButton, ListInput, Segmented, Button} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../../../common/mobile/utils/device"; + +const PageTypeLink = props => { + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + const [typeLink, setTypeLink] = useState(props.curType); + return ( + + + + {setTypeLink(1); props.changeType(1);}}> + {setTypeLink(0); props.changeType(0);}}> + + + ) +}; + +const PageLinkTo = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + + const [stateTypeTo, setTypeTo] = useState(props.curTo); + const changeTypeTo = (type) => { + setTypeTo(type); + props.changeTo(type); + }; + + const [stateNumberTo, setNumberTo] = useState(0); + const changeNumber = (curNumber, isDecrement) => { + setTypeTo(4); + let value; + if (isDecrement) { + value = curNumber - 1; + } else { + value = curNumber + 1; + } + setNumberTo(value); + props.changeTo(4, value); + }; + return ( + + + + {changeTypeTo(0)}}> + {changeTypeTo(1)}}> + {changeTypeTo(2)}}> + {changeTypeTo(3)}}> + + {!isAndroid &&
            {stateNumberTo + 1}
            } +
            + + + {isAndroid && } + + +
            +
            +
            +
            + ) +}; + +const PageLink = props => { + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + + const [typeLink, setTypeLink] = useState(1); + const textType = typeLink === 1 ? _t.textExternalLink : _t.textSlideInThisPresentation; + const changeType = (newType) => { + setTypeLink(newType); + }; + + const [link, setLink] = useState(''); + + const [linkTo, setLinkTo] = useState(0); + const [displayTo, setDisplayTo] = useState(_t.textNextSlide); + const [numberTo, setNumberTo] = useState(0); + const changeTo = (type, number) => { + setLinkTo(type); + switch (type) { + case 0 : setDisplayTo(_t.textNextSlide); break; + case 1 : setDisplayTo(_t.textPreviousSlide); break; + case 2 : setDisplayTo(_t.textFirstSlide); break; + case 3 : setDisplayTo(_t.textLastSlide); break; + case 4 : setDisplayTo(`${_t.textSlide} ${number + 1}`); setNumberTo(number); break; + } + }; + + const display = props.getTextDisplay(); + const displayDisabled = display !== false && display === null; + const [stateDisplay, setDisplay] = useState(display !== false ? ((display !== null) ? display : _t.textDefault) : ""); + + const [screenTip, setScreenTip] = useState(''); + + return ( + + {!props.noNavbar && } + + + {typeLink === 1 ? + {setLink(event.target.value)}} + /> : + + } + {setDisplay(event.target.value)}} + /> + {setScreenTip(event.target.value)}} + /> + + + { + props.onInsertLink(typeLink, (typeLink === 1 ? + {url: link, display: stateDisplay, tip: screenTip, displayDisabled: displayDisabled } : + {linkTo: linkTo, numberTo: numberTo, display: stateDisplay, tip: screenTip, displayDisabled: displayDisabled})); + }} + /> + + + ) +}; + +export {PageLink, + PageLinkTo, + PageTypeLink} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/add/AddOther.jsx b/apps/presentationeditor/mobile/src/view/add/AddOther.jsx new file mode 100644 index 000000000..572d77a39 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/add/AddOther.jsx @@ -0,0 +1,64 @@ +import React, {useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Page, Navbar, Icon, ListButton, ListInput, BlockTitle, Segmented, Button} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../../../common/mobile/utils/device"; + +const PageTable = props => { + props.initStyleTable(); + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + const storeTableSettings = props.storeTableSettings; + const styles = storeTableSettings.styles; + return ( + + +
            +
              + {styles.map((style, index) => { + return ( +
            • {props.onStyleClick(style.templateId)}}> + +
            • + ) + })} +
            +
            +
            + ) +}; + +const AddOther = props => { + const { t } = useTranslation(); + const _t = t('View.Add', {returnObjects: true}); + const showInsertLink = props.storeLinkSettings.canAddLink && !props.storeFocusObjects.paragraphLocked; + const hideAddComment = props.hideAddComment(); + return ( + + + + + {!hideAddComment && { + props.closeModal(); + Common.Notifications.trigger('addcomment'); + }}> + + } + {showInsertLink && + + + + } + + ) +}; + +const PageAddTable = inject("storeTableSettings")(observer(PageTable)); +const AddOtherContainer = inject("storeFocusObjects", "storeLinkSettings")(observer(AddOther)); + +export {AddOtherContainer as AddOther, + PageAddTable}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/add/AddShape.jsx b/apps/presentationeditor/mobile/src/view/add/AddShape.jsx new file mode 100644 index 000000000..e5910762b --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/add/AddShape.jsx @@ -0,0 +1,30 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {Page, Navbar, List, ListItem, ListButton, Row, BlockTitle, Range, Toggle, Icon} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +const AddShape = props => { + const shapes = props.storeShapeSettings.getStyleGroups(); + return ( +
            + {shapes.map((row, indexRow) => { + return ( +
              + {row.map((shape, index) => { + return ( +
            • {props.onShapeClick(shape.type)}}> +
              +
              +
            • + ) + })} +
            + ) + })} +
            + ) +}; + +export default inject("storeShapeSettings")(observer(AddShape)); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/add/AddSlide.jsx b/apps/presentationeditor/mobile/src/view/add/AddSlide.jsx new file mode 100644 index 000000000..96b50c267 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/add/AddSlide.jsx @@ -0,0 +1,28 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {Page, Navbar, List, ListItem, ListButton, Row, BlockTitle, Range, Toggle, Icon} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +const AddSlide = props => { + const layouts = props.storeSlideSettings.slideLayouts; + return ( +
            + {layouts.map((row, rowIndex) => { + return ( +
              + {row.map((layout, index) => { + return ( +
            • {props.onSlideLayout(layout.type)}}> + +
            • + ) + })} +
            + ) + })} +
            + ) +}; + +export default inject("storeSlideSettings")(observer(AddSlide)); \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/Edit.jsx b/apps/presentationeditor/mobile/src/view/edit/Edit.jsx new file mode 100644 index 000000000..3f9537494 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/Edit.jsx @@ -0,0 +1,376 @@ +import React, {useState, useEffect} from 'react'; +import {observer, inject} from "mobx-react"; +import { Popover, Sheet, View, Page, Navbar, NavRight, NavLeft, NavTitle, Tabs, Tab, Link } from 'framework7-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import EditSlideController from "../../controller/edit/EditSlide"; +import EditTextController from "../../controller/edit/EditText"; +import EditShapeController from "../../controller/edit/EditShape"; +import EditImageController from "../../controller/edit/EditImage"; +import EditTableController from "../../controller/edit/EditTable"; +import EditChartController from "../../controller/edit/EditChart"; +import { EditLinkController } from "../../controller/edit/EditLink"; + +import { Theme, Layout, Transition, Type, Effect, StyleFillColor, CustomFillColor } from './EditSlide'; +import { PageTextFonts, PageTextFontColor, PageTextCustomFontColor, PageTextAddFormatting, PageTextBullets, PageTextNumbers, PageTextLineSpacing } from './EditText'; +import { PageShapeStyle, PageShapeStyleNoFill, PageReplaceContainer, PageReorderContainer, PageAlignContainer, PageShapeBorderColor, PageShapeCustomBorderColor, PageShapeCustomFillColor } from './EditShape'; +import { PageImageReplace, PageImageReorder, PageImageAlign, PageLinkSettings } from './EditImage'; +import { PageTableStyle, PageTableStyleOptions, PageTableCustomFillColor, PageTableBorderColor, PageTableCustomBorderColor, PageTableReorder, PageTableAlign } from './EditTable'; +import { PageChartStyle, PageChartCustomFillColor, PageChartBorderColor, PageChartCustomBorderColor, PageChartReorder, PageChartAlign } from './EditChart' +import { PageLinkTo, PageTypeLink } from './EditLink' + +const routes = [ + + // Slides + + { + path: '/layout/', + component: Layout + }, + { + path: '/theme/', + component: Theme + }, + { + path: '/transition/', + component: Transition + }, + { + path: '/effect/', + component: Effect + }, + { + path: '/type/', + component: Type + }, + { + path: '/style/', + component: StyleFillColor + }, + { + path: '/edit-custom-color/', + component: CustomFillColor + }, + + // Text + + { + path: '/edit-text-fonts/', + component: PageTextFonts + }, + { + path: '/edit-text-font-color/', + component: PageTextFontColor + }, + { + path: '/edit-text-custom-font-color/', + component: PageTextCustomFontColor + }, + { + path: '/edit-text-add-formatting/', + component: PageTextAddFormatting + }, + { + path: '/edit-text-bullets/', + component: PageTextBullets + }, + { + path: '/edit-text-numbers/', + component: PageTextNumbers + }, + { + path: '/edit-text-line-spacing/', + component: PageTextLineSpacing + }, + + // Shape + + { + path: '/edit-style-shape/', + component: PageShapeStyle + }, + { + path: '/edit-style-shape-no-fill/', + component: PageShapeStyleNoFill + }, + { + path: '/edit-replace-shape/', + component: PageReplaceContainer + }, + { + path: '/edit-reorder-shape', + component: PageReorderContainer + }, + { + path: '/edit-align-shape/', + component: PageAlignContainer + }, + { + path: '/edit-shape-border-color/', + component: PageShapeBorderColor + }, + { + path: '/edit-shape-custom-border-color/', + component: PageShapeCustomBorderColor + }, + { + path: '/edit-shape-custom-fill-color/', + component: PageShapeCustomFillColor + }, + + // Image + + { + path: '/edit-replace-image/', + component: PageImageReplace + }, + { + path: '/edit-reorder-image/', + component: PageImageReorder + }, + { + path: '/edit-align-image', + component: PageImageAlign + }, + { + path: '/edit-image-link/', + component: PageLinkSettings + }, + + // Table + + { + path: '/edit-table-reorder/', + component: PageTableReorder + }, + { + path: '/edit-table-align/', + component: PageTableAlign + }, + { + path: '/edit-table-style/', + component: PageTableStyle + }, + { + path: '/edit-table-style-options/', + component: PageTableStyleOptions + }, + { + path: '/edit-table-border-color/', + component: PageTableBorderColor + }, + { + path: '/edit-table-custom-border-color/', + component: PageTableCustomBorderColor + }, + { + path: '/edit-table-custom-fill-color/', + component: PageTableCustomFillColor + }, + + // Chart + + { + path: '/edit-chart-style/', + component: PageChartStyle + }, + { + path: '/edit-chart-reorder/', + component: PageChartReorder + }, + { + path: '/edit-chart-align/', + component: PageChartAlign + }, + { + path: '/edit-chart-border-color/', + component: PageChartBorderColor + }, + { + path: '/edit-chart-custom-border-color/', + component: PageChartCustomBorderColor + }, + { + path: '/edit-chart-custom-fill-color/', + component: PageChartCustomFillColor + }, + + // Link + + { + path: '/edit-link-type/', + component: PageTypeLink + }, + { + path: '/edit-link-to/', + component: PageLinkTo + } +]; + +const EmptyEditLayout = () => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + return ( + +
            +
            +

            {_t.textSelectObjectToEdit}

            +
            +
            +
            + ) +}; + +const EditLayoutNavbar = ({ editors, inPopover }) => { + const isAndroid = Device.android; + return ( + + { + editors.length > 1 ? +
            + {editors.map((item, index) => {item.caption})} + {isAndroid && } +
            : + { editors[0].caption } + } + { !inPopover && } +
            + ) +}; + +const EditLayoutContent = ({ editors }) => { + if (editors.length > 1) { + return ( + + {editors.map((item, index) => + + {item.component} + + )} + + ) + } else { + return ( + + {editors[0].component} + + ) + } +}; + +const EditTabs = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + const settings = props.storeFocusObjects.settings; + + let editors = []; + if (settings.length < 1) { + editors.push({ + caption: _t.textSettings, + component: + }); + } else { + if (settings.indexOf('slide') > -1) { + editors.push({ + caption: _t.textSlide, + id: 'edit-slide', + component: + }) + } + if (settings.indexOf('text') > -1) { + editors.push({ + caption: _t.textText, + id: 'edit-text', + component: + }) + } + if (settings.indexOf('shape') > -1) { + editors.push({ + caption: _t.textShape, + id: 'edit-shape', + component: + }) + } + if (settings.indexOf('image') > -1) { + editors.push({ + caption: _t.textImage, + id: 'edit-image', + component: + }) + } + if (settings.indexOf('table') > -1) { + editors.push({ + caption: _t.textTable, + id: 'edit-table', + component: + }) + } + if (settings.indexOf('chart') > -1) { + editors.push({ + caption: _t.textChart, + id: 'edit-chart', + component: + }) + } + if (settings.indexOf('hyperlink') > -1) { + editors.push({ + caption: _t.textHyperlink, + id: 'edit-link', + component: + }) + } + } + + return ( + + + + + + + ) +}; + +const EditTabsContainer = inject("storeFocusObjects")(observer(EditTabs)); + +const EditView = props => { + const onOptionClick = (page) => { + $f7.views.current.router.navigate(page); + }; + const show_popover = props.usePopover; + return ( + show_popover ? + props.onClosed()}> + + : + props.onClosed()}> + + + ) +}; + +const EditOptions = props => { + useEffect(() => { + if ( Device.phone ) + f7.sheet.open('#edit-sheet'); + else f7.popover.open('#edit-popover', '#btn-edit'); + + return () => { + // component will unmount + } + }); + + const onviewclosed = () => { + if ( props.onclosed ) + props.onclosed(); + }; + + return ( + + ) +}; + +export default EditOptions; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/EditChart.jsx b/apps/presentationeditor/mobile/src/view/edit/EditChart.jsx new file mode 100644 index 000000000..b39dcdf2e --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/EditChart.jsx @@ -0,0 +1,343 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, ListButton, Icon, Row, Page, Navbar, BlockTitle, Toggle, Range, Link, Tabs, Tab} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {CustomColorPicker, ThemeColorPalette} from "../../../../../common/mobile/lib/component/ThemeColorPalette.jsx"; + +const PageCustomFillColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + let fillColor = props.storeChartSettings.fillColor; + + if (typeof fillColor === 'object') { + fillColor = fillColor.color; + } + + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onFillColor(color); + props.storeChartSettings.setFillColor(color); + props.f7router.back(); + }; + + return ( + + + + + ) +}; + +const PaletteFill = inject("storeFocusObjects", "storeChartSettings", "storePalette")(observer(props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeChartSettings = props.storeChartSettings; + const shapeProperties = props.storeFocusObjects.shapeObject; + const curFillColor = storeChartSettings.fillColor ? storeChartSettings.fillColor : storeChartSettings.getFillColor(shapeProperties); + const customColors = props.storePalette.customColors; + + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onFillColor(newColor); + storeChartSettings.setFillColor(newColor); + } else { + props.onFillColor(color); + storeChartSettings.setFillColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-chart-custom-fill-color/', {props: {onFillColor: props.onFillColor}}); + } + }; + + return ( + + + + + + + ) +})); + +const PageCustomBorderColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + let borderColor = props.storeChartSettings.borderColor; + + if (typeof borderColor === 'object') { + borderColor = borderColor.color; + } + + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onBorderColor(color); + props.storeChartSettings.setBorderColor(color); + props.f7router.back(); + }; + + return ( + + + + + ) +}; + +const PageBorderColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const borderColor = props.storeChartSettings.borderColor; + const customColors = props.storePalette.customColors; + + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onBorderColor(newColor); + props.storeChartSettings.setBorderColor(newColor); + } else { + props.onBorderColor(color); + props.storeChartSettings.setBorderColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-chart-custom-border-color/', {props: {onBorderColor: props.onBorderColor}}); + } + }; + + return ( + + + + + + + + ) +}; + +const PageStyle = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeChartSettings = props.storeChartSettings; + const chartProperties = props.storeFocusObjects.chartObject; + + const types = storeChartSettings.types; + const curType = chartProperties.getType(); + + const styles = storeChartSettings.styles; + + const shapeObject = props.storeFocusObjects.shapeObject; + const shapeStroke = shapeObject.get_stroke(); + + // Init border size + + const borderSizeTransform = storeChartSettings.borderSizeTransform(); + const borderSize = shapeStroke.get_width() * 72.0 / 25.4; + const borderType = shapeStroke.get_type(); + const displayBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + // Init border color + + const borderColor = !storeChartSettings.borderColor ? storeChartSettings.initBorderColor(shapeStroke) : storeChartSettings.borderColor; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + return ( + + +
            + {_t.textType} + {_t.textStyle} + {_t.textFill} + {_t.textBorder} +
            +
            + + +
            + {types.map((row, rowIndex) => { + return ( +
              + {row.map((type, index)=>{ + return( +
            • {props.onType(type.type)}}> +
              +
              +
            • + ) + })} +
            + ) + })} +
            +
            + +
            + {styles ? styles.map((row, rowIndex) => { + return ( +
              + {row.map((style, index)=>{ + return( +
            • {props.onStyle(style.asc_getName())}}> + +
            • + ) + })} +
            + ) + }) : +
            {_t.textNoStyles}
            + } +
            +
            + + + + + + +
            {_t.textSize}
            +
            + {setBorderSize(value); setTextBorderSize(borderSizeTransform.sizeByIndex(value));}} + onRangeChanged={(value) => {props.onBorderSize(borderSizeTransform.sizeByIndex(value))}} + > +
            +
            + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
            +
            + + + +
            +
            +
            +
            + ) +}; + +const PageReorder = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + return ( + + + + {props.onReorder('all-up')}} link='#' className='no-indicator'> + + + {props.onReorder('all-down')}} link='#' className='no-indicator'> + + + {props.onReorder('move-up')}} link='#' className='no-indicator'> + + + {props.onReorder('move-down')}} link='#' className='no-indicator'> + + + + + ) +}; + +const PageAlign = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onAlign('align-left')}} className='no-indicator'> + + + {props.onAlign('align-center')}} className='no-indicator'> + + + {props.onAlign('align-right')}} className='no-indicator'> + + + {props.onAlign('align-top')}} className='no-indicator'> + + + {props.onAlign('align-middle')}} className='no-indicator'> + + + {props.onAlign('align-bottom')}} className='no-indicator'> + + + + + {props.onAlign('distrib-hor')}} className='no-indicator'> + + + {props.onAlign('distrib-vert')}} className='no-indicator'> + + + + + ) +}; + +const EditChart = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + return ( + + + + + + + + {props.onRemoveChart()}} className='button-red button-fill button-raised'/> + + + ) +}; + +const PageChartStyle = inject("storeChartSettings", "storeFocusObjects")(observer(PageStyle)); +const PageChartCustomFillColor = inject("storeChartSettings", "storePalette")(observer(PageCustomFillColor)); +const PageChartBorderColor = inject("storeChartSettings", "storePalette")(observer(PageBorderColor)); +const PageChartCustomBorderColor = inject("storeChartSettings", "storePalette")(observer(PageCustomBorderColor)); + +export { + EditChart, + PageChartStyle, + PageChartCustomFillColor, + PageChartBorderColor, + PageChartCustomBorderColor, + PageReorder as PageChartReorder, + PageAlign as PageChartAlign +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/EditImage.jsx b/apps/presentationeditor/mobile/src/view/edit/EditImage.jsx new file mode 100644 index 000000000..e870aaf99 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/EditImage.jsx @@ -0,0 +1,167 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {f7, Page, Navbar, List, ListItem, Row, BlockTitle, Link, Toggle, Icon, View, NavRight, ListItemCell, Range, Button, Segmented, Tab, Tabs, ListInput, ListButton} from 'framework7-react'; +import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +const EditImage = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + + + + + {_t.textActualSize} + {_t.textRemoveImage} + + + ) +}; + +const PageReorder = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onReorder('all-up')}} className='no-indicator'> + + + {props.onReorder('all-down')}} className='no-indicator'> + + + {props.onReorder('move-up')}} className='no-indicator'> + + + {props.onReorder('move-down')}} className='no-indicator'> + + + + + ) +}; + +const PageAlign = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onAlign('align-left')}} className='no-indicator'> + + + {props.onAlign('align-center')}} className='no-indicator'> + + + {props.onAlign('align-right')}} className='no-indicator'> + + + {props.onAlign('align-top')}} className='no-indicator'> + + + {props.onAlign('align-middle')}} className='no-indicator'> + + + {props.onAlign('align-bottom')}} className='no-indicator'> + + + + + {props.onAlign('distrib-hor')}} className='no-indicator'> + + + {props.onAlign('distrib-vert')}} className='no-indicator'> + + + + + ) +}; + +const PageReplace = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onReplaceByFile()}}> + + + + + + + + ) +}; + +const PageLinkSettings = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const [stateValue, setValue] = useState(''); + + const onReplace = () => { + if (stateValue.trim().length > 0) { + if ((/((^https?)|(^ftp)):\/\/.+/i.test(stateValue))) { + props.onReplaceByUrl(stateValue.trim()); + } else { + f7.dialog.alert(_t.textNotUrl, _t.notcriticalErrorTitle); + } + } else { + f7.dialog.alert(_t.textEmptyImgUrl, _t.notcriticalErrorTitle); + } + }; + return ( + + + {_t.textAddress} + + {setValue(event.target.value)}} + > + + + + {onReplace()}}> + + + ) +}; + +const EditImageContainer = inject("storeFocusObjects")(observer(EditImage)); +const PageReplaceContainer = inject("storeFocusObjects")(observer(PageReplace)); +const PageReorderContainer = inject("storeFocusObjects")(observer(PageReorder)); +const PageAlignContainer = inject("storeFocusObjects")(observer(PageAlign)); +const PageLinkSettingsContainer = inject("storeFocusObjects")(observer(PageLinkSettings)); + +export { + EditImageContainer as EditImage, + PageReplaceContainer as PageImageReplace, + PageReorderContainer as PageImageReorder, + PageAlignContainer as PageImageAlign, + PageLinkSettingsContainer as PageLinkSettings +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/EditLink.jsx b/apps/presentationeditor/mobile/src/view/edit/EditLink.jsx new file mode 100644 index 000000000..b6d154e97 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/EditLink.jsx @@ -0,0 +1,183 @@ +import React, {useState, useEffect} from 'react'; +import {observer, inject} from "mobx-react"; +import {List, ListItem, Page, Navbar, Icon, ListButton, ListInput, Segmented, Button} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from "../../../../../common/mobile/utils/device"; + +const PageTypeLink = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const [typeLink, setTypeLink] = useState(props.curType); + + return ( + + + + {setTypeLink(1); props.changeType(1);}}> + {setTypeLink(0); props.changeType(0);}}> + + + ) +}; + +const PageLinkTo = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const slidesCount = props.slidesCount; + const [stateTypeTo, setTypeTo] = useState(props.curTo); + + const changeTypeTo = (type) => { + setTypeTo(type); + props.changeTo(type); + }; + + const [stateNumberTo, setNumberTo] = useState(props.numberTo); + + const changeNumber = (curNumber, isDecrement) => { + setTypeTo(4); + let value; + + if (isDecrement) { + value = Math.max(0, --curNumber); + } else { + value = Math.min(slidesCount - 1, ++curNumber); + } + + setNumberTo(value); + props.changeTo(4, value); + }; + + return ( + + + + {changeTypeTo(0)}}> + {changeTypeTo(1)}}> + {changeTypeTo(2)}}> + {changeTypeTo(3)}}> + + {!isAndroid &&
            {stateNumberTo + 1}
            } +
            + + + {isAndroid && } + + +
            +
            +
            +
            + ) +}; + +const PageLink = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const url = props.url; + const tooltip = props.tooltip; + const display = props.display; + const slideNum = props.slideNum; + const slideLink = props.slideLink; + const valueTypeLink = props.typeLink; + + const typesDisplayTo = { + 0: `${_t.textNextSlide}`, + 1: `${_t.textPreviousSlide}`, + 2: `${_t.textFirstSlide}`, + 3: `${_t.textLastSlide}`, + 4: `${_t.textSlide} ${slideNum + 1}` + }; + + const [typeLink, setTypeLink] = useState(valueTypeLink); + const textType = typeLink === 1 ? _t.textExternalLink : _t.textSlideInThisPresentation; + + const changeType = (newType) => { + setTypeLink(newType); + }; + + const [link, setLink] = useState(typeLink !== 0 ? url : ''); + const [linkTo, setLinkTo] = useState(slideLink); + const [displayTo, setDisplayTo] = useState(typesDisplayTo[slideLink]); + const [numberTo, setNumberTo] = useState(slideNum); + + const changeTo = (type, number) => { + setLinkTo(type); + switch (type) { + case 0 : setDisplayTo(_t.textNextSlide); break; + case 1 : setDisplayTo(_t.textPreviousSlide); break; + case 2 : setDisplayTo(_t.textFirstSlide); break; + case 3 : setDisplayTo(_t.textLastSlide); break; + case 4 : setDisplayTo(`${_t.textSlide} ${number + 1}`); setNumberTo(number); break; + } + }; + + const [screenTip, setScreenTip] = useState(tooltip); + const displayDisabled = display !== false && display === null; + const [stateDisplay, setDisplay] = useState(display !== false ? ((display !== null) ? display : _t.textDefault) : ""); + + return ( + + + + + {typeLink !== 0 ? + {setLink(event.target.value)}} + /> : + + } + {setDisplay(event.target.value)}} + /> + {setScreenTip(event.target.value)}} + /> + + + { + props.onEditLink(typeLink, (typeLink === 1 ? + {url: link, display: stateDisplay, tip: screenTip, displayDisabled: displayDisabled } : + {linkTo: linkTo, numberTo: numberTo, display: stateDisplay, tip: screenTip, displayDisabled: displayDisabled})); + }} + /> + { + props.onRemoveLink() + }} + /> + + + ) +}; + +export {PageLink as EditLink, + PageLinkTo, + PageTypeLink} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/EditShape.jsx b/apps/presentationeditor/mobile/src/view/edit/EditShape.jsx new file mode 100644 index 000000000..a74448fc4 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/EditShape.jsx @@ -0,0 +1,411 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {f7, Page, Navbar, List, ListItem, Row, BlockTitle, Link, Toggle, Icon, View, NavRight, ListItemCell, Range, Button, Segmented, Tab, Tabs} from 'framework7-react'; +import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +const EditShape = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const canFill = props.storeFocusObjects.shapeObject.get_CanFill(); + + return ( + + + {canFill ? + + : + + } + + + + + + {_t.textRemoveShape} + + + ) +}; + +const PaletteFill = inject("storeFocusObjects", "storeShapeSettings", "storePalette")(observer(props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + const shapeObject = props.storeFocusObjects.shapeObject; + const curFillColor = storeShapeSettings.fillColor ? storeShapeSettings.fillColor : storeShapeSettings.getFillColor(shapeObject); + const customColors = props.storePalette.customColors; + + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onFillColor(newColor); + storeShapeSettings.setFillColor(newColor); + } else { + props.onFillColor(color); + storeShapeSettings.setFillColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-shape-custom-fill-color/', {props: {onFillColor: props.onFillColor}}); + } + }; + + return ( + + + + + + + ) +})); + +const PageStyle = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + const shapeObject = props.storeFocusObjects.shapeObject; + const stroke = shapeObject.get_stroke(); + + // Init border size + + const borderSizeTransform = storeShapeSettings.borderSizeTransform(); + const borderSize = stroke.get_width() * 72.0 / 25.4; + const borderType = stroke.get_type(); + const displayBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + // Init border color + + const borderColor = !storeShapeSettings.borderColorView ? storeShapeSettings.initBorderColorView(shapeObject) : storeShapeSettings.borderColorView; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + // Init opacity + + const transparent = shapeObject.get_fill().asc_getTransparent(); + const opacity = transparent !== null && transparent !== undefined ? transparent / 2.55 : 100; + const [stateOpacity, setOpacity] = useState(Math.round(opacity)); + + return ( + + +
            + {_t.textFill} + {_t.textBorder} + {_t.textEffects} +
            +
            + + + + + + + +
            {_t.textSize}
            +
            + {setBorderSize(value); setTextBorderSize(borderSizeTransform.sizeByIndex(value));}} + onRangeChanged={(value) => {props.onBorderSize(borderSizeTransform.sizeByIndex(value))}} + > +
            +
            + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
            +
            + + + +
            +
            + + + +
            {_t.textOpacity}
            +
            + {setOpacity(value)}} + onRangeChanged={(value) => {props.onOpacity(value)}} + > +
            +
            + {stateOpacity + ' %'} +
            +
            +
            +
            +
            +
            + ) +}; + +const PageCustomFillColor = props => { + const { t } = useTranslation(); + const _t = t('Edit', {returnObjects: true}); + let fillColor = props.storeShapeSettings.fillColor; + + if (typeof fillColor === 'object') { + fillColor = fillColor.color; + } + + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onFillColor(color); + props.storeShapeSettings.setFillColor(color); + props.f7router.back(); + }; + + return( + + + + + ) +}; + +const PageStyleNoFill = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + const shapeObject = props.storeFocusObjects.shapeObject; + const stroke = shapeObject.get_stroke(); + + // Init border size + + const borderSizeTransform = storeShapeSettings.borderSizeTransform(); + const borderSize = stroke.get_width() * 72.0 / 25.4; + const borderType = stroke.get_type(); + const displayBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = (borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + // Init border color + + const borderColor = !storeShapeSettings.borderColorView ? storeShapeSettings.initBorderColorView(shapeObject) : storeShapeSettings.borderColorView; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + return ( + + + + +
            {_t.textSize}
            +
            + {setBorderSize(value); setTextBorderSize(borderSizeTransform.sizeByIndex(value));}} + onRangeChanged={(value) => {props.onBorderSize(borderSizeTransform.sizeByIndex(value))}} + > +
            +
            + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
            +
            + + + +
            +
            + ) +}; + +const PageReplace = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeShapeSettings = props.storeShapeSettings; + let shapes = storeShapeSettings.getStyleGroups(); + shapes.splice(0, 1); // Remove line shapes + + return ( + + + {shapes.map((row, indexRow) => { + return ( +
              + {row.map((shape, index) => { + return ( +
            • {props.onReplace(shape.type)}}> +
              +
              +
            • + ) + })} +
            + ) + })} +
            + ) +}; + +const PageReorder = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onReorder('all-up')}} className='no-indicator'> + + + {props.onReorder('all-down')}} className='no-indicator'> + + + {props.onReorder('move-up')}} className='no-indicator'> + + + {props.onReorder('move-down')}} className='no-indicator'> + + + + + ) +}; + +const PageAlign = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onAlign('align-left')}} className='no-indicator'> + + + {props.onAlign('align-center')}} className='no-indicator'> + + + {props.onAlign('align-right')}} className='no-indicator'> + + + {props.onAlign('align-top')}} className='no-indicator'> + + + {props.onAlign('align-middle')}} className='no-indicator'> + + + {props.onAlign('align-bottom')}} className='no-indicator'> + + + + + {props.onAlign('distrib-hor')}} className='no-indicator'> + + + {props.onAlign('distrib-vert')}} className='no-indicator'> + + + + + ) +} + +const PageBorderColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const borderColor = props.storeShapeSettings.borderColorView; + const customColors = props.storePalette.customColors; + + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onBorderColor(newColor); + props.storeShapeSettings.setBorderColor(newColor); + } else { + props.onBorderColor(color); + props.storeShapeSettings.setBorderColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-shape-custom-border-color/', {props: {onBorderColor: props.onBorderColor}}); + } + }; + return ( + + + + + + + + ) +}; + +const PageCustomBorderColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + let borderColor = props.storeShapeSettings.borderColorView; + if (typeof borderColor === 'object') { + borderColor = borderColor.color; + } + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onBorderColor(color); + props.storeShapeSettings.setBorderColor(color); + props.f7router.back(); + }; + return ( + + + + + ) +}; + +const EditShapeContainer = inject("storeShapeSettings", "storeFocusObjects")(observer(EditShape)); +const PageShapeStyle = inject("storeFocusObjects", "storeShapeSettings")(observer(PageStyle)); +const PageShapeStyleNoFill = inject("storeFocusObjects", "storeShapeSettings")(observer(PageStyleNoFill)); +const PageShapeCustomFillColor = inject("storeFocusObjects", "storeShapeSettings", "storePalette")(observer(PageCustomFillColor)); +const PageReplaceContainer = inject("storeShapeSettings","storeFocusObjects")(observer(PageReplace)); +const PageReorderContainer = inject("storeFocusObjects")(observer(PageReorder)); +const PageAlignContainer = inject("storeFocusObjects")(observer(PageAlign)); +const PageShapeBorderColor = inject("storeShapeSettings", "storePalette")(observer(PageBorderColor)); +const PageShapeCustomBorderColor = inject("storeShapeSettings", "storePalette")(observer(PageCustomBorderColor)); + +export { + EditShapeContainer as EditShape, + PageShapeStyle, + PageShapeStyleNoFill, + PageReplaceContainer, + PageReorderContainer, + PageAlignContainer, + PageShapeBorderColor, + PageShapeCustomBorderColor, + PageShapeCustomFillColor +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/EditSlide.jsx b/apps/presentationeditor/mobile/src/view/edit/EditSlide.jsx new file mode 100644 index 000000000..07685bd1e --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/EditSlide.jsx @@ -0,0 +1,465 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {f7, Page, Navbar, List, ListItem, Row, BlockTitle, Link, Toggle, Icon, View, NavRight, ListItemCell, Range, Button, Segmented} from 'framework7-react'; +import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; + +const EditSlide = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + + + + + + {_t.textDuplicateSlide} + {_t.textDeleteSlide} + + + ) +}; + +const PageTheme = props => { + const { t } = useTranslation(); + const _t = t("View.Edit", { returnObjects: true }); + const storeSlideSettings = props.storeSlideSettings; + const arrayThemes = storeSlideSettings.arrayThemes; + const slideThemeIndex = storeSlideSettings.slideThemeIndex; + const defaultThemes = arrayThemes[0]; + const docThemes = arrayThemes[1]; + + console.log(arrayThemes); + + // console.log(slideThemeIndex); + // console.log(arrayThemes); + + return ( + + + + + + + {arrayThemes.length ? ( + + {defaultThemes.map((elem, index) => { + return ( + { + storeSlideSettings.changeSlideThemeIndex(elem.Index); + props.onThemeClick(elem.Index); + }}> + + ); + })} + {docThemes.map((elem, index) => { + return ( + { + storeSlideSettings.changeSlideThemeIndex(elem.Index); + props.onThemeClick(elem.Index); + }}> + + ); + })} + + ) : null} + + ); +}; + +const PageLayout = props => { + const { t } = useTranslation(); + const _t = t("View.Edit", { returnObjects: true }); + const storeFocusObjects = props.storeFocusObjects; + const storeSlideSettings = props.storeSlideSettings; + storeSlideSettings.changeSlideLayoutIndex(storeFocusObjects.slideObject.get_LayoutIndex()); + const arrayLayouts = storeSlideSettings.arrayLayouts; + const slideLayoutIndex = storeSlideSettings.slideLayoutIndex; + + // console.log(slideLayoutIndex); + // console.log(arrayLayouts); + + return ( + + + + + + + {arrayLayouts.length ? ( + + {arrayLayouts.map((elem, index) => { + return ( + { + storeSlideSettings.changeSlideLayoutIndex(index); + props.onLayoutClick(index); + }}> + + + ) + })} + + ) : null} + + ); +}; + +const PageTransition = props => { + const { t } = useTranslation(); + const _t = t("View.Edit", { returnObjects: true }); + const isAndroid = Device.android; + const _arrEffect = [ + {displayValue: _t.textNone, value: Asc.c_oAscSlideTransitionTypes.None}, + {displayValue: _t.textFade, value: Asc.c_oAscSlideTransitionTypes.Fade}, + {displayValue: _t.textPush, value: Asc.c_oAscSlideTransitionTypes.Push}, + {displayValue: _t.textWipe, value: Asc.c_oAscSlideTransitionTypes.Wipe}, + {displayValue: _t.textSplit, value: Asc.c_oAscSlideTransitionTypes.Split}, + {displayValue: _t.textUnCover, value: Asc.c_oAscSlideTransitionTypes.UnCover}, + {displayValue: _t.textCover, value: Asc.c_oAscSlideTransitionTypes.Cover}, + {displayValue: _t.textClock, value: Asc.c_oAscSlideTransitionTypes.Clock}, + {displayValue: _t.textZoom, value: Asc.c_oAscSlideTransitionTypes.Zoom} + ]; + const _arrEffectType = [ + {displayValue: _t.textSmoothly, value: Asc.c_oAscSlideTransitionParams.Fade_Smoothly}, + {displayValue: _t.textBlack, value: Asc.c_oAscSlideTransitionParams.Fade_Through_Black}, + {displayValue: _t.textLeft, value: Asc.c_oAscSlideTransitionParams.Param_Left}, + {displayValue: _t.textTop, value: Asc.c_oAscSlideTransitionParams.Param_Top}, + {displayValue: _t.textRight, value: Asc.c_oAscSlideTransitionParams.Param_Right}, + {displayValue: _t.textBottom, value: Asc.c_oAscSlideTransitionParams.Param_Bottom}, + {displayValue: _t.textTopLeft, value: Asc.c_oAscSlideTransitionParams.Param_TopLeft}, + {displayValue: _t.textTopRight, value: Asc.c_oAscSlideTransitionParams.Param_TopRight}, + {displayValue: _t.textBottomLeft, value: Asc.c_oAscSlideTransitionParams.Param_BottomLeft}, + {displayValue: _t.textBottomRight, value: Asc.c_oAscSlideTransitionParams.Param_BottomRight}, + {displayValue: _t.textVerticalIn, value: Asc.c_oAscSlideTransitionParams.Split_VerticalIn}, + {displayValue: _t.textVerticalOut, value: Asc.c_oAscSlideTransitionParams.Split_VerticalOut}, + {displayValue: _t.textHorizontalIn, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalIn}, + {displayValue: _t.textHorizontalOut, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalOut}, + {displayValue: _t.textClockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Clockwise}, + {displayValue: _t.textCounterclockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Counterclockwise}, + {displayValue: _t.textWedge, value: Asc.c_oAscSlideTransitionParams.Clock_Wedge}, + {displayValue: _t.textZoomIn, value: Asc.c_oAscSlideTransitionParams.Zoom_In}, + {displayValue: _t.textZoomOut, value: Asc.c_oAscSlideTransitionParams.Zoom_Out}, + {displayValue: _t.textZoomRotate, value: Asc.c_oAscSlideTransitionParams.Zoom_AndRotate} + ]; + + let _arrCurrentEffectTypes = []; + + const fillEffectTypes = type => { + _arrCurrentEffectTypes = []; + switch (type) { + case Asc.c_oAscSlideTransitionTypes.Fade: + _arrCurrentEffectTypes.push(_arrEffectType[0], _arrEffectType[1]); + break; + case Asc.c_oAscSlideTransitionTypes.Push: + _arrCurrentEffectTypes = _arrEffectType.slice(2, 6); + break; + case Asc.c_oAscSlideTransitionTypes.Wipe: + _arrCurrentEffectTypes = _arrEffectType.slice(2, 10); + break; + case Asc.c_oAscSlideTransitionTypes.Split: + _arrCurrentEffectTypes = _arrEffectType.slice(10, 14); + break; + case Asc.c_oAscSlideTransitionTypes.UnCover: + _arrCurrentEffectTypes = _arrEffectType.slice(2, 10); + break; + case Asc.c_oAscSlideTransitionTypes.Cover: + _arrCurrentEffectTypes = _arrEffectType.slice(2, 10); + break; + case Asc.c_oAscSlideTransitionTypes.Clock: + _arrCurrentEffectTypes = _arrEffectType.slice(14, 17); + break; + case Asc.c_oAscSlideTransitionTypes.Zoom: + _arrCurrentEffectTypes = _arrEffectType.slice(17); + break; + } + return (_arrCurrentEffectTypes.length > 0) ? _arrCurrentEffectTypes[0].value : -1; + }; + + const getEffectName = effect => { + for (var i=0; i < _arrEffect.length; i++) { + if (_arrEffect[i].value == effect) return _arrEffect[i].displayValue; + } + return ''; + }; + + const getEffectTypeName = type => { + for (var i=0; i < _arrCurrentEffectTypes.length; i++) { + if (_arrCurrentEffectTypes[i].value == type) return _arrCurrentEffectTypes[i].displayValue; + } + return ''; + }; + + const storeFocusObjects = props.storeFocusObjects; + const transitionObj = storeFocusObjects.slideObject.get_transition(); + + const [_effect, setEffect] = useState(transitionObj.get_TransitionType()); + const valueEffectTypes = fillEffectTypes(_effect); + const [type, setType] = useState(valueEffectTypes); + + let _effectDelay = transitionObj.get_SlideAdvanceDuration(); + + const [stateRange, changeRange] = useState((_effectDelay !== null && _effectDelay !== undefined) ? parseInt(_effectDelay / 1000.) : 0); + const isDelay = transitionObj.get_SlideAdvanceAfter(); + const isStartOnClick = transitionObj.get_SlideAdvanceOnMouseClick(); + const nameEffect = getEffectName(_effect); + + const _effectType = transitionObj.get_TransitionOption(); + const nameEffectType = getEffectTypeName(_effectType); + const _effectDuration = transitionObj.get_TransitionDuration(); + + return ( + + + + + + + + + + + + {!isAndroid &&
            + +
            } +
            + + + {isAndroid && } + + +
            +
            +
            + + + {_t.textStartOnClick} + {props.onStartClick(!isStartOnClick)}} /> + + + {_t.textDelay} + {props.onDelayCheck(!isDelay, _effectDelay)}} /> + + +
            + {changeRange(value)}} + onRangeChanged={(value) => {props.onDelay(value)}} + > +
            +
            + {stateRange + ' ' + _t.textSec} +
            +
            +
            + + {_t.textApplyAll} + +
            + ); +}; + + +const PageEffect = props => { + const { t } = useTranslation(); + const _t = t("View.Edit", { returnObjects: true }); + const _effect = props._effect; + const [currentEffect, setEffect] = useState(_effect); + const _arrEffect = props._arrEffect; + + return ( + + + {_arrEffect.length ? ( + + {_arrEffect.map((elem, index) => { + return ( + { + setEffect(elem.value); + props.setEffect(elem.value); + let valueEffectTypes = props.fillEffectTypes(elem.value); + props.setType(valueEffectTypes); + props.onEffectClick(elem.value, valueEffectTypes); + }}> + ) + })} + + ) : null} + + ); +}; + +const PageType= props => { + const { t } = useTranslation(); + const _t = t("View.Edit", { returnObjects: true }); + const _arrCurrentEffectTypes = props._arrCurrentEffectTypes; + const _effect = props._effect; + const type = props.type; + const [currentType, setType] = useState(type); + + return ( + + + + + + + {_arrCurrentEffectTypes.length ? ( + + {_arrCurrentEffectTypes.map((elem, index) => { + return ( + { + setType(elem.value); + props.setType(elem.value); + props.onEffectTypeClick(elem.value, _effect); + }}> + + ) + })} + + ) : null} + + ); +}; + +const PageFillColor = props => { + const { t } = useTranslation(); + const _t = t("View.Edit", { returnObjects: true }); + const storeFocusObjects = props.storeFocusObjects; + const slideObject = storeFocusObjects.slideObject; + const storePalette = props.storePalette; + const storeSlideSettings = props.storeSlideSettings; + const customColors = storePalette.customColors; + const fillColor = storeSlideSettings.fillColor ? storeSlideSettings.fillColor : storeSlideSettings.getFillColor(slideObject); + + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !== undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onFillColor(newColor); + storeSlideSettings.changeFillColor(newColor); + } else { + props.onFillColor(color); + storeSlideSettings.changeFillColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-custom-color/', {props: {onFillColor: props.onFillColor}}); + } + }; + + return ( + + + + + + + + + + + + ); +}; + +const PageCustomFillColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + let fillColor = props.storeSlideSettings.fillColor; + + if (typeof fillColor === 'object') { + fillColor = fillColor.color; + } + + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onFillColor(color); + props.storeSlideSettings.changeFillColor(color); + props.f7router.back(); + }; + + return ( + + + + + ) +}; + +const Theme = inject("storeSlideSettings")(observer(PageTheme)); +const Layout = inject("storeSlideSettings", "storeFocusObjects")(observer(PageLayout)); +const Transition = inject("storeSlideSettings", "storeFocusObjects")(observer(PageTransition)); +const Type = inject("storeSlideSettings", "storeFocusObjects")(observer(PageType)); +const Effect = inject("storeSlideSettings", "storeFocusObjects")(observer(PageEffect)); +const StyleFillColor = inject("storeSlideSettings", "storePalette", "storeFocusObjects")(observer(PageFillColor)); +const CustomFillColor = inject("storeSlideSettings", "storePalette", "storeFocusObjects")(observer(PageCustomFillColor)); + +export { + EditSlide, + Theme, + Layout, + Transition, + Type, + Effect, + StyleFillColor, + CustomFillColor +}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/EditTable.jsx b/apps/presentationeditor/mobile/src/view/edit/EditTable.jsx new file mode 100644 index 000000000..c177a0081 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/EditTable.jsx @@ -0,0 +1,477 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {Page, Navbar, List, ListItem, ListButton, Row, BlockTitle, Range, Toggle, Icon, Link, Tabs, Tab} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {CustomColorPicker, ThemeColorPalette} from "../../../../../common/mobile/lib/component/ThemeColorPalette.jsx"; + +// Style + +const StyleTemplates = inject("storeFocusObjects")(observer(({templates, onStyleClick, storeFocusObjects}) => { + const styleId = storeFocusObjects.tableObject.get_TableStyle(); + const [stateId, setId] = useState(styleId); + + const widthContainer = document.querySelector(".page-content").clientWidth; + const columns = parseInt((widthContainer - 47) / 70); // magic + const styles = []; + let row = -1; + templates.forEach((style, index) => { + if (0 == index % columns) { + styles.push([]); + row++ + } + styles[row].push(style); + }); + + return ( +
            + {styles.map((row, rowIndex) => { + return ( +
            + {row.map((style, index)=>{ + return( +
            {onStyleClick(style.templateId); setId(style.templateId)}}> + +
            + ) + })} +
            + ) + })} +
            + ) +})); + +const PageStyleOptions = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const tableLook = props.storeFocusObjects.tableObject.get_TableLook(); + const isFirstRow = tableLook.get_FirstRow(); + const isLastRow = tableLook.get_LastRow(); + const isBandHor = tableLook.get_BandHor(); + const isFirstCol = tableLook.get_FirstCol(); + const isLastCol = tableLook.get_LastCol(); + const isBandVer = tableLook.get_BandVer(); + + return ( + + + + + {props.onCheckTemplateChange(tableLook, 0, !isFirstRow)}}/> + + + {props.onCheckTemplateChange(tableLook, 1, !isLastRow)}}/> + + + {props.onCheckTemplateChange(tableLook, 2, !isBandHor)}}/> + + + + + {props.onCheckTemplateChange(tableLook, 3, !isFirstCol)}}/> + + + {props.onCheckTemplateChange(tableLook, 4, !isLastCol)}}/> + + + {props.onCheckTemplateChange(tableLook, 5, !isBandVer)}}/> + + + + ) +}; + +const PageCustomFillColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const tableObject = props.storeFocusObjects.tableObject; + let fillColor = props.storeTableSettings.getFillColor(tableObject); + + if (typeof fillColor === 'object') { + fillColor = fillColor.color; + } + + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onFillColor(color); + props.f7router.back(); + }; + + return( + + + + + ) +}; + +const TabFillColor = inject("storeFocusObjects", "storeTableSettings", "storePalette")(observer(props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const tableObject = props.storeFocusObjects.tableObject; + const fillColor = props.storeTableSettings.getFillColor(tableObject); + const customColors = props.storePalette.customColors; + + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !== undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + props.onFillColor(newColor); + } else { + props.onFillColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-table-custom-fill-color/', {props: {onFillColor: props.onFillColor}}); + } + }; + + return ( + + + + + + + ) +})); + +const PageCustomBorderColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + let borderColor = props.storeTableSettings.cellBorderColor; + + if (typeof borderColor === 'object') { + borderColor = borderColor.color; + } + + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.storeTableSettings.updateCellBorderColor(color); + props.f7router.back(); + }; + + return ( + + + + + ) +}; + +const PageBorderColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeTableSettings = props.storeTableSettings; + const borderColor = storeTableSettings.cellBorderColor; + const customColors = props.storePalette.customColors; + + const changeColor = (color, effectId, effectValue) => { + if (color !== 'empty') { + if (effectId !==undefined ) { + const newColor = {color: color, effectId: effectId, effectValue: effectValue}; + storeTableSettings.updateCellBorderColor(newColor); + } else { + storeTableSettings.updateCellBorderColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-table-custom-border-color/'); + } + }; + + return ( + + + + + + + + ) +}; + +const TabBorder = inject("storeFocusObjects", "storeTableSettings")(observer(props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeTableSettings = props.storeTableSettings; + const borderSizeTransform = storeTableSettings.borderSizeTransform(); + const borderSize = storeTableSettings.cellBorderWidth; + const displayBorderSize = borderSizeTransform.indexSizeByValue(borderSize); + const displayTextBorderSize = borderSizeTransform.sizeByValue(borderSize); + const [stateBorderSize, setBorderSize] = useState(displayBorderSize); + const [stateTextBorderSize, setTextBorderSize] = useState(displayTextBorderSize); + + const onBorderType = (type) => { + storeTableSettings.updateBordersStyle(type); + props.onBorderTypeClick(storeTableSettings.cellBorders); + }; + + const borderColor = storeTableSettings.cellBorderColor; + const displayBorderColor = borderColor !== 'transparent' ? `#${(typeof borderColor === "object" ? borderColor.color : borderColor)}` : borderColor; + + return ( + + +
            {_t.textSize}
            +
            + { + setBorderSize(value); + setTextBorderSize(borderSizeTransform.sizeByIndex(value)); + }} + onRangeChanged={(value) => {storeTableSettings.updateCellBorderWidth(borderSizeTransform.sizeByIndex(value));}} + > +
            +
            + {stateTextBorderSize + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)} +
            +
            + + + + + + {onBorderType("lrtbcm")}}> + + + {onBorderType("")}}> + + + {onBorderType("cm")}}> + + + {onBorderType("lrtb")}}> + + + {onBorderType("l")}}> + + + + + + + {onBorderType("c")}}> + + + {onBorderType("r")}}> + + + {onBorderType("t")}}> + + + {onBorderType("m")}}> + + + {onBorderType("b")}}> + + + + +
            + ) +})); + +const PageStyle = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeTableSettings = props.storeTableSettings; + const templates = storeTableSettings.styles; + + return ( + + +
            + {_t.textStyle} + {_t.textFill} + {_t.textBorder} +
            +
            + + + + + + + + + + + + + + + + + + +
            + ) +}; + +const PageReorder = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onReorder('all-up')}} className='no-indicator'> + + + {props.onReorder('all-down')}} className='no-indicator'> + + + {props.onReorder('move-up')}} className='no-indicator'> + + + {props.onReorder('move-down')}} className='no-indicator'> + + + + + ) +}; + +const PageAlign = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + + return ( + + + + {props.onAlign('align-left')}} className='no-indicator'> + + + {props.onAlign('align-center')}} className='no-indicator'> + + + {props.onAlign('align-right')}} className='no-indicator'> + + + {props.onAlign('align-top')}} className='no-indicator'> + + + {props.onAlign('align-middle')}} className='no-indicator'> + + + {props.onAlign('align-bottom')}} className='no-indicator'> + + + + + {props.onAlign('distrib-hor')}} className='no-indicator'> + + + {props.onAlign('distrib-vert')}} className='no-indicator'> + + + + + ) +}; + +const EditTable = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const storeFocusObjects = props.storeFocusObjects; + const tableObject = storeFocusObjects.tableObject; + const storeTableSettings = props.storeTableSettings; + const distance = Common.Utils.Metric.fnRecalcFromMM(storeTableSettings.getCellMargins(tableObject)); + const [stateDistance, setDistance] = useState(distance); + + return ( + + + + + {props.onAddColumnLeft()}}> + + + {props.onAddColumnRight()}}> + + + {props.onAddRowAbove()}}> + + + {props.onAddRowBelow()}}> + + + + + + + {props.onRemoveColumn()}}> + + + {props.onRemoveRow()}}> + + + + + {props.onRemoveTable()}} className='button-red button-fill button-raised'> + + + + + + {_t.textCellMargins} + + +
            + {setDistance(value)}} + onRangeChanged={(value) => {props.onOptionMargin(value)}} + > +
            +
            + {stateDistance + ' ' + metricText} +
            +
            +
            +
            +
            + ) +}; + +const EditTableContainer = inject("storeFocusObjects", "storeTableSettings")(observer(EditTable)); +const PageTableStyle = inject("storeFocusObjects","storeTableSettings")(observer(PageStyle)); +const PageTableStyleOptions = inject("storeFocusObjects","storeTableSettings")(observer(PageStyleOptions)); +const PageTableCustomFillColor = inject("storeFocusObjects","storeTableSettings", "storePalette")(observer(PageCustomFillColor)); +const PageTableBorderColor = inject("storeFocusObjects","storeTableSettings", "storePalette")(observer(PageBorderColor)); +const PageTableCustomBorderColor = inject("storeFocusObjects","storeTableSettings", "storePalette")(observer(PageCustomBorderColor)); +const PageTableReorder = inject("storeFocusObjects")(observer(PageReorder)); +const PageTableAlign = inject("storeFocusObjects")(observer(PageAlign)); + +export { + EditTableContainer as EditTable, + PageTableStyle, + PageTableStyleOptions, + PageTableCustomFillColor, + PageTableBorderColor, + PageTableCustomBorderColor, + PageTableReorder, + PageTableAlign +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/edit/EditText.jsx b/apps/presentationeditor/mobile/src/view/edit/EditText.jsx new file mode 100644 index 000000000..e434fabd1 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/edit/EditText.jsx @@ -0,0 +1,470 @@ +import React, {Fragment, useState} from 'react'; +import {observer, inject} from "mobx-react"; +import {f7, List, ListItem, Icon, Row, Button, Page, Navbar, Segmented, BlockTitle} from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx'; + +const EditText = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const metricText = Common.Utils.Metric.getCurrentMetricName(); + const storeTextSettings = props.storeTextSettings; + const storeFocusObjects = props.storeFocusObjects; + const fontName = storeTextSettings.fontName || _t.textFonts; + const fontSize = storeTextSettings.fontSize; + const fontColor = storeTextSettings.textColor; + const displaySize = typeof fontSize === 'undefined' ? _t.textAuto : fontSize + ' ' + _t.textPt; + const isBold = storeTextSettings.isBold; + const isItalic = storeTextSettings.isItalic; + const isUnderline = storeTextSettings.isUnderline; + const isStrikethrough = storeTextSettings.isStrikethrough; + const paragraphAlign = storeTextSettings.paragraphAlign; + const paragraphValign = storeTextSettings.paragraphValign; + const canIncreaseIndent = storeTextSettings.canIncreaseIndent; + const canDecreaseIndent = storeTextSettings.canDecreaseIndent; + const paragraphObj = storeFocusObjects.paragraphObject; + let spaceBefore; + let spaceAfter; + + if(paragraphObj) { + spaceBefore = paragraphObj.get_Spacing().get_Before() < 0 ? paragraphObj.get_Spacing().get_Before() : Common.Utils.Metric.fnRecalcFromMM(paragraphObj.get_Spacing().get_Before()); + spaceAfter = paragraphObj.get_Spacing().get_After() < 0 ? paragraphObj.get_Spacing().get_After() : Common.Utils.Metric.fnRecalcFromMM(paragraphObj.get_Spacing().get_After()); + } + + const displayBefore = spaceBefore && spaceBefore < 0 ? _t.textAuto : parseFloat(spaceBefore.toFixed(2)) + ' ' + metricText; + const displayAfter = spaceAfter && spaceAfter < 0 ? _t.textAuto : parseFloat(spaceAfter.toFixed(2)) + ' ' + metricText; + + const fontColorPreview = fontColor !== 'auto' ? + : + ; + + return ( + + + + + + { props.toggleBold(!isBold)}}>B + {props.toggleItalic(!isItalic)}}>I + {props.toggleUnderline(!isUnderline)}} style={{textDecoration: "underline"}}>U + {props.toggleStrikethrough(!isStrikethrough)}} style={{textDecoration: "line-through"}}>S + + + + {!isAndroid ? + {fontColorPreview} : + fontColorPreview + } + + + {!isAndroid && } + + + {paragraphObj ? ( + + + + + {props.onParagraphAlign('left')}}> + + + {props.onParagraphAlign('center')}}> + + + {props.onParagraphAlign('right')}}> + + + {props.onParagraphAlign('just')}}> + + + + + + + {props.onParagraphValign('top')}}> + + + {props.onParagraphValign('center')}}> + + + {props.onParagraphValign('bottom')}}> + + + + + + + {props.onParagraphMove('left')}}> + + + {props.onParagraphMove('right')}}> + + + + + + {!isAndroid && } + + + {!isAndroid && } + + + {!isAndroid && } + + + {_t.textDistanceFromText} + + + {!isAndroid &&
            {displayBefore}
            } +
            + + + {isAndroid && } + + +
            +
            + + {!isAndroid &&
            {displayAfter}
            } +
            + + + {isAndroid && } + + +
            +
            +
            +
            + ) : null} +
            + ); +}; + +const PageFonts = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeTextSettings = props.storeTextSettings; + const size = storeTextSettings.fontSize; + const displaySize = typeof size === 'undefined' ? _t.textAuto : size + ' ' + _t.textPt; + const curFontName = storeTextSettings.fontName; + const fonts = storeTextSettings.fontsArray; + + const [vlFonts, setVlFonts] = useState({ + vlData: { + items: [], + } + }); + + const renderExternal = (vl, vlData) => { + setVlFonts((prevState) => { + let fonts = [...prevState.vlData.items]; + fonts.splice(vlData.fromIndex, vlData.toIndex, ...vlData.items); + return {vlData: { + items: fonts, + }}; + }); + }; + + return ( + + + + + {!isAndroid &&
            {displaySize}
            } +
            + + + {isAndroid && } + + +
            +
            +
            + {_t.textFonts} + +
              + {vlFonts.vlData.items.map((item, index) => ( + {props.changeFontFamily(item.name)}} + > + ))} +
            +
            +
            + ); +}; + +const PageFontColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const textColor = props.storeTextSettings.textColor; + const customColors = props.storePalette.customColors; + + const changeColor = (color, effectId) => { + if (color !== 'empty') { + if (effectId !== undefined ) { + props.onTextColor({color: color, effectId: effectId}); + } else { + props.onTextColor(color); + } + } else { + // open custom color menu + props.f7router.navigate('/edit-text-custom-font-color/', {props: {onTextColor: props.onTextColor}}); + } + }; + + return ( + + + + + + + + ); +}; + +const PageCustomFontColor = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const store = props.storeTextSettings; + let textColor = store.textColor; + + if (typeof textColor === 'object') { + textColor = textColor.color; + } + + const autoColor = textColor === 'auto' ? window.getComputedStyle(document.getElementById('font-color-auto')).backgroundColor : null; + + const onAddNewColor = (colors, color) => { + props.storePalette.changeCustomColors(colors); + props.onTextColor(color); + props.f7router.back(); + }; + return( + + + + + ) +}; + +const PageAdditionalFormatting = props => { + const isAndroid = Device.android; + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeTextSettings = props.storeTextSettings; + const storeFocusObjects = props.storeFocusObjects; + const paragraphObj = storeFocusObjects.paragraphObject; + const isSuperscript = storeTextSettings.isSuperscript; + const isSubscript = storeTextSettings.isSubscript; + let isStrikeout = false; + let isDStrikeout = false; + let isSmallCaps = false; + let isAllCaps = false; + let letterSpacing = 0; + + if(paragraphObj) { + isStrikeout = paragraphObj.get_Strikeout(); + isDStrikeout = paragraphObj.get_DStrikeout(); + isSmallCaps = paragraphObj.get_SmallCaps(); + isAllCaps = paragraphObj.get_AllCaps(); + letterSpacing = (paragraphObj.get_TextSpacing() === null || paragraphObj.get_TextSpacing() === undefined) ? paragraphObj.get_TextSpacing() : Common.Utils.Metric.fnRecalcFromMM(paragraphObj.get_TextSpacing()); + } + + return ( + + + + {props.onAdditionalStrikethrough('strikethrough', !isStrikeout)}}/> + {props.onAdditionalStrikethrough('dbStrikethrough', !isDStrikeout)}}/> + {props.onAdditionalScript('superscript', !isSuperscript)}}/> + {props.onAdditionalScript('subscript', !isSubscript)}}/> + {props.onAdditionalCaps('small', !isSmallCaps)}}/> + {props.onAdditionalCaps('all', !isAllCaps)}}/> + + + + {!isAndroid &&
            {letterSpacing + ' ' + Common.Utils.Metric.getCurrentMetricName()}
            } +
            + + + {isAndroid && } + + +
            +
            +
            +
            + ) +}; + +const PageBullets = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const bulletArrays = [ + [ + {type: -1, thumb: ''}, + {type: 1, thumb: 'bullet-01.png'}, + {type: 2, thumb: 'bullet-02.png'}, + {type: 3, thumb: 'bullet-03.png'} + ], + [ + {type: 4, thumb: 'bullet-04.png'}, + {type: 5, thumb: 'bullet-05.png'}, + {type: 6, thumb: 'bullet-06.png'}, + {type: 7, thumb: 'bullet-07.png'} + ] + ]; + const storeTextSettings = props.storeTextSettings; + const typeBullets = storeTextSettings.typeBullets; + + return ( + + + {bulletArrays.map((bullets, index) => ( +
              + {bullets.map((bullet) => ( +
            • {props.onBullet(bullet.type)}}> + {bullet.thumb.length < 1 ? +
              + +
              : +
              + } +
            • + ))} +
            + ))} +
            + ) +}; + +const PageNumbers = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const numberArrays = [ + [ + {type: -1, thumb: ''}, + {type: 4, thumb: 'number-01.png'}, + {type: 5, thumb: 'number-02.png'}, + {type: 6, thumb: 'number-03.png'} + ], + [ + {type: 1, thumb: 'number-04.png'}, + {type: 2, thumb: 'number-05.png'}, + {type: 3, thumb: 'number-06.png'}, + {type: 7, thumb: 'number-07.png'} + ] + ]; + + const storeTextSettings = props.storeTextSettings; + const typeNumbers = storeTextSettings.typeNumbers; + + return ( + + + {numberArrays.map((numbers, index) => ( +
              + {numbers.map((number) => ( +
            • {props.onNumber(number.type)}}> + {number.thumb.length < 1 ? +
              + +
              : +
              + } +
            • + ))} +
            + ))} +
            + ) +}; + +const PageLineSpacing = props => { + const { t } = useTranslation(); + const _t = t('View.Edit', {returnObjects: true}); + const storeTextSettings = props.storeTextSettings; + const lineSpacing = storeTextSettings.lineSpacing; + + return ( + + + + {props.onLineSpacing(1.0)}}> + {props.onLineSpacing(1.15)}}> + {props.onLineSpacing(1.5)}}> + {props.onLineSpacing(2.0)}}> + {props.onLineSpacing(2.5)}}> + {props.onLineSpacing(3.0)}}> + + + ) +}; + +const EditTextContainer = inject("storeTextSettings", "storeFocusObjects")(observer(EditText)); +const PageTextFonts = inject("storeTextSettings", "storeFocusObjects")(observer(PageFonts)); +const PageTextFontColor = inject("storeTextSettings", "storePalette")(observer(PageFontColor)); +const PageTextCustomFontColor = inject("storeTextSettings", "storePalette")(observer(PageCustomFontColor)); +const PageTextAddFormatting = inject("storeTextSettings", "storeFocusObjects")(observer(PageAdditionalFormatting)); +const PageTextBullets = inject("storeTextSettings")(observer(PageBullets)); +const PageTextNumbers = inject("storeTextSettings")(observer(PageNumbers)); +const PageTextLineSpacing = inject("storeTextSettings")(observer(PageLineSpacing)); + +export { + EditTextContainer as EditText, + PageTextFonts, + PageTextFontColor, + PageTextCustomFontColor, + PageTextAddFormatting, + PageTextBullets, + PageTextNumbers, + PageTextLineSpacing +}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/settings/ApplicationSettings.jsx b/apps/presentationeditor/mobile/src/view/settings/ApplicationSettings.jsx new file mode 100644 index 000000000..9fbb4f59f --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/settings/ApplicationSettings.jsx @@ -0,0 +1,90 @@ +import React, {Fragment} from "react"; +import { observer, inject } from "mobx-react"; +import { Page, Navbar, List, ListItem, BlockTitle, Toggle } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const PageApplicationSettings = props => { + const { t } = useTranslation(); + const _t = t("View.Settings", { returnObjects: true }); + const store = props.storeApplicationSettings; + const unitMeasurement = store.unitMeasurement; + const isSpellChecking = store.isSpellChecking; + + const changeMeasureSettings = value => { + store.changeUnitMeasurement(value); + props.setUnitMeasurement(value); + }; + + // set mode + // const appOptions = props.storeAppOptions; + // const _isEdit = appOptions.isEdit; + // const _isShowMacros = (!appOptions.isDisconnected && appOptions.customization) ? appOptions.customization.macros !== false : true; + + return ( + + + {/* {_isEdit && */} + + {_t.textUnitOfMeasurement} + + changeMeasureSettings(0)}> + changeMeasureSettings(1)}> + changeMeasureSettings(2)}> + + + + {_t.textSpellcheck} + { + store.changeSpellCheck(!isSpellChecking); + props.switchSpellCheck(!isSpellChecking); + }} + /> + + + + {/* } */} + {/* {_isShowMacros && */} + + + + {/* } */} + + ); +}; + +const PageMacrosSettings = props => { + const { t } = useTranslation(); + const _t = t("View.Settings", { returnObjects: true }); + const store = props.storeApplicationSettings; + const macrosMode = store.macrosMode; + + const changeMacros = value => { + store.changeMacrosSettings(value); + props.setMacrosSettings(value); + }; + + return ( + + + + changeMacros(2)}> + changeMacros(0)}> + changeMacros(1)}> + + + ); +}; + +const ApplicationSettings = inject("storeApplicationSettings")(observer(PageApplicationSettings)); +const MacrosSettings = inject("storeApplicationSettings")(observer(PageMacrosSettings)); + +export {ApplicationSettings, MacrosSettings}; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/settings/Download.jsx b/apps/presentationeditor/mobile/src/view/settings/Download.jsx new file mode 100644 index 000000000..d285d819e --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/settings/Download.jsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { Page, Navbar, List, ListItem, BlockTitle, Icon } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const Download = props => { + const { t } = useTranslation(); + const _t = t("View.Settings", { returnObjects: true }); + + return ( + + + {_t.textDownloadAs} + + props.onSaveFormat(Asc.c_oAscFileType.PPTX)}> + + + props.onSaveFormat(Asc.c_oAscFileType.PDF)}> + + + props.onSaveFormat(Asc.c_oAscFileType.PDFA)}> + + + props.onSaveFormat(Asc.c_oAscFileType.ODP)}> + + + props.onSaveFormat(Asc.c_oAscFileType.POTX)}> + + + props.onSaveFormat(Asc.c_oAscFileType.OTP)}> + + + + + ) +} + +export default Download; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/settings/PresentationInfo.jsx b/apps/presentationeditor/mobile/src/view/settings/PresentationInfo.jsx new file mode 100644 index 000000000..0bc1207b3 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/settings/PresentationInfo.jsx @@ -0,0 +1,125 @@ +import React, {Fragment} from "react"; +import { observer, inject } from "mobx-react"; +import { Page, Navbar, List, ListItem, BlockTitle } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const PagePresentationInfo = (props) => { + const { t } = useTranslation(); + const _t = t("View.Settings", { returnObjects: true }); + const storeInfo = props.storePresentationInfo; + const dataApp = props.getAppProps(); + const dataModified = props.getModified; + const dataModifiedBy = props.getModifiedBy; + const creators = props.getCreators; + const dataDoc = JSON.parse(JSON.stringify(storeInfo.dataDoc)); + + return ( + + + {dataDoc.title ? ( + + {_t.textPresentationTitle} + + + + + ) : null} + {dataDoc.info.author || dataDoc.info.owner ? ( + + {_t.textOwner} + + + + + ) : null} + {dataDoc.info.folder ? ( + + {_t.textLocation} + + + + + ) : null} + {dataDoc.info.uploaded || dataDoc.info.created ? ( + + {_t.textUploaded} + + + + + ) : null} + {props.title ? ( + + {_t.textTitle} + + + + + ) : null} + {props.subject ? ( + + {_t.textSubject} + + + + + ) : null} + {props.description ? ( + + {_t.textComment} + + + + + ) : null} + {dataModified ? ( + + {_t.textLastModified} + + + + + ) : null} + {dataModifiedBy ? ( + + {_t.textLastModifiedBy} + + + + + ) : null} + {props.getCreated ? ( + + {_t.textCreated} + + + + + ) : null} + {dataApp ? ( + + {_t.textApplication} + + + + + ) : null} + {creators ? ( + + {_t.textAuthor} + + { + creators.split(/\s*[,;]\s*/).map(item => { + return + }) + } + + + ) : null} + + ); +}; + +const PresentationInfo = inject("storePresentationInfo")(observer(PagePresentationInfo)); + +export default PresentationInfo; \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/settings/PresentationSettings.jsx b/apps/presentationeditor/mobile/src/view/settings/PresentationSettings.jsx new file mode 100644 index 000000000..f9d3a223c --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/settings/PresentationSettings.jsx @@ -0,0 +1,84 @@ +import React, {useState} from "react"; +import { observer, inject } from "mobx-react"; +import { Page, Navbar, List, ListItem, BlockTitle } from "framework7-react"; +import { useTranslation } from "react-i18next"; + +const PagePresentationSettings = props => { + const { t } = useTranslation(); + const _t = t("View.Settings", { returnObjects: true }); + const storePresentationSettings = props.storePresentationSettings; + const slideSizeArr = storePresentationSettings.slideSizes; + const slideSizeIndex = storePresentationSettings.slideSizeIndex; + // console.log(slideSizeIndex); + + return ( + + + {_t.textSlideSize} + + props.onSlideSize(slideSizeArr[0])} title={_t.mniSlideStandard}> + props.onSlideSize(slideSizeArr[1])} title={_t.mniSlideWide}> + + + + + + ) +} + +const PagePresentationColorSchemes = props => { + const { t } = useTranslation(); + const curScheme = props.initPageColorSchemes(); + const [stateScheme, setScheme] = useState(curScheme); + const _t = t('View.Settings', {returnObjects: true}); + const storePresentationSettings = props.storePresentationSettings; + const allSchemes = storePresentationSettings.allSchemes; + + return ( + + + + { + allSchemes ? allSchemes.map((scheme, index) => { + return ( + { + if(index !== curScheme) { + setScheme(index); + props.onColorSchemeChange(index); + }; + }}> +
            + + { + scheme.get_colors().map((elem, index) => { + if(index >=2 && index < 7) { + let clr = {background: "#" + Common.Utils.ThemeColor.getHexColor(elem.get_r(), elem.get_g(), elem.get_b())}; + return ( + + ) + } + }) + } + + +
            +
            + ) + }) : null + } +
            +
            + + ) +}; + +const PresentationSettings = inject("storePresentationSettings")(observer(PagePresentationSettings)); +const PresentationColorSchemes = inject("storePresentationSettings")(observer(PagePresentationColorSchemes)); + +export { PresentationSettings, PresentationColorSchemes } \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/view/settings/Settings.jsx b/apps/presentationeditor/mobile/src/view/settings/Settings.jsx new file mode 100644 index 000000000..714f8a245 --- /dev/null +++ b/apps/presentationeditor/mobile/src/view/settings/Settings.jsx @@ -0,0 +1,196 @@ +import React, {Component, useEffect} from 'react'; +import {View,Page,Navbar,NavRight,Link,Popup,Popover,Icon,ListItem,List} from 'framework7-react'; +import { withTranslation } from 'react-i18next'; +import {f7} from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import ApplicationSettingsController from "../../controller/settings/ApplicationSettings"; +import { MacrosSettings } from "./ApplicationSettings"; +import DownloadController from "../../controller/settings/Download"; +import PresentationInfoController from "../../controller/settings/PresentationInfo"; +import PresentationSettingsController from "../../controller/settings/PresentationSettings"; +import { PresentationColorSchemes } from "./PresentationSettings"; +// import PresentationAboutController from '../../controller/settings/PresentationAbout'; +import About from '../../../../../common/mobile/lib/view/About'; + +const routes = [ + { + path: '/', + component: 'TSettingsView' + }, + { + path: '/application-settings/', + component: ApplicationSettingsController + }, + { + path: '/macros-settings/', + component: MacrosSettings + }, + { + path: '/download/', + component: DownloadController + }, + { + path: '/presentation-info/', + component: PresentationInfoController + }, + { + path: '/presentation-settings/', + component: PresentationSettingsController + }, + { + path: '/color-schemes/', + component: PresentationColorSchemes + }, + { + path: '/about/', + component: About + } + /*{ + path: '/presentation-settings/', + component: PresentationSettingsController, + }, + { + path: "/presentation-info/", + component: PresentationInfoController, + }*/ +]; + + +const SettingsList = withTranslation()(props => { + const {t} = props; + const _t = t('View.Settings', {returnObjects: true}); + const navbar = + {!props.inPopover && {_t.textDone}} + ; + + const onoptionclick = page => { + if ( props.onOptionClick ) + props.onOptionClick(page) + }; + + const closeModal = () => { + if (Device.phone) { + f7.sheet.close('.settings-popup', false); + } else { + f7.popover.close('#settings-popover', false); + } + }; + + const onOpenCollaboration = async () => { + await closeModal(); + await props.openOptions('coauth'); + } + + const onPrint = () => { + closeModal(); + const api = Common.EditorApi.get(); + api.asc_Print(); + }; + + const showHelp = () => { + // let url = '{{HELP_URL}}'; + let url = __HELP_URL__; + // let url = 'https://helpcenter.onlyoffice.com'; + + if (url.charAt(url.length-1) !== '/') { + url += '/'; + } + + if (Device.sailfish || Device.android) { + url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; + } + else { + url+='mobile-applications/documents/mobile-web-editors/ios/index.aspx'; + } + + closeModal(); + window.open(url, "_blank"); + }; + + return ( + + + {navbar} + + {!props.inPopover && + + + + } + {window.matchMedia("(max-width: 389px)").matches ? + + + + : null} + + + + + + + + + + + + + + + + + + + + + + + + + ) +}); + +class SettingsView extends Component { + constructor(props) { + super(props); + + this.onoptionclick = this.onoptionclick.bind(this); + } + + onoptionclick(page){ + f7.views.current.router.navigate(page); + } + + render() { + const show_popover = this.props.usePopover; + + return ( + show_popover ? + this.props.onclosed()}> + + : + this.props.onclosed()}> + + + ) + } +} + +const Settings = props => { + useEffect(() => { + if ( Device.phone ) + f7.popup.open('.settings-popup'); + else f7.popover.open('#settings-popover', '#btn-settings'); + + return () => { + } + }); + + const onviewclosed = () => { + if (props.onclosed) + props.onclosed(); + }; + + return +}; + +export default Settings; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app-dev.js b/apps/spreadsheeteditor/mobile/app-dev.js deleted file mode 100644 index ab63b4d3c..000000000 --- a/apps/spreadsheeteditor/mobile/app-dev.js +++ /dev/null @@ -1,224 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - * Created by Maxim Kadushkin on 11/14/16 - * Copyright (c) 2018 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', - api : 'api/documents/api', - core : 'common/main/lib/core/application', - extendes : 'common/mobile/utils/extendes', - notification : 'common/main/lib/core/NotificationCenter', - analytics : 'common/Analytics', - gateway : 'common/Gateway', - locale : 'common/locale', - irregularstack : 'common/IrregularStack', - sharedsettings : 'common/mobile/utils/SharedSettings', - features : '../../web-apps-mobile/cell/patch' - }, - - shim: { - framework7: { - exports: 'Framework7' - }, - underscore: { - exports: '_' - }, - backbone: { - deps: [ - 'underscore', - 'jquery' - ], - exports: 'Backbone' - }, - core: { - deps: [ - 'backbone', - 'notification', - 'irregularstack', - 'sharedsettings' - ] - } - } -}); - -require([ - 'backbone', - 'framework7', - 'core', - 'underscore', - 'extendes', - 'api', - 'analytics', - 'gateway', - 'locale', - 'jszip', - 'jsziputils', - 'sockjs' -], function (Backbone, Framework7) { - Backbone.history.start(); - - /** - * Application instance with SSE namespace defined - */ - var app = new Backbone.Application({ - nameSpace: 'SSE', - autoCreate: false, - controllers : [ - 'Common.Controllers.Plugins', - 'Editor', - 'Toolbar', - 'Search', - 'CellEditor', - 'Main', - 'DocumentHolder' - ,'Statusbar' - ,'Settings' - ,'EditContainer' - ,'EditCell' - ,'EditText' - ,'EditImage' - ,'EditShape' - ,'EditChart' - ,'EditHyperlink' - ,'AddContainer' - ,'AddChart' - ,'AddFunction' - ,'AddShape' - ,'AddOther' - ,'AddLink' - ,'FilterOptions' - ,'Common.Controllers.Collaboration' - ] - }); - - 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', - - // Enable tap hold events - tapHold: true, - - // 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'); - - Common.Locale.apply(function(){ - require([ - 'common/main/lib/util/LocalStorage', - 'common/main/lib/util/utils', - 'common/mobile/lib/controller/Plugins', - 'spreadsheeteditor/mobile/app/controller/Editor', - 'spreadsheeteditor/mobile/app/controller/Toolbar', - 'spreadsheeteditor/mobile/app/controller/Search', - 'spreadsheeteditor/mobile/app/controller/Main', - 'spreadsheeteditor/mobile/app/controller/DocumentHolder' - ,'spreadsheeteditor/mobile/app/controller/CellEditor' - ,'spreadsheeteditor/mobile/app/controller/Statusbar' - ,'spreadsheeteditor/mobile/app/controller/Settings' - ,'spreadsheeteditor/mobile/app/controller/edit/EditContainer' - ,'spreadsheeteditor/mobile/app/controller/edit/EditCell' - ,'spreadsheeteditor/mobile/app/controller/edit/EditText' - ,'spreadsheeteditor/mobile/app/controller/edit/EditImage' - ,'spreadsheeteditor/mobile/app/controller/edit/EditShape' - ,'spreadsheeteditor/mobile/app/controller/edit/EditChart' - ,'spreadsheeteditor/mobile/app/controller/edit/EditHyperlink' - ,'spreadsheeteditor/mobile/app/controller/add/AddContainer' - ,'spreadsheeteditor/mobile/app/controller/add/AddChart' - ,'spreadsheeteditor/mobile/app/controller/add/AddFunction' - ,'spreadsheeteditor/mobile/app/controller/add/AddShape' - ,'spreadsheeteditor/mobile/app/controller/add/AddOther' - ,'spreadsheeteditor/mobile/app/controller/add/AddLink' - ,'spreadsheeteditor/mobile/app/controller/FilterOptions' - ,'common/mobile/lib/controller/Collaboration' - ], function() { - window.compareVersions = true; - var _s = app.start.bind(app); - require(['features'], _s, _s); - }); - }); -}, function(err) { - if (err.requireType == 'timeout' && !reqerr && window.requireTimeourError) { - reqerr = window.requireTimeourError(); - window.alert(reqerr); - window.location.reload(); - } -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app.js b/apps/spreadsheeteditor/mobile/app.js deleted file mode 100644 index 9536367dd..000000000 --- a/apps/spreadsheeteditor/mobile/app.js +++ /dev/null @@ -1,232 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - * Created by Maxim Kadushkin on 1/13/2017 - * Copyright (c) 2018 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', - allfonts : '../../sdkjs/common/AllFonts', - sdk : '../../sdkjs/cell/sdk-all-min', - api : 'api/documents/api', - core : 'common/main/lib/core/application', - extendes : 'common/mobile/utils/extendes', - notification : 'common/main/lib/core/NotificationCenter', - analytics : 'common/Analytics', - gateway : 'common/Gateway', - locale : 'common/locale', - irregularstack : 'common/IrregularStack', - sharedsettings : 'common/mobile/utils/SharedSettings' - }, - - shim: { - framework7: { - exports: 'Framework7' - }, - underscore: { - exports: '_' - }, - sdk: { - deps: [ - 'jquery', - 'underscore', - 'allfonts', - 'xregexp', - 'sockjs', - 'jszip', - 'jsziputils' - ] - }, - backbone: { - deps: [ - 'underscore', - 'jquery' - ], - exports: 'Backbone' - }, - core: { - deps: [ - 'backbone', - 'notification', - 'irregularstack', - 'sharedsettings' - ] - } - } -}); - -require([ - 'backbone', - 'framework7', - 'core', - 'underscore', - 'extendes', - 'sdk', - 'api', - 'analytics', - 'gateway', - 'locale' -], function (Backbone, Framework7) { - Backbone.history.start(); - - /** - * Application instance with SSE namespace defined - */ - var app = new Backbone.Application({ - nameSpace: 'SSE', - autoCreate: false, - controllers : [ - 'Common.Controllers.Plugins', - 'Editor', - 'Toolbar', - 'Search', - 'CellEditor', - 'Main', - 'DocumentHolder' - ,'Statusbar' - ,'Settings' - ,'EditContainer' - ,'EditCell' - ,'EditText' - ,'EditImage' - ,'EditShape' - ,'EditChart' - ,'EditHyperlink' - ,'AddContainer' - ,'AddChart' - ,'AddFunction' - ,'AddShape' - ,'AddOther' - ,'AddLink' - ,'FilterOptions' - ,'Common.Controllers.Collaboration' - ] - }); - - 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: '{{APP_TITLE_TEXT}}', - - // Enable tap hold events - tapHold: true, - - // 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'); - - Common.Locale.apply(function(){ - require([ - 'common/main/lib/util/LocalStorage', - 'common/main/lib/util/utils', - 'common/mobile/lib/controller/Plugins', - 'spreadsheeteditor/mobile/app/controller/Editor', - 'spreadsheeteditor/mobile/app/controller/Toolbar', - 'spreadsheeteditor/mobile/app/controller/Search', - 'spreadsheeteditor/mobile/app/controller/Main', - 'spreadsheeteditor/mobile/app/controller/DocumentHolder' - ,'spreadsheeteditor/mobile/app/controller/CellEditor' - ,'spreadsheeteditor/mobile/app/controller/Statusbar' - ,'spreadsheeteditor/mobile/app/controller/Settings' - ,'spreadsheeteditor/mobile/app/controller/edit/EditContainer' - ,'spreadsheeteditor/mobile/app/controller/edit/EditCell' - ,'spreadsheeteditor/mobile/app/controller/edit/EditText' - ,'spreadsheeteditor/mobile/app/controller/edit/EditImage' - ,'spreadsheeteditor/mobile/app/controller/edit/EditShape' - ,'spreadsheeteditor/mobile/app/controller/edit/EditChart' - ,'spreadsheeteditor/mobile/app/controller/edit/EditHyperlink' - ,'spreadsheeteditor/mobile/app/controller/add/AddContainer' - ,'spreadsheeteditor/mobile/app/controller/add/AddChart' - ,'spreadsheeteditor/mobile/app/controller/add/AddFunction' - ,'spreadsheeteditor/mobile/app/controller/add/AddShape' - ,'spreadsheeteditor/mobile/app/controller/add/AddOther' - ,'spreadsheeteditor/mobile/app/controller/add/AddLink' - ,'spreadsheeteditor/mobile/app/controller/FilterOptions' - ,'common/mobile/lib/controller/Collaboration' - ], function() { - app.start(); - }); - }); -}, function(err) { - if (err.requireType == 'timeout' && !reqerr && window.requireTimeourError) { - reqerr = window.requireTimeourError(); - window.alert(reqerr); - window.location.reload(); - } -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/collection/sheets.js b/apps/spreadsheeteditor/mobile/app/collection/sheets.js deleted file mode 100644 index ec0d4afee..000000000 --- a/apps/spreadsheeteditor/mobile/app/collection/sheets.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * -*/ -/** - * sheets.js - * - * Created by Maxim.Kadushkin on 11/29/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'backbone', - 'spreadsheeteditor/mobile/app/model/sheet' -], function(Backbone) { - 'use strict'; - - SSE.Collections = SSE.Collections || {}; - SSE.Collections.Sheets = Backbone.Collection.extend({ - model: SSE.Models.Sheets - }); -}); diff --git a/apps/spreadsheeteditor/mobile/app/controller/CellEditor.js b/apps/spreadsheeteditor/mobile/app/controller/CellEditor.js deleted file mode 100644 index 1e52d4a59..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/CellEditor.js +++ /dev/null @@ -1,188 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * -*/ -/** - * CellEditor.js - * - * CellEditor Controller - * - * Created by Maxim Kadushkin on 11/24/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/CellEditor' -], function (core) { - 'use strict'; - - SSE.Controllers.CellEditor = Backbone.Controller.extend({ - views: [ - 'CellEditor' - ], - - events: function() { - return { - // 'keyup input#ce-cell-name': _.bind(this.onCellName,this), - // 'keyup textarea#ce-cell-content': _.bind(this.onKeyupCellEditor,this), - // 'blur textarea#ce-cell-content': _.bind(this.onBlurCellEditor,this), - // 'click a#ce-function': _.bind(this.onInsertFunction, this) - }; - }, - - initialize: function() { - var me = this; - this.addListeners({ - 'CellEditor': { - 'function:click': this.onInsertFunction.bind(this), - 'function:hint': function (name, type) { - setTimeout(function(){ - me.api.asc_insertInCell(name, type, false); - }, 0); - } - } - // 'Viewport': { - // 'layout:resizedrag': _.bind(this.onLayoutResize, this) - // } - }); - }, - - setApi: function(api) { - this.api = api; - - // this.api.isCEditorFocused = false; - this.api.asc_registerCallback('asc_onSelectionNameChanged', _.bind(this.onApiCellSelection, this)); - this.api.asc_registerCallback('asc_onEditCell', _.bind(this.onApiEditCell, this)); - this.api.asc_registerCallback('asc_onFormulaCompleteMenu', _.bind(this.onFormulaCompleteMenu, this)); - this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onApiDisconnect,this)); - Common.NotificationCenter.on('api:disconnect', _.bind(this.onApiDisconnect, this)); - // Common.NotificationCenter.on('cells:range', _.bind(this.onCellsRange, this)); - // this.api.asc_registerCallback('asc_onInputKeyDown', _.bind(this.onInputKeyDown, this)); - - return this; - }, - - setMode: function(mode) { - this.mode = mode; - - // this.editor.$btnfunc[this.mode.isEdit?'removeClass':'addClass']('disabled'); - // this.editor.btnNamedRanges.setVisible(this.mode.isEdit && !this.mode.isEditDiagram && !this.mode.isEditMailMerge); - }, - - onInputKeyDown: function(e) { - if (Common.UI.Keys.UP === e.keyCode || Common.UI.Keys.DOWN === e.keyCode || - Common.UI.Keys.TAB === e.keyCode || Common.UI.Keys.RETURN === e.keyCode || Common.UI.Keys.ESC === e.keyCode || - Common.UI.Keys.LEFT === e.keyCode || Common.UI.Keys.RIGHT === e.keyCode) { - var menu = $('#menu-formula-selection'); // for formula menu - if (menu.hasClass('open')) - menu.find('.dropdown-menu').trigger('keydown', e); - } - }, - - onLaunch: function() { - this.editor = this.createView('CellEditor').render(); - - // this.bindViewEvents(this.editor, this.events); - // this.editor.$el.parent().find('.after').css({zIndex: '4'}); // for spreadsheets - bug 23127 - }, - - onApiEditCell: function(state) { - if (state == Asc.c_oAscCellEditorState.editStart){ - this.api.isCellEdited = true; - this.editor.cellNameDisabled(true); - } else if (state == Asc.c_oAscCellEditorState.editEnd) { - this.api.isCellEdited = false; - this.api.isCEditorFocused = false; - this.editor.cellNameDisabled(false); - } - }, - - onApiCellSelection: function(info) { - this.editor.updateCellInfo(info); - }, - - onApiDisconnect: function() { - this.mode.isEdit = false; - $('#ce-function').addClass('disabled'); - }, - - onCellsRange: function(status) { - // this.editor.cellNameDisabled(status != Asc.c_oAscSelectionDialogType.None); - }, - - onCellName: function(e) { - if (e.keyCode == Common.UI.Keys.RETURN){ - var name = this.editor.$cellname.val(); - if (name && name.length) { - this.api.asc_findCell(name); - } - - Common.NotificationCenter.trigger('edit:complete', this.editor); - } - }, - - onBlurCellEditor: function() { - if (this.api.isCEditorFocused == 'clear') - this.api.isCEditorFocused = undefined; - else if (this.api.isCellEdited) - this.api.isCEditorFocused = true; -// if (Common.Utils.isIE && !$('#menu-formula-selection').hasClass('open')) {// for formula menu -// this.getApplication().getController('DocumentHolder').documentHolder.focus(); -// } - }, - - onKeyupCellEditor: function(e) { - if(e.keyCode == Common.UI.Keys.RETURN && !e.altKey){ - this.api.isCEditorFocused = 'clear'; - } - }, - - onInsertFunction: function() { - if (this.mode && this.mode.isEdit) { - SSE.getController('AddContainer').showModal({ - panel: 'function', - button: '#ce-function' - }); - } - }, - - onFormulaCompleteMenu: function(funcarr) { - if ( funcarr && funcarr.length ) { - this.editor.resetFunctionsHint(funcarr); - !this.editor.$boxfuncs.hasClass('.opened') && this.editor.$boxfuncs.addClass('opened'); - } else { - this.editor.$boxfuncs.removeClass('opened'); - } - } - }); -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/mobile/app/controller/DocumentHolder.js deleted file mode 100644 index 6aca9b1a0..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/DocumentHolder.js +++ /dev/null @@ -1,554 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentHolder.js - * - * Created by Maxim Kadushkin on 11/15/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'spreadsheeteditor/mobile/app/view/DocumentHolder' -], function (core, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.DocumentHolder = Backbone.Controller.extend(_.extend((function() { - // private - var _actionSheets = [], - _isEdit = false, - _canViewComments = true, - _isComments = false, - _isVisibleComments = false, - _canDeleteComments = false; - - function openLink(url) { - var newDocumentPage = window.open(url, '_blank'); - - if (newDocumentPage) { - newDocumentPage.focus(); - } - } - - return { - models: [], - collections: [], - views: [ - 'DocumentHolder' - ], - - initialize: function() { - this.addListeners({ - 'DocumentHolder': { - 'contextmenu:click' : this.onContextMenuClick - } - }); - }, - - setApi: function(api) { - this.api = api; - - this.api.asc_registerCallback('asc_onShowPopMenu', _.bind(this.onApiShowPopMenu, this)); - this.api.asc_registerCallback('asc_onHidePopMenu', _.bind(this.onApiHidePopMenu, this)); - this.api.asc_registerCallback('asc_onHyperlinkClick', _.bind(this.onApiHyperlinkClick, this)); - Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this)); - this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect,this)); - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - if (_isEdit) { - this.api.asc_registerCallback('asc_onSetAFDialog', _.bind(this.onApiFilterOptions, this)); - } - _canViewComments = mode.canViewComments; - _canDeleteComments = mode.canDeleteComments; - }, - - // When our application is ready, lets get started - onLaunch: function() { - var me = this; - - me.view = me.createView('DocumentHolder').render(); - - $$(window).on('resize', _.bind(me.onEditorResize, me)); - }, - - // Handlers - - onContextMenuClick: function (view, event) { - var me = this; - var info = me.api.asc_getCellInfo(); - - switch (event) { - case 'cut': - var res = me.api.asc_Cut(); - if (!res) { - me.view.hideMenu(); - if (!Common.localStorage.getBool("sse-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-cut"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("sse-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - break; - case 'copy': - var res = me.api.asc_Copy(); - if (!res) { - me.view.hideMenu(); - if (!Common.localStorage.getBool("sse-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-copy"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("sse-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - break; - case 'paste': - var res = me.api.asc_Paste(); - if (!res) { - me.view.hideMenu(); - if (!Common.localStorage.getBool("sse-hide-copy-cut-paste-warning")) { - uiApp.modal({ - title: me.textCopyCutPasteActions, - text: me.errorCopyCutPaste, - afterText: '', - buttons: [{ - text: 'OK', - onClick: function () { - var dontshow = $('input[name="checkbox-show-paste"]').prop('checked'); - if (dontshow) Common.localStorage.setItem("sse-hide-copy-cut-paste-warning", 1); - } - }] - }); - } - } - break; - case 'del': - me.api.asc_emptyCells(Asc.c_oAscCleanOptions.All, !_canDeleteComments); - break; - case 'wrap': me.api.asc_setCellTextWrap(true); break; - case 'unwrap': me.api.asc_setCellTextWrap(false); break; - case 'edit': - me.view.hideMenu(); - SSE.getController('EditContainer').showModal(); - // SSE.getController('EditCell').getView('EditCell'); - break; - case 'merge': - if (me.api.asc_mergeCellsDataLost(Asc.c_oAscMergeOptions.Merge)) { - _.defer(function () { - uiApp.confirm(me.warnMergeLostData, me.notcriticalErrorTitle, function(){ - me.api.asc_mergeCells(Asc.c_oAscMergeOptions.Merge); - }); - }); - } else { - me.api.asc_mergeCells(Asc.c_oAscMergeOptions.Merge); - } - break; - case 'unmerge': - me.api.asc_mergeCells(Asc.c_oAscMergeOptions.None); - break; - case 'hide': - me.api[info.asc_getSelectionType() == Asc.c_oAscSelectionType.RangeRow ? 'asc_hideRows' : 'asc_hideColumns'](); - break; - case 'show': - me.api[info.asc_getSelectionType() == Asc.c_oAscSelectionType.RangeRow ? 'asc_showRows' : 'asc_showColumns'](); - break; - case 'addlink': - me.view.hideMenu(); - SSE.getController('AddContainer').showModal({ - panel: 'hyperlink' - }); - break; - case 'openlink': - var linkinfo = info.asc_getHyperlink(); - if ( linkinfo.asc_getType() == Asc.c_oAscHyperlinkType.RangeLink ) { - var nameSheet = linkinfo.asc_getSheet(); - var curActiveSheet = this.api.asc_getActiveWorksheetIndex(); - me.api.asc_setWorksheetRange(linkinfo); - SSE.getController('Statusbar').onLinkWorksheetRange(nameSheet, curActiveSheet); - } else { - var url = linkinfo.asc_getHyperlinkUrl().replace(/\s/g, "%20"); - me.api.asc_getUrlType(url) > 0 && openLink(url); - } - break; - case 'freezePanes': - me.api.asc_freezePane(); - break; - case 'viewcomment': - me.view.hideMenu(); - var cellinfo = this.api.asc_getCellInfo(), - comments = cellinfo.asc_getComments(); - if (comments.length) { - SSE.getController('Common.Controllers.Collaboration').apiShowComments(comments[0].asc_getId()); - SSE.getController('Common.Controllers.Collaboration').showCommentModal(); - } - break; - case 'addcomment': - me.view.hideMenu(); - SSE.getController('AddContainer').showModal(); - SSE.getController('AddOther').getView('AddOther').showPageComment(false); - } - - if ('showActionSheet' == event && _actionSheets.length > 0) { - _.delay(function () { - _.each(_actionSheets, function (action) { - action.text = action.caption; - action.onClick = function () { - me.onContextMenuClick(null, action.event) - } - }); - - uiApp.actions([_actionSheets, [ - { - text: me.sheetCancel, - bold: true - } - ]]); - }, 100); - } - - me.view.hideMenu(); - }, - - // API Handlers - - onEditorResize: function(cmp) { - // Hide context menu - }, - - onApiShowPopMenu: function(posX, posY) { - if (this.isDisconnected) return; - - if ($('.popover.settings, .popup.settings, .picker-modal.settings, .modal-in, .actions-modal').length > 0) { - return; - } - - var me = this, - items; - - items = me._initMenu(me.api.asc_getCellInfo()); - - me.view.showMenu(items, posX, posY); - }, - - onApiHidePopMenu: function() { - this.view.hideMenu(); - }, - - onApiHyperlinkClick: function(url) { - if (!url) { - var me = this; - _.defer(function () { - uiApp.modal({ - title: me.notcriticalErrorTitle, - text : me.errorInvalidLink, - buttons: [{text: 'OK'}] - }); - }); - } - }, - - // Internal - - _initMenu: function (cellinfo) { - var me = this, - arrItems = [], - arrItemsIcon = []; - _actionSheets.length = 0; - - var iscellmenu, isrowmenu, iscolmenu, isallmenu, ischartmenu, isimagemenu, istextshapemenu, isshapemenu, istextchartmenu; - var iscelllocked = cellinfo.asc_getLocked(), - seltype = cellinfo.asc_getSelectionType(), - xfs = cellinfo.asc_getXfs(), - comments = cellinfo.asc_getComments(); - _isComments = comments.length>0; //prohibit adding multiple comments in one cell; - _isVisibleComments = false; - if (comments && comments.length > 0) { - for (var i = 0; i < comments.length; ++i) { - if (me.getApplication().getController('Common.Controllers.Collaboration').findVisibleComment(comments[i].asc_getId())) { - _isVisibleComments = true; - break; - } - } - } - - switch (seltype) { - case Asc.c_oAscSelectionType.RangeCells: iscellmenu = true; break; - case Asc.c_oAscSelectionType.RangeRow: isrowmenu = true; break; - case Asc.c_oAscSelectionType.RangeCol: iscolmenu = true; break; - case Asc.c_oAscSelectionType.RangeMax: isallmenu = true; break; - case Asc.c_oAscSelectionType.RangeImage: isimagemenu = true; break; - case Asc.c_oAscSelectionType.RangeShape: isshapemenu = true; break; - case Asc.c_oAscSelectionType.RangeChart: ischartmenu = true; break; - case Asc.c_oAscSelectionType.RangeChartText: istextchartmenu = true; break; - case Asc.c_oAscSelectionType.RangeShapeText: istextshapemenu = true; break; - } - - if (!_isEdit) { - if (iscellmenu || istextchartmenu || istextshapemenu) { - arrItemsIcon = [{ - caption: me.menuCopy, - event: 'copy', - icon: 'icon-copy' - }]; - } - if (iscellmenu && cellinfo.asc_getHyperlink()) { - arrItems.push({ - caption: me.menuOpenLink, - event: 'openlink' - }); - } - if (_canViewComments && _isVisibleComments) { - arrItems.push({ - caption: me.menuViewComment, - event: 'viewcomment' - }); - } - } else { - - if (!iscelllocked && (isimagemenu || isshapemenu || ischartmenu || istextshapemenu || istextchartmenu)) { - this.api.asc_getGraphicObjectProps().every(function (object) { - if (object.asc_getObjectType() == Asc.c_oAscTypeSelectElement.Image) { - iscelllocked = object.asc_getObjectValue().asc_getLocked(); - } - - return !iscelllocked; - }); - } - - if (iscelllocked || this.api.isCellEdited) { - arrItemsIcon = [{ - caption: me.menuCopy, - event: 'copy', - icon: 'icon-copy' - }]; - - } else { - var arrItemsIcon = [{ - caption: me.menuCut, - event: 'cut', - icon: 'icon-cut' - }, { - caption: me.menuCopy, - event: 'copy', - icon: 'icon-copy' - }, { - caption: me.menuPaste, - event: 'paste', - icon: 'icon-paste' - }]; - arrItems.push({ - caption: me.menuDelete, - event: 'del' - }); - - // isTableLocked = cellinfo.asc_getLockedTable()===true; - - if (isimagemenu || isshapemenu || ischartmenu || - istextshapemenu || istextchartmenu) { - arrItems.push({ - caption: me.menuEdit, - event: 'edit' - }); - } else { - if (iscolmenu || isrowmenu) { - arrItems.push({ - caption: me.menuHide, - event: 'hide' - }, { - caption: me.menuShow, - event: 'show' - }); - } else if (iscellmenu) { - !iscelllocked && - arrItems.push({ - caption: me.menuCell, - event: 'edit' - }); - - (cellinfo.asc_getMerge() == Asc.c_oAscMergeOptions.None) && - arrItems.push({ - caption: me.menuMerge, - event: 'merge' - }); - - (cellinfo.asc_getMerge() == Asc.c_oAscMergeOptions.Merge) && - arrItems.push({ - caption: me.menuUnmerge, - event: 'unmerge' - }); - - arrItems.push( - xfs.asc_getWrapText() ? - { - caption: me.menuUnwrap, - event: 'unwrap' - } : - { - caption: me.menuWrap, - event: 'wrap' - }); - - if (cellinfo.asc_getHyperlink() && !cellinfo.asc_getMultiselect()) { - arrItems.push({ - caption: me.menuOpenLink, - event: 'openlink' - }); - } else if (!cellinfo.asc_getHyperlink() && !cellinfo.asc_getMultiselect() && - !cellinfo.asc_getLockText() && !!cellinfo.asc_getText()) { - arrItems.push({ - caption: me.menuAddLink, - event: 'addlink' - }); - } - } - - arrItems.push({ - caption: this.api.asc_getSheetViewSettings().asc_getIsFreezePane() ? me.menuUnfreezePanes : me.menuFreezePanes, - event: 'freezePanes' - }); - - } - - if (_canViewComments) { - if (_isVisibleComments) { - arrItems.push({ - caption: me.menuViewComment, - event: 'viewcomment' - }); - } else if (iscellmenu && !_isComments) { - arrItems.push({ - caption: me.menuAddComment, - event: 'addcomment' - }); - } - } - } - - - if (Common.SharedSettings.get('phone') && arrItems.length > 2) { - _actionSheets = arrItems.slice(2); - - arrItems = arrItems.slice(0, 2); - arrItems.push({ - caption: me.menuMore, - event: 'showActionSheet' - }); - } - } - - var menuItems = {itemsIcon: arrItemsIcon, items: arrItems}; - - return menuItems; - }, - - onCoAuthoringDisconnect: function() { - this.isDisconnected = true; - }, - - onApiFilterOptions: function(config) { - if(_isEdit) { - var rect = config.asc_getCellCoord(), - posX = rect.asc_getX() + rect.asc_getWidth() - 9, - posY = rect.asc_getY() + rect.asc_getHeight() - 9; - SSE.getController('FilterOptions').showModal(posX,posY); - } - }, - - - warnMergeLostData: 'Operation can destroy data in the selected cells.
            Continue?', - menuCopy: 'Copy', - menuCut: 'Cut', - menuPaste: 'Paste', - menuDelete: 'Delete', - menuAddLink: 'Add Link', - menuOpenLink: 'Open Link', - menuWrap: 'Wrap', - menuUnwrap: 'Unwrap', - menuMerge: 'Merge', - menuUnmerge: 'Unmerge', - menuShow: 'Show', - menuHide: 'Hide', - menuEdit: 'Edit', - menuCell: 'Cell', - menuMore: 'More', - sheetCancel: 'Cancel', - menuFreezePanes: 'Freeze Panes', - menuUnfreezePanes: 'Unfreeze Panes', - menuViewComment: 'View Comment', - menuAddComment: 'Add Comment', - textCopyCutPasteActions: 'Copy, Cut and Paste Actions', - errorCopyCutPaste: 'Copy, cut and paste actions using the context menu will be performed within the current file only.', - textDoNotShowAgain: 'Don\'t show again', - notcriticalErrorTitle: 'Warning', - errorInvalidLink: 'The link reference does not exist. Please correct the link or delete it.' - } - })(), SSE.Controllers.DocumentHolder || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/Editor.js b/apps/spreadsheeteditor/mobile/app/controller/Editor.js deleted file mode 100644 index 13b0e943c..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/Editor.js +++ /dev/null @@ -1,126 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Editor.js - * - * Created by Maxim Kadushkin on 11/15/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/Editor' -], function (core) { - 'use strict'; - - SSE.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))); - } - - function isSailfish() { - var ua = navigator.userAgent; - return /Sailfish/.test(ua) || /Jolla/.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() { - // This most important part when we will tell our controller what events should be handled - }, - - setApi: function(api) { - this.api = api; - }, - - // When our application is ready, lets get started - onLaunch: function() { - // Device detection - var phone = isPhone(); - // console.debug('Layout profile:', phone ? 'Phone' : 'Tablet'); - - if ( isSailfish() ) { - Common.SharedSettings.set('sailfish', true); - $('html').addClass('sailfish'); - } - - 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)); - Common.NotificationCenter.on('layout:changed', function(source, args) { - if ( source == 'navbar' ) { - this.editorView.$el.find('.page.editor')[args.hidden?'addClass':'removeClass']('no-padding'); - } - }.bind(this)); - }, - - onWindowResize: function(e) { - this.api && this.api.asc_Resize(); - } - } - })()); -}); diff --git a/apps/spreadsheeteditor/mobile/app/controller/FilterOptions.js b/apps/spreadsheeteditor/mobile/app/controller/FilterOptions.js deleted file mode 100644 index cdf8bfd91..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/FilterOptions.js +++ /dev/null @@ -1,381 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * FilterOptions.js - * Spreadsheet Editor - * - * Created by Julia Svinareva on 13/6/19 - * Copyright (c) 2019 Ascensio System SIA. All rights reserved. - * - */ -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'spreadsheeteditor/mobile/app/view/FilterOptions' -], function (core, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.FilterOptions = Backbone.Controller.extend(_.extend((function() { - // Private - var rootView, - dataFilter, - indChecked = [], - modalView; - - return { - models: [], - collections: [], - views: [ - 'FilterOptions' - ], - - initialize: function() { - var me = this; - me.addListeners({ - 'FilterOptions': { - 'page:show' : me.onPageShow - } - }); - }, - - setApi: function(api) { - this.api = api; - this.api.asc_registerCallback('asc_onSetAFDialog', _.bind(this.setSettings, this)); - }, - - onLaunch: function () { - this.createView('FilterOptions').render(); - }, - - setMode: function(mode) { - this.appConfig = mode; - }, - - showModal: function(posX,posY) { - var me = this, - isAndroid = Framework7.prototype.device.android === true, - mainView = SSE.getController('Editor').getView('Editor').f7View; - - uiApp.closeModal(); - - if (Common.SharedSettings.get('phone')) { - modalView = $$(uiApp.pickerModal( - '
            ' + - '' + - '
            ' - )).on('opened', function () { - if (_.isFunction(me.api.asc_OnShowContextMenu)) { - me.api.asc_OnShowContextMenu() - } - }).on('close', function (e) { - mainView.showNavbar(); - me.isValidChecked(); - }).on('closed', function () { - if (_.isFunction(me.api.asc_OnHideContextMenu)) { - me.api.asc_OnHideContextMenu() - } - }); - mainView.hideNavbar(); - } else { - var popoverHTML = - '
            ' + - '
            ' + - '
            ' + - '
            ' + - '' + - '
            ' + - '
            ' + - '
            '; - var $target = $('#context-menu-target') - .css({left: posX, top: Math.max(0, posY)}); - modalView = uiApp.popover(popoverHTML, $target); - $$(modalView).on('close', function (e) { - me.isValidChecked(); - }); - if (Common.SharedSettings.get('android')) { - Common.Utils.androidMenuTop($(modalView), $target); - } - } - - if (Framework7.prototype.device.android === true) { - $$('.view.filter-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.filter-root-view .navbar').prependTo('.view.filter-root-view > .pages > .page'); - } - - rootView = uiApp.addView('.filter-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('filtercontainer:show'); - this.onPageShow(this.getView('FilterOptions')); - - SSE.getController('Toolbar').getView('Toolbar').hideSearch(); - }, - - isValidChecked: function () { - var me = this, - isValid = true; - if (indChecked.length === indChecked.filter(function (item) {return item === false;}).length) { - isValid = false; - } - if(!isValid) { - uiApp.modal({ - title : me.textErrorTitle, - text : me.textErrorMsg, - buttons: [ - { - text: 'OK', - } - ] - }); - } - }, - - rootView : function() { - return rootView; - }, - - onPageShow: function(view, pageId) { - var me = this; - var $clearFilter = $("#btn-clear-filter"), - $deleteFilter = $("#btn-delete-filter"); - this.setClearDisable(); - $clearFilter.single('click', _.bind(me.onClickClearFilter, me)); - $deleteFilter.single('click', _.bind(me.onClickDeleteFilter, me)); - $('.sortdown').single('click', _.bind(me.onClickSort, me, 'down')); - $('.sortup').single('click', _.bind(me.onClickSort, me, 'up')); - this.setDataFilterCells(); - }, - - setSettings: function(config) { - dataFilter = config; - }, - - hideModal: function() { - if (modalView) { - uiApp.closeModal(modalView); - } - }, - - onClickSort: function(type) { - this.api.asc_sortColFilter(type == 'down' ? Asc.c_oAscSortOptions.Ascending : Asc.c_oAscSortOptions.Descending, dataFilter.asc_getCellId(), dataFilter.asc_getDisplayName(), undefined, true); - }, - - onClickClearFilter: function () { - var me = this; - if (me.api) - me.api.asc_clearFilter(); - for(var i=0; i 0 ? value: me.textEmptyItem), - intval : isnumber ? parseFloat(value) : undefined, - strval : !isnumber ? value : '', - groupid : '1', - check : idxs[throughIndex], - throughIndex : throughIndex - }); - if (idxs[throughIndex]) selectedCells++; - - ++throughIndex; - }); - - indChecked = idxs; - - if(arrCells.length > 0) { - var templateItemCell = _.template([ - '<% _.each(cells, function (cell) { %>', - '
          • ' + - '' + - '
          • ', - '<% }); %>'].join('')); - var templateListCells = _.template( - '
              ' + - '
            • ' + - '' + - '
            • ' + - templateItemCell({cells: arrCells, android: Framework7.prototype.device.android}) + - '
            '); - $('#list-cells').html(templateListCells({textSelectAll: this.textSelectAll, android: Framework7.prototype.device.android})); - - var $filterCell = $('[name="filter-cell"]'), - $filterCellAll = $('[name="filter-cell-all"]'); - $filterCell.single('change', _.bind(me.updateCell, me)); - $filterCellAll.single('change', _.bind(me.updateCell, me)); - - if(selectedCells == arrCells.length) { - $filterCellAll.prop('checked', true); - $filterCell.prop('checked', true); - } else { - for(var i=0; i 1 ? '1' : '3'; - me.api.asc_setFontRenderingMode(parseInt(value)); - - Common.Utils.Metric.setCurrentMetric(1); //pt - - me.api.asc_registerCallback('asc_onError', _.bind(me.onError, me)); - me.api.asc_registerCallback('asc_onOpenDocumentProgress', _.bind(me.onOpenDocument, me)); - me.api.asc_registerCallback('asc_onAdvancedOptions', _.bind(me.onAdvancedOptions, me)); - me.api.asc_registerCallback('asc_onDocumentUpdateVersion', _.bind(me.onUpdateVersion, me)); - me.api.asc_registerCallback('asc_onServerVersion', _.bind(me.onServerVersion, me)); - me.api.asc_registerCallback('asc_onPrintUrl', _.bind(me.onPrintUrl, me)); - me.api.asc_registerCallback('asc_onDocumentName', _.bind(me.onDocumentName, me)); - me.api.asc_registerCallback('asc_onEndAction', _.bind(me.onLongActionEnd, me)); -/**/ - // this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect, this)); - // this.api.asc_registerCallback('asc_onPrintUrl', _.bind(this.onPrintUrl, this)); - // this.api.asc_registerCallback('asc_onMeta', _.bind(this.onMeta, this)); -/**/ - Common.NotificationCenter.on('api:disconnect', _.bind(me.onCoAuthoringDisconnect, me)); - Common.NotificationCenter.on('goback', _.bind(me.goBack, me)); - Common.NotificationCenter.on('download:advanced', _.bind(me.onAdvancedOptions, me)); - - // Initialize descendants - _.each(me.getApplication().controllers, function(controller) { - if (controller && _.isFunction(controller.setApi)) { - controller.setApi(me.api); - } - }); - - // Initialize api gateway - me.editorConfig = {}; - me.appOptions = {}; - me.plugins = undefined; - - 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.appReady(); - - Common.Gateway.on('internalcommand', function(data) { - if (data.command=='hardBack') { - if ($('.modal-in').length>0) { - if ( !$(me.loadMask).hasClass('modal-in') ) - uiApp.closeModal(); - Common.Gateway.internalMessage('hardBack', false); - } else - Common.Gateway.internalMessage('hardBack', true); - } - }); - Common.Gateway.internalMessage('listenHardBack'); - } - - me.defaultTitleText = '{{APP_TITLE_TEXT}}'; - me.warnNoLicense = me.warnNoLicense.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnNoLicenseUsers = me.warnNoLicenseUsers.replace(/%1/g, '{{COMPANY_NAME}}'); - me.textNoLicenseTitle = me.textNoLicenseTitle.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnLicenseExceeded = me.warnLicenseExceeded.replace(/%1/g, '{{COMPANY_NAME}}'); - me.warnLicenseUsersExceeded = me.warnLicenseUsersExceeded.replace(/%1/g, '{{COMPANY_NAME}}'); - }, - - loadConfig: function(data) { - var me = this; - - me.editorConfig = $.extend(me.editorConfig, data.config); - - me.appOptions.customization = me.editorConfig.customization; - me.appOptions.canRenameAnonymous = !((typeof (me.appOptions.customization) == 'object') && (typeof (me.appOptions.customization.anonymous) == 'object') && (me.appOptions.customization.anonymous.request===false)); - me.appOptions.guestName = (typeof (me.appOptions.customization) == 'object') && (typeof (me.appOptions.customization.anonymous) == 'object') && - (typeof (me.appOptions.customization.anonymous.label) == 'string') && me.appOptions.customization.anonymous.label.trim()!=='' ? - Common.Utils.String.htmlEncode(me.appOptions.customization.anonymous.label) : me.textGuest; - var value; - if (me.appOptions.canRenameAnonymous) { - value = Common.localStorage.getItem("guest-username"); - Common.Utils.InternalSettings.set("guest-username", value); - Common.Utils.InternalSettings.set("save-guest-username", !!value); - } - me.editorConfig.user = - me.appOptions.user = Common.Utils.fillUserInfo(me.editorConfig.user, me.editorConfig.lang, value ? (value + ' (' + me.appOptions.guestName + ')' ) : me.textAnonymous); - me.appOptions.isDesktopApp = me.editorConfig.targetApp == 'desktop'; - me.appOptions.canCreateNew = !_.isEmpty(me.editorConfig.createUrl) && !me.appOptions.isDesktopApp; - me.appOptions.canOpenRecent = 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.region = (typeof (me.editorConfig.region) == 'string') ? this.editorConfig.region.toLowerCase() : this.editorConfig.region; - me.appOptions.sharingSettingsUrl = me.editorConfig.sharingSettingsUrl; - me.appOptions.fileChoiceUrl = me.editorConfig.fileChoiceUrl; - me.appOptions.mergeFolderUrl = me.editorConfig.mergeFolderUrl; - me.appOptions.canAnalytics = false; - me.appOptions.canRequestClose = me.editorConfig.canRequestClose; - 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.editorConfig.customization.goback.requestClose && me.appOptions.canRequestClose); - me.appOptions.canBack = me.appOptions.canBackToFolder === true; - me.appOptions.canPlugins = false; - me.plugins = me.editorConfig.plugins; - - value = Common.localStorage.getItem("sse-settings-regional"); - if (value!==null) - this.api.asc_setLocale(parseInt(value)); - else { - value = me.appOptions.region; - value = Common.util.LanguageInfo.getLanguages().hasOwnProperty(value) ? value : Common.util.LanguageInfo.getLocalLanguageCode(value); - if (value!==null) - value = parseInt(value); - else - value = (this.editorConfig.lang) ? parseInt(Common.util.LanguageInfo.getLocalLanguageCode(me.editorConfig.lang)) : 0x0409; - this.api.asc_setLocale(value); - } - - if (me.appOptions.location == 'us' || me.appOptions.location == 'ca') - Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch); - - if (!me.editorConfig.customization || !(me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo)) - $('#editor_sdk').append('
            ' + '
            '.repeat(2) + '
            '); - - var value = Common.localStorage.getItem("sse-mobile-macros-mode"); - if (value === null) { - value = this.editorConfig.customization ? this.editorConfig.customization.macrosMode : 'warn'; - value = (value == 'enable') ? 1 : (value == 'disable' ? 2 : 0); - } else - value = parseInt(value); - Common.Utils.InternalSettings.set("sse-mobile-macros-mode", value); - }, - - loadDocument: function(data) { - this.appOptions.spreadsheet = data.doc; - this.permissions = {}; - var docInfo = {}; - - if ( data.doc ) { - this.permissions = $.extend(this.permissions, data.doc.permissions); - - var _permissions = $.extend({}, data.doc.permissions), - _user = new Asc.asc_CUserInfo(); - _user.put_Id(this.appOptions.user.id); - _user.put_FullName(this.appOptions.user.fullname); - - docInfo = new Asc.asc_CDocInfo(); - docInfo.put_Id(data.doc.key); - docInfo.put_Url(data.doc.url); - docInfo.put_Title(data.doc.title); - docInfo.put_Format(data.doc.fileType); - docInfo.put_VKey(data.doc.vkey); - docInfo.put_Options(data.doc.options); - docInfo.put_UserInfo(_user); - docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); - docInfo.put_Token(data.doc.token); - docInfo.put_Permissions(_permissions); - docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); - - var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); - docInfo.asc_putIsEnabledMacroses(!!enable); - enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false); - docInfo.asc_putIsEnabledPlugins(!!enable); - } - - this.api.asc_registerCallback('asc_onGetEditorPermissions', _.bind(this.onEditorPermissions, this)); - this.api.asc_registerCallback('asc_onLicenseChanged', _.bind(this.onLicenseChanged, this)); - this.api.asc_registerCallback('asc_onRunAutostartMacroses', _.bind(this.onRunAutostartMacroses, this)); - this.api.asc_setDocInfo(docInfo); - this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId); - - Common.SharedSettings.set('document', data.doc); - - if (data.doc) { - SSE.getController('Toolbar').setDocumentTitle(data.doc.title); - } - }, - - setMode: function(mode){ - var me = this; - - Common.SharedSettings.set('mode', mode.isEdit ? 'edit' : 'view'); - - if ( me.api ) { - me.api.asc_enableKeyEvents(mode.isEdit); - me.api.asc_setViewMode(!mode.isEdit && !mode.isRestrictedEdit); - } - }, - - onProcessSaveResult: function(data) { - this.api.asc_OnSaveEnd(data.result); - - if (data && data.result === false) { - uiApp.alert( - _.isEmpty(data.message) ? this.errorProcessSaveResult : data.message, - this.criticalErrorTitle - ); - } - }, - - onProcessRightsChange: function(data) { - if (data && data.enabled === false) { - var me = this, - old_rights = this._state.lostEditingRights; - 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; - } - ); - } - } - }, - - onDownloadAs: function() { - if ( !this.appOptions.canDownload) { - Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, this.errorAccessDeny); - return; - } - this._state.isFromGatewayDownloadAs = true; - this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.XLSX, true)); - }, - - onRequestClose: function() { - Common.Gateway.requestClose(); - }, - - goBack: function(current) { - if (this.appOptions.customization.goback.requestClose && this.appOptions.canRequestClose) { - Common.Gateway.requestClose(); - } else { - var href = this.appOptions.customization.goback.url; - if (!current && this.appOptions.customization.goback.blank!==false) { - window.open(href, "_blank"); - } else { - parent.location.href = href; - } - } - }, - - onLongActionBegin: function(type, id) { - 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); - - if (type === Asc.c_oAscAsyncActionType.BlockInteraction && id == Asc.c_oAscAsyncAction.Open) { - Common.Gateway.internalMessage('documentReady', {}); - Common.NotificationCenter.trigger('document:ready'); - me.onDocumentContentReady(); - } - - action = me.stackLongActions.get({type: Asc.c_oAscAsyncActionType.Information}); - action && me.setLongActionView(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)) { - this.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']: - // clearTimeout(me._state.timerSave); - 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; - - case Asc.c_oAscAsyncAction['Print']: - title = me.printTitleText; - text = me.printTextText; - break; - - case Asc.c_oAscAsyncAction['UploadImage']: - title = me.uploadImageTitleText; - text = me.uploadImageTextText; - 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 Asc.c_oAscAsyncAction['MailMergeLoadFile']: - title = me.mailMergeLoadFileText; - text = me.mailMergeLoadFileTitle; - break; - - case Asc.c_oAscAsyncAction['DownloadMerge']: - title = me.downloadMergeTitle; - text = me.downloadMergeText; - break; - - case Asc.c_oAscAsyncAction['SendMailMerge']: - title = me.sendMergeTitle; - text = me.sendMergeText; - break; - - case Asc.c_oAscAsyncAction['Waiting']: - title = me.waitText; - text = me.waitText; - break; - - case ApplyEditRights: - title = me.txtEditingMode; - text = me.txtEditingMode; - break; - - case LoadingDocument: - title = me.loadingDocumentTitleText; - text = me.loadingDocumentTextText; - break; - default: - if (typeof action.id == 'string'){ - title = action.id; - text = action.id; - } - break; - } - - if (action.type == Asc.c_oAscAsyncActionType.BlockInteraction) { - if (me.loadMask && $(me.loadMask).hasClass('modal-in')) { - $$(me.loadMask).find('.modal-title').text(title); - } else if ($$('.modal.modal-in').length < 1) { - me.loadMask = uiApp.showPreloader(title); - } - } - else { -// me.getApplication().getController('Statusbar').setStatusCaption(text); - } - }, - - onDocumentContentReady: function() { - if (this._isDocReady) - return; - - if (this._state.openDlg) - uiApp.closeModal(this._state.openDlg); - - var me = this, - value; - - me._isDocReady = true; - - var worksheetsCount = this.api.asc_getWorksheetsCount(); - var i = me.api.asc_getActiveWorksheetIndex(); - me.api.asc_showWorksheet(i); - me.api.asc_Resize(); - // me.api.asc_cleanSelection(); - - me.hidePreloader(); - me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - - value = (this.appOptions.isEditMailMerge || this.appOptions.isEditDiagram) ? 100 : Common.localStorage.getItem("sse-settings-zoom"); - var zf = (value!==null) ? parseInt(value)/100 : (this.appOptions.customization && this.appOptions.customization.zoom ? parseInt(this.appOptions.customization.zoom)/100 : 1); - this.api.asc_setZoom(zf>0 ? zf : 1); - - /** coauthoring begin **/ - this.isLiveCommenting = Common.localStorage.getBool("sse-mobile-settings-livecomment", true); - var resolved = Common.localStorage.getBool("sse-settings-resolvedcomment", true); - this.isLiveCommenting ? this.api.asc_showComments(resolved) : this.api.asc_hideComments(); - - if (this.appOptions.isEdit && this.appOptions.canLicense && !this.appOptions.isOffline && this.appOptions.canCoAuthoring) { - // Force ON fast co-authoring mode - this._state.fastCoauth = true; - this.api.asc_SetFastCollaborative(this._state.fastCoauth); - } else if (!this.appOptions.isEdit && this.appOptions.isRestrictedEdit) { - this._state.fastCoauth = true; - this.api.asc_SetFastCollaborative(this._state.fastCoauth); - this.api.asc_setAutoSaveGap(1); - } else { - this._state.fastCoauth = false; - this.api.asc_SetFastCollaborative(this._state.fastCoauth); - } - /** coauthoring end **/ - - 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); - - if (me.appOptions.isEdit) { - if (me.appOptions.canAutosave) { - value = Common.localStorage.getItem("sse-settings-autosave"); - if (value===null && me.appOptions.customization && me.appOptions.customization.autosave===false) { - value = 0; - } - // value = (!me._state.fastCoauth && value!==null) ? parseInt(value) : (me.appOptions.canCoAuthoring ? 1 : 0); - value = 1; // FORCE AUTOSAVE - } else { - value = 0; - } - me.api.asc_setAutoSaveGap(value); - - if (me.needToUpdateVersion) { - Common.NotificationCenter.trigger('api:disconnect'); - } - } - - if (me.appOptions.canAnalytics && false) { - Common.component.Analytics.initialize('UA-12442749-13', 'Spreadsheet 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.on('requestclose', _.bind(me.onRequestClose, me)); - - Common.Gateway.sendInfo({ - mode: me.appOptions.isEdit ? 'edit' : 'view' - }); - - me.applyLicense(); - - $('.view-main').on('click', function (e) { - uiApp.closeModal('.document-menu.modal-in'); - }); - - //R1C1 reference style - value = Common.localStorage.getBool('sse-settings-r1c1', false); - this.api.asc_setR1C1Mode(value); - - - $(document).on('contextmenu', _.bind(me.onContextMenu, me)); - Common.Gateway.documentReady(); - - $('.doc-placeholder').remove(); - }, - - onLicenseChanged: function(params) { - if (this.appOptions.isEditDiagram || this.appOptions.isEditMailMerge) return; - - var licType = params.asc_getLicenseType(); - if (licType !== undefined && this.appOptions.canEdit && this.editorConfig.mode !== 'view' && - (licType===Asc.c_oLicenseResult.Connections || licType===Asc.c_oLicenseResult.UsersCount || licType===Asc.c_oLicenseResult.ConnectionsOS || licType===Asc.c_oLicenseResult.UsersCountOS - || licType===Asc.c_oLicenseResult.SuccessLimit && (this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0)) - this._state.licenseType = licType; - - if (this._isDocReady && this._state.licenseType) - this.applyLicense(); - }, - - applyLicense: function() { - var me = this; - if (this.editorConfig.mode !== 'view' && !this.isSupportEditFeature()) { - var value = Common.localStorage.getItem("sse-opensource-warning"); - value = (value!==null) ? parseInt(value) : 0; - var now = (new Date).getTime(); - if (now - value > 86400000) { - Common.localStorage.setItem("sse-opensource-warning", now); - uiApp.modal({ - title: me.notcriticalErrorTitle, - text : me.errorOpensource, - buttons: [{text: 'OK'}] - }); - } - SSE.getController('Toolbar').activateControls(); - return; - } - if (this._state.licenseType) { - var license = this._state.licenseType, - buttons = [{text: 'OK'}]; - if ((this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0 && - (license===Asc.c_oLicenseResult.SuccessLimit || license===Asc.c_oLicenseResult.ExpiredLimited || this.appOptions.permissionsLicense===Asc.c_oLicenseResult.SuccessLimit)) { - license = (license===Asc.c_oLicenseResult.ExpiredLimited) ? this.warnLicenseLimitedNoAccess : this.warnLicenseLimitedRenewed; - } else if (license===Asc.c_oLicenseResult.Connections || license===Asc.c_oLicenseResult.UsersCount) { - license = (license===Asc.c_oLicenseResult.Connections) ? this.warnLicenseExceeded : this.warnLicenseUsersExceeded; - } else { - license = (license===Asc.c_oLicenseResult.ConnectionsOS) ? this.warnNoLicense : this.warnNoLicenseUsers; - buttons = [{ - text: me.textBuyNow, - bold: true, - onClick: function() { - window.open('{{PUBLISHER_URL}}', "_blank"); - } - }, - { - text: me.textContactUs, - onClick: function() { - window.open('mailto:{{SALES_EMAIL}}', "_blank"); - } - }]; - } - if (this._state.licenseType===Asc.c_oLicenseResult.SuccessLimit) { - SSE.getController('Toolbar').activateControls(); - } else { - SSE.getController('Toolbar').activateViewControls(); - SSE.getController('Toolbar').deactivateEditControls(); - Common.NotificationCenter.trigger('api:disconnect'); - } - - var value = Common.localStorage.getItem("sse-license-warning"); - value = (value!==null) ? parseInt(value) : 0; - var now = (new Date).getTime(); - - if (now - value > 86400000) { - Common.localStorage.setItem("sse-license-warning", now); - uiApp.modal({ - title: me.textNoLicenseTitle, - text : license, - buttons: buttons - }); - } - } else { - if (!me.appOptions.isDesktopApp && !me.appOptions.canBrandingExt && - me.editorConfig && me.editorConfig.customization && (me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo)) { - uiApp.modal({ - title: me.textPaidFeature, - text : me.textCustomLoader, - buttons: [{ - text: me.textContactUs, - bold: true, - onClick: function() { - window.open('mailto:{{SALES_EMAIL}}', "_blank"); - } - }, - { text: me.textClose }] - }); - } - SSE.getController('Toolbar').activateControls(); - } - }, - - 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 ? params.asc_getLicenseType() : Asc.c_oLicenseResult.Error; - if (params && !(me.appOptions.isEditDiagram || me.appOptions.isEditMailMerge)) { - 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; - } - if (Asc.c_oLicenseResult.ExpiredLimited === licType) - me._state.licenseType = licType; - - if ( me.onServerVersion(params.asc_getBuildVersion()) ) return; - - if (params.asc_getRights() !== Asc.c_oRights.Edit) { - me.permissions.edit = false; - } - - me.appOptions.permissionsLicense = licType; - me.appOptions.canAutosave = true; - me.appOptions.canAnalytics = params.asc_getIsAnalyticsEnable(); - - me.appOptions.isOffline = me.api.asc_isOffline(); - me.appOptions.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); - me.appOptions.isLightVersion = params.asc_getIsLight(); - /** coauthoring begin **/ - me.appOptions.canCoAuthoring = !me.appOptions.isLightVersion; - /** coauthoring end **/ - me.appOptions.canComments = me.appOptions.canLicense && (me.permissions.comment===undefined ? me.appOptions.isEdit : me.permissions.comment) && (me.editorConfig.mode !== 'view'); - me.appOptions.canComments = me.appOptions.canComments && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); - me.appOptions.canViewComments = me.appOptions.canComments || !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); - me.appOptions.canEditComments= me.appOptions.isOffline || !me.permissions.editCommentAuthorOnly; - me.appOptions.canDeleteComments= me.appOptions.isOffline || !me.permissions.deleteCommentAuthorOnly; - if ((typeof (this.editorConfig.customization) == 'object') && me.editorConfig.customization.commentAuthorOnly===true) { - console.log("Obsolete: The 'commentAuthorOnly' parameter of the 'customization' section is deprecated. Please use 'editCommentAuthorOnly' and 'deleteCommentAuthorOnly' parameters in the permissions instead."); - if (me.permissions.editCommentAuthorOnly===undefined && me.permissions.deleteCommentAuthorOnly===undefined) - me.appOptions.canEditComments = me.appOptions.canDeleteComments = me.appOptions.isOffline; - } - me.appOptions.canChat = me.appOptions.canLicense && !me.appOptions.isOffline && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.chat===false); - me.appOptions.trialMode = params.asc_getLicenseMode(); - - me.appOptions.canBranding = params.asc_getCustomization(); - me.appOptions.canBrandingExt = params.asc_getCanBranding() && (typeof me.editorConfig.customization == 'object'); - - me.appOptions.canUseReviewPermissions = me.appOptions.canLicense && (!!me.permissions.reviewGroups || - me.editorConfig.customization && me.editorConfig.customization.reviewPermissions && (typeof (me.editorConfig.customization.reviewPermissions) == 'object')); - me.appOptions.canUseCommentPermissions = me.appOptions.canLicense && !!me.permissions.commentGroups; - AscCommon.UserInfoParser.setParser(me.appOptions.canUseReviewPermissions || me.appOptions.canUseCommentPermissions); - AscCommon.UserInfoParser.setCurrentName(me.appOptions.user.fullname); - me.appOptions.canUseReviewPermissions && AscCommon.UserInfoParser.setReviewPermissions(me.permissions.reviewGroups, me.editorConfig.customization.reviewPermissions); - me.appOptions.canUseCommentPermissions && AscCommon.UserInfoParser.setCommentPermissions(me.permissions.commentGroups); - } - - me.appOptions.canRequestEditRights = me.editorConfig.canRequestEditRights; - me.appOptions.canEdit = me.permissions.edit !== false && // can edit - (me.editorConfig.canRequestEditRights || me.editorConfig.mode !== 'view') && // if mode=="view" -> canRequestEditRights must be defined - me.isSupportEditFeature(); - me.appOptions.isEdit = (me.appOptions.canLicense || me.appOptions.isEditDiagram || me.appOptions.isEditMailMerge) && me.permissions.edit !== false && me.editorConfig.mode !== 'view' && me.isSupportEditFeature(); - me.appOptions.canDownload = (me.permissions.download !== false); - me.appOptions.canPrint = (me.permissions.print !== false); - me.appOptions.isRestrictedEdit = !me.appOptions.isEdit && me.appOptions.canComments; - - me.applyModeCommonElements(); - me.applyModeEditorElements(); - - me.api.asc_setViewMode(!me.appOptions.isEdit && !me.appOptions.isRestrictedEdit); - (me.appOptions.isRestrictedEdit && me.appOptions.canComments) && me.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyComments); - me.api.asc_LoadDocument(); - - if (!me.appOptions.isEdit) { - me.hidePreloader(); - me.onLongActionBegin(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - } - - if (me.appOptions.canBrandingExt && (me.editorConfig.customization && (me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo))) { - $('#editor-navbar #navbar-logo').hide(); - $('#editor-navbar').removeClass('logo-navbar'); - $('.page.editor').removeClass('with-logo'); - } - }, - - applyModeCommonElements: function() { - var me = this; - - window.editor_elements_prepared = true; - - _.each(me.getApplication().controllers, function(controller) { - if (controller && _.isFunction(controller.setMode)) { - controller.setMode(me.appOptions); - } - }); - - if (!me.appOptions.isEditMailMerge && !me.appOptions.isEditDiagram) { - me.api.asc_registerCallback('asc_onSendThemeColors', _.bind(me.onSendThemeColors, me)); - me.api.asc_registerCallback('asc_onDownloadUrl', _.bind(me.onDownloadUrl, me)); - } - me.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me)); - me.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me)); - me.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(me.onUserConnection, me)); - }, - - applyModeEditorElements: function() { - if (this.appOptions.isEdit) { - var me = this; - - var value = Common.localStorage.getItem('se-mobile-settings-unit'); - value = (value!==null) ? parseInt(value) : (me.appOptions.customization && me.appOptions.customization.unit ? Common.Utils.Metric.c_MetricUnits[me.appOptions.customization.unit.toLocaleLowerCase()] : Common.Utils.Metric.getDefaultMetric()); - (value===undefined) && (value = Common.Utils.Metric.getDefaultMetric()); - Common.Utils.Metric.setCurrentMetric(value); - - me.api.asc_registerCallback('asc_onDocumentModifiedChanged', _.bind(me.onDocumentModifiedChanged, me)); - me.api.asc_registerCallback('asc_onDocumentCanSaveChanged', _.bind(me.onDocumentCanSaveChanged, me)); - /** coauthoring begin **/ - me.api.asc_registerCallback('asc_onCollaborativeChanges', _.bind(me.onCollaborativeChanges, me)); - me.api.asc_registerCallback('asc_OnTryUndoInFastCollaborative',_.bind(me.onTryUndoInFastCollaborative, me)); - /** coauthoring end **/ - if (me.appOptions.isEditDiagram) - me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onSelectionChanged, me)); - - 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); - } - }, - - onExternalMessage: function(msg) { - if (msg && msg.msg) { - msg.msg = (msg.msg).toString(); - uiApp.addNotification({ - title: uiApp.params.modalTitle, - message: [msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)] - }); - - Common.component.Analytics.trackEvent('External Error'); - } - }, - - onError: function(id, level, errData) { - if (id == Asc.c_oAscError.ID.LoadingScriptError) { - uiApp.addNotification({ - title: this.criticalErrorTitle, - message: this.scriptLoadError - }); - return; - } - - this.hidePreloader(); - this.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - - var config = { - closable: false - }; - - switch (id) { - case Asc.c_oAscError.ID.Unknown: - config.msg = this.unknownErrorText; - break; - - case Asc.c_oAscError.ID.ConvertationTimeout: - config.msg = this.convertationTimeoutText; - break; - - case Asc.c_oAscError.ID.ConvertationOpenError: - config.msg = this.openErrorText; - break; - - case Asc.c_oAscError.ID.ConvertationSaveError: - config.msg = this.saveErrorText; - break; - - case Asc.c_oAscError.ID.DownloadError: - config.msg = this.downloadErrorText; - break; - - case Asc.c_oAscError.ID.UplImageSize: - config.msg = this.uploadImageSizeMessage; - break; - - case Asc.c_oAscError.ID.UplImageExt: - config.msg = this.uploadImageExtMessage; - break; - - case Asc.c_oAscError.ID.UplImageFileCount: - config.msg = this.uploadImageFileCountMessage; - break; - - case Asc.c_oAscError.ID.PastInMergeAreaError: - config.msg = this.pastInMergeAreaError; - break; - - case Asc.c_oAscError.ID.FrmlWrongCountParentheses: - config.msg = this.errorWrongBracketsCount; - config.closable = true; - break; - - case Asc.c_oAscError.ID.FrmlWrongOperator: - config.msg = this.errorWrongOperator; - config.closable = true; - break; - - case Asc.c_oAscError.ID.FrmlWrongMaxArgument: - config.msg = this.errorCountArgExceed; - config.closable = true; - break; - - case Asc.c_oAscError.ID.FrmlWrongCountArgument: - config.msg = this.errorCountArg; - config.closable = true; - break; - - case Asc.c_oAscError.ID.FrmlWrongFunctionName: - config.msg = this.errorFormulaName; - config.closable = true; - break; - - case Asc.c_oAscError.ID.FrmlAnotherParsingError: - config.msg = this.errorFormulaParsing; - config.closable = true; - break; - - case Asc.c_oAscError.ID.FrmlWrongArgumentRange: - config.msg = this.errorArgsRange; - config.closable = true; - break; - - case Asc.c_oAscError.ID.UnexpectedGuid: - config.msg = this.errorUnexpectedGuid; - break; - - case Asc.c_oAscError.ID.Database: - config.msg = this.errorDatabaseConnection; - break; - - case Asc.c_oAscError.ID.FileRequest: - config.msg = this.errorFileRequest; - break; - - case Asc.c_oAscError.ID.FileVKey: - config.msg = this.errorFileVKey; - 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.MaxDataPointsError: - config.msg = this.errorMaxPoints; - break; - - case Asc.c_oAscError.ID.FrmlOperandExpected: - config.msg = this.errorOperandExpected; - config.closable = true; - break; - - case Asc.c_oAscError.ID.VKeyEncrypt: - config.msg = this.errorToken; - break; - - case Asc.c_oAscError.ID.KeyExpire: - config.msg = this.errorTokenExpire; - break; - - case Asc.c_oAscError.ID.UserCountExceed: - config.msg = this.errorUsersExceed; - break; - - case Asc.c_oAscError.ID.CannotMoveRange: - config.msg = this.errorMoveRange; - break; - - case Asc.c_oAscError.ID.UplImageUrl: - config.msg = this.errorBadImageUrl; - break; - - case Asc.c_oAscError.ID.CoAuthoringDisconnect: - config.msg = this.errorViewerDisconnect; - break; - - case Asc.c_oAscError.ID.ConvertationPassword: - config.msg = this.errorFilePassProtect; - break; - - case Asc.c_oAscError.ID.AutoFilterDataRangeError: - config.msg = this.errorAutoFilterDataRange; - break; - - case Asc.c_oAscError.ID.AutoFilterChangeFormatTableError: - config.msg = this.errorAutoFilterChangeFormatTable; - break; - - case Asc.c_oAscError.ID.AutoFilterChangeError: - config.msg = this.errorAutoFilterChange; - break; - - case Asc.c_oAscError.ID.AutoFilterMoveToHiddenRangeError: - config.msg = this.errorAutoFilterHiddenRange; - break; - - case Asc.c_oAscError.ID.CannotFillRange: - config.msg = this.errorFillRange; - 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.InvalidReferenceOrName: - config.msg = this.errorInvalidRef; - break; - - case Asc.c_oAscError.ID.LockCreateDefName: - config.msg = this.errorCreateDefName; - break; - - case Asc.c_oAscError.ID.PasteMaxRangeError: - config.msg = this.errorPasteMaxRange; - break; - - case Asc.c_oAscError.ID.LockedAllError: - config.msg = this.errorLockedAll; - break; - - case Asc.c_oAscError.ID.Warning: - config.msg = this.errorConnectToServer; - break; - - case Asc.c_oAscError.ID.LockedWorksheetRename: - config.msg = this.errorLockedWorksheetRename; - break; - - case Asc.c_oAscError.ID.OpenWarning: - config.msg = this.errorOpenWarning; - break; - - case Asc.c_oAscError.ID.FrmlWrongReferences: - config.msg = this.errorFrmlWrongReferences; - config.closable = true; - break; - - case Asc.c_oAscError.ID.CopyMultiselectAreaError: - config.msg = this.errorCopyMultiselectArea; - break; - - case Asc.c_oAscError.ID.PrintMaxPagesCount: - config.msg = this.errorPrintMaxPagesCount; - break; - - case Asc.c_oAscError.ID.SessionAbsolute: - config.msg = this.errorSessionAbsolute; - break; - - case Asc.c_oAscError.ID.SessionIdle: - config.msg = this.errorSessionIdle; - break; - - case Asc.c_oAscError.ID.SessionToken: - config.msg = this.errorSessionToken; - break; - - case Asc.c_oAscError.ID.AccessDeny: - config.msg = this.errorAccessDeny; - break; - - case Asc.c_oAscError.ID.DataEncrypted: - config.msg = this.errorDataEncrypted; - break; - - case Asc.c_oAscError.ID.CannotChangeFormulaArray: - config.msg = this.errorChangeArray; - break; - - case Asc.c_oAscError.ID.EditingError: - config.msg = this.errorEditingDownloadas; - break; - - case Asc.c_oAscError.ID.MultiCellsInTablesFormulaArray: - config.msg = this.errorMultiCellFormula; - break; - - case Asc.c_oAscError.ID.FrmlMaxTextLength: - config.msg = this.errorFrmlMaxTextLength; - break; - - case Asc.c_oAscError.ID.ConvertationOpenLimitError: - config.msg = this.errorFileSizeExceed; - break; - - case Asc.c_oAscError.ID.UpdateVersion: - config.msg = this.errorUpdateVersionOnDisconnect; - break; - - case Asc.c_oAscError.ID.FrmlMaxLength: - config.msg = this.errorFrmlMaxLength; - break; - - case Asc.c_oAscError.ID.FrmlMaxReference: - config.msg = this.errorFrmlMaxReference; - break; - - case Asc.c_oAscError.ID.DataValidate: - errData && errData.asc_getErrorTitle() && (config.title = Common.Utils.String.htmlEncode(errData.asc_getErrorTitle())); - config.msg = errData && errData.asc_getError() ? Common.Utils.String.htmlEncode(errData.asc_getError()) : this.errorDataValidate; - break; - - case Asc.c_oAscError.ID.LockedCellPivot: - config.msg = this.errorLockedCellPivot; - break; - - default: - config.msg = this.errorDefaultMessage.replace('%1', id); - break; - } - - - if (level == Asc.c_oAscError.Level.Critical) { - - // report only critical errors - Common.Gateway.reportError(id, config.msg); - - config.title = this.criticalErrorTitle; -// config.iconCls = 'error'; - - if (this.appOptions.canBackToFolder && !this.appOptions.isDesktopApp) { - config.msg += '

            ' + this.criticalErrorExtText; - config.callback = function() { - Common.NotificationCenter.trigger('goback', true); - } - } - if (id == Asc.c_oAscError.ID.DataEncrypted) { - this.api.asc_coAuthoringDisconnect(); - Common.NotificationCenter.trigger('api:disconnect'); - } - } - else { - Common.Gateway.reportWarning(id, config.msg); - - config.title = config.title || this.notcriticalErrorTitle; - config.callback = _.bind(function(btn){ - if (id == Asc.c_oAscError.ID.DataValidate) { - this.api.asc_closeCellEditor(true); - } - this._state.lostEditingRights = false; - }, this); - } - - if (id == Asc.c_oAscError.ID.DataValidate) { - config.buttons = [{ text: 'OK' }, { text: this.textCancel, onClick: config.callback }]; - } else { - config.buttons = [{ text: 'OK', onClick: config.callback }]; - $('#ce-cell-content').blur(); - } - uiApp.modal({ - title : config.title, - text : config.msg, - buttons : config.buttons - }); - - Common.component.Analytics.trackEvent('Internal Error', id.toString()); - }, - - onCoAuthoringDisconnect: function() { - this._state.isDisconnected = true; - }, - - updateWindowTitle: function(force) { - var isModified = this.api.asc_isDocumentModified(); - if (this._state.isDocModified !== isModified || force) { - var title = this.defaultTitleText; - - if (window.document.title != title) - window.document.title = title; - - this._isDocReady && (this._state.isDocModified !== isModified) && Common.Gateway.setDocumentModified(isModified); - this._state.isDocModified = isModified; - } - }, - - onDocumentModifiedChanged: function() { - var isModified = this.api.asc_isDocumentCanSave(); - if (this._state.isDocModified !== isModified) { - this._isDocReady && Common.Gateway.setDocumentModified(this.api.asc_isDocumentModified()); - } - - this.updateWindowTitle(); - }, - onDocumentCanSaveChanged: function (isCanSave) { - // - }, - - onBeforeUnload: function() { - Common.localStorage.save(); - - var isEdit = this.permissions.edit !== false && this.editorConfig.mode !== 'view' && this.editorConfig.mode !== 'editdiagram'; - if (isEdit && this.api.asc_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() { - $('#loading-mask').hide().remove(); - }, - - onDownloadUrl: function(url) { - if (this._state.isFromGatewayDownloadAs) { - Common.Gateway.downloadAs(url); - } - - 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); - }) - }); - }, - - onServerVersion: function(buildVersion) { - var me = this; - if (me.changeServerVersion) return true; - - if (DocsAPI.DocEditor.version() !== buildVersion && !window.compareVersions) { - me.changeServerVersion = true; - uiApp.alert( - me.errorServerVersion, - me.titleServerVersion, - function () { - _.defer(function() { - Common.Gateway.updateVersion(); - }) - }); - return true; - } - return false; - }, - - onCollaborativeChanges: function() { - // - }, - /** coauthoring end **/ - - synchronizeChanges: function() { - this._state.hasCollaborativeChanges = false; - }, - - initNames: function() { - this.shapeGroupNames = [ - this.txtBasicShapes, - this.txtFiguredArrows, - this.txtMath, - this.txtCharts, - this.txtStarsRibbons, - this.txtCallouts, - this.txtButtons, - this.txtRectangles, - this.txtLines - ]; - }, - - updateThemeColors: function() { - // - }, - - onSendThemeColors: function(colors, standart_colors) { - }, - - onAdvancedOptions: function(type, advOptions, mode, formatOptions) { - if (this._state.openDlg) return; - - var me = this; - if (type == Asc.c_oAscAdvancedOptionsID.CSV) { - var picker, - pages = [], - pagesName = []; - - _.each(advOptions.asc_getCodePages(), function(page) { - pages.push(page.asc_getCodePage()); - pagesName.push(page.asc_getCodePageName()); - }); - - $(me.loadMask).hasClass('modal-in') && uiApp.closeModal(me.loadMask); - - me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - - var buttons = []; - if (mode === 2) { - buttons.push({ - text: me.textCancel, - onClick: function () { - me._state.openDlg = null; - } - }); - } - buttons.push({ - text: 'OK', - bold: true, - onClick: function() { - var encoding = picker.cols[0].value, - delimiter = picker.cols[1].value; - - if (me.api) { - if (mode==2) { - formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(encoding, delimiter)); - me.api.asc_DownloadAs(formatOptions); - } else { - me.api.asc_setAdvancedOptions(type, new Asc.asc_CTextOptions(encoding, delimiter)); - } - - if (!me._isDocReady) { - me.onLongActionBegin(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - } - } - me._state.openDlg = null; - } - }); - - me._state.openDlg = uiApp.modal({ - title: me.advCSVOptions, - text: '', - afterText: - '
            ' + - '
            ' + - '
            ' + me.txtEncoding + '
            ' + - '
            ' + me.txtDelimiter + '
            ' + - '
            ' + - '
            ' + - '
            ', - buttons: buttons - }); - - var recommendedSettings = advOptions.asc_getRecommendedSettings(); - - picker = uiApp.picker({ - container: '#txt-encoding', - toolbar: false, - rotateEffect: true, - value: [ - recommendedSettings && recommendedSettings.asc_getCodePage(), - (recommendedSettings && recommendedSettings.asc_getDelimiter()) ? recommendedSettings.asc_getDelimiter() : 4 - ], - cols: [{ - textAlign: 'left', - values: pages, - displayValues: pagesName - },{ - textAlign: 'right', - width: 120, - values: [4, 2, 3, 1, 5], - displayValues: [',', ';', ':', this.txtTab, this.txtSpace] - }] - }); - - // Vertical align - $$(me._state.openDlg).css({ - marginTop: - Math.round($$(me._state.openDlg).outerHeight() / 2) + 'px' - }); - } else if (type == Asc.c_oAscAdvancedOptionsID.DRM) { - $(me.loadMask).hasClass('modal-in') && uiApp.closeModal(me.loadMask); - - me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); - - var buttons = [{ - text: 'OK', - bold: true, - close: false, - onClick: function () { - if (!me._state.openDlg) return; - $(me._state.openDlg).hasClass('modal-in') && uiApp.closeModal(me._state.openDlg); - var password = $(me._state.openDlg).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); - } - me._state.openDlg = null; - } - }]; - if (me.appOptions.canRequestClose) - buttons.push({ - text: me.closeButtonText, - onClick: function () { - Common.Gateway.requestClose(); - me._state.openDlg = null; - } - }); - - me._state.openDlg = uiApp.modal({ - title: me.advDRMOptions, - text: (typeof advOptions=='string' ? advOptions : me.txtProtected), - afterText: '
            ', - buttons: buttons - }); - - // Vertical align - $$(me._state.openDlg).css({ - marginTop: - Math.round($$(me._state.openDlg).outerHeight() / 2) + 'px' - }); - } - }, - - onTryUndoInFastCollaborative: function() { - uiApp.alert( - this.textTryUndoRedo, - this.notcriticalErrorTitle - ); - }, - - onAuthParticipantsChanged: function(users) { - var length = 0; - _.each(users, function(item){ - if (!item.asc_getView()) - length++; - }); - this._state.usersCount = length; - }, - - onUserConnection: function(change){ - if (change && this.appOptions.user.guest && this.appOptions.canRenameAnonymous && (change.asc_getIdOriginal() == this.appOptions.user.id)) { // change name of the current user - var name = change.asc_getUserName(); - if (name && name !== AscCommon.UserInfoParser.getCurrentName() ) { - AscCommon.UserInfoParser.setCurrentName(name); - } - } - }, - - applySettings: function() { - if (this.appOptions.isEdit && this.appOptions.canLicense && !this.appOptions.isOffline && this.appOptions.canCoAuthoring) { - var value = Common.localStorage.getItem("sse-settings-coauthmode"), - oldval = this._state.fastCoauth; - this._state.fastCoauth = (value===null || parseInt(value) == 1); - if (this._state.fastCoauth && !oldval) - this.synchronizeChanges(); - } - }, - - onDocumentName: function(name) { - this.updateWindowTitle(true); - }, - - onPrint: function() { - if (!this.appOptions.canPrint) return; - - if (this.api) - this.api.asc_Print(); - Common.component.Analytics.trackEvent('Print'); - }, - - onPrintUrl: function(url) { - if (this.iframePrint) { - this.iframePrint.parentNode.removeChild(this.iframePrint); - this.iframePrint = null; - } - if (!this.iframePrint) { - var me = this; - this.iframePrint = document.createElement("iframe"); - this.iframePrint.id = "id-print-frame"; - this.iframePrint.style.display = 'none'; - this.iframePrint.style.visibility = "hidden"; - this.iframePrint.style.position = "fixed"; - this.iframePrint.style.right = "0"; - this.iframePrint.style.bottom = "0"; - document.body.appendChild(this.iframePrint); - this.iframePrint.onload = function() { - me.iframePrint.contentWindow.focus(); - me.iframePrint.contentWindow.print(); - me.iframePrint.contentWindow.blur(); - window.focus(); - }; - } - if (url) this.iframePrint.src = url; - }, - - onContextMenu: function(event){ - var canCopyAttr = event.target.getAttribute('data-can-copy'), - isInputEl = (event.target instanceof HTMLInputElement) || (event.target instanceof HTMLTextAreaElement); - - if ((isInputEl && canCopyAttr === 'false') || - (!isInputEl && canCopyAttr !== 'true')) { - event.stopPropagation(); - event.preventDefault(); - return false; - } - }, - - isSupportEditFeature: function() { - return false; - }, - - onRunAutostartMacroses: function() { - var me = this, - enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); - if (enable) { - var value = Common.Utils.InternalSettings.get("sse-mobile-macros-mode"); - if (value==1) - this.api.asc_runAutostartMacroses(); - else if (value === 0) { - uiApp.modal({ - title: this.notcriticalErrorTitle, - text: this.textHasMacros, - afterText: '', - buttons: [{ - text: this.textYes, - onClick: function () { - var dontshow = $('input[name="checkbox-show-macros"]').prop('checked'); - if (dontshow) { - Common.Utils.InternalSettings.set("sse-mobile-macros-mode", 1); - Common.localStorage.setItem("sse-mobile-macros-mode", 1); - } - setTimeout(function() { - me.api.asc_runAutostartMacroses(); - }, 1); - } - }, - { - text: this.textNo, - onClick: function () { - var dontshow = $('input[name="checkbox-show-macros"]').prop('checked'); - if (dontshow) { - Common.Utils.InternalSettings.set("sse-mobile-macros-mode", 2); - Common.localStorage.setItem("sse-mobile-macros-mode", 2); - } - } - }] - }); - } - } - }, - - 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.', - criticalErrorTitle: 'Error', - notcriticalErrorTitle: 'Warning', - errorDefaultMessage: 'Error code: %1', - criticalErrorExtText: 'Press "OK" 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...', - savePreparingText: 'Preparing to save', - savePreparingTitle: 'Preparing to save. Please wait...', - uploadImageSizeMessage: 'Maximum image size limit exceeded.', - uploadImageExtMessage: 'Unknown image format.', - uploadImageFileCountMessage: 'No images uploaded.', - reloadButtonText: 'Reload Page', - unknownErrorText: 'Unknown error.', - convertationTimeoutText: 'Convertation timeout exceeded.', - downloadErrorText: 'Download failed.', - unsupportedBrowserErrorText: 'Your browser is not supported.', - requestEditFailedTitleText: 'Access denied', - requestEditFailedMessageText: 'Someone is editing this document right now. Please try again later.', - textLoadingDocument: 'Loading spreadsheet', - applyChangesTitleText: 'Loading Data', - applyChangesTextText: 'Loading data...', - errorKeyEncrypt: 'Unknown key descriptor', - errorKeyExpire: 'Key descriptor expired', - errorUsersExceed: 'Count of users was exceed', - errorCoAuthoringDisconnect: 'Server connection lost. You can\'t edit anymore.', - errorFilePassProtect: 'The file is password protected and cannot be opened.', - txtBasicShapes: 'Basic Shapes', - txtFiguredArrows: 'Figured Arrows', - txtMath: 'Math', - txtCharts: 'Charts', - txtStarsRibbons: 'Stars & Ribbons', - txtCallouts: 'Callouts', - txtButtons: 'Buttons', - txtRectangles: 'Rectangles', - txtLines: 'Lines', - txtEditingMode: 'Set editing mode...', - textAnonymous: 'Anonymous', - loadingDocumentTitleText: 'Loading spreadsheet', - loadingDocumentTextText: 'Loading spreadsheet...', - 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:
            opening price, max price, min price, closing price.', - errorDataRange: 'Incorrect data range.', - errorDatabaseConnection: 'External error.
            Database connection error. Please, contact support.', - titleUpdateVersion: 'Version changed', - 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: 'Series', - errorMailMergeLoadFile: 'Loading failed', - mailMergeLoadFileText: 'Loading Data Source...', - mailMergeLoadFileTitle: 'Loading Data Source', - errorMailMergeSaveFile: 'Merge failed.', - downloadMergeText: 'Downloading...', - downloadMergeTitle: 'Downloading', - sendMergeTitle: 'Sending Merge', - sendMergeText: 'Sending Merge...', - txtArt: 'Your text here', - errorConnectToServer: ' The document could not be saved. Please check connection settings or contact your administrator.
            When you click the \'OK\' button, you will be prompted to download the document.', - textTryUndoRedo: 'The Undo/Redo functions are disabled for the Fast co-editing mode.
            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', - txtErrorLoadHistory: 'Loading history failed', - textBuyNow: 'Visit website', - textNoLicenseTitle: 'License limit reached', - textContactUs: 'Contact sales', - errorViewerDisconnect: 'Connection is lost. You can still view the document,
            but will not be able to download until the connection is restored and page is reloaded.', - warnLicenseExp: 'Your license has expired.
            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', - errorToken: 'The document security token is not correctly formed.
            Please contact your Document Server administrator.', - errorTokenExpire: 'The document security token has expired.
            Please contact your Document Server administrator.', - errorSessionAbsolute: 'The document editing session has expired. Please reload the page.', - errorSessionIdle: 'The document has not been edited for quite a long time. Please reload the page.', - errorSessionToken: 'The connection to the server has been interrupted. Please reload the page.', - errorAccessDeny: 'You are trying to perform an action you do not have rights for.
            Please contact your Document Server administrator.', - txtEncoding: 'Encoding', - txtDelimiter: 'Delimiter', - txtSpace: 'Space', - txtTab: 'Tab', - advCSVOptions: 'Choose CSV Options', - advDRMOptions: 'Protected File', - advDRMEnterPassword: 'You password please:', - advDRMPassword: 'Password', - textOK: 'OK', - textCancel: 'Cancel', - textPreloader: 'Loading... ', - textUsername: 'Username', - textPassword: 'Password', - textBack: 'Back', - textClose: 'Close', - textDone: 'Done', - titleServerVersion: 'Editor updated', - errorServerVersion: 'The editor version has been updated. The page will be reloaded to apply the changes.', - txtAccent: 'Accent', - txtStyle_Normal: 'Normal', - txtStyle_Heading_1: 'Heading 1', - txtStyle_Heading_2: 'Heading 2', - txtStyle_Heading_3: 'Heading 3', - txtStyle_Heading_4: 'Heading 4', - txtStyle_Title: 'Title', - txtStyle_Neutral: 'Neutral', - txtStyle_Bad: 'Bad', - txtStyle_Good: 'Good', - txtStyle_Input: 'Input', - txtStyle_Output: 'Output', - txtStyle_Calculation: 'Calculation', - txtStyle_Check_Cell: 'Check Cell', - txtStyle_Explanatory_Text: 'Explanatory Text', - txtStyle_Note: 'Note', - txtStyle_Linked_Cell: 'Linked Cell', - txtStyle_Warning_Text: 'Warning Text', - txtStyle_Total: 'Total', - txtStyle_Currency: 'Currency', - txtStyle_Percent: 'Percent', - txtStyle_Comma: 'Comma', - errorMaxPoints: 'The maximum number of points in series per chart is 4096.', - txtProtected: 'Once you enter the password and open the file, the current password to the file will be reset', - warnNoLicense: "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
            Contact %1 sales team for personal upgrade terms.", - warnNoLicenseUsers: "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", - warnLicenseExceeded: "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
            Contact your administrator to learn more.", - warnLicenseUsersExceeded: "You've reached the user limit for %1 editors. Contact your administrator to learn more.", - errorDataEncrypted: 'Encrypted changes have been received, they cannot be deciphered.', - pastInMergeAreaError: 'Cannot change part of a merged cell', - errorWrongBracketsCount: 'Found an error in the formula entered.
            Wrong cout of brackets.', - errorWrongOperator: 'An error in the entered formula. Wrong operator is used.
            Please correct the error or use the Esc button to cancel the formula editing.', - errorCountArgExceed: 'Found an error in the formula entered.
            Count of arguments exceeded.', - errorCountArg: 'Found an error in the formula entered.
            Invalid number of arguments.', - errorFormulaName: 'Found an error in the formula entered.
            Incorrect formula name.', - errorFormulaParsing: 'Internal error while the formula parsing.', - errorArgsRange: 'Found an error in the formula entered.
            Incorrect arguments range.', - errorUnexpectedGuid: 'External error.
            Unexpected Guid. Please, contact support.', - errorFileRequest: 'External error.
            File Request. Please, contact support.', - errorFileVKey: 'External error.
            Incorrect securety key. Please, contact support.', - errorOperandExpected: 'The entered function syntax is not correct. Please check if you are missing one of the parentheses - \'(\' or \')\'.', - errorMoveRange: 'Cann\'t change a part of merged cell', - errorBadImageUrl: 'Image url is incorrect', - errorAutoFilterDataRange: 'The operation could not be done for the selected range of cells.
            Select a uniform data range inside or outside the table and try again.', - errorAutoFilterChangeFormatTable: 'The operation could not be done for the selected cells as you cannot move a part of the table.
            Select another data range so that the whole table was shifted and try again.', - errorAutoFilterHiddenRange: 'The operation cannot be performed because the area contains filtered cells.
            Please unhide the filtered elements and try again.', - errorAutoFilterChange: 'The operation is not allowed, as it is attempting to shift cells in a table on your worksheet.', - errorFillRange: 'Could not fill the selected range of cells.
            All the merged cells need to be the same size.', - errorInvalidRef: 'Enter a correct name for the selection or a valid reference to go to.', - errorCreateDefName: 'The existing named ranges cannot be edited and the new ones cannot be created
            at the moment as some of them are being edited.', - errorPasteMaxRange: 'The copy and paste area does not match. Please select an area with the same size or click the first cell in a row to paste the copied cells.', - errorLockedAll: 'The operation could not be done as the sheet has been locked by another user.', - errorLockedWorksheetRename: 'The sheet cannot be renamed at the moment as it is being renamed by another user', - errorOpenWarning: 'The length of one of the formulas in the file exceeded
            the allowed number of characters and it was removed.', - errorFrmlWrongReferences: 'The function refers to a sheet that does not exist.
            Please check the data and try again.', - errorCopyMultiselectArea: 'This command cannot be used with multiple selections.
            Select a single range and try again.', - errorPrintMaxPagesCount: 'Unfortunately, it’s not possible to print more than 1500 pages at once in the current version of the program.
            This restriction will be eliminated in upcoming releases.', - closeButtonText: 'Close File', - scriptLoadError: 'The connection is too slow, some of the components could not be loaded. Please reload the page.', - errorChangeArray: 'You cannot change part of an array.', - errorEditingDownloadas: 'An error occurred during the work with the document.
            Use the \'Download\' option to save the file backup copy to your computer hard drive.', - errorMultiCellFormula: 'Multi-cell array formulas are not allowed in tables.', - textPaidFeature: 'Paid feature', - textCustomLoader: 'Please note that according to the terms of the license you are not entitled to change the loader.
            Please contact our Sales Department to get a quote.', - errorFrmlMaxTextLength: 'Text values in formulas are limited to 255 characters.
            Use the CONCATENATE function or concatenation operator (&)', - waitText: 'Please, wait...', - errorFileSizeExceed: 'The file size exceeds the limitation set for your server.
            Please contact your Document Server administrator for details.', - errorUpdateVersionOnDisconnect: 'Internet connection has been restored, and the file version has been changed.
            Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.', - errorOpensource: 'Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.', - textHasMacros: 'The file contains automatic macros.
            Do you want to run macros?', - textRemember: 'Remember my choice', - textYes: 'Yes', - textNo: 'No', - errorFrmlMaxLength: 'You cannot add this formula as its length exceeded the allowed number of characters.
            Please edit it and try again.', - errorFrmlMaxReference: 'You cannot enter this formula because it has too many values,
            cell references, and/or names.', - warnLicenseLimitedRenewed: 'License needs to be renewed.
            You have a limited access to document editing functionality.
            Please contact your administrator to get full access', - warnLicenseLimitedNoAccess: 'License expired.
            You have no access to document editing functionality.
            Please contact your administrator.', - textGuest: 'Guest', - errorDataValidate: 'The value you entered is not valid.
            A user has restricted values that can be entered into this cell.', - errorLockedCellPivot: 'You cannot change data inside a pivot table.' - } - })(), SSE.Controllers.Main || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/Search.js b/apps/spreadsheeteditor/mobile/app/controller/Search.js deleted file mode 100644 index bf9677546..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/Search.js +++ /dev/null @@ -1,450 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Search.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/5/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'spreadsheeteditor/mobile/app/view/Search' -], function (core, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.Search = Backbone.Controller.extend(_.extend((function() { - // private - - var _isShow = false, - _startPoint = {}; - - var pointerEventToXY = function(e){ - var out = {x:0, y:0}; - if(e.type == 'touchstart' || e.type == 'touchend'){ - var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - out.x = touch.pageX; - out.y = touch.pageY; - } else if (e.type == 'mousedown' || e.type == 'mouseup') { - out.x = e.pageX; - out.y = e.pageY; - } - return out; - }; - - function iOSVersion() { - var ua = navigator.userAgent.toLowerCase(); - var isAppleDevices = (ua.indexOf("ipad") > -1 || ua.indexOf("iphone") > -1 || ua.indexOf("ipod") > -1); - if (!isAppleDevices && Common.Utils.isSafari && Common.Utils.isMac && (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1)) - isAppleDevices = true; - - var iosversion = 0; - if (isAppleDevices) { - iosversion = 13; - try - { - var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/); - if (!v) v = (navigator.appVersion).match(/Version\/(\d+).(\d+)/); - iosversion = parseInt(v[1], 10); - } - catch (err) {} - } - return iosversion; - } - - return { - models: [], - collections: [], - views: [ - 'Search' - ], - - initialize: function() { - this.addListeners({ - 'Search': { - 'searchbar:show' : this.onSearchbarShow, - 'searchbar:hide' : this.onSearchbarHide, - 'searchbar:render' : this.onSearchbarRender, - 'searchbar:showsettings': this.onSearchbarSettings, - 'search:highlight' : this.onSearchHighlight - } - }); - }, - - setApi: function(api) { - this.api = api; - this.api.asc_registerCallback('asc_onRenameCellTextEnd', _.bind(this.onReplaceNext, this)); - }, - - setMode: function (mode) { - this.getView('Search').setMode(mode); - }, - - onLaunch: function() { - var me = this; - me.createView('Search').render(); - - if (iOSVersion()<13) { - $('#editor_sdk').single('mousedown touchstart', _.bind(me.onEditorTouchStart, me)); - $('#editor_sdk').single('mouseup touchend', _.bind(me.onEditorTouchEnd, me)); - } else { - $('#editor_sdk').single('pointerdown', _.bind(me.onEditorTouchStart, me)); - $('#editor_sdk').single('pointerup', _.bind(me.onEditorTouchEnd, me)); - } - }, - - showSearch: function () { - this.getView('Search').showSearch(); - }, - - hideSearch: function () { - this.getView('Search').hideSearch(); - }, - - // Handlers - - onEditorTouchStart: function (e) { - _startPoint = pointerEventToXY(e); - }, - - onEditorTouchEnd: function (e) { - var _endPoint = pointerEventToXY(e); - - if (_isShow) { - var distance = (_startPoint.x===undefined || _startPoint.y===undefined) ? 0 : - Math.sqrt((_endPoint.x -= _startPoint.x) * _endPoint.x + (_endPoint.y -= _startPoint.y) * _endPoint.y); - - if (distance < 1) { - this.hideSearch(); - } - } - }, - - onSearchbarRender: function(bar) { - var me = this, - searchString = Common.SharedSettings.get('search-search') || '', - replaceString = Common.SharedSettings.get('search-replace')|| ''; - - me.searchBar = uiApp.searchbar('.searchbar.document .searchbar.search', { - customSearch: true, - onSearch : _.bind(me.onSearchChange, me), - onEnable : _.bind(me.onSearchEnable, me), - onClear : _.bind(me.onSearchClear, me) - }); - - me.replaceBar = uiApp.searchbar('.searchbar.document .searchbar.replace', { - customSearch: true, - onSearch : _.bind(me.onReplaceChange, me), - onEnable : _.bind(me.onReplaceEnable, me), - onClear : _.bind(me.onReplaceClear, me) - }); - - me.searchPrev = $('.searchbar.document .prev'); - me.searchNext = $('.searchbar.document .next'); - me.replaceBtn = $('.searchbar.document .link.replace'); - - me.searchPrev.single('click', _.bind(me.onSearchPrev, me)); - me.searchNext.single('click', _.bind(me.onSearchNext, me)); - me.replaceBtn.single('click', _.bind(me.onReplace, me)); - - $$('.searchbar.document .link.replace').on('taphold', _.bind(me.onReplaceAll, me)); - - me.searchBar.search(searchString); - me.replaceBar.search(replaceString); - }, - - onSearchbarSettings: function (view) { - var me = this, - isReplace = Common.SharedSettings.get('search-is-replace') === true, - searchIn = Common.SharedSettings.get('search-in') === 'sheet' ? 'sheet' : 'workbook', - isMatchCase = Common.SharedSettings.get('search-match-case') === true, - isMatchCell = Common.SharedSettings.get('search-match-cell') === true, - isHighlightRes = Common.SharedSettings.get('search-highlight-res') === true, - searchBy = Common.SharedSettings.get('search-by') === 'rows' ? 'rows' : 'columns', - lookIn = Common.SharedSettings.get('look-in') === 'formulas' ? 'formulas' : 'values', - $pageSettings = $('.page[data-page=search-settings]'), - $inputType = $pageSettings.find('input[name=search-type]'), - $inputSearchIn = $pageSettings.find('input[name=search-in]'), - $inputSearchBy = $pageSettings.find('input[name=search-by]'), - $inputMatchCase = $pageSettings.find('#search-match-case input:checkbox'), - $inputMatchCell = $pageSettings.find('#search-match-cell input:checkbox'), - $inputHighlightResults = $pageSettings.find('#search-highlight-res input:checkbox'), - $inputLookIn = $pageSettings.find('input[name=look-in]'); - - $inputType.val([isReplace ? 'replace' : 'search']); - $inputSearchIn.val([searchIn]); - $inputMatchCase.prop('checked', isMatchCase); - $inputMatchCell.prop('checked', isMatchCell); - $inputHighlightResults.prop('checked', isHighlightRes); - $inputSearchBy.val([searchBy]); - $inputLookIn.val([lookIn]); - - // init events - $inputType.single('change', _.bind(me.onTypeChange, me)); - $inputSearchIn.single('change', _.bind(me.onSearchInChange, me)); - $inputSearchBy.single('change', _.bind(me.onSearchByChange, me)); - $inputLookIn.single('change', _.bind(me.onLookInChange, me)); - $inputMatchCase.single('change', _.bind(me.onMatchCaseClick, me)); - $inputMatchCell.single('change', _.bind(me.onMatchCellClick, me)); - $inputHighlightResults.single('change', _.bind(me.onHighlightResultsClick, me)); - - if (isReplace) { - Common.SharedSettings.set('look-in', 'formulas'); - $('input[name=look-in]').val(['formulas']); - $('input[name=look-in]:eq(1)').parent().addClass('disabled'); - } - }, - - onSearchbarShow: function(bar) { - _isShow = true; - // this.api.asc_selectSearchingResults(Common.SharedSettings.get('search-highlight')); - }, - - onSearchEnable: function (bar) { - this.replaceBar.container.removeClass('searchbar-active'); - }, - - onSearchbarHide: function(bar) { - _isShow = false; - // this.api.asc_selectSearchingResults(false); - }, - - onSearchChange: function(search) { - var me = this, - isEmpty = (search.query.trim().length < 1); - - Common.SharedSettings.set('search-search', search.query); - - _.each([me.searchPrev, me.searchNext, me.replaceBtn], function(btn) { - btn.toggleClass('disabled', isEmpty); - }); - }, - - onSearchClear: function(search) { - Common.SharedSettings.set('search-search', ''); -// window.focus(); -// document.activeElement.blur(); - }, - - onReplaceChange: function(replace) { - var me = this, - isEmpty = (replace.query.trim().length < 1); - - Common.SharedSettings.set('search-replace', replace.query); - }, - - onReplaceEnable: function (bar) { - this.searchBar.container.removeClass('searchbar-active'); - }, - - onReplaceClear: function(replace) { - Common.SharedSettings.set('search-replace', ''); - }, - - onSearchPrev: function(btn) { - this.onQuerySearch(this.searchBar.query, 'back'); - }, - - onSearchNext: function(btn) { - this.onQuerySearch(this.searchBar.query, 'next'); - }, - - onReplace: function (btn) { - var me = this; - me.onQueryReplace(me.searchBar.query, me.replaceBar.query ? me.replaceBar.query : ""); - }, - - onReplaceNext: function() { - this.onQuerySearch(this.searchBar.query, 'next'); - }, - - onReplaceAll: function (e) { - var me = this, - popover = [ - '' - ].join(''); - - popover = uiApp.popover(popover, $$(e.currentTarget)); - - $('#replace-all').single('click', _.bind(function () { - me.onQueryReplaceAll(this.searchBar.query, this.replaceBar.query); - uiApp.closeModal(popover); - }, me)) - }, - - onQuerySearch: function(query, direction) { - var matchCase = Common.SharedSettings.get('search-match-case') || false, - matchCell = Common.SharedSettings.get('search-match-cell') || false, - lookInSheet = Common.SharedSettings.get('search-in') === 'sheet', - searchBy = Common.SharedSettings.get('search-by') === 'rows', - lookIn = Common.SharedSettings.get('look-in') === 'formulas'; - - if (query && query.length) { - var options = new Asc.asc_CFindOptions(); - options.asc_setFindWhat(query); - options.asc_setScanForward(direction != 'back'); - options.asc_setIsMatchCase(matchCase); - options.asc_setIsWholeCell(matchCell); - options.asc_setScanOnOnlySheet(lookInSheet); - options.asc_setScanByRows(searchBy); - options.asc_setLookIn(lookIn ? Asc.c_oAscFindLookIn.Formulas : Asc.c_oAscFindLookIn.Value); - - if (!this.api.asc_findText(options)) { - var me = this; - uiApp.alert( - '', - me.textNoTextFound, - function () { - me.searchBar.input.focus(); - } - ); - } - } - - }, - - onQueryReplace: function(search, replace) { - var matchCase = Common.SharedSettings.get('search-match-case') || false, - matchCell = Common.SharedSettings.get('search-match-cell') || false, - lookInSheet = Common.SharedSettings.get('search-in') === 'sheet', - searchBy = Common.SharedSettings.get('search-by') === 'rows', - lookIn = Common.SharedSettings.get('look-in') === 'formulas'; - - if (search && search.length) { - this.api.isReplaceAll = false; - - var options = new Asc.asc_CFindOptions(); - options.asc_setFindWhat(search); - options.asc_setReplaceWith(replace || ''); - options.asc_setIsMatchCase(matchCase); - options.asc_setIsWholeCell(matchCell); - options.asc_setScanOnOnlySheet(lookInSheet); - options.asc_setScanByRows(searchBy); - options.asc_setLookIn(lookIn ? Asc.c_oAscFindLookIn.Formulas : Asc.c_oAscFindLookIn.Value); - options.asc_setIsReplaceAll(false); - - this.api.asc_replaceText(options); - } - }, - - onQueryReplaceAll: function(search, replace) { - var matchCase = Common.SharedSettings.get('search-match-case') || false, - matchCell = Common.SharedSettings.get('search-match-cell') || false, - lookInSheet = Common.SharedSettings.get('search-in') === 'sheet', - searchBy = Common.SharedSettings.get('search-by') === 'rows', - lookIn = Common.SharedSettings.get('look-in') === 'formulas'; - - if (search && search.length) { - this.api.isReplaceAll = true; - - var options = new Asc.asc_CFindOptions(); - options.asc_setFindWhat(search); - options.asc_setReplaceWith(replace || ''); - options.asc_setIsMatchCase(matchCase); - options.asc_setIsWholeCell(matchCell); - options.asc_setScanOnOnlySheet(lookInSheet); - options.asc_setScanByRows(searchBy); - options.asc_setLookIn(lookIn ? Asc.c_oAscFindLookIn.Formulas : Asc.c_oAscFindLookIn.Value); - options.asc_setIsReplaceAll(true); - - this.api.asc_replaceText(options); - } - }, - - onTypeChange: function (e) { - var $target = $(e.currentTarget), - isReplace = ($target.val() === 'replace'); - - Common.SharedSettings.set('search-is-replace', isReplace); - $('.searchbar.document').toggleClass('replace', isReplace); - - if (isReplace) { - Common.SharedSettings.set('look-in', 'formulas'); - $('input[name=look-in]').val(['formulas']); - $('input[name=look-in]:eq(1)').parent().addClass('disabled'); - } else { - $('input[name=look-in]:eq(1)').parent().removeClass('disabled'); - } - }, - - onSearchInChange: function (e) { - Common.SharedSettings.set('search-in', $(e.currentTarget).val()); - }, - - onSearchByChange: function(e) { - Common.SharedSettings.set('search-by', $(e.currentTarget).val()); - }, - - onLookInChange: function(e) { - Common.SharedSettings.set('look-in', $(e.currentTarget).val()); - }, - - onMatchCaseClick: function (e) { - Common.SharedSettings.set('search-match-case', $(e.currentTarget).is(':checked')); - }, - - onMatchCellClick: function (e) { - Common.SharedSettings.set('search-match-cell', $(e.currentTarget).is(':checked')); - }, - - onHighlightResultsClick: function (e) { - var value = $(e.currentTarget).is(':checked'); - Common.SharedSettings.set('search-highlight-res', value); - this.api.asc_selectSearchingResults(value); - }, - - onSearchHighlight: function(w, highlight) { - this.api.asc_selectSearchingResults(highlight); - }, - - // API handlers - - textNoTextFound: 'Text not found', - textReplaceAll: 'Replace All' - } - })(), SSE.Controllers.Search || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/Settings.js b/apps/spreadsheeteditor/mobile/app/controller/Settings.js deleted file mode 100644 index e9440fc26..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/Settings.js +++ /dev/null @@ -1,719 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Settings.js - * - * Created by Maxim Kadushkin on 12/05/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/Settings' -], function (core) { - 'use strict'; - - SSE.Controllers.Settings = Backbone.Controller.extend(_.extend((function() { - // private - var rootView, - inProgress, - infoObj, - modalView, - _licInfo, - _pageSizesIndex = 0, - _pageSizesCurrent = [0, 0], - txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm), - _pageSizes = [ - { caption: 'US Letter', subtitle: Common.Utils.String.format('21,59{0} x 27,94{0}', txtCm), value: [215.9, 279.4] }, - { caption: 'US Legal', subtitle: Common.Utils.String.format('21,59{0} x 35,56{0}', txtCm), value: [215.9, 355.6] }, - { caption: 'A4', subtitle: Common.Utils.String.format('21{0} x 29,7{0}', txtCm), value: [210, 297] }, - { caption: 'A5', subtitle: Common.Utils.String.format('14,8{0} x 21{0}', txtCm), value: [148, 210] }, - { caption: 'B5', subtitle: Common.Utils.String.format('17,6{0} x 25{0}', txtCm), value: [176, 250] }, - { caption: 'Envelope #10', subtitle: Common.Utils.String.format('10,48{0} x 24,13{0}', txtCm), value: [104.8, 241.3] }, - { caption: 'Envelope DL', subtitle: Common.Utils.String.format('11{0} x 22{0}', txtCm), value: [110, 220] }, - { caption: 'Tabloid', subtitle: Common.Utils.String.format('27,94{0} x 43,18{0}', txtCm), value: [279.4, 431.8] }, - { caption: 'A3', subtitle: Common.Utils.String.format('29,7{0} x 42{0}', txtCm), value: [297, 420] }, - { caption: 'Tabloid Oversize', subtitle: Common.Utils.String.format('30,48{0} x 45,71{0}', txtCm), value: [304.8, 457.1] }, - { caption: 'ROC 16K', subtitle: Common.Utils.String.format('19,68{0} x 27,3{0}', txtCm), value: [196.8, 273] }, - { caption: 'Envelope Choukei 3', subtitle: Common.Utils.String.format('11,99{0} x 23,49{0}', txtCm), value: [119.9, 234.9] }, - { caption: 'Super B/A3', subtitle: Common.Utils.String.format('33,02{0} x 48,25{0}', txtCm), value: [330.2, 482.5] }, - { caption: 'A0', subtitle: Common.Utils.String.format('84,1{0} x 118,9{0}', txtCm), value: [841, 1189] }, - { caption: 'A1', subtitle: Common.Utils.String.format('59,4{0} x 84,1{0}', txtCm), value: [594, 841] }, - { caption: 'A2', subtitle: Common.Utils.String.format('42{0} x 59,4{0}', txtCm), value: [420, 594] }, - { caption: 'A6', subtitle: Common.Utils.String.format('10,5{0} x 14,8{0}', txtCm), value: [105, 148] } - ], - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()), - _indexLang = 0, - _regDataCode = [{ value: 0x042C }, { value: 0x0402 }, { value: 0x0405 }, { value: 0x0407 }, {value: 0x0807}, { value: 0x0408 }, { value: 0x0C09 }, { value: 0x0809 }, { value: 0x0409 }, { value: 0x0C0A }, { value: 0x080A }, - { value: 0x040B }, { value: 0x040C }, { value: 0x0410 }, { value: 0x0411 }, { value: 0x0412 }, { value: 0x0426 }, { value: 0x0413 }, { value: 0x0415 }, { value: 0x0416 }, - { value: 0x0816 }, { value: 0x0419 }, { value: 0x041B }, { value: 0x0424 }, { value: 0x081D }, { value: 0x041D }, { value: 0x041F }, { value: 0x0422 }, { value: 0x042A }, { value: 0x0804 }], - _regdata = [], - _lang; - - - var mm2Cm = function(mm) { - return parseFloat((mm/10.).toFixed(2)); - }; - - - return { - models: [], - collections: [], - views: [ - 'Settings' - ], - - initialize: function () { - Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'Settings': { - 'page:show' : this.onPageShow - , 'settings:showhelp': function(e) { - var url = '{{HELP_URL}}'; - if (url.charAt(url.length-1) !== '/') { - url += '/'; - } - if (Common.SharedSettings.get('sailfish')) { - url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; - } else if (Common.SharedSettings.get('android')) { - url+='mobile-applications/documents/mobile-web-editors/android/index.aspx'; - } else { - url+='mobile-applications/documents/mobile-web-editors/ios/index.aspx'; - } - window.open(url, "_blank"); - this.hideModal(); - } - } - }); - - this.localMarginProps = null; - _regDataCode.forEach(function(item) { - var langinfo = Common.util.LanguageInfo.getLocalLanguageName(item.value); - _regdata.push({code: item.value, displayName: langinfo[1], langName: langinfo[0]}); - }); - - this._dataLang = [ - { value: 'en', displayValue: this.txtEn, exampleValue: ' SUM; MIN; MAX; COUNT' }, - { value: 'de', displayValue: this.txtDe, exampleValue: ' SUMME; MIN; MAX; ANZAHL' }, - { value: 'es', displayValue: this.txtEs, exampleValue: ' SUMA; MIN; MAX; CALCULAR' }, - { value: 'fr', displayValue: this.txtFr, exampleValue: ' SOMME; MIN; MAX; NB' }, - { value: 'it', displayValue: this.txtIt, exampleValue: ' SOMMA; MIN; MAX; CONTA.NUMERI' }, - { value: 'ru', displayValue: this.txtRu, exampleValue: ' СУММ; МИН; МАКС; СЧЁТ' }, - { value: 'pl', displayValue: this.txtPl, exampleValue: ' SUMA; MIN; MAX; ILE.LICZB' } - ]; - }, - - setApi: function (api) { - this.api = api; - this.api.asc_registerCallback('asc_onSendThemeColorSchemes', _.bind(this.onSendThemeColorSchemes, this)); - }, - - onLaunch: function () { - this.createView('Settings').render(); - }, - - setMode: function (mode) { - this.getView('Settings').setMode(mode); - if (mode.canBranding) - _licInfo = mode.customization; - _lang = mode.lang; - }, - - initEvents: function () { - }, - - rootView : function() { - return rootView; - }, - - showModal: function() { - uiApp.closeModal(); - - if (Common.SharedSettings.get('phone')) { - modalView = uiApp.popup( - '' - ); - } else { - modalView = uiApp.popover( - '
            ' + - '
            ' + - '
            ' + - '
            ' + - '' + - '
            ' + - '
            ' + - '
            ', - $$('#toolbar-settings') - ); - } - - if (Framework7.prototype.device.android === true) { - $$('.view.settings-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.settings-root-view .navbar').prependTo('.view.settings-root-view > .pages > .page'); - } - - rootView = uiApp.addView('.settings-root-view', { - dynamicNavbar: true, - domCache: true - }); - - if (!Common.SharedSettings.get('phone')) { - this.picker = $$(modalView); - var $overlay = $('.modal-overlay'); - - $$(this.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible'); - }); - } - - Common.NotificationCenter.trigger('settingscontainer:show'); - this.onPageShow(this.getView('Settings')); - }, - - hideModal: function() { - if (modalView) { - uiApp.closeModal(modalView); - } - }, - - onPageShow: function(view, pageId) { - var me = this; - $('#settings-search').single('click', _.bind(me._onSearch, me)); - $(modalView).find('.formats a').single('click', _.bind(me._onSaveFormat, me)); - $('#settings-print').single('click', _.bind(me._onPrint, me)); - $('#settings-collaboration').single('click', _.bind(me.onCollaboration, me)); - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - if (pageId == '#settings-about-view') { - // About - me.setLicInfo(_licInfo); - } else if ('#settings-application-view' == pageId) { - me.initPageApplicationSettings(); - Common.Utils.addScrollIfNeed('.page[data-page=settings-application-view]', '.page[data-page=settings-application-view] .page-content'); - } else if ('#color-schemes-view' == pageId) { - me.initPageColorSchemes(); - Common.Utils.addScrollIfNeed('.page[data-page=color-schemes-view]', '.page[data-page=color-schemes-view] .page-content'); - } else if ('#settings-spreadsheet-view' == pageId) { - me.initSpreadsheetSettings(); - } else if ('#settings-page-size-view' == pageId) { - me.initSpreadsheetPageSize(); - } else if ('#margins-view' == pageId) { - me.initSpreadsheetMargins(); - } else if ('#language-formula-view' == pageId) { - me.initFormulaLang(); - } else if ('#regional-settings-view' == pageId) { - me.initRegSettings(); - } else if ('#settings-info-view' == pageId) { - me.initPageInfo(); - } else if ('#settings-macros-view' == pageId) { - me.initPageMacrosSettings(); - } else { - SSE.getController('Toolbar').getDisplayCollaboration() && $('#settings-collaboration').show(); - } - }, - - initPageMacrosSettings: function() { - var me = this, - $pageMacrosSettings = $('.page[data-page="settings-macros-view"] input:radio[name=macros-settings]'), - value = Common.Utils.InternalSettings.get("sse-mobile-macros-mode") || 0; - $pageMacrosSettings.single('change', _.bind(me.onChangeMacrosSettings, me)); - $pageMacrosSettings.val([value]); - }, - - onChangeMacrosSettings: function(e) { - var value = parseInt($(e.currentTarget).val()); - Common.Utils.InternalSettings.set("sse-mobile-macros-mode", value); - Common.localStorage.setItem("sse-mobile-macros-mode", value); - }, - - initPageInfo: function() { - var document = Common.SharedSettings.get('document') || {}, - info = document.info || {}; - - document.title ? $('#settings-spreadsheet-title').html(document.title) : $('.display-spreadsheet-title').remove(); - var value = info.owner; - value ? $('#settings-sse-owner').html(value) : $('.display-owner').remove(); - value = info.uploaded; - value ? $('#settings-sse-uploaded').html(value) : $('.display-uploaded').remove(); - info.folder ? $('#settings-sse-location').html(info.folder) : $('.display-location').remove(); - - var appProps = (this.api) ? this.api.asc_getAppProps() : null; - if (appProps) { - var appName = (appProps.asc_getApplication() || '') + (appProps.asc_getAppVersion() ? ' ' : '') + (appProps.asc_getAppVersion() || ''); - appName ? $('#settings-sse-application').html(appName) : $('.display-application').remove(); - } - - var props = (this.api) ? this.api.asc_getCoreProps() : null; - if (props) { - value = props.asc_getTitle(); - value ? $('#settings-sse-title').html(value) : $('.display-title').remove(); - value = props.asc_getSubject(); - value ? $('#settings-sse-subject').html(value) : $('.display-subject').remove(); - value = props.asc_getDescription(); - value ? $('#settings-sse-comment').html(value) : $('.display-comment').remove(); - value = props.asc_getModified(); - value ? $('#settings-sse-last-mod').html(value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'})) : $('.display-last-mode').remove(); - value = props.asc_getLastModifiedBy(); - value ? $('#settings-sse-mod-by').html(AscCommon.UserInfoParser.getParsedName(value)) : $('.display-mode-by').remove(); - value = props.asc_getCreated(); - value ? $('#settings-sse-date').html(value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'})) : $('.display-created-date').remove(); - value = props.asc_getCreator(); - var templateCreator = ""; - value && value.split(/\s*[,;]\s*/).forEach(function(item) { - templateCreator = templateCreator + "
          • " + item + "
          • "; - }); - templateCreator ? $('#list-creator').html(templateCreator) : $('.display-author').remove(); - } - - }, - - initRegSettings: function() { - var value = Number(Common.localStorage.getItem('sse-settings-regional')); - this.getView('Settings').renderRegSettings(value ? value : 0x0409, _regdata); - $('.page[data-page=regional-settings-view] input:radio[name=region-settings]').single('change', _.bind(this.onRegSettings, this)); - Common.Utils.addScrollIfNeed('.page[data-page=regional-settings-view]', '.page[data-page=regional-settings-view] .page-content'); - }, - - onRegSettings: function(e) { - var regCode = $(e.currentTarget).val(); - Common.localStorage.setItem("sse-settings-regional", regCode); - this.initPageApplicationSettings(); - if (regCode!==null) this.api.asc_setLocale(parseInt(regCode)); - }, - - initFormulaLang: function() { - var value = Common.localStorage.getItem('sse-settings-func-lang'); - var item = _.findWhere(this._dataLang, {value: value}); - this.getView('Settings').renderFormLang(item ? this._dataLang.indexOf(item) : 0, this._dataLang); - $('.page[data-page=language-formula-view] input:radio[name=language-formula]').single('change', _.bind(this.onFormulaLangChange, this)); - Common.Utils.addScrollIfNeed('.page[data-page=language-formula-view]', '.page[data-page=language-formula-view] .page-content'); - }, - - onFormulaLangChange: function(e) { - var langValue = $(e.currentTarget).val(); - Common.localStorage.setItem("sse-settings-func-lang", langValue); - this.initPageApplicationSettings(); - SSE.getController('AddFunction').onDocumentReady(); - }, - - onCollaboration: function() { - SSE.getController('Common.Controllers.Collaboration').showModal(); - }, - - initSpreadsheetSettings: function() { - var me = this, - $pageSpreadsheetSettings = $('.page[data-page=settings-spreadsheet-view]'), - $switchHideHeadings = $pageSpreadsheetSettings.find('#hide-headings input'), - $switchHideGridlines = $pageSpreadsheetSettings.find('#hide-gridlines input'), - $pageOrientation = $('.page[data-page=settings-spreadsheet-view] input:radio[name=table-orientation]'); - - $switchHideHeadings.single('change', _.bind(me.clickCheckboxHideHeadings, me)); - $switchHideGridlines.single('change', _.bind(me.clickCheckboxHideGridlines, me)); - - var params = me.api.asc_getSheetViewSettings(); - $switchHideHeadings.prop('checked',!params.asc_getShowRowColHeaders()); - $switchHideGridlines.prop('checked',!params.asc_getShowGridLines()); - - // Init orientation - var currentSheet = this.api.asc_getActiveWorksheetIndex(), - props = this.api.asc_getPageOptions(currentSheet), - opt = props.asc_getPageSetup(); - if(opt.asc_getOrientation() === Asc.c_oAscPageOrientation.PagePortrait) { - $('.page[data-page=settings-spreadsheet-view] input:radio[name=table-orientation][value="0"]').prop( "checked", true ); - } else { - $('.page[data-page=settings-spreadsheet-view] input:radio[name=table-orientation][value="1"]').prop( "checked", true ); - } - $pageOrientation.single('change', _.bind(me.onOrientationChange, me)); - - //Init format - var $pageSize = $('#settings-spreadsheet-format'); - this.changeCurrentPageSize(opt.asc_getWidth(), opt.asc_getHeight()); - $pageSize.find('.item-title').text(_pageSizes[_pageSizesIndex]['caption']); - - var curMetricName = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()), - sizeW = parseFloat(Common.Utils.Metric.fnRecalcFromMM(_pageSizes[_pageSizesIndex]['value'][0]).toFixed(2)), - sizeH = parseFloat(Common.Utils.Metric.fnRecalcFromMM(_pageSizes[_pageSizesIndex]['value'][1]).toFixed(2)); - - var pageSizeTxt = sizeW + ' ' + curMetricName + ' x ' + sizeH + ' ' + curMetricName; - $pageSize.find('.item-subtitle').text(pageSizeTxt); - }, - - changeCurrentPageSize: function(w, h) { - if (Math.abs(_pageSizesCurrent[0] - w) > 0.1 || - Math.abs(_pageSizesCurrent[1] - h) > 0.1) { - _pageSizesCurrent = [w, h]; - - _.find(_pageSizes, function(size, index) { - if (Math.abs(size.value[0] - w) < 0.1 && Math.abs(size.value[1] - h) < 0.1) { - _pageSizesIndex = index; - } - }, this); - } - }, - - initSpreadsheetPageSize: function() { - this.getView('Settings').renderPageSizes(_pageSizes, _pageSizesIndex); - $('.page[data-page=settings-page-size-view] input:radio[name=spreadsheet-format]').single('change', _.bind(this.onFormatChange, this)); - Common.Utils.addScrollIfNeed('.page[data-page=settings-page-size-view]', '.page[data-page=settings-page-size-view] .page-content'); - }, - - onFormatChange: function(e) { - var rawValue = $(e.currentTarget).val(), - value = rawValue.split(','); - this.api.asc_changeDocSize(parseFloat(value[0]), parseFloat(value[1]), this.api.asc_getActiveWorksheetIndex()); - this.initSpreadsheetSettings(); - }, - - initSpreadsheetMargins: function() { - var me = this; - // Init page margins - var currentSheet = me.api.asc_getActiveWorksheetIndex(), - props = me.api.asc_getPageOptions(currentSheet); - me.localMarginProps = props.asc_getPageMargins(); - - _metricText = Common.Utils.Metric.getMetricName(Common.Utils.Metric.getCurrentMetric()); - - var left = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localMarginProps.asc_getLeft()).toFixed(2)), - top = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localMarginProps.asc_getTop()).toFixed(2)), - right = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localMarginProps.asc_getRight()).toFixed(2)), - bottom = parseFloat(Common.Utils.Metric.fnRecalcFromMM(me.localMarginProps.asc_getBottom()).toFixed(2)); - - if (me.localMarginProps) { - - $('#spreadsheet-margin-top .item-after label').text(top + ' ' + _metricText); - $('#spreadsheet-margin-bottom .item-after label').text(bottom + ' ' + _metricText); - $('#spreadsheet-margin-left .item-after label').text(left + ' ' + _metricText); - $('#spreadsheet-margin-right .item-after label').text(right + ' ' + _metricText); - } - - _.each(["top", "left", "bottom", "right"], function(align) { - $(Common.Utils.String.format('#spreadsheet-margin-{0} .button', align)).single('click', _.bind(me.onPageMarginsChange, me, align)); - }) - }, - - onPageMarginsChange: function (align, e) { - var me = this, - $button = $(e.currentTarget), - step = 1, // mm - txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm), - marginValue = null; - - var maxMarginsH = 482.5, - maxMarginsW = 482.5; - - if(Common.Utils.Metric.getCurrentMetric() == Common.Utils.Metric.c_MetricUnits.pt) { - step = 1; - } else { - step = 0.1; - } - step = Common.Utils.Metric.fnRecalcToMM(step); - - switch (align) { - case 'left': marginValue = me.localMarginProps.asc_getLeft(); break; - case 'top': marginValue = me.localMarginProps.asc_getTop(); break; - case 'right': marginValue = me.localMarginProps.asc_getRight(); break; - case 'bottom': marginValue = me.localMarginProps.asc_getBottom(); break; - } - - var changeProps = new Asc.asc_CPageMargins(); - changeProps.asc_setTop(me.localMarginProps.asc_getTop()); - changeProps.asc_setBottom(me.localMarginProps.asc_getBottom()); - changeProps.asc_setLeft(me.localMarginProps.asc_getLeft()); - changeProps.asc_setRight(me.localMarginProps.asc_getRight()); - - if ($button.hasClass('decrement')) { - marginValue = Math.max(0, marginValue - step); - } else { - marginValue = Math.min((align == 'left' || align == 'right') ? maxMarginsW : maxMarginsH, marginValue + step); - } - - switch (align) { - case 'left': changeProps.asc_setLeft(marginValue); break; - case 'top': changeProps.asc_setTop(marginValue); break; - case 'right': changeProps.asc_setRight(marginValue); break; - case 'bottom': changeProps.asc_setBottom(marginValue); break; - } - - $(Common.Utils.String.format('#document-margin-{0} .item-after label', align)).text(parseFloat(Common.Utils.Metric.fnRecalcFromMM(marginValue)).toFixed(2) + ' ' + _metricText); - - me.api.asc_changePageMargins(changeProps.asc_getLeft(), changeProps.asc_getRight(), changeProps.asc_getTop(), changeProps.asc_getBottom(), me.api.asc_getActiveWorksheetIndex()); - me.initSpreadsheetMargins(); - }, - - - onOrientationChange: function(e) { - var value = $(e.currentTarget).attr('value'); - this.api.asc_changePageOrient(Number(value) === Asc.c_oAscPageOrientation.PagePortrait, this.api.asc_getActiveWorksheetIndex()); - }, - - clickCheckboxHideHeadings: function(e) { - var $target = $(e.currentTarget), - checked = $target.prop('checked'); - this.api.asc_setDisplayHeadings(!checked); - }, - - clickCheckboxHideGridlines: function(e) { - var $target = $(e.currentTarget), - checked = $target.prop('checked'); - this.api.asc_setDisplayGridlines(!checked); - }, - - initPageColorSchemes: function() { - this.curSchemas = (this.api) ? this.api.asc_GetCurrentColorSchemeIndex() : 0; - this.getView('Settings').renderSchemaSettings(this.curSchemas, this.schemas); - $('.page[data-page=color-schemes-view] input:radio[name=color-schema]').single('change', _.bind(this.onColorSchemaChange, this)); - Common.Utils.addScrollIfNeed('.page[data-page=color-schemes-view', '.page[data-page=color-schemes-view] .page-content'); - }, - - onSendThemeColorSchemes: function (schemas) { - this.schemas = schemas; - }, - - onColorSchemaChange: function(event) { - if (this.api) { - var ind = $(event.currentTarget).val(); - if (this.curSchemas !== ind) - this.api.asc_ChangeColorSchemeByIdx(parseInt(ind)); - } - }, - - setLicInfo: function(data){ - if (data && typeof data == 'object' && typeof(data.customer)=='object') { - $('.page[data-page=settings-about-view] .logo').hide(); - $('#settings-about-tel').parent().hide(); - $('#settings-about-licensor').show(); - - var customer = data.customer, - value = customer.name; - value && value.length ? - $('#settings-about-name').text(value) : - $('#settings-about-name').hide(); - - value = customer.address; - value && value.length ? - $('#settings-about-address').text(value) : - $('#settings-about-address').parent().hide(); - - (value = customer.mail) && value.length ? - $('#settings-about-email').attr('href', "mailto:"+value).text(value) : - $('#settings-about-email').parent().hide(); - - if ((value = customer.www) && value.length) { - var http = !/^https?:\/{2}/i.test(value) ? "http:\/\/" : ''; - $('#settings-about-url').attr('href', http+value).text(value); - } else - $('#settings-about-url').hide(); - - if ((value = customer.info) && value.length) { - $('#settings-about-info').show().text(value); - } - - if ( (value = customer.logo) && value.length ) { - $('#settings-about-logo').show().html(''); - } - } - }, - - initPageApplicationSettings: function() { - var me = this, - $unitMeasurement = $('.page[data-page=settings-application-view] input:radio[name=unit-of-measurement]'); - $unitMeasurement.single('change', _.bind(me.unitMeasurementChange, me)); - var value = Common.Utils.Metric.getCurrentMetric(); - $unitMeasurement.val([value]); - - //init formula language - value = Common.localStorage.getItem('sse-settings-func-lang'); - var item = _.findWhere(me._dataLang, {value: value}); - if(!item) { - item = me._dataLang[0]; - } - var $pageLang = $('#language-formula'); - $pageLang.find('.item-title').text(item.displayValue); - $pageLang.find('.item-example').text(item.exampleValue); - - //init regional settings - value = Number(Common.localStorage.getItem('sse-settings-regional')); - var item = _.findWhere(_regdata, {code: value}); - if(!item) { - item = _.findWhere(_regdata, {code: 0x0409}); - } - var $regSettings = $('#regional-settings'); - $regSettings.find('.item-title').text(item.displayName); - var info = new Asc.asc_CFormatCellsInfo(); - info.asc_setType(Asc.c_oAscNumFormatType.None); - info.asc_setSymbol(value); - var arr = this.api.asc_getFormatCells(info); - var text = this.api.asc_getLocaleExample(arr[4], 1000.01, value); - text = text + ' ' + this.api.asc_getLocaleExample(arr[5], Asc.cDate().getExcelDateWithTime(), value); - text = text + ' ' + this.api.asc_getLocaleExample(arr[6], Asc.cDate().getExcelDateWithTime(), value); - $regSettings.find('.item-example').text(text); - - //init r1c1 reference - value = Common.localStorage.getBool('sse-settings-r1c1'); - var $r1c1Style = $('.page[data-page=settings-application-view] #r1-c1-style input'); - $r1c1Style.prop('checked',value); - $r1c1Style.single('change', _.bind(me.clickR1C1Style, me)); - - //init Commenting Display - var displayComments = Common.localStorage.getBool("sse-mobile-settings-livecomment", true); - $('#settings-display-comments input:checkbox').attr('checked', displayComments); - $('#settings-display-comments input:checkbox').single('change', _.bind(me.onChangeDisplayComments, me)); - var displayResolved = Common.localStorage.getBool("sse-settings-resolvedcomment", true); - if (!displayComments) { - $("#settings-display-resolved").addClass("disabled"); - displayResolved = false; - } - $('#settings-display-resolved input:checkbox').attr('checked', displayResolved); - $('#settings-display-resolved input:checkbox').single('change', _.bind(me.onChangeDisplayResolved, me)); - }, - - onChangeDisplayComments: function(e) { - var displayComments = $(e.currentTarget).is(':checked'); - if (!displayComments) { - this.api.asc_hideComments(); - $("#settings-display-resolved input").prop( "checked", false ); - Common.localStorage.setBool("sse-settings-resolvedcomment", false); - $("#settings-display-resolved").addClass("disabled"); - } else { - var resolved = Common.localStorage.getBool("sse-settings-resolvedcomment"); - this.api.asc_showComments(resolved); - $("#settings-display-resolved").removeClass("disabled"); - } - Common.localStorage.setBool("sse-mobile-settings-livecomment", displayComments); - }, - - onChangeDisplayResolved: function(e) { - var displayComments = Common.localStorage.getBool("sse-mobile-settings-livecomment"); - if (displayComments) { - var resolved = $(e.currentTarget).is(':checked'); - if (this.api) { - this.api.asc_showComments(resolved); - } - Common.localStorage.setBool("sse-settings-resolvedcomment", resolved); - } - }, - - clickR1C1Style: function(e) { - var $target = $(e.currentTarget), - checked = $target.prop('checked'); - Common.localStorage.setBool('sse-settings-r1c1', checked); - this.api.asc_setR1C1Mode(checked); - }, - - unitMeasurementChange: function (e) { - var value = $(e.currentTarget).val(); - value = (value!==null) ? parseInt(value) : Common.Utils.Metric.getDefaultMetric(); - Common.Utils.Metric.setCurrentMetric(value); - Common.localStorage.setItem("se-mobile-settings-unit", value); - }, - - // API handlers - - _onSearch: function (e) { - var toolbarView = SSE.getController('Toolbar').getView('Toolbar'); - - if (toolbarView) { - toolbarView.showSearch(); - } - - this.hideModal(); - }, - - _onPrint: function(e) { - var me = this; - - _.delay(function () { - me.api.asc_Print(); - }, 300); - me.hideModal(); - }, - - _onSaveFormat: function(e) { - var me = this, - format = $(e.currentTarget).data('format'); - - me.hideModal(); - - if (format) { - if (format == Asc.c_oAscFileType.CSV) { - setTimeout(function () { - uiApp.confirm( - me.warnDownloadAs, - me.notcriticalErrorTitle, - function () { - Common.NotificationCenter.trigger('download:advanced', Asc.c_oAscAdvancedOptionsID.CSV, me.api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format)); - } - ); - }, 50); - } else { - _.delay(function () { - me.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); - }, 300); - } - } - }, - - notcriticalErrorTitle : 'Warning', - warnDownloadAs : 'If you continue saving in this format all features except the text will be lost.
            Are you sure you want to continue?', - txtEn: 'English', - txtDe: 'Deutsch', - txtRu: 'Russian', - txtPl: 'Polish', - txtEs: 'Spanish', - txtFr: 'French', - txtIt: 'Italian' - } - })(), SSE.Controllers.Settings || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/Statusbar.js b/apps/spreadsheeteditor/mobile/app/controller/Statusbar.js deleted file mode 100644 index 2e5b99554..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/Statusbar.js +++ /dev/null @@ -1,634 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * -*/ -/** - * Statusbar.js - * - * Statusbar controller - * - * Created by Maxim Kadushkin on 11/28/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/Statusbar', - 'spreadsheeteditor/mobile/app/collection/sheets' -], function () { - 'use strict'; - - SSE.Controllers.Statusbar = Backbone.Controller.extend(_.extend({ - models: [], - collections: ['Sheets'], - views: [ - 'Statusbar' - ], - - initialize: function() { - this.addListeners({ - 'Statusbar': { - 'sheet:click': this.onTabClick, - 'sheet:addnew': this.onAddTab, - 'contextmenu:click': this.onTabMenu - } - }); - this._moreAction = []; - }, - - events: function() { - }, - - onLaunch: function() { - var me = this; - this.statusbar = this.createView('Statusbar').render(); - // this.statusbar.$el.css('z-index', 10); - - this.sheets = this.getApplication().getCollection('Sheets'); - this.sheets.bind({ - add: function (model, collection, opts) { - var $item = me.statusbar.addSheet(model); - model.set('el', $item, {silent:true}); - }, - change: function (model) { - if ( model.changed ) { - if ( model.changed.locked != undefined ) { - model.get('el').toggleClass('locked', model.changed.locked); - } - } - }, - reset: function (collection, opts) { - me.statusbar.clearTabs(); - me.statusbar.addSheets(collection); - } - }); - - this.hiddensheets = this.getApplication().createCollection('Sheets'); - // this.bindViewEvents(this.statusbar, this.events); - - Common.NotificationCenter.on('document:ready', this.onApiSheetsChanged.bind(this)); - }, - - setApi: function(api) { - this.api = api; - this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onApiDisconnect, this)); - Common.NotificationCenter.on('api:disconnect', _.bind(this.onApiDisconnect, this)); - this.api.asc_registerCallback('asc_onUpdateTabColor', _.bind(this.onApiUpdateTabColor, this)); - // this.api.asc_registerCallback('asc_onEditCell', _.bind(this.onApiEditCell, this)); - this.api.asc_registerCallback('asc_onWorkbookLocked', _.bind(this.onWorkbookLocked, this)); - this.api.asc_registerCallback('asc_onWorksheetLocked', _.bind(this.onWorksheetLocked, this)); - // this.api.asc_registerCallback('asc_onError', _.bind(this.onError, this)); - - this.api.asc_registerCallback('asc_onSheetsChanged', this.onApiSheetsChanged.bind(this)); - }, - - setMode: function(mode) { - this.statusbar.setMode(mode); - this.isEdit = mode.isEdit; - }, - - /* - * api events - * */ - - onApiSheetsChanged: function() { - var me = this; - - var sheets_count = this.api.asc_getWorksheetsCount(), i = -1; - var hiddentems = [], items = [], tab, locked; - var active_index = this.api.asc_getActiveWorksheetIndex(); - - while ( ++i < sheets_count ) { - locked = me.api.asc_isWorksheetLockedOrDeleted(i); - tab = { - index : i, - active : active_index == i, - name : me.api.asc_getWorksheetName(i), - // cls : locked ? 'coauth-locked':'', - locked : locked, - color : me.api.asc_getWorksheetTabColor(i) - }; - - (this.api.asc_isWorksheetHidden(i) ? hiddentems : items).push(new SSE.Models.Sheet(tab)); - } - - this.sheets.reset(items); - this.hiddensheets.reset(hiddentems); - - this.updateTabsColors(); - - return; - - if (this.api) { - // if (!this.tabbar.isTabVisible(sindex)) - // this.tabbar.setTabVisible(sindex); - - // this.btnAddWorksheet.setDisabled(me.mode.isDisconnected || me.api.asc_isWorkbookLocked()); - // $('#status-label-zoom').text(Common.Utils.String.format(this.zoomText, Math.floor((this.api.asc_getZoom() +.005)*100))); - } - }, - - onApiDisconnect: function() { - this.statusbar.setMode('disconnect'); - this.isDisconnected = true; - }, - - onWorkbookLocked: function(locked) { - this.statusbar.$btnAddTab.toggleClass('disabled', locked); - return; - - this.statusbar.tabbar[locked?'addClass':'removeClass']('coauth-locked'); - this.statusbar.btnAddWorksheet.setDisabled(locked || this.statusbar.rangeSelectionMode==Asc.c_oAscSelectionDialogType.Chart || - this.statusbar.rangeSelectionMode==Asc.c_oAscSelectionDialogType.FormatTable); - var item, i = this.statusbar.tabbar.getCount(); - while (i-- > 0) { - item = this.statusbar.tabbar.getAt(i); - if (item.sheetindex >= 0) { -// if (locked) item.reorderable = false; -// else item.reorderable = !this.api.asc_isWorksheetLockedOrDeleted(item.sheetindex); - } else { - item.disable(locked); - } - } - }, - - onWorksheetLocked: function(index, locked) { - var model = this.sheets.findWhere({index: index}); - if ( model && model.get('locked') != locked ) - model.set('locked', locked); - }, - - onApiEditCell: function(state) { - var disableAdd = (state == Asc.c_oAscCellEditorState.editFormula), - disable = (state != Asc.c_oAscCellEditorState.editEnd), - mask = $('.statusbar-mask'), - statusbar = this.statusbar; - - statusbar.isEditFormula = disableAdd; - - if (disableAdd && mask.length>0 || !disableAdd && mask.length==0) return; - statusbar.$el.find('.statusbar').toggleClass('masked', disableAdd); - if(disableAdd) { - mask = $("
            ").appendTo(statusbar.$el); - } else { - mask.remove(); - } - }, - - createDelayedElements: function() { - this.statusbar.$el.css('z-index', ''); - this.statusbar.btnAddWorksheet.on('click', _.bind(this.onAddWorksheetClick, this)); - - Common.NotificationCenter.on('window:resize', _.bind(this.onWindowResize, this)); - // Common.NotificationCenter.on('cells:range', _.bind(this.onRangeDialogMode, this)); - }, - - onWindowResize: function(area) { - // this.statusbar.onTabInvisible(undefined, this.statusbar.tabbar.checkInvisible(true)); - }, - - - createSheetName: function() { - var items = [], wc = this.api.asc_getWorksheetsCount(); - while (wc--) { - items.push(this.api.asc_getWorksheetName(wc).toLowerCase()); - } - - var index = 0, name; - while(++index < 1000) { - name = this.strSheet + index; - if (items.indexOf(name.toLowerCase()) < 0) break; - } - - return name; - }, - - createCopyName: function(orig) { - var wc = this.api.asc_getWorksheetsCount(), names = []; - while (wc--) { - names.push(this.api.asc_getWorksheetName(wc).toLowerCase()); - } - - var re = /^(.*)\((\d)\)$/.exec(orig); - var first = re ? re[1] : orig + ' '; - - var index = 1, name; - while(++index < 1000) { - name = first + '(' + index + ')'; - if (names.indexOf(name.toLowerCase()) < 0) break; - } - - return name; - }, - - deleteWorksheet: function() { - var me = this; - - if (me.sheets.length == 1) { - uiApp.alert(me.errorLastSheet, me.notcriticalErrorTitle); - } else { - uiApp.confirm(me.warnDeleteSheet, me.notcriticalErrorTitle, _.buffered(function() { - if ( !me.api.asc_deleteWorksheet() ) { - _.defer(function(){ - uiApp.alert(me.errorRemoveSheet, me.notcriticalErrorTitle); - }); - } - }, 300)); - } - }, - - hideWorksheet: function(hide, index) { - if ( hide ) { - this.sheets.length == 1 ? - uiApp.alert(this.errorLastSheet, this.notcriticalErrorTitle) : - this.api['asc_hideWorksheet']([index]); - } else { - this.api['asc_showWorksheet'](index); - this.loadTabColor(index); - } - }, - - onAddWorksheetClick: function(o, index, opts) { - if (this.api) { - this.api.asc_closeCellEditor(); - this.api.asc_addWorksheet(this.createSheetName()); - - Common.NotificationCenter.trigger('comments:updatefilter', - {property: 'uid', - value: new RegExp('^(doc_|sheet' + this.api.asc_getActiveWorksheetId() + '_)') - }, - false // hide popover - ); - } - Common.NotificationCenter.trigger('edit:complete', this.statusbar); - }, - - selectTab: function (index) { - if (this.api) { - var hidden = this.api.asc_isWorksheetHidden(sheetindex); - if (!hidden) { - var tab = _.findWhere(this.statusbar.tabbar.tabs, {sheetindex: sheetindex}); - if (tab) { - this.statusbar.tabbar.setActive(tab); - } - } - } - }, - - moveCurrentTab: function (direction) { - if (this.api) { - var indTab = 0, - tabBar = this.statusbar.tabbar, - index = this.api.asc_getActiveWorksheetIndex(), - length = tabBar.tabs.length; - - this.statusbar.tabMenu.hide(); - this.api.asc_closeCellEditor(); - - for (var i = 0; i < length; ++i) { - if (tabBar.tabs[i].sheetindex === index) { - indTab = i; - - if (direction > 0) { - indTab++; - if (indTab >= length) { - indTab = 0; - } - } else { - indTab--; - if (indTab < 0) { - indTab = length - 1; - } - } - - tabBar.setActive(indTab); - this.api.asc_showWorksheet(tabBar.getAt(indTab).sheetindex); - - break; - } - } - } - }, - - renameWorksheet: function() { - var me = this; - if (me.api.asc_getWorksheetsCount() > 0) { - var sindex = me.api.asc_getActiveWorksheetIndex(); - if (me.api.asc_isWorksheetLockedOrDeleted(sindex)) { - return; - } - var current = me.api.asc_getWorksheetName(me.api.asc_getActiveWorksheetIndex()); - - var renameDlg = uiApp.modal({ - title: me.strRenameSheet, - afterText: '
            ', - buttons: [ - { - text: 'OK', - bold: true, - onClick: function () { - var s = $(renameDlg).find('.modal-text-input[name="modal-sheet-name"]').val(), - wc = me.api.asc_getWorksheetsCount(), items = [], - err = _.isEmpty(s) ? me.errNotEmpty : ((s.length > 2 && s[0]=='"' && s[s.length-1]=='"' || !/[:\\\/\*\?\[\]\']/.test(s)) ? null : me.errNameWrongChar); - if (!err) { - while (wc--) { - if (sindex !== wc) { - items.push(me.api.asc_getWorksheetName(wc).toLowerCase()); - } - } - if (items) { - var testval = s.toLowerCase(); - for (var i = items.length - 1; i >= 0; --i) { - if (items[i] === testval) { - err = me.errNameExists; - } - } - } - } - if (err) { - uiApp.alert( - err, - me.notcriticalErrorTitle, - function () { - _.defer(function() { - me.renameWorksheet(); - }); - } - ); - } else if (s != current) - me.api.asc_renameWorksheet(s); - } - }, - { - text: me.cancelButtonText - } - ] - }); - } - }, - - // colors - - onApiUpdateTabColor: function (index) { - this.loadTabColor(index); - }, - - updateThemeColors: function() { - var updateColors = function(picker, defaultColorIndex) { - if (picker) { - var clr, - effectcolors = Common.Utils.ThemeColor.getEffectColors(); - - for (var i = 0; i < effectcolors.length; ++i) { - if (typeof(picker.currentColor) == 'object' && - clr === undefined && - picker.currentColor.effectId == effectcolors[i].effectId) - clr = effectcolors[i]; - } - - picker.updateColors(effectcolors, Common.Utils.ThemeColor.getStandartColors()); - - if (picker.currentColor === undefined) { - picker.currentColor = effectcolors[defaultColorIndex]; - } else if (clr!==undefined) { - picker.currentColor = clr; - } - } - }; - - if (this.statusbar) { - updateColors(this.statusbar.mnuTabColor, 1); - } - }, - - onNewBorderColor: function() { - if (this.statusbar && this.statusbar.mnuTabColor) { - this.statusbar.mnuTabColor.addNewColor(); - } - }, - - loadTabColor: function (sheetindex) { - if (this.api) { - var tab = this.sheets.findWhere({index: sheetindex}); - if (tab) { - this.setTabLineColor(tab, this.api.asc_getWorksheetTabColor(sheetindex)); - } - } - }, - - setTabLineColor: function (tab, color) { - if (tab) { - if (null !== color) { - color = '#' + Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } else { - color = ''; - } - - if (color.length) { - if (!tab.get('active')) { - color = '0px 4px 0 ' + Common.Utils.RGBColor(color).toRGBA(0.7) + ' inset'; - } else { - color = '0px 4px 0 ' + color + ' inset'; - } - - tab.get('el').find('a').css('box-shadow', color); - } else { - tab.get('el').find('a').css('box-shadow', ''); - } - } - }, - - updateTabsColors: function () { - var me = this; - _.each(this.sheets.models, function (item) { - me.setTabLineColor(item, me.api.asc_getWorksheetTabColor(item.get('index'))); - }); - }, - - onError: function(id, level, errData) { - // if (id == Asc.c_oAscError.ID.LockedWorksheetRename) - // this.statusbar.update(); - }, - - onTabClick: function(index, model) { - var opened = $('.document-menu.modal-in').length; - uiApp.closeModal('.document-menu.modal-in'); - - var sdkindex = model.get('index'); - if ( sdkindex == this.api.asc_getActiveWorksheetIndex () ) { - if ( !opened ) { - if ( this.isEdit && !this.isDisconnected ) { - this.api.asc_closeCellEditor(); - - this.statusbar.showTabContextMenu(this._getTabMenuItems(model), model); - } - } - } else { - this.api.asc_showWorksheet( sdkindex ); - this.statusbar.setActiveTab(index); - - Common.NotificationCenter.trigger('sheet:active', sdkindex); - } - }, - - onLinkWorksheetRange: function(nameSheet, prevSheet) { - var tab = this.sheets.findWhere({name: nameSheet}); - if (tab) { - var sdkIndex = tab.get('index'); - if (sdkIndex !== prevSheet) { - var index = this.sheets.indexOf(tab); - this.statusbar.setActiveTab(index); - Common.NotificationCenter.trigger('sheet:active', sdkIndex); - } - } - }, - - onAddTab: function () { - this.api.asc_closeCellEditor(); - this.api.asc_addWorksheet(this.createSheetName()); - }, - - onTabMenu: function (view, event, model) { - var me = this; - - switch (event) { - case 'del': me.deleteWorksheet(); break; - case 'hide': me.hideWorksheet(true, model.get('index')); break; - case 'ins': me.api.asc_insertWorksheet(me.createSheetName()); break; - case 'copy': - var name = me.createCopyName(me.api.asc_getWorksheetName(me.api.asc_getActiveWorksheetIndex())); - me.api.asc_copyWorksheet(model.get('index'), name); - break; - case 'unhide': - var items = []; - _.each(this.hiddensheets.models, function (item) { - items.push({ - caption: item.get('name'), - event: 'reveal:' + item.get('index') - }) - }); - _.defer(function () { - me.statusbar.showTabContextMenu(items, model); - }); - break; - case 'ren': me.renameWorksheet(); break; - case 'showMore': - if (me._moreAction.length > 0) { - _.delay(function () { - _.each(me._moreAction, function (action) { - action.text = action.caption; - action.onClick = function () { - me.onTabMenu(null, action.event, model) - } - }); - - uiApp.actions([me._moreAction, [ - { - text: me.cancelButtonText, - bold: true - } - ]]); - }, 100); - } - break; - default: - var _re = /reveal\:(\d+)/.exec(event); - if ( _re && !!_re[1] ) { - me.hideWorksheet(false, parseInt(_re[1])); - } - } - - }, - - _getTabMenuItems: function(model) { - var wbLocked = this.api.asc_isWorkbookLocked(); - var shLocked = this.api.asc_isWorksheetLockedOrDeleted(model.get('index')); - - var items = [{ - caption: this.menuDuplicate, - event: 'copy', - locked: wbLocked || shLocked - },{ - caption: this.menuDelete, - event: 'del', - locked: wbLocked || shLocked - },{ - caption: this.menuRename, - event: 'ren', - locked: wbLocked || shLocked - },{ - caption: this.menuHide, - event: 'hide', - locked: wbLocked || shLocked - }]; - - - if ( !wbLocked && !shLocked && this.hiddensheets.length ) { - items.push({ - caption: this.menuUnhide, - event: 'unhide' - }); - } - - if (Common.SharedSettings.get('phone') && items.length > 3) { - this._moreAction = items.slice(2); - - items = items.slice(0, 2); - items.push({ - caption: this.menuMore, - event: 'showMore' - }); - } - - return items; - }, - - menuDuplicate : 'Duplicate', - menuDelete : 'Delete', - menuHide : 'Hide', - menuUnhide : 'Unhide', - errorLastSheet : 'Workbook must have at least one visible worksheet.', - errorRemoveSheet: 'Can\'t delete the worksheet.', - warnDeleteSheet : 'The worksheet maybe has data. Proceed operation?', - strSheet : 'Sheet', - menuRename : 'Rename', - errNameExists : 'Worksheet with such name already exist.', - errNameWrongChar: 'A sheet name cannot contains characters: \\, \/, *, ?, [, ], :', - errNotEmpty: 'Sheet name must not be empty', - strRenameSheet: 'Rename Sheet', - strSheetName : 'Sheet Name', - cancelButtonText: 'Cancel', - notcriticalErrorTitle: 'Warning', - menuMore: 'More' - - }, SSE.Controllers.Statusbar || {})); -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/Toolbar.js b/apps/spreadsheeteditor/mobile/app/controller/Toolbar.js deleted file mode 100644 index eb2ec8b63..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/Toolbar.js +++ /dev/null @@ -1,272 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * Spreadsheet Editor - * - * Created by Maxim Kadushkin on 11/15/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone', - 'spreadsheeteditor/mobile/app/view/Toolbar' -], function (core, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.Toolbar = Backbone.Controller.extend(_.extend((function() { - // private - var locked = { - book: false, - sheet: false - }; - var _users = []; - var _displayCollaboration = false; - - 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 || data.config.customization.goback.requestClose && data.config.canRequestClose)) { - $('#document-back').show().single('click', _.bind(this.onBack, this)); - } - }, - - setApi: function(api) { - this.api = api; - - this.api.asc_registerCallback('asc_onCanUndoChanged', _.bind(this.onApiCanRevert, this, 'undo')); - this.api.asc_registerCallback('asc_onCanRedoChanged', _.bind(this.onApiCanRevert, this, 'redo')); - this.api.asc_registerCallback('asc_onSelectionChanged', this.onApiSelectionChanged.bind(this)); - this.api.asc_registerCallback('asc_onWorkbookLocked', _.bind(this.onApiWorkbookLocked, this)); - this.api.asc_registerCallback('asc_onWorksheetLocked', _.bind(this.onApiWorksheetLocked, this)); - this.api.asc_registerCallback('asc_onActiveSheetChanged', _.bind(this.onApiActiveSheetChanged, this)); - this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect, this)); - this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onUsersChanged, this)); - this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onUsersChanged, this)); - this.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(this.onUserConnection, this)); - Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this)); - - Common.NotificationCenter.on('sheet:active', this.onApiActiveSheetChanged.bind(this)); - }, - - setMode: function (mode) { - this.mode = 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.asc_isDocumentModified()) { - uiApp.modal({ - title : me.dlgLeaveTitleText, - text : me.dlgLeaveMsgText, - verticalButtons: true, - buttons : [ - { - text: me.leaveButtonText, - onClick: function() { - Common.NotificationCenter.trigger('goback', true); - } - }, - { - text: me.stayButtonText, - bold: true - } - ] - }); - } else { - Common.NotificationCenter.trigger('goback', true); - } - }, - - onUndo: function (e) { - if ( this.api ) this.api.asc_Undo(); - }, - - onRedo: function (e) { - if ( this.api ) this.api.asc_Redo(); - }, - - // API handlers - - onApiWorkbookLocked: function (l) { - locked.book = l; - this.onApiSelectionChanged(); - }, - - onApiWorksheetLocked: function (l) { - locked.sheet = l; - this.onApiSelectionChanged(); - }, - - onApiActiveSheetChanged: function (index) { - locked.sheet = this.api.asc_isWorksheetLockedOrDeleted(index); - Common.NotificationCenter.trigger('comments:filterchange', ['doc', 'sheet' + this.api.asc_getWorksheetId(index)], false ); - }, - - onApiCanRevert: function(which, can) { - if (this.isDisconnected) return; - - if (which == 'undo') { - $('#toolbar-undo').toggleClass('disabled', !can); - } else { - $('#toolbar-redo').toggleClass('disabled', !can); - } - }, - - onApiSelectionChanged: function(info) { - if (this.isDisconnected) return; - - if ( !info ) info = this.api.asc_getCellInfo(); - var islocked = false; - - switch (info.asc_getSelectionType()) { - case Asc.c_oAscSelectionType.RangeChart: - case Asc.c_oAscSelectionType.RangeImage: - case Asc.c_oAscSelectionType.RangeShape: - case Asc.c_oAscSelectionType.RangeChartText: - case Asc.c_oAscSelectionType.RangeShapeText: - var objects = this.api.asc_getGraphicObjectProps(); - for ( var i in objects ) { - if ( objects[i].asc_getObjectType() == Asc.c_oAscTypeSelectElement.Image ) { - if ((islocked = objects[i].asc_getObjectValue().asc_getLocked())) - break; - } - } - break; - default: - islocked = info.asc_getLocked(); - } - - this.getView('Toolbar').disableControl(['add', 'edit'], islocked); - }, - - activateControls: function() { - $('#toolbar-settings, #toolbar-search, #document-back, #toolbar-edit-document, #toolbar-collaboration').removeClass('disabled'); - }, - - activateViewControls: function() { - $('#toolbar-search, #document-back, #toolbar-collaboration').removeClass('disabled'); - }, - - deactivateEditControls: function(enableDownload) { - $('#toolbar-edit, #toolbar-add').addClass('disabled'); - if (enableDownload) - SSE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); - else - $('#toolbar-settings').addClass('disabled'); - }, - - onCoAuthoringDisconnect: function(enableDownload) { - this.isDisconnected = true; - this.deactivateEditControls(enableDownload); - $('#toolbar-undo').toggleClass('disabled', true); - $('#toolbar-redo').toggleClass('disabled', true); - SSE.getController('AddContainer').hideModal(); - SSE.getController('EditContainer').hideModal(); - SSE.getController('Settings').hideModal(); - }, - - displayCollaboration: function() { - if(_users !== undefined) { - var length = 0; - _.each(_users, function (item) { - if ((item.asc_getState()!==false) && !item.asc_getView()) - length++; - }); - _displayCollaboration = (length >= 1 || !this.mode || this.mode.canViewComments); - _displayCollaboration ? $('#toolbar-collaboration').show() : $('#toolbar-collaboration').hide(); - } - }, - - onUsersChanged: function(users) { - _users = users; - this.displayCollaboration(); - }, - - onUserConnection: function(change){ - var changed = false; - for (var uid in _users) { - if (undefined !== uid) { - var user = _users[uid]; - if (user && user.asc_getId() == change.asc_getId()) { - _users[uid] = change; - changed = true; - } - } - } - !changed && change && (_users[change.asc_getId()] = change); - this.displayCollaboration(); - }, - - getDisplayCollaboration: function() { - return _displayCollaboration; - }, - - 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' - } - })(), SSE.Controllers.Toolbar || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/add/AddChart.js b/apps/spreadsheeteditor/mobile/app/controller/add/AddChart.js deleted file mode 100644 index bb91e2c39..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/add/AddChart.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddTable.js - * - * Created by Maxim Kadushkin on 12/13/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/add/AddChart' -], function (core) { - 'use strict'; - - SSE.Controllers.AddChart = Backbone.Controller.extend(_.extend((function() { - - return { - models: [], - collections: [], - views: [ - 'AddChart' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddChart': { - 'chart:insert': this.onInsertChart.bind(this) - } - }); - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddChart').render(); - }, - - initEvents: function () { - }, - - onInsertChart: function (type) { - SSE.getController('AddContainer').hideModal(); - }, - - txtDiagramTitle: 'Chart Title', - txtXAxis: 'X Axis', - txtYAxis: 'Y Axis', - txtSeries: 'Seria' - } - })(), SSE.Controllers.AddChart || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/add/AddContainer.js b/apps/spreadsheeteditor/mobile/app/controller/add/AddContainer.js deleted file mode 100644 index 7c5cfa04e..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/add/AddContainer.js +++ /dev/null @@ -1,329 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddContainer.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/6/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'jquery', - 'underscore', - 'backbone' -], function (core, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.AddContainer = Backbone.Controller.extend(_.extend((function() { - // private - - var parentButton = null, - options; - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - setApi: function(api) { - this.api = api; - }, - - onLaunch: function() { - // - }, - - showModal: function(opts) { - var me = this; - - if ($$('.container-add.modal-in').length > 0) { - return; - } - - uiApp.closeModal(); - - var cellinfo = me.api.asc_getCellInfo(); - var iscellmenu, isrowmenu, iscolmenu, isallmenu, ischartmenu, isimagemenu, istextshapemenu, isshapemenu, istextchartmenu, - seltype = cellinfo.asc_getSelectionType(), - iscelllocked = cellinfo.asc_getLocked(), - isTableLocked = cellinfo.asc_getLockedTable()===true; - - if ( !iscelllocked ) { - options = opts; - - if ( !options ) { - switch (seltype) { - case Asc.c_oAscSelectionType.RangeCells: - case Asc.c_oAscSelectionType.RangeRow: - case Asc.c_oAscSelectionType.RangeCol: - case Asc.c_oAscSelectionType.RangeMax: break; - case Asc.c_oAscSelectionType.RangeImage: - case Asc.c_oAscSelectionType.RangeShape: - case Asc.c_oAscSelectionType.RangeChart: - case Asc.c_oAscSelectionType.RangeChartText: - case Asc.c_oAscSelectionType.RangeShapeText: - options = {panels: ['image','shape']}; - break; - } - } - - parentButton = !opts || !opts.button ? '#toolbar-add' : opts.button; - me._showByStack(Common.SharedSettings.get('phone')); - } - - this.api.asc_closeCellEditor(); - SSE.getController('Toolbar').getView('Toolbar').hideSearch(); - }, - - hideModal: function () { - if (this.picker) { - uiApp.closeModal(this.picker); - } - }, - - _layoutEditorsByStack: function () { - var me = this, - addViews = []; - - // var seltype = this.api.asc_getCellInfo().asc_getSelectionType(); - - if ( !options ) - addViews.push({ - caption: me.textChart, - id: 'add-chart', - icon: 'icon-add-chart', - layout: SSE.getController('AddChart').getView('AddChart').rootLayout() - }); - - if ( !options || options.panel == 'function' ) { - view = SSE.getController('AddFunction').getView('AddFunction'); - addViews.push({ - caption: me.textFormula, - id: 'add-formula', - icon: 'icon-add-formula', - layout: options ? view.rootLayout() : view.layoutPanel() - }); - } - - if ( !options || !(_.indexOf(options.panels, 'shape') < 0) ) - addViews.push({ - caption: me.textShape, - id: 'add-shape', - icon: 'icon-add-shape', - layout: SSE.getController('AddShape').getView('AddShape').rootLayout() - }); - - if ( !options ) - addViews.push({ - caption: me.textOther, - id: 'add-other', - icon: 'icon-add-other', - layout: SSE.getController('AddOther').getView('AddOther').rootLayout() - }); - - if ( options && options.panel == 'hyperlink' ) { - var view = SSE.getController('AddLink').getView(); - addViews.push({ - caption: view.getTitle(), - id: 'add-link', - layout: view.rootLayout() - }); - } - - if ( options && !(_.indexOf(options.panels, 'image')) ) { - addViews.push({ - caption: me.textImage, - id: 'add-image', - icon: 'icon-add-image', - layout: SSE.getController('AddOther').getView('AddOther').childLayout('image') - }); - } - - return addViews; - }, - - _showByStack: function(isPhone) { - var me = this, - isAndroid = Framework7.prototype.device.android === true, - layoutAdds = me._layoutEditorsByStack(); - - if ($$('.container-add.modal-in').length > 0) { - return; - } - - // Navigation bar - var $layoutNavbar = $( - '
            ' - ); - - - if (layoutAdds.length == 1) { - $layoutNavbar - .find('.center') - .removeClass('categories') - .html(layoutAdds[0].caption); - - $layoutPages = $('
            ' + - layoutAdds[0].layout + - '
            '); - } else { - if (isAndroid) { - $layoutNavbar - .find('.center') - .append('
            '); - - _.each(layoutAdds, function (layout, index) { - $layoutNavbar - .find('.toolbar-inner') - .append( - '' - ); - }); - $layoutNavbar - .find('.toolbar-inner') - .append(''); - } else { - $layoutNavbar - .find('.center') - .append('
            '); - - _.each(layoutAdds, function (layout, index) { - $layoutNavbar - .find('.buttons-row') - .append( - '' - ); - }); - } - - // Content - - var _arrangePages = _.template( - '<% _.each(pages, function(view, index) { %>' + - '
            ">' + - '
            ' + - '
            ' + - '
            ' + - '<%= view.layout %>' + - '
            ' + - '
            ' + - '
            ' + - '
            ' + - '<% }); %>'); - - var $layoutPages = $('
            ' + - '
            ' + - '
            ' + - _arrangePages({pages: layoutAdds}) + - '
            ' + - '
            ' + - '
            '); - } - - if (isPhone) { - me.picker = $$(uiApp.popup( - '' - )); - if (Common.Locale.getCurrentLanguage() !== 'en') - me.picker.attr('applang', Common.Locale.getCurrentLanguage()); - } else { - me.picker = uiApp.popover( - '
            ' + - '
            ' + - '
            ' + - '
            ' + - '' + - '
            ' + - '
            ', - $$(parentButton) - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }); - if (Common.Locale.getCurrentLanguage() !== 'en') - $$(me.picker).attr('applang', Common.Locale.getCurrentLanguage()); - } - - if (isAndroid) { - $$('.view.add-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.add-root-view .navbar').prependTo('.view.add-root-view > .pages > .page'); - } - - me.rootView = uiApp.addView('.add-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('addcontainer:show', options); - }, - - textChart: 'Chart', - textFormula: 'Function', - textShape: 'Shape', - textImage: 'Image', - textOther: 'Other' - } - })(), SSE.Controllers.AddContainer || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/add/AddFunction.js b/apps/spreadsheeteditor/mobile/app/controller/add/AddFunction.js deleted file mode 100644 index 2f8e89353..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/add/AddFunction.js +++ /dev/null @@ -1,133 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddFunction.js - * - * Created by Maxim Kadushkin on 12/14/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/add/AddFunction', - 'text!../../../resources/l10n/functions/en.json', - 'text!../../../resources/l10n/functions/en_desc.json' -], function (core, view, fc, fd) { - 'use strict'; - - SSE.Controllers.AddFunction = Backbone.Controller.extend(_.extend((function() { - - return { - models: [], - collections: [], - views: [ - 'AddFunction' - ], - - initialize: function () { - var me = this; - - Common.NotificationCenter.on('addcontainer:show', _.bind(me.initEvents, me)); - Common.NotificationCenter.on('document:ready', _.bind(me.onDocumentReady, me)); - - me.addListeners({ - 'AddFunction': { - 'function:insert': me.onInsertFunction.bind(me), - 'function:info': me.onFunctionInfo.bind(me) - } - }); - this.fd = fd; - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddFunction').render(); - }, - - initEvents: function () { - }, - - onDocumentReady: function () { - var me = this; - - _.defer(function () { - var editorLang = Common.localStorage.getItem('sse-settings-func-lang'); - - editorLang = (editorLang ? editorLang : 'en').split(/[\-\_]/)[0].toLowerCase(); - - var localizationFunctions = function(data) { - fc = data; - me.api.asc_setLocalization(fc); - me.fillFunctions.call(me); - }; - - $.getJSON(Common.Utils.String.format("{0}/{1}.json", "resources/l10n/functions", editorLang), function(json) { - localizationFunctions(json); - }).fail(function() { - localizationFunctions(fc); - }); - }); - }, - - fillFunctions: function() { - var me = this, - functions = {}; - var editorLang = Common.localStorage.getItem('sse-settings-func-lang'); - - editorLang = (editorLang ? editorLang : 'en').split(/[\-\_]/)[0].toLowerCase(); - - var localizationFunctionsDesc = function (data) {}; - - $.getJSON(Common.Utils.String.format("{0}/{1}_desc.json", "resources/l10n/functions", editorLang), function(json) { - localizationFunctionsDesc(json); - }).fail(function() { - localizationFunctionsDesc(fd); - }); - }, - - onInsertFunction: function (type) { - SSE.getController('AddContainer').hideModal(); - }, - - onFunctionInfo: function (type) { - this.getView('AddFunction').openFunctionInfo(type); - } - } - })(), SSE.Controllers.AddFunction || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/add/AddLink.js b/apps/spreadsheeteditor/mobile/app/controller/add/AddLink.js deleted file mode 100644 index de4821e92..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/add/AddLink.js +++ /dev/null @@ -1,182 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddLink.js - * - * Created by Maxim.Kadushkin on 1/10/2017 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/add/AddLink' -], function (core) { - 'use strict'; - - SSE.Controllers.AddLink = Backbone.Controller.extend(_.extend((function() { - var cfgLink; - - // Handlers - - function onChangePanel (view, pageId) { - var me = this; - - if (pageId == '#addother-change-linktype') { - view.optionLinkType( me.optsLink.type ); - } - } - - function onChangeLinkType (view, type) { - cfgLink.type = type; - - view.optionLinkType( cfgLink.type, 'caption' ); - } - - function onChangeLinkSheet (view, index) { - } - - function applyLocked(view) { - var _view = view || this.getView(); - - var cell = this.api.asc_getCellInfo(), - celltype = cell.asc_getSelectionType(); - var allowinternal = (celltype!==Asc.c_oAscSelectionType.RangeImage && celltype!==Asc.c_oAscSelectionType.RangeShape && - celltype!==Asc.c_oAscSelectionType.RangeShapeText && celltype!==Asc.c_oAscSelectionType.RangeChart && - celltype!==Asc.c_oAscSelectionType.RangeChartText); - - _view.optionDisplayText(cell.asc_getLockText() ? 'locked' : cell.asc_getText()); - _view.optionAllowInternal(allowinternal); - allowinternal && _view.optionLinkType( cfgLink.type ); - } - - return { - models: [], - collections: [], - views: [ - 'AddLink' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddLink': { - 'panel:change' : onChangePanel.bind(this) - , 'link:insert': this.onInsertLink.bind(this) - , 'link:changetype': onChangeLinkType.bind(this) - , 'link:changesheet': onChangeLinkSheet.bind(this) - } - }); - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddLink').render(); - }, - - getView: function (name) { - return Backbone.Controller.prototype.getView.call(this, name ? name: 'AddLink'); - }, - - initEvents: function (opts) { - var me = this; - var wsc = me.api.asc_getWorksheetsCount(), items = null; - var aws = me.api.asc_getActiveWorksheetIndex(); - if (wsc > 0) { - items = []; - while ( !(--wsc < 0) ) { - if ( !this.api.asc_isWorksheetHidden(wsc) ) { - items.unshift({ - value: wsc, - caption: me.api.asc_getWorksheetName(wsc), - active: wsc==aws - }); - } - } - } - - cfgLink = { - type: 'ext', - sheets: items - }; - - // uiApp.addView('#add-link', { - // dynamicNavbar: true - // }); - - _.defer(function () { - var view = me.getView().acceptWorksheets( items ); - if ( opts ) { - if ( opts.panel === 'hyperlink' ) { - view.showPanel(); - applyLocked.call(me, view); - } - } - }); - }, - - showPage: function (navbar) { - var me = this; - - var view = this.getView(); - var rootView = SSE.getController('AddContainer').rootView; - view.showPage(rootView, navbar); - - var cell = me.api.asc_getCellInfo(), - celltype = cell.asc_getSelectionType(); - var allowinternal = (celltype!==Asc.c_oAscSelectionType.RangeImage && celltype!==Asc.c_oAscSelectionType.RangeShape && - celltype!==Asc.c_oAscSelectionType.RangeShapeText && celltype!==Asc.c_oAscSelectionType.RangeChart && - celltype!==Asc.c_oAscSelectionType.RangeChartText); - - view.optionDisplayText(cell.asc_getLockText() ? 'locked' : cell.asc_getText()); - view.optionAllowInternal(allowinternal); - allowinternal && view.optionLinkType( cfgLink.type ); - - view.fireEvent('page:show', [this, '#addlink']); - }, - - onInsertLink: function(args){ - SSE.getController('AddContainer').hideModal(); - }, - - textInvalidRange : 'ERROR! Invalid cells range', - txtNotUrl : 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - } - })(), SSE.Controllers.AddLink || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/add/AddOther.js b/apps/spreadsheeteditor/mobile/app/controller/add/AddOther.js deleted file mode 100644 index dd1096405..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/add/AddOther.js +++ /dev/null @@ -1,210 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ -/** - * AddOther.js - * - * Created by Kadushkin Maxim on 12/07/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/add/AddOther' -], function (core) { - 'use strict'; - - SSE.Controllers.AddOther = Backbone.Controller.extend(_.extend((function() { - - return { - models: [], - collections: [], - views: [ - 'AddOther' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'AddOther': { - 'page:show' : this.onPageShow - , 'image:insert': this.onInsertImage - , 'insert:sort': this.onInsertSort - , 'insert:filter': this.onInsertFilter - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - me.api.asc_registerCallback('asc_onError', _.bind(me.onError, me)); - me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onApiSelectionChanged, me)); - - // me.api.asc_registerCallback('asc_onInitEditorFonts', _.bind(onApiLoadFonts, me)); - - }, - - setMode: function (mode) { - this.view = this.getView('AddOther'); - this.view.canViewComments = mode.canViewComments; - }, - - onApiSelectionChanged: function(info) { - this.view.isComments = info.asc_getComments().length>0; //prohibit adding multiple comments in one cell - }, - - onLaunch: function () { - this.createView('AddOther').render(); - }, - - initEvents: function (args) { - if ( args && !(_.indexOf(args.panels, 'image') < 0) ) { - this.onPageShow(this.getView('AddOther'), '#addother-insimage'); - } - this.view.hideInsertComments = this.isHideInsertComment(); - }, - - isHideInsertComment: function() { - var cellinfo = this.api.asc_getCellInfo(); - var iscelllocked = cellinfo.asc_getLocked(), - seltype = cellinfo.asc_getSelectionType(); - if (seltype === Asc.c_oAscSelectionType.RangeCells && !iscelllocked) { - return false; - } - return true; - }, - - onPageShow: function (view, pageId) { - var me = this; - - if (pageId == '#addother-sort') { - var filterInfo = me.api.asc_getCellInfo().asc_getAutoFilterInfo(); - view.optionAutofilter( filterInfo ? filterInfo.asc_getIsAutoFilter() : null) - } else - if (pageId == '#addother-insimage') { - $('#addimage-url').single('click', function(e) { - view.showImageFromUrl(); - }); - - $('#addimage-file').single('click', function () { - me.onInsertImage({islocal:true}); - }); - } else if (pageId === "#addother-insert-comment") { - me.initInsertComment(false); - } - }, - - // Handlers - - initInsertComment: function (documentFlag) { - var comment = SSE.getController('Common.Controllers.Collaboration').getCommentInfo(); - if (comment) { - this.getView('AddOther').renderComment(comment); - $('#done-comment').single('click', _.bind(this.onDoneComment, this, documentFlag)); - $('.back-from-add-comment').single('click', _.bind(function () { - if ($('#comment-text').val().length > 0) { - uiApp.modal({ - title: '', - text: this.textDeleteDraft, - buttons: [ - { - text: this.textCancel - }, - { - text: this.textDelete, - bold: true, - onClick: function () { - SSE.getController('AddContainer').rootView.router.back(); - } - }] - }) - } else { - SSE.getController('AddContainer').rootView.router.back(); - } - }, this)) - } - }, - - onDoneComment: function(documentFlag) { - var value = $('#comment-text').val().trim(); - if (value.length > 0) { - if (SSE.getController('Common.Controllers.Collaboration').onAddNewComment(value, documentFlag)) { - this.view.isComments = true; - } - SSE.getController('AddContainer').hideModal(); - } - }, - - onInsertImage: function (args) { - if ( !args.islocal ) { - var me = this; - var url = args.url; - if (!_.isEmpty(url)) { - if ((/((^https?)|(^ftp)):\/\/.+/i.test(url))) { - SSE.getController('AddContainer').hideModal(); - } else { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - } - } else { - uiApp.alert(me.textEmptyImgUrl, me.notcriticalErrorTitle); - } - } else { - SSE.getController('AddContainer').hideModal(); - } - }, - - onInsertSort: function(type) { - this.api.asc_sortColFilter(type == 'down' ? Asc.c_oAscSortOptions.Ascending : Asc.c_oAscSortOptions.Descending, '', undefined, undefined, true); - }, - - onInsertFilter: function(checked) { - }, - - onError: function(id, level, errData) { - if(id === Asc.c_oAscError.ID.AutoFilterDataRangeError) { - this.getView('AddOther').optionAutofilter(false); - } - }, - - textEmptyImgUrl : 'You need to specify image URL.', - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - textDeleteDraft: 'Do you really want to delete draft?', - textCancel: 'Cancel', - //textContinue: 'Continue', - textDelete: 'Delete', - notcriticalErrorTitle: 'Warning' - } - })(), SSE.Controllers.AddOther || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/add/AddShape.js b/apps/spreadsheeteditor/mobile/app/controller/add/AddShape.js deleted file mode 100644 index b7a1cbcf2..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/add/AddShape.js +++ /dev/null @@ -1,224 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddShape.js - * - * Created by Maxim Kadushkin on 12/07/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/add/AddShape' -], function (core) { - 'use strict'; - - SSE.Controllers.AddShape = Backbone.Controller.extend(_.extend((function() { - var _styles = []; - - return { - models: [], - collections: [], - views: [ - 'AddShape' - ], - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - - // Fill shapes - - function randomColor() { - return '#' + Math.floor(Math.random()*16777215).toString(16); - } - - _styles = [ - { - title: 'Text', - thumb: 'shape-01.svg', - type: 'textRect' - }, - { - title: 'Line', - thumb: 'shape-02.svg', - type: 'line' - }, - { - title: 'Line with arrow', - thumb: 'shape-03.svg', - type: 'lineWithArrow' - }, - { - title: 'Line with two arrows', - thumb: 'shape-04.svg', - type: 'lineWithTwoArrows' - }, - { - title: 'Rect', - thumb: 'shape-05.svg', - type: 'rect' - }, - { - title: 'Hexagon', - thumb: 'shape-06.svg', - type: 'hexagon' - }, - { - title: 'Round rect', - thumb: 'shape-07.svg', - type: 'roundRect' - }, - { - title: 'Ellipse', - thumb: 'shape-08.svg', - type: 'ellipse' - }, - { - title: 'Triangle', - thumb: 'shape-09.svg', - type: 'triangle' - }, - { - title: 'Triangle', - thumb: 'shape-10.svg', - type: 'rtTriangle' - }, - { - title: 'Trapezoid', - thumb: 'shape-11.svg', - type: 'trapezoid' - }, - { - title: 'Diamond', - thumb: 'shape-12.svg', - type: 'diamond' - }, - { - title: 'Right arrow', - thumb: 'shape-13.svg', - type: 'rightArrow' - }, - { - title: 'Left-right arrow', - thumb: 'shape-14.svg', - type: 'leftRightArrow' - }, - { - title: 'Left arrow callout', - thumb: 'shape-15.svg', - type: 'leftArrow' - }, - { - title: 'Right arrow callout', - thumb: 'shape-16.svg', - type: 'bentUpArrow' - }, - { - title: 'Flow chart off page connector', - thumb: 'shape-17.svg', - type: 'flowChartOffpageConnector' - }, - { - title: 'Heart', - thumb: 'shape-18.svg', - type: 'heart' - }, - { - title: 'Math minus', - thumb: 'shape-19.svg', - type: 'mathMinus' - }, - { - title: 'Math plus', - thumb: 'shape-20.svg', - type: 'mathPlus' - }, - { - title: 'Parallelogram', - thumb: 'shape-21.svg', - type: 'parallelogram' - }, - { - title: 'Wedge rect callout', - thumb: 'shape-22.svg', - type: 'wedgeRectCallout' - }, - { - title: 'Wedge ellipse callout', - thumb: 'shape-23.svg', - type: 'wedgeEllipseCallout' - }, - { - title: 'Cloud callout', - thumb: 'shape-24.svg', - type: 'cloudCallout' - } - ]; - - var elementsInRow = 4; - var groups = _.chain(_styles).groupBy(function(element, index){ - return Math.floor(index/elementsInRow); - }).toArray().value(); - - Common.SharedSettings.set('shapes', groups); - Common.NotificationCenter.trigger('shapes:load', groups); - }, - - setApi: function (api) { - this.api = api; - }, - - onLaunch: function () { - this.createView('AddShape').render(); - }, - - initEvents: function () { - var me = this; - - $('#add-shape li').single('click', _.buffered(me.onShapeClick, 100, me)); - }, - - onShapeClick: function (e) { - SSE.getController('AddContainer').hideModal(); - }, - - // Public - - getStyles: function () { - return _styles; - } - } - })(), SSE.Controllers.AddShape || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/edit/EditCell.js b/apps/spreadsheeteditor/mobile/app/controller/edit/EditCell.js deleted file mode 100644 index ef9666471..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/edit/EditCell.js +++ /dev/null @@ -1,562 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditCell.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/6/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/edit/EditCell', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette' -], function (core, view, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.EditCell = Backbone.Controller.extend(_.extend((function() { - var _stack = [], - _borderInfo = {color: '000000', width: Asc.c_oAscBorderStyles.Medium}; - - return { - models: [], - collections: [], - views: [ - 'EditCell' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditCell': { - 'page:show' : this.onPageShow, - 'font:click' : this.onFontClick, - 'style:click' : this.onStyleClick - } - }); - this._fontsArray = []; - this._styleSize = {width: 100, height: 50}; - this._cellStyles = []; - this._cellInfo = undefined; - this._fontInfo = {}; - this._isEdit = false; - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_setThumbnailStylesSizes(me._styleSize.width, me._styleSize.height); - - me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onApiSelectionChanged, me)); - me.api.asc_registerCallback('asc_onEditorSelectionChanged', _.bind(me.onApiEditorSelectionChanged, me)); - }, - - setMode: function (mode) { - this._isEdit = mode.isEdit; - }, - - onLaunch: function () { - this.createView('EditCell').render(); - }, - - initEvents: function () { - if ($('#edit-cell').length < 1) { - return; - } - - var me = this; - - $('#font-bold').single('click', _.bind(me.onBold, me)); - $('#font-italic').single('click', _.bind(me.onItalic, me)); - $('#font-underline').single('click', _.bind(me.onUnderline, me)); - - me.getView('EditCell').renderStyles(me._cellStyles); - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - if ('#edit-text-fonts' == pageId) { - me.initFontsPage(); - } else if ('#edit-text-color' == pageId) { - me.initTextColorPage(); - } else if ('#edit-fill-color' == pageId) { - me.initFillColorPage(); - } else if ('#edit-cell-border-color' == pageId) { - me.initBorderColorPage(); - } else if ('#edit-text-format' == pageId) { - me.initTextFormat(); - } else if ('#edit-text-orientation' == pageId) { - me.initTextOrientation(); - } else if ('#edit-border-style' == pageId) { - me.initBorderStyle(); - } else if (!_.isUndefined(pageId) && pageId.indexOf('#edit-cell-format') > -1) { - me.initCellFormat(); - } else { - me.initCellSettings(me._cellInfo); - } - }, - - // Public - - getFonts: function() { - return this._fontsArray; - }, - - getStack: function() { - return _stack; - }, - - getFontInfo: function () { - return this._fontInfo; - }, - - getCell: function () { - return this._cellInfo; - }, - - getStyleSize: function () { - return this._styleSize; - }, - - initFontsPage: function () { - var me = this, - displaySize = this._fontInfo.size; - - _.isUndefined(displaySize) ? displaySize = this.textAuto : displaySize = displaySize + ' ' + this.textPt; - - $('#font-size .item-after label').html(displaySize); - $('#font-size .button').single('click', _.bind(me.onFontSize, me)); - }, - - initTextColorPage: function () { - var me = this, - palette = me.getView('EditCell').paletteTextColor, - color = me._sdkToThemeColor(this._fontInfo.color); - - if (palette) { - palette.select(color); - palette.on('select', _.bind(me.onTextColor, me)); - } - }, - - initFillColorPage: function () { - if (_.isUndefined(this._cellInfo)) return; - - var me = this, - palette = me.getView('EditCell').paletteFillColor, - color = me._sdkToThemeColor(me._cellInfo.asc_getXfs().asc_getFillColor()); - - if (palette) { - palette.select(color); - palette.on('select', _.bind(me.onFillColor, me)); - } - }, - - initBorderColorPage: function () { - var me = this; - me.getView('EditCell').showBorderColorPage(); - var palette = me.getView('EditCell').paletteBorderColor; - if (palette) { - palette.select(_borderInfo.color); - palette.on('select', _.bind(function (palette, color) { - _borderInfo.color = color; - $('#edit-border-color .color-preview').css('background-color', '#' + (_.isObject(_borderInfo.color) ? _borderInfo.color.color : _borderInfo.color)); - }, me)); - } - }, - - initTextFormat: function () { - if (_.isUndefined(this._cellInfo)) return; - - var me = this, - $pageTextFormat = $('.page[data-page=edit-text-format]'), - xfs = me._cellInfo.asc_getXfs(), - hAlign = xfs.asc_getHorAlign(), - vAlign = xfs.asc_getVertAlign(), - hAlignStr = 'left', - vAlignStr = 'bottom', - isWrapText = xfs.asc_getWrapText(); - - if (vAlign == Asc.c_oAscVAlign.Top) - vAlignStr = 'top'; - else if (vAlign == Asc.c_oAscVAlign.Center) - vAlignStr = 'center'; - - switch (hAlign) { - case AscCommon.align_Center: hAlignStr = 'center'; break; - case AscCommon.align_Right: hAlignStr = 'right'; break; - case AscCommon.align_Justify: hAlignStr = 'justify'; break; - } - - $('#text-format .item-media i').removeClass().addClass(Common.Utils.String.format('icon icon-text-align-{0}', hAlignStr)); - - if ($pageTextFormat.length > 0) { - var $radioHAlign = $pageTextFormat.find('input:radio[name=text-halign]'), - $radioVAlign = $pageTextFormat.find('input:radio[name=text-valign]'), - $switchWrapText = $pageTextFormat.find('#edit-cell-wrap-text input'); - - $radioHAlign.val([hAlignStr]); - $radioVAlign.val([vAlignStr]); - $switchWrapText.prop('checked', isWrapText); - - $radioHAlign.single('change', _.bind(me.onHAlignChange, me)); - $radioVAlign.single('change', _.bind(me.onVAlignChange, me)); - $switchWrapText.single('change', _.bind(me.onWrapTextChange, me)); - } - }, - - initCellFormat: function () { - var me = this, - $pageCellFormat = $('.page[data-page=edit-cell-format]'); - - if ($pageCellFormat.length > 0) { - $pageCellFormat.find('.item-link.no-indicator[data-type]').single('click', _.bind(me.onCellFormat, me)); - } - }, - - initBorderStyle: function () { - $('.page[data-page=edit-border-style] a[data-type]').single('click', _.bind(this.onBorderStyle, this)); - - $('#edit-border-color .color-preview').css('background-color', '#' + (_.isObject(_borderInfo.color) ? _borderInfo.color.color : _borderInfo.color)); - $('#edit-border-size select').val(_borderInfo.width); - $('#edit-border-size .item-after').text($('#edit-border-size select option[value=' +_borderInfo.width + ']').text()); - - $('#edit-border-size select').single('change', function (e) { - _borderInfo.width = parseInt($(e.currentTarget).val()); - }) - }, - - initFontSettings: function (fontObj) { - if (_.isUndefined(fontObj)) { - return; - } - - var me = this; - - // Init font name - var fontName = fontObj.asc_getFontName() || this.textFonts; - this._fontInfo.name = fontName; - - $('#font-fonts .item-title').html(fontName); - - - // Init font style - $('#font-bold').toggleClass('active', fontObj.asc_getFontBold() === true); - $('#font-italic').toggleClass('active', fontObj.asc_getFontItalic() === true); - $('#font-underline').toggleClass('active', fontObj.asc_getFontUnderline() === true); - - - // Init font size - this._fontInfo.size = fontObj.asc_getFontSize(); - var displaySize = this._fontInfo.size; - - _.isUndefined(displaySize) ? displaySize = this.textAuto : displaySize = displaySize + ' ' + this.textPt; - - $('#font-fonts .item-after span:first-child').html(displaySize); - $('#font-size .item-after label').html(displaySize); - - - // Init font color - this._fontInfo.color = fontObj.asc_getFontColor(); - - var color = this._fontInfo.color, - clr = me._sdkToThemeColor(color); - - $('#text-color .color-preview').css('background-color', '#' + (_.isObject(clr) ? clr.color : clr)); - var palette = this.getView('EditCell').paletteTextColor; - palette && palette.select(clr); - }, - - initCellSettings: function (cellInfo) { - if (_.isUndefined(cellInfo)) { - return; - } - - var me = this, - selectionType = cellInfo.asc_getSelectionType(), - // coAuthDisable = (!this.toolbar.mode.isEditMailMerge && !this.toolbar.mode.isEditDiagram) ? (cellInfo.asc_getLocked()===true || cellInfo.asc_getLockedTable()===true) : false, - // editOptionsDisabled = this._disableEditOptions(selectionType, coAuthDisable), - xfs = cellInfo.asc_getXfs(), - val, - need_disable = false; - - me.initFontSettings(xfs); - - // Init fill color - var color = xfs.asc_getFillColor(), - clr = me._sdkToThemeColor(color); - - $('#fill-color .color-preview').css('background-color', ('transparent' == clr) ? clr : ('#' + (_.isObject(clr) ? clr.color : clr))); - var palette = this.getView('EditCell').paletteFillColor; - palette && palette.select(clr); - - var styleName = cellInfo.asc_getStyleName(); - $('#edit-cell .cell-styles li[data-type="' + styleName + '"]').addClass('active'); - - if (selectionType == Asc.c_oAscSelectionType.RangeChart || selectionType == Asc.c_oAscSelectionType.RangeChartText) { - return; - } - - me.initTextOrientation(); - - me.initTextFormat(); - }, - - // Handlers - - onFontSize: function (e) { - var me = this, - $button = $(e.currentTarget), - fontSize = this._fontInfo.size; - - if ($button.hasClass('decrement')) { - _.isUndefined(fontSize) ? me.api.asc_decreaseFontSize() : fontSize = Math.max(1, --fontSize); - } else { - _.isUndefined(fontSize) ? me.api.asc_increaseFontSize() : fontSize = Math.min(100, ++fontSize); - } - - if (! _.isUndefined(fontSize)) { - me.api.asc_setCellFontSize(fontSize); - } - }, - - onFontClick: function (view, e) { - var $item = $(e.currentTarget).find('input'); - - if ($item) { - this.api.asc_setCellFontName($item.prop('value')); - } - }, - - onStyleClick: function (view, type) { - this.api.asc_setCellStyle(type); - }, - - onBold: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.asc_setCellBold(pressed); - } - }, - - onItalic: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.asc_setCellItalic(pressed); - } - }, - - onUnderline: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.asc_setCellUnderline(pressed); - } - }, - - onTextColor:function (palette, color) { - this.api.asc_setCellTextColor(Common.Utils.ThemeColor.getRgbColor(color)); - }, - - onFillColor:function (palette, color) { - this.api.asc_setCellBackgroundColor(color == 'transparent' ? null : Common.Utils.ThemeColor.getRgbColor(color)); - }, - - onHAlignChange: function (e) { - var $target = $(e.currentTarget), - value = $target.prop('value'), - type = AscCommon.align_Left; - - if (value == 'center') - type = AscCommon.align_Center; - else if (value == 'right') - type = AscCommon.align_Right; - else if (value == 'justify') - type = AscCommon.align_Justify; - - this.api.asc_setCellAlign(type); - }, - - onVAlignChange: function (e) { - var $target = $(e.currentTarget), - value = $target.prop('value'), - type = Asc.c_oAscVAlign.Bottom; - - if (value == 'top') { - type = Asc.c_oAscVAlign.Top; - } else if (value == 'center') { - type = Asc.c_oAscVAlign.Center; - } - - this.api.asc_setCellVertAlign(type); - }, - - onWrapTextChange: function (e) { - var $target = $(e.currentTarget), - checked = $target.prop('checked'); - - this.api.asc_setCellTextWrap(checked); - }, - - onCellFormat: function (e) { - }, - - onBorderStyle: function (e) { - var me = this, - $target = $(e.currentTarget), - type = $target.data('type'), - newBorders = [], - bordersWidth = _borderInfo.width, - bordersColor = Common.Utils.ThemeColor.getRgbColor(_borderInfo.color); - - if (type == 'inner') { - newBorders[Asc.c_oAscBorderOptions.InnerV] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.InnerH] = new Asc.asc_CBorder(bordersWidth, bordersColor); - } else if (type == 'all') { - newBorders[Asc.c_oAscBorderOptions.InnerV] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.InnerH] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.Left] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.Top] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.Right] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.Bottom] = new Asc.asc_CBorder(bordersWidth, bordersColor); - } else if (type == 'outer') { - newBorders[Asc.c_oAscBorderOptions.Left] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.Top] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.Right] = new Asc.asc_CBorder(bordersWidth, bordersColor); - newBorders[Asc.c_oAscBorderOptions.Bottom] = new Asc.asc_CBorder(bordersWidth, bordersColor); - } else if (type != 'none') { - var borderId = parseInt(type); - newBorders[borderId] = new Asc.asc_CBorder(bordersWidth, bordersColor); - } - - me.api.asc_setCellBorders(newBorders); - }, - - // API handlers - - onApiEditorSelectionChanged: function(fontObj) { - }, - - onApiSelectionChanged: function(cellInfo) { - }, - - // Helpers - _toggleButton: function (e) { - return $(e.currentTarget).toggleClass('active').hasClass('active'); - }, - - _sdkToThemeColor: function (color) { - var clr = 'transparent'; - - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - clr = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - } - } else { - clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } - - return clr; - }, - - initTextOrientation: function() { - if (_.isUndefined(this._cellInfo)) return; - - var me = this, - $pageTextOrientation = $('.page[data-page=edit-text-orientation]'), - orientationStr = 'horizontal', - xfs = this._cellInfo.asc_getXfs(); - - var textAngle = xfs.asc_getAngle(); - - switch(textAngle) { - case 45: orientationStr = 'anglecount'; break; - case -45: orientationStr = 'angleclock'; break; - case 255: orientationStr = 'vertical'; break; - case 90: orientationStr = 'rotateup'; break; - case -90: orientationStr = 'rotatedown'; break; - case 0: orientationStr = 'horizontal'; break; - } - - $('#text-orientation .item-media i').removeClass().addClass(Common.Utils.String.format('icon icon-text-orientation-{0}', orientationStr)); - - if ($pageTextOrientation.length > 0) { - var $radioOrientation = $pageTextOrientation.find('input:radio[name=text-orientation]'); - $radioOrientation.val([orientationStr]); - $radioOrientation.single('change', _.bind(me.onTextOrientationChange, me)); - } - }, - - onTextOrientationChange: function(e) { - var $target = $(e.currentTarget), - value = $target.prop('value'); - var angle = 0; - switch (value) { - case 'anglecount': angle = 45; break; - case 'angleclock': angle = -45; break; - case 'vertical': angle = 255; break; - case 'rotateup': angle = 90; break; - case 'rotatedown': angle = -90; break; - } - if (this.api) - this.api.asc_setCellAngle(angle); - }, - - textFonts: 'Fonts', - textAuto: 'Auto', - textPt: 'pt' - } - })(), SSE.Controllers.EditCell || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/edit/EditChart.js b/apps/spreadsheeteditor/mobile/app/controller/edit/EditChart.js deleted file mode 100644 index e81b34ca7..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/edit/EditChart.js +++ /dev/null @@ -1,1057 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditChart.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/12/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/edit/EditChart', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette' -], function (core, view, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.EditChart = Backbone.Controller.extend(_.extend((function() { - var _stack = [], - _shapeObject = undefined, - _borderInfo = {color: '000000', width: 1}, - _metricText = Common.Utils.Metric.getCurrentMetricName(); - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditChart' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditChart': { - 'page:show' : this.onPageShow - } - }); - this._chartObject = undefined; - this._isEdit = false; - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - setMode: function (mode) { - this._isEdit = mode.isEdit; - }, - - onLaunch: function () { - this.createView('EditChart').render(); - }, - - initEvents: function () { - var me = this; - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - if ($('#edit-chart').length < 1) { - return; - } - - var me = this; - - if ('#edit-chart-style' == pageId) { - me.initStylePage(); - } else if ('#edit-chart-border-color-view' == pageId) { - me.initBorderColorPage(); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-border-color]', '.page[data-page=edit-chart-border-color] .page-content'); - } else if ('#edit-chart-layout' == pageId) { - me.initLayoutPage(); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-layout]', '.page[data-page=edit-chart-layout] .page-content'); - } else if ('#edit-chart-vertical-axis' == pageId) { - me.initVertAxisPage(); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-vertical-axis]', '.page[data-page=edit-chart-vertical-axis] .page-content'); - } else if ('#edit-chart-horizontal-axis' == pageId) { - me.initHorAxisPage(); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-horizontal-axis]', '.page[data-page=edit-chart-horizontal-axis] .page-content'); - } else if ('#edit-chart-reorder' == pageId) { - me.initReorderPage(); - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-reorder]', '.page[data-page=edit-chart-reorder] .page-content'); - } else { - me.initRootPage(); - } - }, - - // Public - - getStack: function() { - return _stack; - }, - - getChart: function () { - return _chartObject; - }, - - initRootPage: function () { - $('#chart-remove').single('click', _.bind(this.onRemoveChart, this)); - - if (!_.isUndefined(this._chartObject)) { - this.updateAxisProps(this._chartObject.get_ChartProperties().getType()); - } - }, - - initStylePage: function () { - if (_.isUndefined(this._chartObject)) return; - - var me = this, - color, - chartProperties = me._chartObject.get_ChartProperties(), - shapeProperties = _shapeObject.get_ShapeProperties(); - - // Type - - var type = chartProperties.getType(); - $('.chart-types li').removeClass('active'); - $('.chart-types li[data-type=' + type + ']').addClass('active'); - $('#tab-chart-type li').single('click', _.buffered(me.onType, 100, me)); - - // Styles - - _.defer(function () { - me._updateChartStyles(me.api.asc_getChartPreviews(me._chartObject.get_ChartProperties().getType())); - }); - - // Fill - - var paletteFillColor = this.getView('EditChart').paletteFillColor; - - paletteFillColor.on('select', _.bind(me.onFillColor, me)); - - var fill = shapeProperties.asc_getFill(), - fillType = fill.asc_getType(); - - if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { - color = me._sdkToThemeColor(fill.asc_getFill().asc_getColor()); - } - - paletteFillColor.select(color); - - // Init border - - var borderSize = shapeProperties.get_stroke().get_width() * 72.0 / 25.4, - borderType = shapeProperties.get_stroke().get_type(); - $('#edit-chart-bordersize input').val([(borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize)]); - $('#edit-chart-bordersize .item-after').text(((borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize)) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - $('#edit-chart-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-chart-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - - // Init border color - me._initBorderColorView(); - }, - - _initBorderColorView: function () { - if (!_shapeObject) return; - - var me = this, - stroke = _shapeObject.get_ShapeProperties().get_stroke(); - - _borderInfo.color = (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) ? me._sdkToThemeColor(stroke.get_color()) : 'transparent'; - - $('#edit-chart-bordercolor .color-preview').css('background-color', - ('transparent' == _borderInfo.color) - ? _borderInfo.color - : ('#' + (_.isObject(_borderInfo.color) ? _borderInfo.color.color : _borderInfo.color)) - ); - }, - - initLayoutPage: function () { - if (_.isUndefined(this._chartObject)) return; - - var me = this, - chartProperties = me._chartObject.get_ChartProperties(), - chartType = chartProperties.getType(), - $layoutPage = $('.page[data-page=edit-chart-layout]'); - - var setValue = function (id, value) { - var textValue = $layoutPage.find('select[name=' + id + ']') - .val(value) - .find('option[value='+ value +']') - .text(); - $layoutPage.find('#' + id + ' .item-after').text(textValue); - }; - - // Init legend position values - - var dataLabelPos = [ - { value: Asc.c_oAscChartDataLabelsPos.none, displayValue: me.textNone }, - { value: Asc.c_oAscChartDataLabelsPos.ctr, displayValue: me.textCenter } - ]; - - if (chartType == Asc.c_oAscChartTypeSettings.barNormal || - chartType == Asc.c_oAscChartTypeSettings.hBarNormal) { - dataLabelPos.push( - {value: Asc.c_oAscChartDataLabelsPos.inBase, displayValue: me.textInnerBottom}, - {value: Asc.c_oAscChartDataLabelsPos.inEnd, displayValue: me.textInnerTop}, - {value: Asc.c_oAscChartDataLabelsPos.outEnd, displayValue: me.textOuterTop} - ); - } else if ( chartType == Asc.c_oAscChartTypeSettings.barStacked || - chartType == Asc.c_oAscChartTypeSettings.barStackedPer || - chartType == Asc.c_oAscChartTypeSettings.hBarStacked || - chartType == Asc.c_oAscChartTypeSettings.hBarStackedPer ) { - dataLabelPos.push( - { value: Asc.c_oAscChartDataLabelsPos.inBase, displayValue: me.textInnerBottom }, - { value: Asc.c_oAscChartDataLabelsPos.inEnd, displayValue: me.textInnerTop } - ); - } else if (chartType == Asc.c_oAscChartTypeSettings.lineNormal || - chartType == Asc.c_oAscChartTypeSettings.lineStacked || - chartType == Asc.c_oAscChartTypeSettings.lineStackedPer || - chartType == Asc.c_oAscChartTypeSettings.stock || - chartType == Asc.c_oAscChartTypeSettings.scatter) { - dataLabelPos.push( - { value: Asc.c_oAscChartDataLabelsPos.l, displayValue: me.textLeft }, - { value: Asc.c_oAscChartDataLabelsPos.r, displayValue: me.textRight }, - { value: Asc.c_oAscChartDataLabelsPos.t, displayValue: me.textTop }, - { value: Asc.c_oAscChartDataLabelsPos.b, displayValue: me.textBottom } - ); - } else if (chartType == Asc.c_oAscChartTypeSettings.pie || - chartType == Asc.c_oAscChartTypeSettings.pie3d) { - dataLabelPos.push( - {value: Asc.c_oAscChartDataLabelsPos.bestFit, displayValue: me.textFit}, - {value: Asc.c_oAscChartDataLabelsPos.inEnd, displayValue: me.textInnerTop}, - {value: Asc.c_oAscChartDataLabelsPos.outEnd, displayValue: me.textOuterTop} - ); - } - - $layoutPage.find('select[name=chart-layout-data-labels]').html((function () { - var options = []; - _.each(dataLabelPos, function (position) { - options.push(Common.Utils.String.format('', position.value, position.displayValue)); - }); - return options.join(''); - })()); - - setValue('chart-layout-title', chartProperties.getTitle()); - setValue('chart-layout-legend', chartProperties.getLegendPos()); - setValue('chart-layout-axis-title-horizontal', chartProperties.getHorAxisLabel()); - setValue('chart-layout-axis-title-vertical', chartProperties.getVertAxisLabel()); - setValue('chart-layout-gridlines-horizontal', chartProperties.getHorGridLines()); - setValue('chart-layout-gridlines-vertical', chartProperties.getVertGridLines()); - setValue('chart-layout-data-labels', chartProperties.getDataLabelsPos() || Asc.c_oAscChartDataLabelsPos.none); - - var disableSetting = ( - chartType == Asc.c_oAscChartTypeSettings.pie || - chartType == Asc.c_oAscChartTypeSettings.doughnut || - chartType == Asc.c_oAscChartTypeSettings.pie3d - ); - - $('#chart-layout-axis-title-horizontal').toggleClass('disabled', disableSetting); - $('#chart-layout-axis-title-vertical').toggleClass('disabled', disableSetting); - $('#chart-layout-gridlines-horizontal').toggleClass('disabled', disableSetting); - $('#chart-layout-gridlines-vertical').toggleClass('disabled', disableSetting); - - // Handlers - - $('#chart-layout-title select').single('change', _.bind(me.onLayoutTitle, me)); - $('#chart-layout-legend select').single('change', _.bind(me.onLayoutLegend, me)); - $('#chart-layout-axis-title-horizontal select').single('change',_.bind(me.onLayoutAxisTitleHorizontal, me)); - $('#chart-layout-axis-title-vertical select').single('change', _.bind(me.onLayoutAxisTitleVertical, me)); - $('#chart-layout-gridlines-horizontal select').single('change', _.bind(me.onLayoutGridlinesHorizontal, me)); - $('#chart-layout-gridlines-vertical select').single('change', _.bind(me.onLayoutGridlinesVertical, me)); - $('#chart-layout-data-labels select').single('change', _.bind(me.onLayoutDataLabel, me)); - }, - - initVertAxisPage: function () { - var me = this, - $vertAxisPage = $('.page[data-page=edit-chart-vertical-axis]'), - chartProperty = me.api.asc_getChartObject(true), - verAxisProps = chartProperty.getVertAxisProps(), - axisProps = (verAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? verAxisProps : chartProperty.getHorAxisProps(); - - var setValue = function (id, value) { - var textValue = $vertAxisPage.find('select[name=' + id + ']') - .val(value) - .find('option[value='+ value +']') - .text(); - $vertAxisPage.find('#' + id + ' .item-after').text(textValue); - }; - - var setOptions = function (selectName, options) { - $vertAxisPage.find('select[name=' + selectName + ']').html((function () { - var _options = []; - _.each(options, function (option) { - _options.push(Common.Utils.String.format('', option.value, option.display)); - }); - return _options.join(''); - })()); - }; - - // Axis - $('#edit-vertical-axis-min-val input').val((axisProps.getMinValRule()==Asc.c_oAscValAxisRule.auto) ? null : axisProps.getMinVal()); - $('#edit-vertical-axis-max-val input').val((axisProps.getMaxValRule()==Asc.c_oAscValAxisRule.auto) ? null : axisProps.getMaxVal()); - - // Cross - setOptions('vertical-axis-cross', [ - {display: this.textAuto, value: Asc.c_oAscCrossesRule.auto}, - {display: this.textValue, value: Asc.c_oAscCrossesRule.value}, - {display: this.textMinValue, value: Asc.c_oAscCrossesRule.minValue}, - {display: this.textMaxValue, value: Asc.c_oAscCrossesRule.maxValue} - ]); - - var crossValue = axisProps.getCrossesRule(); - setValue('vertical-axis-cross', crossValue); - - if (crossValue == Asc.c_oAscCrossesRule.value) { - $('#edit-vertical-axis-cross-value').css('display', 'block'); - $('#edit-vertical-axis-cross-value input').val(axisProps.getCrosses()); - } - - // Units - setOptions('vertical-axis-display-units', [ - {display: me.textNone, value: Asc.c_oAscValAxUnits.none}, - {display: me.textHundreds, value: Asc.c_oAscValAxUnits.HUNDREDS}, - {display: me.textThousands, value: Asc.c_oAscValAxUnits.THOUSANDS}, - {display: me.textTenThousands, value: Asc.c_oAscValAxUnits.TEN_THOUSANDS}, - {display: me.textHundredThousands, value: Asc.c_oAscValAxUnits.HUNDRED_THOUSANDS}, - {display: me.textMillions, value: Asc.c_oAscValAxUnits.MILLIONS}, - {display: me.textTenMillions, value: Asc.c_oAscValAxUnits.TEN_MILLIONS}, - {display: me.textHundredMil, value: Asc.c_oAscValAxUnits.HUNDRED_MILLIONS}, - {display: me.textBillions, value: Asc.c_oAscValAxUnits.BILLIONS}, - {display: me.textTrillions, value: Asc.c_oAscValAxUnits.TRILLIONS} - ]); - - setValue('vertical-axis-display-units', axisProps.getDispUnitsRule()); - $('#vertical-axis-in-reverse input').prop('checked', axisProps.getInvertValOrder()); - - // Tick - var tickOptions = [ - {display: this.textNone, value: Asc.c_oAscTickMark.TICK_MARK_NONE}, - {display: this.textCross, value: Asc.c_oAscTickMark.TICK_MARK_CROSS}, - {display: this.textIn, value: Asc.c_oAscTickMark.TICK_MARK_IN}, - {display: this.textOut, value: Asc.c_oAscTickMark.TICK_MARK_OUT} - ]; - - setOptions('vertical-axis-tick-major', tickOptions); - setOptions('vertical-axis-tick-minor', tickOptions); - - setValue('vertical-axis-tick-major', axisProps.getMajorTickMark()); - setValue('vertical-axis-tick-minor', axisProps.getMinorTickMark()); - - // Label - setOptions('vertical-axis-label-pos', [ - {display: this.textNone, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NONE}, - {display: this.textLow, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_LOW}, - {display: this.textHigh, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_HIGH}, - {display: this.textNextToAxis, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO} - ]); - setValue('vertical-axis-label-pos', axisProps.getTickLabelsPos()); - - me.updateAxisProps(chartProperty.getType()); - - // Handlers - $('#edit-vertical-axis-min-val input').single('change', _.bind(me.onVerAxisMinValue, me)); - $('#edit-vertical-axis-max-val input').single('change', _.bind(me.onVerAxisMaxValue, me)); - $('#vertical-axis-cross select').single('change', _.bind(me.onVerAxisCrossType, me)); - $('#edit-vertical-axis-cross-value input').single('change', _.bind(me.onVerAxisCrossValue, me)); - $('#vertical-axis-display-units select').single('change', _.bind(me.onVerAxisDisplayUnits, me)); - $('#vertical-axis-in-reverse input').single('change', _.bind(me.onVerAxisReverse, me)); - $('#vertical-axis-tick-major select').single('change', _.bind(me.onVerAxisTickMajor, me)); - $('#vertical-axis-tick-minor select').single('change', _.bind(me.onVerAxisTickMinor, me)); - $('#vertical-axis-label-pos select').single('change', _.bind(me.onVerAxisLabelPos, me)); - }, - - initHorAxisPage: function () { - var me = this, - $horAxisPage = $('.page[data-page=edit-chart-horizontal-axis]'), - chartProperty = me.api.asc_getChartObject(true), - horAxisProps = chartProperty.getHorAxisProps(), - axisProps = (horAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? chartProperty.getVertAxisProps() : horAxisProps; - - var setValue = function (id, value) { - var textValue = $horAxisPage.find('select[name=' + id + ']') - .val(value) - .find('option[value='+ value +']') - .text(); - $horAxisPage.find('#' + id + ' .item-after').text(textValue); - }; - - var setOptions = function (selectName, options) { - $horAxisPage.find('select[name=' + selectName + ']').html((function () { - var _options = []; - _.each(options, function (option) { - _options.push(Common.Utils.String.format('', option.value, option.display)); - }); - return _options.join(''); - })()); - }; - - // Cross - setOptions('horizontal-axis-cross', [ - {display: me.textAuto, value: Asc.c_oAscCrossesRule.auto}, - {display: me.textValue, value: Asc.c_oAscCrossesRule.value}, - {display: me.textMinValue, value: Asc.c_oAscCrossesRule.minValue}, - {display: me.textMaxValue, value: Asc.c_oAscCrossesRule.maxValue} - ]); - - var crossValue = axisProps.getCrossesRule(); - setValue('horizontal-axis-cross', crossValue); - - if (crossValue == Asc.c_oAscCrossesRule.value) { - $('#edit-horizontal-axis-cross-value').css('display', 'block'); - $('#edit-horizontal-axis-cross-value input').val(axisProps.getCrosses()); - } - - // Pos - setOptions('horizontal-axis-position', [ - {display: me.textOnTickMarks, value: Asc.c_oAscLabelsPosition.byDivisions}, - {display: me.textBetweenTickMarks, value: Asc.c_oAscLabelsPosition.betweenDivisions} - ]); - - setValue('horizontal-axis-position', axisProps.getLabelsPosition()); - $('#horizontal-axis-in-reverse input').prop('checked', axisProps.getInvertCatOrder()); - - // Tick - var tickOptions = [ - {display: me.textNone, value: Asc.c_oAscTickMark.TICK_MARK_NONE}, - {display: me.textCross, value: Asc.c_oAscTickMark.TICK_MARK_CROSS}, - {display: me.textIn, value: Asc.c_oAscTickMark.TICK_MARK_IN}, - {display: me.textOut, value: Asc.c_oAscTickMark.TICK_MARK_OUT} - ]; - - setOptions('horizontal-axis-tick-major', tickOptions); - setOptions('horizontal-axis-tick-minor', tickOptions); - - setValue('horizontal-axis-tick-major', axisProps.getMajorTickMark()); - setValue('horizontal-axis-tick-minor', axisProps.getMinorTickMark()); - - // Label - setOptions('horizontal-axis-label-pos', [ - {display: me.textNone, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NONE}, - {display: me.textLow, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_LOW}, - {display: me.textHigh, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_HIGH}, - {display: me.textNextToAxis, value: Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO} - ]); - setValue('horizontal-axis-label-pos', axisProps.getTickLabelsPos()); - - me.updateAxisProps(chartProperty.getType()); - - // Handlers - $('#horizontal-axis-cross select').single('change', _.bind(me.onHorAxisCrossType, me)); - $('#edit-horizontal-axis-cross-value input').single('change', _.bind(me.onHorAxisCrossValue, me)); - $('#horizontal-axis-position select').single('change', _.bind(me.onHorAxisPos, me)); - $('#horizontal-axis-in-reverse input').single('change', _.bind(me.onHorAxisReverse, me)); - $('#horizontal-axis-tick-major select').single('change', _.bind(me.onHorAxisTickMajor, me)); - $('#horizontal-axis-tick-minor select').single('change', _.bind(me.onHorAxisTickMinor, me)); - $('#horizontal-axis-label-pos select').single('change', _.bind(me.onHorAxisLabelPos, me)); - }, - - initReorderPage: function () { - $('.page[data-page=edit-chart-reorder] a.item-link').single('click', _.bind(this.onReorder, this)); - }, - - initBorderColorPage: function () { - var me = this, - palette = me.getView('EditChart').paletteBorderColor; - - if (palette) { - palette.select(_borderInfo.color); - palette.on('select', _.bind(me.onBorderColor, me)); - } - }, - - // Handlers - - onRemoveChart: function () { - this.api.asc_Remove(); - SSE.getController('EditContainer').hideModal(); - }, - - onReorder: function(e) { - var $target = $(e.currentTarget), - type = $target.data('type'), - ascType; - - if (type == 'all-up') { - ascType = Asc.c_oAscDrawingLayerType.BringToFront; - } else if (type == 'all-down') { - ascType = Asc.c_oAscDrawingLayerType.SendToBack; - } else if (type == 'move-up') { - ascType = Asc.c_oAscDrawingLayerType.BringForward; - } else { - ascType = Asc.c_oAscDrawingLayerType.SendBackward; - } - - this.api.asc_setSelectedDrawingObjectLayer(ascType); - }, - - onType: function (e) { - }, - - onStyle: function (e) { - }, - - onFillColor:function (palette, color) { - var me = this; - - if (me.api) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - fill = new Asc.asc_CShapeFill(); - - if (color == 'transparent') { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); - fill.put_fill(null); - } else { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); - fill.put_fill(new Asc.asc_CFillSolid()); - fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - shape.put_fill(fill); - image.put_ShapeProperties(shape); - - me.api.asc_setGraphicObjectProps(image); - } - }, - - onBorderSize: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - value = borderSizeTransform.sizeByIndex(parseInt(value)); - - if (value < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - if (_borderInfo.color == 'transparent') - stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); - else - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderInfo.color))); - stroke.put_width(value * 25.4 / 72.0); - } - - shape.put_stroke(stroke); - image.put_ShapeProperties(shape); - - me.api.asc_setGraphicObjectProps(image); - me._initBorderColorView(); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-chart-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - onBorderColor: function (palette, color) { - var me = this, - currentShape = _shapeObject ? _shapeObject.get_ShapeProperties() : null; - - $('#edit-chart-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - _borderInfo.color = color; - - if (me.api && currentShape && currentShape.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - if (currentShape.get_stroke().get_width() < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); - stroke.put_width(currentShape.get_stroke().get_width()); - stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); - } - - shape.put_stroke(stroke); - image.put_ShapeProperties(shape); - - me.api.asc_setGraphicObjectProps(image); - } - }, - - onLayoutTitle: function (e) { - this._setLayoutProperty('putTitle', e); - }, - - onLayoutLegend: function(e) { - this._setLayoutProperty('putLegendPos', e); - }, - - onLayoutAxisTitleHorizontal: function(e) { - this._setLayoutProperty('putHorAxisLabel', e); - }, - - onLayoutAxisTitleVertical: function(e) { - this._setLayoutProperty('putVertAxisLabel', e); - }, - - onLayoutGridlinesHorizontal: function(e) { - this._setLayoutProperty('putHorGridLines', e); - }, - - onLayoutGridlinesVertical: function(e) { - this._setLayoutProperty('putVertGridLines', e); - }, - - onLayoutDataLabel: function(e) { - this._setLayoutProperty('putDataLabelsPos', e); - }, - - onVerAxisMinValue: function (e) { - var value = $(e.currentTarget).val(), - axisProps = this._getVerticalAxisProp(), - axisRule = _.isEmpty(value) ? Asc.c_oAscValAxisRule.auto : Asc.c_oAscValAxisRule.fixed; - - axisProps.putMinValRule(axisRule); - - if (axisRule == Asc.c_oAscValAxisRule.fixed) { - axisProps.putMinVal(parseInt(value)); - } - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisMaxValue: function (e) { - var value = $(e.currentTarget).val(), - axisProps = this._getVerticalAxisProp(), - axisRule = _.isEmpty(value) ? Asc.c_oAscValAxisRule.auto : Asc.c_oAscValAxisRule.fixed; - - axisProps.putMaxValRule(axisRule); - - if (axisRule == Asc.c_oAscValAxisRule.fixed) { - axisProps.putMaxVal(parseInt(value)); - } - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisCrossType: function (e) { - var value = parseInt($(e.currentTarget).val()), - axisProps = this._getVerticalAxisProp(); - - if (value == Asc.c_oAscCrossesRule.value) { - $('#edit-vertical-axis-cross-value').css('display', 'block'); - $('#edit-vertical-axis-cross-value input').val(axisProps.getCrosses()); - } else { - $('#edit-vertical-axis-cross-value').css('display', 'none'); - } - - axisProps.putCrossesRule(value); - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisCrossValue: function (e) { - var value = $(e.currentTarget).val(), - axisProps = this._getVerticalAxisProp(); - - axisProps.putCrossesRule(Asc.c_oAscCrossesRule.value); - axisProps.putCrosses(parseInt(value)); - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisDisplayUnits: function (e) { - var value = $(e.currentTarget).val(), - axisProps = this._getVerticalAxisProp(); - - axisProps.putDispUnitsRule(parseInt(value)); - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisReverse: function (e) { - var value = $(e.currentTarget).prop('checked'), - axisProps = this._getVerticalAxisProp(); - - axisProps.putInvertValOrder(value); - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisTickMajor: function (e) { - var value = $(e.currentTarget).val(), - axisProps = this._getVerticalAxisProp(); - - axisProps.putMajorTickMark(parseInt(value)); - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisTickMinor: function (e) { - var value = $(e.currentTarget).val(), - axisProps = this._getVerticalAxisProp(); - - axisProps.putMinorTickMark(parseInt(value)); - - this._setVerticalAxisProp(axisProps); - }, - - onVerAxisLabelPos: function (e) { - var value = $(e.currentTarget).val(), - axisProps = this._getVerticalAxisProp(); - - axisProps.putTickLabelsPos(parseInt(value)); - - this._setVerticalAxisProp(axisProps); - }, - - - onHorAxisCrossType: function(e) { - var value = $(e.currentTarget).val(), - axisProps = this._getHorizontalAxisProp(); - - if (value == Asc.c_oAscCrossesRule.value) { - $('#edit-horizontal-axis-cross-value').css('display', 'block'); - $('#edit-horizontal-axis-cross-value input').val(axisProps.getCrosses()); - } else { - $('#edit-horizontal-axis-cross-value').css('display', 'none'); - } - - axisProps.putCrossesRule(parseInt(value)); - - this._setHorizontalAxisProp(axisProps); - }, - - onHorAxisCrossValue: function(e) { - var value = $(e.currentTarget).val(), - axisProps = this._getHorizontalAxisProp(); - - axisProps.putCrossesRule(Asc.c_oAscCrossesRule.value); - axisProps.putCrosses(parseInt(value)); - - this._setHorizontalAxisProp(axisProps); - }, - - onHorAxisPos: function(e) { - var value = $(e.currentTarget).val(), - axisProps = this._getHorizontalAxisProp(); - - axisProps.putLabelsPosition(parseInt(value)); - - this._setHorizontalAxisProp(axisProps); - }, - - onHorAxisReverse: function(e) { - var value = $(e.currentTarget).prop('checked'), - axisProps = this._getHorizontalAxisProp(); - - axisProps.putInvertCatOrder(value); - - this._setHorizontalAxisProp(axisProps); - }, - - onHorAxisTickMajor: function(e) { - var value = $(e.currentTarget).val(), - axisProps = this._getHorizontalAxisProp(); - - axisProps.putMajorTickMark(parseInt(value)); - - this._setHorizontalAxisProp(axisProps); - }, - - onHorAxisTickMinor: function(e) { - var value = $(e.currentTarget).val(), - axisProps = this._getHorizontalAxisProp(); - - axisProps.putMinorTickMark(parseInt(value)); - - this._setHorizontalAxisProp(axisProps); - }, - - onHorAxisLabelPos: function(e) { - var value = $(e.currentTarget).val(), - axisProps = this._getHorizontalAxisProp(); - - axisProps.putTickLabelsPos(parseInt(value)); - - this._setHorizontalAxisProp(axisProps); - }, - - - updateAxisProps: function(chartType) { - // var value = (chartType == Asc.c_oAscChartTypeSettings.lineNormal || chartType == Asc.c_oAscChartTypeSettings.lineStacked || - // chartType == Asc.c_oAscChartTypeSettings.lineStackedPer || chartType == Asc.c_oAscChartTypeSettings.scatter); - // this.chMarkers.setVisible(value); - // this.cmbLines.setVisible(value); - // this.lblLines.toggleClass('hidden', !value); - // - // if (value) { - // this.chMarkers.setValue(this.chartSettings.getShowMarker(), true); - // this.cmbLines.setValue(this.chartSettings.getLine() ? (this.chartSettings.getSmooth() ? 2 : 1) : 0); - // } - - // Disable Axises - - var disableEditAxis = ( - chartType == Asc.c_oAscChartTypeSettings.pie || - chartType == Asc.c_oAscChartTypeSettings.doughnut || - chartType == Asc.c_oAscChartTypeSettings.pie3d - ); - - $('#chart-vaxis, #chart-haxis').toggleClass('disabled', disableEditAxis); - - var disableAxisPos = ( - chartType == Asc.c_oAscChartTypeSettings.barNormal3d || - chartType == Asc.c_oAscChartTypeSettings.barStacked3d || - chartType == Asc.c_oAscChartTypeSettings.barStackedPer3d || - chartType == Asc.c_oAscChartTypeSettings.hBarNormal3d || - chartType == Asc.c_oAscChartTypeSettings.hBarStacked3d || - chartType == Asc.c_oAscChartTypeSettings.hBarStackedPer3d || - chartType == Asc.c_oAscChartTypeSettings.barNormal3dPerspective - ); - - $('#horizontal-axis-position').toggleClass('disabled', disableAxisPos); - - // Reverse Axises - var needReverse = ( - chartType == Asc.c_oAscChartTypeSettings.hBarNormal || - chartType == Asc.c_oAscChartTypeSettings.hBarStacked || - chartType == Asc.c_oAscChartTypeSettings.hBarStackedPer || - chartType == Asc.c_oAscChartTypeSettings.hBarNormal3d || - chartType == Asc.c_oAscChartTypeSettings.hBarStacked3d || - chartType == Asc.c_oAscChartTypeSettings.hBarStackedPer3d - ); - - $('#chart-vaxis').data('page', needReverse ? '#edit-chart-horizontal-axis': '#edit-chart-vertical-axis'); - $('#chart-haxis').data('page', (needReverse || chartType == Asc.c_oAscChartTypeSettings.scatter) ? '#edit-chart-vertical-axis': '#edit-chart-horizontal-axis'); - }, - - - // API handlers - - onApiFocusObject: function (objects) { - _stack = objects; - - if (!this._isEdit) { - return; - } - - var charts = [], - shapes = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - if (object.get_ObjectValue() && object.get_ObjectValue().get_ChartProperties()) { - charts.push(object); - } - if (object.get_ObjectValue() && object.get_ObjectValue().get_ShapeProperties()) { - shapes.push(object); - } - } - }); - - var getTopObject = function(array) { - if (array.length > 0) { - var object = array[array.length - 1]; // get top - return object.get_ObjectValue(); - } else { - return undefined; - } - }; - - this._chartObject = getTopObject(charts); - _shapeObject = getTopObject(shapes); - }, - - // Helpers - - _getVerticalAxisProp: function () { - var chartObject = this.api.asc_getChartObject(true), - verAxisProps = chartObject.getVertAxisProps(); - - return (verAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? verAxisProps : chartObject.getHorAxisProps(); - }, - - _setVerticalAxisProp: function (axisProps) { - var chartObject = this.api.asc_getChartObject(true), - verAxisProps = chartObject.getVertAxisProps(); - - if (!_.isUndefined(chartObject)) { - chartObject[(verAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? 'putVertAxisProps' : 'putHorAxisProps'](axisProps); - this.api.asc_editChartDrawingObject(chartObject); - } - }, - - _getHorizontalAxisProp: function () { - var chartObject = this.api.asc_getChartObject(true), - verHorProps = chartObject.getHorAxisProps(); - - return (verHorProps.getAxisType() == Asc.c_oAscAxisType.val) ? chartObject.getVertAxisProps() : verHorProps; - }, - - _setHorizontalAxisProp: function (axisProps) { - var chartObject = this.api.asc_getChartObject(true), - verAxisProps = chartObject.getHorAxisProps(); - - if (!_.isUndefined(chartObject)) { - chartObject[(verAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? 'putVertAxisProps' : 'putHorAxisProps'](axisProps); - this.api.asc_editChartDrawingObject(chartObject); - } - }, - - _setLayoutProperty: function (propertyMethod, e) { - var value = $(e.currentTarget).val(), - chartObject = this.api.asc_getChartObject(true); - - if (!_.isUndefined(chartObject) && value && value.length > 0) { - var intValue = parseInt(value); - chartObject[propertyMethod](parseInt(value)); - - if ("putDataLabelsPos" == propertyMethod && intValue != 0) - chartObject["putShowVal"](true); - - this.api.asc_editChartDrawingObject(chartObject); - } - }, - - _updateChartStyles: function(styles) { - this.getView('EditChart').renderStyles(styles); - $('#tab-chart-style li').single('click', _.bind(this.onStyle, this)); - }, - - _sdkToThemeColor: function (color) { - var clr = 'transparent'; - - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - clr = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - } - } else { - clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } - - return clr; - }, - - textValue: 'Value', - textMinValue: 'Minimum Value', - textMaxValue: 'Maximum Value', - textLeftOverlay: 'Left Overlay', - textRightOverlay: 'Right Overlay', - textOverlay: 'Overlay', - textNoOverlay: 'No Overlay', - textRotated: 'Rotated', - textHorizontal: 'Horizontal', - textInnerBottom: 'Inner Bottom', - textInnerTop: 'Inner Top', - textOuterTop: 'Outer Top', - textNone: 'None', - textCenter: 'Center', - textFixed: 'Fixed', - textAuto: 'Auto', - textCross: 'Cross', - textIn: 'In', - textOut: 'Out', - textLow: 'Low', - textHigh: 'High', - textNextToAxis: 'Next to axis', - textHundreds: 'Hundreds', - textThousands: 'Thousands', - textTenThousands: '10 000', - textHundredThousands: '100 000', - textMillions: 'Millions', - textTenMillions: '10 000 000', - textHundredMil: '100 000 000', - textBillions: 'Billions', - textTrillions: 'Trillions', - textCustom: 'Custom', - textManual: 'Manual', - textBetweenTickMarks: 'Between Tick Marks', - textOnTickMarks: 'On Tick Marks', - errorMaxRows: 'ERROR! The maximum number of data series per chart is 255.', - errorStockChart: 'Incorrect row order. To build a stock chart place the data on the sheet in the following order:
            opening price, max price, min price, closing price.', - textLeft: 'Left', - textRight: 'Right', - textTop: 'Top', - textBottom: 'Bottom', - textFit: 'Fit Width' - } - })(), SSE.Controllers.EditChart || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/edit/EditContainer.js b/apps/spreadsheeteditor/mobile/app/controller/edit/EditContainer.js deleted file mode 100644 index fd8e00fe7..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/edit/EditContainer.js +++ /dev/null @@ -1,625 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditContainer.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/6/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ -define([ - 'core', - 'jquery', - 'underscore', - 'backbone' -], function (core, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.EditContainer = Backbone.Controller.extend(_.extend((function() { - // Private - var _settings = []; - - return { - models: [], - collections: [], - views: [], - - initialize: function() { - // - }, - - setApi: function(api) { - this.api = api; - this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this)); //???? - this.api.asc_registerCallback('asc_onSelectionChanged', _.bind(this.onApiSelectionChanged, this)); - }, - - onLaunch: function() { - // - }, - - showModal: function() { - var me = this, - mainView = SSE.getController('Editor').getView('Editor').f7View, - isAndroid = Framework7.prototype.device.android === true; - - if ($$('.container-edit.modal-in').length > 0) { - // myApp.closeModal('.picker-modal.edit.modal-in'); - // me.fireEvent('editcontainer:error', [this, 'alreadyOpen']); - return; - } - - uiApp.closeModal(); - - me._showByStack(Common.SharedSettings.get('phone')); - - SSE.getController('Toolbar').getView('Toolbar').hideSearch(); - }, - - hideModal: function () { - if (this.picker) { - uiApp.closeModal(this.picker); - } - }, - - _emptyEditController: function () { - var layout = - '
            ' + - '
            ' + - '

            Select object to edit

            ' + - '
            ' + - '
            '; - - return { - caption: this.textSettings, - layout: layout - } - }, - - _layoutEditorsByStack: function () { - var me = this, - editors = []; - - if (_settings.length < 1) { - editors.push(me._emptyEditController()); - } else { - if (_.contains(_settings, 'cell')) { - editors.push({ - caption: me.textCell, - id: 'edit-cell', - layout: SSE.getController('EditCell').getView('EditCell').rootLayout() - }) - } - if (_.contains(_settings, 'table')) { - editors.push({ - caption: me.textTable, - id: 'edit-table', - layout: SSE.getController('EditTable').getView('EditTable').rootLayout() - }) - } - if (_.contains(_settings, 'shape')) { - editors.push({ - caption: me.textShape, - id: 'edit-shape', - layout: SSE.getController('EditShape').getView('EditShape').rootLayout() - }) - } - if (_.contains(_settings, 'image')) { - editors.push({ - caption: me.textImage, - id: 'edit-image', - layout: SSE.getController('EditImage').getView('EditImage').rootLayout() - }) - } - if (_.contains(_settings, 'chart')) { - editors.push({ - caption: me.textChart, - id: 'edit-chart', - layout: SSE.getController('EditChart').getView('EditChart').rootLayout() - }) - } - if (_.contains(_settings, 'text')) { - editors.push({ - caption: me.textText, - id: 'edit-text', - layout: SSE.getController('EditText').getView('EditText').rootLayout() - }) - } - if (_.contains(_settings, 'hyperlink')) { - editors.push({ - caption: me.textHyperlink, - id: 'edit-link', - layout: SSE.getController('EditHyperlink').getView('EditHyperlink').rootLayout() - }) - } - } - - return editors; - }, - - _showByStack: function(isPhone) { - var me = this, - mainView = SSE.getController('Editor').getView('Editor').f7View, - isAndroid = Framework7.prototype.device.android === true, - layoutEditors = me._layoutEditorsByStack(); - - if ($$('.container-edit.modal-in').length > 0) { - return; - } - - // Navigation bar - var $layoutNavbar = $( - '' - ); - - if (layoutEditors.length < 2) { - $layoutNavbar - .find('.center') - .removeClass('categories') - .html(layoutEditors[0].caption); - } else { - if (isAndroid) { - $layoutNavbar - .find('.center') - .append('
            '); - - _.each(layoutEditors, function (layout, index) { - $layoutNavbar - .find('.toolbar-inner') - .append( - '' + layout.caption + '' - ); - }); - $layoutNavbar - .find('.toolbar-inner') - .append(''); - } else { - $layoutNavbar - .find('.center') - .append('
            '); - - _.each(layoutEditors, function (layout, index) { - $layoutNavbar - .find('.buttons-row') - .append( - '' + layout.caption + '' - ); - }); - } - } - - - // Content - - var $layoutPages = $( - '
            ' + - '
            ' + - '
            ' + - '
            ' + - '
            ' + - '
            ' - ); - - _.each(layoutEditors, function (editor, index) { - $layoutPages.find('.tabs').append( - '
            ' + - '
            ' + - '
            ' + - '
            ' + - editor.layout + - '
            ' + - '
            ' + - '
            ' + - '
            ' - ); - }); - - if (isPhone) { - me.picker = $$(uiApp.pickerModal( - '
            ' + - '' + - '
            ' - )).on('opened', function () { - if (_.isFunction(me.api.asc_OnShowContextMenu)) { - me.api.asc_OnShowContextMenu() - } - }).on('close', function (e) { - mainView.showNavbar(); - Common.NotificationCenter.trigger('layout:changed','navbar', {hidden:false}); - }).on('closed', function () { - if (_.isFunction(me.api.asc_OnHideContextMenu)) { - me.api.asc_OnHideContextMenu() - } - }); - mainView.hideNavbar(); - Common.NotificationCenter.trigger('layout:changed','navbar', {hidden:true}); - } else { - me.picker = uiApp.popover( - '
            ' + - '
            ' + - '
            ' + - '
            ' + - '' + - '
            ' + - '
            ', - $$('#toolbar-edit') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - - if (_.isFunction(me.api.asc_OnShowContextMenu)) { - me.api.asc_OnShowContextMenu() - } - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }).on('closed', function () { - if (_.isFunction(me.api.asc_OnHideContextMenu)) { - me.api.asc_OnHideContextMenu() - } - }); - } - - $('.container-edit .tab').single('show', function (e) { - Common.NotificationCenter.trigger('editcategory:show', e); - }); - - if (isAndroid) { - $$('.view.edit-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.edit-root-view .navbar').prependTo('.view.edit-root-view > .pages > .page'); - } - - me.rootView = uiApp.addView('.edit-root-view', { - dynamicNavbar: true, - domCache: true - }); - - Common.NotificationCenter.trigger('editcontainer:show'); - }, - - // API handlers - - onApiFocusObject: function (objects) { - _settings = []; - - // Paragraph : 0, - // Table : 1, - // Image : 2, - // Header : 3, - // Shape : 4, - // Slide : 5, - // Chart : 6, - // MailMerge : 7, - // TextArt : 8 - - _.each(objects, function(object) { - var type = object.get_ObjectType(); - - if (Asc.c_oAscTypeSelectElement.Paragraph == type) { - _settings.push('text', 'paragraph'); - } else if (Asc.c_oAscTypeSelectElement.Table == type) { - _settings.push('table'); - } else if (Asc.c_oAscTypeSelectElement.Image == type) { - if (object.get_ObjectValue().get_ChartProperties()) { - _settings.push('chart'); - } else if (object.get_ObjectValue().get_ShapeProperties()) { - _settings.push('shape'); - } else { - _settings.push('image'); - } - } else if (Asc.c_oAscTypeSelectElement.Hyperlink == type) { - _settings.push('hyperlink'); - } - }); - - // Exclude shapes if chart exist - if (_settings.indexOf('chart') > -1) { - _settings = _.without(_settings, 'shape'); - } - - _settings = _.uniq(_settings); - - //TODO: DEBUG ONLY - _settings = []; - }, - - onApiSelectionChanged: function (cellInfo) { - _settings = []; - - var isCell, isRow, isCol, isAll, isChart, isImage, isTextShape, isShape, isTextChart, - selType = cellInfo.asc_getSelectionType(), - isCellLocked = cellInfo.asc_getLocked(), - isTableLocked = cellInfo.asc_getLockedTable()===true, - isObjLocked = false; - - switch (selType) { - case Asc.c_oAscSelectionType.RangeCells: isCell = true; break; - case Asc.c_oAscSelectionType.RangeRow: isRow = true; break; - case Asc.c_oAscSelectionType.RangeCol: isCol = true; break; - case Asc.c_oAscSelectionType.RangeMax: isAll = true; break; - case Asc.c_oAscSelectionType.RangeImage: isImage = true; break; - case Asc.c_oAscSelectionType.RangeShape: isShape = true; break; - case Asc.c_oAscSelectionType.RangeChart: isChart = true; break; - case Asc.c_oAscSelectionType.RangeChartText:isTextChart = true; break; - case Asc.c_oAscSelectionType.RangeShapeText: isTextShape = true; break; - } - - if (isImage || isShape || isChart) { - isImage = isShape = isChart = false; - var has_chartprops = false; - var selectedObjects = this.api.asc_getGraphicObjectProps(); - - for (var i = 0; i < selectedObjects.length; i++) { - if (selectedObjects[i].asc_getObjectType() == Asc.c_oAscTypeSelectElement.Image) { - var elValue = selectedObjects[i].asc_getObjectValue(); - isObjLocked = isObjLocked || elValue.asc_getLocked(); - var shapeProps = elValue.asc_getShapeProperties(); - - if (shapeProps) { - if (shapeProps.asc_getFromChart()) { - isChart = true; - } else { - // documentHolder.mnuShapeAdvanced.shapeInfo = elValue; - isShape = true; - } - } else if (elValue.asc_getChartProperties()) { - isChart = true; - has_chartprops = true; - } else { - isImage = true; - } - } - } - - // documentHolder.mnuUnGroupImg.setDisabled(isObjLocked || !this.api.asc_canUnGroupGraphicsObjects()); - // documentHolder.mnuGroupImg.setDisabled(isObjLocked || !this.api.asc_canGroupGraphicsObjects()); - // documentHolder.mnuShapeAdvanced.setVisible(isShape && !isImage && !isChart); - // documentHolder.mnuShapeAdvanced.setDisabled(isObjLocked); - // documentHolder.mnuChartEdit.setVisible(isChart && !isImage && !isShape && has_chartprops); - // documentHolder.mnuChartEdit.setDisabled(isObjLocked); - // documentHolder.pmiImgCut.setDisabled(isObjLocked); - // documentHolder.pmiImgPaste.setDisabled(isObjLocked); - // if (showMenu) this.showPopupMenu(documentHolder.imgMenu, {}, event); - // documentHolder.mnuShapeSeparator.setVisible(documentHolder.mnuShapeAdvanced.isVisible() || documentHolder.mnuChartEdit.isVisible()); - } else if (isTextShape || isTextChart) { - var selectedObjects = this.api.asc_getGraphicObjectProps(), - isEquation = false; - - for (var i = 0; i < selectedObjects.length; i++) { - var elType = selectedObjects[i].asc_getObjectType(); - if (elType == Asc.c_oAscTypeSelectElement.Image) { - var value = selectedObjects[i].asc_getObjectValue(), - align = value.asc_getVerticalTextAlign(), - direct = value.asc_getVert(); - - isObjLocked = isObjLocked || value.asc_getLocked(); - - // documentHolder.menuParagraphTop.setChecked(align == Asc.c_oAscVAlign.Top); - // documentHolder.menuParagraphCenter.setChecked(align == Asc.c_oAscVAlign.Center); - // documentHolder.menuParagraphBottom.setChecked(align == Asc.c_oAscVAlign.Bottom); - // - // documentHolder.menuParagraphDirectH.setChecked(direct == Asc.c_oAscVertDrawingText.normal); - // documentHolder.menuParagraphDirect90.setChecked(direct == Asc.c_oAscVertDrawingText.vert); - // documentHolder.menuParagraphDirect270.setChecked(direct == Asc.c_oAscVertDrawingText.vert270); - } else if (elType == Asc.c_oAscTypeSelectElement.Paragraph) { - // documentHolder.pmiTextAdvanced.textInfo = selectedObjects[i].asc_getObjectValue(); - // isObjLocked = isObjLocked || documentHolder.pmiTextAdvanced.textInfo.asc_getLocked(); - } else if (elType == Asc.c_oAscTypeSelectElement.Math) { - // this._currentMathObj = selectedObjects[i].asc_getObjectValue(); - isEquation = true; - } - } - - var hyperInfo = cellInfo.asc_getHyperlink(), - can_add_hyperlink = this.api.asc_canAddShapeHyperlink(); - - // documentHolder.menuHyperlinkShape.setVisible(isTextShape && can_add_hyperlink!==false && hyperInfo); - // documentHolder.menuAddHyperlinkShape.setVisible(isTextShape && can_add_hyperlink!==false && !hyperInfo); - // documentHolder.menuParagraphVAlign.setVisible(isTextChart!==true && !isEquation); // убрать после того, как заголовок можно будет растягивать по вертикали!! - // documentHolder.menuParagraphDirection.setVisible(isTextChart!==true && !isEquation); // убрать после того, как заголовок можно будет растягивать по вертикали!! - // documentHolder.pmiTextAdvanced.setVisible(documentHolder.pmiTextAdvanced.textInfo!==undefined); - // - // _.each(documentHolder.textInShapeMenu.items, function(item) { - // item.setDisabled(isObjLocked); - // }); - // documentHolder.pmiTextCopy.setDisabled(false); - // - // //equation menu - // var eqlen = 0; - // this._currentParaObjDisabled = isObjLocked; - // if (isEquation) { - // eqlen = this.addEquationMenu(4); - // } else - // this.clearEquationMenu(4); - // - // if (showMenu) this.showPopupMenu(documentHolder.textInShapeMenu, {}, event); - // documentHolder.textInShapeMenu.items[3].setVisible( documentHolder.menuHyperlinkShape.isVisible() || - // documentHolder.menuAddHyperlinkShape.isVisible() || - // documentHolder.menuParagraphVAlign.isVisible() || isEquation); - } - // } else if (selType !== Asc.c_oAscSelectionType.RangeImage && selType !== Asc.c_oAscSelectionType.RangeShape && - // selType !== Asc.c_oAscSelectionType.RangeChart && selType !== Asc.c_oAscSelectionType.RangeChartText && selType !== Asc.c_oAscSelectionType.RangeShapeText) { - // - // var isCellEdit = this.api.isCellEdited, - // formatTableInfo = cellInfo.asc_getFormatTableInfo(), - // isinsparkline = (cellInfo.asc_getSparklineInfo()!==null), - // isintable = (formatTableInfo !== null), - // ismultiselect = cellInfo.asc_getMultiselect(); - // documentHolder.ssMenu.formatTableName = (isintable) ? formatTableInfo.asc_getTableName() : null; - // documentHolder.ssMenu.cellColor = cellInfo.asc_getFill().asc_getColor(); - // documentHolder.ssMenu.fontColor = cellInfo.asc_getXfs().asc_getFontColor(); - // - // documentHolder.pmiInsertEntire.setVisible(isRow||isCol); - // documentHolder.pmiInsertEntire.setCaption((isRow) ? this.textInsertTop : this.textInsertLeft); - // documentHolder.pmiDeleteEntire.setVisible(isRow||isCol); - // documentHolder.pmiInsertCells.setVisible(isCell && !isCellEdit && !isintable); - // documentHolder.pmiDeleteCells.setVisible(isCell && !isCellEdit && !isintable); - // documentHolder.pmiSelectTable.setVisible(isCell && !isCellEdit && isintable); - // documentHolder.pmiInsertTable.setVisible(isCell && !isCellEdit && isintable); - // documentHolder.pmiDeleteTable.setVisible(isCell && !isCellEdit && isintable); - // documentHolder.pmiSparklines.setVisible(isinsparkline); - // documentHolder.pmiSortCells.setVisible((isCell||isAll||cansort) && !isCellEdit); - // documentHolder.pmiFilterCells.setVisible((isCell||cansort) && !isCellEdit); - // documentHolder.pmiReapply.setVisible((isCell||isAll||cansort) && !isCellEdit); - // documentHolder.ssMenu.items[12].setVisible((isCell||isAll||cansort||isinsparkline) && !isCellEdit); - // documentHolder.pmiInsFunction.setVisible(isCell||insfunc); - // documentHolder.pmiAddNamedRange.setVisible(isCell && !isCellEdit); - // - // if (isintable) { - // documentHolder.pmiInsertTable.menu.items[0].setDisabled(!formatTableInfo.asc_getIsInsertRowAbove()); - // documentHolder.pmiInsertTable.menu.items[1].setDisabled(!formatTableInfo.asc_getIsInsertRowBelow()); - // documentHolder.pmiInsertTable.menu.items[2].setDisabled(!formatTableInfo.asc_getIsInsertColumnLeft()); - // documentHolder.pmiInsertTable.menu.items[3].setDisabled(!formatTableInfo.asc_getIsInsertColumnRight()); - // - // documentHolder.pmiDeleteTable.menu.items[0].setDisabled(!formatTableInfo.asc_getIsDeleteRow()); - // documentHolder.pmiDeleteTable.menu.items[1].setDisabled(!formatTableInfo.asc_getIsDeleteColumn()); - // documentHolder.pmiDeleteTable.menu.items[2].setDisabled(!formatTableInfo.asc_getIsDeleteTable()); - // - // } - // - // var hyperinfo = cellInfo.asc_getHyperlink(); - // documentHolder.menuHyperlink.setVisible(isCell && hyperinfo && !isCellEdit && !ismultiselect); - // documentHolder.menuAddHyperlink.setVisible(isCell && !hyperinfo && !isCellEdit && !ismultiselect); - // - // documentHolder.pmiRowHeight.setVisible(isRow||isAll); - // documentHolder.pmiColumnWidth.setVisible(isCol||isAll); - // documentHolder.pmiEntireHide.setVisible(isCol||isRow); - // documentHolder.pmiEntireShow.setVisible(isCol||isRow); - // documentHolder.pmiFreezePanes.setVisible(!isCellEdit); - // documentHolder.pmiFreezePanes.setCaption(this.api.asc_getSheetViewSettings().asc_getIsFreezePane() ? documentHolder.textUnFreezePanes : documentHolder.textFreezePanes); - // documentHolder.pmiEntriesList.setVisible(!isCellEdit); - // - // /** coauthoring begin **/ - // documentHolder.ssMenu.items[17].setVisible(isCell && !isCellEdit && this.permissions.canCoAuthoring && this.permissions.canComments); - // documentHolder.pmiAddComment.setVisible(isCell && !isCellEdit && this.permissions.canCoAuthoring && this.permissions.canComments); - // /** coauthoring end **/ - // documentHolder.pmiCellMenuSeparator.setVisible(isCell || isRow || isCol || isAll || insfunc); - // documentHolder.pmiEntireHide.isrowmenu = isRow; - // documentHolder.pmiEntireShow.isrowmenu = isRow; - // - // documentHolder.setMenuItemCommentCaptionMode(cellInfo.asc_getComments().length > 0); - // commentsController && commentsController.blockPopover(true); - // - // documentHolder.pmiClear.menu.items[1].setDisabled(isCellEdit); - // documentHolder.pmiClear.menu.items[2].setDisabled(isCellEdit); - // documentHolder.pmiClear.menu.items[3].setDisabled(isCellEdit); - // documentHolder.pmiClear.menu.items[4].setDisabled(isCellEdit); - // - // documentHolder.pmiClear.menu.items[3].setVisible(!this.permissions.isEditDiagram); - // documentHolder.pmiClear.menu.items[4].setVisible(!this.permissions.isEditDiagram); - // - // var filterInfo = cellInfo.asc_getAutoFilterInfo(), - // isApplyAutoFilter = (filterInfo) ? filterInfo.asc_getIsApplyAutoFilter() : false; - // filterInfo = (filterInfo) ? filterInfo.asc_getIsAutoFilter() : null; - // documentHolder.pmiInsertCells.menu.items[0].setDisabled(isApplyAutoFilter); - // documentHolder.pmiDeleteCells.menu.items[0].setDisabled(isApplyAutoFilter); - // documentHolder.pmiInsertCells.menu.items[1].setDisabled(isApplyAutoFilter); - // documentHolder.pmiDeleteCells.menu.items[1].setDisabled(isApplyAutoFilter); - // - // _.each(documentHolder.ssMenu.items, function(item) { - // item.setDisabled(isCellLocked); - // }); - // documentHolder.pmiCopy.setDisabled(false); - // documentHolder.pmiInsertEntire.setDisabled(isCellLocked || isTableLocked); - // documentHolder.pmiInsertCells.setDisabled(isCellLocked || isTableLocked); - // documentHolder.pmiInsertTable.setDisabled(isCellLocked || isTableLocked); - // documentHolder.pmiDeleteEntire.setDisabled(isCellLocked || isTableLocked); - // documentHolder.pmiDeleteCells.setDisabled(isCellLocked || isTableLocked); - // documentHolder.pmiDeleteTable.setDisabled(isCellLocked || isTableLocked); - // documentHolder.pmiFilterCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null)); - // documentHolder.pmiSortCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null)); - // documentHolder.pmiReapply.setDisabled(isCellLocked || isTableLocked|| (isApplyAutoFilter!==true)); - // if (showMenu) this.showPopupMenu(documentHolder.ssMenu, {}, event); - // } - - - if (isChart || isTextChart) { - _settings.push('chart'); - - if (isTextChart) { - _settings.push('text'); - } - } else if ((isShape || isTextShape) && !isImage) { - _settings.push('shape'); - - if (isTextShape) { - _settings.push('text'); - } - } else if (isImage) { - _settings.push('image'); - - if (isShape) { - _settings.push('shape'); - } - } else { - _settings.push('cell'); - - if (cellInfo.asc_getHyperlink()) { - _settings.push('hyperlink'); - } - } - }, - - textSettings: 'Settings', - textCell: 'Cell', - textTable: 'Table', - textShape: 'Shape', - textImage: 'Image', - textChart: 'Chart', - textText: 'Text', - textHyperlink: 'Hyperlink' - - } - })(), SSE.Controllers.EditContainer || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/edit/EditHyperlink.js b/apps/spreadsheeteditor/mobile/app/controller/edit/EditHyperlink.js deleted file mode 100644 index 341ddf978..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/edit/EditHyperlink.js +++ /dev/null @@ -1,260 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditHyperlink.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/20/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/edit/EditHyperlink', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.EditHyperlink = Backbone.Controller.extend(_.extend((function() { - - return { - models: [], - collections: [], - views: [ - 'EditHyperlink' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditHyperlink': { - 'page:show' : this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - }, - - onLaunch: function () { - this.createView('EditHyperlink').render(); - }, - - initEvents: function () { - if ($('#edit-link').length < 1) { - return; - } - - uiApp.addView('#edit-link'); - - var me = this; - - me.initSettings(); - }, - - onPageShow: function (view, pageId) { - var me = this; - - me.initSettings(pageId); - }, - - initSettings: function (pageId) { - var me = this; - - if ('#edit-link-type-view' == pageId) { - var $radioLinkType = $('.page[data-page=edit-link-type-view]').find('input:radio[name=link-type]'); - $radioLinkType.val([me.linkType]); - $radioLinkType.single('change', _.bind(me.onTypeChange, me)); - } else if ('#edit-link-sheet-view' == pageId) { - var sheetCount = me.api.asc_getWorksheetsCount(), - i = -1, - template = ''; - while (++i < sheetCount) { - if (!me.api.asc_isWorksheetHidden(i)) { - template += '
          • ' + - '' + - '
          • '; - } - } - $('.page[data-page="edit-link-sheet-view"] .page-content .list-block ul').html(_.template([template].join(''))); - var $radioLinkSheet = $('.page[data-page=edit-link-sheet-view]').find('input:radio[name=link-sheet]'); - $radioLinkSheet.val([me.linkSheet]); - $radioLinkSheet.single('change', _.bind(function (e) { - me.linkSheet = $(e.currentTarget).prop('value'); - $('#edit-link-sheet .item-after').text(me.linkSheet); - }, me)); - } else { - - var cellInfo = me.api.asc_getCellInfo(), - linkInfo = cellInfo.asc_getHyperlink(), - isLock = cellInfo.asc_getLockText(); - - me.linkType = linkInfo.asc_getType(); - $('#edit-link-type .item-after').text((me.linkType == Asc.c_oAscHyperlinkType.RangeLink) ? me.textInternalLink : me.textExternalLink); - - $('#edit-link-sheet, #edit-link-range').css('display', (linkInfo.asc_getType() == Asc.c_oAscHyperlinkType.RangeLink) ? 'block' : 'none'); - $('#edit-link-link').css('display', (linkInfo.asc_getType() != Asc.c_oAscHyperlinkType.RangeLink) ? 'block' : 'none'); - - me.currentSheet = me.api.asc_getWorksheetName(me.api.asc_getActiveWorksheetIndex()); - me.linkSheet = (linkInfo.asc_getType() == Asc.c_oAscHyperlinkType.RangeLink) ? linkInfo.asc_getSheet() : me.currentSheet; - $('#edit-link-sheet .item-after').text(me.linkSheet); - - $('#edit-link-range input').val(linkInfo.asc_getRange()); - - $('#edit-link-link input').val(linkInfo.asc_getHyperlinkUrl() ? linkInfo.asc_getHyperlinkUrl().replace(new RegExp(" ", 'g'), "%20") : ''); - - $('#edit-link-display input').val(isLock ? me.textDefault : linkInfo.asc_getText()); - $('#edit-link-display input').toggleClass('disabled', isLock); - - $('#edit-link-tip input').val(linkInfo.asc_getTooltip()); - - var focusInput = ((linkInfo.asc_getType() == Asc.c_oAscHyperlinkType.RangeLink) ? $('#edit-link-range input') : $('#edit-link-link input')); - $('#edit-link-edit').toggleClass('disabled', _.isEmpty(focusInput.val())); - - $('#edit-link-link input, #edit-link-range input').single('input', _.bind(function (e) { - $('#edit-link-edit').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, me)); - - $('#edit-link-edit').single('click', _.bind(me.onEdit, me)); - $('#edit-link-remove').single('click', _.bind(me.onRemove, me)); - - } - }, - - // Handlers - - onTypeChange: function (e) { - var val = parseInt($(e.currentTarget).prop('value')); - this.linkType = val; - - $('#edit-link-sheet, #edit-link-range').css('display', (val == Asc.c_oAscHyperlinkType.RangeLink) ? 'block' : 'none'); - $('#edit-link-link').css('display', (val != Asc.c_oAscHyperlinkType.RangeLink) ? 'block' : 'none'); - - $('#edit-link-type .item-after').text((this.linkType == Asc.c_oAscHyperlinkType.RangeLink) ? this.textInternalLink : this.textExternalLink); - }, - - onEdit: function () { - var me = this, - linkProps = new Asc.asc_CHyperlink(), - defaultDisplay = "", - sheet = this.linkSheet, - $range = $('#edit-link-range input'), - $link = $('#edit-link-link input'), - $display = $('#edit-link-display input'), - $tip = $('#edit-link-tip input'), - type = parseInt(this.linkType); - - linkProps.asc_setType(type); - - if (type == Asc.c_oAscHyperlinkType.RangeLink) { - var range = $.trim($range.val()), - isValidRange = /^[A-Z]+[1-9]\d*:[A-Z]+[1-9]\d*$/.test(range); - - if (!isValidRange) - isValidRange = /^[A-Z]+[1-9]\d*$/.test(range); - - if (!isValidRange) { - uiApp.alert(me.textInvalidRange, me.notcriticalErrorTitle); - return; - } - - linkProps.asc_setSheet(sheet); - linkProps.asc_setRange(range); - defaultDisplay = sheet + '!' + range; - } else { - var url = $link.val().replace(/^\s+|\s+$/g,''); - - if (! /(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url)) { - var urlType = me.api.asc_getUrlType($.trim(url)); - - if (urlType < 1) { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - return; - } - - url = ( (urlType==2) ? 'mailto:' : 'http://' ) + url; - } - - url = url.replace(new RegExp("%20",'g')," "); - - linkProps.asc_setHyperlinkUrl(url); - defaultDisplay = url; - } - - if ($display.hasClass('disabled')) { - linkProps.asc_setText(null); - } else { - if (_.isEmpty($display.val())) { - $display.val(defaultDisplay); - } - - linkProps.asc_setText($display.val()); - } - - linkProps.asc_setTooltip($tip.val()); - - me.api.asc_insertHyperlink(linkProps); - SSE.getController('EditContainer').hideModal(); - }, - - onRemove: function () { - this.api && this.api.asc_removeHyperlink(); - SSE.getController('EditContainer').hideModal(); - }, - - textExternalLink: 'External Link', - textInternalLink: 'Internal Data Range', - textDefault: 'Selected range', - textInvalidRange: 'Invalid cells range', - textEmptyImgUrl: 'You need to specify image URL.', - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - } - })(), SSE.Controllers.EditHyperlink || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/edit/EditImage.js b/apps/spreadsheeteditor/mobile/app/controller/edit/EditImage.js deleted file mode 100644 index c36b19538..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/edit/EditImage.js +++ /dev/null @@ -1,269 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditImage.js - * Document Editor - * - * Created by Alexander Yuzhin on 11/3/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/edit/EditImage', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.EditImage = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _imageObject = undefined, - _isEdit = false; - - return { - models: [], - collections: [], - views: [ - 'EditImage' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditImage': { - 'page:show': this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onApiSelectionChanged, me)); - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - }, - - onPageShow: function (view, pageId) { - var me = this; - - me.initSettings(pageId); - }, - - onLaunch: function () { - this.createView('EditImage').render(); - }, - - initEvents: function () { - var me = this; - - me.initSettings(); - }, - - initSettings: function (pageId) { - if ($('#edit-image').length < 1) { - return; - } - - var me = this; - - if ('#edit-image-replace-view' == pageId) { - me.initReplacePage(); - } else if ('#edit-image-reorder-view' == pageId) { - me.initReorderPage(); - } else if ('#edit-image-url-view' == pageId) { - me.initLinkPage(); - } else { - me.initRootPage(); - } - }, - - initRootPage: function () { - $('#image-default').single('click', _.bind(this.onDefaultSize, this)); - $('#image-remove').single('click', _.bind(this.onRemoveImage, this)); - }, - - initReplacePage: function () { - $('#edit-image-file').single('click', _.bind(this.onReplaceByFile, this)); - }, - - initReorderPage: function () { - $('.page[data-page=edit-image-reorder-view] a.item-link').single('click', _.bind(this.onReorder, this)); - }, - - initLinkPage: function () { - $('.edit-image-url-link .button, .edit-image-url-link .list-button').single('click', _.bind(this.onReplaceByUrl, this)); - - $('.edit-image-url-link input[type=url]').single('input', _.bind(function(e) { - $('.edit-image-url-link .buttons').toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }, this)); - - _.delay(function () { - $('.edit-image-url-link input[type=url]').focus(); - }, 1000); - }, - - // Public - - getImage: function () { - return _imageObject; - }, - - // Handlers - - onDefaultSize: function () { - var me = this; - - if (me.api) { - var imgSize = me.api.asc_getOriginalImageSize(), - properties = new Asc.asc_CImgProperty(); - - properties.put_Width(imgSize.get_ImageWidth()); - properties.put_Height(imgSize.get_ImageHeight()); - properties.put_ResetCrop(true); - me.api.asc_setGraphicObjectProps(properties); - } - }, - - onRemoveImage: function () { - this.api.asc_Remove(); - SSE.getController('EditContainer').hideModal(); - }, - - onReplaceByFile: function () { - this.api.asc_changeImageFromFile(); - SSE.getController('EditContainer').hideModal(); - }, - - onReplaceByUrl: function () { - var me = this, - $input = $('.edit-image-url-link input[type=url]'); - - if ($input) { - var value = ($input.val()).replace(/ /g, ''); - - if (!_.isEmpty(value)) { - if ((/((^https?)|(^ftp)):\/\/.+/i.test(value))) { - SSE.getController('EditContainer').hideModal(); - _.defer(function () { - var image = new Asc.asc_CImgProperty(); - image.asc_putImageUrl(value); - me.api.asc_setGraphicObjectProps(image); - }); - } else { - uiApp.alert(me.txtNotUrl, me.notcriticalErrorTitle); - } - } else { - uiApp.alert(me.textEmptyImgUrl, me.notcriticalErrorTitle); - } - } - }, - - onReorder: function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'), - ascType; - - if (type == 'all-up') { - ascType = Asc.c_oAscDrawingLayerType.BringToFront; - } else if (type == 'all-down') { - ascType = Asc.c_oAscDrawingLayerType.SendToBack; - } else if (type == 'move-up') { - ascType = Asc.c_oAscDrawingLayerType.BringForward; - } else { - ascType = Asc.c_oAscDrawingLayerType.SendBackward; - } - - this.api.asc_setSelectedDrawingObjectLayer(ascType); - }, - - // API handlers - - onApiSelectionChanged: function(info) { - if (!_isEdit) { - return; - } - - var me = this, - selectedObjects = [], - selectType = info.asc_getSelectionType(); - - if (selectType == Asc.c_oAscSelectionType.RangeImage) { - selectedObjects = me.api.asc_getGraphicObjectProps(); - } - - me.onApiFocusObject(selectedObjects); - }, - - onApiFocusObject: function (objects) { - _stack = objects; - - if (!_isEdit) { - return; - } - - var images = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - images.push(object.get_ObjectValue()); - } - }); - - var getTopObject = function(array) { - if (array.length > 0) { - return array[array.length - 1]; // get top - } else { - return undefined; - } - }; - - _imageObject = getTopObject(images); - }, - - textEmptyImgUrl: 'You need to specify image URL.', - txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', - notcriticalErrorTitle: 'Warning' - } - })(), SSE.Controllers.EditImage || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/edit/EditShape.js b/apps/spreadsheeteditor/mobile/app/controller/edit/EditShape.js deleted file mode 100644 index 83e225529..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/edit/EditShape.js +++ /dev/null @@ -1,437 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditShape.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/19/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/edit/EditShape', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.EditShape = Backbone.Controller.extend(_.extend((function() { - // Private - var _stack = [], - _shapeObject = undefined, - _borderInfo = {color: '000000', width: 1}, - _metricText = Common.Utils.Metric.getCurrentMetricName(), - _isEdit = false; - - var borderSizeTransform = (function() { - var _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; - - return { - sizeByIndex: function (index) { - if (index < 1) return _sizes[0]; - if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; - return _sizes[index]; - }, - - indexSizeByValue: function (value) { - var index = 0; - _.each(_sizes, function (size, idx) { - if (Math.abs(size - value) < 0.25) { - index = idx; - } - }); - - return index; - }, - - sizeByValue: function (value) { - return _sizes[this.indexSizeByValue(value)]; - } - } - })(); - - return { - models: [], - collections: [], - views: [ - 'EditShape' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditShape': { - 'page:show': this.onPageShow - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onApiSelectionChanged, me)); - me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me)); - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - }, - - onPageShow: function (view, pageId) { - var me = this; - - me.initSettings(pageId); - }, - - onLaunch: function () { - this.createView('EditShape').render(); - }, - - initEvents: function () { - var me = this; - - me.initSettings(); - }, - - initSettings: function (pageId) { - if ($('#edit-shape').length < 1 || !_shapeObject) { - return; - } - - var me = this; - - if ('#edit-shape-style' == pageId || '#edit-shape-style-nofill' == pageId ) { - me.initStylePage(); - } else if ('#edit-shape-border-color-view' == pageId) { - me.initBorderColorPage(); - } else if ('#edit-shape-replace' == pageId) { - me.initReplacePage(); - } else if ('#edit-shape-reorder' == pageId) { - me.initReorderPage(); - } else { - me.initRootPage(); - } - }, - - initRootPage: function () { - $('#shape-remove').single('click', _.bind(this.onRemoveShape, this)); - this.getView('EditShape').isShapeCanFill = _shapeObject.get_ShapeProperties().asc_getCanFill(); - }, - - initStylePage: function () { - var me = this, - color, - shapeProperties = _shapeObject.get_ShapeProperties(); - - // Fill - - var paletteFillColor = me.getView('EditShape').paletteFillColor; - paletteFillColor.on('select', _.bind(me.onFillColor, me)); - - var fill = shapeProperties.asc_getFill(), - fillType = fill.asc_getType(); - - if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { - color = me._sdkToThemeColor(fill.asc_getFill().asc_getColor()); - } - - paletteFillColor.select(color); - - // Init border - - var borderSize = me._mm2pt(shapeProperties.get_stroke().get_width()), - borderType = shapeProperties.get_stroke().get_type(); - $('#edit-shape-bordersize input').val([(borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.indexSizeByValue(borderSize)]); - $('#edit-shape-bordersize .item-after').text(((borderType == Asc.c_oAscStrokeType.STROKE_NONE) ? 0 : borderSizeTransform.sizeByValue(borderSize)) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - - $('#edit-shape-bordersize input').single('change touchend', _.buffered(me.onBorderSize, 100, me)); - $('#edit-shape-bordersize input').single('input', _.bind(me.onBorderSizeChanging, me)); - - // Init border color - me._initBorderColorView(); - - // Effect - // Init style opacity - var transparent = shapeProperties.get_fill().asc_getTransparent(); - $('#edit-shape-effect input').val([transparent!==null && transparent!==undefined ? transparent / 2.55 : 100]); - $('#edit-shape-effect .item-after').text($('#edit-shape-effect input').val() + ' ' + "%"); - $('#edit-shape-effect input').single('change touchend', _.buffered(me.onOpacity, 100, me)); - $('#edit-shape-effect input').single('input', _.bind(me.onOpacityChanging, me)); - }, - - _initBorderColorView: function () { - if (!_shapeObject) return; - - var me = this, - stroke = _shapeObject.get_ShapeProperties().get_stroke(); - - _borderInfo.color = (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) ? me._sdkToThemeColor(stroke.get_color()) : 'transparent'; - - $('#edit-shape-bordercolor .color-preview').css('background-color', - ('transparent' == _borderInfo.color) - ? _borderInfo.color - : ('#' + (_.isObject(_borderInfo.color) ? _borderInfo.color.color : _borderInfo.color)) - ); - }, - - initReplacePage: function () { - $('.shape-replace li').single('click', _.buffered(this.onReplace, 100, this)); - }, - - initReorderPage: function () { - $('.page[data-page=edit-shape-reorder] a.item-link').single('click', _.bind(this.onReorder, this)); - }, - - initBorderColorPage: function () { - var me = this, - palette = me.getView('EditShape').paletteBorderColor; - - if (palette) { - palette.select(_borderInfo.color); - palette.on('select', _.bind(me.onBorderColor, me)); - } - }, - - // Public - - getShape: function () { - return _shapeObject; - }, - - // Handlers - - onRemoveShape: function () { - this.api.asc_Remove(); - SSE.getController('EditContainer').hideModal(); - }, - - onReorder: function(e) { - }, - - onReplace: function (e) { - }, - - onBorderSize: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - value = borderSizeTransform.sizeByIndex(parseInt(value)); - - if (value < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - if (_borderInfo.color == 'transparent') - stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); - else - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderInfo.color))); - stroke.put_width(me._pt2mm(value)); - } - - shape.put_stroke(stroke); - image.asc_putShapeProperties(shape); - - me.api.asc_setGraphicObjectProps(image); - me._initBorderColorView(); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR - }, - - onBorderSizeChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-shape-bordersize .item-after').text(borderSizeTransform.sizeByIndex($target.val()) + ' ' + Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.pt)); - }, - - onOpacity: function (e) { - var me = this, - $target = $(e.currentTarget), - value = $target.val(), - properties = new Asc.asc_CImgProperty(), - fill = new Asc.asc_CShapeFill(), - shape = new Asc.asc_CShapeProperty(); - - fill.asc_putTransparent(parseInt(value * 2.55)); - shape.asc_putFill(fill); - properties.put_ShapeProperties(shape); - - me.api.asc_setGraphicObjectProps(properties); - }, - - onOpacityChanging: function (e) { - var $target = $(e.currentTarget); - $('#edit-shape-effect .item-after').text($target.val() + ' %'); - }, - - onFillColor: function(palette, color) { - var me = this; - - if (me.api) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - fill = new Asc.asc_CShapeFill(); - - if (color == 'transparent') { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); - fill.put_fill(null); - } else { - fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); - fill.put_fill(new Asc.asc_CFillSolid()); - fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); - } - - shape.asc_putFill(fill); - image.asc_putShapeProperties(shape); - - me.api.asc_setGraphicObjectProps(image); - } - }, - - onBorderColor: function (palette, color) { - var me = this, - currentShape = _shapeObject ? _shapeObject.get_ShapeProperties() : null; - - $('#edit-shape-bordercolor .color-preview').css('background-color', ('transparent' == color) ? color : ('#' + (_.isObject(color) ? color.color : color))); - _borderInfo.color = color; - - if (me.api && currentShape && currentShape.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { - var image = new Asc.asc_CImgProperty(), - shape = new Asc.asc_CShapeProperty(), - stroke = new Asc.asc_CStroke(); - - if (currentShape.get_stroke().get_width() < 0.01) { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); - } else { - stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); - stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); - stroke.put_width(currentShape.get_stroke().get_width()); - stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); - } - - shape.put_stroke(stroke); - image.asc_putShapeProperties(shape); - - me.api.asc_setGraphicObjectProps(image); - } - }, - - // API handlers - - onApiSelectionChanged: function(info) { - if (!_isEdit) { - return; - } - - var me = this, - selectedObjects = [], - selectType = info.asc_getSelectionType(); - - if (selectType == Asc.c_oAscSelectionType.RangeShape) { - selectedObjects = me.api.asc_getGraphicObjectProps(); - } - - me.onApiFocusObject(selectedObjects); - }, - - onApiFocusObject: function (objects) { - _stack = objects; - - if (!_isEdit) { - return; - } - - if (_stack.length < 1) { - _stack = this.api.asc_getGraphicObjectProps(); - } - - var shapes = []; - - _.each(_stack, function (object) { - if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image) { - if (object.get_ObjectValue() && object.get_ObjectValue().get_ShapeProperties()) { - shapes.push(object); - } - } - }); - - var getTopObject = function(array) { - if (array.length > 0) { - var object = array[array.length - 1]; // get top - return object.get_ObjectValue(); - } else { - return undefined; - } - }; - - _shapeObject = getTopObject(shapes); - if (_shapeObject) - this.getView('EditShape').isShapeCanFill = _shapeObject.get_ShapeProperties().asc_getCanFill(); - }, - - // Helpers - - _pt2mm: function(value) { - return (value * 25.4 / 72.0); - }, - - _mm2pt: function(value) { - return (value * 72.0 / 25.4); - }, - - _sdkToThemeColor: function (color) { - var clr = 'transparent'; - - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - clr = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - } - } else { - clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } - - return clr; - } - - }; - })(), SSE.Controllers.EditShape || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/edit/EditText.js b/apps/spreadsheeteditor/mobile/app/controller/edit/EditText.js deleted file mode 100644 index 84639f70a..000000000 --- a/apps/spreadsheeteditor/mobile/app/controller/edit/EditText.js +++ /dev/null @@ -1,372 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditText.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/21/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'spreadsheeteditor/mobile/app/view/edit/EditText', - 'jquery', - 'underscore', - 'backbone' -], function (core, view, $, _, Backbone) { - 'use strict'; - - SSE.Controllers.EditText = Backbone.Controller.extend(_.extend((function() { - // Private - var TextType = {inUnknown: 0, inChart: 1, inShape: 2}; - - var _textIn = TextType.inUnknown, - _fontInfo = undefined, - _cellInfo = undefined, - _isEdit = false; - - return { - models: [], - collections: [], - views: [ - 'EditText' - ], - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - - this.addListeners({ - 'EditText': { - 'page:show' : this.onPageShow, - 'font:click' : this.onFontClick - } - }); - }, - - setApi: function (api) { - var me = this; - me.api = api; - - me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onApiSelectionChanged, me)); - me.api.asc_registerCallback('asc_onEditorSelectionChanged', _.bind(me.onApiEditorSelectionChanged, me)); - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - }, - - onPageShow: function (view, pageId) { - var me = this; - - me.initSettings(pageId); - }, - - onLaunch: function () { - this.createView('EditText').render(); - }, - - initEvents: function () { - var me = this; - - me.initSettings(); - }, - - initSettings: function (pageId) { - if ($('#edit-text').length < 1) { - return; - } - - var me = this; - - if ('#edit-text-fonts' == pageId) { - me.initFontsPage(); - } else if ('#edit-text-color' == pageId) { - me.initTextColorPage(); - } else { - me.initRootPage(); - } - }, - - initRootPage: function () { - if (_.isUndefined(_fontInfo)) { - return; - } - - var me = this; - - - // Init font name - var fontName = _fontInfo.asc_getFontName() || this.textFonts; - $('#font-fonts .item-title').html(fontName); - - - // Init font size - var displaySize = _fontInfo.asc_getFontSize(); - _.isUndefined(displaySize) ? displaySize = this.textAuto : displaySize = displaySize + ' ' + this.textPt; - - $('#font-fonts .item-after span:first-child').html(displaySize); - $('#font-size .item-after label').html(displaySize); - - - // Init font style - $('#font-bold').toggleClass('active', _fontInfo.asc_getFontBold() === true); - $('#font-italic').toggleClass('active', _fontInfo.asc_getFontItalic() === true); - $('#font-underline').toggleClass('active', _fontInfo.asc_getFontUnderline() === true); - - - // Init font color - var color = _fontInfo.asc_getFontColor(), - clr = me._sdkToThemeColor(color); - - $('#font-color .color-preview').css('background-color', '#' + (_.isObject(clr) ? clr.color : clr)); - - // Align - $('#edit-text-align-block').css('display', (_textIn == TextType.inShape) ? 'block' : 'none'); - - var hAlign = _fontInfo.asc_getHorAlign(), - vAlign = _fontInfo.asc_getVertAlign(); - - $('#font-left').toggleClass('active', hAlign===AscCommon.align_Left); - $('#font-center').toggleClass('active', hAlign===AscCommon.align_Center); - $('#font-right').toggleClass('active', hAlign===AscCommon.align_Right); - $('#font-just').toggleClass('active', hAlign===AscCommon.align_Justify); - $('#font-top').toggleClass('active', vAlign===Asc.c_oAscVAlign.Top); - $('#font-middle').toggleClass('active', vAlign===Asc.c_oAscVAlign.Center); - $('#font-bottom').toggleClass('active', vAlign===Asc.c_oAscVAlign.Bottom); - - // Handlers - $('#font-bold').single('click', _.bind(me.onBold, me)); - $('#font-italic').single('click', _.bind(me.onItalic, me)); - $('#font-underline').single('click', _.bind(me.onUnderline, me)); - $('#font-left').single('click', _.bind(me.onHAlign, me, AscCommon.align_Left)); - $('#font-center').single('click', _.bind(me.onHAlign, me, AscCommon.align_Center)); - $('#font-right').single('click', _.bind(me.onHAlign, me, AscCommon.align_Right)); - $('#font-just').single('click', _.bind(me.onHAlign, me, AscCommon.align_Justify)); - $('#font-top').single('click', _.bind(me.onVAlign, me, Asc.c_oAscVAlign.Top)); - $('#font-middle').single('click', _.bind(me.onVAlign, me, Asc.c_oAscVAlign.Center)); - $('#font-bottom').single('click', _.bind(me.onVAlign, me, Asc.c_oAscVAlign.Bottom)); - }, - - initFontsPage: function () { - var me = this, - displaySize = _fontInfo.asc_getFontSize(); - - _.isUndefined(displaySize) ? displaySize = this.textAuto : displaySize = displaySize + ' ' + this.textPt; - - $('#font-size .item-after label').html(displaySize); - $('#font-size .button').single('click', _.bind(me.onFontSize, me)); - - _.defer(function () { - me.getView('EditText').renderFonts(); - }, me); - }, - - initTextColorPage: function () { - var me = this, - color = me._sdkToThemeColor(_fontInfo.asc_getFontColor()), - palette = me.getView('EditText').paletteTextColor; - - if (palette) { - palette.select(color); - palette.on('select', _.bind(me.onTextColor, me)); - } - }, - - // Handlers - - onFontSize: function (e) { - var me = this, - $button = $(e.currentTarget), - fontSize = _fontInfo.asc_getFontSize(); - - if ($button.hasClass('decrement')) { - _.isUndefined(fontSize) ? me.api.asc_decreaseFontSize() : fontSize = Math.max(1, --fontSize); - } else { - _.isUndefined(fontSize) ? me.api.asc_increaseFontSize() : fontSize = Math.min(100, ++fontSize); - } - - if (! _.isUndefined(fontSize)) { - me.api.asc_setCellFontSize(fontSize); - } - }, - - onFontClick: function (view, e) { - var $item = $(e.currentTarget).find('input'); - - if ($item) { - this.api.asc_setCellFontName($item.prop('value')); - } - }, - - onBold: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.asc_setCellBold(pressed); - } - }, - - onItalic: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.asc_setCellItalic(pressed); - } - }, - - onUnderline: function (e) { - var pressed = this._toggleButton(e); - - if (this.api) { - this.api.asc_setCellUnderline(pressed); - } - }, - - onHAlign: function(type, e) { - var $target = $(e.currentTarget); - - $target.parent('.row').find('a.button').removeClass('active'); - $target.addClass('active'); - - this.api.asc_setCellAlign(type); - }, - - onVAlign: function(type, e) { - var $target = $(e.currentTarget); - - $target.parent('.row').find('a.button').removeClass('active'); - $target.addClass('active'); - - this.api.asc_setCellVertAlign(type); - }, - - - onTextColor:function (palette, color) { - this.api.asc_setCellTextColor(Common.Utils.ThemeColor.getRgbColor(color)); - $('#font-color .color-preview').css('background-color', '#' + (_.isObject(color) ? color.color : color)); - }, - - onHAlignChange: function (e) { - var $target = $(e.currentTarget), - value = $target.prop('value'), - type = AscCommon.align_Left; - - if (value == 'center') - type = AscCommon.align_Center; - else if (value == 'right') - type = AscCommon.align_Right; - else if (value == 'justify') - type = AscCommon.align_Justify; - - this.api.asc_setCellAlign(type); - }, - - onVAlignChange: function (e) { - var $target = $(e.currentTarget), - value = $target.prop('value'), - type = Asc.c_oAscVAlign.Bottom; - - if (value == 'top') { - type = Asc.c_oAscVAlign.Top; - } else if (value == 'center') { - type = Asc.c_oAscVAlign.Center; - } - - this.api.asc_setCellVertAlign(type); - }, - - // Public - - getFontInfo: function () { - return _fontInfo; - }, - - // API handlers - - onApiSelectionChanged: function(info) { - if (!_isEdit) { - return; - } - - _cellInfo = info; - _fontInfo = info.asc_getXfs(); - - var selectType = info.asc_getSelectionType(); - - switch (selectType) { - case Asc.c_oAscSelectionType.RangeChartText: _textIn = TextType.inChart; break; - case Asc.c_oAscSelectionType.RangeShapeText: _textIn = TextType.inShape; break; - default: _textIn = TextType.inUnknown; - } - }, - - onApiEditorSelectionChanged: function(fontObj) { - if (!_isEdit) { - return; - } - - _fontInfo = fontObj; - }, - - // Helpers - - _toggleButton: function (e) { - return $(e.currentTarget).toggleClass('active').hasClass('active'); - }, - - _sdkToThemeColor: function (color) { - var clr = 'transparent'; - - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - clr = { - color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), - effectValue: color.get_value() - } - } else { - clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } - - return clr; - }, - - textFonts: 'Fonts', - textAuto: 'Auto', - textPt: 'pt' - }; - })(), SSE.Controllers.EditText || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/model/sheet.js b/apps/spreadsheeteditor/mobile/app/model/sheet.js deleted file mode 100644 index 6923f2c87..000000000 --- a/apps/spreadsheeteditor/mobile/app/model/sheet.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * -*/ -/** - * sheet.js - * - * Model for sheet. - * - * Created by Maxim.Kadushkin on 11/29/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'backbone' -], function(Backbone){ - 'use strict'; - - SSE.Models = SSE.Models || {}; - - SSE.Models.Sheet = Backbone.Model.extend({ - initialize: function () { - // this.uid = _.uniqueId(/*prefix || */"asc-gen"); - }, - defaults: { - index : undefined, - name : null - } - }); -}); - diff --git a/apps/spreadsheeteditor/mobile/app/template/AddChart.template b/apps/spreadsheeteditor/mobile/app/template/AddChart.template deleted file mode 100644 index 09771f73e..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/AddChart.template +++ /dev/null @@ -1,14 +0,0 @@ - -
            -
            - <% _.each(types, function(row) { %> -
              - <% _.each(row, function(type) { %> -
            • -
              -
            • - <% }); %> -
            - <% }); %> -
            -
            \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/AddFunction.template b/apps/spreadsheeteditor/mobile/app/template/AddFunction.template deleted file mode 100644 index 80119a8cc..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/AddFunction.template +++ /dev/null @@ -1,95 +0,0 @@ - -<% if (view == 'root') { %> - -
            -
            -
            -
            - -
            -
            <%= textGroups %>
            -
            - -
            -
            -
            -
            - -<% } %> - - -<% if (view == 'group') { %> -
            - -
            -
            -
            - -
            -
            -
            -
            -<% } %> - - -<% if (view == 'info') { %> -
            - -
            -
            -
            -

            <%= caption %><%= args %>

            -

            <%= descr %>

            -
            -
            -
            -
            -<% } %> diff --git a/apps/spreadsheeteditor/mobile/app/template/AddLink.template b/apps/spreadsheeteditor/mobile/app/template/AddLink.template deleted file mode 100644 index 9c494da04..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/AddLink.template +++ /dev/null @@ -1,102 +0,0 @@ - - diff --git a/apps/spreadsheeteditor/mobile/app/template/AddOther.template b/apps/spreadsheeteditor/mobile/app/template/AddOther.template deleted file mode 100644 index dd247de8e..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/AddOther.template +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -
            -
            -
            - <% if (!android) { %>
            <%= scope.textAddress %>
            <% } %> -
            -
              -
            • - -
            • -
            -
            -
            - <% if (android) { %> - <%= scope.textInsertImage %> - <% } else { %> - - <% } %> -
            -
            -
            -
            - - -
            -
            -
            -
            -
            • -
              -
              -
              - - -
              -
              -
              -
            -
            -
            -
              -
            • -
              -
              -
              <%= scope.textFilter %>
              -
              - -
              -
              -
              -
            • -
            -
            -
            -
            -
            - - -
            -
            -
            -
            -
            - -
            -
            -
            \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/AddShape.template b/apps/spreadsheeteditor/mobile/app/template/AddShape.template deleted file mode 100644 index 04c30ec01..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/AddShape.template +++ /dev/null @@ -1,14 +0,0 @@ - -
            -
            - <% _.each(shapes, function(row) { %> -
              - <% _.each(row, function(shape) { %> -
            • -
              -
            • - <% }); %> -
            - <% }); %> -
            -
            \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/CellEditor.template b/apps/spreadsheeteditor/mobile/app/template/CellEditor.template deleted file mode 100644 index 330dbdd11..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/CellEditor.template +++ /dev/null @@ -1,17 +0,0 @@ -
            -
            - - - - -
            -
            - -
            -
            - -
            -
            -
              -
              -
              diff --git a/apps/spreadsheeteditor/mobile/app/template/EditCell.template b/apps/spreadsheeteditor/mobile/app/template/EditCell.template deleted file mode 100644 index 78bfe3806..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/EditCell.template +++ /dev/null @@ -1,990 +0,0 @@ - - - - -
              - -
              -
              -
              -
                -
              • -
                -
                -
                <%= scope.textSize %>
                -
                - <% if (!android) { %><% } %> -

                - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

                -
                -
                -
                -
              • -
              -
              -
              <%= scope.textFonts %>
              -
              - -
              -
              -
              -
              - - -
              - -
              -
              -
              -
              -
              - - -
              - -
              -
              -
              -
              -
              - - -
              - -
              -
              -
              -
              -
              - - -
              - -
              -
              -
              -
                -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              -
              -
              -
                -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              -
              -
              -
                -
              • -
                - <% if (!android) { %>
                <% } %> -
                -
                <%= scope.textWrapText %>
                -
                - -
                -
                -
                -
              • -
              -
              -
              -
              -
              - - -
              - -
              -
              -
              -
                -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              -
              -
              -
              -
              - - - - - - - - - - - - - - - - - - - - - -
              - -
              -
              - -
              -
              -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/EditChart.template b/apps/spreadsheeteditor/mobile/app/template/EditChart.template deleted file mode 100644 index 8cee747c5..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/EditChart.template +++ /dev/null @@ -1,640 +0,0 @@ - - - - - - - -
              - -
              -
              -
              - <% _.each(types, function(row) { %> -
                - <% _.each(row, function(type) { %> -
              • -
                -
              • - <% }); %> -
              - <% }); %> -
              -
              - -
              -
              - -
              -
              -
              - -
              -
              -
              -
              -
              - - -
              - -
              -
              - -
              -
              -
              - - - - - -
              - -
              -
              -
              -
              -
                -
              • -
                -
                -
                <%= scope.textMinValue %>
                -
                -
                - -
                -
                -
                -
                -
              • -
              • -
                -
                -
                <%= scope.textMaxValue %>
                -
                -
                - -
                -
                -
                -
                -
              • -
              -
              -
              - -
              -
              - -
              -
              <%= scope.textTickOptions %>
              - -
              <%= scope.textLabelOptions %>
              - -
              -
              -
              -
              - - -
              - -
              -
              -
              -
              - -
              -
              - -
              -
              <%= scope.textTickOptions %>
              - -
              <%= scope.textLabelOptions %>
              - -
              -
              -
              -
              - - -
              - -
              -
              - -
              -
              -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/EditHyperlink.template b/apps/spreadsheeteditor/mobile/app/template/EditHyperlink.template deleted file mode 100644 index abb81e830..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/EditHyperlink.template +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/EditImage.template b/apps/spreadsheeteditor/mobile/app/template/EditImage.template deleted file mode 100644 index b079158d4..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/EditImage.template +++ /dev/null @@ -1,184 +0,0 @@ - -
              - -
              - -
              -
              - - - - - -
              - - -
              - - -
              - - -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/EditShape.template b/apps/spreadsheeteditor/mobile/app/template/EditShape.template deleted file mode 100644 index cb5026491..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/EditShape.template +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - -
              - -
              -
              - <% _.each(shapes, function(row) { %> -
                - <% _.each(row, function(shape) { %> -
              • -
                -
              • - <% }); %> -
              - <% }); %> -
              -
              -
              - - -
              - -
              -
              -
              - -
              -
              -
              - -
              -
              -
              -
              -
                -
              • -
                <%= scope.textOpacity %>
                -
                -
                -
                -
                - -
                -
                -
                0 %
                -
                -
                -
              • -
              -
              -
              -
              -
              -
              - -
              - -
              -
              -
              - -
              -
              -
              -
              - - -
              - -
              -
              - -
              -
              -
              - - -
              - -
              -
              - -
              -
              -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/EditText.template b/apps/spreadsheeteditor/mobile/app/template/EditText.template deleted file mode 100644 index 4fd0b4750..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/EditText.template +++ /dev/null @@ -1,136 +0,0 @@ - - - - -
              - -
              -
              -
              -
                -
              • -
                -
                -
                <%= scope.textSize %>
                -
                - <% if (!android) { %><% } %> -

                - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

                -
                -
                -
                -
              • -
              -
              -
              <%= scope.textFonts %>
              -
              - -
              -
              -
              -
              - - -
              - -
              -
              -
              -
              -
              - - - -
              - -
              -
              - -
              -
              -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/Editor.template b/apps/spreadsheeteditor/mobile/app/template/Editor.template deleted file mode 100644 index be31b65a1..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/Editor.template +++ /dev/null @@ -1,10 +0,0 @@ -
              -
              - -
              -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/FilterOptions.template b/apps/spreadsheeteditor/mobile/app/template/FilterOptions.template deleted file mode 100644 index 4e983c907..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/FilterOptions.template +++ /dev/null @@ -1,51 +0,0 @@ - -
              - -
              -
              -
              -
              -
              • -
                -
                -
                - - -
                -
                -
                -
              -
              -
              -
                -
              • -
                -
                -
                <%= scope.textClearFilter %>
                -
                -
                -
              • -
              • -
                -
                -
                <%= scope.textDeleteFilter %>
                -
                -
                -
              • -
              -
              - -
              - -
              - - -
              -
              -
              -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/Search.template b/apps/spreadsheeteditor/mobile/app/template/Search.template deleted file mode 100644 index 9b3d5df5c..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/Search.template +++ /dev/null @@ -1,189 +0,0 @@ - -
              - -
              - - -
              - -
              -
              - <% if (isEdit) { %> -
              -
                -
              • - -
              • -
              • - -
              • -
              -
              - <% } %> -
              <%= scope.textSearchIn %>
              -
              -
                -
              • - -
              • -
              • - -
              • -
              -
              -
              <%= scope.textSearchBy %>
              -
              -
                -
              • - -
              • -
              • - -
              • -
              -
              -
              <%= scope.textLookIn %>
              -
              -
                -
              • - -
              • -
              • - -
              • -
              -
              -
              -
                -
              • -
                -
                -
                <%= scope.textMatchCase %>
                -
                - -
                -
                -
                -
              • -
              • -
                -
                -
                <%= scope.textMatchCell %>
                -
                - -
                -
                -
                -
              • -
              • -
                -
                -
                <%= scope.textHighlightRes %>
                -
                - -
                -
                -
                -
              • -
              -
              -
              -
              -
              \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/Settings.template b/apps/spreadsheeteditor/mobile/app/template/Settings.template deleted file mode 100644 index 52918491c..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/Settings.template +++ /dev/null @@ -1,911 +0,0 @@ - -
              - - -
              - - -
              - -
              -
              -
              -
              <%= scope.textDocTitle %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textOwner %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textLocation %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textUploaded %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textTitle %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textSubject %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textComment %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textLastModified %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textLastModifiedBy %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textCreated %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textApplication %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              <%= scope.textAuthor %>
              -
              -
                -
              • -
                -
                <%= scope.textLoading %>
                -
                -
              • -
              -
              -
              -
              -
              -
              - - - - - -
              - -
              -
              -
              -
              Saved versions
              -
              -
              -

              Under construction

              -
              -
              -
              -
              -
              -
              - - -
              - -
              -
              -
              -
              - - -
              -
              -

              SPREADSHEET EDITOR

              -

              <%= scope.textVersion %> <%= prodversion %>

              -
              -
              -

              <%= publishername %>

              -

              <%= publisheraddr %>

              -

              <%= supportemail %>

              -

              <%= phonenum %>

              -

              <%= printed_url %>

              -

              -
              - -
              -
              -
              -
              - - -
              - -
              -
              -
              -
              <%= scope.textUnitOfMeasurement %>
              -
              - -
                -
              • - -
              • -
              • - -
              • -
              • - -
              • -
              -
              -
              <%= scope.textFormulaLanguage %>
              - -
              <%= scope.textRegionalSettings %>
              - -
              <%= scope.textCommentingDisplay %>
              -
              -
                -
                -
                -
                <%= scope.textDisplayComments %>
                -
                - -
                -
                -
                -
                -
                -
                <%= scope.textDisplayResolvedComments %>
                -
                - -
                -
                -
                -
              -
              -
              -
                -
              • -
                -
                -
                <%= scope.textR1C1Style %>
                -
                - -
                -
                -
                -
              • -
              -
              - -
              -
              -
              -
              - -
              - -
              -
              -
              <%= scope.textOrientation %>
              -
              -
                -
              • - -
              • -
              • - -
              • -
              -
              -
              <%= scope.textFormat %>
              - -
              -
                -
              • -
                -
                -
                <%= scope.textHideHeadings %>
                -
                - -
                -
                -
                -
              • -
              • -
                -
                -
                <%= scope.textHideGridlines %>
                -
                - -
                -
                -
                -
              • -
              -
              - - -
              -
              -
              - - -
              - -
              -
              -
              -
              -
                -
                -
                -
                -
                -
                - - -
                - -
                -
                -
                -
                -
                  -
                  -
                  -
                  -
                  -
                  - - -
                  - -
                  -
                  -
                  -
                  -
                    -
                  • -
                    -
                    -
                    <%= scope.textTop %>
                    -
                    - <% if (!android) { %><% } %> -

                    - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

                    -
                    -
                    -
                    -
                  • -
                  • -
                    -
                    -
                    <%= scope.textBottom %>
                    -
                    - <% if (!android) { %><% } %> -

                    - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

                    -
                    -
                    -
                    -
                  • -
                  • -
                    -
                    -
                    <%= scope.textLeft %>
                    -
                    - <% if (!android) { %><% } %> -

                    - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

                    -
                    -
                    -
                    -
                  • -
                  • -
                    -
                    -
                    <%= scope.textRight %>
                    -
                    - <% if (!android) { %><% } %> -

                    - <% if (android) { %><% } else { %>-<% } %> - <% if (android) { %><% } %> - <% if (android) { %><% } else { %>+<% } %> -

                    -
                    -
                    -
                    -
                  • -
                  -
                  -
                  -
                  -
                  -
                  - - -
                  - -
                  -
                  -
                  -
                  -
                    -
                  -
                  -
                  -
                  -
                  -
                  - - -
                  - -
                  -
                  -
                  -
                  -
                    -
                  -
                  -
                  -
                  -
                  -
                  - - -
                  - -
                  -
                  -
                  -
                  -
                    -
                  • - -
                  • -
                  • - -
                  • -
                  • - -
                  • -
                  -
                  - -
                  -
                  -
                  -
                  \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/template/Toolbar.template b/apps/spreadsheeteditor/mobile/app/template/Toolbar.template deleted file mode 100644 index 9cb6d2657..000000000 --- a/apps/spreadsheeteditor/mobile/app/template/Toolbar.template +++ /dev/null @@ -1,56 +0,0 @@ - diff --git a/apps/spreadsheeteditor/mobile/app/view/CellEditor.js b/apps/spreadsheeteditor/mobile/app/view/CellEditor.js deleted file mode 100644 index b35581619..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/CellEditor.js +++ /dev/null @@ -1,191 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * -*/ -/** - * CellEdit.js - * - * Created by Maxim Kadushkin on 11/28/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/CellEditor.template', - 'jquery', - 'underscore', - 'backbone' -], function (template, $, _, Backbone) { - 'use strict'; - - SSE.Views.CellEditor = Backbone.View.extend({ - el: '.pages > .page', - template: _.template(template), - - events: { - 'click button#ce-btn-expand': 'expandEditor', - 'click #ce-function': function (e) { - this.fireEvent('function:click', this); - } - }, - - touch: {}, - tplHintItem: _.template('
                • <%= caption %>
                • '), - - initialize: function (options) { - }, - - render: function () { - var $el = $(this.el); - this.$el = $(this.template()).prependTo($el); - - this.$cellname = $('#ce-cell-name', this.el); - this.$btnexpand = $('#ce-btn-expand', this.el); - this.$boxfuncs = $('.group-functions-list', this.el); - this.$listfuncs = $('.func-list', this.$boxfuncs); - - // this.$btnfunc = $('#ce-function', this.el); - - this.$listfuncs.on({ - 'touchstart': this.onTouchStart.bind(this), - 'touchmove': this.onTouchMove.bind(this), - 'touchend': this.onTouchEnd.bind(this) - }); - - return this; - }, - - updateCellInfo: function(info) { - if (info) { - this.$cellname.html(typeof(info)=='string' ? info : info.asc_getName()); - } - }, - - expandEditor: function() { - if (this.$el.hasClass('expanded')) { - this.$el.removeClass('expanded'); - this.$btnexpand.removeClass('collapse'); - } else { - this.$el.addClass('expanded'); - this.$btnexpand.addClass('collapse'); - } - - // Common.NotificationCenter.trigger('layout:changed', 'celleditor'); - // Common.NotificationCenter.trigger('edit:complete', this.editor, {restorefocus:true}); - }, - - clearFunctionsHint: function () { - this.$listfuncs.find('li').off('click'); - this.$listfuncs.empty(); - this.$listfuncs.scrollLeft(0); - }, - - cellNameDisabled: function(disabled){ - // (disabled) ? this.$cellname.attr('disabled', 'disabled') : this.$cellname.removeAttr('disabled'); - // this.$btnfunc.toggleClass('disabled', disabled); - // this.btnNamedRanges.setDisabled(disabled); - }, - - resetFunctionsHint: function(funcarr) { - this.clearFunctionsHint(); - - var me = this; - var onhintclick = function(name, type, e) { - this.fireEvent('function:hint', [name, type]); - }; - - var items = []; - _.each(funcarr, function(func, index) { - var $item = $(me.tplHintItem({ - caption: func.asc_getName() - })); - - $item.on('click', onhintclick.bind(me, func.asc_getName(), func.asc_getType())); - items.push($item); - }); - - this.$listfuncs.append(items); - }, - - hasHiddenFunctionsHint: function() { - var _left_bound_ = this.$boxfuncs.offset().left, - _right_bound_ = _left_bound_ + this.$boxfuncs.width(); - - var $items = this.$listfuncs.find('li'); - var rect = $items.first().get(0).getBoundingClientRect(); - - if ( !(rect.left < _left_bound_) ) { - rect = $items.last().get(0).getBoundingClientRect(); - - if ( !(rect.right > _right_bound_) ) - return false; - } - - return true; - }, - - onTouchStart: function(e) { - if ( this.hasHiddenFunctionsHint() ) { - var touches = e.originalEvent.changedTouches; - this.touch.startx = touches[0].clientX; - this.touch.scrollx = this.$listfuncs.scrollLeft(); - - this.touch.timer = setTimeout(function () { - // touch.longtouch = true; - }, 500); - e.preventDefault(); - } - }, - - onTouchMove: function(e) { - if ( this.touch.startx !== undefined ) { - var touches = e.originalEvent.changedTouches; - - if ( this.touch.longtouch ) {} - else { - if ( this.touch.timer ) clearTimeout(this.touch.timer), delete this.touch.timer; - this.$listfuncs.scrollLeft(this.touch.scrollx + (this.touch.startx - touches[0].clientX)); - } - - e.preventDefault(); - } - }, - - onTouchEnd: function(e) { - if ( this.touch.startx !== undefined ) { - this.touch.longtouch = false; - delete this.touch.startx; - e.preventDefault(); - } - } - - }); -}); diff --git a/apps/spreadsheeteditor/mobile/app/view/DocumentHolder.js b/apps/spreadsheeteditor/mobile/app/view/DocumentHolder.js deleted file mode 100644 index a25b12af0..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/DocumentHolder.js +++ /dev/null @@ -1,135 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * DocumentHolder.js - * - * Created by Maxim Kadushkin on 11/8/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'jquery', - 'underscore', - 'backbone' - , 'common/mobile/utils/utils' -], function ($, _, Backbone) { - 'use strict'; - - SSE.Views.DocumentHolder = Backbone.View.extend((function() { - // private - var _anchorId = 'context-menu-target'; - - return { - el: '#editor_sdk', - - template: _.template('
                  '), - // Delegated events for creating new items, and clearing completed ones. - events: { - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - Common.NotificationCenter.on('document:ready', function () { - this.$el.append(this.template()); - }.bind(this)); - }, - - // Render layout - render: function() { - var el = $(this.el); - - // this.f7View = uiApp.addView('.view-main', { - // // params - // }); - - return this; - }, - - showMenu: function (items, posX, posY) { - if (items.itemsIcon.length < 1 && items.items.length < 1) { - return; - } - - var menuItemTemplate = _.template([ - '<% if(menuItems.itemsIcon) {%>', - '<% _.each(menuItems.itemsIcon, function(item) { %>', - '
                • ', - '<% }); }%>', - '<% if(menuItems.items) {%>', - '<% _.each(menuItems.items, function(item) { %>', - '
                • <%= item.caption %>
                • ', - '<% }); }%>' - ].join('')); - - var $target = $('#' + _anchorId) - .css({left: posX, top: Math.max(0, posY)}); - - uiApp.closeModal('.document-menu.modal-in'); - - var popoverHTML = - '
                  '+ - '
                  '+ - '
                  '+ - '
                    '+ - menuItemTemplate({menuItems: items}) + - '
                  '+ - '
                  '+ - '
                  '+ - '
                  '; - var popover = uiApp.popover(popoverHTML, $target); - - if (Common.SharedSettings.get('android')) { - Common.Utils.androidMenuTop($(popover), $target); - } - - $('.modal-overlay').removeClass('modal-overlay-visible'); - - $('.document-menu li').single('click', _.buffered(function(e) { - var $el = $(e.currentTarget), - eventName = $el.data('event'); - - this.fireEvent('contextmenu:click', [this, eventName]); - }, 100, this)); - }, - - hideMenu: function () { - $('#' + _anchorId) - .css({'left': -1000, 'top': -1000}); - - uiApp.closeModal('.document-menu.modal-in'); - } - } - })()); -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/Editor.js b/apps/spreadsheeteditor/mobile/app/view/Editor.js deleted file mode 100644 index 6f5e7a45f..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/Editor.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Editor.js - * - * Created by Maxim Kadushkin on 11/15/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!spreadsheeteditor/mobile/app/template/Editor.template', - 'jquery', - 'underscore', - 'backbone' -], function (editorTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.Editor = Backbone.View.extend({ - el: 'body', - - // Compile our stats template - template: _.template(editorTemplate), - - // Delegated events for creating new items, and clearing completed ones. - events: { - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - // - }, - - // Render layout - render: function() { - var el = $(this.el); - el.prepend(this.template({ - backTitle: Framework7.prototype.device.android ? '' : '' - })); - - this.f7View = uiApp.addView('.view-main', { - // params - }); - - return this; - } - }); -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/FilterOptions.js b/apps/spreadsheeteditor/mobile/app/view/FilterOptions.js deleted file mode 100644 index 09d075659..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/FilterOptions.js +++ /dev/null @@ -1,146 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * FilterOptions.js - * Spreadsheet Editor - * - * Created by Julia Svinareva on 13/6/19 - * Copyright (c) 2019 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/FilterOptions.template', - 'jquery', - 'underscore', - 'backbone' -], function (settingsTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.FilterOptions = Backbone.View.extend(_.extend((function() { - // private - - return { - - template: _.template(settingsTemplate), - - events: { - // - }, - - initialize: function() { - Common.NotificationCenter.on('filtercontainer:show', _.bind(this.initEvents, this)); - this.on('page:show', _.bind(this.updateItemHandlers, this)); - }, - - initEvents: function () { - var me = this; - - Common.Utils.addScrollIfNeed('.view[data-page=filter-root-view] .pages', '.view[data-page=filter-root-view] .page'); - me.updateItemHandlers(); - }, - - initControls: function() { - // - }, - - // Render layout - render: function() { - this.layout = $('
                  ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - orthography: Common.SharedSettings.get('sailfish'), - scope : this - })); - - return this; - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '.page[data-page=filter-root-view]' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - rootLayout: function () { - if (this.layout) { - var $layour = this.layout.find('#filter-root-view'), - isPhone = Common.SharedSettings.get('phone'); - - return $layour.html(); - } - - return ''; - }, - - showPage: function(templateId, animate) { - var rootView = SSE.getController('FilterOptions').rootView(); - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html(), - animatePages: animate !== false - }); - - this.fireEvent('page:show', [this, templateId]); - } - }, - - textFilter: 'Filter Options', - textClearFilter: 'Clear Filter', - textDeleteFilter: 'Delete Filter' - - } - })(), SSE.Views.FilterOptions || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/Search.js b/apps/spreadsheeteditor/mobile/app/view/Search.js deleted file mode 100644 index 7059da57c..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/Search.js +++ /dev/null @@ -1,229 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Search.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/5/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/Search.template', - 'jquery', - 'underscore', - 'backbone' -], function (searchTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.Search = Backbone.View.extend(_.extend((function() { - // private - var _isEdit = false, - _layout; - - return { - el: '.view-main', - - // Compile our stats template - template: _.template(searchTemplate), - - // Delegated events for creating new items, and clearing completed ones. - events: {}, - - // Set innerHTML and get the references to the DOM elements - initialize: function () { - this.on('searchbar:show', _.bind(this.initEvents, this)); - }, - - initEvents: function() { - $('#search-settings').single('click', _.bind(this.showSettings, this)); - }, - - // Render layout - render: function () { - _layout = $('
                  ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - isEdit : _isEdit, - scope : this - })); - - return this; - }, - - setMode: function (mode) { - _isEdit = mode.isEdit; - this.render(); - }, - - showSettings: function (e) { - var me = this; - - uiApp.closeModal(); - - if (Common.SharedSettings.get('phone')) { - me.picker = $$(uiApp.popup([ - ''].join('') - )) - } else { - me.picker = uiApp.popover([ - '
                  ', - '
                  ', - '
                  ', - '
                  ', - '', - '
                  ', - '
                  ', - '
                  '].join(''), - $$('#search-settings') - ); - - // Prevent hide overlay. Conflict popover and modals. - var $overlay = $('.modal-overlay'); - - $$(me.picker).on('opened', function () { - $overlay.on('removeClass', function () { - if (!$overlay.hasClass('modal-overlay-visible')) { - $overlay.addClass('modal-overlay-visible') - } - }); - }).on('close', function () { - $overlay.off('removeClass'); - $overlay.removeClass('modal-overlay-visible') - }); - } - - if (Common.SharedSettings.get('android')) { - $$('.view.search-settings-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed'); - $$('.view.search-settings-view .navbar').prependTo('.view.search-settings-view > .pages > .page'); - } - - me.fireEvent('searchbar:showsettings', me); - }, - - showSearch: function () { - var me = this, - searchBar = $$('.searchbar.document'); - - if (searchBar.length < 1) { - - $(_layout.find('#search-panel-view').html()).insertAfter($(me.el).find('.pages')); - if ($('.logo-navbar').length > 0) { - $('.searchbar.document').css('margin-top', '26px'); - } - //$(_layout.find('#search-panel-view').html()).insertAfter($(me.el).find('#cell-editing-box')); - - // $(me.el).find('.pages .page').prepend(_layout.find('#search-panel-view').html()); - - // Show replace mode if needed - var isReplace = Common.SharedSettings.get('search-is-replace'); - $('.searchbar.document').toggleClass('replace', !_.isUndefined(isReplace) && (isReplace === true)); - - me.fireEvent('searchbar:render', me); - me.fireEvent('searchbar:show', me); - - if(Common.SharedSettings.get('search-highlight-res') === undefined) { - Common.SharedSettings.set('search-highlight-res', true); - } - if (Common.SharedSettings.get('search-highlight-res')) { - this.fireEvent('search:highlight', [this, true]); - } - if(Common.SharedSettings.get('search-by') === undefined) { - Common.SharedSettings.set('search-by', 'rows'); - } - if(Common.SharedSettings.get('look-in') === undefined) { - Common.SharedSettings.set('look-in', 'formulas'); - } - - searchBar = $$('.searchbar.document'); - - if ($('.logo-navbar').length > 0) { - var top = Common.SharedSettings.get('android') ? '110px' : '98px'; - $('.navbar-through .page > .searchbar').css('top', top); - } - - uiApp.showNavbar(searchBar); - - if (!searchBar.hasClass('navbar-hidden')) { - $('.searchbar.search input').focus(); - } - - } - }, - - hideSearch: function () { - var me = this, - searchBar = $$('.searchbar.document'); - - if (searchBar.length > 0) { - // Animating - if (searchBar.hasClass('.navbar-hidding')) { - return; - } - - me.fireEvent('searchbar:hide', me); - searchBar.remove(); - uiApp.hideNavbar(searchBar); - } - - this.fireEvent('search:highlight', [this, false]); - }, - - textFind: 'Find', - textFindAndReplace: 'Find and Replace', - textDone: 'Done', - textSearch: 'Search', - textReplace: 'Replace', - textMatchCase: 'Match Case', - textMatchCell: 'Match Cell', - textSearchIn: 'Search In', - textWorkbook: 'Workbook', - textSheet: 'Sheet', - textHighlightRes: 'Highlight results', - textByColumns: 'By columns', - textByRows: 'By rows', - textSearchBy: 'Search', - textLookIn: 'Look In', - textFormulas: 'Formulas', - textValues: 'Values' - } - })(), SSE.Views.Search || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/Settings.js b/apps/spreadsheeteditor/mobile/app/view/Settings.js deleted file mode 100644 index 55cd4398f..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/Settings.js +++ /dev/null @@ -1,450 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * Settings.js - * - * Created by Maxim Kadushkin on 12/05/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/Settings.template', - 'jquery', - 'underscore', - 'backbone' -], function (settingsTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.Settings = Backbone.View.extend(_.extend((function() { - // private - var isEdit, - canEdit = false, - canDownload = false, - canAbout = true, - canHelp = true, - canPrint = false, - isShowMacros = true; - - return { - // el: '.view-main', - - template: _.template(settingsTemplate), - - events: { - // - }, - - initialize: function() { - Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this)); - - Common.Gateway.on('opendocument', _.bind(this.loadDocument, this)); - }, - - initEvents: function () { - var me = this; - - $('#settings-document-info').single('click', _.bind(me.showDocumentInfo, me)); - $('#settings-download').single('click', _.bind(me.showDownload, me)); - $('#settings-history').single('click', _.bind(me.showHistory, me)); - $('#settings-help').single('click', _.bind(me.showHelp, me)); - $('#settings-about').single('click', _.bind(me.showAbout, me)); - $('#settings-application').single('click', _.bind(me.showSetApp, me)); - $('#settings-spreadsheet').single('click', _.bind(me.showSetSpreadsheet, me)); - - Common.Utils.addScrollIfNeed('.view[data-page=settings-root-view] .pages', '.view[data-page=settings-root-view] .page'); - me.initControls(); - }, - - // Render layout - render: function() { - this.layout = $('
                  ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - , saveas: { - xlsx: Asc.c_oAscFileType.XLSX, - pdf: Asc.c_oAscFileType.PDF, - pdfa: Asc.c_oAscFileType.PDFA, - ods: Asc.c_oAscFileType.ODS, - csv: Asc.c_oAscFileType.CSV, - xltx: Asc.c_oAscFileType.XLTX, - ots: Asc.c_oAscFileType.OTS - }, - width : $(window).width(), - prodversion: '{{PRODUCT_VERSION}}', - publishername: '{{PUBLISHER_NAME}}', - publisheraddr: '{{PUBLISHER_ADDRESS}}', - publisherurl: '{{PUBLISHER_URL}}', - printed_url: ("{{PUBLISHER_URL}}").replace(/https?:\/{2}/, "").replace(/\/$/,""), - supportemail: '{{SUPPORT_EMAIL}}', - phonenum: '{{PUBLISHER_PHONE}}' - })); - - return this; - }, - - setMode: function (mode) { - if (mode.isDisconnected) { - canEdit = isEdit = false; - if (!mode.enableDownload) - canPrint = canDownload = false; - } else { - isEdit = mode.isEdit; - canEdit = !mode.isEdit && mode.canEdit && mode.canRequestEditRights; - canDownload = mode.canDownload || mode.canDownloadOrigin; - canPrint = mode.canPrint; - - if (mode.customization && mode.canBrandingExt) { - canAbout = (mode.customization.about!==false); - } - - if (mode.customization) { - canHelp = (mode.customization.help!==false); - isShowMacros = (mode.customization.macros!==false); - } - } - }, - - rootLayout: function () { - if (this.layout) { - var $layout = this.layout.find('#settings-root-view'), - isPhone = Common.SharedSettings.get('phone'); - - if (isEdit) { - $layout.find('#settings-search .item-title').text(this.textFindAndReplace) - } else { - $layout.find('#settings-spreadsheet').hide(); - } - if (!canDownload) $layout.find('#settings-download').hide(); - if (!canAbout) $layout.find('#settings-about').hide(); - if (!canHelp) $layout.find('#settings-help').hide(); - if (!canPrint) $layout.find('#settings-print').hide(); - if (!isShowMacros) $layour.find('#settings-macros').hide(); - - return $layout.html(); - } - - return ''; - }, - - initControls: function() { - // - }, - - showPage: function(templateId) { - var rootView = SSE.getController('Settings').rootView(); - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - this.fireEvent('page:show', [this, templateId]); - } - }, - - showMacros: function () { - this.showPage('#settings-macros-view'); - }, - - showSetApp: function() { - this.showPage('#settings-application-view'); - $('#language-formula').single('click', _.bind(this.showFormulaLanguage, this)); - $('#regional-settings').single('click', _.bind(this.showRegionalSettings, this)); - if (!isEdit) { - $('.page[data-page=settings-application-view] .page-content > :not(.display-view)').hide(); - } - if (isShowMacros) { - $('#settings-macros').single('click', _.bind(this.showMacros, this)); - } - }, - - showFormulaLanguage: function () { - this.showPage('#language-formula-view'); - }, - - showColorSchemes: function () { - this.showPage('#color-schemes-view'); - }, - - showRegionalSettings: function () { - this.showPage('#regional-settings-view'); - }, - - showSetSpreadsheet: function () { - this.showPage('#settings-spreadsheet-view'); - $('#color-schemes').single('click', _.bind(this.showColorSchemes, this)); - $('#settings-spreadsheet-format').single('click', _.bind(this.showPageSize, this)); - $('#margin-settings').single('click', _.bind(this.showMargins, this)); - }, - - showPageSize: function() { - this.showPage('#settings-page-size-view'); - }, - - showMargins: function() { - this.showPage('#margins-view'); - }, - - showDocumentInfo: function() { - this.showPage('#settings-info-view'); - }, - - showDownload: function () { - this.showPage('#settings-download-view'); - Common.Utils.addScrollIfNeed('.page[data-page=settings-download-view]', '.page[data-page=settings-download-view] .page-content'); - }, - - showHistory: function () { - this.showPage('#settings-history-view'); - }, - - showHelp: function () { - this.fireEvent('settings:showhelp'); - }, - - showAbout: function () { - this.showPage('#settings-about-view'); - Common.Utils.addScrollIfNeed('.page[data-page=settings-about-view]', '.page[data-page=settings-about-view] .page-content'); - }, - - loadDocument: function(data) { - var permissions = {}; - - if (data.doc) { - permissions = _.extend(permissions, data.doc.permissions); - - if (permissions.edit === false) { - } - } - }, - - renderPageSizes: function(sizes, selectIndex) { - var $pageFormats = $('.page[data-page=settings-page-size-view]'), - $list = $pageFormats.find('ul'), - items = []; - - _.each(sizes, function (size, index) { - items.push(_.template([ - '
                • ', - '', - '
                • ' - ].join(''))({ - android: Framework7.prototype.device.android, - item: size, - index: index, - selectIndex: selectIndex - })); - }); - - $list.html(items.join('')); - }, - - renderFormLang: function(indexLang, languages) { - var $pageLang = $('.page[data-page=language-formula-view]'), - $list = $pageLang.find('ul'), - items = [], - textEx = this.textExample; - - _.each(languages, function (lang, index) { - items.push(_.template([ - '
                • ', - '', - '
                • ' - ].join(''))({ - android: Framework7.prototype.device.android, - item: lang, - index: index, - selectIndex: indexLang, - textExamp: textEx - })); - }); - - $list.html(items.join('')); - }, - - renderRegSettings: function(regCode, regions) { - var $pageLang = $('.page[data-page=regional-settings-view]'), - $list = $pageLang.find('ul'), - items = []; - - _.each(regions, function (reg) { - var itemTemplate = [ - '
                • ', - '', - '
                • ' - ].join(''); - items.push(_.template(itemTemplate)({ - android: Framework7.prototype.device.android, - item: reg, - selectReg: regCode, - })); - }); - - $list.html(items); - - }, - - renderSchemaSettings: function(currentSchema, arrSchemas) { - if (arrSchemas) { - var templateInsert = ""; - _.each(arrSchemas, function (schema, index) { - var colors = schema.get_colors(),//schema.colors; - name = schema.get_name(); - templateInsert += '
                • '; - }, this); - $('#color-schemes-content ul').html(templateInsert); - } - }, - - - unknownText: 'Unknown', - textFindAndReplace: 'Find and Replace', - textSettings: 'Settings', - textDone: 'Done', - textFind: 'Find', - textEditDoc: 'Edit Document', - textDownload: 'Download', - textDocInfo: 'Document Info', - textHelp: 'Help', - textAbout: 'About', - textBack: 'Back', - textDocTitle: 'Document title', - textLoading: 'Loading...', - textAuthor: 'Author', - textCreateDate: 'Create date', - textDownloadAs: 'Download As...', - textVersion: 'Version', - textAddress: 'address', - textEmail: 'email', - textTel: 'tel', - textPoweredBy: 'Powered by', - textPrint: 'Print', - textApplicationSettings: 'Application Settings', - textUnitOfMeasurement: 'Unit of Measurement', - textCentimeter: 'Centimeter', - textPoint: 'Point', - textInch: 'Inch', - textSpreadsheetSettings: 'Spreadsheet Settings', - textColorSchemes: 'Color Schemes', - textHideHeadings: 'Hide Headings', - textHideGridlines: 'Hide Gridlines', - textOrientation: 'Orientation', - textPortrait: 'Portrait', - textLandscape: 'Landscape', - textFormat: 'Format', - textSpreadsheetFormats: 'Spreadsheet Formats', - textCustom: 'Custom', - textCustomSize: 'Custom Size', - textMargins: 'Margins', - textTop: 'Top', - textLeft: 'Left', - textBottom: 'Bottom', - textRight: 'Right', - textCollaboration: 'Collaboration', - textFormulaLanguage: 'Formula Language', - textExample: 'Example', - textR1C1Style: 'R1C1 Reference Style', - textRegionalSettings: 'Regional Settings', - textCommentingDisplay: 'Commenting Display', - textDisplayComments: 'Comments', - textDisplayResolvedComments: 'Resolved Comments', - textSubject: 'Subject', - textTitle: 'Title', - textComment: 'Comment', - textOwner: 'Owner', - textApplication : 'Application', - textCreated: 'Created', - textLastModified: 'Last Modified', - textLastModifiedBy: 'Last Modified By', - textUploaded: 'Uploaded', - textLocation: 'Location', - textMacrosSettings: 'Macros Settings', - textDisableAll: 'Disable All', - textDisableAllMacrosWithoutNotification: 'Disable all macros without notification', - textShowNotification: 'Show Notification', - textDisableAllMacrosWithNotification: 'Disable all macros with notification', - textEnableAll: 'Enable All', - textEnableAllMacrosWithoutNotification: 'Enable all macros without notification' - } - })(), SSE.Views.Settings || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/Statusbar.js b/apps/spreadsheeteditor/mobile/app/view/Statusbar.js deleted file mode 100644 index 933bdde4c..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/Statusbar.js +++ /dev/null @@ -1,328 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * -*/ -/** - * StatusBar View - * - * Created by Maxim Kadushkin on 11/28/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'core', - 'underscore' - , 'common/mobile/utils/utils' -], - function(core){ - 'use strict'; - - SSE.Views.Statusbar = Backbone.View.extend((function(){ - function tabVisible(t) { - var leftbound = arguments[1] || this.$boxTabs.offset().left, - rightbound = arguments[2] || (leftbound + this.$boxTabs.width()), - tab; - - if ( typeof t == 'number' ) { - if ( !(t < 0) && t < this.$boxTabs.children().length ) { - tab = this.$boxTabs.children().eq(t); - } - } else { - tab = t.get('el'); - } - - if ( tab ) { - var rect = tab.get(0).getBoundingClientRect(); - return !(rect.left < leftbound) && !(rect.right > rightbound); - } - - return false; - } - - function setTabVisible(tab) { - var _sheets = SSE.getCollection('Sheets'); - - if ( typeof tab == 'object' ) { - if ( tab == _sheets.first() ) tab = 'first'; else - if ( tab == _sheets.last() ) tab = 'last'; - } else - if ( typeof tab == 'number' ) { - if ( !(tab > 0) ) tab = 'first'; else - if ( !(tab + 1 < _sheets.size()) ) tab = 'last'; - else tab = _sheets.at(tab); - } - - if (tab <= 0 || tab == 'first') { - this.$boxTabs.scrollLeft(0); - } else - if ( tab == 'last' || tab >= (_sheets.size() - 1) ) { - this.$boxTabs.scrollLeft(10000); - } else { - var $el = tab.get('el'); - if ( $el ) { - var rightbound = this.$boxTabs.width(); - var left = $el.position().left, - right = left + parseInt($el.css('width')); - - if (left < 0) { - this.$boxTabs.scrollLeft(/*this.$boxTabs.scrollLeft() + */left - 26); - } else if (right > rightbound) { - this.$boxTabs.scrollLeft(/*this.$boxTabs.scrollLeft() + */(right - rightbound) + 20); - } - } - } - } - - function hasInvisible() { - var _sheets = SSE.getCollection('Sheets'); - - var _left_bound_ = this.$boxTabs.offset().left, - _right_bound_ = _left_bound_ + this.$boxTabs.width(); - - var tab = _sheets.first().get('el'); - var rect = tab.get(0).getBoundingClientRect(); - - if ( !(rect.left < _left_bound_) ) { - tab = _sheets.last().get('el'); - rect = tab.get(0).getBoundingClientRect(); - - if ( !(rect.right > _right_bound_) ) - return false; - } - - return true; - } - - var touch = {}; - function onTouchStart(e) { - if ( hasInvisible.call(this) ) - { - var touches = e.originalEvent.changedTouches; - touch.startx = touches[0].clientX; - touch.scrollx = this.$boxTabs.scrollLeft(); - - touch.timer = setTimeout(function () { - // touch.longtouch = true; - }, 500); - e.preventDefault(); - } - } - - function onTouchMove(e) { - if ( touch.startx !== undefined ) { - var touches = e.originalEvent.changedTouches; - - if ( touch.longtouch ) {} - else { - if ( touch.timer ) clearTimeout(touch.timer), delete touch.timer; - this.$boxTabs.scrollLeft(touch.scrollx + (touch.startx - touches[0].clientX)); - } - - e.preventDefault(); - } - } - - function onTouchEnd(e) { - if ( touch.startx !== undefined ) { - touch.longtouch = false; - delete touch.startx; - e.preventDefault(); - } - } - - return { - el: '.pages > .page', - template: '
                  ' + - '
                  ' + - '' + - '
                  ' + - '
                  ' + - '
                    ' + - '
                    ' + - '
                    ', - tabtemplate: _.template('
                  • "><%= label %>
                  • '), - menutemplate: _.template( - '<% _.each(menuItems, function(item) { %>' + - '
                  • ">' + - '<%= item.caption %>' + - '
                  • ' + - '<% }); %>'), - - events: {}, - api: undefined, - - initialize: function (options) { - _.extend(this, options); - }, - - render: function () { - var me = this; - me.$el = $(me.template).appendTo($(me.el)); - - me.$boxTabs = me.$el.find('.box-tabs > ul'); - me.$btnAddTab = me.$el.find('#box-addtab > .button'); - me.$btnAddTab.single('click', _.buffered(function(e) { - me.fireEvent('sheet:addnew'); - }, 300)); - - me.$boxTabs.on({ - 'touchstart': onTouchStart.bind(this), - 'touchmove': onTouchMove.bind(this), - 'touchend': onTouchEnd - }); - - // me.editMode = false; - return me; - }, - - setMode: function(mode) { - if ('disconnect' == mode) { - this.$btnAddTab.toggleClass('disabled', true); - } else if (mode.isEdit) { - this.$btnAddTab.show(); - } - }, - - setVisible: function(visible) { - visible ? this.show(): this.hide(); - }, - - addSheet: function(model) { - var index = this.$boxTabs.children().length; - var $item = $(this.tabtemplate({ - label: model.get('name'), - locked: model.get('locked') - })).appendTo(this.$boxTabs); - - $item.on('click', this.onSheetClick.bind(this, index, model)); - model.get('active') && $item.addClass('active'); - model.set('el', $item, {silent:true}); - - return $item; - }, - - addSheets: function (collection) { - var active; - collection.each(function(model) { - this.addSheet(model); - - if ( model.get('active') ) - active = model; - }, this); - - if ( active && !tabVisible.call(this, active) ) - setTabVisible.call(this, active); - }, - - clearTabs: function () { - this.$boxTabs.children().off('click'); - this.$boxTabs.empty(); - }, - - setActiveTab: function (index) { - this.$boxTabs.children().removeClass('active') - .eq(index).addClass('active'); - - if ( !tabVisible.call(this, index) ) - setTabVisible.call(this, index); - }, - - onSheetClick: function (index, model, e) { - this.fireEvent('sheet:click', [index, model]); - return false; - }, - - // onSheetChanged: function(o, index, tab) { - // this.api.asc_showWorksheet(tab.sheetindex); - // - // if (this.hasTabInvisible && !this.tabbar.isTabVisible(index)) { - // this.tabbar.setTabVisible(index); - // } - // - // this.fireEvent('sheet:changed', [this, tab.sheetindex]); - // this.fireEvent('sheet:updateColors', [true]); - // - // Common.NotificationCenter.trigger('comments:updatefilter', - // { - // property: 'uid', - // value: new RegExp('^(doc_|sheet' + this.api.asc_getActiveWorksheetId() + '_)') - // }, - // false // hide popover - // ); - // }, - - changeViewMode: function (edit) { - if (edit) { - this.tabBarBox.css('left', '152px'); - } else { - this.tabBarBox.css('left', ''); - } - - this.tabbar.options.draggable = edit; - this.editMode = edit; - }, - - showTabContextMenu: function (items, model) { - uiApp.closeModal('.document-menu.modal-in'); - - var popoverHTML = - '
                    '+ - '
                    '+ - '
                    '+ - '
                      '+ - this.menutemplate({menuItems: items}) + - '
                    '+ - '
                    '+ - '
                    '+ - '
                    '; - - var $target = model.get('el'); - var popover = uiApp.popover(popoverHTML, $target); - - if (Common.SharedSettings.get('android')) { - Common.Utils.androidMenuTop($(popover), $target); - } - - $('.modal-overlay').removeClass('modal-overlay-visible'); - $('.document-menu li').single('click', _.buffered(function(e) { - uiApp.closeModal('.document-menu.modal-in'); - - var $target = $(e.currentTarget), - eventName = $target.data('event'); - - this.fireEvent('contextmenu:click', [this, eventName, model]); - }, 100, this)); - } - } - })()) - } -); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/Toolbar.js b/apps/spreadsheeteditor/mobile/app/view/Toolbar.js deleted file mode 100644 index 0eb8ba308..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/Toolbar.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * Spreadsheet Editor - * - * Created by Maxim Kadushkin on 11/15/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/Toolbar.template', - 'jquery', - 'underscore', - 'backbone' -], function (toolbarTemplate, $, _, Backbone) { - 'use strict'; - - SSE.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", - "click #toolbar-edit-document": "editDocument", - "click #toolbar-collaboration" : "showCollaboration" - }, - - // Set innerHTML and get the references to the DOM elements - initialize: function() { - var me = this; - }, - - // Render layout - render: function() { - var me = this, - $el = $(me.el); - - $el.prepend(me.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - backTitle : Common.SharedSettings.get('android') ? '' : me.textBack, - width : $(window).width() - })); - - $('.view-main .navbar').on('addClass removeClass', _.bind(me.onDisplayMainNavbar, me)); - $('#toolbar-edit, #toolbar-add, #toolbar-settings, #toolbar-search, #document-back, #toolbar-edit-document').addClass('disabled'); - - this.$btnEdit = $el.find('#toolbar-edit'); - this.$btnAdd = $el.find('#toolbar-add'); - - return me; - }, - - setMode: function (mode) { - if (mode.isEdit) { - $('#toolbar-edit, #toolbar-add, #toolbar-undo, #toolbar-redo').show(); - } else if (mode.canEdit && mode.canRequestEditRights){ - $('#toolbar-edit-document').show(); - } - }, - - onDisplayMainNavbar: function (e) { - var $target = $(e.currentTarget), - navbarHidden = $target.hasClass('navbar-hidden'), - pickerHeight = $('.picker-modal').height() || 260; - - $('#editor_sdk').css({ - top : navbarHidden ? 0 : '', - bottom : navbarHidden ? pickerHeight : '' - }); - }, - - // Search - searchToggle: function() { - if ($$('.searchbar.document').length > 0) { - this.hideSearch(); - } else { - this.showSearch(); - } - }, - - showSearch: function () { - SSE.getController('Search').showSearch(); - }, - - hideSearch: function () { - SSE.getController('Search').hideSearch(); - }, - - // Editor - showEdition: function () { - SSE.getController('EditContainer').showModal(); - }, - - // Inserts - - showInserts: function () { - SSE.getController('AddContainer').showModal(); - }, - - // Settings - showSettings: function () { - SSE.getController('Settings').showModal(); - }, - - disableControl: function (opts, val) { - if (!(opts.indexOf('add') < 0)) - this.$btnAdd.toggleClass('disabled', val); - - if (!(opts.indexOf('edit') < 0)) - this.$btnEdit.toggleClass('disabled', val); - }, - - editDocument: function () { - Common.Gateway.requestEditRights(); - }, - - //Collaboration - showCollaboration: function () { - SSE.getController('Common.Controllers.Collaboration').showModal(); - }, - - textBack: 'Back' - } - })(), SSE.Views.Toolbar || {})) -}); diff --git a/apps/spreadsheeteditor/mobile/app/view/add/AddChart.js b/apps/spreadsheeteditor/mobile/app/view/add/AddChart.js deleted file mode 100644 index 792effe51..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/add/AddChart.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddChart.js - * - * Created by Maxim Kadushkin on 12/13/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/AddChart.template', - 'backbone' -], function (addTemplate, Backbone) { - 'use strict'; - - SSE.Views.AddChart = Backbone.View.extend(_.extend((function() { - // private - - var _types = [ - { type: Asc.c_oAscChartTypeSettings.barNormal, thumb: 'bar-normal'}, - { type: Asc.c_oAscChartTypeSettings.barStacked, thumb: 'bar-stacked'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer, thumb: 'bar-pstacked'}, - { type: Asc.c_oAscChartTypeSettings.lineNormal, thumb: 'line-normal'}, - { type: Asc.c_oAscChartTypeSettings.lineStacked, thumb: 'line-stacked'}, - { type: Asc.c_oAscChartTypeSettings.lineStackedPer, thumb: 'line-pstacked'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal, thumb: 'hbar-normal'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked, thumb: 'hbar-stacked'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer, thumb: 'hbar-pstacked'}, - { type: Asc.c_oAscChartTypeSettings.areaNormal, thumb: 'area-normal'}, - { type: Asc.c_oAscChartTypeSettings.areaStacked, thumb: 'area-stacked'}, - { type: Asc.c_oAscChartTypeSettings.areaStackedPer, thumb: 'area-pstacked'}, - { type: Asc.c_oAscChartTypeSettings.pie, thumb: 'pie'}, - { type: Asc.c_oAscChartTypeSettings.doughnut, thumb: 'doughnut'}, - { type: Asc.c_oAscChartTypeSettings.pie3d, thumb: 'pie3d'}, - { type: Asc.c_oAscChartTypeSettings.scatter, thumb: 'scatter'}, - { type: Asc.c_oAscChartTypeSettings.stock, thumb: 'stock'}, - { type: Asc.c_oAscChartTypeSettings.line3d, thumb: 'line3d'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3d, thumb: 'bar3dnormal'}, - { type: Asc.c_oAscChartTypeSettings.barStacked3d, thumb: 'bar3dstack'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer3d, thumb: 'bar3dpstack'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal3d, thumb: 'hbar3dnormal'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked3d, thumb: 'hbar3dstack'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer3d, thumb: 'hbar3dpstack'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3dPerspective, thumb: 'bar3dpsnormal'} - ]; - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('.chart-types .thumb').single('click', this.onTypeClick.bind(this)); - - Common.Utils.addScrollIfNeed('#add-chart .pages', '#add-chart .page'); - me.initControls(); - }, - - // Render layout - render: function () { - var elementsInRow = 3; - var groupsOfTypes = _.chain(_types).groupBy(function(element, index){ - return Math.floor(index/elementsInRow); - }).toArray().value(); - - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - types : groupsOfTypes - })); - - var $chartStyles = $('.container-add .chart-styles'); - if ( $chartStyles ) { - $chartStyles.replaceWith(this.layout.find('#add-chart-root').html()); - } - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout.html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - onTypeClick: function (e) { - this.fireEvent('chart:insert', [$(e.target.parentElement).data('type')]); - } - } - })(), SSE.Views.AddChart || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/add/AddFunction.js b/apps/spreadsheeteditor/mobile/app/view/add/AddFunction.js deleted file mode 100644 index 62d7c8e7b..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/add/AddFunction.js +++ /dev/null @@ -1,206 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddFunction.js - * - * Created by Maxim Kadushkin on 12/14/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/AddFunction.template', - 'backbone' -], function (addTemplate, Backbone) { - 'use strict'; - - SSE.Views.AddFunction = Backbone.View.extend(_.extend((function() { - var _openView = function (viewid, args) { - var rootView = SSE.getController('AddContainer').rootView; - if ( rootView ) { - var _params = { - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - view : viewid, - scope : this - }; - - _.extend(_params, args); - var $content = $('
                    ').append(_.template(this.template)(_params)); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - } - }; - - return { - // el: '.view-main', - - template: addTemplate, - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - $('.settings').single('click', '.function .icon-info', this.onFunctionInfoClick.bind(this)) - .on('click', '.function > a', this.onFunctionClick.bind(this)); - $('.groups a.group').single('click', this.onGroupClick.bind(this)); - - Common.Utils.addScrollIfNeed('#add-formula .pages', '#add-formula .page'); - me.initControls(); - }, - - // Render layout - render: function () { - var me = this; - - var quickFunctions = [ - {caption: 'SUM', type: 'SUM'}, - {caption: 'MIN', type: 'MIN'}, - {caption: 'MAX', type: 'MAX'}, - {caption: 'COUNT', type: 'COUNT'} - ]; - - if (me.functions) { - _.each(quickFunctions, function (quickFunction) { - quickFunction.caption = me.functions[quickFunction.type].caption - }); - } - var lang = me.lang; - - var name = '', - descriptions = ['DateAndTime', 'Engineering', 'Financial', 'Information', 'Logical', 'LookupAndReference', 'Mathematic', 'Statistical', 'TextAndData' ]; - me.groups = []; - for (var i=0; i').append(_.template(me.template)({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - textGroups : me.textGroups, - quick : quickFunctions, - groups : me.groups, - view : 'root' - })); - - return this; - }, - - setFunctions: function (arr, lang) { - this.functions = arr; - this.lang = lang; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout.find('#add-function-root').html(); - } - - return ''; - }, - - layoutPage: function () { - return this.layout ? this.layout.find('#add-function-root').html() : ''; - }, - - layoutPanel: function() { - return this.layout ? this.layout.find('#add-function-root .page-content').html() : ''; - }, - - initControls: function () { - // - }, - - onFunctionClick: function (e) { - // if ( !/info/.test(e.target.className) ) - this.fireEvent('function:insert', [$(e.currentTarget).data('func')]); - }, - - onFunctionInfoClick: function(e) { - e.stopPropagation(); - - var type = $(e.target).parents('.item-link').data('func'); - this.fireEvent('function:info', [type]); - }, - - onGroupClick: function (e) { - var group = $(e.target).parents('.group').data('type'); - var items = []; - for (var k in this.functions) { - if (this.functions[k].group == group) - items.push(this.functions[k]); - } - - _openView.call(this, 'group', { - groupname : this.groups[group], - functions : items - }); - Common.Utils.addScrollIfNeed('.view.add-root-view .page-on-center', '.view.add-root-view .page-on-center .page-content'); - }, - - openFunctionInfo: function (type) { - _openView.call(this, 'info', this.functions[type]); - Common.Utils.addScrollIfNeed('.view.add-root-view .page-on-center', '.view.add-root-view .page-on-center .page-content'); - }, - - textGroups: 'CATEGORIES', - textBack: 'Back', - sCatLogical: 'Logical', - // sCatCube: 'Cube', - // sCatDatabase: 'Database', - sCatDateAndTime: 'Date and time', - sCatEngineering: 'Engineering', - sCatFinancial: 'Financial', - sCatInformation: 'Information', - sCatLookupAndReference: 'Lookup and Reference', - sCatMathematic: 'Math and trigonometry', - sCatStatistical: 'Statistical', - sCatTextAndData: 'Text and data' - } - })(), SSE.Views.AddFunction || {})); -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/add/AddLink.js b/apps/spreadsheeteditor/mobile/app/view/add/AddLink.js deleted file mode 100644 index ce1a36f7c..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/add/AddLink.js +++ /dev/null @@ -1,267 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddLink.js - * - * Created by Maxim.Kadushkin on 1/10/2017 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/AddLink.template', - 'backbone' -], function (addTemplate, Backbone) { - 'use strict'; - - SSE.Views.AddLink = Backbone.View.extend(_.extend((function() { - // private - - var cfgLink = { - type : 'ext', - internal : {} - }; - - var clickInsertLink = function (e) { - var $view = $('.settings'); - var type = cfgLink.type; - var $text = $view.find('#add-link-display input'); - - this.fireEvent('link:insert', [{ - type : type, - sheet : type == 'ext' ? undefined : cfgLink.internal.sheet.caption, - url : $view.find(type == 'ext' ? '#add-link-url input' : '#add-link-range input').val(), - text : $text.is(':disabled') ? null : $text.val(), - tooltip : $view.find('#add-link-tip input').val() - }]); - }; - - function initEvents() { - var me = this; - var $view = $('.settings'); - $('.page[data-page=add-link]').find('input[type=url], input.range') - .single('input', function(e) { - $view.find('#add-link-insert').toggleClass('disabled', _.isEmpty($(e.target).val())); - }); - - _.delay(function () { - $view.find('.page[data-page=addother-link] input[type=url]').focus(); - }, 1000); - - $view.find('#add-link-insert').single('click', _.buffered(clickInsertLink, 100, this)); - $view.find('#add-link-type select').single('change', function (e) { - me.fireEvent('link:changetype', [me, $(e.currentTarget).val()]); - }); - $view.find('#add-link-sheet select').single('change', function (e) { - var index = $(e.currentTarget).val(), - caption = $(e.currentTarget[e.currentTarget.selectedIndex]).text(); - cfgLink.internal = { sheet: {index: index, caption: caption}}; - // me.fireEvent('link:changesheet', [me, $(e.currentTarget).val()]); - }).val(cfgLink.internal.sheet.index); - - Common.Utils.addScrollIfNeed('.page[data-page=add-link]', '.page[data-page=add-link] .page-content'); - } - - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: {}, - - initialize: function () { - // Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - return this.layout ? - this.layout.find('#addlink-root-view').html() : ''; - }, - - initControls: function () { - // - }, - - showPage: function (root, navbar) { - if (root && this.layout) { - var $content = this.layout; - - if ( !$content.find('.navbar').length ) { - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append(navbar); - } else { - $content.prepend(navbar); - } - } - - root.router.load({ - content: $content.html() - }); - - initEvents.call(this); - } - }, - - showPanel: function () { - initEvents.call(this); - }, - - optionLinkType: function (type, opts) { - cfgLink.type = type; - - var $view = $('.settings'); - - if ( !(opts == 'caption') ) { - $view.find('#add-link-type select').val(type); - $view.find('#add-link-type .item-after').html( - type == 'int' ? this.textInternalLink : this.textExternalLink ); - } - - var $btnInsertLink = $view.find('#add-link-insert'); - if ( type == 'int' ) { - $view.find('#add-link-url').hide(); - - $view.find('#add-link-sheet').show() - .find('.item-after').html(cfgLink.internal.sheet.caption); - - $view.find('#add-link-range').show(); - $btnInsertLink.toggleClass('disabled', _.isEmpty($view.find('#add-link-range input').val())); - } else { - $view.find('#add-link-url').show(); - $view.find('#add-link-sheet').hide(); - $view.find('#add-link-range').hide(); - - $btnInsertLink.toggleClass('disabled', _.isEmpty($view.find('#add-link-url input').val())); - } - }, - - optionAllowInternal: function(allow) { - var $view = $('.settings'); - - if ( allow ) - $view.find('#add-link-type').show(); - else { - this.optionLinkType('ext'); - $view.find('#add-link-type').hide(); - } - }, - - optionDisplayText: function (text) { - var $view = $('.settings'); - var disabled = text == 'locked'; - - disabled && (text = this.textSelectedRange); - $view.find('#add-link-display input').prop('disabled', disabled).val(text); - $view.find('#add-link-display .label').toggleClass('disabled', disabled); - }, - - acceptWorksheets: function (sheets) { - this.worksheets = sheets; - - var tpl = '<% _.each(worksheets, function(item){ %>' + - '' + - '<% }) %>'; - - this.layout.find('#add-link-sheet select').html( - _.template(tpl)({ - worksheets: sheets - }) - ); - - var $view = $('.settings'); - - if ($view.length > 0) { - $view.find('#add-link-sheet select').html( - _.template(tpl)({ - worksheets: sheets - }) - ); - } - - var active = _.findWhere(sheets, {active:true}); - if ( active ) - this.setActiveWorksheet(active.value, active.caption); - return this; - }, - - setActiveWorksheet: function (index, caption) { - cfgLink.internal = { sheet: {index: index, caption: caption}}; - - var $view = $('.settings'); - // $view.find('#add-link-sheet .item-after').html(this.link.internal.sheet.caption); - $view.find('#add-link-sheet select').val(index); - $view.find('#add-link-sheet .item-after').text(caption); - - return this; - }, - - getTitle: function () { - return this.textAddLink; - }, - - textLink: 'Link', - textAddLink: 'Add Link', - textDisplay: 'Display', - textTip: 'Screen Tip', - textInsert: 'Insert', - textAddress: 'Address', - textLinkType: 'Link Type', - textExternalLink: 'External Link', - textInternalLink: 'Internal Data Range', - textSheet: 'Sheet', - textRange: 'Range', - textRequired: 'Required', - textSelectedRange: 'Selected Range' - } - })(), SSE.Views.AddLink || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/add/AddOther.js b/apps/spreadsheeteditor/mobile/app/view/add/AddOther.js deleted file mode 100644 index eea9b79b5..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/add/AddOther.js +++ /dev/null @@ -1,320 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddOther.js - * - * Created by Kadushkin Maxim on 12/07/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/AddOther.template', - 'backbone' -], function (addTemplate, Backbone) { - 'use strict'; - - SSE.Views.AddOther = Backbone.View.extend(_.extend((function() { - // private - - var tplNavigation = ''; - - var mapNavigation = {}; - - var tplNavigationComment = ''; - - var getNavigation = function (panelid) { - var el = mapNavigation[panelid]; - if ( !el ) { - var _title; - switch ( panelid ) { - case '#addlink': - _title = SSE.getController('AddLink').getView('AddLink').getTitle(); - break; - case '#addother-insimage': _title = this.textInsertImage; break; - case '#addother-sort': _title = this.textSort; break; - case '#addother-imagefromurl': _title = this.textLinkSettings; break; - case '#addother-insert-comment': _title = this.textAddComment; break; - } - - if (panelid === '#addother-insert-comment') { - el = _.template(tplNavigationComment)({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - textBack : this.textBack, - textDone : this.textDone, - title : _title - } - ); - } else { - mapNavigation = - el = _.template(tplNavigation)({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - textBack : this.textBack, - title : _title - } - ); - } - } - - return el; - }; - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: {}, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - }, - - initEvents: function () { - var me = this; - - var $page = $('#add-other'); - $page.find('#add-other-insimage').single('click', _.bind(me.showInsertImage, me)); - $page.find('#add-other-link').single('click', _.bind(me.showInsertLink, me)); - $page.find('#add-other-sort').single('click', _.bind(me.showSortPage, me)); - if (me.hideInsertComments || me.isComments) { - $('#item-comment').hide(); - } else { - $('#item-comment').show(); - $('#add-other-comment').single('click', _.bind(me.showPageComment, me)); - } - - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - if (!this.canViewComments) { - this.layout.find('#addother-root-view #item-comment').remove(); - } - return this.layout - .find('#addother-root-view') - .html(); - } - - return ''; - }, - - childLayout: function (name) { - if (this.layout) { - if ( name == 'image' ) - return this.layout.find('#addother-insimage .page-content').html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, animate) { - var rootView = SSE.getController('AddContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - var navbar = getNavigation.call(this, templateId); - - if ( !$content.find('.navbar').length ) { - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append(navbar); - } else { - $content.prepend(navbar); - } - } - - rootView.router.load({ - content: $content.html(), - animatePages: animate !== false - }); - - this.fireEvent('page:show', [this, templateId]); - } - }, - - showPageComment: function(animate) { - this.showPage('#addother-insert-comment', animate); - }, - - renderComment: function(comment) { - var me = this; - _.delay(function () { - var $commentInfo = $('#comment-info'); - var template = [ - '<% if (android) { %>
                    <%= comment.userInitials %>
                    <% } %>', - '
                    <%= scope.getUserName(comment.username) %>
                    ', - '
                    <%= comment.date %>
                    ', - '<% if (android) { %>
                    <% } %>', - '
                    ' - ].join(''); - var insert = _.template(template)({ - android: Framework7.prototype.device.android, - comment: comment, - textAddComment: me.textAddComment, - scope: me - }); - $commentInfo.html(insert); - _.defer(function () { - var $textarea = $('.comment-textarea')[0]; - var $btnAddComment = $('#done-comment'); - $btnAddComment.addClass('disabled'); - $textarea.focus(); - $textarea.oninput = function () { - if ($textarea.value.length < 1) { - if (!$btnAddComment.hasClass('disabled')) - $btnAddComment.addClass('disabled'); - } else { - if ($btnAddComment.hasClass('disabled')) { - $btnAddComment.removeClass('disabled'); - } - } - }; - }); - }, 100); - }, - - getUserName: function (username) { - return Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(username)); - }, - - showInsertImage: function () { - this.showPage('#addother-insimage'); - - $('#addimage-url').single('click', this.showImageFromUrl.bind(this)); - $('#addimage-file').single('click', function () { - this.fireEvent('image:insert',[{islocal:true}]); - }.bind(this)); - }, - - showInsertLink: function () { - SSE.getController('AddLink').showPage(getNavigation.call(this, '#addlink')); - }, - - showSortPage: function (e) { - this.showPage('#addother-sort'); - - var me = this; - $('.settings .sortdown').single('click', function (e) {me.fireEvent('insert:sort',['down']);}); - $('.settings .sortup').single('click', function (e) {me.fireEvent('insert:sort',['up']);}); - - $('.settings #other-chb-insfilter input:checkbox').single('change', function (e) { - var $checkbox = $(e.currentTarget); - me.fireEvent('insert:filter', [$checkbox.is(':checked')]); - }); - }, - - showImageFromUrl: function () { - this.showPage('#addother-imagefromurl'); - - var me = this; - var $input = $('#addimage-link-url input[type=url]'); - - $('#addimage-insert a').single('click', _.buffered(function () { - var value = ($input.val()).replace(/ /g, ''); - me.fireEvent('image:insert', [{islocal:false, url:value}]); - }, 100, me)); - - var $btnInsert = $('#addimage-insert'); - $('#addimage-fromurl input[type=url]').single('input', function (e) { - $btnInsert.toggleClass('disabled', _.isEmpty($(e.currentTarget).val())); - }); - - _.delay(function () { $input.focus(); }, 1000); - }, - - optionAutofilter: function (checked) { - $('.settings #other-chb-insfilter input:checkbox').prop('checked', checked); - }, - - textInsertImage: 'Insert Image', - textSort: 'Sort and Filter', - textLink: 'Link', - textBack: 'Back', - textInsert: 'Insert', - textFromLibrary: 'Picture from Library', - textFromURL: 'Picture from URL', - textAddress: 'Address', - textImageURL: 'Image URL', - textFilter: 'Filter', - textLinkSettings: 'Link Settings', - textComment: 'Comment', - textAddComment: 'Add Comment', - textDone: 'Done' - } - })(), SSE.Views.AddOther || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/add/AddShape.js b/apps/spreadsheeteditor/mobile/app/view/add/AddShape.js deleted file mode 100644 index eb35bd057..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/add/AddShape.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * AddShape.js - * - * Created by Maxim Kadushkin on 12/07/2016 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -define([ - 'text!spreadsheeteditor/mobile/app/template/AddShape.template', - 'backbone' -], function (addTemplate, Backbone) { - 'use strict'; - - SSE.Views.AddShape = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(addTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('shapes:load', _.bind(this.render, this)); - }, - - initEvents: function () { - Common.Utils.addScrollIfNeed('#add-shape .pages', '#add-shape .page'); - this.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - imgpath : '../../common/mobile/resources/img/shapes', - shapes : Common.SharedSettings.get('shapes') - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#add-shapes-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - } - } - })(), SSE.Views.AddShape || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/edit/EditCell.js b/apps/spreadsheeteditor/mobile/app/view/edit/EditCell.js deleted file mode 100644 index 27b035370..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/edit/EditCell.js +++ /dev/null @@ -1,437 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditCell.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/6/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/EditCell.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.EditCell = Backbone.View.extend(_.extend((function() { - // private - var _fontsList, - _editCellController; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - _editCellController = SSE.getController('EditCell'); - - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - this.on('page:show', _.bind(this.updateItemHandlers, this)); - }, - - initEvents: function () { - var me = this; - - me.updateItemHandlers(); - - $('#font-fonts').single('click', _.bind(me.showFonts, me)); - $('#text-color').single('click', _.bind(me.showTextColor, me)); - $('#fill-color').single('click', _.bind(me.showFillColor, me)); - - Common.Utils.addScrollIfNeed('#edit-cell .pages', '#edit-cell .page'); - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-cell-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - renderStyles: function (cellStyles) { - var $styleContainer = $('#edit-cell .cell-styles'); - - if ($styleContainer.length > 0) { - var styleSize = _editCellController.getStyleSize(), - columns = parseInt($styleContainer.width() / (styleSize.width + 5)), - row = -1, - styles = []; - - _.each(cellStyles, function (style, index) { - if (0 == index % columns) { - styles.push([]); - row++ - } - styles[row].push(style); - }); - - var template = _.template([ - '<% _.each(styles, function(row) { %>', - '
                      ', - '<% _.each(row, function(style) { %>', - '
                    • ', - '
                      ', - '
                    • ', - '<% }); %>', - '
                    ', - '<% }); %>' - ].join(''))({ - styles: styles, - styleSize: styleSize - }); - - $styleContainer.html(template); - - $('#edit-cell .cell-styles li').single('click', _.buffered(function (e) { - var $target = $(e.currentTarget), - type = $target.data('type'); - - $('#edit-cell .cell-styles li').removeClass('active'); - $target.addClass('active'); - - this.fireEvent('style:click', [this, type]); - }, 100, this)); - } - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '#edit-cell', - '.page[data-page=edit-border-style]', - '.page[data-page=edit-cell-format]' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-border-style]', '.page[data-page=edit-border-style] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-cell-format]', '.page[data-page=edit-cell-format] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-format]', '.page[data-page=edit-text-format] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-orientation]', '.page[data-page=edit-text-orientation] .page-content'); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - }, - - showPage: function (templateId, suspendEvent) { - var rootView = SSE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - showFonts: function () { - this.showPage('#edit-text-fonts'); - - var me = this, - $template = $( - '
                    ' + - '
                  • ' + - '' + - '
                  • ' + - '
                    ' - ); - - _fontsList = uiApp.virtualList('#font-list.virtual-list', { - items: SSE.getController('EditCell').getFonts(), - template: $template.html(), - onItemsAfterInsert: function (list, fragment) { - var fontInfo = _editCellController.getFontInfo(); - $('#font-list input[name=font-name]').val([fontInfo.name]); - - $('#font-list li').single('click', _.buffered(function (e) { - me.fireEvent('font:click', [me, e]); - }, 100)); - } - }); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-font-page]', '.page[data-page=edit-text-font-page] .page-content'); - }, - - showTextColor: function () { - var me = this; - this.showPage('#edit-text-color', true); - - this.paletteTextColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-text-color] .page-content') - }); - this.paletteTextColor.on('customcolor', function () { - me.showCustomTextColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-text-color] .page-content').append(template({scope: this})); - $('#edit-cell-add-custom-text-color').single('click', _.bind(this.showCustomTextColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text-color]', '.page[data-page=edit-text-color] .page-content'); - this.fireEvent('page:show', [this, '#edit-text-color']); - }, - - showCustomTextColor: function () { - var me = this, - selector = '#edit-cell-custom-color-view'; - me.showPage(selector, true); - - me.customTextColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-cell-custom-color] .page-content'), - color: me.paletteTextColor.currentColor - }); - me.customTextColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteTextColor.addNewDynamicColor(colorPicker, color); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showFillColor: function () { - var me = this; - this.showPage('#edit-fill-color', true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-fill-color] .page-content'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-fill-color] .page-content').append(template({scope: this})); - $('#edit-cell-add-custom-color').single('click', _.bind(this.showCustomFillColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-fill-color]', '.page[data-page=edit-fill-color] .page-content'); - this.fireEvent('page:show', [this, '#edit-fill-color']); - }, - - showCustomFillColor: function () { - var me = this, - selector = '#edit-cell-custom-color-view'; - me.showPage(selector, true); - - me.customFillColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-cell-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customFillColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showBorderColorPage: function () { - var me = this; - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-border-color] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-border-color] .page-content').append(template({scope: this})); - $('#edit-cell-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - }, - - showCustomBorderColor: function () { - var me = this, - selector = '#edit-cell-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-cell-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - textBack: 'Back', - textFonts: 'Fonts', - textTextColor: 'Text Color', - textFillColor: 'Fill Color', - textTextFormat: 'Text Format', - textBorderStyle: 'Border Style', - textSize: 'Size', - textFormat: 'Format', - textCellStyle: 'Cell Styles', - textAlignLeft: 'Align Left', - textAlignCenter: 'Align Center', - textAlignRight: 'Align Right', - textJustified: 'Justified', - textAlignTop: 'Align Top', - textAlignMiddle: 'Align Middle', - textAlignBottom: 'Align Bottom', - textWrapText: 'Wrap Text', - textNoBorder: 'No Border', - textAllBorders: 'All Borders', - textBottomBorder: 'Bottom Border', - textTopBorder: 'Top Border', - textLeftBorder: 'Left Border', - textRightBorder: 'Right Border', - textInBorders: 'Inside Borders', - textInVertBorder: 'Inside Vertical Border', - textInHorBorder: 'Inside Horizontal Border', - textDiagUpBorder: 'Diagonal Up Border', - textDiagDownBorder: 'Diagonal Down Border', - textColor: 'Color', - textThin: 'Thin', - textMedium: 'Medium', - textThick: 'Thick', - textInteger: 'Integer', - textGeneral: 'General', - textNumber: 'Number', - textScientific: 'Scientific', - textAccounting: 'Accounting', - textCurrency: 'Currency', - textDate: 'Date', - textTime: 'Time', - textPercentage: 'Percentage', - textText: 'Text', - textDollar: 'Dollar', - textEuro: 'Euro', - textPound: 'Pound', - textRouble: 'Rouble', - textYen: 'Yen', - textCharacterBold: 'B', - textCharacterItalic: 'I', - textCharacterUnderline: 'U', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color', - textTextOrientation: 'Text Orientation', - textHorizontalText: 'Horizontal Text', - textAngleCounterclockwise: 'Angle Counterclockwise', - textAngleClockwise: 'Angle Clockwise', - textVerticalText: 'Vertical Text', - textRotateTextUp: 'Rotate Text Up', - textRotateTextDown: 'Rotate Text Down' - } - })(), SSE.Views.EditCell || {})) -}); - \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/edit/EditChart.js b/apps/spreadsheeteditor/mobile/app/view/edit/EditChart.js deleted file mode 100644 index 782889856..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/edit/EditChart.js +++ /dev/null @@ -1,375 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditChart.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/12/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/EditChart.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.EditChart = Backbone.View.extend(_.extend((function() { - // private - var _editTextController, - _types = [ - { type: Asc.c_oAscChartTypeSettings.barNormal, thumb: 'chart-03.png'}, - { type: Asc.c_oAscChartTypeSettings.barStacked, thumb: 'chart-02.png'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer, thumb: 'chart-01.png'}, - { type: Asc.c_oAscChartTypeSettings.lineNormal, thumb: 'chart-06.png'}, - { type: Asc.c_oAscChartTypeSettings.lineStacked, thumb: 'chart-05.png'}, - { type: Asc.c_oAscChartTypeSettings.lineStackedPer, thumb: 'chart-04.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal, thumb: 'chart-09.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked, thumb: 'chart-08.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer, thumb: 'chart-07.png'}, - { type: Asc.c_oAscChartTypeSettings.areaNormal, thumb: 'chart-12.png'}, - { type: Asc.c_oAscChartTypeSettings.areaStacked, thumb: 'chart-11.png'}, - { type: Asc.c_oAscChartTypeSettings.areaStackedPer, thumb: 'chart-10.png'}, - { type: Asc.c_oAscChartTypeSettings.pie, thumb: 'chart-13.png'}, - { type: Asc.c_oAscChartTypeSettings.doughnut, thumb: 'chart-14.png'}, - { type: Asc.c_oAscChartTypeSettings.pie3d, thumb: 'chart-22.png'}, - { type: Asc.c_oAscChartTypeSettings.scatter, thumb: 'chart-15.png'}, - { type: Asc.c_oAscChartTypeSettings.stock, thumb: 'chart-16.png'}, - { type: Asc.c_oAscChartTypeSettings.line3d, thumb: 'chart-21.png'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3d, thumb: 'chart-17.png'}, - { type: Asc.c_oAscChartTypeSettings.barStacked3d, thumb: 'chart-18.png'}, - { type: Asc.c_oAscChartTypeSettings.barStackedPer3d, thumb: 'chart-19.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarNormal3d, thumb: 'chart-25.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStacked3d, thumb: 'chart-24.png'}, - { type: Asc.c_oAscChartTypeSettings.hBarStackedPer3d, thumb: 'chart-23.png'}, - { type: Asc.c_oAscChartTypeSettings.barNormal3dPerspective, thumb: 'chart-20.png'} - ]; - - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - _editTextController = SSE.getController('EditChart'); - - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - this.on('page:show', _.bind(this.updateItemHandlers, this)); - }, - - initEvents: function () { - var me = this; - - me.updateItemHandlers(); - me.initControls(); - - Common.Utils.addScrollIfNeed('#edit-chart .pages', '#edit-chart .page'); - }, - - // Render layout - render: function () { - var elementsInRow = 3; - var groupsOfTypes = _.chain(_types).groupBy(function(element, index){ - return Math.floor(index/elementsInRow); - }).toArray().value(); - - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - types : groupsOfTypes, - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-chart-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - renderStyles: function (chartStyles) { - var $styleContainer = $('#tab-chart-style'); - - if ($styleContainer.length > 0) { - var columns = parseInt($styleContainer.width() / 70), // magic - row = -1, - styles = []; - - _.each(chartStyles, function (style, index) { - if (0 == index % columns) { - styles.push([]); - row++ - } - styles[row].push(style); - }); - - var template = _.template([ - '<% _.each(styles, function(row) { %>', - '
                      ', - '<% _.each(row, function(style) { %>', - '
                    • ', - '', - '
                    • ', - '<% }); %>', - '
                    ', - '<% }); %>' - ].join(''))({ - styles: styles - }); - - $styleContainer.html(template); - } - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '#edit-chart', - '.page[data-page=edit-chart-style]' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - $('#chart-style').single('click', _.bind(this.showStyle, this)); - $('#edit-chart-bordercolor').single('click', _.bind(this.showBorderColor, this)); - - $('.edit-chart-style.subnavbar.categories a').single('click', function () { - $('.page[data-page=edit-chart-style]').find('.list-block.inputs-list').removeClass('inputs-list'); - }); - }, - - showPage: function (templateId, suspendEvent) { - var rootView = SSE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - showStyle: function () { - var me = this; - var page = '#edit-chart-style'; - this.showPage(page, true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-chart-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-chart-fill').append(template({scope: this})); - $('#edit-chart-add-custom-fill-color').single('click', _.bind(this.showCustomFillColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-chart-style]', '.page[data-page=edit-chart-style] .page-content'); - this.fireEvent('page:show', [this, page]); - }, - - showCustomFillColor: function () { - var me = this, - selector = '#edit-chart-custom-color-view'; - me.showPage(selector, true); - - me.customFillColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-chart-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customFillColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showBorderColor: function () { - var me = this; - var selector = '#edit-chart-border-color-view'; - this.showPage(selector, true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-chart-border-color] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-chart-border-color] .page-content').append(template({scope: this})); - $('#edit-chart-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, selector]); - }, - - showCustomBorderColor: function () { - var me = this, - selector = '#edit-chart-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-chart-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - textBack: 'Back', - textChart: 'Chart', - textReorder: 'Reorder', - textRemoveChart: 'Remove Chart', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textStyle: 'Style', - textDesign: 'Design', - textLayout: 'Layout', - textVerAxis: 'Vertical Axis', - textHorAxis: 'Horizontal Axis', - textType: 'Type', - textFill: 'Fill', - textBorder: 'Border', - textSize: 'Size', - textColor: 'Color', - textOverlay: 'Overlay', - textNoOverlay: 'No Overlay', - textChartTitle: 'Chart Title', - textLeft: 'Left', - textTop: 'Top', - textRight: 'Right', - textBottom: 'Bottom', - textLeftOverlay: 'Left Overlay', - textRightOverlay: 'Right Overlay', - textLegend: 'Legend', - textAxisTitle: 'Axis Title', - textHorizontal: 'Horizontal', - textRotated: 'Rotated', - textVertical: 'Vertical', - textMajor: 'Major', - textMinor: 'Minor', - textMajorMinor: 'Major and Minor', - textDataLabels: 'Data Labels', - textAxisOptions: 'Axis Options', - textMinValue: 'Minimum Value', - textMaxValue: 'Maximum Value', - textAxisCrosses: 'Axis Crosses', - textAuto: 'Auto', - textCrossesValue: 'Crosses Value', - textDisplayUnits: 'Display Units', - textValReverseOrder: 'Values in Reverse Order', - textTickOptions: 'Tick Options', - textMajorType: 'Major Type', - textMinorType: 'Minor Type', - textLabelOptions: 'Label Options', - textLabelPos: 'Label Position', - textAxisPosition: 'Axis Position', - textNone: 'None', - textGridlines: 'Gridlines', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), SSE.Views.EditChart || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/edit/EditHyperlink.js b/apps/spreadsheeteditor/mobile/app/view/edit/EditHyperlink.js deleted file mode 100644 index 0806d732f..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/edit/EditHyperlink.js +++ /dev/null @@ -1,160 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditHyperlink.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/20/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/EditHyperlink.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.EditHyperlink = Backbone.View.extend(_.extend((function() { - // private - var _editCellController; - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - _editCellController = SSE.getController('EditHyperlink'); - - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - this.on('page:show', _.bind(this.updateItemHandlers, this)); - }, - - initEvents: function () { - var me = this; - - me.updateItemHandlers(); - - Common.Utils.addScrollIfNeed('#edit-link .pages', '#edit-link .page'); - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-link-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - showPage: function (templateId, suspendEvent) { - var rootView = SSE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - } - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '#edit-link' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-link-type]', '.page[data-page=edit-border-style] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-link-sheet]', '.page[data-page=edit-cell-format] .page-content'); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - }, - - textBack: 'Back', - textExternalLink: 'External Link', - textInternalLink: 'Internal Data Range', - textLinkType: 'Link Type', - textSheet: 'Sheet', - textRange: 'Range', - textLink: 'Link', - textDisplay: 'Display', - textScreenTip: 'Screen Tip', - textEditLink: 'Save Link', - textRemoveLink: 'Remove Link' - } - })(), SSE.Views.EditHyperlink || {})) -}); diff --git a/apps/spreadsheeteditor/mobile/app/view/edit/EditImage.js b/apps/spreadsheeteditor/mobile/app/view/edit/EditImage.js deleted file mode 100644 index d89a575a1..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/edit/EditImage.js +++ /dev/null @@ -1,166 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditImage.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/19/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/EditImage.template', - 'jquery', - 'underscore', - 'backbone' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.EditImage = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - this.on('page:show', _.bind(this.updateItemHandlers, this)); - }, - - initEvents: function () { - var me = this; - - me.updateItemHandlers(); - me.initControls(); - }, - - categoryShow: function(e) { - // if ('edit-shape' == $(e.currentTarget).prop('id')) { - // this.initEvents(); - // } - }, - - // Render layout - render: function () { - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-image-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '#edit-image', - '.page[data-page=edit-image-replace-view]' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - }, - - showPage: function (templateId, suspendEvent) { - var rootView = SSE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - textReplace: 'Replace', - textReorder: 'Reorder', - textDefault: 'Actual Size', - textRemove: 'Remove Image', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textFromLibrary: 'Picture from Library', - textFromURL: 'Picture from URL', - textLinkSettings: 'Link Settings', - textAddress: 'Address', - textImageURL: 'Image URL', - textReplaceImg: 'Replace Image' - } - })(), SSE.Views.EditImage || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/edit/EditShape.js b/apps/spreadsheeteditor/mobile/app/view/edit/EditShape.js deleted file mode 100644 index f05651271..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/edit/EditShape.js +++ /dev/null @@ -1,298 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditShape.js - * - * Created by Alexander Yuzhin on 12/19/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/EditShape.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.EditShape = Backbone.View.extend(_.extend((function() { - // private - - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this)); - //this.on('page:show', _.bind(this.updateItemHandlers, this)); - this.isShapeCanFill = true; - }, - - initEvents: function () { - var me = this; - - me.updateItemHandlers(); - - $('.edit-shape-style .categories a').single('click', _.bind(me.showStyleCategory, me)); - - Common.Utils.addScrollIfNeed('#edit-shape .pages', '#edit-shape .page'); - me.initControls(); - }, - - categoryShow: function(e) { - // if ('edit-shape' == $(e.currentTarget).prop('id')) { - // this.initEvents(); - // } - }, - - // Render layout - render: function () { - var shapes = Common.SharedSettings.get('shapes').slice(); - shapes.splice(0, 1); // Remove line shapes - - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - imgpath : '../../common/mobile/resources/img/shapes', - shapes : shapes, - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-shape-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '#edit-shape', - '.page[data-page=edit-shape-style]' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-shape-border-color-view]', '.page[data-page=edit-shape-border-color-view] .page-content'); - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - $('#shape-style').single('click', _.bind(this.showStyle, this)); - $('#edit-shape-bordercolor').single('click', _.bind(this.showBorderColor, this)); - }, - - showPage: function (templateId, suspendEvent) { - var rootView = SSE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - showStyle: function () { - var me = this; - var page = '#edit-shape-style'; - if (!this.isShapeCanFill) { - page = '#edit-shape-style-nofill'; - } - this.showPage(page, true); - - this.paletteFillColor = new Common.UI.ThemeColorPalette({ - el: $('#tab-shape-fill'), - transparent: true - }); - this.paletteFillColor.on('customcolor', function () { - me.showCustomFillColor(); - }); - var template = _.template([''].join('')); - $('#tab-shape-fill').append(template({scope: this})); - $('#edit-cell-add-custom-fill-color').single('click', _.bind(this.showCustomFillColor, this)); - - if (!this.isShapeCanFill) - this.showStyleCategory(); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-shape-style]', '.page[data-page=edit-shape-style] .page-content'); - this.fireEvent('page:show', [this, page]); - }, - - showCustomFillColor: function () { - var me = this, - selector = '#edit-shape-custom-color-view'; - me.showPage(selector, true); - - me.customFillColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-shape-custom-color] .page-content'), - color: me.paletteFillColor.currentColor - }); - me.customFillColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteFillColor.addNewDynamicColor(colorPicker, color); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showBorderColor: function () { - var me = this; - var selector = '#edit-shape-border-color-view'; - this.showPage(selector, true); - - this.paletteBorderColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-shape-border-color-view] .page-content') - }); - this.paletteBorderColor.on('customcolor', function () { - me.showCustomBorderColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-shape-border-color-view] .page-content').append(template({scope: this})); - $('#edit-shape-add-custom-border-color').single('click', _.bind(this.showCustomBorderColor, this)); - - this.fireEvent('page:show', [this, selector]); - - }, - - showCustomBorderColor: function () { - var me = this, - selector = '#edit-shape-custom-color-view'; - me.showPage(selector, true); - - me.customBorderColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-shape-custom-color] .page-content'), - color: me.paletteBorderColor.currentColor - }); - me.customBorderColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteBorderColor.addNewDynamicColor(colorPicker, color); - me.paletteFillColor.updateDynamicColors(); - me.paletteFillColor.select(me.paletteFillColor.currentColor); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - showStyleCategory: function (e) { - // remove android specific style - $('.page[data-page=edit-shape-style] .list-block.inputs-list').removeClass('inputs-list'); - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - - this.showPage(page); - - } - - Common.Utils.addScrollIfNeed('.page[data-page=edit-shape-style]', '.page[data-page=edit-shape-style] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-shape-replace]', '.page[data-page=edit-shape-replace] .page-content'); - Common.Utils.addScrollIfNeed('.page[data-page=edit-shape-reorder]', '.page[data-page=edit-shape-reorder] .page-content'); - }, - - textStyle: 'Style', - textReplace: 'Replace', - textReorder: 'Reorder', - textRemoveShape: 'Remove Shape', - textBack: 'Back', - textToForeground: 'Bring to Foreground', - textToBackground: 'Send to Background', - textForward: 'Move Forward', - textBackward: 'Move Backward', - textFill: 'Fill', - textBorder: 'Border', - textEffects: 'Effects', - textSize: 'Size', - textColor: 'Color', - textOpacity: 'Opacity', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), SSE.Views.EditShape || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/view/edit/EditText.js b/apps/spreadsheeteditor/mobile/app/view/edit/EditText.js deleted file mode 100644 index 230d996a9..000000000 --- a/apps/spreadsheeteditor/mobile/app/view/edit/EditText.js +++ /dev/null @@ -1,238 +0,0 @@ -/* - * - * (c) Copyright Ascensio System SIA 2010-2019 - * - * 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 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * 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 - * - */ - -/** - * EditText.js - * Spreadsheet Editor - * - * Created by Alexander Yuzhin on 12/21/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'text!spreadsheeteditor/mobile/app/template/EditText.template', - 'jquery', - 'underscore', - 'backbone', - 'common/mobile/lib/component/ThemeColorPalette', - 'common/mobile/lib/component/HsbColorPicker' -], function (editTemplate, $, _, Backbone) { - 'use strict'; - - SSE.Views.EditText = Backbone.View.extend(_.extend((function() { - // private - var _fontsArray = []; - return { - // el: '.view-main', - - template: _.template(editTemplate), - - events: { - }, - - initialize: function () { - Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this)); - Common.NotificationCenter.on('fonts:load', _.bind(this.onApiFontsLoad, this)); - }, - - initEvents: function () { - var me = this; - - me.updateItemHandlers(); - me.initControls(); - }, - - // Render layout - render: function () { - this.layout = $('
                    ').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - scope : this - })); - - return this; - }, - - rootLayout: function () { - if (this.layout) { - return this.layout - .find('#edit-text-root') - .html(); - } - - return ''; - }, - - initControls: function () { - // - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '#edit-text' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - $('#font-color').single('click', _.bind(this.showFontColor, this)); - }, - - showPage: function (templateId, suspendEvent) { - var rootView = SSE.getController('EditContainer').rootView; - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html() - }); - - if (suspendEvent !== true) { - this.fireEvent('page:show', [this, templateId]); - } - - this.initEvents(); - } - }, - - showFontColor: function () { - var me = this; - var page = '#edit-text-color'; - this.showPage(page, true); - - this.paletteTextColor = new Common.UI.ThemeColorPalette({ - el: $('.page[data-page=edit-text-color] .page-content') - }); - this.paletteTextColor.on('customcolor', function () { - me.showCustomTextColor(); - }); - var template = _.template([''].join('')); - $('.page[data-page=edit-text-color] .page-content').append(template({scope: this})); - $('#edit-text-add-custom-fill-color').single('click', _.bind(this.showCustomTextColor, this)); - - Common.Utils.addScrollIfNeed('.page[data-page=edit-text]', '.page[data-page=edit-text] .page-content'); - this.fireEvent('page:show', [this, page]); - }, - - showCustomTextColor: function () { - var me = this, - selector = '#edit-text-custom-color-view'; - me.showPage(selector, true); - - me.customTextColorPicker = new Common.UI.HsbColorPicker({ - el: $('.page[data-page=edit-text-custom-color] .page-content'), - color: me.paletteTextColor.currentColor - }); - me.customTextColorPicker.on('addcustomcolor', function (colorPicker, color) { - me.paletteTextColor.addNewDynamicColor(colorPicker, color); - SSE.getController('EditContainer').rootView.router.back(); - }); - - me.fireEvent('page:show', [me, selector]); - }, - - renderFonts: function () { - var me = this, - $template = $( - '
                    ' + - '
                  • ' + - '' + - '
                  • ' + - '
                    ' - ); - - uiApp.virtualList('#font-list.virtual-list', { - items: _fontsArray, - template: $template.html(), - onItemsAfterInsert: function (list, fragment) { - var fontInfo = SSE.getController('EditText').getFontInfo(); - $('#font-list input[name=font-name]').val([fontInfo.asc_getFontName() || '']); - - $('#font-list li').single('click', _.buffered(function (e) { - me.fireEvent('font:click', [me, e]); - }, 100)); - } - }); - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - onApiFontsLoad: function (fonts, selcted) { - _fontsArray = fonts; - }, - - textBack: 'Back', - textFonts: 'Fonts', - textTextColor: 'Text Color', - textFillColor: 'Fill Color', - textSize: 'Size', - textCharacterBold: 'B', - textCharacterItalic: 'I', - textCharacterUnderline: 'U', - textAddCustomColor: 'Add Custom Color', - textCustomColor: 'Custom Color' - } - })(), SSE.Views.EditText || {})) -}); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/index.html b/apps/spreadsheeteditor/mobile/index.html deleted file mode 100644 index ea5ffdab3..000000000 --- a/apps/spreadsheeteditor/mobile/index.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - ONLYOFFICE Spreadsheets - - - - - - - - - - -
                    -
                    -
                    -
                    - -
                    -
                    -
                    -
                    -
                    -
                    -
                    -
                    - - - - - - - - - - - - diff --git a/apps/spreadsheeteditor/mobile/index.html.deploy b/apps/spreadsheeteditor/mobile/index.html.deploy deleted file mode 100644 index 3205c29f2..000000000 --- a/apps/spreadsheeteditor/mobile/index.html.deploy +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - ONLYOFFICE Spreadsheet Editor - - - - - - - -
                    -
                    -
                    -
                    - -
                    -
                    -
                    -
                    -
                    -
                    -
                    -
                    - - - - - diff --git a/apps/spreadsheeteditor/mobile/index_loader.html b/apps/spreadsheeteditor/mobile/index_loader.html deleted file mode 100644 index 70c3c9361..000000000 --- a/apps/spreadsheeteditor/mobile/index_loader.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - - - - ONLYOFFICE Spreadsheets - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/index_loader.html.deploy b/apps/spreadsheeteditor/mobile/index_loader.html.deploy deleted file mode 100644 index 1627205dc..000000000 --- a/apps/spreadsheeteditor/mobile/index_loader.html.deploy +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - - - - ONLYOFFICE Spreadsheet Editor - - - - - - - - - - - - - diff --git a/apps/spreadsheeteditor/mobile/locale/en.json b/apps/spreadsheeteditor/mobile/locale/en.json index 813663528..53cd61ec1 100644 --- a/apps/spreadsheeteditor/mobile/locale/en.json +++ b/apps/spreadsheeteditor/mobile/locale/en.json @@ -1,661 +1,556 @@ { - "Common.Controllers.Collaboration.textAddReply": "Add Reply", - "Common.Controllers.Collaboration.textCancel": "Cancel", - "Common.Controllers.Collaboration.textDeleteComment": "Delete comment", - "Common.Controllers.Collaboration.textDeleteReply": "Delete reply", - "Common.Controllers.Collaboration.textDone": "Done", - "Common.Controllers.Collaboration.textEdit": "Edit", - "Common.Controllers.Collaboration.textEditUser": "Users who are editing the file:", - "Common.Controllers.Collaboration.textMessageDeleteComment": "Do you really want to delete this comment?", - "Common.Controllers.Collaboration.textMessageDeleteReply": "Do you really want to delete this reply?", - "Common.Controllers.Collaboration.textReopen": "Reopen", - "Common.Controllers.Collaboration.textResolve": "Resolve", - "Common.Controllers.Collaboration.textYes": "Yes", - "Common.UI.ThemeColorPalette.textCustomColors": "Custom Colors", - "Common.UI.ThemeColorPalette.textStandartColors": "Standard Colors", - "Common.UI.ThemeColorPalette.textThemeColors": "Theme Colors", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAddReply": "Add Reply", - "Common.Views.Collaboration.textBack": "Back", - "Common.Views.Collaboration.textCancel": "Cancel", - "Common.Views.Collaboration.textCollaboration": "Collaboration", - "Common.Views.Collaboration.textDone": "Done", - "Common.Views.Collaboration.textEditReply": "Edit Reply", - "Common.Views.Collaboration.textEditUsers": "Users", - "Common.Views.Collaboration.textEditСomment": "Edit Comment", - "Common.Views.Collaboration.textNoComments": "This spreadsheet doesn't contain comments", - "Common.Views.Collaboration.textСomments": "Сomments", - "SSE.Controllers.AddChart.txtDiagramTitle": "Chart Title", - "SSE.Controllers.AddChart.txtSeries": "Series", - "SSE.Controllers.AddChart.txtXAxis": "X Axis", - "SSE.Controllers.AddChart.txtYAxis": "Y Axis", - "SSE.Controllers.AddContainer.textChart": "Chart", - "SSE.Controllers.AddContainer.textFormula": "Function", - "SSE.Controllers.AddContainer.textImage": "Image", - "SSE.Controllers.AddContainer.textOther": "Other", - "SSE.Controllers.AddContainer.textShape": "Shape", - "SSE.Controllers.AddLink.notcriticalErrorTitle": "Warning", - "SSE.Controllers.AddLink.textInvalidRange": "ERROR! Invalid cells range", - "SSE.Controllers.AddLink.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'", - "SSE.Controllers.AddOther.notcriticalErrorTitle": "Warning", - "SSE.Controllers.AddOther.textCancel": "Cancel", - "SSE.Controllers.AddOther.textContinue": "Continue", - "SSE.Controllers.AddOther.textDelete": "Delete", - "SSE.Controllers.AddOther.textDeleteDraft": "Do you really want to delete the draft?", - "SSE.Controllers.AddOther.textEmptyImgUrl": "You need to specify image URL.", - "SSE.Controllers.AddOther.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'", - "SSE.Controllers.DocumentHolder.errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", - "SSE.Controllers.DocumentHolder.errorInvalidLink": "The link reference does not exist. Please correct the link or delete it.", - "SSE.Controllers.DocumentHolder.menuAddComment": "Add Comment", - "SSE.Controllers.DocumentHolder.menuAddLink": "Add Link", - "SSE.Controllers.DocumentHolder.menuCell": "Cell", - "SSE.Controllers.DocumentHolder.menuCopy": "Copy", - "SSE.Controllers.DocumentHolder.menuCut": "Cut", - "SSE.Controllers.DocumentHolder.menuDelete": "Delete", - "SSE.Controllers.DocumentHolder.menuEdit": "Edit", - "SSE.Controllers.DocumentHolder.menuFreezePanes": "Freeze Panes", - "SSE.Controllers.DocumentHolder.menuHide": "Hide", - "SSE.Controllers.DocumentHolder.menuMerge": "Merge", - "SSE.Controllers.DocumentHolder.menuMore": "More", - "SSE.Controllers.DocumentHolder.menuOpenLink": "Open Link", - "SSE.Controllers.DocumentHolder.menuPaste": "Paste", - "SSE.Controllers.DocumentHolder.menuShow": "Show", - "SSE.Controllers.DocumentHolder.menuUnfreezePanes": "Unfreeze Panes", - "SSE.Controllers.DocumentHolder.menuUnmerge": "Unmerge", - "SSE.Controllers.DocumentHolder.menuUnwrap": "Unwrap", - "SSE.Controllers.DocumentHolder.menuViewComment": "View Comment", - "SSE.Controllers.DocumentHolder.menuWrap": "Wrap", - "SSE.Controllers.DocumentHolder.notcriticalErrorTitle": "Warning", - "SSE.Controllers.DocumentHolder.sheetCancel": "Cancel", - "SSE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copy, Cut and Paste Actions", - "SSE.Controllers.DocumentHolder.textDoNotShowAgain": "Do not show again", - "SSE.Controllers.DocumentHolder.warnMergeLostData": "Only the data from the upper-left cell will remain in the merged cell.
                    Are you sure you want to continue?", - "SSE.Controllers.EditCell.textAuto": "Auto", - "SSE.Controllers.EditCell.textFonts": "Fonts", - "SSE.Controllers.EditCell.textPt": "pt", - "SSE.Controllers.EditChart.errorMaxRows": "ERROR! The maximum number of data series per chart is 255.", - "SSE.Controllers.EditChart.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
                    opening price, max price, min price, closing price.", - "SSE.Controllers.EditChart.textAuto": "Auto", - "SSE.Controllers.EditChart.textBetweenTickMarks": "Between Tick Marks", - "SSE.Controllers.EditChart.textBillions": "Billions", - "SSE.Controllers.EditChart.textBottom": "Bottom", - "SSE.Controllers.EditChart.textCenter": "Center", - "SSE.Controllers.EditChart.textCross": "Cross", - "SSE.Controllers.EditChart.textCustom": "Custom", - "SSE.Controllers.EditChart.textFit": "Fit Width", - "SSE.Controllers.EditChart.textFixed": "Fixed", - "SSE.Controllers.EditChart.textHigh": "High", - "SSE.Controllers.EditChart.textHorizontal": "Horizontal", - "SSE.Controllers.EditChart.textHundredMil": "100 000 000", - "SSE.Controllers.EditChart.textHundreds": "Hundreds", - "SSE.Controllers.EditChart.textHundredThousands": "100 000", - "SSE.Controllers.EditChart.textIn": "In", - "SSE.Controllers.EditChart.textInnerBottom": "Inner Bottom", - "SSE.Controllers.EditChart.textInnerTop": "Inner Top", - "SSE.Controllers.EditChart.textLeft": "Left", - "SSE.Controllers.EditChart.textLeftOverlay": "Left Overlay", - "SSE.Controllers.EditChart.textLow": "Low", - "SSE.Controllers.EditChart.textManual": "Manual", - "SSE.Controllers.EditChart.textMaxValue": "Maximum Value", - "SSE.Controllers.EditChart.textMillions": "Millions", - "SSE.Controllers.EditChart.textMinValue": "Minimum Value", - "SSE.Controllers.EditChart.textNextToAxis": "Next to axis", - "SSE.Controllers.EditChart.textNone": "None", - "SSE.Controllers.EditChart.textNoOverlay": "No Overlay", - "SSE.Controllers.EditChart.textOnTickMarks": "On Tick Marks", - "SSE.Controllers.EditChart.textOut": "Out", - "SSE.Controllers.EditChart.textOuterTop": "Outer Top", - "SSE.Controllers.EditChart.textOverlay": "Overlay", - "SSE.Controllers.EditChart.textRight": "Right", - "SSE.Controllers.EditChart.textRightOverlay": "Right Overlay", - "SSE.Controllers.EditChart.textRotated": "Rotated", - "SSE.Controllers.EditChart.textTenMillions": "10 000 000", - "SSE.Controllers.EditChart.textTenThousands": "10 000", - "SSE.Controllers.EditChart.textThousands": "Thousands", - "SSE.Controllers.EditChart.textTop": "Top", - "SSE.Controllers.EditChart.textTrillions": "Trillions", - "SSE.Controllers.EditChart.textValue": "Value", - "SSE.Controllers.EditContainer.textCell": "Cell", - "SSE.Controllers.EditContainer.textChart": "Chart", - "SSE.Controllers.EditContainer.textHyperlink": "Hyperlink", - "SSE.Controllers.EditContainer.textImage": "Image", - "SSE.Controllers.EditContainer.textSettings": "Settings", - "SSE.Controllers.EditContainer.textShape": "Shape", - "SSE.Controllers.EditContainer.textTable": "Table", - "SSE.Controllers.EditContainer.textText": "Text", - "SSE.Controllers.EditHyperlink.notcriticalErrorTitle": "Warning", - "SSE.Controllers.EditHyperlink.textDefault": "Selected range", - "SSE.Controllers.EditHyperlink.textEmptyImgUrl": "You need to specify image URL.", - "SSE.Controllers.EditHyperlink.textExternalLink": "External Link", - "SSE.Controllers.EditHyperlink.textInternalLink": "Internal Data Range", - "SSE.Controllers.EditHyperlink.textInvalidRange": "Invalid cells range", - "SSE.Controllers.EditHyperlink.txtNotUrl": "This field should be a URL in the format \"http://www.example.com\"", - "SSE.Controllers.EditImage.notcriticalErrorTitle": "Warning", - "SSE.Controllers.EditImage.textEmptyImgUrl": "You need to specify image URL.", - "SSE.Controllers.EditImage.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'", - "SSE.Controllers.FilterOptions.textEmptyItem": "{Blanks}", - "SSE.Controllers.FilterOptions.textErrorMsg": "You must choose at least one value", - "SSE.Controllers.FilterOptions.textErrorTitle": "Warning", - "SSE.Controllers.FilterOptions.textSelectAll": "Select All", - "SSE.Controllers.Main.advCSVOptions": "Choose CSV Options", - "SSE.Controllers.Main.advDRMEnterPassword": "Enter your password:", - "SSE.Controllers.Main.advDRMOptions": "Protected File", - "SSE.Controllers.Main.advDRMPassword": "Password", - "SSE.Controllers.Main.applyChangesTextText": "Loading data...", - "SSE.Controllers.Main.applyChangesTitleText": "Loading Data", - "SSE.Controllers.Main.closeButtonText": "Close File", - "SSE.Controllers.Main.convertationTimeoutText": "Conversion timeout exceeded.", - "SSE.Controllers.Main.criticalErrorExtText": "Press 'OK' to return to document list.", - "SSE.Controllers.Main.criticalErrorTitle": "Error", - "SSE.Controllers.Main.downloadErrorText": "Download failed.", - "SSE.Controllers.Main.downloadMergeText": "Downloading...", - "SSE.Controllers.Main.downloadMergeTitle": "Downloading", - "SSE.Controllers.Main.downloadTextText": "Downloading spreadsheet...", - "SSE.Controllers.Main.downloadTitleText": "Downloading Spreadsheet", - "SSE.Controllers.Main.errorAccessDeny": "You are trying to perform an action you do not have rights for.
                    Please contact your Document Server administrator.", - "SSE.Controllers.Main.errorArgsRange": "An error in the entered formula.
                    Incorrect argument range is used.", - "SSE.Controllers.Main.errorAutoFilterChange": "The operation is not allowed, as it is attempting to shift cells in a table on your worksheet.", - "SSE.Controllers.Main.errorAutoFilterChangeFormatTable": "The operation could not be done for the selected cells as you cannot move a part of the table.
                    Select another data range so that the whole table was shifted and try again.", - "SSE.Controllers.Main.errorAutoFilterDataRange": "The operation could not be done for the selected range of cells.
                    Select a uniform data range different from the existing one and try again.", - "SSE.Controllers.Main.errorAutoFilterHiddenRange": "The operation cannot be performed because the area contains filtered cells.
                    Please unhide the filtered elements and try again.", - "SSE.Controllers.Main.errorBadImageUrl": "Image URL is incorrect", - "SSE.Controllers.Main.errorChangeArray": "You cannot change part of an array.", - "SSE.Controllers.Main.errorCoAuthoringDisconnect": "Server connection lost. The document cannot be edited right now.", - "SSE.Controllers.Main.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.
                    When you click the 'OK' button, you will be prompted to download the document.", - "SSE.Controllers.Main.errorCopyMultiselectArea": "This command cannot be used with multiple selections.
                    Select a single range and try again.", - "SSE.Controllers.Main.errorCountArg": "An error in the entered formula.
                    Incorrect number of arguments is used.", - "SSE.Controllers.Main.errorCountArgExceed": "An error in the entered formula.
                    Number of arguments is exceeded.", - "SSE.Controllers.Main.errorCreateDefName": "The existing named ranges cannot be edited and the new ones cannot be created
                    at the moment as some of them are being edited.", - "SSE.Controllers.Main.errorDatabaseConnection": "External error.
                    Database connection error. Please contact support in case the error persists.", - "SSE.Controllers.Main.errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", - "SSE.Controllers.Main.errorDataRange": "Incorrect data range.", - "SSE.Controllers.Main.errorDataValidate": "The value you entered is not valid.
                    A user has restricted values that can be entered into this cell.", - "SSE.Controllers.Main.errorDefaultMessage": "Error code: %1", - "SSE.Controllers.Main.errorEditingDownloadas": "An error occurred during the work with the document.
                    Use the 'Download' option to save the file backup copy to your computer hard drive.", - "SSE.Controllers.Main.errorFilePassProtect": "The file is password protected and cannot be opened.", - "SSE.Controllers.Main.errorFileRequest": "External error.
                    File request error. Please contact support in case the error persists.", - "SSE.Controllers.Main.errorFileSizeExceed": "The file size exceeds the limitation set for your server.
                    Please contact your Document Server administrator for details.", - "SSE.Controllers.Main.errorFileVKey": "External error.
                    Incorrect security key. Please contact support in case the error persists.", - "SSE.Controllers.Main.errorFillRange": "Could not fill the selected range of cells.
                    All the merged cells need to be the same size.", - "SSE.Controllers.Main.errorFormulaName": "An error in the entered formula.
                    Incorrect formula name is used.", - "SSE.Controllers.Main.errorFormulaParsing": "Internal error while parsing the formula.", - "SSE.Controllers.Main.errorFrmlMaxLength": "The length of your formula exceeds the limit of 8192 characters.
                    Please edit it and try again.", - "SSE.Controllers.Main.errorFrmlMaxReference": "You cannot enter this formula because it has too many values,
                    cell references, and/or names.", - "SSE.Controllers.Main.errorFrmlMaxTextLength": "Text values in formulas are limited to 255 characters.
                    Use the CONCATENATE function or concatenation operator (&).", - "SSE.Controllers.Main.errorFrmlWrongReferences": "The function refers to a sheet that does not exist.
                    Please check the data and try again.", - "SSE.Controllers.Main.errorInvalidRef": "Enter a correct name for the selection or a valid reference to go to.", - "SSE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor", - "SSE.Controllers.Main.errorKeyExpire": "Key descriptor expired", - "SSE.Controllers.Main.errorLockedAll": "The operation could not be done as the sheet has been locked by another user.", - "SSE.Controllers.Main.errorLockedCellPivot": "You cannot change data inside a pivot table.", - "SSE.Controllers.Main.errorLockedWorksheetRename": "The sheet cannot be renamed at the moment as it is being renamed by another user", - "SSE.Controllers.Main.errorMailMergeLoadFile": "Loading the document failed. Please select a different file.", - "SSE.Controllers.Main.errorMailMergeSaveFile": "Merge failed.", - "SSE.Controllers.Main.errorMaxPoints": "The maximum number of points in series per chart is 4096.", - "SSE.Controllers.Main.errorMoveRange": "Cannot change part of a merged cell", - "SSE.Controllers.Main.errorMultiCellFormula": "Multi-cell array formulas are not allowed in tables.", - "SSE.Controllers.Main.errorOpensource": "Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.", - "SSE.Controllers.Main.errorOpenWarning": "One of the file formulas exceeds the limit of 8192 characters.
                    The formula was removed.", - "SSE.Controllers.Main.errorOperandExpected": "The entered function syntax is not correct. Please check if you are missing one of the parentheses - '(' or ')'.", - "SSE.Controllers.Main.errorPasteMaxRange": "The copy and paste area do not match.
                    Please select an area with the same size or click the first cell in a row to paste the copied cells.", - "SSE.Controllers.Main.errorPrintMaxPagesCount": "Unfortunately, it is not possible to print more than 1500 pages at once in the current program version.
                    This restriction will be removed in the upcoming releases.", - "SSE.Controllers.Main.errorProcessSaveResult": "Saving failed", - "SSE.Controllers.Main.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", - "SSE.Controllers.Main.errorSessionAbsolute": "The document editing session has expired. Please reload the page.", - "SSE.Controllers.Main.errorSessionIdle": "The document has not been edited for quite a long time. Please reload the page.", - "SSE.Controllers.Main.errorSessionToken": "The connection to the server has been interrupted. Please reload the page.", - "SSE.Controllers.Main.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
                    opening price, max price, min price, closing price.", - "SSE.Controllers.Main.errorToken": "The document security token is not correctly formed.
                    Please contact your Document Server administrator.", - "SSE.Controllers.Main.errorTokenExpire": "The document security token has expired.
                    Please contact your Document Server administrator.", - "SSE.Controllers.Main.errorUnexpectedGuid": "External error.
                    Unexpected GUID. Please contact support in case the error persists.", - "SSE.Controllers.Main.errorUpdateVersion": "The file version has been changed. The page will be reloaded.", - "SSE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
                    Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", - "SSE.Controllers.Main.errorUserDrop": "The file cannot be accessed right now.", - "SSE.Controllers.Main.errorUsersExceed": "The number of users allowed by the pricing plan was exceeded", - "SSE.Controllers.Main.errorViewerDisconnect": "Connection is lost. You can still view the document,
                    but will not be able to download it until the connection is restored and page is reloaded.", - "SSE.Controllers.Main.errorWrongBracketsCount": "An error in the entered formula.
                    Wrong number of brackets is used.", - "SSE.Controllers.Main.errorWrongOperator": "An error in the entered formula. Wrong operator is used.
                    Please correct the error.", - "SSE.Controllers.Main.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.", - "SSE.Controllers.Main.loadFontsTextText": "Loading data...", - "SSE.Controllers.Main.loadFontsTitleText": "Loading Data", - "SSE.Controllers.Main.loadFontTextText": "Loading data...", - "SSE.Controllers.Main.loadFontTitleText": "Loading Data", - "SSE.Controllers.Main.loadImagesTextText": "Loading images...", - "SSE.Controllers.Main.loadImagesTitleText": "Loading Images", - "SSE.Controllers.Main.loadImageTextText": "Loading image...", - "SSE.Controllers.Main.loadImageTitleText": "Loading Image", - "SSE.Controllers.Main.loadingDocumentTextText": "Loading spreadsheet...", - "SSE.Controllers.Main.loadingDocumentTitleText": "Loading spreadsheet", - "SSE.Controllers.Main.mailMergeLoadFileText": "Loading Data Source...", - "SSE.Controllers.Main.mailMergeLoadFileTitle": "Loading Data Source", - "SSE.Controllers.Main.notcriticalErrorTitle": "Warning", - "SSE.Controllers.Main.openErrorText": "An error has occurred while opening the file.", - "SSE.Controllers.Main.openTextText": "Opening document...", - "SSE.Controllers.Main.openTitleText": "Opening Document", - "SSE.Controllers.Main.pastInMergeAreaError": "Cannot change part of a merged cell", - "SSE.Controllers.Main.printTextText": "Printing document...", - "SSE.Controllers.Main.printTitleText": "Printing Document", - "SSE.Controllers.Main.reloadButtonText": "Reload Page", - "SSE.Controllers.Main.requestEditFailedMessageText": "Someone is editing this document right now. Please try again later.", - "SSE.Controllers.Main.requestEditFailedTitleText": "Access denied", - "SSE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.", - "SSE.Controllers.Main.savePreparingText": "Preparing to save", - "SSE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...", - "SSE.Controllers.Main.saveTextText": "Saving document...", - "SSE.Controllers.Main.saveTitleText": "Saving Document", - "SSE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.", - "SSE.Controllers.Main.sendMergeText": "Sending Merge...", - "SSE.Controllers.Main.sendMergeTitle": "Sending Merge", - "SSE.Controllers.Main.textAnonymous": "Anonymous", - "SSE.Controllers.Main.textBack": "Back", - "SSE.Controllers.Main.textBuyNow": "Visit website", - "SSE.Controllers.Main.textCancel": "Cancel", - "SSE.Controllers.Main.textClose": "Close", - "SSE.Controllers.Main.textContactUs": "Contact sales", - "SSE.Controllers.Main.textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader.
                    Please contact our Sales Department to get a quote.", - "SSE.Controllers.Main.textDone": "Done", - "SSE.Controllers.Main.textGuest": "Guest", - "SSE.Controllers.Main.textHasMacros": "The file contains automatic macros.
                    Do you want to run macros?", - "SSE.Controllers.Main.textLoadingDocument": "Loading spreadsheet", - "SSE.Controllers.Main.textNo": "No", - "SSE.Controllers.Main.textNoLicenseTitle": "License limit reached", - "SSE.Controllers.Main.textOK": "OK", - "SSE.Controllers.Main.textPaidFeature": "Paid feature", - "SSE.Controllers.Main.textPassword": "Password", - "SSE.Controllers.Main.textPreloader": "Loading... ", - "SSE.Controllers.Main.textRemember": "Remember my choice for all files", - "SSE.Controllers.Main.textShape": "Shape", - "SSE.Controllers.Main.textStrict": "Strict mode", - "SSE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.
                    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.", - "SSE.Controllers.Main.textUsername": "Username", - "SSE.Controllers.Main.textYes": "Yes", - "SSE.Controllers.Main.titleLicenseExp": "License expired", - "SSE.Controllers.Main.titleServerVersion": "Editor updated", - "SSE.Controllers.Main.titleUpdateVersion": "Version changed", - "SSE.Controllers.Main.txtAccent": "Accent", - "SSE.Controllers.Main.txtArt": "Your text here", - "SSE.Controllers.Main.txtBasicShapes": "Basic Shapes", - "SSE.Controllers.Main.txtButtons": "Buttons", - "SSE.Controllers.Main.txtCallouts": "Callouts", - "SSE.Controllers.Main.txtCharts": "Charts", - "SSE.Controllers.Main.txtDelimiter": "Delimiter", - "SSE.Controllers.Main.txtDiagramTitle": "Chart Title", - "SSE.Controllers.Main.txtEditingMode": "Set editing mode...", - "SSE.Controllers.Main.txtEncoding": "Encoding", - "SSE.Controllers.Main.txtErrorLoadHistory": "Loading history failed", - "SSE.Controllers.Main.txtFiguredArrows": "Figured Arrows", - "SSE.Controllers.Main.txtLines": "Lines", - "SSE.Controllers.Main.txtMath": "Math", - "SSE.Controllers.Main.txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", - "SSE.Controllers.Main.txtRectangles": "Rectangles", - "SSE.Controllers.Main.txtSeries": "Series", - "SSE.Controllers.Main.txtSpace": "Space", - "SSE.Controllers.Main.txtStarsRibbons": "Stars & Ribbons", - "SSE.Controllers.Main.txtStyle_Bad": "Bad", - "SSE.Controllers.Main.txtStyle_Calculation": "Calculation", - "SSE.Controllers.Main.txtStyle_Check_Cell": "Check Cell", - "SSE.Controllers.Main.txtStyle_Comma": "Comma", - "SSE.Controllers.Main.txtStyle_Currency": "Currency", - "SSE.Controllers.Main.txtStyle_Explanatory_Text": "Explanatory Text", - "SSE.Controllers.Main.txtStyle_Good": "Good", - "SSE.Controllers.Main.txtStyle_Heading_1": "Heading 1", - "SSE.Controllers.Main.txtStyle_Heading_2": "Heading 2", - "SSE.Controllers.Main.txtStyle_Heading_3": "Heading 3", - "SSE.Controllers.Main.txtStyle_Heading_4": "Heading 4", - "SSE.Controllers.Main.txtStyle_Input": "Input", - "SSE.Controllers.Main.txtStyle_Linked_Cell": "Linked Cell", - "SSE.Controllers.Main.txtStyle_Neutral": "Neutral", - "SSE.Controllers.Main.txtStyle_Normal": "Normal", - "SSE.Controllers.Main.txtStyle_Note": "Note", - "SSE.Controllers.Main.txtStyle_Output": "Output", - "SSE.Controllers.Main.txtStyle_Percent": "Percent", - "SSE.Controllers.Main.txtStyle_Title": "Title", - "SSE.Controllers.Main.txtStyle_Total": "Total", - "SSE.Controllers.Main.txtStyle_Warning_Text": "Warning Text", - "SSE.Controllers.Main.txtTab": "Tab", - "SSE.Controllers.Main.txtXAxis": "X Axis", - "SSE.Controllers.Main.txtYAxis": "Y Axis", - "SSE.Controllers.Main.unknownErrorText": "Unknown error.", - "SSE.Controllers.Main.unsupportedBrowserErrorText": "Your browser is not supported.", - "SSE.Controllers.Main.uploadImageExtMessage": "Unknown image format.", - "SSE.Controllers.Main.uploadImageFileCountMessage": "No images uploaded.", - "SSE.Controllers.Main.uploadImageSizeMessage": "Maximum image size limit exceeded.", - "SSE.Controllers.Main.uploadImageTextText": "Uploading image...", - "SSE.Controllers.Main.uploadImageTitleText": "Uploading Image", - "SSE.Controllers.Main.waitText": "Please, wait...", - "SSE.Controllers.Main.warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
                    Contact your administrator to learn more.", - "SSE.Controllers.Main.warnLicenseExp": "Your license has expired.
                    Please update your license and refresh the page.", - "SSE.Controllers.Main.warnLicenseLimitedNoAccess": "License expired.
                    You have no access to document editing functionality.
                    Please contact your administrator.", - "SSE.Controllers.Main.warnLicenseLimitedRenewed": "License needs to be renewed.
                    You have a limited access to document editing functionality.
                    Please contact your administrator to get full access", - "SSE.Controllers.Main.warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.", - "SSE.Controllers.Main.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.
                    Contact %1 sales team for personal upgrade terms.", - "SSE.Controllers.Main.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", - "SSE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", - "SSE.Controllers.Search.textNoTextFound": "Text not found", - "SSE.Controllers.Search.textReplaceAll": "Replace All", - "SSE.Controllers.Settings.notcriticalErrorTitle": "Warning", - "SSE.Controllers.Settings.txtDe": "German", - "SSE.Controllers.Settings.txtEn": "English", - "SSE.Controllers.Settings.txtEs": "Spanish", - "SSE.Controllers.Settings.txtFr": "French", - "SSE.Controllers.Settings.txtIt": "Italian", - "SSE.Controllers.Settings.txtPl": "Polish", - "SSE.Controllers.Settings.txtRu": "Russian", - "SSE.Controllers.Settings.warnDownloadAs": "If you continue saving in this format all features except the text will be lost.
                    Are you sure you want to continue?", - "SSE.Controllers.Statusbar.cancelButtonText": "Cancel", - "SSE.Controllers.Statusbar.errNameExists": "Worksheet with such name already exists.", - "SSE.Controllers.Statusbar.errNameWrongChar": "A sheet name cannot contains characters: \\, /, *, ?, [, ], :", - "SSE.Controllers.Statusbar.errNotEmpty": "Sheet name must not be empty", - "SSE.Controllers.Statusbar.errorLastSheet": "Workbook must have at least one visible worksheet.", - "SSE.Controllers.Statusbar.errorRemoveSheet": "Can't delete the worksheet.", - "SSE.Controllers.Statusbar.menuDelete": "Delete", - "SSE.Controllers.Statusbar.menuDuplicate": "Duplicate", - "SSE.Controllers.Statusbar.menuHide": "Hide", - "SSE.Controllers.Statusbar.menuMore": "More", - "SSE.Controllers.Statusbar.menuRename": "Rename", - "SSE.Controllers.Statusbar.menuUnhide": "Unhide", - "SSE.Controllers.Statusbar.notcriticalErrorTitle": "Warning", - "SSE.Controllers.Statusbar.strRenameSheet": "Rename Sheet", - "SSE.Controllers.Statusbar.strSheet": "Sheet", - "SSE.Controllers.Statusbar.strSheetName": "Sheet Name", - "SSE.Controllers.Statusbar.textExternalLink": "External Link", - "SSE.Controllers.Statusbar.warnDeleteSheet": "The selected worksheets might contain data. Are you sure you want to proceed?", - "SSE.Controllers.Toolbar.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.", - "SSE.Controllers.Toolbar.dlgLeaveTitleText": "You leave the application", - "SSE.Controllers.Toolbar.leaveButtonText": "Leave this Page", - "SSE.Controllers.Toolbar.stayButtonText": "Stay on this Page", - "SSE.Views.AddFunction.sCatDateAndTime": "Date and time", - "SSE.Views.AddFunction.sCatEngineering": "Engineering", - "SSE.Views.AddFunction.sCatFinancial": "Financial", - "SSE.Views.AddFunction.sCatInformation": "Information", - "SSE.Views.AddFunction.sCatLogical": "Logical", - "SSE.Views.AddFunction.sCatLookupAndReference": "Lookup and Reference", - "SSE.Views.AddFunction.sCatMathematic": "Math and trigonometry", - "SSE.Views.AddFunction.sCatStatistical": "Statistical", - "SSE.Views.AddFunction.sCatTextAndData": "Text and data", - "SSE.Views.AddFunction.textBack": "Back", - "SSE.Views.AddFunction.textGroups": "Categories", - "SSE.Views.AddLink.textAddLink": "Add Link", - "SSE.Views.AddLink.textAddress": "Address", - "SSE.Views.AddLink.textDisplay": "Display", - "SSE.Views.AddLink.textExternalLink": "External Link", - "SSE.Views.AddLink.textInsert": "Insert", - "SSE.Views.AddLink.textInternalLink": "Internal Data Range", - "SSE.Views.AddLink.textLink": "Link", - "SSE.Views.AddLink.textLinkType": "Link Type", - "SSE.Views.AddLink.textRange": "Range", - "SSE.Views.AddLink.textRequired": "Required", - "SSE.Views.AddLink.textSelectedRange": "Selected Range", - "SSE.Views.AddLink.textSheet": "Sheet", - "SSE.Views.AddLink.textTip": "Screen Tip", - "SSE.Views.AddOther.textAddComment": "Add Comment", - "SSE.Views.AddOther.textAddress": "Address", - "SSE.Views.AddOther.textBack": "Back", - "SSE.Views.AddOther.textComment": "Comment", - "SSE.Views.AddOther.textDone": "Done", - "SSE.Views.AddOther.textFilter": "Filter", - "SSE.Views.AddOther.textFromLibrary": "Picture from Library", - "SSE.Views.AddOther.textFromURL": "Picture from URL", - "SSE.Views.AddOther.textImageURL": "Image URL", - "SSE.Views.AddOther.textInsert": "Insert", - "SSE.Views.AddOther.textInsertImage": "Insert Image", - "SSE.Views.AddOther.textLink": "Link", - "SSE.Views.AddOther.textLinkSettings": "Link Settings", - "SSE.Views.AddOther.textSort": "Sort and Filter", - "SSE.Views.EditCell.textAccounting": "Accounting", - "SSE.Views.EditCell.textAddCustomColor": "Add Custom Color", - "SSE.Views.EditCell.textAlignBottom": "Align Bottom", - "SSE.Views.EditCell.textAlignCenter": "Align Center", - "SSE.Views.EditCell.textAlignLeft": "Align Left", - "SSE.Views.EditCell.textAlignMiddle": "Align Middle", - "SSE.Views.EditCell.textAlignRight": "Align Right", - "SSE.Views.EditCell.textAlignTop": "Align Top", - "SSE.Views.EditCell.textAllBorders": "All Borders", - "SSE.Views.EditCell.textAngleClockwise": "Angle Clockwise", - "SSE.Views.EditCell.textAngleCounterclockwise": "Angle Counterclockwise", - "SSE.Views.EditCell.textBack": "Back", - "SSE.Views.EditCell.textBorderStyle": "Border Style", - "SSE.Views.EditCell.textBottomBorder": "Bottom Border", - "SSE.Views.EditCell.textCellStyle": "Cell Styles", - "SSE.Views.EditCell.textCharacterBold": "B", - "SSE.Views.EditCell.textCharacterItalic": "I", - "SSE.Views.EditCell.textCharacterUnderline": "U", - "SSE.Views.EditCell.textColor": "Color", - "SSE.Views.EditCell.textCurrency": "Currency", - "SSE.Views.EditCell.textCustomColor": "Custom Color", - "SSE.Views.EditCell.textDate": "Date", - "SSE.Views.EditCell.textDiagDownBorder": "Diagonal Down Border", - "SSE.Views.EditCell.textDiagUpBorder": "Diagonal Up Border", - "SSE.Views.EditCell.textDollar": "Dollar", - "SSE.Views.EditCell.textEuro": "Euro", - "SSE.Views.EditCell.textFillColor": "Fill Color", - "SSE.Views.EditCell.textFonts": "Fonts", - "SSE.Views.EditCell.textFormat": "Format", - "SSE.Views.EditCell.textGeneral": "General", - "SSE.Views.EditCell.textHorizontalText": "Horizontal Text", - "SSE.Views.EditCell.textInBorders": "Inside Borders", - "SSE.Views.EditCell.textInHorBorder": "Inside Horizontal Border", - "SSE.Views.EditCell.textInteger": "Integer", - "SSE.Views.EditCell.textInVertBorder": "Inside Vertical Border", - "SSE.Views.EditCell.textJustified": "Justified", - "SSE.Views.EditCell.textLeftBorder": "Left Border", - "SSE.Views.EditCell.textMedium": "Medium", - "SSE.Views.EditCell.textNoBorder": "No Border", - "SSE.Views.EditCell.textNumber": "Number", - "SSE.Views.EditCell.textPercentage": "Percentage", - "SSE.Views.EditCell.textPound": "Pound", - "SSE.Views.EditCell.textRightBorder": "Right Border", - "SSE.Views.EditCell.textRotateTextDown": "Rotate Text Down", - "SSE.Views.EditCell.textRotateTextUp": "Rotate Text Up", - "SSE.Views.EditCell.textRouble": "Rouble", - "SSE.Views.EditCell.textScientific": "Scientific", - "SSE.Views.EditCell.textSize": "Size", - "SSE.Views.EditCell.textText": "Text", - "SSE.Views.EditCell.textTextColor": "Text Color", - "SSE.Views.EditCell.textTextFormat": "Text Format", - "SSE.Views.EditCell.textTextOrientation": "Text Orientation", - "SSE.Views.EditCell.textThick": "Thick", - "SSE.Views.EditCell.textThin": "Thin", - "SSE.Views.EditCell.textTime": "Time", - "SSE.Views.EditCell.textTopBorder": "Top Border", - "SSE.Views.EditCell.textVerticalText": "Vertical Text", - "SSE.Views.EditCell.textWrapText": "Wrap Text", - "SSE.Views.EditCell.textYen": "Yen", - "SSE.Views.EditChart.textAddCustomColor": "Add Custom Color", - "SSE.Views.EditChart.textAuto": "Auto", - "SSE.Views.EditChart.textAxisCrosses": "Axis Crosses", - "SSE.Views.EditChart.textAxisOptions": "Axis Options", - "SSE.Views.EditChart.textAxisPosition": "Axis Position", - "SSE.Views.EditChart.textAxisTitle": "Axis Title", - "SSE.Views.EditChart.textBack": "Back", - "SSE.Views.EditChart.textBackward": "Move Backward", - "SSE.Views.EditChart.textBorder": "Border", - "SSE.Views.EditChart.textBottom": "Bottom", - "SSE.Views.EditChart.textChart": "Chart", - "SSE.Views.EditChart.textChartTitle": "Chart Title", - "SSE.Views.EditChart.textColor": "Color", - "SSE.Views.EditChart.textCrossesValue": "Crosses Value", - "SSE.Views.EditChart.textCustomColor": "Custom Color", - "SSE.Views.EditChart.textDataLabels": "Data Labels", - "SSE.Views.EditChart.textDesign": "Design", - "SSE.Views.EditChart.textDisplayUnits": "Display Units", - "SSE.Views.EditChart.textFill": "Fill", - "SSE.Views.EditChart.textForward": "Move Forward", - "SSE.Views.EditChart.textGridlines": "Gridlines", - "SSE.Views.EditChart.textHorAxis": "Horizontal Axis", - "SSE.Views.EditChart.textHorizontal": "Horizontal", - "SSE.Views.EditChart.textLabelOptions": "Label Options", - "SSE.Views.EditChart.textLabelPos": "Label Position", - "SSE.Views.EditChart.textLayout": "Layout", - "SSE.Views.EditChart.textLeft": "Left", - "SSE.Views.EditChart.textLeftOverlay": "Left Overlay", - "SSE.Views.EditChart.textLegend": "Legend", - "SSE.Views.EditChart.textMajor": "Major", - "SSE.Views.EditChart.textMajorMinor": "Major and Minor", - "SSE.Views.EditChart.textMajorType": "Major Type", - "SSE.Views.EditChart.textMaxValue": "Maximum Value", - "SSE.Views.EditChart.textMinor": "Minor", - "SSE.Views.EditChart.textMinorType": "Minor Type", - "SSE.Views.EditChart.textMinValue": "Minimum Value", - "SSE.Views.EditChart.textNone": "None", - "SSE.Views.EditChart.textNoOverlay": "No Overlay", - "SSE.Views.EditChart.textOverlay": "Overlay", - "SSE.Views.EditChart.textRemoveChart": "Remove Chart", - "SSE.Views.EditChart.textReorder": "Reorder", - "SSE.Views.EditChart.textRight": "Right", - "SSE.Views.EditChart.textRightOverlay": "Right Overlay", - "SSE.Views.EditChart.textRotated": "Rotated", - "SSE.Views.EditChart.textSize": "Size", - "SSE.Views.EditChart.textStyle": "Style", - "SSE.Views.EditChart.textTickOptions": "Tick Options", - "SSE.Views.EditChart.textToBackground": "Send to Background", - "SSE.Views.EditChart.textToForeground": "Bring to Foreground", - "SSE.Views.EditChart.textTop": "Top", - "SSE.Views.EditChart.textType": "Type", - "SSE.Views.EditChart.textValReverseOrder": "Values in Reverse Order", - "SSE.Views.EditChart.textVerAxis": "Vertical Axis", - "SSE.Views.EditChart.textVertical": "Vertical", - "SSE.Views.EditHyperlink.textBack": "Back", - "SSE.Views.EditHyperlink.textDisplay": "Display", - "SSE.Views.EditHyperlink.textEditLink": "Edit Link", - "SSE.Views.EditHyperlink.textExternalLink": "External Link", - "SSE.Views.EditHyperlink.textInternalLink": "Internal Data Range", - "SSE.Views.EditHyperlink.textLink": "Link", - "SSE.Views.EditHyperlink.textLinkType": "Link Type", - "SSE.Views.EditHyperlink.textRange": "Range", - "SSE.Views.EditHyperlink.textRemoveLink": "Remove Link", - "SSE.Views.EditHyperlink.textScreenTip": "Screen Tip", - "SSE.Views.EditHyperlink.textSheet": "Sheet", - "SSE.Views.EditImage.textAddress": "Address", - "SSE.Views.EditImage.textBack": "Back", - "SSE.Views.EditImage.textBackward": "Move Backward", - "SSE.Views.EditImage.textDefault": "Actual Size", - "SSE.Views.EditImage.textForward": "Move Forward", - "SSE.Views.EditImage.textFromLibrary": "Picture from Library", - "SSE.Views.EditImage.textFromURL": "Picture from URL", - "SSE.Views.EditImage.textImageURL": "Image URL", - "SSE.Views.EditImage.textLinkSettings": "Link Settings", - "SSE.Views.EditImage.textRemove": "Remove Image", - "SSE.Views.EditImage.textReorder": "Reorder", - "SSE.Views.EditImage.textReplace": "Replace", - "SSE.Views.EditImage.textReplaceImg": "Replace Image", - "SSE.Views.EditImage.textToBackground": "Send to Background", - "SSE.Views.EditImage.textToForeground": "Bring to Foreground", - "SSE.Views.EditShape.textAddCustomColor": "Add Custom Color", - "SSE.Views.EditShape.textBack": "Back", - "SSE.Views.EditShape.textBackward": "Move Backward", - "SSE.Views.EditShape.textBorder": "Border", - "SSE.Views.EditShape.textColor": "Color", - "SSE.Views.EditShape.textCustomColor": "Custom Color", - "SSE.Views.EditShape.textEffects": "Effects", - "SSE.Views.EditShape.textFill": "Fill", - "SSE.Views.EditShape.textForward": "Move Forward", - "SSE.Views.EditShape.textOpacity": "Opacity", - "SSE.Views.EditShape.textRemoveShape": "Remove Shape", - "SSE.Views.EditShape.textReorder": "Reorder", - "SSE.Views.EditShape.textReplace": "Replace", - "SSE.Views.EditShape.textSize": "Size", - "SSE.Views.EditShape.textStyle": "Style", - "SSE.Views.EditShape.textToBackground": "Send to Background", - "SSE.Views.EditShape.textToForeground": "Bring to Foreground", - "SSE.Views.EditText.textAddCustomColor": "Add Custom Color", - "SSE.Views.EditText.textBack": "Back", - "SSE.Views.EditText.textCharacterBold": "B", - "SSE.Views.EditText.textCharacterItalic": "I", - "SSE.Views.EditText.textCharacterUnderline": "U", - "SSE.Views.EditText.textCustomColor": "Custom Color", - "SSE.Views.EditText.textFillColor": "Fill Color", - "SSE.Views.EditText.textFonts": "Fonts", - "SSE.Views.EditText.textSize": "Size", - "SSE.Views.EditText.textTextColor": "Text Color", - "SSE.Views.FilterOptions.textClearFilter": "Clear Filter", - "SSE.Views.FilterOptions.textDeleteFilter": "Delete Filter", - "SSE.Views.FilterOptions.textFilter": "Filter Options", - "SSE.Views.Search.textByColumns": "By columns", - "SSE.Views.Search.textByRows": "By rows", - "SSE.Views.Search.textDone": "Done", - "SSE.Views.Search.textFind": "Find", - "SSE.Views.Search.textFindAndReplace": "Find and Replace", - "SSE.Views.Search.textFormulas": "Formulas", - "SSE.Views.Search.textHighlightRes": "Highlight results", - "SSE.Views.Search.textLookIn": "Look In", - "SSE.Views.Search.textMatchCase": "Match Case", - "SSE.Views.Search.textMatchCell": "Match Cell", - "SSE.Views.Search.textReplace": "Replace", - "SSE.Views.Search.textSearch": "Search", - "SSE.Views.Search.textSearchBy": "Search", - "SSE.Views.Search.textSearchIn": "Search In", - "SSE.Views.Search.textSheet": "Sheet", - "SSE.Views.Search.textValues": "Values", - "SSE.Views.Search.textWorkbook": "Workbook", - "SSE.Views.Settings.textAbout": "About", - "SSE.Views.Settings.textAddress": "address", - "SSE.Views.Settings.textApplication": "Application", - "SSE.Views.Settings.textApplicationSettings": "Application Settings", - "SSE.Views.Settings.textAuthor": "Author", - "SSE.Views.Settings.textBack": "Back", - "SSE.Views.Settings.textBottom": "Bottom", - "SSE.Views.Settings.textCentimeter": "Centimeter", - "SSE.Views.Settings.textCollaboration": "Collaboration", - "SSE.Views.Settings.textColorSchemes": "Color Schemes", - "SSE.Views.Settings.textComment": "Comment", - "SSE.Views.Settings.textCommentingDisplay": "Commenting Display", - "SSE.Views.Settings.textCreated": "Created", - "SSE.Views.Settings.textCreateDate": "Creation date", - "SSE.Views.Settings.textCustom": "Custom", - "SSE.Views.Settings.textCustomSize": "Custom Size", - "SSE.Views.Settings.textDisableAll": "Disable All", - "SSE.Views.Settings.textDisableAllMacrosWithNotification": "Disable all macros with a notification", - "SSE.Views.Settings.textDisableAllMacrosWithoutNotification": "Disable all macros without a notification", - "SSE.Views.Settings.textDisplayComments": "Comments", - "SSE.Views.Settings.textDisplayResolvedComments": "Resolved Comments", - "SSE.Views.Settings.textDocInfo": "Spreadsheet Info", - "SSE.Views.Settings.textDocTitle": "Spreadsheet title", - "SSE.Views.Settings.textDone": "Done", - "SSE.Views.Settings.textDownload": "Download", - "SSE.Views.Settings.textDownloadAs": "Download As...", - "SSE.Views.Settings.textEditDoc": "Edit Document", - "SSE.Views.Settings.textEmail": "email", - "SSE.Views.Settings.textEnableAll": "Enable All", - "SSE.Views.Settings.textEnableAllMacrosWithoutNotification": "Enable all macros without a notification", - "SSE.Views.Settings.textExample": "Example", - "SSE.Views.Settings.textFind": "Find", - "SSE.Views.Settings.textFindAndReplace": "Find and Replace", - "SSE.Views.Settings.textFormat": "Format", - "SSE.Views.Settings.textFormulaLanguage": "Formula Language", - "SSE.Views.Settings.textHelp": "Help", - "SSE.Views.Settings.textHideGridlines": "Hide Gridlines", - "SSE.Views.Settings.textHideHeadings": "Hide Headings", - "SSE.Views.Settings.textInch": "Inch", - "SSE.Views.Settings.textLandscape": "Landscape", - "SSE.Views.Settings.textLastModified": "Last Modified", - "SSE.Views.Settings.textLastModifiedBy": "Last Modified By", - "SSE.Views.Settings.textLeft": "Left", - "SSE.Views.Settings.textLoading": "Loading...", - "SSE.Views.Settings.textLocation": "Location", - "SSE.Views.Settings.textMacrosSettings": "Macros Settings", - "SSE.Views.Settings.textMargins": "Margins", - "SSE.Views.Settings.textOrientation": "Orientation", - "SSE.Views.Settings.textOwner": "Owner", - "SSE.Views.Settings.textPoint": "Point", - "SSE.Views.Settings.textPortrait": "Portrait", - "SSE.Views.Settings.textPoweredBy": "Powered by", - "SSE.Views.Settings.textPrint": "Print", - "SSE.Views.Settings.textR1C1Style": "R1C1 Reference Style", - "SSE.Views.Settings.textRegionalSettings": "Regional Settings", - "SSE.Views.Settings.textRight": "Right", - "SSE.Views.Settings.textSettings": "Settings", - "SSE.Views.Settings.textShowNotification": "Show Notification", - "SSE.Views.Settings.textSpreadsheetFormats": "Spreadsheet Formats", - "SSE.Views.Settings.textSpreadsheetSettings": "Spreadsheet Settings", - "SSE.Views.Settings.textSubject": "Subject", - "SSE.Views.Settings.textTel": "tel", - "SSE.Views.Settings.textTitle": "Title", - "SSE.Views.Settings.textTop": "Top", - "SSE.Views.Settings.textUnitOfMeasurement": "Unit of Measurement", - "SSE.Views.Settings.textUploaded": "Uploaded", - "SSE.Views.Settings.textVersion": "Version", - "SSE.Views.Settings.unknownText": "Unknown", - "SSE.Views.Toolbar.textBack": "Back" -} \ No newline at end of file + "Controller" : { + "Main" : { + "SDK": { + "txtStyle_Normal": "Normal", + "txtStyle_Heading_1": "Heading 1", + "txtStyle_Heading_2": "Heading 2", + "txtStyle_Heading_3": "Heading 3", + "txtStyle_Heading_4": "Heading 4", + "txtStyle_Title": "Title", + "txtStyle_Neutral": "Neutral", + "txtStyle_Bad": "Bad", + "txtStyle_Good": "Good", + "txtStyle_Input": "Input", + "txtStyle_Output": "Output", + "txtStyle_Calculation": "Calculation", + "txtStyle_Check_Cell": "Check Cell", + "txtStyle_Explanatory_Text": "Explanatory Text", + "txtStyle_Note": "Note", + "txtStyle_Linked_Cell": "Linked Cell", + "txtStyle_Warning_Text": "Warning Text", + "txtStyle_Total": "Total", + "txtStyle_Currency": "Currency", + "txtStyle_Percent": "Percent", + "txtStyle_Comma": "Comma", + "txtSeries": "Series", + "txtDiagramTitle": "Chart Title", + "txtXAxis": "X Axis", + "txtYAxis": "Y Axis", + "txtArt": "Your text here", + "txtAccent": "Accent" + }, + "textGuest": "Guest", + "textAnonymous": "Anonymous", + "warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only. Contact your administrator to learn more.", + "warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.", + "warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only. Contact %1 sales team for personal upgrade terms.", + "warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", + "textNoLicenseTitle": "License limit reached", + "warnLicenseLimitedNoAccess": "License expired. You have no access to document editing functionality. Please contact your administrator.", + "warnLicenseLimitedRenewed": "License needs to be renewed. You have a limited access to document editing functionality.
                    Please contact your administrator to get full access", + "textBuyNow": "Visit website", + "textContactUs": "Contact sales", + "textPaidFeature": "Paid feature", + "textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader. Please contact our Sales Department to get a quote.", + "textClose": "Close", + + "notcriticalErrorTitle": "Warning", + "textHasMacros": "The file contains automatic macros.
                    Do you want to run macros?", + "textRemember": "Remember my choice", + "textYes": "Yes", + "textNo": "No", + + "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.", + "errorUpdateVersion": "The file version has been changed. The page will be reloaded.", + "titleUpdateVersion": "Version changed", + "errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", + "titleServerVersion": "Editor updated", + "errorProcessSaveResult": "Saving is failed.", + "criticalErrorTitle": "Error", + "warnProcessRightsChange": "You have been denied the right to edit the file.", + "errorAccessDeny": "You are trying to perform an action you do not have rights for.
                    Please contact your Document Server administrator." + } + }, + "LongActions": { + "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...", + "applyChangesTitleText": "Loading Data", + "applyChangesTextText": "Loading data...", + "savePreparingText": "Preparing to save", + "savePreparingTitle": "Preparing to save. Please wait...", + "waitText": "Please, wait...", + "txtEditingMode": "Set editing mode...", + "loadingDocumentTitleText": "Loading document", + "loadingDocumentTextText": "Loading document...", + "textLoadingDocument": "Loading document" + }, + "Error": { + "criticalErrorTitle": "Error", + "unknownErrorText": "Unknown error.", + "convertationTimeoutText": "Convertation timeout exceeded.", + "openErrorText": "An error has occurred while opening the file", + "saveErrorText": "An error has occurred while saving the file", + "downloadErrorText": "Download failed.", + "uploadImageSizeMessage": "Maximium image size limit exceeded.", + "uploadImageExtMessage": "Unknown image format.", + "uploadImageFileCountMessage": "No images uploaded.", + "errorKeyEncrypt": "Unknown key descriptor", + "errorKeyExpire": "Key descriptor expired", + "errorUsersExceed": "Count of users was exceed", + "errorViewerDisconnect": "Connection is lost. You can still view the document,
                    but will not be able to download until the connection is restored and page is reloaded.", + "errorFilePassProtect": "The file is password protected and could not be opened.", + "errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
                    opening price, max price, min price, closing price.", + "errorDataRange": "Incorrect data range.", + "errorDatabaseConnection": "External error.
                    Database connection error. Please, contact support.", + "errorUserDrop": "The file cannot be accessed right now.", + "errorConnectToServer": " The document could not be saved. Please check connection settings or contact your administrator.
                    When you click the 'OK' button, you will be prompted to download the document.", + "errorBadImageUrl": "Image url is incorrect", + "errorSessionAbsolute": "The document editing session has expired. Please reload the page.", + "errorSessionIdle": "The document has not been edited for quite a long time. Please reload the page.", + "errorSessionToken": "The connection to the server has been interrupted. Please reload the page.", + "errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", + "errorAccessDeny": "You are trying to perform an action you do not have rights for.
                    Please contact your Document Server administrator.", + "errorEditingDownloadas": "An error occurred during the work with the document.
                    Use the 'Download' option to save the file backup copy to your computer hard drive.", + "errorFileSizeExceed": "The file size exceeds the limitation set for your server.
                    Please contact your Document Server administrator for details.", + "errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
                    Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", + "errorDefaultMessage": "Error code: %1", + "criticalErrorExtText": "Press 'OK' to back to document list.", + "notcriticalErrorTitle": "Warning", + "scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.", + "pastInMergeAreaError": "Cannot change part of a merged cell", + "errorWrongBracketsCount": "Found an error in the formula entered.
                    Wrong cout of brackets.", + "errorWrongOperator": "An error in the entered formula. Wrong operator is used.
                    Please correct the error or use the Esc button to cancel the formula editing.", + "errorCountArgExceed": "Found an error in the formula entered.
                    Count of arguments exceeded.", + "errorCountArg": "Found an error in the formula entered.
                    Invalid number of arguments.", + "errorFormulaName": "Found an error in the formula entered.
                    Incorrect formula name.", + "errorFormulaParsing": "Internal error while the formula parsing.", + "errorArgsRange": "Found an error in the formula entered.
                    Incorrect arguments range.", + "errorUnexpectedGuid": "External error.
                    Unexpected Guid. Please, contact support.", + "errorFileRequest": "External error.
                    File Request. Please, contact support.", + "errorFileVKey": "External error.
                    Incorrect securety key. Please, contact support.", + "errorMaxPoints": "The maximum number of points in series per chart is 4096.", + "errorOperandExpected": "The entered function syntax is not correct. Please check if you are missing one of the parentheses - '(' or ')'.", + "errorMoveRange": "Cann't change a part of merged cell", + "errorAutoFilterDataRange": "The operation could not be done for the selected range of cells.
                    Select a uniform data range inside or outside the table and try again.", + "errorAutoFilterChangeFormatTable": "The operation could not be done for the selected cells as you cannot move a part of the table.
                    Select another data range so that the whole table was shifted and try again.", + "errorAutoFilterChange": "The operation is not allowed, as it is attempting to shift cells in a table on your worksheet.", + "errorAutoFilterHiddenRange": "The operation cannot be performed because the area contains filtered cells.
                    Please unhide the filtered elements and try again.", + "errorFillRange": "Could not fill the selected range of cells.
                    All the merged cells need to be the same size.", + "errorInvalidRef": "Enter a correct name for the selection or a valid reference to go to.", + "errorCreateDefName": "The existing named ranges cannot be edited and the new ones cannot be created
                    at the moment as some of them are being edited.", + "errorPasteMaxRange": "The copy and paste area does not match. Please select an area with the same size or click the first cell in a row to paste the copied cells.", + "errorLockedAll": "The operation could not be done as the sheet has been locked by another user.", + "errorLockedWorksheetRename": "The sheet cannot be renamed at the moment as it is being renamed by another user", + "errorOpenWarning": "The length of one of the formulas in the file exceeded
                    the allowed number of characters and it was removed.", + "errorFrmlWrongReferences": "The function refers to a sheet that does not exist.
                    Please check the data and try again.", + "errorCopyMultiselectArea": "This command cannot be used with multiple selections.
                    Select a single range and try again.", + "errorPrintMaxPagesCount": "Unfortunately, it’s not possible to print more than 1500 pages at once in the current version of the program.
                    This restriction will be eliminated in upcoming releases.", + "errorChangeArray": "You cannot change part of an array.", + "errorMultiCellFormula": "Multi-cell array formulas are not allowed in tables.", + "errorFrmlMaxTextLength": "Text values in formulas are limited to 255 characters.
                    Use the CONCATENATE function or concatenation operator (&)", + "errorFrmlMaxLength": "You cannot add this formula as its length exceeded the allowed number of characters.
                    Please edit it and try again.", + "errorFrmlMaxReference": "You cannot enter this formula because it has too many values,
                    cell references, and/or names.", + "errorDataValidate":"The value you entered is not valid.
                    A user has restricted values that can be entered into this cell." + }, + "ContextMenu": { + "menuViewComment": "View Comment", + "menuAddComment": "Add Comment", + "menuMore": "More", + "menuCancel": "Cancel", + "textCopyCutPasteActions": "Copy, Cut and Paste Actions", + "errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", + "textDoNotShowAgain": "Don't show again", + "warnMergeLostData": "Operation can destroy data in the selected cells. Continue?", + "notcriticalErrorTitle": "Warning", + "menuAddLink": "Add Link", + "menuOpenLink": "Open Link", + "menuUnfreezePanes": "Unfreeze Panes", + "menuFreezePanes": "Freeze Panes", + "menuUnwrap": "Unwrap", + "menuWrap": "Wrap", + "menuUnmerge": "Unmerge", + "menuCell": "Cell", + "menuShow": "Show", + "menuHide": "Hide", + "menuEdit": "Edit", + "menuDelete": "Delete" + }, + "Toolbar": { + "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" + }, + "View" : { + "Add" : { + "textChart": "Chart", + "textFunction": "Function", + "textShape": "Shape", + "textOther": "Other", + "textGroups": "CATEGORIES", + "textBack": "Back", + "sCatLogical": "Logical", + "sCatDateAndTime": "Date and time", + "sCatEngineering": "Engineering", + "sCatFinancial": "Financial", + "sCatInformation": "Information", + "sCatLookupAndReference": "Lookup and Reference", + "sCatMathematic": "Math and trigonometry", + "sCatStatistical": "Statistical", + "sCatTextAndData": "Text and data", + "textImage": "Image", + "textInsertImage": "Insert Image", + "textLinkSettings": "Link Settings", + "textAddress": "Address", + "textImageURL": "Image URL", + "textPictureFromLibrary": "Picture from library", + "textPictureFromURL": "Picture from URL", + "txtNotUrl": "This field should be a URL in the format \"http://www.example.com\"", + "textEmptyImgUrl": "You need to specify image URL.", + "notcriticalErrorTitle": "Warning", + "textLink": "Link", + "textAddLink": "Add Link", + "textLinkType": "Link Type", + "textExternalLink": "External Link", + "textInternalDataRange": "Internal Data Range", + "textSheet": "Sheet", + "textRange": "Range", + "textRequired": "Required", + "textDisplay": "Display", + "textScreenTip": "Screen Tip", + "textInsert": "Insert", + "textInvalidRange": "ERROR! Invalid cells range", + "textSortAndFilter": "Sort and Filter", + "textFilter": "Filter", + "textComment": "Comment" + }, + "Edit" : { + "textSelectObjectToEdit": "Select object to edit", + "textSettings": "Settings", + "textCell": "Cell", + "textReplace": "Replace", + "textReorder": "Reorder", + "textAlign": "Align", + "textRemoveShape": "Remove Shape", + "textStyle": "Style", + "textShape": "Shape", + "textBack": "Back", + "textFill": "Fill", + "textBorder": "Border", + "textEffects": "Effects", + "textAddCustomColor": "Add Custom Color", + "textCustomColor": "Custom Color", + "textOpacity": "Opacity", + "textSize": "Size", + "textColor": "Color", + "textBringToForeground": "Bring to Foreground", + "textSendToBackground": "Send to Background", + "textMoveForward": "Move Forward", + "textMoveBackward": "Move Backward", + "textImage": "Image", + "textFromLibrary": "Picture from Library", + "textFromURL": "Picture from URL", + "textLinkSettings": "Link Settings", + "textAddress": "Address", + "textImageURL": "Image URL", + "textReplaceImage": "Replace Image", + "textActualSize": "Actual Size", + "textRemoveImage": "Remove Image", + "textEmptyImgUrl": "You need to specify image URL.", + "textNotUrl": "This field should be a URL in the format \"http://www.example.com\"", + "notcriticalErrorTitle": "Warning", + "textPictureFromLibrary": "Picture from Library", + "textPictureFromURL": "Picture from URL", + "textTextColor": "Text Color", + "textFillColor": "Fill Color", + "textTextFormat": "Text Format", + "textTextOrientation": "Text Orientation", + "textBorderStyle": "Border Style", + "textFonts": "Fonts", + "textAuto": "Auto", + "textPt": "pt", + "textFormat": "Format", + "textCellStyles": "Cell Styles", + "textAlignLeft": "Align Left", + "textAlignCenter": "Align Center", + "textAlignRight": "Align Right", + "textJustified": "Justified", + "textAlignTop": "Align Top", + "textAlignMiddle": "Align Middle", + "textAlignBottom": "Align Bottom", + "textWrapText": "Wrap Text", + "textHorizontalText": "Horizontal Text", + "textAngleCounterclockwise": "Angle Counterclockwise", + "textAngleClockwise": "Angle Clockwise", + "textVerticalText": "Vertical Text", + "textRotateTextUp": "Rotate Text Up", + "textRotateTextDown": "Rotate Text Down", + "textNoBorder": "No Border", + "textAllBorders": "All Borders", + "textBottomBorder": "Bottom Border", + "textTopBorder": "Top Border", + "textLeftBorder": "Left Border", + "textRightBorder": "Right Border", + "textInsideBorders": "Inside Borders", + "textInsideVerticalBorder": "Inside Vertical Border", + "textInsideHorizontalBorder": "Inside Horizontal Border", + "textDiagonalUpBorder": "Diagonal Up Border", + "textDiagonalDownBorder": "Diagonal Down Border", + "textThin": "Thin", + "textMedium": "Medium", + "textThick": "Thick", + "textGeneral": "General", + "textNumber": "Number", + "textInteger": "Integer", + "textScientific": "Scientific", + "textAccounting": "Accounting", + "textCurrency": "Currency", + "textDate": "Date", + "textTime": "Time", + "textPercentage": "Percentage", + "textText": "Text", + "textDollar": "Dollar", + "textEuro": "Euro", + "textPound": "Pound", + "textRouble": "Rouble", + "textYen": "Yen", + "textChart": "Chart", + "textDesign": "Design", + "textVerticalAxis": "Vertical Axis", + "textHorizontalAxis": "Horizontal Axis", + "textRemoveChart": "Remove Chart", + "textLayout": "Layout", + "textType": "Type", + "textChartTitle": "Chart Title", + "textLegend": "Legend", + "textAxisTitle": "Axis Title", + "textHorizontal": "Horizontal", + "textVertical": "Vertical", + "textGridlines": "Gridlines", + "textDataLabels": "Data Labels", + "textNone": "None", + "textOverlay": "Overlay", + "textNoOverlay": "No Overlay", + "textLeft": "Left", + "textTop": "Top", + "textRight": "Right", + "textBottom": "Bottom", + "textLeftOverlay": "Left Overlay", + "textRightOverlay": "Right Overlay", + "textRotated": "Rotated", + "textMajor": "Major", + "textMinor": "Minor", + "textMajorAndMinor": "Major And Minor", + "textCenter": "Center", + "textInnerBottom": "Inner Bottom", + "textInnerTop": "Inner Top", + "textOuterTop": "Outer Top", + "textFit": "Fit Width", + "textMinimumValue": "Minimum Value", + "textMaximumValue": "Maximum Value", + "textAxisCrosses": "Axis Crosses", + "textDisplayUnits": "Display Units", + "textValuesInReverseOrder": "Values in Reverse Order", + "textTickOptions": "Tick Options", + "textMajorType": "Major Type", + "textMinorType": "Minor Type", + "textLabelOptions": "Label Options", + "textLabelPosition": "Label Position", + "textAxisOptions": "Axis Options", + "textValue": "Value", + "textHundreds": "Hundreds", + "textThousands": "Thousands", + "textMillions": "Millions", + "textBillions": "Billions", + "textTrillions": "Trillions", + "textTenThousands": "10 000", + "textHundredThousands": "100 000", + "textTenMillions": "10 000 000", + "textHundredMil": "100 000 000", + "textCross": "Cross", + "textIn": "In", + "textOut": "Out", + "textLow": "Low", + "textHigh": "High", + "textNextToAxis": "Next to Axis", + "textCrossesValue": "Crosses Value", + "textOnTickMarks": "On Tick Marks", + "textBetweenTickMarks": "Between Tick Marks", + "textAxisPosition": "Axis Position", + "textHyperlink": "Hyperlink", + "textLinkType": "Link Type", + "textLink": "Link", + "textSheet": "Sheet", + "textRange": "Range", + "textDisplay": "Display", + "textScreenTip": "Screen Tip", + "textEditLink": "Edit Link", + "textRemoveLink": "Remove Link", + "textRequired": "Required", + "textInternalDataRange": "Internal Data Range", + "textExternalLink": "External Link", + "textDefault": "Selected range", + "textInvalidRange": "Invalid cells range", + "txtNotUrl": "This field should be a URL in the format \"http://www.example.com\"" + }, + "Settings": { + "textFindAndReplace": "Find and Replace", + "textFindAndReplaceAll": "Find and Replace All", + "textSpreadsheetSettings": "Spreadsheet Settings", + "textApplicationSettings": "Application Settings", + "textDownload": "Download", + "textPrint": "Print", + "textSpreadsheetInfo": "Spreadsheet Info", + "textHelp": "Help", + "textAbout": "About", + "textDone": "Done", + "textSettings": "Settings", + "textBack": "Back", + "textOrientation": "Orientation", + "textPortrait": "Portrait", + "textLandscape": "Landscape", + "textFormat": "Format", + "textMargins": "Margins", + "textColorSchemes": "Color Schemes", + "textHideHeadings": "Hide Headings", + "textHideGridlines": "Hide Gridlines", + "textLeft": "Left", + "textBottom": "Bottom", + "textTop": "Top", + "textRight": "Right", + "textCustomSize": "Custom Size", + "textSpreadsheetFormats": "Spreadsheet Formats", + "textDownloadAs": "Download As", + "warnDownloadAs": "If you continue saving in this format all features except the text will be lost.
                    Are you sure you want to continue?", + "notcriticalErrorTitle": "Warning", + "txtEncoding": "Encoding", + "txtDelimiter": "Delimiter", + "txtSpace": "Space", + "txtTab": "Tab", + "advCSVOptions": "Choose CSV Options", + "advDRMOptions": "Protected File", + "advDRMEnterPassword": "You password please:", + "advDRMPassword": "Password", + "closeButtonText": "Close File", + "txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", + "textCancel": "Cancel", + "textUnitOfMeasurement": "Unit Of Measurement", + "textCentimeter": "Centimeter", + "textPoint": "Point", + "textInch": "Inch", + "textMacrosSettings": "Macros Settings", + "textFormulaLanguage": "Formula Language", + "textRegionalSettings": "Regional Settings", + "textCommentingDisplay": "Commenting Display", + "textComments": "Comments", + "textResolvedComments": "Resolved Comments", + "textR1C1Style": "R1C1 Reference Style", + "textDisableAll": "Disable All", + "textDisableAllMacrosWithoutNotification": "Disable all macros without a notification", + "textShowNotification": "Show Notification", + "textDisableAllMacrosWithNotification": "Disable all macros with a notification", + "textEnableAll": "Enable All", + "textEnableAllMacrosWithoutNotification": "Enable all macros without a notification", + "textSpreadsheetTitle": "Spreadsheet Title", + "textOwner": "Owner", + "textLocation": "Location", + "textUploaded": "Uploaded", + "textTitle": "Title", + "textSubject": "Subject", + "textComment": "Comment", + "textLastModified": "Last Modified", + "textLastModifiedBy": "Last Modified By", + "textCreated": "Created", + "textApplication": "Application", + "textAuthor": "Author", + "textVersion": "Version", + "textEmail": "Email", + "textAddress": "Address", + "textTel": "Tel", + "textPoweredBy": "Powered By", + "textFind": "Find", + "textSearch": "Search", + "textReplace": "Replace", + "textMatchCase": "Match Case", + "textMatchCell": "Match Cell", + "textSearchIn": "Search In", + "textWorkbook": "Workbook", + "textSheet": "Sheet", + "textHighlightRes": "Highlight results", + "textByColumns": "By columns", + "textByRows": "By rows", + "textSearchBy": "Search", + "textLookIn": "Look In", + "textFormulas": "Formulas", + "textValues": "Values", + "textNoTextFound": "Text not found", + "textReplaceAll": "Replace All", + "textCollaboration": "Collaboration" + } + }, + "Statusbar": { + "textDuplicate": "Duplicate", + "textDelete": "Delete", + "textHide": "Hide", + "textUnhide": "Unhide", + "textErrorLastSheet": "Workbook must have at least one visible worksheet.", + "textErrorRemoveSheet": "Can\"t delete the worksheet.", + "textWarnDeleteSheet": "The worksheet maybe has data. Proceed operation?", + "textSheet": "Sheet", + "textRename": "Rename", + "textErrNameExists": "Worksheet with such name already exist.", + "textErrNameWrongChar": "A sheet name cannot contains characters: \\, \/, *, ?, [, ], :", + "textErrNotEmpty": "Sheet name must not be empty", + "textRenameSheet": "Rename Sheet", + "textSheetName": "Sheet Name", + "textCancel": "Cancel", + "notcriticalErrorTitle": "Warning", + "textMore": "More" + }, + "Common": { + "ThemeColorPalette": { + "textThemeColors": "Theme Colors", + "textStandartColors": "Standard Colors", + "textCustomColors": "Custom Colors" + }, + "Collaboration": { + "textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", + "notcriticalErrorTitle": "Warning", + "textCollaboration": "Collaboration", + "textBack": "Back", + "textUsers": "Users", + "textEditUser": "Users who are editing the file:", + "textComments": "Comments", + "textAddComment": "Add Comment", + "textCancel": "Cancel", + "textDone": "Done", + "textNoComments": "This document doesn't contain comments", + "textEdit": "Edit", + "textResolve": "Resolve", + "textReopen": "Reopen", + "textAddReply": "Add Reply", + "textDeleteComment": "Delete Comment", + "textMessageDeleteComment": "Do you really want to delete this comment?", + "textMessageDeleteReply": "Do you really want to delete this reply?", + "textDeleteReply": "Delete Reply", + "textEditComment": "Edit Comment", + "textEditReply": "Edit Reply" + } + }, + "About": { + "textAbout": "About", + "textVersion": "Version", + "textEmail": "Email", + "textAddress": "Address", + "textTel": "Tel", + "textPoweredBy": "Powered By", + "textBack": "Back" + } +} diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/de.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/de.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/de.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/de.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/de_desc.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/de_desc.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/de_desc.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/de_desc.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/en.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/en.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/en.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/en.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/en_desc.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/en_desc.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/en_desc.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/en_desc.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/es.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/es.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/es.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/es.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/es_desc.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/es_desc.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/es_desc.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/es_desc.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/fr.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/fr.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/fr.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/fr.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/fr_desc.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/fr_desc.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/fr_desc.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/fr_desc.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/it.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/it.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/it.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/it.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/it_desc.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/it_desc.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/it_desc.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/it_desc.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/pl.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/pl.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/pl.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/pl.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/ru.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/ru.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/ru.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/ru.json diff --git a/apps/spreadsheeteditor/mobile/resources/l10n/functions/ru_desc.json b/apps/spreadsheeteditor/mobile/locale/l10n/functions/ru_desc.json similarity index 100% rename from apps/spreadsheeteditor/mobile/resources/l10n/functions/ru_desc.json rename to apps/spreadsheeteditor/mobile/locale/l10n/functions/ru_desc.json diff --git a/apps/spreadsheeteditor/mobile/resources/css/app-ios.css b/apps/spreadsheeteditor/mobile/resources/css/app-ios.css deleted file mode 100644 index 48e497abc..000000000 --- a/apps/spreadsheeteditor/mobile/resources/css/app-ios.css +++ /dev/null @@ -1,8362 +0,0 @@ -html, -body, -.framework7-root { - position: relative; - height: 100%; - width: 100%; - overflow-x: hidden; -} -body { - font-family: -apple-system, SF UI Text, Helvetica Neue, Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; - color: #000; - font-size: 14px; - line-height: 1.4; - width: 100%; - -webkit-text-size-adjust: 100%; - background: #fff; - overflow: hidden; -} -.framework7-root { - overflow: hidden; -} -@media all and (width: 1024px) and (height: 691px) and (orientation: landscape) { - html, - body, - .framework7-root { - height: 671px; - } -} -@media all and (width: 1024px) and (height: 692px) and (orientation: landscape) { - html, - body, - .framework7-root { - height: 672px; - } -} -* { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -a, -input, -textarea, -select { - outline: 0; -} -a { - text-decoration: none; - color: #40865c; -} -p { - margin: 1em 0; -} -/* === Grid === */ -.row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.row > [class*="col-"] { - box-sizing: border-box; -} -.row .col-auto { - width: 100%; -} -.row .col-100 { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); -} -.row.no-gutter .col-100 { - width: 100%; -} -.row .col-95 { - width: 95%; - width: -webkit-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); -} -.row.no-gutter .col-95 { - width: 95%; -} -.row .col-90 { - width: 90%; - width: -webkit-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); -} -.row.no-gutter .col-90 { - width: 90%; -} -.row .col-85 { - width: 85%; - width: -webkit-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); -} -.row.no-gutter .col-85 { - width: 85%; -} -.row .col-80 { - width: 80%; - width: -webkit-calc((100% - 15px*0.25) / 1.25); - width: calc((100% - 15px*0.25) / 1.25); -} -.row.no-gutter .col-80 { - width: 80%; -} -.row .col-75 { - width: 75%; - width: -webkit-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); -} -.row.no-gutter .col-75 { - width: 75%; -} -.row .col-70 { - width: 70%; - width: -webkit-calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); -} -.row.no-gutter .col-70 { - width: 70%; -} -.row .col-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); -} -.row.no-gutter .col-66 { - width: 66.66666666666666%; -} -.row .col-65 { - width: 65%; - width: -webkit-calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); -} -.row.no-gutter .col-65 { - width: 65%; -} -.row .col-60 { - width: 60%; - width: -webkit-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); -} -.row.no-gutter .col-60 { - width: 60%; -} -.row .col-55 { - width: 55%; - width: -webkit-calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); -} -.row.no-gutter .col-55 { - width: 55%; -} -.row .col-50 { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); -} -.row.no-gutter .col-50 { - width: 50%; -} -.row .col-45 { - width: 45%; - width: -webkit-calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); -} -.row.no-gutter .col-45 { - width: 45%; -} -.row .col-40 { - width: 40%; - width: -webkit-calc((100% - 15px*1.5) / 2.5); - width: calc((100% - 15px*1.5) / 2.5); -} -.row.no-gutter .col-40 { - width: 40%; -} -.row .col-35 { - width: 35%; - width: -webkit-calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 15px*1.8571428571428572) / 2.857142857142857); -} -.row.no-gutter .col-35 { - width: 35%; -} -.row .col-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); -} -.row.no-gutter .col-33 { - width: 33.333333333333336%; -} -.row .col-30 { - width: 30%; - width: -webkit-calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); -} -.row.no-gutter .col-30 { - width: 30%; -} -.row .col-25 { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); -} -.row.no-gutter .col-25 { - width: 25%; -} -.row .col-20 { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); -} -.row.no-gutter .col-20 { - width: 20%; -} -.row .col-15 { - width: 15%; - width: -webkit-calc((100% - 15px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 15px*5.666666666666667) / 6.666666666666667); -} -.row.no-gutter .col-15 { - width: 15%; -} -.row .col-10 { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); -} -.row.no-gutter .col-10 { - width: 10%; -} -.row .col-5 { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); -} -.row.no-gutter .col-5 { - width: 5%; -} -.row .col-auto:nth-last-child(1), -.row .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); -} -.row.no-gutter .col-auto:nth-last-child(1), -.row.no-gutter .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; -} -.row .col-auto:nth-last-child(2), -.row .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); -} -.row.no-gutter .col-auto:nth-last-child(2), -.row.no-gutter .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; -} -.row .col-auto:nth-last-child(3), -.row .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); -} -.row.no-gutter .col-auto:nth-last-child(3), -.row.no-gutter .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; -} -.row .col-auto:nth-last-child(4), -.row .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); -} -.row.no-gutter .col-auto:nth-last-child(4), -.row.no-gutter .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; -} -.row .col-auto:nth-last-child(5), -.row .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); -} -.row.no-gutter .col-auto:nth-last-child(5), -.row.no-gutter .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; -} -.row .col-auto:nth-last-child(6), -.row .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 15px*5) / 6); - width: calc((100% - 15px*5) / 6); -} -.row.no-gutter .col-auto:nth-last-child(6), -.row.no-gutter .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; -} -.row .col-auto:nth-last-child(7), -.row .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 15px*6) / 7); - width: calc((100% - 15px*6) / 7); -} -.row.no-gutter .col-auto:nth-last-child(7), -.row.no-gutter .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; -} -.row .col-auto:nth-last-child(8), -.row .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 15px*7) / 8); - width: calc((100% - 15px*7) / 8); -} -.row.no-gutter .col-auto:nth-last-child(8), -.row.no-gutter .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; -} -.row .col-auto:nth-last-child(9), -.row .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 15px*8) / 9); - width: calc((100% - 15px*8) / 9); -} -.row.no-gutter .col-auto:nth-last-child(9), -.row.no-gutter .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; -} -.row .col-auto:nth-last-child(10), -.row .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); -} -.row.no-gutter .col-auto:nth-last-child(10), -.row.no-gutter .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; -} -.row .col-auto:nth-last-child(11), -.row .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 15px*10) / 11); - width: calc((100% - 15px*10) / 11); -} -.row.no-gutter .col-auto:nth-last-child(11), -.row.no-gutter .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; -} -.row .col-auto:nth-last-child(12), -.row .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 15px*11) / 12); - width: calc((100% - 15px*11) / 12); -} -.row.no-gutter .col-auto:nth-last-child(12), -.row.no-gutter .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; -} -.row .col-auto:nth-last-child(13), -.row .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 15px*12) / 13); - width: calc((100% - 15px*12) / 13); -} -.row.no-gutter .col-auto:nth-last-child(13), -.row.no-gutter .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; -} -.row .col-auto:nth-last-child(14), -.row .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 15px*13) / 14); - width: calc((100% - 15px*13) / 14); -} -.row.no-gutter .col-auto:nth-last-child(14), -.row.no-gutter .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; -} -.row .col-auto:nth-last-child(15), -.row .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 15px*14) / 15); - width: calc((100% - 15px*14) / 15); -} -.row.no-gutter .col-auto:nth-last-child(15), -.row.no-gutter .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; -} -.row .col-auto:nth-last-child(16), -.row .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 15px*15) / 16); - width: calc((100% - 15px*15) / 16); -} -.row.no-gutter .col-auto:nth-last-child(16), -.row.no-gutter .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; -} -.row .col-auto:nth-last-child(17), -.row .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 15px*16) / 17); - width: calc((100% - 15px*16) / 17); -} -.row.no-gutter .col-auto:nth-last-child(17), -.row.no-gutter .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; -} -.row .col-auto:nth-last-child(18), -.row .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 15px*17) / 18); - width: calc((100% - 15px*17) / 18); -} -.row.no-gutter .col-auto:nth-last-child(18), -.row.no-gutter .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; -} -.row .col-auto:nth-last-child(19), -.row .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 15px*18) / 19); - width: calc((100% - 15px*18) / 19); -} -.row.no-gutter .col-auto:nth-last-child(19), -.row.no-gutter .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; -} -.row .col-auto:nth-last-child(20), -.row .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); -} -.row.no-gutter .col-auto:nth-last-child(20), -.row.no-gutter .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; -} -.row .col-auto:nth-last-child(21), -.row .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 15px*20) / 21); - width: calc((100% - 15px*20) / 21); -} -.row.no-gutter .col-auto:nth-last-child(21), -.row.no-gutter .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; -} -@media all and (min-width: 768px) { - .row .tablet-100 { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); - } - .row.no-gutter .tablet-100 { - width: 100%; - } - .row .tablet-95 { - width: 95%; - width: -webkit-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 15px*0.05263157894736836) / 1.0526315789473684); - } - .row.no-gutter .tablet-95 { - width: 95%; - } - .row .tablet-90 { - width: 90%; - width: -webkit-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 15px*0.11111111111111116) / 1.1111111111111112); - } - .row.no-gutter .tablet-90 { - width: 90%; - } - .row .tablet-85 { - width: 85%; - width: -webkit-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 15px*0.17647058823529416) / 1.1764705882352942); - } - .row.no-gutter .tablet-85 { - width: 85%; - } - .row .tablet-80 { - width: 80%; - width: -webkit-calc((100% - 15px*0.25) / 1.25); - width: calc((100% - 15px*0.25) / 1.25); - } - .row.no-gutter .tablet-80 { - width: 80%; - } - .row .tablet-75 { - width: 75%; - width: -webkit-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 15px*0.33333333333333326) / 1.3333333333333333); - } - .row.no-gutter .tablet-75 { - width: 75%; - } - .row .tablet-70 { - width: 70%; - width: -webkit-calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 15px*0.4285714285714286) / 1.4285714285714286); - } - .row.no-gutter .tablet-70 { - width: 70%; - } - .row .tablet-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 15px*0.5000000000000002) / 1.5000000000000002); - } - .row.no-gutter .tablet-66 { - width: 66.66666666666666%; - } - .row .tablet-65 { - width: 65%; - width: -webkit-calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 15px*0.5384615384615385) / 1.5384615384615385); - } - .row.no-gutter .tablet-65 { - width: 65%; - } - .row .tablet-60 { - width: 60%; - width: -webkit-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 15px*0.6666666666666667) / 1.6666666666666667); - } - .row.no-gutter .tablet-60 { - width: 60%; - } - .row .tablet-55 { - width: 55%; - width: -webkit-calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 15px*0.8181818181818181) / 1.8181818181818181); - } - .row.no-gutter .tablet-55 { - width: 55%; - } - .row .tablet-50 { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); - } - .row.no-gutter .tablet-50 { - width: 50%; - } - .row .tablet-45 { - width: 45%; - width: -webkit-calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 15px*1.2222222222222223) / 2.2222222222222223); - } - .row.no-gutter .tablet-45 { - width: 45%; - } - .row .tablet-40 { - width: 40%; - width: -webkit-calc((100% - 15px*1.5) / 2.5); - width: calc((100% - 15px*1.5) / 2.5); - } - .row.no-gutter .tablet-40 { - width: 40%; - } - .row .tablet-35 { - width: 35%; - width: -webkit-calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 15px*1.8571428571428572) / 2.857142857142857); - } - .row.no-gutter .tablet-35 { - width: 35%; - } - .row .tablet-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); - } - .row.no-gutter .tablet-33 { - width: 33.333333333333336%; - } - .row .tablet-30 { - width: 30%; - width: -webkit-calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 15px*2.3333333333333335) / 3.3333333333333335); - } - .row.no-gutter .tablet-30 { - width: 30%; - } - .row .tablet-25 { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); - } - .row.no-gutter .tablet-25 { - width: 25%; - } - .row .tablet-20 { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); - } - .row.no-gutter .tablet-20 { - width: 20%; - } - .row .tablet-15 { - width: 15%; - width: -webkit-calc((100% - 15px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 15px*5.666666666666667) / 6.666666666666667); - } - .row.no-gutter .tablet-15 { - width: 15%; - } - .row .tablet-10 { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); - } - .row.no-gutter .tablet-10 { - width: 10%; - } - .row .tablet-5 { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); - } - .row.no-gutter .tablet-5 { - width: 5%; - } - .row .tablet-auto:nth-last-child(1), - .row .tablet-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 15px*0) / 1); - width: calc((100% - 15px*0) / 1); - } - .row.no-gutter .tablet-auto:nth-last-child(1), - .row.no-gutter .tablet-auto:nth-last-child(1) ~ .tablet-auto { - width: 100%; - } - .row .tablet-auto:nth-last-child(2), - .row .tablet-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 15px*1) / 2); - width: calc((100% - 15px*1) / 2); - } - .row.no-gutter .tablet-auto:nth-last-child(2), - .row.no-gutter .tablet-auto:nth-last-child(2) ~ .tablet-auto { - width: 50%; - } - .row .tablet-auto:nth-last-child(3), - .row .tablet-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 15px*2) / 3); - width: calc((100% - 15px*2) / 3); - } - .row.no-gutter .tablet-auto:nth-last-child(3), - .row.no-gutter .tablet-auto:nth-last-child(3) ~ .tablet-auto { - width: 33.33333333%; - } - .row .tablet-auto:nth-last-child(4), - .row .tablet-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 15px*3) / 4); - width: calc((100% - 15px*3) / 4); - } - .row.no-gutter .tablet-auto:nth-last-child(4), - .row.no-gutter .tablet-auto:nth-last-child(4) ~ .tablet-auto { - width: 25%; - } - .row .tablet-auto:nth-last-child(5), - .row .tablet-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 15px*4) / 5); - width: calc((100% - 15px*4) / 5); - } - .row.no-gutter .tablet-auto:nth-last-child(5), - .row.no-gutter .tablet-auto:nth-last-child(5) ~ .tablet-auto { - width: 20%; - } - .row .tablet-auto:nth-last-child(6), - .row .tablet-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 15px*5) / 6); - width: calc((100% - 15px*5) / 6); - } - .row.no-gutter .tablet-auto:nth-last-child(6), - .row.no-gutter .tablet-auto:nth-last-child(6) ~ .tablet-auto { - width: 16.66666667%; - } - .row .tablet-auto:nth-last-child(7), - .row .tablet-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 15px*6) / 7); - width: calc((100% - 15px*6) / 7); - } - .row.no-gutter .tablet-auto:nth-last-child(7), - .row.no-gutter .tablet-auto:nth-last-child(7) ~ .tablet-auto { - width: 14.28571429%; - } - .row .tablet-auto:nth-last-child(8), - .row .tablet-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 15px*7) / 8); - width: calc((100% - 15px*7) / 8); - } - .row.no-gutter .tablet-auto:nth-last-child(8), - .row.no-gutter .tablet-auto:nth-last-child(8) ~ .tablet-auto { - width: 12.5%; - } - .row .tablet-auto:nth-last-child(9), - .row .tablet-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 15px*8) / 9); - width: calc((100% - 15px*8) / 9); - } - .row.no-gutter .tablet-auto:nth-last-child(9), - .row.no-gutter .tablet-auto:nth-last-child(9) ~ .tablet-auto { - width: 11.11111111%; - } - .row .tablet-auto:nth-last-child(10), - .row .tablet-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 15px*9) / 10); - width: calc((100% - 15px*9) / 10); - } - .row.no-gutter .tablet-auto:nth-last-child(10), - .row.no-gutter .tablet-auto:nth-last-child(10) ~ .tablet-auto { - width: 10%; - } - .row .tablet-auto:nth-last-child(11), - .row .tablet-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 15px*10) / 11); - width: calc((100% - 15px*10) / 11); - } - .row.no-gutter .tablet-auto:nth-last-child(11), - .row.no-gutter .tablet-auto:nth-last-child(11) ~ .tablet-auto { - width: 9.09090909%; - } - .row .tablet-auto:nth-last-child(12), - .row .tablet-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 15px*11) / 12); - width: calc((100% - 15px*11) / 12); - } - .row.no-gutter .tablet-auto:nth-last-child(12), - .row.no-gutter .tablet-auto:nth-last-child(12) ~ .tablet-auto { - width: 8.33333333%; - } - .row .tablet-auto:nth-last-child(13), - .row .tablet-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 15px*12) / 13); - width: calc((100% - 15px*12) / 13); - } - .row.no-gutter .tablet-auto:nth-last-child(13), - .row.no-gutter .tablet-auto:nth-last-child(13) ~ .tablet-auto { - width: 7.69230769%; - } - .row .tablet-auto:nth-last-child(14), - .row .tablet-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 15px*13) / 14); - width: calc((100% - 15px*13) / 14); - } - .row.no-gutter .tablet-auto:nth-last-child(14), - .row.no-gutter .tablet-auto:nth-last-child(14) ~ .tablet-auto { - width: 7.14285714%; - } - .row .tablet-auto:nth-last-child(15), - .row .tablet-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 15px*14) / 15); - width: calc((100% - 15px*14) / 15); - } - .row.no-gutter .tablet-auto:nth-last-child(15), - .row.no-gutter .tablet-auto:nth-last-child(15) ~ .tablet-auto { - width: 6.66666667%; - } - .row .tablet-auto:nth-last-child(16), - .row .tablet-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 15px*15) / 16); - width: calc((100% - 15px*15) / 16); - } - .row.no-gutter .tablet-auto:nth-last-child(16), - .row.no-gutter .tablet-auto:nth-last-child(16) ~ .tablet-auto { - width: 6.25%; - } - .row .tablet-auto:nth-last-child(17), - .row .tablet-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 15px*16) / 17); - width: calc((100% - 15px*16) / 17); - } - .row.no-gutter .tablet-auto:nth-last-child(17), - .row.no-gutter .tablet-auto:nth-last-child(17) ~ .tablet-auto { - width: 5.88235294%; - } - .row .tablet-auto:nth-last-child(18), - .row .tablet-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 15px*17) / 18); - width: calc((100% - 15px*17) / 18); - } - .row.no-gutter .tablet-auto:nth-last-child(18), - .row.no-gutter .tablet-auto:nth-last-child(18) ~ .tablet-auto { - width: 5.55555556%; - } - .row .tablet-auto:nth-last-child(19), - .row .tablet-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 15px*18) / 19); - width: calc((100% - 15px*18) / 19); - } - .row.no-gutter .tablet-auto:nth-last-child(19), - .row.no-gutter .tablet-auto:nth-last-child(19) ~ .tablet-auto { - width: 5.26315789%; - } - .row .tablet-auto:nth-last-child(20), - .row .tablet-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 15px*19) / 20); - width: calc((100% - 15px*19) / 20); - } - .row.no-gutter .tablet-auto:nth-last-child(20), - .row.no-gutter .tablet-auto:nth-last-child(20) ~ .tablet-auto { - width: 5%; - } - .row .tablet-auto:nth-last-child(21), - .row .tablet-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 15px*20) / 21); - width: calc((100% - 15px*20) / 21); - } - .row.no-gutter .tablet-auto:nth-last-child(21), - .row.no-gutter .tablet-auto:nth-last-child(21) ~ .tablet-auto { - width: 4.76190476%; - } -} -/* === Views === */ -.views, -.view { - position: relative; - width: 100%; - height: 100%; - z-index: 5000; -} -.views { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.view { - overflow: hidden; - box-sizing: border-box; -} -/* === Pages === */ -.pages { - position: relative; - width: 100%; - height: 100%; - overflow: hidden; - background: #000; -} -.page { - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #efeff4; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page.cached { - display: none; -} -.page-on-left { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); -} -.page-on-center .swipeback-page-shadow { - opacity: 1; -} -.page-on-right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} -.page-on-right .swipeback-page-shadow { - opacity: 0; -} -.page-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - box-sizing: border-box; - height: 100%; - position: relative; - z-index: 1; -} -.swipeback-page-shadow { - position: absolute; - right: 100%; - top: 0; - width: 16px; - height: 100%; - background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - z-index: -1; - content: ''; -} -html.android .swipeback-page-shadow { - display: none; - -webkit-animation: none; - animation: none; -} -.page-transitioning, -.page-transitioning .swipeback-page-shadow { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page-from-right-to-center:before, -.page-from-center-to-right:before { - position: absolute; - right: 100%; - top: 0; - width: 16px; - height: 100%; - background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); - z-index: -1; - content: ''; -} -html.android .page-from-right-to-center:before, -html.android .page-from-center-to-right:before { - display: none; - -webkit-animation: none; - animation: none; -} -.page-from-right-to-center { - -webkit-animation: pageFromRightToCenter 400ms forwards; - animation: pageFromRightToCenter 400ms forwards; -} -.page-from-right-to-center:before { - -webkit-animation: pageFromRightToCenterShadow 400ms forwards; - animation: pageFromRightToCenterShadow 400ms forwards; -} -.page-from-center-to-right { - -webkit-animation: pageFromCenterToRight 400ms forwards; - animation: pageFromCenterToRight 400ms forwards; -} -.page-from-center-to-right:before { - -webkit-animation: pageFromCenterToRightShadow 400ms forwards; - animation: pageFromCenterToRightShadow 400ms forwards; -} -@-webkit-keyframes pageFromRightToCenter { - from { - -webkit-transform: translate3d(100%, 0, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromRightToCenter { - from { - transform: translate3d(100%, 0, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes pageFromRightToCenterShadow { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes pageFromRightToCenterShadow { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@-webkit-keyframes pageFromCenterToRight { - from { - -webkit-transform: translate3d(0, 0, 0); - } - to { - -webkit-transform: translate3d(100%, 0, 0); - } -} -@keyframes pageFromCenterToRight { - from { - transform: translate3d(0, 0, 0); - } - to { - transform: translate3d(100%, 0, 0); - } -} -@-webkit-keyframes pageFromCenterToRightShadow { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@keyframes pageFromCenterToRightShadow { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.page-from-center-to-left { - -webkit-animation: pageFromCenterToLeft 400ms forwards; - animation: pageFromCenterToLeft 400ms forwards; -} -.page-from-left-to-center { - -webkit-animation: pageFromLeftToCenter 400ms forwards; - animation: pageFromLeftToCenter 400ms forwards; -} -@-webkit-keyframes pageFromCenterToLeft { - from { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } - to { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - } -} -@keyframes pageFromCenterToLeft { - from { - transform: translate3d(0, 0, 0); - } - to { - opacity: 0.9; - transform: translate3d(-20%, 0, 0); - } -} -@-webkit-keyframes pageFromLeftToCenter { - from { - opacity: 0.9; - -webkit-transform: translate3d(-20%, 0, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromLeftToCenter { - from { - transform: translate3d(-20%, 0, 0); - } - to { - opacity: 1; - transform: translate3d(0, 0, 0); - } -} -/* === Toolbars === */ -.navbar-inner, -.toolbar-inner { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - padding: 0 8px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.navbar-inner.cached { - display: none; -} -.navbar, -.toolbar { - height: 44px; - width: 100%; - box-sizing: border-box; - font-size: 17px; - position: relative; - margin: 0; - z-index: 500; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -.navbar b, -.toolbar b { - font-weight: 500; -} -html.ios-gt-8 .navbar b, -html.ios-gt-8 .toolbar b { - font-weight: 600; -} -.navbar, -.toolbar, -.subnavbar { - background: #f7f7f8; -} -.navbar a.link, -.toolbar a.link, -.subnavbar a.link { - line-height: 44px; - height: 44px; - text-decoration: none; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translateZ(0px); - transform: translateZ(0px); -} -html:not(.watch-active-state) .navbar a.link:active, -html:not(.watch-active-state) .toolbar a.link:active, -html:not(.watch-active-state) .subnavbar a.link:active, -.navbar a.link.active-state, -.toolbar a.link.active-state, -.subnavbar a.link.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.navbar a.link i + span, -.toolbar a.link i + span, -.subnavbar a.link i + span, -.navbar a.link i + i, -.toolbar a.link i + i, -.subnavbar a.link i + i, -.navbar a.link span + i, -.toolbar a.link span + i, -.subnavbar a.link span + i, -.navbar a.link span + span, -.toolbar a.link span + span, -.subnavbar a.link span + span { - margin-left: 7px; -} -.navbar a.icon-only, -.toolbar a.icon-only, -.subnavbar a.icon-only { - min-width: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - margin: 0; -} -.navbar i.icon, -.toolbar i.icon, -.subnavbar i.icon { - display: block; -} -.navbar { - left: 0; - top: 0; -} -.navbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .navbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .navbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.navbar:after { - backface-visibility: hidden; -} -.navbar.no-border:after { - display: none; -} -.navbar .center { - font-size: 17px; - font-weight: 500; - text-align: center; - margin: 0; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - line-height: 44px; - -webkit-flex-shrink: 10; - -ms-flex: 0 10 auto; - flex-shrink: 10; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -html.ios-gt-8 .navbar .center { - font-weight: 600; -} -.navbar .left, -.navbar .right { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar .left a + a, -.navbar .right a + a { - margin-left: 15px; -} -.navbar .left { - margin-right: 10px; -} -.navbar .right { - margin-left: 10px; -} -.navbar .right:first-child { - position: absolute; - right: 8px; - height: 100%; -} -.popup .navbar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.subnavbar { - height: 44px; - width: 100%; - position: absolute; - left: 0; - top: 100%; - margin-top: -1px; - z-index: 20; - box-sizing: border-box; - padding: 0 8px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.subnavbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .subnavbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .subnavbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.subnavbar.no-border:after { - display: none; -} -.navbar.no-border .subnavbar { - margin-top: 0; -} -.navbar-on-left .subnavbar, -.navbar-on-right .subnavbar { - pointer-events: none; -} -.navbar .subnavbar, -.page .subnavbar { - position: absolute; -} -.page > .subnavbar { - top: 0; - margin-top: 0; -} -.subnavbar > .buttons-row { - width: 100%; -} -.subnavbar .searchbar, -.subnavbar.searchbar { - position: absolute; -} -.subnavbar.searchbar, -.subnavbar .searchbar { - position: absolute; -} -.subnavbar .searchbar { - left: 0; - top: 0; -} -.toolbar { - left: 0; - bottom: 0; -} -.toolbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .toolbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .toolbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.toolbar.no-border:before { - display: none; -} -.toolbar a { - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -.tabbar { - color: #929292; - z-index: 5001; -} -.tabbar a { - color: #929292; -} -.tabbar a.active { - color: #40865c; -} -.tabbar a.link { - line-height: 1.4; -} -.tabbar a.tab-link, -.tabbar a.link { - height: 100%; - width: 100%; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - overflow: visible; - -webkit-box-flex: 1; - -ms-flex: 1; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.tabbar i.icon { - height: 30px; -} -.tabbar-labels { - height: 50px; -} -.tabbar-labels a.tab-link, -.tabbar-labels a.link { - padding-top: 4px; - padding-bottom: 4px; - height: 100%; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.tabbar-labels a.tab-link i + span, -.tabbar-labels a.link i + span { - margin: 0; -} -.tabbar-labels span.tabbar-label { - line-height: 1; - display: block; - margin: 0; - letter-spacing: 0.01em; - font-size: 10px; - position: relative; - text-overflow: ellipsis; - white-space: nowrap; -} -.subnavbar input[type="text"], -.navbar input[type="text"], -.subnavbar input[type="password"], -.navbar input[type="password"], -.subnavbar input[type="search"], -.navbar input[type="search"], -.subnavbar input[type="email"], -.navbar input[type="email"], -.subnavbar input[type="tel"], -.navbar input[type="tel"], -.subnavbar input[type="url"], -.navbar input[type="url"] { - box-sizing: border-box; - width: 100%; - height: 28px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 5px; - font-family: inherit; - color: #000; - font-size: 14px; - font-weight: normal; - padding: 0 8px; - background-color: #fff; -} -@media all and (min-width: 768px) { - .tabbar .toolbar-inner { - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - } - .tabbar a.tab-link, - .tabbar a.link { - width: auto; - min-width: 105px; - } - .tabbar-labels { - height: 56px; - } - .tabbar-labels span.tabbar-label { - font-size: 14px; - } -} -.navbar-from-right-to-center .left, -.navbar-from-right-to-center .right, -.navbar-from-right-to-center .center, -.navbar-from-right-to-center .subnavbar, -.navbar-from-right-to-center .fading { - -webkit-animation: navbarElementFadeIn 400ms forwards; - animation: navbarElementFadeIn 400ms forwards; -} -.navbar-from-right-to-center .sliding { - opacity: 1; -} -.navbar-from-center-to-right .left, -.navbar-from-center-to-right .right, -.navbar-from-center-to-right .center, -.navbar-from-center-to-right .subnavbar, -.navbar-from-center-to-right .fading { - -webkit-animation: navbarElementFadeOut 400ms forwards; - animation: navbarElementFadeOut 400ms forwards; -} -.navbar-from-center-to-right .sliding { - opacity: 0; -} -.navbar-from-center-to-right .subnavbar.sliding { - opacity: 1; -} -@-webkit-keyframes navbarElementFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes navbarElementFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -.navbar-from-center-to-left .left, -.navbar-from-center-to-left .right, -.navbar-from-center-to-left .center, -.navbar-from-center-to-left .subnavbar, -.navbar-from-center-to-left .fading { - -webkit-animation: navbarElementFadeOut 400ms forwards; - animation: navbarElementFadeOut 400ms forwards; -} -.navbar-from-center-to-left .sliding { - opacity: 0; -} -.navbar-from-center-to-left .subnavbar.sliding { - opacity: 1; -} -.navbar-from-left-to-center .left, -.navbar-from-left-to-center .right, -.navbar-from-left-to-center .center, -.navbar-from-left-to-center .subnavbar, -.navbar-from-left-to-center .fading { - -webkit-animation: navbarElementFadeIn 400ms forwards; - animation: navbarElementFadeIn 400ms forwards; -} -.navbar-from-left-to-center .sliding { - opacity: 1; -} -.navbar-on-left .left, -.navbar-on-left .right, -.navbar-on-left .center, -.navbar-on-left .subnavbar, -.navbar-on-left .fading { - opacity: 0; -} -.navbar-on-left .sliding { - opacity: 0; -} -.navbar-on-left .subnavbar.sliding { - opacity: 1; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); -} -.navbar-on-right .left, -.navbar-on-right .right, -.navbar-on-right .center, -.navbar-on-right .subnavbar, -.navbar-on-right .fading { - opacity: 0; -} -.navbar-on-right .sliding { - opacity: 0; -} -.navbar-on-right .subnavbar.sliding { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} -@-webkit-keyframes navbarElementFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@keyframes navbarElementFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.navbar-from-right-to-center .left.sliding .back.link .icon, -.navbar-from-center-to-right .left.sliding .back.link .icon, -.navbar-from-center-to-left .left.sliding .back.link .icon, -.navbar-from-left-to-center .left.sliding .back.link .icon { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar-from-right-to-center .sliding, -.navbar-from-center-to-right .sliding, -.navbar-from-center-to-left .sliding, -.navbar-from-left-to-center .sliding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-animation: none; - animation: none; -} -/* === Relation between toolbar/navbar types and pages === */ -.page > .navbar, -.view > .navbar, -.views > .navbar, -.page > .toolbar, -.view > .toolbar, -.views > .toolbar { - position: absolute; -} -.subnavbar ~ .page-content { - padding-top: 44px; -} -.navbar-through .page-content, -.navbar-fixed .page-content { - padding-top: 44px; -} -.navbar-through .with-subnavbar .page-content, -.navbar-fixed .with-subnavbar .page-content, -.navbar-through .page-content.with-subnavbar, -.navbar-fixed .page-content.with-subnavbar, -.navbar-through .subnavbar ~ .page-content, -.navbar-fixed .subnavbar ~ .page-content { - padding-top: 88px; -} -.navbar-through .page .subnavbar, -.navbar-fixed .page .subnavbar, -.navbar-through.page .subnavbar, -.navbar-fixed.page .subnavbar { - top: 44px; -} -.toolbar-through .page-content, -.toolbar-fixed .page-content, -.tabbar-through .page-content, -.tabbar-fixed .page-content { - padding-bottom: 44px; -} -.tabbar-labels-fixed .page-content, -.tabbar-labels-through .page-content { - padding-bottom: 50px; -} -@media all and (min-width: 768px) { - .tabbar-labels-fixed .page-content, - .tabbar-labels-through .page-content { - padding-bottom: 56px; - } -} -.navbar.navbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar.navbar-hiding ~ .page-content .list-group-title, -.navbar.navbar-hiding ~ .pages .list-group-title, -.navbar.navbar-hiding ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .page-content .subnavbar, -.navbar.navbar-hiding ~ .pages .subnavbar, -.navbar.navbar-hiding ~ .page .subnavbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar.navbar-hidden ~ .page-content .list-group-title, -.navbar.navbar-hidden ~ .pages .list-group-title, -.navbar.navbar-hidden ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - top: -44px; -} -.navbar.navbar-hidden ~ .page-content .subnavbar, -.navbar.navbar-hidden ~ .pages .subnavbar, -.navbar.navbar-hidden ~ .page .subnavbar { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page.no-navbar .page-content { - padding-top: 0; -} -.page.no-navbar.with-subnavbar .page-content, -.with-subnavbar .page.no-navbar .page-content, -.page.no-navbar .page-content.with-subnavbar { - padding-top: 44px; -} -.toolbar.toolbar-hiding, -.tabbar.toolbar-hiding, -.toolbar.tabbar-hiding, -.tabbar.tabbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.page.no-toolbar .page-content, -.page.no-tabbar .page-content { - padding-bottom: 0; -} -/* === Search Bar === */ -.searchbar { - height: 44px; - width: 100%; - background: #c9c9ce; - box-sizing: border-box; - padding: 0 8px; - overflow: hidden; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.searchbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #b4b4b4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .searchbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .searchbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.searchbar .searchbar-input { - width: 100%; - height: 28px; - position: relative; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.searchbar input[type="search"] { - box-sizing: border-box; - width: 100%; - height: 28px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 5px; - font-family: inherit; - color: #000; - font-size: 14px; - font-weight: normal; - padding: 0 8px; - background-color: #fff; - padding: 0 28px; - height: 100%; - background-repeat: no-repeat; - background-position: 8px center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2013%2013'%20enable-background%3D'new%200%200%2013%2013'%3E%3Cg%3E%3Cpath%20fill%3D'%23939398'%20d%3D'M5%2C1c2.2%2C0%2C4%2C1.8%2C4%2C4S7.2%2C9%2C5%2C9S1%2C7.2%2C1%2C5S2.8%2C1%2C5%2C1%20M5%2C0C2.2%2C0%2C0%2C2.2%2C0%2C5s2.2%2C5%2C5%2C5s5-2.2%2C5-5S7.8%2C0%2C5%2C0%20L5%2C0z'%2F%3E%3C%2Fg%3E%3Cline%20stroke%3D'%23939398'%20stroke-miterlimit%3D'10'%20x1%3D'12.6'%20y1%3D'12.6'%20x2%3D'8.2'%20y2%3D'8.2'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 13px 13px; - background-size: 13px 13px; -} -.searchbar input[type="search"]::-webkit-input-placeholder { - color: #939398; - opacity: 1; -} -.searchbar input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -.searchbar .searchbar-clear { - position: absolute; - width: 28px; - height: 28px; - right: 0; - top: 0; - opacity: 0; - pointer-events: none; - background-position: center; - background-repeat: no-repeat; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2028%2028'%3E%3Ccircle%20cx%3D'14'%20cy%3D'14'%20r%3D'14'%20fill%3D'%238e8e93'%2F%3E%3Cline%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'8'%20y1%3D'8'%20x2%3D'20'%20y2%3D'20'%2F%3E%3Cline%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'20'%20y1%3D'8'%20x2%3D'8'%20y2%3D'20'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 14px 14px; - background-size: 14px 14px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - cursor: pointer; -} -.searchbar .searchbar-cancel { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - font-size: 17px; - cursor: pointer; - opacity: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 0; - pointer-events: none; - display: none; -} -.searchbar.searchbar-active .searchbar-cancel { - margin-left: 8px; - opacity: 1; - pointer-events: auto; -} -html:not(.watch-active-state) .searchbar.searchbar-active .searchbar-cancel:active, -.searchbar.searchbar-active .searchbar-cancel.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.searchbar.searchbar-not-empty .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 100; - opacity: 0; - pointer-events: none; - background: rgba(0, 0, 0, 0.4); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.searchbar-overlay.searchbar-overlay-active { - opacity: 1; - pointer-events: auto; -} -.searchbar-not-found { - display: none; -} -.hidden-by-searchbar, -.list-block .hidden-by-searchbar, -.list-block li.hidden-by-searchbar { - display: none; -} -.page > .searchbar { - position: absolute; - width: 100%; - left: 0; - top: 0; - z-index: 200; -} -.page > .searchbar ~ .page-content { - padding-top: 44px; -} -.navbar-fixed .page > .searchbar, -.navbar-through .page > .searchbar, -.navbar-fixed > .searchbar, -.navbar-through > .searchbar { - top: 44px; -} -.navbar-fixed .page > .searchbar ~ .page-content, -.navbar-through .page > .searchbar ~ .page-content, -.navbar-fixed > .searchbar ~ .page-content, -.navbar-through > .searchbar ~ .page-content { - padding-top: 88px; -} -/* === Message Bar === */ -.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background: #fff; -} -.messagebar:before { - display: none; -} -.messagebar textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #c8c8cd; - background: #fff; - border-radius: 17px; - box-shadow: none; - display: block; - padding: 6px 15px; - margin: 0; - width: 100%; - height: 34px; - color: #000; - font-size: 17px; - line-height: 20px; - font-family: inherit; - resize: none; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.messagebar .link { - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; -} -.messagebar .link.icon-only:first-child { - margin-left: -6px; -} -.messagebar .link:not(.icon-only) + textarea { - margin-left: 8px; -} -.messagebar textarea + .link { - margin-left: 8px; -} -.messagebar .link { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.messagebar ~ .page-content { - padding-bottom: 44px; -} -.page.no-toolbar .messagebar ~ .page-content { - padding-bottom: 44px; -} -.hidden-toolbar .messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -/* === Icons === */ -i.icon { - display: inline-block; - vertical-align: middle; - background-size: 100% auto; - background-position: center; - background-repeat: no-repeat; - font-style: normal; - position: relative; -} -i.icon.icon-back { - width: 12px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2012%2020'%3E%3Cpath%20d%3D'M10%2C0l2%2C2l-8%2C8l8%2C8l-2%2C2L0%2C10L10%2C0z'%20fill%3D'%2340865c'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-forward { - width: 12px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2012%2020'%3E%3Cpath%20d%3D'M2%2C20l-2-2l8-8L0%2C2l2-2l10%2C10L2%2C20z'%20fill%3D'%2340865c'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bars { - width: 21px; - height: 14px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2021%2014'%3E%3Cpath%20fill%3D'%2340865c'%20d%3D'M0%2C0h2v2H0V0z%20M4%2C0h17v1H4V0z%20M0%2C6h2v2H0V6z%20M4%2C6h17v1H4V6z%20M0%2C12h2v2H0V12z%20M4%2C12h17v1H4V12z'%2F%3E%3C%2Fsvg%3E"); -} -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2ddpx) { - i.icon.icon-bars { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2042%2026'%3E%3Cpath%20fill%3D'%2340865c'%20d%3D'M0%2C0h4v4H0V0z%20M8%2C1h34v2H8V1z%20M0%2C11h4v4H0V11z%20M8%2C12h34v2H8V12z%20M0%2C22h4v4H0V22z%20M8%2C23h34v2H8V23z'%2F%3E%3C%2Fsvg%3E"); - height: 13px; - } -} -i.icon.icon-camera { - width: 25px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2025%2020'%3E%3Cpath%20fill%3D'%238C8D92'%20d%3D'M13.3%2C5.5c-2.7%2C0-5%2C2.2-5%2C5s2.2%2C5%2C5%2C5c2.7%2C0%2C5-2.2%2C5-5S16%2C5.5%2C13.3%2C5.5z'%2F%3E%3Cpath%20fill%3D'%238C8D92'%20d%3D'M22.8%2C1.8h-3.3c-0.2-1.3-1-1.8-2-1.8H8.1c-1%2C0-1.8%2C0.4-2%2C1.8H2.8C1.4%2C1.8%2C0%2C2.8%2C0%2C4.2v12.6%20c0%2C1.4%2C1.4%2C2.5%2C2.8%2C2.5h20c1.4%2C0%2C2.2-1.1%2C2.2-2.5V4.2C25%2C2.8%2C24.2%2C1.8%2C22.8%2C1.8z%20M3.5%2C6.4C2.6%2C6.4%2C2%2C5.8%2C2%2C5c0-0.8%2C0.7-1.5%2C1.5-1.5%20S5%2C4.1%2C5%2C5C5%2C5.8%2C4.3%2C6.4%2C3.5%2C6.4z%20M13.3%2C16.8c-3.5%2C0-6.3-2.7-6.3-6.2c0-3.3%2C2.5-6.2%2C5.7-6.2h1.2c3.2%2C0%2C5.7%2C2.9%2C5.7%2C6.2%20C19.6%2C14.1%2C16.7%2C16.8%2C13.3%2C16.8z'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-f7 { - width: 29px; - height: 29px; - background-image: url("../img/i-f7-ios.png"); - border-radius: 6px; -} -i.icon.icon-next, -i.icon.icon-prev { - width: 15px; - height: 15px; -} -i.icon.icon-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2015%2015'%3E%3Cg%3E%3Cpath%20fill%3D'%2340865c'%20d%3D'M1%2C1.6l11.8%2C5.8L1%2C13.4V1.6%20M0%2C0v15l15-7.6L0%2C0L0%2C0z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2015%2015'%3E%3Cg%3E%3Cpath%20fill%3D'%2340865c'%20d%3D'M14%2C1.6v11.8L2.2%2C7.6L14%2C1.6%20M15%2C0L0%2C7.6L15%2C15V0L15%2C0z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 25px; - height: 25px; - font-size: 31px; - line-height: 20px; - text-align: center; - font-weight: 100; -} -.navbar .framework7-icons, -.navbar .f7-icons, -.toolbar .framework7-icons, -.toolbar .f7-icons { - font-size: 22px; -} -.tabbar .framework7-icons, -.tabbar .f7-icons, -.tabbar-labels .framework7-icons, -.tabbar-labels .f7-icons { - font-size: 25px; -} -/* === Content Block === */ -.content-block { - margin: 35px 0; - padding: 0 15px; - color: #6d6d72; - box-sizing: border-box; -} -.content-block.no-hairlines:before, -.content-block.no-hairlines ul:before, -.content-block.no-hairlines .content-block-inner:before { - display: none; -} -.content-block.no-hairlines:after, -.content-block.no-hairlines ul:after, -.content-block.no-hairlines .content-block-inner:after { - display: none; -} -.content-block-title { - position: relative; - overflow: hidden; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - line-height: 1; - color: #6d6d72; - margin: 35px 15px 10px; -} -.content-block-title + .list-block, -.content-block-title + .content-block, -.content-block-title + .card { - margin-top: 10px; -} -.content-block-inner { - background: #fff; - padding: 10px 15px; - margin-left: -15px; - width: 100%; - position: relative; - color: #000; -} -.content-block-inner:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .content-block-inner:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .content-block-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block.inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; -} -.content-block.inset .content-block-inner { - border-radius: 7px; -} -.content-block.inset .content-block-inner:before { - display: none; -} -.content-block.inset .content-block-inner:after { - display: none; -} -@media all and (min-width: 768px) { - .content-block.tablet-inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; - } - .content-block.tablet-inset .content-block-inner { - border-radius: 7px; - } - .content-block.tablet-inset .content-block-inner:before { - display: none; - } - .content-block.tablet-inset .content-block-inner:after { - display: none; - } -} -/* === Lists === */ -.list-block { - margin: 35px 0; - font-size: 17px; -} -.list-block ul { - background: #fff; - list-style: none; - padding: 0; - margin: 0; - position: relative; -} -.list-block ul:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block ul:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block ul:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul ul { - padding-left: 45px; -} -.list-block ul ul:before { - display: none; -} -.list-block ul ul:after { - display: none; -} -.list-block .align-top, -.list-block .align-top .item-content, -.list-block .align-top .item-inner { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.list-block.inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; -} -.list-block.inset .content-block-title { - margin-left: 0; - margin-right: 0; -} -.list-block.inset ul { - border-radius: 7px; -} -.list-block.inset ul:before { - display: none; -} -.list-block.inset ul:after { - display: none; -} -.list-block.inset li:first-child > a { - border-radius: 7px 7px 0 0; -} -.list-block.inset li:last-child > a { - border-radius: 0 0 7px 7px; -} -.list-block.inset li:first-child:last-child > a { - border-radius: 7px; -} -@media all and (min-width: 768px) { - .list-block.tablet-inset { - margin-left: 15px; - margin-right: 15px; - border-radius: 7px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 7px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 7px 7px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 7px 7px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 7px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 7px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 7px 7px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 7px 7px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 7px; - } -} -.list-block li { - box-sizing: border-box; - position: relative; -} -.list-block .item-media { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - box-sizing: border-box; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - padding-top: 7px; - padding-bottom: 8px; -} -.list-block .item-media i + i { - margin-left: 5px; -} -.list-block .item-media i + img { - margin-left: 5px; -} -.list-block .item-media + .item-inner { - margin-left: 15px; -} -.list-block .item-inner { - padding-right: 15px; - position: relative; - width: 100%; - padding-top: 8px; - padding-bottom: 7px; - min-height: 44px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-flex: 1; - -ms-flex: 1; - overflow: hidden; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-title { - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - min-width: 0; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - max-width: 100%; -} -.list-block .item-after { - white-space: nowrap; - color: #8e8e93; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 5px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - max-height: 28px; -} -.list-block .smart-select .item-after, -.list-block .autocomplete-opener .item-after { - max-width: 70%; - overflow: hidden; - text-overflow: ellipsis; - position: relative; - display: block; -} -.list-block .item-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: block; - color: inherit; -} -.list-block .item-link .item-inner { - padding-right: 35px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; - background-repeat: no-repeat; - background-position: 95% center; - background-position: -webkit-calc(100% - 15px) center; - background-position: calc(100% - 15px) center; -} -html:not(.watch-active-state) .list-block .item-link:active, -.list-block .item-link.active-state { - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background-color: #d9d9d9; -} -html:not(.watch-active-state) .list-block .item-link:active .item-inner:after, -.list-block .item-link.active-state .item-inner:after { - background-color: transparent; -} -.list-block .item-link.list-button { - padding: 0 15px; - text-align: center; - color: #007aff; - display: block; - line-height: 43px; -} -.list-block .item-link.list-button:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-link.list-button:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-link.list-button:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-content { - box-sizing: border-box; - padding-left: 15px; - min-height: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.list-block .list-block-label { - margin: 10px 0 35px; - padding: 0 15px; - font-size: 14px; - color: #8f8f94; -} -.list-block .swipeout { - overflow: hidden; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.list-block .swipeout.deleting { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block .swipeout.deleting .swipeout-content { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout.transitioning .swipeout-content, -.list-block .swipeout.transitioning .swipeout-actions-right a, -.list-block .swipeout.transitioning .swipeout-actions-left a, -.list-block .swipeout.transitioning .swipeout-overswipe { - -webkit-transition: 300ms; - transition: 300ms; -} -.list-block .swipeout-content { - position: relative; - z-index: 10; -} -.list-block .swipeout-overswipe { - -webkit-transition: 200ms left; - transition: 200ms left; -} -.list-block .swipeout-actions-left, -.list-block .swipeout-actions-right { - position: absolute; - top: 0; - height: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; -} -.list-block .swipeout-actions-left a, -.list-block .swipeout-actions-right a { - padding: 0 30px; - color: #fff; - background: #c7c7cc; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - position: relative; - left: 0; -} -.list-block .swipeout-actions-left a:after, -.list-block .swipeout-actions-right a:after { - content: ''; - position: absolute; - top: 0; - width: 600%; - height: 100%; - background: inherit; - z-index: -1; -} -.list-block .swipeout-actions-left a.swipeout-delete, -.list-block .swipeout-actions-right a.swipeout-delete { - background: #ff3b30; -} -.list-block .swipeout-actions-right { - right: 0%; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} -.list-block .swipeout-actions-right a:after { - left: 100%; - margin-left: -1px; -} -.list-block .swipeout-actions-left { - left: 0%; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout-actions-left a:after { - right: 100%; - margin-right: -1px; -} -.list-block .item-subtitle { - font-size: 15px; - position: relative; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - text-overflow: ellipsis; -} -.list-block .item-text { - font-size: 15px; - color: #8e8e93; - line-height: 21px; - position: relative; - overflow: hidden; - height: 42px; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - display: -webkit-box; -} -.list-block.media-list .item-title, -.list-block li.media-item .item-title { - font-weight: 500; -} -html.ios-gt-8 .list-block.media-list .item-title, -html.ios-gt-8 .list-block li.media-item .item-title { - font-weight: 600; -} -.list-block.media-list .item-inner, -.list-block li.media-item .item-inner { - display: block; - padding-top: 10px; - padding-bottom: 9px; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block.media-list .item-link .item-inner, -.list-block li.media-item .item-link .item-inner { - background: none; - padding-right: 15px; -} -.list-block.media-list .item-link .item-title-row, -.list-block li.media-item .item-link .item-title-row { - padding-right: 20px; - background: no-repeat right center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; -} -.list-block.media-list .item-media, -.list-block li.media-item .item-media { - padding-top: 9px; - padding-bottom: 10px; -} -.list-block.media-list .item-media img, -.list-block li.media-item .item-media img { - display: block; -} -.list-block.media-list .item-title-row, -.list-block li.media-item .item-title-row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.list-block.media-list .item-content > .item-after, -.list-block li.media-item .item-content > .item-after { - margin-right: 15px; - margin-left: 15px; -} -.list-block .list-group ul:after, -.list-block .list-group ul:before { - z-index: 25; -} -.list-block .list-group + .list-group ul:before { - display: none; -} -.list-block .item-divider, -.list-block .list-group-title { - background: #F7F7F7; - margin-top: -1px; - padding: 4px 15px; - white-space: nowrap; - position: relative; - max-width: 100%; - text-overflow: ellipsis; - overflow: hidden; - color: #8e8e93; - z-index: 15; -} -.list-block .item-divider:before, -.list-block .list-group-title:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block .item-divider:before, -html.pixel-ratio-2 .list-block .list-group-title:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-divider:before, -html.pixel-ratio-3 .list-block .list-group-title:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .list-group-title { - position: relative; - position: -webkit-sticky; - position: -moz-sticky; - position: sticky; - top: 0px; - z-index: 20; - margin-top: 0; -} -.list-block .list-group-title:before { - display: none; -} -.list-block .sortable-handler { - position: absolute; - right: 0; - top: 0; - bottom: 1px; - z-index: 10; - background-repeat: no-repeat; - background-size: 18px 12px; - background-position: center; - width: 35px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2018%2012'%20fill%3D'%23c7c7cc'%3E%3Cpath%20d%3D'M0%2C2V0h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C7V5h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C12v-2h22v2H0z'%2F%3E%3C%2Fsvg%3E"); - opacity: 0; - visibility: hidden; - cursor: pointer; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable .item-inner { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable-opened .sortable-handler { - visibility: visible; - opacity: 1; -} -.list-block.sortable-opened .item-inner, -.list-block.sortable-opened .item-link .item-inner { - padding-right: 35px; -} -.list-block.sortable-opened .item-link .item-inner, -.list-block.sortable-opened .item-link .item-title-row { - background-image: none; -} -.list-block.sortable-sorting li { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block li.sorting { - z-index: 50; - background: rgba(255, 255, 255, 0.8); - box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.6); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.list-block li.sorting .item-inner:after { - display: none; -} -.list-block li:last-child .list-button:after { - display: none; -} -.list-block li:last-child .item-inner:after, -.list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.list-block li li:last-child .item-inner:after, -.list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block.no-hairlines:before, -.list-block.no-hairlines ul:before, -.list-block.no-hairlines .content-block-inner:before { - display: none; -} -.list-block.no-hairlines:after, -.list-block.no-hairlines ul:after, -.list-block.no-hairlines .content-block-inner:after { - display: none; -} -.list-block.no-hairlines-between .item-inner:after, -.list-block.no-hairlines-between .list-button:after, -.list-block.no-hairlines-between .item-divider:after, -.list-block.no-hairlines-between .list-group-title:after, -.list-block.no-hairlines-between .list-group-title:after { - display: none; -} -/* === Forms === */ -.list-block input[type="text"], -.list-block input[type="password"], -.list-block input[type="search"], -.list-block input[type="email"], -.list-block input[type="tel"], -.list-block input[type="url"], -.list-block input[type="date"], -.list-block input[type="datetime-local"], -.list-block input[type="time"], -.list-block input[type="number"], -.list-block select, -.list-block textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0 0 0 0; - box-shadow: none; - display: block; - padding: 0px; - margin: 0; - width: 100%; - height: 43px; - color: #000; - font-size: 17px; - font-family: inherit; -} -.list-block .item-title.label { - vertical-align: top; -} -.list-block .item-title.label + .item-input { - margin-left: 5px; -} -.list-block input[type="date"], -.list-block input[type="datetime-local"] { - line-height: 44px; -} -.list-block select { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -.list-block textarea { - height: 100px; - resize: none; - line-height: 1.4; - padding-top: 8px; - padding-bottom: 7px; -} -.list-block textarea.resizable { - height: 43px; -} -.list-block .item-input { - width: 100%; - margin-top: -8px; - margin-bottom: -7px; - -webkit-box-flex: 1; - -ms-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.list-block .item-title.label { - width: 35%; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.label-switch { - display: inline-block; - vertical-align: middle; - width: 52px; - border-radius: 16px; - box-sizing: border-box; - height: 32px; - position: relative; - cursor: pointer; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.label-switch .checkbox { - width: 52px; - border-radius: 16px; - box-sizing: border-box; - height: 32px; - background: #e5e5e5; - z-index: 0; - margin: 0; - padding: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - cursor: pointer; - position: relative; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch .checkbox:before { - content: ' '; - position: absolute; - left: 2px; - top: 2px; - width: 48px; - border-radius: 16px; - box-sizing: border-box; - height: 28px; - background: #fff; - z-index: 1; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: scale(1); - transform: scale(1); -} -.label-switch .checkbox:after { - content: ' '; - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - position: absolute; - z-index: 2; - top: 2px; - left: 2px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch input[type="checkbox"] { - display: none; -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: #4cd964; -} -.label-switch input[type="checkbox"]:checked + .checkbox:before { - -webkit-transform: scale(0); - transform: scale(0); -} -.label-switch input[type="checkbox"]:checked + .checkbox:after { - -webkit-transform: translateX(20px); - transform: translateX(20px); -} -html.android .label-switch input[type="checkbox"] + .checkbox { - -webkit-transition-duration: 0; - transition-duration: 0; -} -html.android .label-switch input[type="checkbox"] + .checkbox:after, -html.android .label-switch input[type="checkbox"] + .checkbox:before { - -webkit-transition-duration: 0; - transition-duration: 0; -} -.button { - border: 1px solid #40865c; - color: #40865c; - text-decoration: none; - text-align: center; - display: block; - border-radius: 5px; - line-height: 27px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 29px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - font-size: 14px; - font-family: inherit; - cursor: pointer; - outline: 0; -} -input[type="submit"].button, -input[type="button"].button { - width: 100%; -} -html:not(.watch-active-state) .button:active, -.button.active-state { - background: rgba(64, 134, 92, 0.15); -} -.button.button-round { - border-radius: 27px; -} -.button.active { - background: #40865c; - color: #fff; -} -.button.button-big { - font-size: 17px; - height: 44px; - line-height: 42px; -} -.button.button-fill { - color: #fff; - background: #40865c; - border-color: transparent; -} -html:not(.watch-active-state) .button.button-fill:active, -.button.button-fill.active-state { - opacity: 0.8; -} -.button i.icon:first-child { - margin-right: 10px; -} -.button i.icon:last-child { - margin-left: 10px; -} -.button i.icon:first-child:last-child { - margin-left: 0; - margin-right: 0; -} -.buttons-row { - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.buttons-row .button { - border-radius: 0 0 0 0; - border-left-width: 0; - width: 100%; - -webkit-box-flex: 1; - -ms-flex: 1; -} -.buttons-row .button:first-child { - border-radius: 5px 0 0 5px; - border-left-width: 1px; - border-left-style: solid; -} -.buttons-row .button:last-child { - border-radius: 0 5px 5px 0; -} -.buttons-row .button:first-child:last-child { - border-radius: 5px; -} -.buttons-row .button.button-round:first-child { - border-radius: 27px 0 0 27px; -} -.buttons-row .button.button-round:last-child { - border-radius: 0 27px 27px 0; -} -.range-slider { - width: 100%; - position: relative; - overflow: hidden; - padding-left: 3px; - padding-right: 3px; - margin-left: -1px; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.range-slider input[type="range"] { - position: relative; - height: 28px; - width: 100%; - margin: 4px 0 5px 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: -webkit-gradient(linear, 50% 0, 50% 100%, color-stop(0, #b7b8b7), color-stop(100%, #b7b8b7)); - background: linear-gradient(to right, #b7b8b7 0, #b7b8b7 100%); - background-position: center; - background-size: 100% 2px; - background-repeat: no-repeat; - outline: 0; - border: none; - box-sizing: content-box; - -ms-background-position-y: 500px; -} -.range-slider input[type="range"]:focus, -.range-slider input[type="range"]:active { - border: 0; - outline: 0; -} -.range-slider input[type="range"]:after { - height: 2px; - background: #fff; - content: ' '; - width: 5px; - top: 50%; - margin-top: -1px; - left: -5px; - z-index: 1; - position: absolute; -} -.range-slider input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - height: 28px; - width: 28px; - position: relative; - background: none; -} -.range-slider input[type="range"]::-webkit-slider-thumb:after { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - box-sizing: border-box; - content: ' '; - left: 0; - top: 0; -} -.range-slider input[type="range"]::-webkit-slider-thumb:before { - position: absolute; - top: 50%; - right: 100%; - width: 2000px; - height: 2px; - margin-top: -1px; - z-index: 1; - background: #40865c; - content: ' '; -} -.range-slider input[type="range"]::-moz-range-track { - width: 100%; - height: 2px; - background: #b7b8b7; - border: none; - outline: 0; -} -.range-slider input[type="range"]::-moz-range-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - box-sizing: border-box; - content: ' '; -} -.range-slider input[type="range"]::-ms-track { - width: 100%; - height: 2px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; -} -.range-slider input[type="range"]::-ms-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - border: 0; - outline: 0; - position: absolute; - content: ' '; - box-shadow: none; - border: 1px solid rgba(0, 0, 0, 0.2); - box-sizing: border-box; - margin-top: 0; - top: 50%; -} -.range-slider input[type="range"]::-ms-fill-lower { - background: #40865c; -} -.range-slider input[type="range"]::-ms-fill-upper { - background: #b7b8b7; -} -label.label-checkbox { - cursor: pointer; -} -label.label-checkbox i.icon-form-checkbox { - width: 22px; - height: 22px; - position: relative; - border-radius: 22px; - border: 1px solid #c7c7cc; - box-sizing: border-box; -} -label.label-checkbox i.icon-form-checkbox:after { - content: ' '; - position: absolute; - left: 50%; - margin-left: -6px; - top: 50%; - margin-top: -4px; - width: 12px; - height: 9px; -} -label.label-checkbox input[type="checkbox"], -label.label-checkbox input[type="radio"] { - display: none; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox { - border: none; - background-color: #40865c; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox:after { - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2012%209'%20xml%3Aspace%3D'preserve'%3E%3Cpolygon%20fill%3D'%23ffffff'%20points%3D'12%2C0.7%2011.3%2C0%203.9%2C7.4%200.7%2C4.2%200%2C4.9%203.9%2C8.8%203.9%2C8.8%203.9%2C8.8%20'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 12px 9px; - background-size: 12px 9px; -} -label.label-radio { - cursor: pointer; -} -label.label-radio input[type="checkbox"], -label.label-radio input[type="radio"] { - display: none; -} -label.label-radio input[type="checkbox"] ~ .item-inner, -label.label-radio input[type="radio"] ~ .item-inner { - padding-right: 35px; -} -label.label-radio input[type="checkbox"]:checked ~ .item-inner, -label.label-radio input[type="radio"]:checked ~ .item-inner { - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2013%2010'%3E%3Cpolygon%20fill%3D'%2340865c'%20points%3D'11.6%2C0%204.4%2C7.2%201.4%2C4.2%200%2C5.6%204.4%2C10%204.4%2C10%204.4%2C10%2013%2C1.4%20'%2F%3E%3C%2Fsvg%3E"); - background-position: 90% center; - background-position: -webkit-calc(100% - 15px) center; - background-position: calc(100% - 15px) center; - -webkit-background-size: 13px 10px; - background-size: 13px 10px; -} -label.label-checkbox, -label.label-radio { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -html:not(.watch-active-state) label.label-checkbox:active, -html:not(.watch-active-state) label.label-radio:active, -label.label-checkbox.active-state, -label.label-radio.active-state { - -webkit-transition-duration: 0ms; - transition-duration: 0ms; - background-color: #d9d9d9; -} -html:not(.watch-active-state) label.label-checkbox:active .item-inner:after, -html:not(.watch-active-state) label.label-radio:active .item-inner:after, -label.label-checkbox.active-state .item-inner:after, -label.label-radio.active-state .item-inner:after { - background-color: transparent; -} -.smart-select select { - display: none; -} -/* === Cards === */ -.cards-list ul, -.card .list-block ul { - background: none; -} -.cards-list > ul:before, -.card .list-block > ul:before { - display: none; -} -.cards-list > ul:after, -.card .list-block > ul:after { - display: none; -} -.card { - background: #fff; - box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3); - margin: 10px; - position: relative; - border-radius: 2px; - font-size: 14px; -} -.card .list-block, -.card .content-block { - margin: 0; -} -.row:not(.no-gutter) .col > .card { - margin-left: 0; - margin-right: 0; -} -.card-content { - position: relative; -} -.card-content-inner { - padding: 15px; - position: relative; -} -.card-content-inner > p:first-child { - margin-top: 0; -} -.card-content-inner > p:last-child { - margin-bottom: 0; -} -.card-content-inner > .list-block, -.card-content-inner > .content-block { - margin: -15px; -} -.card-header, -.card-footer { - min-height: 44px; - position: relative; - padding: 10px 15px; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.card-header[valign="top"], -.card-footer[valign="top"] { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.card-header[valign="bottom"], -.card-footer[valign="bottom"] { - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.card-header a.link, -.card-footer a.link { - line-height: 44px; - height: 44px; - text-decoration: none; - position: relative; - margin-top: -10px; - margin-bottom: -10px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -html:not(.watch-active-state) .card-header a.link:active, -html:not(.watch-active-state) .card-footer a.link:active, -.card-header a.link.active-state, -.card-footer a.link.active-state { - opacity: 0.3; - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.card-header a.link i + span, -.card-footer a.link i + span, -.card-header a.link i + i, -.card-footer a.link i + i, -.card-header a.link span + i, -.card-footer a.link span + i, -.card-header a.link span + span, -.card-footer a.link span + span { - margin-left: 7px; -} -.card-header a.link i.icon, -.card-footer a.link i.icon { - display: block; -} -.card-header a.icon-only, -.card-footer a.icon-only { - min-width: 44px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - margin: 0; -} -.card-header { - border-radius: 2px 2px 0 0; - font-size: 17px; -} -.card-header:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #e1e1e1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .card-header:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .card-header:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.card-header.no-border:after { - display: none; -} -.card-footer { - border-radius: 0 0 2px 2px; - color: #6d6d72; -} -.card-footer:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #e1e1e1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .card-footer:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .card-footer:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.card-footer.no-border:before { - display: none; -} -/* === Modals === */ -.modal-overlay, -.preloader-indicator-overlay, -.popup-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.4); - z-index: 13000; - visibility: hidden; - opacity: 0; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.modal-overlay.modal-overlay-visible, -.preloader-indicator-overlay.modal-overlay-visible, -.popup-overlay.modal-overlay-visible { - visibility: visible; - opacity: 1; -} -.popup-overlay { - z-index: 10500; -} -.modal { - width: 270px; - position: absolute; - z-index: 13500; - left: 50%; - margin-left: -135px; - margin-top: 0; - top: 50%; - text-align: center; - border-radius: 13px; - overflow: hidden; - opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -ms-transition-property: -ms-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - color: #000; - display: none; -} -.modal.modal-in { - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal.modal-out { - opacity: 0; - z-index: 13499; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal-inner { - padding: 15px; - border-radius: 13px 13px 0 0; - position: relative; - background: rgba(255, 255, 255, 0.95); -} -.modal-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .modal-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .modal-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.modal-title { - font-weight: 500; - font-size: 18px; - text-align: center; -} -html.ios-gt-8 .modal-title { - font-weight: 600; -} -.modal-title + .modal-text { - margin-top: 5px; -} -.modal-buttons { - height: 44px; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; -} -.modal-buttons.modal-buttons-vertical { - display: block; - height: auto; -} -.modal-button { - width: 100%; - padding: 0 5px; - height: 44px; - font-size: 17px; - line-height: 44px; - text-align: center; - color: #40865c; - display: block; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - cursor: pointer; - box-sizing: border-box; - -webkit-box-flex: 1; - -ms-flex: 1; - background: rgba(255, 255, 255, 0.95); -} -.modal-button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .modal-button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .modal-button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.modal-button:first-child { - border-radius: 0 0 0 13px; -} -.modal-button:last-child { - border-radius: 0 0 13px 0; -} -.modal-button:last-child:after { - display: none; -} -.modal-button:first-child:last-child { - border-radius: 0 0 13px 13px; -} -.modal-button.modal-button-bold { - font-weight: 500; -} -html.ios-gt-8 .modal-button.modal-button-bold { - font-weight: 600; -} -html:not(.watch-active-state) .modal-button:active, -.modal-button.active-state { - background: rgba(230, 230, 230, 0.95); -} -.modal-buttons-vertical .modal-button { - border-radius: 0; -} -.modal-buttons-vertical .modal-button:after { - display: none; -} -.modal-buttons-vertical .modal-button:before { - display: none; -} -.modal-buttons-vertical .modal-button:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .modal-buttons-vertical .modal-button:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .modal-buttons-vertical .modal-button:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.modal-buttons-vertical .modal-button:last-child { - border-radius: 0 0 13px 13px; -} -.modal-buttons-vertical .modal-button:last-child:after { - display: none; -} -.modal-no-buttons .modal-inner { - border-radius: 13px; -} -.modal-no-buttons .modal-inner:after { - display: none; -} -.modal-no-buttons .modal-buttons { - display: none; -} -.actions-modal { - position: absolute; - left: 0; - bottom: 0; - z-index: 13500; - width: 100%; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 100%; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -@media (min-width: 496px) { - .actions-modal { - width: 480px; - left: 50%; - margin-left: -240px; - } -} -.actions-modal.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal.modal-out { - z-index: 13499; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.actions-modal-group { - margin: 8px; - position: relative; - border-radius: 13px; - overflow: hidden; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal-button, -.actions-modal-label { - width: 100%; - text-align: center; - font-weight: normal; - margin: 0; - background: rgba(255, 255, 255, 0.95); - box-sizing: border-box; - display: block; - position: relative; - overflow: hidden; -} -.actions-modal-button:after, -.actions-modal-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-modal-button:after, -html.pixel-ratio-2 .actions-modal-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-modal-button:after, -html.pixel-ratio-3 .actions-modal-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-modal-button a, -.actions-modal-label a { - text-decoration: none; - color: inherit; - display: block; -} -.actions-modal-button b, -.actions-modal-label b { - font-weight: 500; -} -html.ios-gt-8 .actions-modal-button b, -html.ios-gt-8 .actions-modal-label b { - font-weight: 600; -} -.actions-modal-button.actions-modal-button-bold, -.actions-modal-label.actions-modal-button-bold { - font-weight: 500; -} -html.ios-gt-8 .actions-modal-button.actions-modal-button-bold, -html.ios-gt-8 .actions-modal-label.actions-modal-button-bold { - font-weight: 600; -} -.actions-modal-button.actions-modal-button-red, -.actions-modal-label.actions-modal-button-red { - color: #ff3b30; -} -.actions-modal-button:first-child, -.actions-modal-label:first-child { - border-radius: 13px 13px 0 0; -} -.actions-modal-button:last-child, -.actions-modal-label:last-child { - border-radius: 0 0 13px 13px; -} -.actions-modal-button:last-child:after, -.actions-modal-label:last-child:after { - display: none; -} -.actions-modal-button:first-child:last-child, -.actions-modal-label:first-child:last-child { - border-radius: 13px; -} -.actions-modal-button.disabled, -.actions-modal-label.disabled { - opacity: 0.9; - color: #8e8e93; -} -.actions-modal-button { - cursor: pointer; - height: 57px; - line-height: 57px; - font-size: 20px; - color: #40865c; - white-space: normal; - text-overflow: ellipsis; -} -html:not(.watch-active-state) .actions-modal-button:active, -.actions-modal-button.active-state { - background: rgba(230, 230, 230, 0.9); -} -.actions-modal-label { - font-size: 13px; - line-height: 1.3; - min-height: 57px; - padding: 8px 10px; - color: #8a8a8a; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -@media (orientation: landscape) { - .actions-modal-label { - min-height: 44px; - } - .actions-modal-button { - height: 44px; - line-height: 44px; - } -} -input.modal-text-input { - box-sizing: border-box; - height: 26px; - background: #fff; - margin: 0; - margin-top: 15px; - padding: 0 5px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 0; - width: 100%; - font-size: 14px; - font-family: inherit; - display: block; - box-shadow: 0 0 0 rgba(0, 0, 0, 0); - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -input.modal-text-input + input.modal-text-input { - margin-top: 5px; -} -.modal-input-double + .modal-input-double input.modal-text-input { - border-top: 0; - margin-top: 0; -} -.popover { - width: 320px; - background: rgba(255, 255, 255, 0.95); - z-index: 13500; - margin: 0; - top: 0; - opacity: 0; - left: 0; - border-radius: 13px; - position: absolute; - display: none; - -webkit-transform: none; - transform: none; - -webkit-transition-property: opacity; - -moz-transition-property: opacity; - -ms-transition-property: opacity; - -o-transition-property: opacity; - transition-property: opacity; -} -.popover.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 1; -} -.popover .list-block { - margin: 0; -} -.popover .list-block ul { - background: none; -} -.popover .list-block:first-child ul { - border-radius: 13px 13px 0 0; -} -.popover .list-block:first-child ul:before { - display: none; -} -.popover .list-block:first-child li:first-child a { - border-radius: 13px 13px 0 0; -} -.popover .list-block:last-child ul { - border-radius: 0 0 13px 13px; -} -.popover .list-block:last-child ul:after { - display: none; -} -.popover .list-block:last-child li:last-child a { - border-radius: 0 0 13px 13px; -} -.popover .list-block:first-child:last-child li:first-child:last-child a, -.popover .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 13px; -} -.popover .list-block + .list-block { - margin-top: 35px; -} -.popover-angle { - width: 26px; - height: 26px; - position: absolute; - left: -26px; - top: 0; - z-index: 100; - overflow: hidden; -} -.popover-angle:after { - content: ' '; - background: rgba(255, 255, 255, 0.95); - width: 26px; - height: 26px; - position: absolute; - left: 0; - top: 0; - border-radius: 3px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} -.popover-angle.on-left { - left: -26px; -} -.popover-angle.on-left:after { - left: 19px; - top: 0; -} -.popover-angle.on-right { - left: 100%; -} -.popover-angle.on-right:after { - left: -19px; - top: 0; -} -.popover-angle.on-top { - left: 0; - top: -26px; -} -.popover-angle.on-top:after { - left: 0; - top: 19px; -} -.popover-angle.on-bottom { - left: 0; - top: 100%; -} -.popover-angle.on-bottom:after { - left: 0; - top: -19px; -} -.popover-inner { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-popover .list-block + .list-block { - margin-top: 20px; -} -.actions-popover .list-block ul { - background: #fff; -} -.actions-popover-label { - padding: 8px 10px; - color: #8a8a8a; - font-size: 13px; - line-height: 1.3; - text-align: center; - position: relative; -} -.actions-popover-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.2); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-popover-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-popover-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-popover-label:last-child:after { - display: none; -} -.popup, -.login-screen { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 11000; - background: #fff; - box-sizing: border-box; - display: none; - overflow: auto; - -webkit-overflow-scrolling: touch; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.popup.modal-in, -.login-screen.modal-in, -.popup.modal-out, -.login-screen.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.popup.modal-in, -.login-screen.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.popup.modal-out, -.login-screen.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.login-screen.modal-in, -.login-screen.modal-out { - display: block; -} -@media all and (min-width: 630px) and (min-height: 630px) { - .popup:not(.tablet-fullscreen) { - width: 630px; - height: 630px; - left: 50%; - top: 50%; - margin-left: -315px; - margin-top: -315px; - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } - .popup:not(.tablet-fullscreen).modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - .popup:not(.tablet-fullscreen).modal-out { - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } -} -@media all and (max-width: 629px), (max-height: 629px) { - html.with-statusbar-overlay .popup { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; - } - html.with-statusbar-overlay .popup-overlay { - z-index: 9500; - } -} -html.with-statusbar-overlay .login-screen, -html.with-statusbar-overlay .popup.tablet-fullscreen { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; -} -.modal .preloader { - width: 34px; - height: 34px; -} -.preloader-indicator-overlay { - visibility: visible; - opacity: 0; - background: none; -} -.preloader-indicator-modal { - position: absolute; - left: 50%; - top: 50%; - padding: 8px; - margin-left: -25px; - margin-top: -25px; - background: rgba(0, 0, 0, 0.8); - z-index: 13500; - border-radius: 5px; -} -.preloader-indicator-modal .preloader { - display: block; - width: 34px; - height: 34px; -} -.picker-modal { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 260px; - z-index: 12500; - display: none; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - background: #cfd5da; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal.modal-in, -.picker-modal.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.picker-modal.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal .picker-modal-inner { - height: 100%; - position: relative; -} -.picker-modal .toolbar { - position: relative; - width: 100%; - background: #f7f7f8; -} -.picker-modal .toolbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #929499; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-modal .toolbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal .toolbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-modal .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 44px); - height: -moz-calc(100% - 44px); - height: calc(100% - 44px); -} -.picker-modal.picker-modal-inline, -.popover .picker-modal { - display: block; - position: relative; - background: none; - z-index: inherit; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.picker-modal-inline .toolbar:before, -.popover .picker-modal .toolbar:before { - display: none; -} -.picker-modal.picker-modal-inline .toolbar:after, -.popover .picker-modal .toolbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #929499; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-modal.picker-modal-inline .toolbar:after, -html.pixel-ratio-2 .popover .picker-modal .toolbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal.picker-modal-inline .toolbar:after, -html.pixel-ratio-3 .popover .picker-modal .toolbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.popover .picker-modal { - width: auto; -} -.popover .picker-modal .toolbar { - background: none; -} -.picker-modal.smart-select-picker .page { - background: #fff; -} -.picker-modal.smart-select-picker .toolbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-modal.smart-select-picker .toolbar:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-modal.smart-select-picker .toolbar:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-modal.smart-select-picker .list-block { - margin: 0; -} -.picker-modal.smart-select-picker .list-block ul:before { - display: none; -} -.picker-modal.smart-select-picker .list-block ul:after { - display: none; -} -/* === Panels === */ -.panel-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0); - opacity: 0; - z-index: 5999; - display: none; -} -.panel { - z-index: 1000; - display: none; - background: #111; - box-sizing: border-box; - overflow: auto; - -webkit-overflow-scrolling: touch; - position: absolute; - width: 260px; - top: 0; - height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.panel.panel-left.panel-cover { - z-index: 6000; - left: -260px; -} -.panel.panel-left.panel-reveal { - left: 0; -} -.panel.panel-right.panel-cover { - z-index: 6000; - right: -260px; -} -.panel.panel-right.panel-reveal { - right: 0; -} -body.with-panel-left-cover .views, -body.with-panel-right-cover .views { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -body.with-panel-left-cover .panel-overlay, -body.with-panel-right-cover .panel-overlay { - display: block; -} -body.with-panel-left-reveal .views, -body.with-panel-right-reveal .views { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - transition-property: transform; -} -body.with-panel-left-reveal .panel-overlay, -body.with-panel-right-reveal .panel-overlay { - display: block; -} -body.with-panel-left-reveal .views { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-reveal .panel-overlay { - margin-left: 260px; -} -body.with-panel-left-cover .panel-left { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-right-reveal .views { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-reveal .panel-overlay { - margin-left: -260px; -} -body.with-panel-right-cover .panel-right { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.panel-closing .views { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - transition-property: transform; -} -/* === Tabs === */ -.tabs .tab { - display: none; -} -.tabs .tab.active { - display: block; -} -.tabs-animated-wrap { - position: relative; - width: 100%; - overflow: hidden; - height: 100%; -} -.tabs-animated-wrap > .tabs { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - height: 100%; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabs-animated-wrap > .tabs > .tab { - width: 100%; - display: block; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.tabs-swipeable-wrap { - height: 100%; -} -.tabs-swipeable-wrap > .tabs > .tab { - display: block; -} -/* === Messages === */ -.messages-content { - background: #fff; -} -.messages { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.messages-date { - text-align: center; - font-weight: 500; - font-size: 11px; - line-height: 1; - margin: 10px 15px; - color: #8e8e93; -} -html.ios-gt-8 .messages-date { - font-weight: 600; -} -.messages-date span { - font-weight: 400; -} -.message { - box-sizing: border-box; - margin: 1px 10px 0; - max-width: 70%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.message:first-child { - margin-top: 10px; -} -.message .message-text { - box-sizing: border-box; - border-radius: 16px; - padding: 6px 16px 9px; - min-width: 48px; - min-height: 35px; - font-size: 17px; - line-height: 1.2; - word-break: break-word; -} -.message .message-text img { - max-width: 100%; - height: auto; -} -.message.message-pic .message-text { - padding: 0; - background: none; -} -.message.message-pic img { - display: block; - border-radius: 16px; -} -.message-name { - font-size: 12px; - line-height: 1; - color: #8e8e93; - margin-bottom: 2px; - margin-top: 7px; -} -.message-hide-name .message-name { - display: none; -} -.message-label { - font-size: 12px; - line-height: 1; - color: #8e8e93; - margin-top: 4px; -} -.message-hide-label .message-label { - display: none; -} -.message-avatar { - width: 29px; - height: 29px; - border-radius: 100%; - margin-top: -29px; - position: relative; - top: 1px; - background-size: cover; - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.message-hide-avatar .message-avatar { - opacity: 0; -} -.message-date { - font-size: 12px; - margin-top: 4px; - opacity: 0.8; -} -.message-pic img + .message-date { - margin-top: 8px; -} -.message-sent .message-date { - text-align: right; -} -.message-sent { - -ms-flex-item-align: end; - -webkit-align-self: flex-end; - align-self: flex-end; - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.message-sent .message-name { - margin-right: 16px; -} -.message-sent .message-label { - margin-right: 6px; -} -.message-sent.message-with-avatar .message-text { - margin-right: 29px; -} -.message-sent.message-with-avatar .message-name { - margin-right: 45px; -} -.message-sent.message-with-avatar .message-label { - margin-right: 34px; -} -.message-sent .message-text { - padding-right: 22px; - background-color: #00d449; - color: white; - margin-left: auto; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; -} -.message-sent.message-last .message-text, -.message-sent.message-with-tail .message-text { - border-radius: 16px 16px 0 16px; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; -} -.message-sent.message-last.message-pic img, -.message-sent.message-with-tail.message-pic img { - border-radius: 16px 16px 0 16px; -} -.message-received { - -ms-flex-item-align: start; - -webkit-align-self: flex-start; - align-self: flex-start; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.message-received .message-text { - padding-left: 22px; - background-color: #e5e5ea; - color: #000; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; -} -.message-received .message-name { - margin-left: 16px; -} -.message-received .message-label { - margin-left: 6px; -} -.message-received.message-with-avatar .message-text { - margin-left: 29px; -} -.message-received.message-with-avatar .message-name { - margin-left: 45px; -} -.message-received.message-with-avatar .message-label { - margin-left: 34px; -} -.message-received.message-last .message-text, -.message-received.message-with-tail .message-text { - border-radius: 16px 16px 16px 0; - -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; -} -.message-received.message-last.message-pic img, -.message-received.message-with-tail.message-pic img { - border-radius: 16px 16px 16px 0; -} -.message-last { - margin-bottom: 8px; -} -.message-appear-from-bottom { - -webkit-animation: messageAppearFromBottom 400ms; - animation: messageAppearFromBottom 400ms; -} -.message-appear-from-top { - -webkit-animation: messageAppearFromTop 400ms; - animation: messageAppearFromTop 400ms; -} -.messages-auto-layout .message-name, -.messages-auto-layout .message-label { - display: none; -} -.messages-auto-layout .message-avatar { - opacity: 0; -} -.messages-auto-layout .message-first .message-name { - display: block; -} -.messages-auto-layout .message-last .message-avatar { - opacity: 1; -} -.messages-auto-layout .message-last .message-label { - display: block; -} -html.retina.ios-6 .message, -html.retina.ios-6 .message.message-pic img { - -webkit-mask-box-image: none; - border-radius: 16px; -} -@-webkit-keyframes messageAppearFromBottom { - from { - -webkit-transform: translate3d(0, 100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromBottom { - from { - transform: translate3d(0, 100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes messageAppearFromTop { - from { - -webkit-transform: translate3d(0, -100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromTop { - from { - transform: translate3d(0, -100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -/* === Statusbar overlay === */ -html.with-statusbar-overlay body { - padding-top: 20px; - box-sizing: border-box; -} -html.with-statusbar-overlay body .statusbar-overlay { - display: block; -} -html.with-statusbar-overlay body .panel { - padding-top: 20px; -} -.statusbar-overlay { - background: #f7f7f8; - z-index: 10000; - position: absolute; - left: 0; - top: 0; - height: 20px; - width: 100%; - display: none; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -/* === Preloader === */ -.preloader { - display: inline-block; - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); - background-position: 50%; - background-size: 100%; - background-repeat: no-repeat; - -webkit-animation: preloader-spin 1s steps(12, end) infinite; - animation: preloader-spin 1s steps(12, end) infinite; -} -@-webkit-keyframes preloader-spin { - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes preloader-spin { - 100% { - transform: rotate(360deg); - } -} -/* === Progress Bar === */ -.progressbar, -.progressbar-infinite { - height: 2px; - width: 100%; - overflow: hidden; - position: relative; - display: block; - background: #b6b6b6; - border-radius: 2px; - -webkit-transform-origin: center top; - transform-origin: center top; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.progressbar { - vertical-align: middle; -} -.progressbar span { - width: 100%; - background: #40865c; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.progressbar-infinite:before { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #40865c; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transform-origin: left center; - transform-origin: left center; - -webkit-animation: progressbar-infinite 1s linear infinite; - animation: progressbar-infinite 1s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite { - top: 20px; -} -.progressbar-infinite.color-multi { - background: none; -} -.progressbar-infinite.color-multi:before { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 400%; - height: 100%; - background-image: -webkit-linear-gradient(left, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); - background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); - background-size: 25% 100%; - background-repeat: repeat-x; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-animation: progressbar-infinite-multicolor 3s linear infinite; - animation: progressbar-infinite-multicolor 3s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite.color-multi, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite.color-multi { - top: 20px; -} -body > .progressbar, -.view > .progressbar, -.views > .progressbar, -.page > .progressbar, -.panel > .progressbar, -.popup > .progressbar, -.framework7-root > .progressbar, -body > .progressbar-infinite, -.view > .progressbar-infinite, -.views > .progressbar-infinite, -.page > .progressbar-infinite, -.panel > .progressbar-infinite, -.popup > .progressbar-infinite, -.framework7-root > .progressbar-infinite { - position: absolute; - left: 0; - top: 0; - z-index: 15000; - border-radius: 0; -} -.progressbar-in { - -webkit-animation: progressbar-in 300ms forwards; - animation: progressbar-in 300ms forwards; -} -.progressbar-out { - -webkit-animation: progressbar-out 300ms forwards; - animation: progressbar-out 300ms forwards; -} -html.with-statusbar-overlay body > .progressbar { - top: 20px; -} -@-webkit-keyframes progressbar-in { - from { - opacity: 0; - -webkit-transform: scaleY(0); - } - to { - opacity: 1; - -webkit-transform: scaleY(1); - } -} -@keyframes progressbar-in { - from { - opacity: 0; - transform: scaleY(0); - } - to { - opacity: 1; - transform: scaleY(1); - } -} -@-webkit-keyframes progressbar-out { - from { - opacity: 1; - -webkit-transform: scaleY(1); - } - to { - opacity: 0; - -webkit-transform: scaleY(0); - } -} -@keyframes progressbar-out { - from { - opacity: 1; - transform: scaleY(1); - } - to { - opacity: 0; - transform: scaleY(0); - } -} -@-webkit-keyframes progressbar-infinite { - 0% { - -webkit-transform: translate3d(-50%, 0, 0) scaleX(0.5); - } - 100% { - -webkit-transform: translate3d(100%, 0, 0) scaleX(0.5); - } -} -@keyframes progressbar-infinite { - 0% { - transform: translate3d(-50%, 0, 0) scaleX(0.5); - } - 100% { - transform: translate3d(100%, 0, 0) scaleX(0.5); - } -} -@-webkit-keyframes progressbar-infinite-multicolor { - from { - -webkit-transform: translate3d(0%, 0, 0); - } - to { - -webkit-transform: translate3d(-50%, 0, 0); - } -} -@keyframes progressbar-infinite-multicolor { - from { - transform: translate3d(0%, 0, 0); - } - to { - transform: translate3d(-50%, 0, 0); - } -} -/* === Swiper === */ -.swiper-container { - margin-left: auto; - margin-right: auto; - position: relative; - overflow: hidden; - /* Fix of Webkit flickering */ - z-index: 1; -} -.swiper-container-no-flexbox .swiper-slide { - float: left; -} -.swiper-container-vertical > .swiper-wrapper { - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.swiper-wrapper { - position: relative; - width: 100%; - height: 100%; - z-index: 1; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -.swiper-container-android .swiper-slide, -.swiper-wrapper { - -webkit-transform: translate3d(0px, 0, 0); - -moz-transform: translate3d(0px, 0, 0); - -o-transform: translate(0px, 0px); - -ms-transform: translate3d(0px, 0, 0); - transform: translate3d(0px, 0, 0); -} -.swiper-container-multirow > .swiper-wrapper { - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -ms-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - flex-wrap: wrap; -} -.swiper-container-free-mode > .swiper-wrapper { - -webkit-transition-timing-function: ease-out; - -moz-transition-timing-function: ease-out; - -ms-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; - margin: 0 auto; -} -.swiper-slide { - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - width: 100%; - height: 100%; - position: relative; -} -/* Auto Height */ -.swiper-container-autoheight, -.swiper-container-autoheight .swiper-slide { - height: auto; -} -.swiper-container-autoheight .swiper-wrapper { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; - -webkit-transition-property: -webkit-transform, height; - -moz-transition-property: -moz-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform, height; -} -/* a11y */ -.swiper-container .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} -/* IE10 Windows Phone 8 Fixes */ -.swiper-wp8-horizontal { - -ms-touch-action: pan-y; - touch-action: pan-y; -} -.swiper-wp8-vertical { - -ms-touch-action: pan-x; - touch-action: pan-x; -} -/* Arrows */ -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: 50%; - width: 27px; - height: 44px; - margin-top: -22px; - z-index: 10; - cursor: pointer; - -moz-background-size: 27px 44px; - -webkit-background-size: 27px 44px; - background-size: 27px 44px; - background-position: center; - background-repeat: no-repeat; -} -.swiper-button-prev.swiper-button-disabled, -.swiper-button-next.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; -} -.swiper-button-prev, -.swiper-container-rtl .swiper-button-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); - left: 10px; - right: auto; -} -.swiper-button-next, -.swiper-container-rtl .swiper-button-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); - right: 10px; - left: auto; -} -/* Pagination Styles */ -.swiper-pagination { - position: absolute; - text-align: center; - -webkit-transition: 300ms; - -moz-transition: 300ms; - -o-transition: 300ms; - transition: 300ms; - -webkit-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - -o-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - z-index: 10; -} -.swiper-pagination.swiper-pagination-hidden { - opacity: 0; -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-container-horizontal > .swiper-pagination-bullets { - bottom: 10px; - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullet { - width: 8px; - height: 8px; - display: inline-block; - border-radius: 100%; - background: #000; - opacity: 0.2; -} -button.swiper-pagination-bullet { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - -moz-appearance: none; - -ms-appearance: none; - -webkit-appearance: none; - appearance: none; -} -.swiper-pagination-clickable .swiper-pagination-bullet { - cursor: pointer; -} -.swiper-pagination-bullet-active { - opacity: 1; - background: #007aff; -} -.swiper-container-vertical > .swiper-pagination-bullets { - right: 10px; - top: 50%; - -webkit-transform: translate3d(0px, -50%, 0); - -moz-transform: translate3d(0px, -50%, 0); - -o-transform: translate(0px, -50%); - -ms-transform: translate3d(0px, -50%, 0); - transform: translate3d(0px, -50%, 0); -} -.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { - margin: 5px 0; - display: block; -} -.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet { - margin: 0 5px; -} -/* Progress */ -.swiper-pagination-progress { - background: rgba(0, 0, 0, 0.25); - position: absolute; -} -.swiper-pagination-progress .swiper-pagination-progressbar { - background: #007aff; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - -webkit-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - -webkit-transform-origin: left top; - -moz-transform-origin: left top; - -ms-transform-origin: left top; - -o-transform-origin: left top; - transform-origin: left top; -} -.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar { - -webkit-transform-origin: right top; - -moz-transform-origin: right top; - -ms-transform-origin: right top; - -o-transform-origin: right top; - transform-origin: right top; -} -.swiper-container-horizontal > .swiper-pagination-progress { - width: 100%; - height: 4px; - left: 0; - top: 0; -} -.swiper-container-vertical > .swiper-pagination-progress { - width: 4px; - height: 100%; - left: 0; - top: 0; -} -/* 3D Container */ -.swiper-container-3d { - -webkit-perspective: 1200px; - -moz-perspective: 1200px; - -o-perspective: 1200px; - perspective: 1200px; -} -.swiper-container-3d .swiper-wrapper, -.swiper-container-3d .swiper-slide, -.swiper-container-3d .swiper-slide-shadow-left, -.swiper-container-3d .swiper-slide-shadow-right, -.swiper-container-3d .swiper-slide-shadow-top, -.swiper-container-3d .swiper-slide-shadow-bottom, -.swiper-container-3d .swiper-cube-shadow { - -webkit-transform-style: preserve-3d; - -moz-transform-style: preserve-3d; - -ms-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.swiper-container-3d .swiper-slide-shadow-left, -.swiper-container-3d .swiper-slide-shadow-right, -.swiper-container-3d .swiper-slide-shadow-top, -.swiper-container-3d .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; -} -.swiper-container-3d .swiper-slide-shadow-left { - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-right { - background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-top { - background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -.swiper-container-3d .swiper-slide-shadow-bottom { - background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); - /* Safari 4+, Chrome */ - background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Chrome 10+, Safari 5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 3.6-15 */ - background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Opera 11.10-12.00 */ - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - /* Firefox 16+, IE10, Opera 12.50+ */ -} -/* Coverflow */ -.swiper-container-coverflow .swiper-wrapper, -.swiper-container-flip .swiper-wrapper { - /* Windows 8 IE 10 fix */ - -ms-perspective: 1200px; -} -/* Cube + Flip */ -.swiper-container-cube, -.swiper-container-flip { - overflow: visible; -} -.swiper-container-cube .swiper-slide, -.swiper-container-flip .swiper-slide { - pointer-events: none; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; -} -.swiper-container-cube .swiper-slide .swiper-slide, -.swiper-container-flip .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-container-cube .swiper-slide-active, -.swiper-container-flip .swiper-slide-active, -.swiper-container-cube .swiper-slide-active .swiper-slide-active, -.swiper-container-flip .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-container-cube .swiper-slide-shadow-top, -.swiper-container-flip .swiper-slide-shadow-top, -.swiper-container-cube .swiper-slide-shadow-bottom, -.swiper-container-flip .swiper-slide-shadow-bottom, -.swiper-container-cube .swiper-slide-shadow-left, -.swiper-container-flip .swiper-slide-shadow-left, -.swiper-container-cube .swiper-slide-shadow-right, -.swiper-container-flip .swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; -} -/* Cube */ -.swiper-container-cube .swiper-slide { - visibility: hidden; - -webkit-transform-origin: 0 0; - -moz-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - width: 100%; - height: 100%; -} -.swiper-container-cube.swiper-container-rtl .swiper-slide { - -webkit-transform-origin: 100% 0; - -moz-transform-origin: 100% 0; - -ms-transform-origin: 100% 0; - transform-origin: 100% 0; -} -.swiper-container-cube .swiper-slide-active, -.swiper-container-cube .swiper-slide-next, -.swiper-container-cube .swiper-slide-prev, -.swiper-container-cube .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; -} -.swiper-container-cube .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - background: #000; - opacity: 0.6; - -webkit-filter: blur(50px); - filter: blur(50px); - z-index: 0; -} -/* Fade */ -.swiper-container-fade.swiper-container-free-mode .swiper-slide { - -webkit-transition-timing-function: ease-out; - -moz-transition-timing-function: ease-out; - -ms-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.swiper-container-fade .swiper-slide { - pointer-events: none; - -webkit-transition-property: opacity; - -moz-transition-property: opacity; - -o-transition-property: opacity; - transition-property: opacity; -} -.swiper-container-fade .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-container-fade .swiper-slide-active, -.swiper-container-fade .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-zoom-container { - width: 100%; - height: 100%; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -moz-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -moz-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - text-align: center; -} -.swiper-zoom-container > img, -.swiper-zoom-container > svg, -.swiper-zoom-container > canvas { - max-width: 100%; - max-height: 100%; - object-fit: contain; -} -/* Scrollbar */ -.swiper-scrollbar { - border-radius: 10px; - position: relative; - -ms-touch-action: none; - background: rgba(0, 0, 0, 0.1); -} -.swiper-container-horizontal > .swiper-scrollbar { - position: absolute; - left: 1%; - bottom: 3px; - z-index: 50; - height: 5px; - width: 98%; -} -.swiper-container-vertical > .swiper-scrollbar { - position: absolute; - right: 3px; - top: 1%; - z-index: 50; - width: 5px; - height: 98%; -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: rgba(0, 0, 0, 0.5); - border-radius: 10px; - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -/* Preloader */ -.swiper-slide .preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; -} -/* === Columns Picker === */ -.picker-columns { - width: 100%; - height: 260px; - z-index: 11500; -} -.picker-columns.picker-modal-inline, -.popover .picker-columns { - height: 200px; -} -@media (orientation: landscape) and (max-height: 415px) { - .picker-columns:not(.picker-modal-inline) { - height: 200px; - } -} -.popover.popover-picker-columns { - width: 280px; -} -.picker-items { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - padding: 0; - text-align: right; - font-size: 24px; - -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); - -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); -} -.picker-items-col { - overflow: hidden; - position: relative; - max-height: 100%; -} -.picker-items-col.picker-items-col-left { - text-align: left; -} -.picker-items-col.picker-items-col-center { - text-align: center; -} -.picker-items-col.picker-items-col-right { - text-align: right; -} -.picker-items-col.picker-items-col-divider { - color: #000; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.picker-items-col-wrapper { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.picker-item { - height: 36px; - line-height: 36px; - padding: 0 10px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - color: #707274; - left: 0; - top: 0; - width: 100%; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.picker-items-col-absolute .picker-item { - position: absolute; -} -.picker-item.picker-item-far { - pointer-events: none; -} -.picker-item.picker-selected { - color: #000; - -webkit-transform: translate3d(0, 0, 0) rotateX(0deg); - transform: translate3d(0, 0, 0) rotateX(0deg); -} -.picker-center-highlight { - height: 36px; - box-sizing: border-box; - position: absolute; - left: 0; - width: 100%; - top: 50%; - margin-top: -18px; - pointer-events: none; -} -.picker-center-highlight:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #a8abb0; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-center-highlight:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-center-highlight:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #a8abb0; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-center-highlight:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-3d .picker-items { - overflow: hidden; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.picker-3d .picker-items-col, -.picker-3d .picker-items-col-wrapper, -.picker-3d .picker-item { - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.picker-3d .picker-items-col { - overflow: visible; -} -.picker-3d .picker-item { - -webkit-transform-origin: center center -110px; - transform-origin: center center -110px; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -/* === Notifications === */ -.notifications { - position: absolute; - left: 0; - top: 0; - width: 100%; - z-index: 20000; - font-size: 14px; - margin: 0; - border: none; - display: none; - box-sizing: border-box; - max-height: 100%; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-perspective: 1200px; - perspective: 1200px; - padding-top: 8px; - padding-bottom: 8px; -} -.notifications.list-block > ul { - background: none; - margin: 0 auto; - max-width: 584px; -} -.notifications.list-block > ul:before { - display: none; -} -.notifications.list-block > ul:after { - display: none; -} -.with-statusbar-overlay .notifications { - padding-top: 20px; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); -} -.notifications .item-content { - padding-left: 8px; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.notifications .item-title-row { - margin-bottom: 8px; -} -.notifications .item-title-row:before { - position: absolute; - left: 0; - top: 0; - height: 36px; - border-radius: 12px 12px 0 0; - z-index: -1; - background: #fff; - content: ''; - width: 100%; -} -.notifications .item-title { - font-weight: 400 !important; - height: 36px; - text-transform: uppercase; - line-height: 35px; - font-size: 13px; -} -html.ios-gt-8 .notifications .item-title { - font-weight: 400 !important; -} -.notifications .item-subtitle { - font-size: 15px; - font-weight: 500; -} -html.ios-gt-8 .notifications .item-subtitle { - font-weight: 600; -} -.notifications .item-text { - font-size: 14px; - color: inherit; - height: auto; - line-height: inherit; -} -.notifications .item-subtitle:first-child, -.notifications .item-text:first-child { - margin-top: 8px; -} -.notifications .item-content, -.notifications .item-inner { - min-height: 0; -} -.notifications .item-inner { - position: static; -} -.notifications .item-inner:after { - display: none; -} -.notifications .item-media { - width: 20px; -} -.notifications .item-media img { - max-width: 20px; - max-height: 20px; -} -.notifications .item-media i.icon { - width: 20px; - height: 20px; - -webkit-background-size: cover; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} -.notifications .item-media + .item-inner { - margin-left: 8px; - overflow: visible; -} -.notifications li.notification-item { - box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); -} -.notifications li.notification-item .item-inner { - padding-top: 0; -} -.notifications li.notification-item .item-media { - padding-top: 8px; -} -.notifications .item-after { - margin-top: auto; - margin-bottom: auto; -} -.notifications .close-notification { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2044%2044'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cg%20stroke%3D'none'%20stroke-width%3D'1'%20fill%3D'none'%20fill-rule%3D'evenodd'%3E%3Cpath%20d%3D'M22.5%2C20.3786797%20L14.7218254%2C12.6005051%20L12.6005051%2C14.7218254%20L20.3786797%2C22.5%20L12.6005051%2C30.2781746%20L14.7218254%2C32.3994949%20L22.5%2C24.6213203%20L30.2781746%2C32.3994949%20L32.3994949%2C30.2781746%20L24.6213203%2C22.5%20L32.3994949%2C14.7218254%20L30.2781746%2C12.6005051%20L22.5%2C20.3786797%20Z%20M22%2C44%20C34.1502645%2C44%2044%2C34.1502645%2044%2C22%20C44%2C9.8497355%2034.1502645%2C0%2022%2C0%20C9.8497355%2C0%200%2C9.8497355%200%2C22%20C0%2C34.1502645%209.8497355%2C44%2022%2C44%20Z'%20fill%3D'%23000000'%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E"); - background-position: center top; - background-repeat: no-repeat; - -webkit-background-size: 100% auto; - background-size: 100% auto; - position: relative; - opacity: 0.2; -} -.notifications .close-notification span { - position: absolute; - width: 44px; - height: 44px; - left: 50%; - top: 50%; - margin-left: -22px; - margin-top: -22px; -} -.notifications .notification-item { - max-width: 568px; - margin: 0 auto 8px; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - background: rgba(250, 250, 250, 0.95); - border-radius: 12px; - width: -webkit-calc(100% - 16px); - width: -moz-calc(100% - 16px); - width: calc(100% - 16px); - position: absolute; - left: 8px; - top: 0; -} -.notifications .notification-item:last-child { - margin-bottom: 0; -} -.notifications .notification-hidden { - opacity: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -/* === Disabled elements === */ -.disabled, -[disabled] { - opacity: 0.55; - pointer-events: none; -} -.disabled .disabled, -.disabled [disabled], -[disabled] .disabled, -[disabled] [disabled] { - opacity: 1; -} -* { - -webkit-user-select: none; - user-select: none; -} -input, -textarea { - -webkit-touch-callout: default; - -webkit-user-select: text; - user-select: text; -} -#editor-navbar.navbar .right a + a, -#editor-navbar.navbar .left a + a { - margin-left: 0; -} -html:not(.phone) #editor-navbar.navbar .right a + a, -html:not(.phone) #editor-navbar.navbar .left a + a { - margin-left: 10px; -} -.phone.ios .container-edit .navbar:before, -.phone.ios .container-collaboration .navbar:before, -.phone.ios .container-filter .navbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .phone.ios .container-edit .navbar:before, -html.pixel-ratio-2 .phone.ios .container-collaboration .navbar:before, -html.pixel-ratio-2 .phone.ios .container-filter .navbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .phone.ios .container-edit .navbar:before, -html.pixel-ratio-3 .phone.ios .container-collaboration .navbar:before, -html.pixel-ratio-3 .phone.ios .container-filter .navbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.phone.ios .container-edit .page-content .list-block:first-child, -.phone.ios .container-collaboration .page-content .list-block:first-child, -.phone.ios .container-filter .page-content .list-block:first-child { - margin-top: -1px; -} -.container-edit.popover, -.container-add.popover, -.container-settings.popover, -.container-collaboration.popover, -.container-filter.popover { - width: 360px; -} -.settings.popup .list-block ul, -.settings.popover .list-block ul { - border-radius: 0 !important; - background: #fff; -} -.settings.popup .list-block ul:last-child:after, -.settings.popover .list-block ul:last-child:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .settings.popup .list-block ul:last-child:after, -html.pixel-ratio-2 .settings.popover .list-block ul:last-child:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .settings.popup .list-block ul:last-child:after, -html.pixel-ratio-3 .settings.popover .list-block ul:last-child:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.settings.popup .list-block:first-child, -.settings.popover .list-block:first-child { - margin-top: 0; -} -.settings.popup .list-block:last-child, -.settings.popover .list-block:last-child { - margin-bottom: 30px; -} -.settings.popup .list-block li:first-child a, -.settings.popover .list-block li:first-child a, -.settings.popup .list-block li:last-child a, -.settings.popover .list-block li:last-child a { - border-radius: 0 !important; -} -.settings.popup > .content-block, -.settings.popover > .content-block, -.settings.popup .popover-inner > .content-block, -.settings.popover .popover-inner > .content-block { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - color: #000; -} -.settings.popup .popover-view, -.settings.popover .popover-view { - border-radius: 13px; -} -.settings.popup .popover-view > .pages, -.settings.popover .popover-view > .pages { - border-radius: 13px; -} -.settings.popup .content-block:first-child, -.settings.popover .content-block:first-child { - margin-top: 0; -} -.settings.popup .content-block:first-child .content-block-inner:before, -.settings.popover .content-block:first-child .content-block-inner:before { - height: 0; -} -.settings .categories { - width: 100%; -} -.settings .categories > .buttons-row { - width: 100%; -} -.settings .categories > .buttons-row .button { - padding: 0 1px; -} -.settings .popover-inner { - height: 400px; -} -.container-add .categories > .buttons-row .button { - display: flex; - justify-content: center; - align-items: center; -} -.container-add .categories > .buttons-row .button.active i.icon { - background-color: transparent; -} -.dataview.page-content { - background: #ffffff; -} -.dataview .row { - justify-content: space-around; -} -.dataview ul { - padding: 0 10px; - list-style: none; -} -.dataview ul li { - display: inline-block; -} -.dataview .active { - position: relative; - z-index: 1; -} -.dataview .active::after { - content: ''; - position: absolute; - width: 22px; - height: 22px; - right: -5px; - bottom: -5px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%2211%22%2F%3E%3Cpath%20d%3D%22M11%2C21A10%2C10%2C0%2C1%2C1%2C21%2C11%2C10%2C10%2C0%2C0%2C1%2C11%2C21h0ZM17.4%2C7.32L17.06%2C7a0.48%2C0.48%2C0%2C0%2C0-.67%2C0l-7%2C6.84L6.95%2C11.24a0.51%2C0.51%2C0%2C0%2C0-.59.08L6%2C11.66a0.58%2C0.58%2C0%2C0%2C0%2C0%2C.65l3.19%2C3.35a0.38%2C0.38%2C0%2C0%2C0%2C.39%2C0L17.4%2C8a0.48%2C0.48%2C0%2C0%2C0%2C0-.67h0Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.item-content .item-after.splitter { - color: #000; -} -.item-content .item-after.splitter label { - margin: 0 5px; -} -.item-content .item-after.splitter .buttons-row { - min-width: 90px; - margin-left: 10px; -} -.item-content .item-after.value { - display: block; - min-width: 60px; - color: #000000; - margin-left: 10px; - text-align: right; -} -.item-content .item-after input.field { - color: #40865c; -} -.item-content .item-after input.field.placeholder-color::-webkit-input-placeholder { - color: #40865c; -} -.item-content .item-after input.field.right { - text-align: right; -} -.item-content.buttons .item-inner { - padding-top: 0; - padding-bottom: 0; - align-items: stretch; -} -.item-content.buttons .item-inner > .row { - width: 100%; - align-items: stretch; -} -.item-content.buttons .item-inner > .row .button { - flex: 1; - border: none; - height: inherit; - border-radius: 0; - font-size: 17px; - display: flex; - align-items: center; - justify-content: center; -} -.item-content .item-after .color-preview { - width: 75px; - height: 30px; - margin-top: -3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-content i .color-preview { - width: 22px; - height: 8px; - display: inline-block; - margin-top: 21px; - box-sizing: border-box; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-link.no-indicator .item-inner { - background-image: none; - padding-right: 15px; -} -.list-block .item-link.list-button { - color: #40865c; -} -.button.active i.icon { - background-color: #fff; -} -.document-menu { - background-color: rgba(0, 0, 0, 0.9); - width: auto; - border-radius: 8px; - z-index: 12500; -} -.document-menu .popover-angle:after { - background: rgba(0, 0, 0, 0.9); -} -.document-menu .list-block { - font-size: 14px; - white-space: pre; -} -.document-menu .list-block:first-child ul { - border-radius: 7px 0 0 7px; -} -.document-menu .list-block:first-child ul:before { - display: none; -} -.document-menu .list-block:first-child li:first-child a { - border-radius: 7px 0 0 7px; -} -.document-menu .list-block:last-child ul { - border-radius: 0 7px 7px 0; -} -.document-menu .list-block:last-child ul:after { - display: none; -} -.document-menu .list-block:last-child li:last-child a { - border-radius: 0 7px 7px 0; -} -.document-menu .list-block:first-child:last-child li:first-child:last-child a, -.document-menu .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 7px; -} -.document-menu .list-block .item-link { - display: inline-block; -} -html:not(.watch-active-state) .document-menu .list-block .item-link:active, -.document-menu .list-block .item-link.active-state { - background-color: #d9d9d9; -} -html:not(.watch-active-state) .document-menu .list-block .item-link:active .item-inner:after, -.document-menu .list-block .item-link.active-state .item-inner:after { - background-color: transparent; -} -html.phone .document-menu .list-block .item-link { - padding: 0 10px; -} -.document-menu .list-block .item-link.list-button { - color: #ffffff; - line-height: 36px; -} -.document-menu .list-block .item-link.list-button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(230, 230, 230, 0.9); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .document-menu .list-block .item-link.list-button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .document-menu .list-block .item-link.list-button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.document-menu .list-block li { - display: inline-block; -} -.document-menu .list-block li:last-child .list-button:after { - display: none; -} -.document-menu .list-block li:last-child .item-inner:after, -.document-menu .list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.document-menu .list-block li li:last-child .item-inner:after, -.document-menu .list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: rgba(230, 230, 230, 0.9); - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .document-menu .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .document-menu .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .document-menu .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.document-menu .list-block.no-hairlines:before, -.document-menu .list-block.no-hairlines ul:before, -.document-menu .list-block.no-hairlines .content-block-inner:before { - display: none; -} -.document-menu .list-block.no-hairlines:after, -.document-menu .list-block.no-hairlines ul:after, -.document-menu .list-block.no-hairlines .content-block-inner:after { - display: none; -} -.document-menu .list-block.no-hairlines-between .item-inner:after, -.document-menu .list-block.no-hairlines-between .list-button:after, -.document-menu .list-block.no-hairlines-between .item-divider:after, -.document-menu .list-block.no-hairlines-between .list-group-title:after, -.document-menu .list-block.no-hairlines-between .list-group-title:after { - display: none; -} -.color-palette a { - flex-grow: 1; - position: relative; - min-width: 10px; - min-height: 26px; - margin: 1px 1px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-palette a.active:after { - content: ' '; - position: absolute; - width: 100%; - height: 100%; - box-shadow: 0 0 0 1px white, 0 0 0 4px #40865c; - z-index: 1; - border-radius: 1px; -} -.color-palette a.transparent { - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2022%2022'%20xml%3Aspace%3D'preserve'%3E%3Cline%20stroke%3D'%23ff0000'%20stroke-linecap%3D'undefined'%20stroke-linejoin%3D'undefined'%20id%3D'svg_1'%20y2%3D'0'%20x2%3D'22'%20y1%3D'22'%20x1%3D'0'%20stroke-width%3D'2'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.color-palette .theme-colors .item-inner { - display: inline-block; - overflow: visible; -} -.color-palette .standart-colors .item-inner, -.color-palette .dynamic-colors .item-inner { - overflow: visible; -} -.custom-colors { - display: flex; - justify-content: space-around; - align-items: center; - margin: 15px; -} -.custom-colors.phone { - max-width: 300px; - margin: 0 auto; - margin-top: 4px; -} -.custom-colors.phone .button-round { - margin-top: 20px; -} -.custom-colors .right-block { - margin-left: 20px; -} -.custom-colors .button-round { - height: 72px; - width: 72px; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - border-radius: 100px; - background-color: #ffffff; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-color: transparent; - margin-top: 25px; -} -.custom-colors .button-round.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.custom-colors .color-hsb-preview { - width: 72px; - height: 72px; - border-radius: 100px; - overflow: hidden; - border: 1px solid #c4c4c4; -} -.custom-colors .new-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .current-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .list-block ul:before, -.custom-colors .list-block ul:after { - content: none; -} -.custom-colors .list-block ul li { - border: 1px solid rgba(0, 0, 0, 0.3); -} -.custom-colors .color-picker-wheel { - position: relative; - width: 290px; - max-width: 100%; - height: auto; - font-size: 0; -} -.custom-colors .color-picker-wheel svg { - width: 100%; - height: auto; -} -.custom-colors .color-picker-wheel .color-picker-wheel-handle { - width: calc(16.66666667%); - height: calc(16.66666667%); - position: absolute; - box-sizing: border-box; - border: 2px solid #fff; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); - background: red; - border-radius: 50%; - left: 0; - top: 0; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum { - background-color: #000; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); - position: relative; - width: 45%; - height: 45%; - left: 50%; - top: 50%; - transform: translate3d(-50%, -50%, 0); - position: absolute; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle { - width: 4px; - height: 4px; - position: absolute; - left: -2px; - top: -2px; - z-index: 1; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle:after { - background-color: inherit; - content: ''; - position: absolute; - width: 16px; - height: 16px; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); - box-sizing: border-box; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transition: 150ms; - transition-property: transform; - transform-origin: center; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after { - transform: scale(1.5) translate(-33.333%, -33.333%); -} -.about .page-content { - text-align: center; -} -.about .content-block:first-child { - margin: 15px 0; -} -.about .content-block { - margin: 0 auto 15px; -} -.about .content-block a { - color: #000; -} -.about h3 { - font-weight: normal; - margin: 0; -} -.about h3.vendor { - color: #000; - font-weight: bold; - margin-top: 15px; -} -.about p > label { - margin-right: 5px; -} -.about .logo { - background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center; - margin-top: 20px; -} -.color-schemes-menu { - cursor: pointer; - display: block; - background-color: #fff; -} -.color-schemes-menu .item-inner { - justify-content: flex-start; -} -.color-schemes-menu .color-schema-block { - display: flex; -} -.color-schemes-menu .color { - min-width: 26px; - min-height: 26px; - margin: 0 2px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-schemes-menu .text { - margin-left: 20px; - color: #212121; -} -.page-change { - background-color: #FFFFFF; -} -.page-change .block-description { - background-color: #fff; - padding-top: 15px; - padding-bottom: 15px; - margin: 0; - max-width: 100%; - word-wrap: break-word; -} -.page-change #user-name { - font-size: 17px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-change #date-change { - font-size: 14px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 3px; -} -.page-change #text-change { - color: #000000; - font-size: 15px; - line-height: 20px; - margin: 0; - margin-top: 10px; -} -.page-change .block-btn, -.page-change .content-block.block-btn:first-child { - position: absolute; - bottom: 0; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0; - width: 100%; - height: 44px; - align-items: center; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); -} -.page-change .block-btn #btn-reject-change, -.page-change .content-block.block-btn:first-child #btn-reject-change { - margin-left: 20px; -} -.page-change .block-btn #btn-goto-change, -.page-change .content-block.block-btn:first-child #btn-goto-change { - margin-left: 10px; -} -.page-change .block-btn .change-buttons, -.page-change .content-block.block-btn:first-child .change-buttons, -.page-change .block-btn .accept-reject, -.page-change .content-block.block-btn:first-child .accept-reject { - display: flex; -} -.page-change .block-btn .next-prev, -.page-change .content-block.block-btn:first-child .next-prev { - display: flex; -} -.page-change .block-btn .next-prev .link, -.page-change .content-block.block-btn:first-child .next-prev .link { - width: 44px; -} -.page-change .block-btn .link, -.page-change .content-block.block-btn:first-child .link { - position: relative; - display: flex; - justify-content: center; - align-items: center; - font-size: 17px; - height: 44px; - min-width: 44px; -} -.page-change #no-changes { - padding: 16px; -} -.navbar .center-collaboration { - display: flex; - justify-content: space-around; -} -.container-collaboration .navbar .right.close-collaboration { - position: absolute; - right: 10px; -} -.container-collaboration .page-content .list-block:first-child { - margin-top: -1px; -} -.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #8e8e93; -} -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 500; -} -#user-list ul:before { - content: none; -} -.page-comments .header-comment, -.add-comment .header-comment, -.page-view-comments .header-comment, -.container-edit-comment .header-comment, -.container-add-reply .header-comment, -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - display: flex; - justify-content: space-between; - padding-right: 16px; -} -.page-comments .header-comment .comment-right, -.add-comment .header-comment .comment-right, -.page-view-comments .header-comment .comment-right, -.container-edit-comment .header-comment .comment-right, -.container-add-reply .header-comment .comment-right, -.page-edit-comment .header-comment .comment-right, -.page-add-reply .header-comment .comment-right, -.page-edit-reply .header-comment .comment-right { - display: flex; - justify-content: space-between; - width: 70px; -} -.page-comments .list-block .item-inner, -.add-comment .list-block .item-inner, -.page-view-comments .list-block .item-inner, -.container-edit-comment .list-block .item-inner, -.container-add-reply .list-block .item-inner, -.page-edit-comment .list-block .item-inner, -.page-add-reply .list-block .item-inner, -.page-edit-reply .list-block .item-inner { - display: block; - padding: 16px 0; - word-wrap: break-word; -} -.page-comments .list-reply, -.add-comment .list-reply, -.page-view-comments .list-reply, -.container-edit-comment .list-reply, -.container-add-reply .list-reply, -.page-edit-comment .list-reply, -.page-add-reply .list-reply, -.page-edit-reply .list-reply { - padding-left: 26px; -} -.page-comments .reply-textarea, -.add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .comment-textarea, -.add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .edit-reply-textarea, -.add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - resize: vertical; -} -.page-comments .user-name, -.add-comment .user-name, -.page-view-comments .user-name, -.container-edit-comment .user-name, -.container-add-reply .user-name, -.page-edit-comment .user-name, -.page-add-reply .user-name, -.page-edit-reply .user-name { - font-size: 17px; - line-height: 22px; - color: #000000; - margin: 0; - font-weight: bold; -} -.page-comments .comment-date, -.add-comment .comment-date, -.page-view-comments .comment-date, -.container-edit-comment .comment-date, -.container-add-reply .comment-date, -.page-edit-comment .comment-date, -.page-add-reply .comment-date, -.page-edit-reply .comment-date, -.page-comments .reply-date, -.add-comment .reply-date, -.page-view-comments .reply-date, -.container-edit-comment .reply-date, -.container-add-reply .reply-date, -.page-edit-comment .reply-date, -.page-add-reply .reply-date, -.page-edit-reply .reply-date { - font-size: 13px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 0px; -} -.page-comments .comment-text, -.add-comment .comment-text, -.page-view-comments .comment-text, -.container-edit-comment .comment-text, -.container-add-reply .comment-text, -.page-edit-comment .comment-text, -.page-add-reply .comment-text, -.page-edit-reply .comment-text, -.page-comments .reply-text, -.add-comment .reply-text, -.page-view-comments .reply-text, -.container-edit-comment .reply-text, -.container-add-reply .reply-text, -.page-edit-comment .reply-text, -.page-add-reply .reply-text, -.page-edit-reply .reply-text { - color: #000000; - font-size: 15px; - line-height: 25px; - margin: 0; - max-width: 100%; - padding-right: 15px; -} -.page-comments .comment-text pre, -.add-comment .comment-text pre, -.page-view-comments .comment-text pre, -.container-edit-comment .comment-text pre, -.container-add-reply .comment-text pre, -.page-edit-comment .comment-text pre, -.page-add-reply .comment-text pre, -.page-edit-reply .comment-text pre, -.page-comments .reply-text pre, -.add-comment .reply-text pre, -.page-view-comments .reply-text pre, -.container-edit-comment .reply-text pre, -.container-add-reply .reply-text pre, -.page-edit-comment .reply-text pre, -.page-add-reply .reply-text pre, -.page-edit-reply .reply-text pre { - white-space: pre-wrap; -} -.page-comments .reply-item, -.add-comment .reply-item, -.page-view-comments .reply-item, -.container-edit-comment .reply-item, -.container-add-reply .reply-item, -.page-edit-comment .reply-item, -.page-add-reply .reply-item, -.page-edit-reply .reply-item { - margin-top: 15px; - padding-right: 16px; - padding-top: 13px; -} -.page-comments .reply-item .header-reply, -.add-comment .reply-item .header-reply, -.page-view-comments .reply-item .header-reply, -.container-edit-comment .reply-item .header-reply, -.container-add-reply .reply-item .header-reply, -.page-edit-comment .reply-item .header-reply, -.page-add-reply .reply-item .header-reply, -.page-edit-reply .reply-item .header-reply { - display: flex; - justify-content: space-between; -} -.page-comments .reply-item .user-name, -.add-comment .reply-item .user-name, -.page-view-comments .reply-item .user-name, -.container-edit-comment .reply-item .user-name, -.container-add-reply .reply-item .user-name, -.page-edit-comment .reply-item .user-name, -.page-add-reply .reply-item .user-name, -.page-edit-reply .reply-item .user-name { - padding-top: 3px; -} -.page-comments .reply-item:before, -.add-comment .reply-item:before, -.page-view-comments .reply-item:before, -.container-edit-comment .reply-item:before, -.container-add-reply .reply-item:before, -.page-edit-comment .reply-item:before, -.page-add-reply .reply-item:before, -.page-edit-reply .reply-item:before { - content: ''; - position: absolute; - left: auto; - bottom: 0; - right: auto; - top: 0; - height: 1px; - width: 100%; - background-color: #c8c7cc; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -.page-comments .comment-quote, -.add-comment .comment-quote, -.page-view-comments .comment-quote, -.container-edit-comment .comment-quote, -.container-add-reply .comment-quote, -.page-edit-comment .comment-quote, -.page-add-reply .comment-quote, -.page-edit-reply .comment-quote { - color: #40865c; - border-left: 1px solid #40865c; - padding-left: 10px; - padding-right: 16px; - margin: 5px 0; - font-size: 15px; -} -.page-comments .wrap-comment, -.add-comment .wrap-comment, -.page-view-comments .wrap-comment, -.container-edit-comment .wrap-comment, -.container-add-reply .wrap-comment, -.page-edit-comment .wrap-comment, -.page-add-reply .wrap-comment, -.page-edit-reply .wrap-comment, -.page-comments .wrap-reply, -.add-comment .wrap-reply, -.page-view-comments .wrap-reply, -.container-edit-comment .wrap-reply, -.container-add-reply .wrap-reply, -.page-edit-comment .wrap-reply, -.page-add-reply .wrap-reply, -.page-edit-reply .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-comments .comment-textarea, -.add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .reply-textarea, -.add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .edit-reply-textarea, -.add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - margin-top: 10px; - background: transparent; - outline: none; - width: 100%; - font-size: 17px; - border: none; - border-radius: 3px; - min-height: 100px; -} -.settings.popup .list-block ul.list-reply:last-child:after, -.settings.popover .list-block ul.list-reply:last-child:after { - display: none; -} -.container-edit-comment .page { - background-color: #FFFFFF; -} -.container-view-comment { - position: fixed; - -webkit-transition: height 100ms; - transition: height 120ms; - background-color: #FFFFFF; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - height: 50%; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12); -} -.container-view-comment .pages { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments .list-block { - margin-bottom: 100px; -} -.container-view-comment .page-view-comments .list-block ul:before, -.container-view-comment .page-view-comments .list-block ul:after { - content: none; -} -.container-view-comment .page-view-comments .list-block .item-inner { - padding: 0; -} -.container-view-comment .toolbar { - position: fixed; - background-color: #FFFFFF; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .toolbar:before { - content: none; -} -.container-view-comment .toolbar .toolbar-inner { - display: flex; - justify-content: space-between; - padding: 0 16px; -} -.container-view-comment .toolbar .toolbar-inner .button-left { - min-width: 80px; -} -.container-view-comment .toolbar .toolbar-inner .button-right { - min-width: 62px; - display: flex; - justify-content: space-between; -} -.container-view-comment .toolbar .toolbar-inner .button-right a { - padding: 0 12px; -} -.container-view-comment .swipe-container { - display: flex; - justify-content: center; - height: 40px; -} -.container-view-comment .swipe-container .icon-swipe { - margin-top: 8px; - width: 40px; - height: 4px; - background: rgba(0, 0, 0, 0.12); - border-radius: 2px; -} -.container-view-comment .list-block { - margin-top: 0; -} -.container-view-comment.popover { - position: absolute; - border-radius: 4px; - min-height: 170px; - height: 400px; - max-height: 600px; -} -.container-view-comment.popover .toolbar { - position: absolute; - border-radius: 0 0 4px 4px; -} -.container-view-comment.popover .toolbar .toolbar-inner { - padding-right: 0; -} -.container-view-comment.popover .pages { - position: absolute; -} -.container-view-comment.popover .pages .page { - border-radius: 13px; -} -.container-view-comment.popover .pages .page .page-content { - padding: 16px; - padding-bottom: 80px; -} -.container-view-comment.popover .pages .page .page-content .list-block { - margin-bottom: 0px; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content { - padding-left: 0; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, -.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .block-reply { - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { - min-height: 70px; - width: 278px; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; -} -.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { - min-height: 60px; - width: 100%; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; - height: 60px; - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .comment-text { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 8px; - min-height: 80px; - height: 80px; -} -#done-comment { - color: #40865c; -} -.page-add-comment { - background-color: #FFFFFF; -} -.page-add-comment .wrap-comment, -.page-add-comment .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-add-comment .wrap-comment .header-comment, -.page-add-comment .wrap-reply .header-comment { - justify-content: flex-start; -} -.page-add-comment .wrap-comment .user-name, -.page-add-comment .wrap-reply .user-name { - font-weight: bold; - font-size: 17px; - padding-left: 5px; -} -.page-add-comment .wrap-comment .comment-date, -.page-add-comment .wrap-reply .comment-date { - font-size: 13px; - color: #6d6d72; - padding-left: 5px; -} -.page-add-comment .wrap-comment .wrap-textarea, -.page-add-comment .wrap-reply .wrap-textarea { - margin-top: 16px; - padding-right: 6px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { - font-size: 17px; - border: none; - margin-top: 0; - min-height: 100px; - border-radius: 4px; - width: 100%; - padding-left: 5px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { - color: #8e8e93; - font-size: 17px; -} -.container-add-reply { - height: 100%; -} -.container-add-reply .navbar a.link i + span { - margin-left: 0; -} -.container-add-reply .page { - background-color: #FFFFFF; -} -.actions-modal-button.color-red { - color: #ff3b30; -} -.page-edit-comment, -.page-add-reply, -.page-edit-reply { - background-color: #FFFFFF; -} -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - justify-content: flex-start; -} -.page-edit-comment .navbar .right, -.page-add-reply .navbar .right, -.page-edit-reply .navbar .right { - height: 100%; -} -.page-edit-comment .navbar .right #add-reply, -.page-add-reply .navbar .right #add-reply, -.page-edit-reply .navbar .right #add-reply, -.page-edit-comment .navbar .right #edit-comment, -.page-add-reply .navbar .right #edit-comment, -.page-edit-reply .navbar .right #edit-comment, -.page-edit-comment .navbar .right #edit-reply, -.page-add-reply .navbar .right #edit-reply, -.page-edit-reply .navbar .right #edit-reply { - display: flex; - align-items: center; - padding-left: 16px; - padding-right: 16px; - height: 100%; -} -.container-edit-comment { - position: fixed; -} -i.icon.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; -} -i.icon.icon-search { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.8%2C15c1.4-1.6%2C2.2-3.7%2C2.2-5.9c0-5-4-9-9-9C4%2C0%2C0%2C4%2C0%2C9c0%2C5%2C4%2C9%2C9%2C9c2.3%2C0%2C4.4-0.9%2C5.9-2.2l5.8%2C5.8l0.2-0.6l0.7-0.2L15.8%2C15z%20M9%2C17c-4.4%2C0-8-3.6-8-8c0-4.4%2C3.6-8%2C8-8c4.4%2C0%2C8%2C3.6%2C8%2C8C17%2C13.5%2C13.5%2C17%2C9%2C17z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2219.3%2C5.3%206.1%2C18.4%204.6%2C16.9%2017.8%2C3.8%2017.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M8%201L3%2015h1.19995l1.77686-5h5.04638l.61573%201.7325.87988-.87988L9%201zm.5%201.9L10.66772%209H6.33228z%22%20clip-rule%3D%22evenodd%22%20fill-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M18.3%2011.3l-9.2%209.1-1.5-1.5%209.2-9.1-.7-.7-9.6%209.6L6%2022l3.3-.5%209.6-9.6zm1.2%200L21%209.8s-.2-1.2-.9-1.9c-.7-.8-1.9-.9-1.9-.9l-1.5%201.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-undo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C16v2h-1v-2l0%2C0c0-2.9-2.1-5-5-5l0%2C0H1.9L5%2C14c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3l-0.4%2C0.4c-0.1%2C0.1-0.2%2C0.1-0.3%2C0l-4.2-4.2c-0.1-0.1-0.1-0.2%2C0-0.3l0.4-0.4h0.1L4.4%2C6c0.1-0.1%2C0.2-0.1%2C0.3%2C0l0.5%2C0.4c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3L1.9%2C10H16l0%2C0C19.3%2C10%2C22%2C12.7%2C22%2C16L22%2C16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-redo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C16c0-3.3%2C2.7-6%2C6-6v0h14.1l-3.3-3.3c-0.1-0.1-0.1-0.2%2C0-0.3L17.3%2C6c0.1-0.1%2C0.2-0.1%2C0.3%2C0l3.8%2C3.8c0%2C0%2C0.1%2C0%2C0.1%2C0l0.4%2C0.4c0.1%2C0.1%2C0.1%2C0.2%2C0%2C0.3l-4.2%2C4.2c-0.1%2C0.1-0.2%2C0.1-0.3%2C0l-0.4-0.4c-0.1-0.1-0.1-0.2%2C0-0.3l3.1-3H6v0c-2.9%2C0-5%2C2.1-5%2C5h0v2H0L0%2C16L0%2C16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reader { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M17%2C21H1V9h6V2l0%2C0h10v5h1V1H6.2L0%2C7.6V22h18v-3h-1V21z%20M6%2C2.8V8H1.1L6%2C2.8z%20M13%2C8c-5.1%2C0-9%2C5-9%2C5s4.1%2C5%2C9%2C5c5%2C0%2C9-5%2C9-5S18%2C8%2C13%2C8z%20M8.7%2C15.5C6.8%2C14.4%2C6.4%2C13%2C6.4%2C13s0.4-1.5%2C2.4-2.6C8.3%2C11.2%2C8%2C12%2C8%2C13C8%2C13.9%2C8.3%2C14.8%2C8.7%2C15.5z%20M13%2C16.7c-2.1%2C0-3.7-1.7-3.7-3.7c0-2.1%2C1.7-3.7%2C3.7-3.7c2.1%2C0%2C3.7%2C1.7%2C3.7%2C3.7C16.7%2C15.1%2C15.1%2C16.7%2C13%2C16.7z%20M17.3%2C15.5c0.4-0.7%2C0.7-1.6%2C0.7-2.5c0-1-0.3-1.8-0.7-2.6c2%2C1.1%2C3.4%2C2.6%2C3.4%2C2.6S19.2%2C14.4%2C17.3%2C15.5z%20M13%2C11.7c-0.7%2C0-1.3%2C0.6-1.3%2C1.3s0.6%2C1.3%2C1.3%2C1.3s1.3-0.6%2C1.3-1.3S13.7%2C11.7%2C13%2C11.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-download { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%2340865c%22%3E%3Cpath%20d%3D%22M12%200H11L11%2014L7.39999%2010.3L6.69999%2011.1L11.5%2016L16.3%2011.1L15.6%2010.3L12%2014L12%200Z%22%2F%3E%3Cpath%20d%3D%22M14%205V6H19V20H4V6H9V5H3V21H20V5H14Z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-print { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%201H17V6H21V17H17V21H5V17H1V6H5V1ZM6%206H16V2H6V6ZM5%2016V13H2V16H5ZM2%2012H20V7H2V12ZM20%2013H17V16H20V13ZM16%2013H6V20H16V13ZM14%2016H8V15H14V16ZM14%2018H8V17H14V18Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-info { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M10%2C17h2V8h-2V17z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11s4.5%2C10%2C10%2C10s10-4.5%2C10-10S16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4-9-9s4-9%2C9-9s9%2C4%2C9%2C9S16%2C20%2C11%2C20z%20M10%2C7h2V5h-2V7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C12H12v10h-1V12H1v-1h10V1h1v10h10V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.8%2C3l0.4%2C2c0.1%2C0.7%2C0.6%2C1.1%2C1.3%2C1.1c0.3%2C0%2C0.5-0.1%2C0.7-0.2l1.9-1.2l1.1%2C1.1l-1.1%2C1.8C15.8%2C8%2C15.8%2C8.5%2C16%2C8.9c0.2%2C0.4%2C0.5%2C0.7%2C1%2C0.8l2.1%2C0.5v1.6L17%2C12.2c-0.5%2C0.1-0.8%2C0.4-1%2C0.8c-0.2%2C0.4-0.1%2C0.9%2C0.1%2C1.2l1.2%2C1.9l-1.1%2C1.1l-1.8-1.1c-0.2-0.2-0.5-0.2-0.8-0.2c-0.6%2C0-1.2%2C0.5-1.3%2C1.1l-0.5%2C2.1h-1.6l-0.4-2C9.7%2C16.4%2C9.2%2C16%2C8.5%2C16c-0.3%2C0-0.5%2C0.1-0.7%2C0.2l-1.9%2C1.2l-1.1-1.1l1.1-1.8c0.3-0.4%2C0.3-0.9%2C0.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%2C0.8-0.4%2C1-0.8C6.1%2C8.7%2C6%2C8.2%2C5.8%2C7.9l-1-2l1.1-1.1l1.8%2C1.1C8%2C6.1%2C8.2%2C6.2%2C8.5%2C6.2c0.6%2C0%2C1.2-0.5%2C1.3-1.1L10.3%2C3H11.8%20M11%2C15.5c2.5%2C0%2C4.5-2%2C4.5-4.5s-2-4.5-4.5-4.5s-4.5%2C2-4.5%2C4.5S8.5%2C15.5%2C11%2C15.5%20M12.1%2C2H9.9C9.6%2C2%2C9.4%2C2.2%2C9.3%2C2.5L8.8%2C4.9c0%2C0.2-0.2%2C0.3-0.3%2C0.3s-0.1%2C0-0.2-0.1L6.2%2C3.8C6.1%2C3.7%2C6%2C3.7%2C5.8%2C3.7c-0.1%2C0-0.3%2C0-0.4%2C0.1L3.8%2C5.4c-0.1%2C0.2-0.2%2C0.5%2C0%2C0.8l1.3%2C2.1c0.1%2C0.2%2C0.1%2C0.4-0.2%2C0.5L2.5%2C9.3C2.2%2C9.4%2C2%2C9.6%2C2%2C9.9v2.2c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.6l2.4%2C0.5c0.3%2C0.1%2C0.4%2C0.3%2C0.2%2C0.5l-1.3%2C2.1c-0.2%2C0.2-0.1%2C0.6%2C0.1%2C0.8l1.6%2C1.6c0.1%2C0.1%2C0.3%2C0.2%2C0.4%2C0.2s0.2%2C0%2C0.3-0.1L8.3%2C17c0.1-0.1%2C0.1-0.1%2C0.2-0.1s0.3%2C0.1%2C0.3%2C0.3l0.5%2C2.3C9.4%2C19.8%2C9.6%2C20%2C9.9%2C20h2.2c0.3%2C0%2C0.5-0.2%2C0.6-0.5l0.5-2.4c0-0.2%2C0.1-0.3%2C0.3-0.3c0.1%2C0%2C0.1%2C0%2C0.2%2C0.1l2.1%2C1.3c0.1%2C0.1%2C0.2%2C0.1%2C0.3%2C0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2l1.6-1.6c0.2-0.2%2C0.2-0.5%2C0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5%2C0.2-0.5l2.4-0.5c0.3-0.1%2C0.5-0.3%2C0.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%2C0.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%2C0-0.2%2C0-0.3%2C0.1l-2.1%2C1.3C13.6%2C5%2C13.6%2C5%2C13.5%2C5c-0.1%2C0-0.3-0.1-0.3-0.3l-0.5-2.2C12.6%2C2.2%2C12.4%2C2%2C12.1%2C2L12.1%2C2z%20M11%2C14.5c-1.9%2C0-3.5-1.6-3.5-3.5S9.1%2C7.5%2C11%2C7.5s3.5%2C1.6%2C3.5%2C3.5S12.9%2C14.5%2C11%2C14.5L11%2C14.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-about { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3%2C0.7-0.6%2C0.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%2C0l-8.9%2C4.1C-0.9%2C13.8-1%2C14.1-1%2C14.3s0.1%2C0.6%2C0.7%2C0.9l2.6%2C1.2l-2.6%2C1.2C-0.9%2C18-1%2C18.4-1%2C18.5c0%2C0.2%2C0.1%2C0.6%2C0.7%2C0.9l2.5%2C1.2l-2.5%2C1.2C-0.9%2C22.1-1%2C22.5-1%2C22.7c0%2C0.3%2C0.1%2C0.6%2C0.7%2C0.9l8.9%2C4.1c0.5%2C0.2%2C0.8%2C0.3%2C1.4%2C0.3s1-0.1%2C1.4-0.3l8.9-4.1c0.6-0.4%2C0.7-0.6%2C0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9%2C19.2%2C21%2C18.8%2C21%2C18.5z%20M-0.2%2C14.3L-0.2%2C14.3c0%2C0%2C0.1-0.1%2C0.3-0.2L9%2C10c0.6-0.3%2C1.5-0.3%2C2%2C0l8.9%2C4.1c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C18.6c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1C-0.1%2C14.4-0.2%2C14.3-0.2%2C14.3z%20M20.2%2C22.7L20.2%2C22.7c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C27.1c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5C20.1%2C22.7%2C20.2%2C22.7%2C20.2%2C22.7z%20M19.9%2C18.7L11%2C22.8c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0C20.2%2C18.5%2C20.1%2C18.6%2C19.9%2C18.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-help { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.6%2C1.3c-3.3%2C0-6%2C2.8-6%2C6.2c0.3%2C0%2C0.7%2C0%2C0.9%2C0c0-2.9%2C2.3-5.2%2C5.1-5.2s5.1%2C2.3%2C5.1%2C5.2c0%2C1.7-1.9%2C3.2-3%2C4.3C12.9%2C12.6%2C11%2C14.2%2C11%2C16c0%2C1.2%2C0%2C2.2%2C0%2C2.7c0.3%2C0%2C0.6%2C0%2C0.9%2C0c0-0.6%2C0-1.6%2C0-2.5c0-1.4%2C1.1-2.4%2C2.2-3.5c1.7-1.5%2C3.5-3.1%2C3.5-5.2C17.6%2C4.1%2C14.9%2C1.3%2C11.6%2C1.3z%20M11.5%2C20.2c-0.3%2C0-0.5%2C0.2-0.5%2C0.5v0.8c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.5s0.5-0.2%2C0.5-0.5v-0.8C11.9%2C20.4%2C11.7%2C20.2%2C11.5%2C20.2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-versions { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M19%2C12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2v12c0%2C1.1%2C0.9%2C2%2C2%2C2h18c1.1%2C0%2C2-0.9%2C2-2V14C21%2C12.9%2C20.1%2C12%2C19%2C12z%20M5%2C9h10c0.6%2C0%2C1%2C0.4%2C1%2C1H4C4%2C9.4%2C4.4%2C9%2C5%2C9z%20M3%2C11h14c0.6%2C0%2C1%2C0.4%2C1%2C1H2C2%2C11.4%2C2.4%2C11%2C3%2C11z%20M20%2C26c0%2C0.6-0.4%2C1-1%2C1H1c-0.6%2C0-1-0.4-1-1V14c0-0.6%2C0.4-1%2C1-1h18c0.6%2C0%2C1%2C0.4%2C1%2C1V26z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-color { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.9%2C12l2.3-6.3l2.2%2C6.3H8.9z%20M4.7%2C17.8h2l1.6-4.3h5.6l1.5%2C4.3h2.1L12.3%2C3.5h-2.2L4.7%2C17.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-fill-color { - width: 22px; - height: 22px; - background-size: 130%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M11%2C2.3L3.8%2C9.5L9%2C14.7l7.2-7.2L11%2C2.3z%20M14.8%2C7.5L13.3%2C9H5.7L11%2C3.7L14.8%2C7.5z%22%2F%3E%3Cpath%20d%3D%22M17%2C9c0%2C0-2%2C2-2%2C3s1%2C2%2C2%2C2s2-1%2C2-2S17%2C9%2C17%2C9z%22%2F%3E%3Cpath%20d%3D%22M10.8%2C7.5c-3.2-1.1-4.3-2.8-4.3-4c0-0.3%2C0.1-0.5%2C0.4-0.7c0.7-0.5%2C2.6%2C0%2C3.3%2C0.2L9.8%2C4c-1-0.3-2-0.5-2.3-0.4c0.1%2C0.8%2C1%2C2.1%2C3.7%2C2.9L10.8%2C7.5z%22%2F%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%227%22%20r%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-center { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-jast { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-left { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-right { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-top { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%222%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%224%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2018%2011%2018%2011%207.83%208.65%209.8%208%208.94%2011.5%206%2015%209%2014.35%209.8%2012%207.83%2012%2018%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-middle { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2210%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2212%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%202%2012%202%2012%207.17%2014.35%205.2%2015%206.06%2011.5%209%208%206%208.65%205.2%2011%207.17%2011%202%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2021%2011%2021%2011%2015.83%208.65%2017.8%208%2016.94%2011.5%2014%2015%2017%2014.35%2017.8%2012%2015.83%2012%2021%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-bottom { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2218%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2220%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%204%2012%204%2012%2015.17%2014.35%2013.2%2015%2014.06%2011.5%2017%208%2014%208.65%2013.2%2011%2015.17%2011%204%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev, -i.icon.icon-prev-comment { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M16%2C20.5L15%2C21.5L4.5%2C11l0%2C0l0%2C0L15%2C0.5L16%2C1.5L6.6%2C11L16%2C20.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next, -i.icon.icon-next-comment { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.5%2C11L6%2C1.5l1.1-1.1L17.5%2C11l0%2C0l0%2C0L7.1%2C21.5L6%2C20.5L15.5%2C11z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-expand-down { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M20.5%2C6.5l1.1%2C1.1L11%2C18l0%2C0l0%2C0L0.5%2C7.5l1.1-1.1l9.5%2C9.5L20.5%2C6.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-link { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M12.4%2C9.8c0%2C0-2.1-0.1-3.8%2C1.2c-2.8%2C2-3.3%2C4.3-3.3%2C4.3s1.6-1.7%2C3.5-2.5c1.7-0.7%2C3.7-0.4%2C3.7-0.4v1.9l4.8-3.3V11l-4.8-3.3V9.8z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11c0%2C5.5%2C4.5%2C10%2C10%2C10s10-4.5%2C10-10C21%2C5.5%2C16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4.1-9-9C2%2C6%2C6%2C2%2C11%2C2s9%2C4.1%2C9%2C9C20%2C16%2C16%2C20%2C11%2C20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insimage { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cpath%20id%3D%22XMLID_43_%22%20d%3D%22M19%2C4L19%2C4H3v15l0%2C0l0%2C0l0%2C0h17V4H19z%20M7.5%2C7C8.3%2C7%2C9%2C7.7%2C9%2C8.5S8.3%2C10%2C7.5%2C10S6%2C9.3%2C6%2C8.5S6.7%2C7%2C7.5%2C7zM5.2%2C18l5.5-5.5l5.5%2C5.5H5.2z%20M19%2C18h-1.5l-4.3-4.3l4-4l1.8%2C1.8V18z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-sort { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cpolygon%20points%3D%228%2C16.4%207.3%2C15.7%205%2C18.1%205%2C2%204%2C2%204%2C18.1%201.7%2C15.7%201%2C16.4%204.5%2C20%204.5%2C20%204.5%2C20%20%22%2F%3E%3Cpath%20d%3D%22M19.3%2C4H8.7C8.1%2C4%2C7.8%2C4.6%2C8.1%2C5.1l3.9%2C5.9v4.7l2.8%2C1.5c0.5%2C0.3%2C1.1-0.1%2C1.1-0.7V11h0l3.9-5.9C20.2%2C4.6%2C19.9%2C4%2C19.3%2C4z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-image-library { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bisolation%3Aisolate%3B%7D.cls-2%7Bopacity%3A0.2%3B%7D.cls-3%7Bfill%3A%23fff%3B%7D.cls-10%2C.cls-11%2C.cls-4%2C.cls-6%2C.cls-7%2C.cls-8%2C.cls-9%7Bmix-blend-mode%3Amultiply%3B%7D.cls-4%7Bfill%3Aurl(%23grad_8)%3B%7D.cls-5%7Bfill%3Aurl(%23grad_10)%3B%7D.cls-6%7Bfill%3Aurl(%23grad_12)%3B%7D.cls-7%7Bfill%3Aurl(%23grad_14)%3B%7D.cls-8%7Bfill%3Aurl(%23grad_79)%3B%7D.cls-9%7Bfill%3Aurl(%23grad_77)%3B%7D.cls-10%7Bfill%3Aurl(%23grad_75)%3B%7D.cls-11%7Bfill%3Aurl(%23grad_81)%3B%7D%3C%2Fstyle%3E%3ClinearGradient%20id%3D%22grad_8%22%20x1%3D%2211.08%22%20y1%3D%2210.26%22%20x2%3D%2211.08%22%20y2%3D%221.26%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f3e916%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_10%22%20x1%3D%2211.08%22%20y1%3D%2220.44%22%20x2%3D%2211.08%22%20y2%3D%2211.88%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235eb6e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23958cc3%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_12%22%20x1%3D%221.46%22%20y1%3D%2211.05%22%20x2%3D%2210.46%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(17%205.09)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f86867%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_14%22%20x1%3D%2211.73%22%20y1%3D%2211.05%22%20x2%3D%2220.73%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(27.28%20-5.18)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236ac07f%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_79%22%20x1%3D%2211.74%22%20y1%3D%2210.42%22%20x2%3D%2217.52%22%20y2%3D%224.63%22%20gradientTransform%3D%22translate(30.29%202.51)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3e916%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_77%22%20x1%3D%224.7%22%20y1%3D%2217.49%22%20x2%3D%2210.48%22%20y2%3D%2211.71%22%20gradientTransform%3D%22translate(23.24%2019.65)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%239595c3%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_75%22%20x1%3D%224.69%22%20y1%3D%224.64%22%20x2%3D%2210.47%22%20y2%3D%2210.42%22%20gradientTransform%3D%22translate(7.54%20-3.15)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f86867%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_81%22%20x1%3D%2211.77%22%20y1%3D%2211.78%22%20x2%3D%2217.55%22%20y2%3D%2217.56%22%20gradientTransform%3D%22translate(14.63%20-6.05)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235ec0e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%236ac07f%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Ctitle%3Eicons_for_svg%3C%2Ftitle%3E%3Cg%20class%3D%22cls-1%22%3E%3Cg%20id%3D%22%D0%A1%D0%BB%D0%BE%D0%B9_1%22%20data-name%3D%22%D0%A1%D0%BB%D0%BE%D0%B9%201%22%3E%3Crect%20class%3D%22cls-2%22%20x%3D%220.09%22%20y%3D%220.01%22%20width%3D%2222%22%20height%3D%2222%22%20rx%3D%224%22%20ry%3D%224%22%2F%3E%3Crect%20class%3D%22cls-3%22%20x%3D%220.57%22%20y%3D%220.49%22%20width%3D%2221.04%22%20height%3D%2221.04%22%20rx%3D%223.6%22%20ry%3D%223.6%22%2F%3E%3Crect%20class%3D%22cls-4%22%20x%3D%228.33%22%20y%3D%221.26%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-5%22%20x%3D%228.33%22%20y%3D%2211.76%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-6%22%20x%3D%223.21%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-5.09%2017)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-7%22%20x%3D%2213.48%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(5.18%2027.28)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-8%22%20x%3D%2211.87%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(19.64%2023.19)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-9%22%20x%3D%224.8%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(2.54%2030.33)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-10%22%20x%3D%224.83%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-3.1%207.56)%20rotate(-45)%22%2F%3E%3Crect%20class%3D%22cls-11%22%20x%3D%2211.87%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-6.07%2014.63)%20rotate(-45)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-cell-wrap { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20id%3D%22XMLID_8_%22%20d%3D%22M20%2C1H0v1v18v1h21v-1V1H20z%20M20%2C20H1V2h19V20z%22%2F%3E%3Crect%20id%3D%22XMLID_12_%22%20x%3D%222%22%20y%3D%224%22%20width%3D%2217%22%20height%3D%221%22%2F%3E%3Crect%20id%3D%22XMLID_13_%22%20x%3D%222%22%20y%3D%2212%22%20width%3D%2217%22%20height%3D%221%22%2F%3E%3Crect%20id%3D%22XMLID_14_%22%20x%3D%222%22%20y%3D%228%22%20width%3D%2211%22%20height%3D%221%22%2F%3E%3Crect%20id%3D%22XMLID_15_%22%20x%3D%222%22%20y%3D%2216%22%20width%3D%2211%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-function { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%22-238%20240%2024%2022%22%20xml%3Aspace%3D%22preserve%22%20enable-background%3D%22new%20-238%20240%2022%2022%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3Anone%3Bstroke%3A%23000%3Bstroke-width%3A0.5%3Bstroke-linecap%3Asquare%3Bstroke-miterlimit%3A10%3B%7D.st1%7Bstroke%3A%23000%3Bstroke-width%3A0.5%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A10%3B%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M-226.94%20257.74c-0.26-0.54-0.46-1.18-0.61-1.92%20-0.15-0.73-0.22-1.46-0.22-2.18%200-1.35%200.26-2.7%200.78-4.04%200.52-1.35%201.22-2.49%202.1-3.43%200.88-0.94%201.51-1.53%201.89-1.77%200.1-0.06%200.14-0.1%200.14-0.13%200-0.04-0.07-0.05-0.21-0.05%20-0.31%200-0.55%200.04-0.71%200.12%20-0.16%200.08-0.53%200.4-1.1%200.96s-1.07%201.14-1.49%201.75c-0.42%200.61-0.78%201.25-1.06%201.94%20-0.29%200.69-0.51%201.42-0.68%202.19%20-0.17%200.77-0.25%201.63-0.25%202.57%200%200.58%200.07%201.25%200.2%201.99%200.13%200.74%200.33%201.41%200.58%202%200.25%200.59%200.41%200.9%200.48%200.94%200.07%200.04%200.24%200.06%200.51%200.06%200.09%200%200.13-0.02%200.13-0.05l-0.03-0.05C-226.53%20258.59-226.68%20258.29-226.94%20257.74zM-219.15%20253.05c0-0.09-0.04-0.14-0.12-0.14%20-0.08%200-0.18%200.08-0.29%200.24%20-0.28%200.41-0.59%200.71-0.92%200.91s-0.61%200.3-0.85%200.3c-0.18%200-0.36-0.08-0.52-0.25%20-0.17-0.16-0.25-0.42-0.25-0.77%200-0.69%200.23-1.66%200.68-2.93%200.45-1.27%201.01-1.9%201.68-1.9%200.15%200%200.22%200.08%200.22%200.24%200%200.06-0.01%200.15-0.04%200.27%20-0.02%200.07-0.02%200.12-0.02%200.18%200%200.13%200.05%200.23%200.14%200.32%200.09%200.08%200.2%200.13%200.34%200.13%200.19%200%200.34-0.06%200.45-0.17%200.1-0.11%200.16-0.24%200.16-0.38%200-0.24-0.1-0.47-0.29-0.67%20-0.19-0.21-0.43-0.31-0.71-0.31%20-0.55%200-1.09%200.29-1.62%200.87%20-0.11%200.12-0.18%200.18-0.21%200.18l-0.08-0.03c-0.06-0.33-0.17-0.58-0.34-0.75%20-0.17-0.17-0.4-0.25-0.69-0.25%20-0.37%200-0.78%200.19-1.22%200.56%20-0.44%200.37-0.66%200.62-0.66%200.74%200%200.08%200.04%200.11%200.13%200.11%200.08%200%200.2-0.09%200.37-0.27%200.45-0.48%200.81-0.72%201.09-0.72%200.14%200%200.27%200.08%200.38%200.25%200.11%200.17%200.16%200.39%200.16%200.67%200%200.58-0.27%201.53-0.8%202.85%20-0.54%201.32-1.1%201.98-1.68%201.98%20-0.13%200-0.23-0.05-0.3-0.14%20-0.08-0.09-0.12-0.18-0.12-0.27%200-0.05%200.01-0.12%200.03-0.23%200.01-0.07%200.02-0.13%200.02-0.18%200-0.3-0.14-0.45-0.42-0.45%20-0.18%200-0.33%200.07-0.46%200.2%20-0.13%200.13-0.2%200.3-0.2%200.51%200%200.26%200.13%200.48%200.4%200.66%200.27%200.18%200.56%200.26%200.86%200.26%200.4%200%200.87-0.23%201.41-0.68%200.23-0.19%200.39-0.31%200.47-0.36%200.04%200.05%200.11%200.17%200.21%200.37%200.26%200.48%200.66%200.71%201.21%200.71%200.57%200%201.11-0.22%201.63-0.67C-219.41%20253.59-219.15%20253.26-219.15%20253.05zM-216.2%20247.22c-0.13-0.75-0.33-1.41-0.58-2%20-0.25-0.59-0.41-0.9-0.48-0.94%20-0.07-0.04-0.24-0.06-0.51-0.06%20-0.09%200-0.13%200.02-0.13%200.05l0.03%200.05c0.05%200.06%200.2%200.36%200.46%200.91%200.26%200.54%200.46%201.18%200.61%201.91%200.15%200.73%200.22%201.46%200.22%202.17%200%201.36-0.26%202.71-0.78%204.05%20-0.52%201.35-1.22%202.49-2.11%203.43%20-0.89%200.94-1.51%201.53-1.89%201.77l-0.14%200.13c0%200.04%200.07%200.06%200.21%200.06%200.3%200%200.5-0.02%200.59-0.05%200.1-0.03%200.47-0.35%201.11-0.94%200.64-0.59%201.19-1.24%201.65-1.94%200.46-0.7%200.83-1.4%201.12-2.11%200.28-0.7%200.49-1.44%200.62-2.21C-216.06%20250.74-216%20249.98-216%20249.21%20-216%20248.63-216.07%20247.97-216.2%20247.22z%22%2F%3E%3Cpath%20class%3D%22st0%22%20d%3D%22M-226.94%20257.74c-0.26-0.54-0.46-1.18-0.61-1.92%20-0.15-0.73-0.22-1.46-0.22-2.18%200-1.35%200.26-2.7%200.78-4.04%200.52-1.35%201.22-2.49%202.1-3.43%200.88-0.94%201.51-1.53%201.89-1.77%200.1-0.06%200.14-0.1%200.14-0.13%200-0.04-0.07-0.05-0.21-0.05%20-0.31%200-0.55%200.04-0.71%200.12%20-0.16%200.08-0.53%200.4-1.1%200.96s-1.07%201.14-1.49%201.75c-0.42%200.61-0.78%201.25-1.06%201.94%20-0.29%200.69-0.51%201.42-0.68%202.19%20-0.17%200.77-0.25%201.63-0.25%202.57%200%200.58%200.07%201.25%200.2%201.99%200.13%200.74%200.33%201.41%200.58%202%200.25%200.59%200.41%200.9%200.48%200.94%200.07%200.04%200.24%200.06%200.51%200.06%200.09%200%200.13-0.02%200.13-0.05l-0.03-0.05C-226.53%20258.59-226.68%20258.29-226.94%20257.74zM-219.15%20253.05c0-0.09-0.04-0.14-0.12-0.14%20-0.08%200-0.18%200.08-0.29%200.24%20-0.28%200.41-0.59%200.71-0.92%200.91s-0.61%200.3-0.85%200.3c-0.18%200-0.36-0.08-0.52-0.25%20-0.17-0.16-0.25-0.42-0.25-0.77%200-0.69%200.23-1.66%200.68-2.93%200.45-1.27%201.01-1.9%201.68-1.9%200.15%200%200.22%200.08%200.22%200.24%200%200.06-0.01%200.15-0.04%200.27%20-0.02%200.07-0.02%200.12-0.02%200.18%200%200.13%200.05%200.23%200.14%200.32%200.09%200.08%200.2%200.13%200.34%200.13%200.19%200%200.34-0.06%200.45-0.17%200.1-0.11%200.16-0.24%200.16-0.38%200-0.24-0.1-0.47-0.29-0.67%20-0.19-0.21-0.43-0.31-0.71-0.31%20-0.55%200-1.09%200.29-1.62%200.87%20-0.11%200.12-0.18%200.18-0.21%200.18l-0.08-0.03c-0.06-0.33-0.17-0.58-0.34-0.75%20-0.17-0.17-0.4-0.25-0.69-0.25%20-0.37%200-0.78%200.19-1.22%200.56%20-0.44%200.37-0.66%200.62-0.66%200.74%200%200.08%200.04%200.11%200.13%200.11%200.08%200%200.2-0.09%200.37-0.27%200.45-0.48%200.81-0.72%201.09-0.72%200.14%200%200.27%200.08%200.38%200.25%200.11%200.17%200.16%200.39%200.16%200.67%200%200.58-0.27%201.53-0.8%202.85%20-0.54%201.32-1.1%201.98-1.68%201.98%20-0.13%200-0.23-0.05-0.3-0.14%20-0.08-0.09-0.12-0.18-0.12-0.27%200-0.05%200.01-0.12%200.03-0.23%200.01-0.07%200.02-0.13%200.02-0.18%200-0.3-0.14-0.45-0.42-0.45%20-0.18%200-0.33%200.07-0.46%200.2%20-0.13%200.13-0.2%200.3-0.2%200.51%200%200.26%200.13%200.48%200.4%200.66%200.27%200.18%200.56%200.26%200.86%200.26%200.4%200%200.87-0.23%201.41-0.68%200.23-0.19%200.39-0.31%200.47-0.36%200.04%200.05%200.11%200.17%200.21%200.37%200.26%200.48%200.66%200.71%201.21%200.71%200.57%200%201.11-0.22%201.63-0.67C-219.41%20253.59-219.15%20253.26-219.15%20253.05zM-216.2%20247.22c-0.13-0.75-0.33-1.41-0.58-2%20-0.25-0.59-0.41-0.9-0.48-0.94%20-0.07-0.04-0.24-0.06-0.51-0.06%20-0.09%200-0.13%200.02-0.13%200.05l0.03%200.05c0.05%200.06%200.2%200.36%200.46%200.91%200.26%200.54%200.46%201.18%200.61%201.91%200.15%200.73%200.22%201.46%200.22%202.17%200%201.36-0.26%202.71-0.78%204.05%20-0.52%201.35-1.22%202.49-2.11%203.43%20-0.89%200.94-1.51%201.53-1.89%201.77l-0.14%200.13c0%200.04%200.07%200.06%200.21%200.06%200.3%200%200.5-0.02%200.59-0.05%200.1-0.03%200.47-0.35%201.11-0.94%200.64-0.59%201.19-1.24%201.65-1.94%200.46-0.7%200.83-1.4%201.12-2.11%200.28-0.7%200.49-1.44%200.62-2.21C-216.06%20250.74-216%20249.98-216%20249.21%20-216%20248.63-216.07%20247.97-216.2%20247.22z%22%2F%3E%3Cpath%20class%3D%22st1%22%20d%3D%22M-229.66%20247.67c0.02-0.08%200.03-0.18%200.04-0.3%200.02-0.12%200.03-0.21%200.04-0.27%20-0.88%200-1.36-0.01-1.44-0.04%200.39-1.87%200.78-3.11%201.17-3.73%200.39-0.62%200.83-0.93%201.31-0.93%200.18%200%200.32%200.04%200.4%200.11%200.09%200.07%200.13%200.18%200.13%200.33%200%200.1-0.04%200.22-0.11%200.35%20-0.12%200.21-0.17%200.39-0.17%200.53%200%200.2%200.06%200.36%200.18%200.5%200.12%200.13%200.26%200.2%200.42%200.2%200.2%200%200.36-0.09%200.48-0.27%200.12-0.18%200.18-0.39%200.18-0.62%200-0.4-0.13-0.75-0.39-1.06C-227.69%20242.15-228.05%20242-228.52%20242c-0.79%200-1.49%200.43-2.11%201.28%20-0.61%200.85-1.09%202.15-1.43%203.9%20-0.68%200.01-1.21%200.04-1.62%200.08l-0.1%200.54%201.6-0.05c-0.08%200.33-0.26%201.17-0.53%202.52%20-0.68%203.42-1.27%205.89-1.77%207.41%20-0.5%201.52-1.1%202.28-1.79%202.28%20-0.19%200-0.34-0.06-0.45-0.19s-0.17-0.26-0.17-0.41c0-0.1%200.04-0.25%200.11-0.45%200.06-0.17%200.09-0.31%200.09-0.42%200-0.19-0.06-0.36-0.18-0.5%20-0.12-0.14-0.27-0.21-0.44-0.21%20-0.2%200-0.36%200.1-0.5%200.3%20-0.14%200.2-0.2%200.44-0.2%200.72%200%200.43%200.15%200.8%200.45%201.11%200.3%200.31%200.68%200.47%201.14%200.47%200.77%200%201.45-0.41%202.06-1.23%200.61-0.82%201.11-2.1%201.51-3.85l1.68-7.57C-230.66%20247.7-230.16%20247.68-229.66%20247.67L-229.66%20247.67z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-backward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3Cpath%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-forward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-background { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-foreground { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-all { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-none { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-inner { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpolygon%20points%3D%2226%2013%2014%2013%2014%201%2013%201%2013%2013%201%2013%201%2014%2013%2014%2013%2026%2014%2026%2014%2014%2026%2014%2026%2013%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-outer { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-left { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-center { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2213%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-right { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2226%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-top { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-middle { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-bottom { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2226%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-dup { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%223%20-3%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M3-3v1v25v1h27v-1V-2v-1H3z%20M4-2h25v25H4V-2z%22%2F%3E%3Cpolygon%20points%3D%2230%2C-3%2029%2C-3%2029%2C-3%2029%2C-3%2029%2C-3%2029%2C-3%203%2C23%203%2C24%204%2C24%2030%2C-2%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-ddown { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%223%20-3%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M3-3v1v25v1h27v-1V-2v-1H3z%20M4-2h25v25H4V-2z%22%2F%3E%3Cpolygon%20points%3D%2230%2C23%204%2C-3%203%2C-3%203%2C-2%2029%2C24%2029%2C24%2029%2C24%2029%2C24%2029%2C24%2030%2C24%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-general { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.7700195%2C2.8598633L7.5600586%2C10h-1.050293L5.7299805%2C7.8500977H2.7099609L1.9101562%2C10H0.9399414l2.7802734-7.1401367H4.7700195z%20M5.4301758%2C7.0498047L4.2402344%2C3.7202148H4.2202148L3.0097656%2C7.0498047H5.4301758z%22%2F%3E%3Cpath%20d%3D%22M10.8500977%2C2.8598633c0.1533203%2C0%2C0.3183594%2C0.0019531%2C0.4951172%2C0.0053711c0.1762695%2C0.003418%2C0.3515625%2C0.0131836%2C0.5249023%2C0.0297852s0.3349609%2C0.0415039%2C0.4848633%2C0.0751953c0.1499023%2C0.0332031%2C0.2783203%2C0.0830078%2C0.3847656%2C0.1499023c0.2333984%2C0.1396484%2C0.4316406%2C0.3334961%2C0.5952148%2C0.5800781c0.1630859%2C0.246582%2C0.2451172%2C0.5498047%2C0.2451172%2C0.909668c0%2C0.3803711-0.0917969%2C0.7084961-0.2749023%2C0.9853516c-0.1835938%2C0.2763672-0.4453125%2C0.4814453-0.7851562%2C0.6147461v0.0200195c0.4399414%2C0.0932617%2C0.7763672%2C0.293457%2C1.0097656%2C0.6000977s0.3500977%2C0.6796875%2C0.3500977%2C1.1201172c0%2C0.2597656-0.0463867%2C0.5131836-0.1401367%2C0.7597656c-0.0932617%2C0.246582-0.2314453%2C0.4648438-0.4145508%2C0.6552734c-0.1835938%2C0.1899414-0.4101562%2C0.3432617-0.6801758%2C0.4599609S12.0634766%2C10%2C11.7099609%2C10H8.2597656V2.8598633H10.8500977z%20M11.1098633%2C5.9301758c0.5400391%2C0%2C0.9282227-0.0952148%2C1.1650391-0.2851562s0.3549805-0.4750977%2C0.3549805-0.8549805c0-0.253418-0.0400391-0.453125-0.1201172-0.6000977c-0.0795898-0.1464844-0.1899414-0.2597656-0.3295898-0.3398438c-0.1401367-0.0800781-0.3017578-0.1318359-0.4853516-0.1552734c-0.1831055-0.0229492-0.378418-0.034668-0.5849609-0.034668H9.2099609v2.2700195H11.1098633z%20M11.5898438%2C9.2001953c0.4199219%2C0%2C0.7485352-0.1132812%2C0.9853516-0.340332c0.2363281-0.2265625%2C0.3549805-0.5400391%2C0.3549805-0.9399414c0-0.2333984-0.043457-0.4262695-0.1303711-0.5800781c-0.0864258-0.1533203-0.2016602-0.2749023-0.3447266-0.3647461c-0.1435547-0.090332-0.3085938-0.1533203-0.4951172-0.1899414s-0.3798828-0.0551758-0.5800781-0.0551758H9.2099609v2.4702148H11.5898438z%22%2F%3E%3Cpath%20d%3D%22M19.425293%2C3.8701172c-0.3637695-0.253418-0.7954102-0.3798828-1.2954102-0.3798828c-0.4267578%2C0-0.7915039%2C0.0795898-1.0947266%2C0.2397461c-0.3037109%2C0.1601562-0.5537109%2C0.375-0.75%2C0.6450195c-0.1967773%2C0.2700195-0.3417969%2C0.5786133-0.4350586%2C0.9248047c-0.0932617%2C0.3466797-0.1401367%2C0.7070312-0.1401367%2C1.0800781c0%2C0.4067383%2C0.046875%2C0.7919922%2C0.1401367%2C1.1552734s0.2382812%2C0.6796875%2C0.4350586%2C0.949707c0.1962891%2C0.2700195%2C0.4482422%2C0.4853516%2C0.7548828%2C0.6450195c0.3066406%2C0.1601562%2C0.6733398%2C0.2402344%2C1.1000977%2C0.2402344c0.3129883%2C0%2C0.5913086-0.0517578%2C0.8349609-0.1552734c0.2431641-0.1030273%2C0.453125-0.246582%2C0.6298828-0.4296875c0.1767578-0.1835938%2C0.3149414-0.4018555%2C0.4150391-0.6552734c0.1000977-0.2529297%2C0.1601562-0.5263672%2C0.1801758-0.8198242h0.949707c-0.0932617%2C0.8999023-0.4033203%2C1.6000977-0.9296875%2C2.1000977c-0.5268555%2C0.5-1.2470703%2C0.75-2.1601562%2C0.75c-0.5532227%2C0-1.0366211-0.0952148-1.4501953-0.2851562c-0.4130859-0.1899414-0.7563477-0.4516602-1.0297852-0.7851562c-0.2734375-0.3330078-0.4785156-0.7265625-0.6152344-1.1796875c-0.1367188-0.4536133-0.2045898-0.9399414-0.2045898-1.4599609s0.0732422-1.0083008%2C0.2197266-1.465332c0.1464844-0.456543%2C0.3618164-0.8549805%2C0.6450195-1.1948242s0.6367188-0.6083984%2C1.0600586-0.8051758c0.4233398-0.1962891%2C0.9082031-0.2949219%2C1.4550781-0.2949219c0.3730469%2C0%2C0.7265625%2C0.050293%2C1.0600586%2C0.1499023c0.3330078%2C0.1000977%2C0.6298828%2C0.2470703%2C0.8896484%2C0.4399414c0.2602539%2C0.1938477%2C0.4765625%2C0.4350586%2C0.6503906%2C0.7250977c0.1733398%2C0.2900391%2C0.2866211%2C0.625%2C0.3398438%2C1.0048828h-0.9501953C20.0234375%2C4.503418%2C19.7885742%2C4.1235352%2C19.425293%2C3.8701172z%22%2F%3E%3Cpath%20d%3D%22M3.7099609%2C19v-5.0800781H1.8701172v-0.6796875c0.2397461%2C0%2C0.4731445-0.0185547%2C0.699707-0.0551758s0.4316406-0.1049805%2C0.6152344-0.2050781c0.1831055-0.1000977%2C0.3383789-0.2363281%2C0.4648438-0.4101562c0.1264648-0.1733398%2C0.2133789-0.3930664%2C0.2602539-0.659668h0.6499023V19H3.7099609z%22%2F%3E%3Cpath%20d%3D%22M8.7099609%2C13.4199219C8.8032227%2C13.1132812%2C8.9482422%2C12.8486328%2C9.1450195%2C12.625c0.1967773-0.2231445%2C0.4418945-0.3984375%2C0.7353516-0.5249023c0.2929688-0.1264648%2C0.6264648-0.1899414%2C1-0.1899414c0.3061523%2C0%2C0.5947266%2C0.0449219%2C0.8647461%2C0.1347656S12.25%2C12.2651367%2C12.4501953%2C12.4350586s0.3583984%2C0.3818359%2C0.4750977%2C0.6347656c0.1162109%2C0.253418%2C0.1748047%2C0.546875%2C0.1748047%2C0.8803711c0%2C0.3134766-0.0483398%2C0.5898438-0.1450195%2C0.8295898c-0.0966797%2C0.2402344-0.2250977%2C0.4550781-0.3847656%2C0.6450195c-0.1601562%2C0.1904297-0.34375%2C0.3618164-0.550293%2C0.5151367s-0.4199219%2C0.300293-0.6396484%2C0.4399414c-0.2202148%2C0.1337891-0.4404297%2C0.2651367-0.6601562%2C0.3950195C10.5%2C16.9047852%2C10.2983398%2C17.043457%2C10.1152344%2C17.1899414c-0.1835938%2C0.1469727-0.3398438%2C0.3051758-0.4702148%2C0.4750977C9.5151367%2C17.8349609%2C9.4301758%2C18.0297852%2C9.3901367%2C18.25h3.6401367V19H8.4003906C8.4335938%2C18.5800781%2C8.5083008%2C18.2216797%2C8.625%2C17.9248047c0.1166992-0.2963867%2C0.2651367-0.5546875%2C0.4453125-0.7749023C9.25%2C16.9301758%2C9.4536133%2C16.7368164%2C9.6801758%2C16.5698242c0.2265625-0.1665039%2C0.4633789-0.3232422%2C0.7099609-0.4697266c0.2998047-0.1865234%2C0.5634766-0.3583984%2C0.7900391-0.5151367s0.4150391-0.3149414%2C0.5649414-0.4750977c0.1499023-0.159668%2C0.2631836-0.3330078%2C0.3398438-0.5200195c0.0766602-0.1865234%2C0.1152344-0.4033203%2C0.1152344-0.6499023c0-0.1933594-0.0366211-0.3681641-0.1098633-0.5249023c-0.0737305-0.1567383-0.171875-0.2915039-0.2954102-0.4052734c-0.1230469-0.1132812-0.2680664-0.199707-0.4345703-0.2597656c-0.1669922-0.0600586-0.34375-0.0898438-0.5302734-0.0898438c-0.246582%2C0-0.4584961%2C0.0517578-0.6347656%2C0.1547852c-0.1767578%2C0.1035156-0.3217773%2C0.2382812-0.4350586%2C0.4052734c-0.1137695%2C0.1665039-0.1953125%2C0.3549805-0.2451172%2C0.5649414s-0.0717773%2C0.4213867-0.0649414%2C0.6347656H8.6000977C8.5800781%2C14.0600586%2C8.6166992%2C13.7265625%2C8.7099609%2C13.4199219z%22%2F%3E%3Cpath%20d%3D%22M17.5898438%2C14.9599609c0.0332031%2C0%2C0.0664062%2C0%2C0.1000977%2C0h0.1796875c0.1801758%2C0%2C0.3515625-0.0249023%2C0.5151367-0.0751953c0.1635742-0.0498047%2C0.3066406-0.1230469%2C0.4301758-0.2197266c0.1230469-0.0966797%2C0.2216797-0.2182617%2C0.2949219-0.3652344c0.0732422-0.1464844%2C0.1098633-0.3129883%2C0.1098633-0.5c0-0.3798828-0.1201172-0.6650391-0.3598633-0.8549805c-0.2402344-0.1899414-0.5400391-0.284668-0.8999023-0.284668c-0.2270508%2C0-0.425293%2C0.0415039-0.5952148%2C0.125s-0.3100586%2C0.1948242-0.4199219%2C0.3349609c-0.1098633%2C0.1396484-0.1918945%2C0.3032227-0.2451172%2C0.4897461c-0.0532227%2C0.1870117-0.0800781%2C0.3837891-0.0800781%2C0.590332h-0.8496094c0.0131836-0.340332%2C0.0678711-0.6503906%2C0.1650391-0.9301758C16.03125%2C12.9902344%2C16.1699219%2C12.75%2C16.3496094%2C12.5498047c0.1801758-0.199707%2C0.4052734-0.3564453%2C0.675293-0.4697266s0.581543-0.1699219%2C0.9350586-0.1699219c0.3066406%2C0%2C0.5913086%2C0.0380859%2C0.8549805%2C0.1147461C19.078125%2C12.1015625%2C19.3061523%2C12.2167969%2C19.5%2C12.3701172c0.1928711%2C0.1533203%2C0.3447266%2C0.3500977%2C0.4545898%2C0.5898438c0.1103516%2C0.2402344%2C0.1650391%2C0.5234375%2C0.1650391%2C0.8500977c0%2C0.3198242-0.0932617%2C0.6035156-0.2797852%2C0.8500977s-0.4199219%2C0.4331055-0.7001953%2C0.5600586v0.0200195c0.4335938%2C0.0932617%2C0.7553711%2C0.2963867%2C0.965332%2C0.6098633s0.3149414%2C0.6831055%2C0.3149414%2C1.1098633c0%2C0.3535156-0.0649414%2C0.6650391-0.1953125%2C0.9350586c-0.1298828%2C0.2700195-0.3046875%2C0.4951172-0.5249023%2C0.6748047c-0.2197266%2C0.1801758-0.4785156%2C0.3149414-0.7749023%2C0.4052734c-0.296875%2C0.0898438-0.6118164%2C0.1347656-0.9448242%2C0.1347656c-0.3603516%2C0-0.6870117-0.0498047-0.9799805-0.1499023c-0.293457-0.1000977-0.543457-0.2480469-0.75-0.4448242c-0.2070312-0.1967773-0.3652344-0.4384766-0.4750977-0.7250977s-0.1616211-0.6132812-0.1552734-0.9799805h0.8500977c0.0131836%2C0.4599609%2C0.1464844%2C0.8349609%2C0.3999023%2C1.125s0.6235352%2C0.4350586%2C1.1103516%2C0.4350586c0.206543%2C0%2C0.4033203-0.0317383%2C0.5898438-0.0952148c0.1865234-0.0629883%2C0.3500977-0.1533203%2C0.4902344-0.2700195c0.1396484-0.1162109%2C0.2514648-0.2597656%2C0.3349609-0.4296875c0.0830078-0.1704102%2C0.125-0.3618164%2C0.125-0.5751953c0-0.2202148-0.0400391-0.4150391-0.1201172-0.5849609s-0.1870117-0.3134766-0.3203125-0.4301758c-0.1333008-0.1162109-0.2915039-0.203125-0.4746094-0.2597656c-0.1835938-0.0566406-0.3818359-0.0849609-0.5952148-0.0849609c-0.1801758%2C0-0.3500977%2C0.0097656-0.5097656%2C0.0297852v-0.7197266C17.5332031%2C14.956543%2C17.5629883%2C14.9599609%2C17.5898438%2C14.9599609z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-number { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M3.7099609%2C13.8330078V8.7529297H1.8701172V8.0732422c0.2397461%2C0%2C0.4731445-0.0185547%2C0.699707-0.0551758s0.4316406-0.1049805%2C0.6152344-0.2050781C3.3681641%2C7.7128906%2C3.5234375%2C7.5766602%2C3.6499023%2C7.402832c0.1264648-0.1733398%2C0.2133789-0.3930664%2C0.2602539-0.659668h0.6499023v7.0898438H3.7099609z%22%2F%3E%3Cpath%20d%3D%22M8.5%2C12.7231445v1.0097656c0%2C0.3798828-0.0864258%2C0.706543-0.2597656%2C0.9799805c-0.1738281%2C0.2734375-0.4536133%2C0.4667969-0.840332%2C0.5800781v-0.5c0.1132812-0.0400391%2C0.2084961-0.0986328%2C0.2851562-0.1748047c0.0766602-0.0766602%2C0.1381836-0.1601562%2C0.1850586-0.25c0.0463867-0.090332%2C0.078125-0.1816406%2C0.0947266-0.2753906c0.0166016-0.0932617%2C0.0219727-0.1796875%2C0.0151367-0.2597656H7.3901367v-1.1098633H8.5z%22%2F%3E%3Cpath%20d%3D%22M9.7797852%2C9.5429688c0.0131836-0.2797852%2C0.0463867-0.5532227%2C0.1000977-0.8198242c0.0532227-0.2666016%2C0.1298828-0.5200195%2C0.2299805-0.7602539c0.1000977-0.2397461%2C0.2363281-0.449707%2C0.4101562-0.6298828c0.1733398-0.1801758%2C0.3916016-0.3232422%2C0.6547852-0.4301758c0.2631836-0.1064453%2C0.578125-0.159668%2C0.9448242-0.159668s0.6816406%2C0.0532227%2C0.9453125%2C0.159668c0.2631836%2C0.1069336%2C0.4814453%2C0.25%2C0.6547852%2C0.4301758s0.3100586%2C0.3901367%2C0.4101562%2C0.6298828c0.1000977%2C0.2402344%2C0.1767578%2C0.4936523%2C0.2299805%2C0.7602539s0.0864258%2C0.5400391%2C0.1000977%2C0.8198242c0.0131836%2C0.2802734%2C0.0200195%2C0.5498047%2C0.0200195%2C0.8100586c0%2C0.2597656-0.0068359%2C0.5297852-0.0200195%2C0.8100586c-0.0136719%2C0.2797852-0.046875%2C0.5532227-0.1000977%2C0.8198242s-0.1298828%2C0.5185547-0.2299805%2C0.7548828c-0.1000977%2C0.2368164-0.2368164%2C0.4453125-0.4101562%2C0.625c-0.1733398%2C0.1801758-0.3896484%2C0.3217773-0.6499023%2C0.425293c-0.2597656%2C0.1030273-0.5766602%2C0.1547852-0.9501953%2C0.1547852c-0.3666992%2C0-0.6816406-0.0517578-0.9448242-0.1547852c-0.2631836-0.1035156-0.4814453-0.2451172-0.6547852-0.425293c-0.1738281-0.1796875-0.3100586-0.3881836-0.4101562-0.625c-0.1000977-0.2363281-0.1767578-0.4882812-0.2299805-0.7548828c-0.0537109-0.2666016-0.0869141-0.5400391-0.1000977-0.8198242c-0.0131836-0.2802734-0.0200195-0.550293-0.0200195-0.8100586C9.7597656%2C10.0927734%2C9.7666016%2C9.8232422%2C9.7797852%2C9.5429688z%20M10.6850586%2C11.237793c0.0161133%2C0.3300781%2C0.0698242%2C0.6401367%2C0.159668%2C0.9301758c0.090332%2C0.2900391%2C0.2353516%2C0.5351562%2C0.4350586%2C0.7348633c0.2001953%2C0.2001953%2C0.4799805%2C0.300293%2C0.8398438%2C0.300293c0.3603516%2C0%2C0.6401367-0.1000977%2C0.840332-0.300293c0.199707-0.199707%2C0.3447266-0.4448242%2C0.4350586-0.7348633c0.0898438-0.2900391%2C0.1430664-0.6000977%2C0.159668-0.9301758c0.0166016-0.3295898%2C0.0253906-0.6279297%2C0.0253906-0.8950195c0-0.1728516-0.0019531-0.3647461-0.0053711-0.574707s-0.0200195-0.4199219-0.0498047-0.6298828c-0.0302734-0.2099609-0.0737305-0.4150391-0.1298828-0.6152344c-0.0571289-0.199707-0.1401367-0.375-0.25-0.5249023c-0.1103516-0.1499023-0.2485352-0.2714844-0.4150391-0.3652344c-0.1669922-0.0932617-0.3701172-0.1396484-0.6103516-0.1396484c-0.2397461%2C0-0.4433594%2C0.0463867-0.6098633%2C0.1396484c-0.1665039%2C0.09375-0.3046875%2C0.215332-0.4150391%2C0.3652344c-0.1098633%2C0.1499023-0.1933594%2C0.3251953-0.25%2C0.5249023c-0.0566406%2C0.2001953-0.1000977%2C0.4052734-0.1298828%2C0.6152344s-0.046875%2C0.4199219-0.0498047%2C0.6298828c-0.003418%2C0.2099609-0.0053711%2C0.4018555-0.0053711%2C0.574707C10.659668%2C10.6098633%2C10.6679688%2C10.9082031%2C10.6850586%2C11.237793z%22%2F%3E%3Cpath%20d%3D%22M15.3398438%2C9.5429688c0.0131836-0.2797852%2C0.0463867-0.5532227%2C0.1000977-0.8198242c0.0532227-0.2666016%2C0.1298828-0.5200195%2C0.2299805-0.7602539c0.1000977-0.2397461%2C0.2363281-0.449707%2C0.4101562-0.6298828c0.1733398-0.1801758%2C0.3916016-0.3232422%2C0.6547852-0.4301758c0.2631836-0.1064453%2C0.578125-0.159668%2C0.9448242-0.159668S18.3613281%2C6.7963867%2C18.625%2C6.902832c0.2631836%2C0.1069336%2C0.4814453%2C0.25%2C0.6547852%2C0.4301758s0.3100586%2C0.3901367%2C0.4101562%2C0.6298828c0.1000977%2C0.2402344%2C0.1767578%2C0.4936523%2C0.2299805%2C0.7602539s0.0864258%2C0.5400391%2C0.1000977%2C0.8198242c0.0131836%2C0.2802734%2C0.0200195%2C0.5498047%2C0.0200195%2C0.8100586c0%2C0.2597656-0.0068359%2C0.5297852-0.0200195%2C0.8100586c-0.0136719%2C0.2797852-0.046875%2C0.5532227-0.1000977%2C0.8198242s-0.1298828%2C0.5185547-0.2299805%2C0.7548828c-0.1000977%2C0.2368164-0.2368164%2C0.4453125-0.4101562%2C0.625c-0.1733398%2C0.1801758-0.3896484%2C0.3217773-0.6499023%2C0.425293c-0.2597656%2C0.1030273-0.5766602%2C0.1547852-0.9501953%2C0.1547852c-0.3666992%2C0-0.6816406-0.0517578-0.9448242-0.1547852c-0.2631836-0.1035156-0.4814453-0.2451172-0.6547852-0.425293c-0.1738281-0.1796875-0.3100586-0.3881836-0.4101562-0.625c-0.1000977-0.2363281-0.1767578-0.4882812-0.2299805-0.7548828c-0.0537109-0.2666016-0.0869141-0.5400391-0.1000977-0.8198242c-0.0131836-0.2802734-0.0200195-0.550293-0.0200195-0.8100586C15.3198242%2C10.0927734%2C15.3266602%2C9.8232422%2C15.3398438%2C9.5429688z%20M16.2451172%2C11.237793c0.0161133%2C0.3300781%2C0.0698242%2C0.6401367%2C0.159668%2C0.9301758c0.090332%2C0.2900391%2C0.2353516%2C0.5351562%2C0.4350586%2C0.7348633c0.2001953%2C0.2001953%2C0.4799805%2C0.300293%2C0.8398438%2C0.300293c0.3603516%2C0%2C0.6401367-0.1000977%2C0.840332-0.300293c0.199707-0.199707%2C0.3447266-0.4448242%2C0.4350586-0.7348633c0.0898438-0.2900391%2C0.1430664-0.6000977%2C0.159668-0.9301758c0.0166016-0.3295898%2C0.0253906-0.6279297%2C0.0253906-0.8950195c0-0.1728516-0.0019531-0.3647461-0.0053711-0.574707s-0.0200195-0.4199219-0.0498047-0.6298828c-0.0302734-0.2099609-0.0737305-0.4150391-0.1298828-0.6152344c-0.0571289-0.199707-0.1401367-0.375-0.25-0.5249023c-0.1103516-0.1499023-0.2485352-0.2714844-0.4150391-0.3652344c-0.1669922-0.0932617-0.3701172-0.1396484-0.6103516-0.1396484c-0.2397461%2C0-0.4433594%2C0.0463867-0.6098633%2C0.1396484c-0.1665039%2C0.09375-0.3046875%2C0.215332-0.4150391%2C0.3652344c-0.1098633%2C0.1499023-0.1933594%2C0.3251953-0.25%2C0.5249023c-0.0566406%2C0.2001953-0.1000977%2C0.4052734-0.1298828%2C0.6152344s-0.046875%2C0.4199219-0.0498047%2C0.6298828c-0.003418%2C0.2099609-0.0053711%2C0.4018555-0.0053711%2C0.574707C16.2197266%2C10.6098633%2C16.2280273%2C10.9082031%2C16.2451172%2C11.237793z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-integer { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.7089844%2C14.8330078V9.7529297H2.8691406V9.0732422c0.2402344%2C0%2C0.4736328-0.0185547%2C0.7001953-0.0551758s0.4316406-0.1049805%2C0.6152344-0.2050781C4.3671875%2C8.7128906%2C4.5234375%2C8.5766602%2C4.6494141%2C8.402832c0.1259766-0.1733398%2C0.2138672-0.3930664%2C0.2607422-0.659668h0.6494141v7.0898438H4.7089844z%22%2F%3E%3Cpath%20d%3D%22M8.109375%2C9.2529297c0.09375-0.3066406%2C0.2382812-0.5712891%2C0.4355469-0.7949219c0.1962891-0.2231445%2C0.4414062-0.3984375%2C0.734375-0.5249023s0.6269531-0.1899414%2C1-0.1899414c0.3066406%2C0%2C0.5957031%2C0.0449219%2C0.8652344%2C0.1347656s0.5048828%2C0.2202148%2C0.7050781%2C0.3901367s0.3583984%2C0.3818359%2C0.4746094%2C0.6347656C12.4414062%2C9.15625%2C12.5%2C9.449707%2C12.5%2C9.7832031c0%2C0.3134766-0.0488281%2C0.5898438-0.1455078%2C0.8295898c-0.0966797%2C0.2402344-0.2255859%2C0.4550781-0.3847656%2C0.6450195c-0.1601562%2C0.1904297-0.34375%2C0.3618164-0.5498047%2C0.5151367C11.2128906%2C11.9262695%2C11%2C12.0732422%2C10.7792969%2C12.2128906c-0.2197266%2C0.1337891-0.4394531%2C0.2651367-0.6601562%2C0.3950195c-0.2197266%2C0.1298828-0.421875%2C0.2685547-0.6044922%2C0.4150391c-0.1835938%2C0.1469727-0.3398438%2C0.3051758-0.4697266%2C0.4750977c-0.1308594%2C0.1699219-0.2148438%2C0.3647461-0.2558594%2C0.5849609h3.640625v0.75H7.7998047c0.0332031-0.4199219%2C0.1083984-0.7783203%2C0.2246094-1.0751953c0.1162109-0.2963867%2C0.2646484-0.5546875%2C0.4453125-0.7749023c0.1796875-0.2197266%2C0.3837891-0.4130859%2C0.6103516-0.5800781c0.2265625-0.1665039%2C0.4628906-0.3232422%2C0.7089844-0.4697266c0.3007812-0.1865234%2C0.5644531-0.3583984%2C0.7910156-0.5151367s0.4140625-0.3149414%2C0.5644531-0.4750977c0.1503906-0.159668%2C0.2636719-0.3330078%2C0.3398438-0.5200195c0.0761719-0.1865234%2C0.1152344-0.4033203%2C0.1152344-0.6499023c0-0.1933594-0.0371094-0.3681641-0.109375-0.5249023c-0.0742188-0.1567383-0.171875-0.2915039-0.2958984-0.4052734c-0.1230469-0.1132812-0.2685547-0.199707-0.4345703-0.2597656c-0.1669922-0.0600586-0.34375-0.0898438-0.5302734-0.0898438c-0.2470703%2C0-0.4580078%2C0.0517578-0.6347656%2C0.1547852C9.4179688%2C8.7514648%2C9.2734375%2C8.8862305%2C9.1601562%2C9.0532227C9.0458984%2C9.2197266%2C8.9648438%2C9.4082031%2C8.9140625%2C9.6181641c-0.0488281%2C0.2099609-0.0712891%2C0.4213867-0.0644531%2C0.6347656H8C7.9794922%2C9.8930664%2C8.015625%2C9.5595703%2C8.109375%2C9.2529297z%22%2F%3E%3Cpath%20d%3D%22M15.3896484%2C10.7929688c0.0332031%2C0%2C0.0664062%2C0%2C0.1005859%2C0h0.1796875c0.1796875%2C0%2C0.3515625-0.0249023%2C0.5146484-0.0751953c0.1630859-0.0498047%2C0.3066406-0.1230469%2C0.4306641-0.2197266c0.1230469-0.0966797%2C0.2207031-0.2182617%2C0.2949219-0.3652344c0.0722656-0.1464844%2C0.109375-0.3129883%2C0.109375-0.5c0-0.3798828-0.1201172-0.6650391-0.359375-0.8549805c-0.2402344-0.1899414-0.5410156-0.284668-0.9003906-0.284668c-0.2265625%2C0-0.4257812%2C0.0415039-0.5957031%2C0.125s-0.3095703%2C0.1948242-0.4199219%2C0.3349609C14.6347656%2C9.0927734%2C14.5527344%2C9.2563477%2C14.5%2C9.4428711c-0.0537109%2C0.1870117-0.0800781%2C0.3837891-0.0800781%2C0.590332h-0.8496094c0.0126953-0.340332%2C0.0673828-0.6503906%2C0.1640625-0.9301758s0.2353516-0.5200195%2C0.4150391-0.7202148c0.1806641-0.199707%2C0.4052734-0.3564453%2C0.6748047-0.4697266c0.2705078-0.1132812%2C0.5820312-0.1699219%2C0.9355469-0.1699219c0.3066406%2C0%2C0.5917969%2C0.0380859%2C0.8554688%2C0.1147461c0.2626953%2C0.0766602%2C0.4902344%2C0.1918945%2C0.6845703%2C0.3452148c0.1923828%2C0.1533203%2C0.3447266%2C0.3500977%2C0.4541016%2C0.5898438c0.1113281%2C0.2402344%2C0.1660156%2C0.5234375%2C0.1660156%2C0.8500977c0%2C0.3198242-0.09375%2C0.6035156-0.2802734%2C0.8500977s-0.4199219%2C0.4331055-0.7001953%2C0.5600586v0.0200195c0.4335938%2C0.0932617%2C0.7558594%2C0.2963867%2C0.9648438%2C0.6098633c0.2109375%2C0.3134766%2C0.3154297%2C0.6831055%2C0.3154297%2C1.1098633c0%2C0.3535156-0.0654297%2C0.6650391-0.1953125%2C0.9350586S17.7197266%2C14.2231445%2C17.5%2C14.402832c-0.2207031%2C0.1801758-0.4785156%2C0.3149414-0.7753906%2C0.4052734c-0.296875%2C0.0898438-0.6113281%2C0.1347656-0.9453125%2C0.1347656c-0.359375%2C0-0.6865234-0.0498047-0.9794922-0.1499023c-0.2939453-0.1000977-0.5439453-0.2480469-0.75-0.4448242c-0.2070312-0.1967773-0.3652344-0.4384766-0.4755859-0.7250977c-0.109375-0.2866211-0.1611328-0.6132812-0.1542969-0.9799805h0.8496094c0.0136719%2C0.4599609%2C0.1464844%2C0.8349609%2C0.4003906%2C1.125c0.2529297%2C0.2900391%2C0.6230469%2C0.4350586%2C1.109375%2C0.4350586c0.2070312%2C0%2C0.4042969-0.0317383%2C0.5898438-0.0952148c0.1875-0.0629883%2C0.3505859-0.1533203%2C0.4902344-0.2700195C17%2C13.7216797%2C17.1113281%2C13.578125%2C17.1953125%2C13.4082031c0.0820312-0.1704102%2C0.125-0.3618164%2C0.125-0.5751953c0-0.2202148-0.0410156-0.4150391-0.1210938-0.5849609s-0.1865234-0.3134766-0.3203125-0.4301758c-0.1328125-0.1162109-0.2910156-0.203125-0.4746094-0.2597656s-0.3808594-0.0849609-0.5947266-0.0849609c-0.1806641%2C0-0.3505859%2C0.0097656-0.5097656%2C0.0297852v-0.7197266C15.3330078%2C10.7895508%2C15.3632812%2C10.7929688%2C15.3896484%2C10.7929688z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-scientific { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.9804688%2C15.8330078v-5.5878906H2.9570312V9.4970703c0.2636719%2C0%2C0.5195312-0.0200195%2C0.7695312-0.0605469c0.2490234-0.0400391%2C0.4746094-0.1157227%2C0.6757812-0.2255859c0.2021484-0.1098633%2C0.3730469-0.2602539%2C0.5117188-0.4511719c0.1396484-0.1904297%2C0.234375-0.4321289%2C0.2871094-0.7255859h0.7148438v7.7988281H4.9804688z%22%2F%3E%3Cpath%20d%3D%22M8.5996094%2C11.1137695c0.0146484-0.3076172%2C0.0507812-0.6083984%2C0.1103516-0.9018555c0.0585938-0.2929688%2C0.1425781-0.5717773%2C0.2529297-0.8359375c0.109375-0.2641602%2C0.2597656-0.4951172%2C0.4511719-0.6928711C9.6044922%2C8.4848633%2C9.84375%2C8.3276367%2C10.1347656%2C8.2099609c0.2890625-0.1171875%2C0.6357422-0.1757812%2C1.0390625-0.1757812s0.75%2C0.0585938%2C1.0390625%2C0.1757812c0.2900391%2C0.1176758%2C0.5302734%2C0.2749023%2C0.7207031%2C0.4731445C13.125%2C8.8808594%2C13.2753906%2C9.1118164%2C13.3847656%2C9.3759766s0.1943359%2C0.5429688%2C0.2529297%2C0.8359375c0.0585938%2C0.293457%2C0.0947266%2C0.5942383%2C0.1103516%2C0.9018555c0.0136719%2C0.3081055%2C0.0214844%2C0.6054688%2C0.0214844%2C0.8911133c0%2C0.2861328-0.0078125%2C0.5830078-0.0214844%2C0.8911133c-0.015625%2C0.3081055-0.0517578%2C0.6088867-0.1103516%2C0.9018555c-0.0585938%2C0.293457-0.1435547%2C0.5703125-0.2529297%2C0.8305664s-0.2597656%2C0.4897461-0.4511719%2C0.6875c-0.1904297%2C0.1982422-0.4287109%2C0.3540039-0.7148438%2C0.4677734c-0.2861328%2C0.1132812-0.6347656%2C0.1704102-1.0449219%2C0.1704102c-0.4033203%2C0-0.75-0.0571289-1.0390625-0.1704102C9.84375%2C15.6699219%2C9.6044922%2C15.5141602%2C9.4140625%2C15.315918c-0.1914062-0.1977539-0.3417969-0.4272461-0.4511719-0.6875c-0.1103516-0.2602539-0.1943359-0.5371094-0.2529297-0.8305664c-0.0595703-0.2929688-0.0957031-0.59375-0.1103516-0.9018555S8.578125%2C12.2910156%2C8.578125%2C12.0048828C8.578125%2C11.7192383%2C8.5849609%2C11.421875%2C8.5996094%2C11.1137695z%20M9.5957031%2C12.9785156c0.0175781%2C0.362793%2C0.0761719%2C0.7041016%2C0.1757812%2C1.0229492c0.0986328%2C0.3188477%2C0.2578125%2C0.5883789%2C0.4785156%2C0.8085938c0.2197266%2C0.2197266%2C0.5273438%2C0.3300781%2C0.9238281%2C0.3300781s0.7041016-0.1103516%2C0.9238281-0.3300781c0.2207031-0.2202148%2C0.3789062-0.4897461%2C0.4785156-0.8085938s0.1582031-0.6601562%2C0.1757812-1.0229492c0.0185547-0.362793%2C0.0273438-0.690918%2C0.0273438-0.984375c0-0.190918-0.0019531-0.4018555-0.0048828-0.6328125c-0.0039062-0.230957-0.0224609-0.4619141-0.0556641-0.6928711s-0.0800781-0.456543-0.1425781-0.6762695c-0.0625-0.2202148-0.1542969-0.4125977-0.2753906-0.5776367s-0.2734375-0.2988281-0.4560547-0.4013672C11.6611328%2C8.9101562%2C11.4375%2C8.8588867%2C11.1738281%2C8.8588867s-0.4882812%2C0.0512695-0.6708984%2C0.1542969c-0.1835938%2C0.1025391-0.3359375%2C0.2363281-0.4560547%2C0.4013672C9.9257812%2C9.5795898%2C9.8339844%2C9.7719727%2C9.7714844%2C9.9921875c-0.0625%2C0.2197266-0.1103516%2C0.4453125-0.1425781%2C0.6762695c-0.0332031%2C0.230957-0.0527344%2C0.4619141-0.0556641%2C0.6928711c-0.0039062%2C0.230957-0.0048828%2C0.4418945-0.0048828%2C0.6328125C9.5683594%2C12.2875977%2C9.5761719%2C12.6157227%2C9.5957031%2C12.9785156z%22%2F%3E%3Cpath%20d%3D%22M14.3300781%2C5.1098633c0.0546875-0.1835938%2C0.1425781-0.3427734%2C0.2597656-0.4770508c0.1191406-0.1337891%2C0.265625-0.2387695%2C0.4414062-0.3149414c0.1757812-0.0756836%2C0.3759766-0.1137695%2C0.5996094-0.1137695c0.1845703%2C0%2C0.3574219%2C0.0268555%2C0.5195312%2C0.0810547C16.3125%2C4.3388672%2C16.453125%2C4.4169922%2C16.5742188%2C4.519043c0.1191406%2C0.1020508%2C0.2148438%2C0.2290039%2C0.2841797%2C0.3808594c0.0693359%2C0.1523438%2C0.1044922%2C0.328125%2C0.1044922%2C0.5283203c0%2C0.1879883-0.0283203%2C0.3540039-0.0859375%2C0.4975586c-0.0585938%2C0.144043-0.1347656%2C0.2734375-0.2314453%2C0.387207c-0.0966797%2C0.1142578-0.2060547%2C0.2172852-0.3300781%2C0.309082s-0.2519531%2C0.1801758-0.3837891%2C0.2641602c-0.1328125%2C0.0800781-0.2636719%2C0.1586914-0.3964844%2C0.2368164c-0.1318359%2C0.078125-0.2519531%2C0.1611328-0.3632812%2C0.2490234c-0.109375%2C0.0878906-0.203125%2C0.1831055-0.28125%2C0.2851562c-0.078125%2C0.1015625-0.1289062%2C0.21875-0.1533203%2C0.3505859h2.1845703v0.4501953h-2.7783203c0.0205078-0.2519531%2C0.0654297-0.4667969%2C0.1347656-0.6450195c0.0703125-0.1777344%2C0.1591797-0.3330078%2C0.2666016-0.4648438C14.6533203%2C7.2158203%2C14.7753906%2C7.1000977%2C14.9121094%2C7c0.1347656-0.1000977%2C0.2773438-0.1938477%2C0.4257812-0.2822266c0.1796875-0.1118164%2C0.3378906-0.2148438%2C0.4736328-0.3085938c0.1357422-0.0942383%2C0.2490234-0.1889648%2C0.3388672-0.2851562s0.1582031-0.2001953%2C0.2041016-0.3120117s0.0693359-0.2421875%2C0.0693359-0.3901367c0-0.1157227-0.0224609-0.2207031-0.0664062-0.3149414c-0.0439453-0.09375-0.1035156-0.1748047-0.1767578-0.2431641c-0.0742188-0.0678711-0.1611328-0.1196289-0.2607422-0.1557617c-0.1005859-0.0361328-0.2070312-0.0541992-0.3183594-0.0541992c-0.1484375%2C0-0.2753906%2C0.03125-0.3808594%2C0.0932617c-0.1064453%2C0.0620117-0.1933594%2C0.1430664-0.2617188%2C0.2431641C14.8916016%2C5.0898438%2C14.8417969%2C5.203125%2C14.8125%2C5.3291016s-0.0429688%2C0.2529297-0.0390625%2C0.3808594h-0.5097656C14.2519531%2C5.4941406%2C14.2734375%2C5.2939453%2C14.3300781%2C5.1098633z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-accounting { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.5%2C21h-10C4.1%2C21%2C3%2C19.9%2C3%2C18.5v-14C3%2C3.1%2C4.1%2C2%2C5.5%2C2h10C16.9%2C2%2C18%2C3.1%2C18%2C4.5v14C18%2C19.9%2C16.9%2C21%2C15.5%2C21z%20M5.5%2C3C4.7%2C3%2C4%2C3.7%2C4%2C4.5v14C4%2C19.3%2C4.7%2C20%2C5.5%2C20h10c0.8%2C0%2C1.5-0.7%2C1.5-1.5v-14C17%2C3.7%2C16.3%2C3%2C15.5%2C3H5.5z%22%2F%3E%3Cpath%20d%3D%22M14.5%2C9h-8C5.7%2C9%2C5%2C8.3%2C5%2C7.5v-2C5%2C4.7%2C5.7%2C4%2C6.5%2C4h8C15.3%2C4%2C16%2C4.7%2C16%2C5.5v2C16%2C8.3%2C15.3%2C9%2C14.5%2C9z%20M6.5%2C5C6.2%2C5%2C6%2C5.2%2C6%2C5.5v2C6%2C7.8%2C6.2%2C8%2C6.5%2C8h8C14.8%2C8%2C15%2C7.8%2C15%2C7.5v-2C15%2C5.2%2C14.8%2C5%2C14.5%2C5H6.5z%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%2210%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%2210%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%2210%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%2213%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%2213%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%2213%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%2216%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%2216%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%2216%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-currency { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C4v14h22V4H0z%20M21%2C17H1V5h20V17z%22%2F%3E%3Cpath%20id%3D%22XMLID_3_%22%20d%3D%22M11%2C16c-2.2%2C0-4-2.2-4-5s1.8-5%2C4-5c2.2%2C0%2C4%2C2.2%2C4%2C5S13.2%2C16%2C11%2C16z%20M11%2C7c-1.7%2C0-3%2C1.8-3%2C4c0%2C2.2%2C1.3%2C4%2C3%2C4s3-1.8%2C3-4C14%2C8.8%2C12.7%2C7%2C11%2C7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-date { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C20H2V7h18V20z%20M3%2C19h16V8H3V19z%22%2F%3E%3Cpath%20d%3D%22M8%2C6H5V2h3V6z%20M6%2C5h1V3H6V5z%22%2F%3E%3Cpath%20d%3D%22M17%2C6h-3V2h3V6z%20M15%2C5h1V3h-1V5z%22%2F%3E%3Cpath%20d%3D%22M8.8%2C15.8v-4.1H7.4v-0.5c0.2%2C0%2C0.4%2C0%2C0.6%2C0s0.3-0.1%2C0.5-0.2c0.1-0.1%2C0.3-0.2%2C0.4-0.3C8.9%2C10.6%2C9%2C10.4%2C9%2C10.2h0.5v5.7H8.8z%22%2F%3E%3Cpath%20d%3D%22M14.4%2C11.8c-0.3%2C0.4-0.5%2C0.8-0.7%2C1.2c-0.2%2C0.4-0.4%2C0.9-0.5%2C1.4c-0.1%2C0.5-0.2%2C0.9-0.2%2C1.4h-0.8c0-0.5%2C0.1-0.9%2C0.2-1.4c0.1-0.5%2C0.3-0.9%2C0.5-1.3s0.4-0.8%2C0.7-1.2c0.3-0.4%2C0.5-0.7%2C0.8-1h-3v-0.6h3.7v0.6C14.9%2C11.1%2C14.6%2C11.5%2C14.4%2C11.8z%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%223%22%20width%3D%221%22%20height%3D%224%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%222%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%223%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2217%22%20y%3D%223%22%20width%3D%223%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%224%22%20width%3D%221%22%20height%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-time { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.2%2C21.1c-5.7%2C0-10.3-4.6-10.3-10.3S5.5%2C0.5%2C11.2%2C0.5s10.3%2C4.6%2C10.3%2C10.3S16.9%2C21.1%2C11.2%2C21.1z%20M11.2%2C1.5c-5.1%2C0-9.3%2C4.2-9.3%2C9.3c0%2C5.1%2C4.2%2C9.3%2C9.3%2C9.3c5.1%2C0%2C9.3-4.2%2C9.3-9.3C20.5%2C5.7%2C16.3%2C1.5%2C11.2%2C1.5z%22%2F%3E%3Cpath%20class%3D%22st0%22%20d%3D%22M11.5%2C11%22%2F%3E%3Ccircle%20cx%3D%2211.2%22%20cy%3D%2210.8%22%20r%3D%221.9%22%2F%3E%3Crect%20x%3D%2210.7%22%20y%3D%222.6%22%20width%3D%221%22%20height%3D%228%22%2F%3E%3Crect%20x%3D%227.1%22%20y%3D%2210.4%22%20width%3D%223.4%22%20height%3D%220.9%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-percentage { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M2.7998047%2C6.4970703c0.0957031-0.4375%2C0.2578125-0.8251953%2C0.4863281-1.161132C3.5136719%2C5%2C3.8134766%2C4.7333984%2C4.1855469%2C4.5351562s0.8339844-0.296875%2C1.3867188-0.296875c0.5634766%2C0%2C1.0283203%2C0.0957031%2C1.3945312%2C0.2880859c0.3662109%2C0.1914062%2C0.6601562%2C0.4492188%2C0.8818359%2C0.7734375c0.2226562%2C0.3242188%2C0.3779297%2C0.7050781%2C0.46875%2C1.1435547c0.0898438%2C0.4375%2C0.1347656%2C0.9023438%2C0.1347656%2C1.3945312c0%2C0.4677734-0.0517578%2C0.9208984-0.1533203%2C1.359375c-0.1015625%2C0.4375-0.2695312%2C0.8222656-0.5039062%2C1.1513672c-0.234375%2C0.3300781-0.53125%2C0.5976562-0.890625%2C0.8017578c-0.3603516%2C0.2041016-0.8046875%2C0.3056641-1.3320312%2C0.3056641c-0.5400391%2C0-0.9960938-0.0927734-1.3681641-0.2792969c-0.3720703-0.1855469-0.671875-0.4404297-0.9003906-0.7646484c-0.2275391-0.3242188-0.3925781-0.7021484-0.4951172-1.1337891C2.7070312%2C8.8457031%2C2.65625%2C8.3837891%2C2.65625%2C7.8916016C2.65625%2C7.4003906%2C2.7041016%2C6.9355469%2C2.7998047%2C6.4970703z%20M4.0507812%2C8.7109375c0.0302734%2C0.3056641%2C0.0996094%2C0.5878906%2C0.2070312%2C0.8457031c0.1083984%2C0.2587891%2C0.2607422%2C0.4746094%2C0.4589844%2C0.6484375s0.4648438%2C0.2607422%2C0.8007812%2C0.2607422c0.3486328%2C0%2C0.6240234-0.0839844%2C0.828125-0.2519531s0.3632812-0.3808594%2C0.4775391-0.6386719c0.1132812-0.2578125%2C0.1884766-0.5429688%2C0.2246094-0.8554688c0.0361328-0.3115234%2C0.0537109-0.6054688%2C0.0537109-0.8818359c0-0.2636719-0.0146484-0.5488281-0.0449219-0.8544922C7.0273438%2C6.6767578%2C6.9580078%2C6.3955078%2C6.8496094%2C6.1367188C6.7421875%2C5.8789062%2C6.5888672%2C5.6630859%2C6.390625%2C5.4892578C6.1933594%2C5.3154297%2C5.9199219%2C5.2275391%2C5.5722656%2C5.2275391c-0.3359375%2C0-0.6064453%2C0.0878906-0.8105469%2C0.2617188S4.3984375%2C5.8789062%2C4.2851562%2C6.1367188C4.1708984%2C6.3955078%2C4.0957031%2C6.6767578%2C4.0595703%2C6.9833984C4.0244141%2C7.2890625%2C4.0058594%2C7.5800781%2C4.0058594%2C7.8564453C4.0058594%2C8.1201172%2C4.0205078%2C8.4052734%2C4.0507812%2C8.7109375z%20M15.5976562%2C4.0039062L5.9316406%2C17.3779297H4.3837891l9.6845703-13.3740234H15.5976562z%20M11.6923828%2C12.2568359c0.0957031-0.4375%2C0.2578125-0.8251953%2C0.4853516-1.1611328c0.2285156-0.3359375%2C0.5283203-0.6025391%2C0.9003906-0.8007812s0.8339844-0.296875%2C1.3857422-0.296875c0.5644531%2C0%2C1.0292969%2C0.0957031%2C1.3955078%2C0.2880859c0.3652344%2C0.1923828%2C0.6591797%2C0.4501953%2C0.8818359%2C0.7734375c0.2216797%2C0.3242188%2C0.3779297%2C0.7050781%2C0.4677734%2C1.1435547s0.1347656%2C0.9033203%2C0.1347656%2C1.3945312c0%2C0.46875-0.0507812%2C0.921875-0.1523438%2C1.359375c-0.1025391%2C0.4384766-0.2705078%2C0.8222656-0.5048828%2C1.1523438c-0.2333984%2C0.3300781-0.5302734%2C0.59375-0.890625%2C0.7919922c-0.3603516%2C0.1972656-0.8037109%2C0.296875-1.3320312%2C0.296875c-0.5400391%2C0-0.9960938-0.09375-1.3681641-0.2792969s-0.671875-0.4375-0.8994141-0.7558594c-0.2285156-0.3183594-0.3935547-0.6933594-0.4951172-1.125c-0.1025391-0.4316406-0.1533203-0.8935547-0.1533203-1.3857422S11.5957031%2C12.6953125%2C11.6923828%2C12.2568359z%20M12.9433594%2C14.4707031c0.0292969%2C0.3066406%2C0.0986328%2C0.5888672%2C0.2070312%2C0.8466797c0.1074219%2C0.2578125%2C0.2607422%2C0.4736328%2C0.4589844%2C0.6474609c0.1972656%2C0.1738281%2C0.4648438%2C0.2607422%2C0.8007812%2C0.2607422c0.3476562%2C0%2C0.6240234-0.0830078%2C0.828125-0.2519531c0.2041016-0.1679688%2C0.3623047-0.3808594%2C0.4765625-0.6386719s0.1894531-0.5429688%2C0.2255859-0.8544922c0.0351562-0.3125%2C0.0537109-0.6064453%2C0.0537109-0.8828125c0-0.2636719-0.015625-0.5488281-0.0449219-0.8544922c-0.0302734-0.3066406-0.0996094-0.5878906-0.2070312-0.8457031c-0.1083984-0.2587891-0.2607422-0.4746094-0.4589844-0.6484375s-0.4716797-0.2607422-0.8193359-0.2607422c-0.3359375%2C0-0.6064453%2C0.0869141-0.8095703%2C0.2607422c-0.2041016%2C0.1738281-0.3632812%2C0.3896484-0.4775391%2C0.6484375c-0.1142578%2C0.2578125-0.1884766%2C0.5390625-0.2246094%2C0.8457031c-0.0361328%2C0.3056641-0.0537109%2C0.5966797-0.0537109%2C0.8730469C12.8984375%2C13.8798828%2C12.9130859%2C14.1650391%2C12.9433594%2C14.4707031z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-text { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M5.5234375%2C6.4316406L8.8710938%2C15H7.6113281l-0.9355469-2.5800781h-3.625L2.0917969%2C15H0.9277344l3.3359375-8.5683594H5.5234375z%20M6.3154297%2C11.4599609L4.8876953%2C7.4638672H4.8632812l-1.4511719%2C3.9960938H6.3154297z%22%2F%3E%3Cpath%20d%3D%22M15.21875%2C6.4316406c0.1845703%2C0%2C0.3828125%2C0.0019531%2C0.5947266%2C0.0058594s0.421875%2C0.0166016%2C0.6298828%2C0.0371094c0.2080078%2C0.0195312%2C0.4023438%2C0.0488281%2C0.5820312%2C0.0898438c0.1796875%2C0.0390625%2C0.3339844%2C0.0996094%2C0.4619141%2C0.1796875c0.2802734%2C0.1679688%2C0.5185547%2C0.4003906%2C0.7138672%2C0.6953125c0.1962891%2C0.296875%2C0.2939453%2C0.6601562%2C0.2939453%2C1.0927734c0%2C0.4560547-0.1103516%2C0.8505859-0.3291016%2C1.1816406c-0.2207031%2C0.3320312-0.5351562%2C0.578125-0.9433594%2C0.7382812v0.0244141c0.5292969%2C0.1113281%2C0.9326172%2C0.3515625%2C1.2128906%2C0.71875c0.2792969%2C0.3691406%2C0.4199219%2C0.8164062%2C0.4199219%2C1.3447266c0%2C0.3115234-0.0566406%2C0.6162109-0.1679688%2C0.9121094c-0.1123047%2C0.2958984-0.2783203%2C0.5576172-0.4980469%2C0.7861328c-0.2207031%2C0.2275391-0.4921875%2C0.4121094-0.8164062%2C0.5517578S16.6757812%2C15%2C16.2519531%2C15h-4.140625V6.4316406H15.21875z%20M15.53125%2C10.1162109c0.6484375%2C0%2C1.1132812-0.1142578%2C1.3984375-0.3427734c0.2832031-0.2275391%2C0.4257812-0.5693359%2C0.4257812-1.0253906c0-0.3046875-0.0488281-0.5439453-0.1445312-0.7207031c-0.0957031-0.1757812-0.2275391-0.3115234-0.3955078-0.4072266c-0.1679688-0.0966797-0.3623047-0.1582031-0.5820312-0.1865234C16.0136719%2C7.40625%2C15.7792969%2C7.3925781%2C15.53125%2C7.3925781h-2.2792969v2.7236328H15.53125z%20M16.1074219%2C14.0400391c0.5039062%2C0%2C0.8984375-0.1357422%2C1.1816406-0.4082031c0.2841797-0.2714844%2C0.4257812-0.6474609%2C0.4257812-1.1279297c0-0.2792969-0.0517578-0.5117188-0.15625-0.6953125c-0.1035156-0.1845703-0.2412109-0.3300781-0.4130859-0.4384766c-0.1728516-0.1083984-0.3701172-0.1845703-0.5947266-0.2275391c-0.2236328-0.0449219-0.4550781-0.0664062-0.6953125-0.0664062h-2.6035156v2.9638672H16.1074219z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.sortdown { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%3C%2Fstyle%3E%3Cpath%20d%3D%22M18.4479%2011H19.4908L16.5554%203.03809H15.5733L12.6379%2011H13.6808L14.4808%208.72119H17.6479L18.4479%2011ZM16.0478%204.24644H16.0809L17.3555%207.877H14.7732L16.0478%204.24644Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M13.0407%2021H18.928V20.1061H14.3153V20.0675L18.8342%2013.7443V13.0381H13.1952V13.9319H17.5817V13.9706L13.0407%2020.2937V21Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.sortup { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M13.0407%2011H18.928V10.1061H14.3153V10.0675L18.8342%203.74434V3.03809H13.1952V3.93193H17.5817V3.97056L13.0407%2010.2937V11Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.4479%2021H19.4908L16.5554%2013.0381H15.5733L12.6379%2021H13.6808L14.4808%2018.7212H17.6479L18.4479%2021ZM16.0478%2014.2464H16.0809L17.3555%2017.877H14.7732L16.0478%2014.2464Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdf { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-3.363%20-3.658%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M8.512%2C14.989c0.8-1.567%2C1.709-3.334%2C2.438-5.107l0%2C0l0.287-0.699%20%20c-0.949-3.616-1.52-6.52-1.011-8.396l0%2C0C10.362%2C0.297%2C10.929%2C0%2C11.535%2C0l0%2C0l0.368%2C0.005h0.068c0.83-0.013%2C1.22%2C1.042%2C1.264%2C1.453%20%20l0%2C0c0.073%2C0.684-0.242%2C1.839-0.242%2C1.839l0%2C0c0-0.467%2C0.018-1.221-0.276-1.873l0%2C0c-0.343-0.753-0.671-1.203-0.965-1.274l0%2C0%20%20C11.604%2C0.25%2C11.46%2C0.455%2C11.411%2C0.85l0%2C0c-0.104%2C0.553-0.134%2C1.252-0.134%2C1.611l0%2C0c0%2C1.272%2C0.25%2C2.952%2C0.743%2C4.684l0%2C0%20%20c0.093-0.269%2C0.174-0.526%2C0.24-0.768l0%2C0c0.101-0.38%2C0.743-2.9%2C0.743-2.9l0%2C0c0%2C0-0.162%2C3.354-0.388%2C4.371l0%2C0%20%20c-0.049%2C0.215-0.103%2C0.427-0.158%2C0.644l0%2C0c0.812%2C2.268%2C2.121%2C4.292%2C3.68%2C5.75l0%2C0c0.615%2C0.575%2C1.393%2C1.038%2C2.128%2C1.461l0%2C0%20%20c1.605-0.229%2C3.084-0.338%2C4.318-0.324l0%2C0c1.637%2C0.021%2C2.838%2C0.265%2C3.324%2C0.743l0%2C0c0.237%2C0.232%2C0.335%2C0.514%2C0.364%2C0.83l0%2C0%20%20c0.007%2C0.122-0.053%2C0.41-0.069%2C0.482l0%2C0c0.018-0.088%2C0.018-0.519-1.298-0.938l0%2C0c-1.033-0.33-2.971-0.32-5.295-0.073l0%2C0%20%20c2.688%2C1.315%2C5.308%2C1.969%2C6.138%2C1.577l0%2C0c0.203-0.1%2C0.448-0.437%2C0.448-0.437l0%2C0c0%2C0-0.146%2C0.665-0.252%2C0.831l0%2C0%20%20c-0.134%2C0.18-0.396%2C0.376-0.646%2C0.44l0%2C0c-1.312%2C0.351-4.722-0.459-7.695-2.158l0%2C0c-3.322%2C0.489-6.972%2C1.394-9.896%2C2.354l0%2C0%20%20c-2.874%2C5.036-5.036%2C7.35-6.793%2C6.47l0%2C0l-0.646-0.325c-0.263-0.149-0.303-0.516-0.242-0.813l0%2C0%20%20c0.205-1.003%2C1.462-2.513%2C3.988-4.021l0%2C0c0.272-0.165%2C1.483-0.805%2C1.483-0.805l0%2C0c0%2C0-0.896%2C0.868-1.106%2C1.038l0%2C0%20%20c-2.016%2C1.652-3.504%2C3.73-3.467%2C4.536l0%2C0l0.007%2C0.069C2.643%2C24.936%2C5.21%2C21.45%2C8.512%2C14.989%20M9.559%2C15.525%20%20c-0.551%2C1.038-1.09%2C2.001-1.588%2C2.886l0%2C0c2.752-1.153%2C5.715-1.892%2C8.535-2.416l0%2C0c-0.379-0.262-0.746-0.539-1.093-0.832l0%2C0%20%20c-1.555-1.313-2.737-2.955-3.596-4.681l0%2C0C11.273%2C11.948%2C10.626%2C13.507%2C9.559%2C15.525%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdfa { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.875%2018.648L11.9617%2018.4783C12.7401%2016.954%2013.6102%2015.2503%2014.312%2013.541L14.6%2012.841C13.65%209.225%2013.08%206.322%2013.589%204.445C13.726%203.956%2014.293%203.659%2014.899%203.659L15.268%203.664H15.336C16.166%203.651%2016.556%204.706%2016.6%205.117C16.673%205.8%2016.357%206.956%2016.357%206.956L16.3571%206.87946C16.358%206.40944%2016.3594%205.70047%2016.081%205.083C15.738%204.33%2015.41%203.879%2015.116%203.808C14.968%203.907%2014.824%204.112%2014.774%204.507C14.671%205.06%2014.641%205.759%2014.641%206.119C14.641%207.391%2014.891%209.071%2015.384%2010.802C15.477%2010.534%2015.558%2010.276%2015.624%2010.035C15.725%209.655%2016.367%207.134%2016.367%207.134C16.367%207.134%2016.205%2010.489%2015.979%2011.505C15.931%2011.72%2015.877%2011.932%2015.821%2012.149C16.633%2014.417%2017.942%2016.441%2019.501%2017.899C19.9467%2018.3157%2020.4779%2018.6735%2021.0164%2019H29C30.1046%2019%2031%2019.8954%2031%2021V29C31%2030.1046%2030.1046%2031%2029%2031H17C15.8954%2031%2015%2030.1046%2015%2029V21.5492C13.6156%2021.9019%2012.2807%2022.2896%2011.07%2022.687C8.19599%2027.724%206.03499%2030.038%204.27699%2029.158L3.62999%2028.833C3.36699%2028.683%203.32699%2028.317%203.38799%2028.02C3.59299%2027.017%204.84999%2025.507%207.37599%2023.999C7.64799%2023.834%208.85899%2023.194%208.85899%2023.194C8.85899%2023.194%207.96299%2024.062%207.75299%2024.232C5.73699%2025.884%204.24899%2027.962%204.28599%2028.768L4.29299%2028.837C6.00499%2028.594%208.57299%2025.109%2011.875%2018.648ZM18.775%2018.822C18.8461%2018.882%2018.918%2018.9413%2018.9906%2019H17C15.9681%2019%2015.1187%2019.7815%2015.0114%2020.785C13.7648%2021.146%2012.529%2021.5689%2011.333%2022.07C11.831%2021.185%2012.37%2020.222%2012.921%2019.184C13.989%2017.166%2014.636%2015.607%2015.18%2014.141C16.038%2015.867%2017.221%2017.508%2018.775%2018.822ZM21.5553%2027.3521H24.4447L24.9995%2029H26.7518L23.7581%2021.002H22.231L19.2537%2029H21.006L21.5553%2027.3521ZM23.9998%2026.0172H22.0002L22.9945%2023.0234L23.9998%2026.0172Z%22%20class%3D%22cls-1%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-xlsx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2263%22%20height%3D%2263%22%20viewBox%3D%2216.287%2032.45%2063.000002%2063%22%20xml%3Aspace%3D%22preserve%22%20%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22m%2053.774%2C43.725%20c%202.825%2C-0.2%205.663%2C-0.375%208.5%2C-0.512%20-3.337%2C6.837%20-6.688%2C13.675%20-10.087%2C20.487%203.438%2C7%206.95%2C13.95%2010.399%2C20.95%20-3.012%2C-0.175%20-6.012%2C-0.362%20-9.024%2C-0.575%20-2.125%2C-5.213%20-4.713%2C-10.25%20-6.237%2C-15.7%20-1.7%2C5.075%20-4.125%2C9.862%20-6.075%2C14.838%20-2.737%2C-0.038%20-5.476%2C-0.15%20-8.213%2C-0.263%203.212%2C-6.287%206.312%2C-12.624%209.624%2C-18.874%20-2.813%2C-6.438%20-5.899%2C-12.75%20-8.8%2C-19.15%202.75%2C-0.163%205.5%2C-0.325%208.25%2C-0.475%201.862%2C4.888%203.9%2C9.712%205.438%2C14.725%201.65%2C-5.313%204.112%2C-10.313%206.225%2C-15.451%20z%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-xltx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%20xml%3Aspace%3D%22preserve%22%20%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3CclipPath%20id%3D%22clip-xltx%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3Cg%20id%3D%22xltx%22%20clip-path%3D%22url(%23clip-xltx)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_19%22%20data-name%3D%22Path%2019%22%20d%3D%22M516.527%2C119.222q2.151-.131%2C4.314-.222-2.54%2C4.455-5.119%2C8.9c1.744%2C3.04%2C3.528%2C6.06%2C5.278%2C9.1-1.528-.076-3.052-.158-4.581-.251a58.98%2C58.98%2C0%2C0%2C1-3.166-6.819c-.862%2C2.2-2.094%2C4.284-3.084%2C6.445-1.389-.017-2.779-.066-4.168-.114%2C1.63-2.732%2C3.2-5.484%2C4.885-8.2-1.428-2.8-2.994-5.54-4.467-8.319q2.095-.106%2C4.188-.206c.945%2C2.123%2C1.98%2C4.218%2C2.76%2C6.4C514.205%2C123.626%2C515.454%2C121.454%2C516.527%2C119.222Z%22%20transform%3D%22translate(-504%20-117)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-ods { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%20-54.11%20193.631%20193.63%22%20height%3D%22193.63px%22%20width%3D%22193.631px%22%20y%3D%220px%22%20x%3D%220px%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M193.16%2C5.615V5.609c-0.334-0.173-0.671-0.334-1.005-0.497%20%20c-5.356-2.586-11.256-4.287-17.525-4.88c-11.083-1.049-21.673%2C1.496-30.622%2C6.678c-6.13-3.477-13.071-5.741-20.542-6.448%20%20c-10.298-0.974-20.17%2C1.16-28.697%2C5.629c-0.084%2C0.044-0.17%2C0.095-0.251%2C0.135c-0.207%2C0.162-0.347%2C0.414-0.347%2C0.697%20%20c0%2C0.492%2C0.392%2C0.89%2C0.889%2C0.89c0.046%2C0%2C0.091-0.007%2C0.139-0.017c0.021-0.002%2C0.042-0.011%2C0.061-0.015%20%20c4.586-0.848%2C9.368-1.088%2C14.243-0.627c13.684%2C1.293%2C25.609%2C5.521%2C33.975%2C15.011c0.437%2C0.455%2C0.822%2C0.427%2C1.266-0.024%20%20c10.523-12.2%2C26.662-17.021%2C44.006-15.382c0.968%2C0.094%2C1.921%2C0.213%2C2.871%2C0.355c0.33%2C0.05%2C0.836%2C0.134%2C1.133%2C0.167%20%20c0.572%2C0.063%2C0.88-0.397%2C0.88-0.891C193.629%2C6.056%2C193.485%2C5.776%2C193.16%2C5.615L193.16%2C5.615z%22%20class%3D%22cls-1%22%20%2F%3E%3Cpath%20d%3D%22M173.054%2C48.544c-0.057-0.028-0.107-0.046-0.154-0.065%20%20c-10.518-4.35-22.021-6.758-34.094-6.758c-19.293%2C0-37.154%2C6.127-51.757%2C16.524c-11.146-4.993-23.497-7.776-36.496-7.776%20%20c-18.485%2C0-35.648%2C5.617-49.895%2C15.237c-0.047%2C0.029-0.095%2C0.066-0.149%2C0.104C0.205%2C66.044%2C0%2C66.418%2C0%2C66.848%20%20c0%2C0.729%2C0.592%2C1.323%2C1.323%2C1.323c0.086%2C0%2C0.174-0.013%2C0.259-0.03c0.058-0.015%2C0.107-0.027%2C0.161-0.048%20%20c8.166-2.456%2C16.832-3.791%2C25.798-3.791c23.836%2C0%2C45.083%2C5.634%2C61.08%2C20.681c0.038%2C0.028%2C0.071%2C0.065%2C0.111%2C0.104%20%20c0.232%2C0.205%2C0.53%2C0.325%2C0.863%2C0.325c0.412%2C0%2C0.774-0.188%2C1.018-0.486c0.006%2C0.005%2C0.515-0.72%2C0.773-1.069%20%20c16.246-22.217%2C43.03-33.172%2C72.845-33.172c2.129%2C0%2C4.246%2C0.08%2C6.338%2C0.225c0.602%2C0.047%2C1.873%2C0.144%2C1.902%2C0.144%20%20c0.727%2C0%2C1.322-0.591%2C1.322-1.323C173.796%2C49.203%2C173.492%2C48.752%2C173.054%2C48.544L173.054%2C48.544z%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-ots { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-ots%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22ots%22%20clip-path%3D%22url(%23clip-ots)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_33%22%20data-name%3D%22Path%2033%22%20d%3D%22M125.173%2C121h0c-.046-.03-.093-.059-.141-.088a6.133%2C6.133%2C0%2C0%2C0-2.467-.869%2C6.014%2C6.014%2C0%2C0%2C0-4.309%2C1.188%2C6.223%2C6.223%2C0%2C0%2C0-2.892-1.147%2C5.965%2C5.965%2C0%2C0%2C0-4.039%2C1l-.036.024a.176.176%2C0%2C0%2C0-.049.125.145.145%2C0%2C0%2C0%2C.126.158l.019%2C0a.019.019%2C0%2C0%2C0%2C.009%2C0%2C5.781%2C5.781%2C0%2C0%2C1%2C2.005-.111%2C6.41%2C6.41%2C0%2C0%2C1%2C4.782%2C2.669c.06.081.115.076.178%2C0a6.288%2C6.288%2C0%2C0%2C1%2C6.194-2.735c.136.017.27.038.4.064.047.009.119.024.161.03.08.011.123-.071.123-.159A.155.155%2C0%2C0%2C0%2C125.173%2C121Z%22%20transform%3D%22translate(-94.24%20-116)%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_34%22%20data-name%3D%22Path%2034%22%20d%3D%22M126.894%2C125.978a.175.175%2C0%2C0%2C0-.022-.011%2C11.686%2C11.686%2C0%2C0%2C0-4.905-1.082%2C11.924%2C11.924%2C0%2C0%2C0-7.444%2C2.647%2C11.725%2C11.725%2C0%2C0%2C0-5.251-1.245%2C11.884%2C11.884%2C0%2C0%2C0-7.176%2C2.441.229.229%2C0%2C0%2C0-.022.016.217.217%2C0%2C0%2C0-.073.167.2.2%2C0%2C0%2C0%2C.191.211.167.167%2C0%2C0%2C0%2C.037%2C0%2C.118.118%2C0%2C0%2C0%2C.023-.008%2C11.679%2C11.679%2C0%2C0%2C1%2C3.71-.608c3.429%2C0%2C6.486.9%2C8.787%2C3.315a.093.093%2C0%2C0%2C1%2C.016.016.172.172%2C0%2C0%2C0%2C.123.052.18.18%2C0%2C0%2C0%2C.147-.078s.075-.115.111-.171a12.1%2C12.1%2C0%2C0%2C1%2C10.479-5.315c.306%2C0%2C.611.014.912.037l.273.022a.2.2%2C0%2C0%2C0%2C.191-.211A.211.211%2C0%2C0%2C0%2C126.894%2C125.978Z%22%20transform%3D%22translate(-100%20-115.885)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-csv { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22%2017H16V18H22V17Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2020H16V21H22V20Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2014H16V15H22V14Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2011H16V12H22V11Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%208H16V9H22V8Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%205H16V6H22V5Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%202H16V3H22V2Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2017H9V18H15V17Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2020H9V21H15V20Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2014H9V15H15V14Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2011H9V12H15V11Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%208H9V9H15V8Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%205H9V6H15V5Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%202H9V3H15V2Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2017H2V18H8V17Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2020H2V21H8V20Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2014H2V15H8V14Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2011H2V12H8V11Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%208H2V9H8V8Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%205H2V6H8V5Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%202H2V3H8V2Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-users { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%207C16%209.34102%2015.4162%2011.1346%2014.6143%2012.3121C13.8071%2013.4974%2012.8337%2014%2012%2014C11.1663%2014%2010.1929%2013.4974%209.38574%2012.3121C8.5838%2011.1346%208%209.34102%208%207C8%204.61508%209.97853%203%2012%203C14.0215%203%2016%204.61508%2016%207ZM15.1891%2013.2201C14.2865%2014.375%2013.1451%2015%2012%2015C10.8549%2015%209.71347%2014.375%208.81092%2013.2201C7.40473%2013.7844%206.21268%2014.3488%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.7873%2014.3488%2016.5953%2013.7844%2015.1891%2013.2201ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-app-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2014H16C18.2091%2014%2020%2015.7909%2020%2018C20%2020.2091%2018.2091%2022%2016%2022H7C4.79086%2022%203%2020.2091%203%2018C3%2015.7909%204.79086%2014%207%2014ZM16%2013C18.7614%2013%2021%2015.2386%2021%2018C21%2020.7614%2018.7614%2023%2016%2023H7C4.23858%2023%202%2020.7614%202%2018C2%2015.2386%204.23858%2013%207%2013H16Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2020C14.8954%2020%2014%2019.1046%2014%2018C14%2016.8954%2014.8954%2016%2016%2016C17.1046%2016%2018%2016.8954%2018%2018C18%2019.1046%2017.1046%2020%2016%2020ZM16%2021C14.3431%2021%2013%2019.6569%2013%2018C13%2016.3431%2014.3431%2015%2016%2015C17.6569%2015%2019%2016.3431%2019%2018C19%2019.6569%2017.6569%2021%2016%2021Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%203H7C4.79086%203%203%204.79086%203%207C3%209.20914%204.79086%2011%207%2011H16C18.2091%2011%2020%209.20914%2020%207C20%204.79086%2018.2091%203%2016%203ZM7%202C4.23858%202%202%204.23858%202%207C2%209.76142%204.23858%2012%207%2012H16C18.7614%2012%2021%209.76142%2021%207C21%204.23858%2018.7614%202%2016%202H7Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%209C8.10457%209%209%208.10457%209%207C9%205.89543%208.10457%205%207%205C5.89543%205%205%205.89543%205%207C5%208.10457%205.89543%209%207%209ZM7%2010C8.65685%2010%2010%208.65685%2010%207C10%205.34315%208.65685%204%207%204C5.34315%204%204%205.34315%204%207C4%208.65685%205.34315%2010%207%2010Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%20%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M1%202H22V21H1V2ZM12%203H21V8H12V3ZM12%209H21V14H12V9ZM11%2014V9H2V14H11ZM2%2015V20H11V15H2ZM12%2015H21V20H12V15ZM11%203V8H2V3H11Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-cut { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23cut)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.22427%2022.2702C4.51527%2023.1269%206.52738%2022.7183%207.6592%2021.0127C8.79101%2019.3071%208.38572%2017.2943%207.09472%2016.4376C5.80372%2015.5809%203.79161%2015.9896%202.65979%2017.6952C1.52798%2019.4008%201.93328%2021.4136%203.22427%2022.2702ZM2.67135%2023.1035C4.51208%2024.325%207.11827%2023.6364%208.49243%2021.5656C9.8666%2019.4948%209.48837%2016.8259%207.64764%2015.6044C5.80691%2014.3829%203.20072%2015.0714%201.82656%2017.1422C0.452398%2019.2131%200.830625%2021.882%202.67135%2023.1035Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.9158%2022.2702C19.6248%2023.1269%2017.6127%2022.7183%2016.4809%2021.0127C15.349%2019.3071%2015.7543%2017.2943%2017.0453%2016.4376C18.3363%2015.5809%2020.3484%2015.9896%2021.4803%2017.6952C22.6121%2019.4008%2022.2068%2021.4136%2020.9158%2022.2702ZM21.4687%2023.1035C19.628%2024.325%2017.0218%2023.6364%2015.6476%2021.5656C14.2735%2019.4948%2014.6517%2016.8259%2016.4924%2015.6044C18.3331%2014.3829%2020.9393%2015.0714%2022.3135%2017.1422C23.6877%2019.2131%2023.3094%2021.882%2021.4687%2023.1035Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M16.4924%2015.6044L13.9037%2012.4737L19.9552%200.675715C20.0693%200.446914%2019.9552%200.172352%2019.727%200.0808313C19.4416%20-0.0106892%2019.0993%200.0808312%2018.9851%200.263872L12.0233%2011.4212L5.17562%200.263872C5.06149%200.035071%204.71911%20-0.0564496%204.43379%200.035071C4.14847%200.126592%204.03434%200.401153%204.14847%200.629955L10.2001%2012.4279L7.64761%2015.6044L9.2292%2018L12.0233%2013.4804L14.9108%2018L16.4924%2015.6044Z%22%20fill%3D%22white%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22cut%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-copy { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201H15V7H16V0H0V17H8V16H1V1Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M23%208H9V23H23V8ZM8%207V24H24V7H8Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13%205H3V4H13V5Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%209H3V8H8V9Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%2013H3V12H8V13Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H11V11H21V12Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H11V15H21V16Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H11V19H21V20Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-paste { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-menu-comment { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M10%2015C10%2016.6569%208.65685%2018%207%2018C5.34315%2018%204%2016.6569%204%2015C4%2013.3431%205.34315%2012%207%2012C8.65685%2012%2010%2013.3431%2010%2015ZM7%2016.7143C7.94677%2016.7143%208.71429%2015.9468%208.71429%2015C8.71429%2014.0532%207.94677%2013.2857%207%2013.2857C6.05323%2013.2857%205.28571%2014.0532%205.28571%2015C5.28571%2015.9468%206.05323%2016.7143%207%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%2015C18%2016.6569%2016.6569%2018%2015%2018C13.3431%2018%2012%2016.6569%2012%2015C12%2013.3431%2013.3431%2012%2015%2012C16.6569%2012%2018%2013.3431%2018%2015ZM15%2016.7143C15.9468%2016.7143%2016.7143%2015.9468%2016.7143%2015C16.7143%2014.0532%2015.9468%2013.2857%2015%2013.2857C14.0532%2013.2857%2013.2857%2014.0532%2013.2857%2015C13.2857%2015.9468%2014.0532%2016.7143%2015%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M26%2015C26%2016.6569%2024.6569%2018%2023%2018C21.3431%2018%2020%2016.6569%2020%2015C20%2013.3431%2021.3431%2012%2023%2012C24.6569%2012%2026%2013.3431%2026%2015ZM23%2016.7143C23.9468%2016.7143%2024.7143%2015.9468%2024.7143%2015C24.7143%2014.0532%2023.9468%2013.2857%2023%2013.2857C22.0532%2013.2857%2021.2857%2014.0532%2021.2857%2015C21.2857%2015.9468%2022.0532%2016.7143%2023%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81574%2014.7407%207.34084%2014.7345%207.04258%2015.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment.check { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%200H30V30H0V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545V8.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81575%2014.7407%207.34084%2014.7345%207.04258%2015.0228V15.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%234cd964%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insert-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.1538%209.00708H11.8462C10.8266%209.00708%2010%209.83461%2010%2010.8554V15.1694C10%2016.1902%2010.8266%2017.0177%2011.8462%2017.0177H13.8329C13.9409%2017.0177%2014.0454%2017.0556%2014.1284%2017.1248L18.243%2020.392C18.5436%2020.6428%2019%2020.4288%2019%2020.037V17.4798C19%2017.2246%2019.2066%2017.0177%2019.4615%2017.0177H20.1538C21.1734%2017.0177%2022%2016.1902%2022%2015.1694V10.8554C22%209.83461%2021.1734%209.00708%2020.1538%209.00708ZM20%2010.0083C20.5523%2010.0083%2021%2010.4565%2021%2011.0095V15.0154C21%2015.5683%2020.5523%2016.0165%2020%2016.0165H18.0025L18%2018.8995C18%2019.2912%2018%2019%2018%2019L14.5%2016.0165H12C11.4477%2016.0165%2011%2015.5683%2011%2015.0154V11.0095C11%2010.4565%2011.4477%2010.0083%2012%2010.0083H20Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M14.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V12.0346C2%2013.3222%203.18908%2014.013%204.5%2014.013H5.5C5.82773%2014.013%206%2014.1917%206%2014.5136V17.5183C6%2018.0125%206.6135%2018.3352%207%2018.0189L11%2014.9858V13.5L7%2016.5V13.0118H4.5C3.78992%2013.0118%203%2012.732%203%2012.0346V5.50295C3%204.80547%203.78992%204.00118%204.5%204.00118H14.5C15.2101%204.00118%2016%204.80547%2016%205.50295V8.0059H17V5.50295C17%204.2153%2015.8109%203%2014.5%203Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-chart { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20%205H16V20H20V5ZM10%2011H14V20H10V11ZM4%2014H8V20H4V14Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-formula { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%205H19V9.11765H16.375V7.47059H8.9375L11.5625%2012L8.9375%2016.5294H16.375V14.8824H19V19H5V17.7647L8.5%2012L5%206.23529V5Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-horizontal { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M9.51367%2010.75H11.269L8.06905%202H6.36276L3.25%2010.75H4.96174L5.62136%208.76245H8.81589L9.51367%2010.75ZM7.19682%204.04127L8.29801%207.2882H6.11744L7.19682%204.04127ZM16.0002%202H12.8057V10.75H15.5259C16.5544%2010.742%2017.2031%2010.7221%2017.4721%2010.6903C17.9009%2010.6386%2018.2607%2010.5013%2018.5515%2010.2785C18.8458%2010.0517%2019.0766%209.75125%2019.2438%209.37722C19.4146%208.9992%2019.5%208.61124%2019.5%208.21334C19.5%207.70799%2019.3692%207.2683%2019.1075%206.89427C18.8458%206.52024%2018.4715%206.25563%2017.9845%206.10044C18.3298%205.92934%2018.6023%205.67269%2018.8022%205.33049C19.0057%204.98829%2019.1075%204.61227%2019.1075%204.20242C19.1075%203.82441%2019.0257%203.4842%2018.8622%203.18179C18.6986%202.8754%2018.4933%202.63068%2018.2462%202.44765C18.0027%202.26461%2017.7247%202.14524%2017.4121%202.08953C17.1032%202.02984%2016.6326%202%2016.0002%202ZM14.4193%205.47971L14.4193%203.45634L15.346%203.45634C16.1056%203.45634%2016.5653%203.46629%2016.7252%203.48619C16.9942%203.522%2017.1959%203.62545%2017.3303%203.79656C17.4684%203.96368%2017.5375%204.18253%2017.5375%204.4531C17.5375%204.73562%2017.4575%204.96442%2017.2976%205.1395C17.1414%205.3106%2016.9251%205.41405%2016.6489%205.44986C16.4963%205.46976%2016.1056%205.47971%2015.4769%205.47971H14.4193ZM14.4193%209.27575V6.93605H15.7222C16.4563%206.93605%2016.9324%206.97783%2017.1504%207.06139C17.3721%207.14495%2017.5411%207.27825%2017.6574%207.46129C17.7737%207.64433%2017.8319%207.86716%2017.8319%208.12977C17.8319%208.44014%2017.7555%208.68884%2017.6029%208.87585C17.4539%209.05889%2017.2595%209.17428%2017.0196%209.22203C16.8633%209.25784%2016.4945%209.27575%2015.913%209.27575H14.4193ZM17.9829%2013.25L21.5023%2017.0829L22%2017.625L21.5023%2018.1671L17.9829%2022L16.9875%2020.9159L19.3053%2018.3916H2V16.8584H19.3053L16.9875%2014.3341L17.9829%2013.25Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-anglecount { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M22%208.71927H16.3964V10.0783L19.7586%2010.0783L8.55143%2020.9162L9.67214%2022L20.597%2011.1439V14.4301L22%2014.4301V8.71927Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M10.6577%2011.3859L9.54484%2012.462L7.84242%2011.6713L5.81718%2013.6298L6.65905%2015.2527L5.57385%2016.3022L2%209.02933L3.08174%207.98323L10.6577%2011.3859ZM6.57946%2011.085L3.82288%209.76944L5.19705%2012.4218L6.57946%2011.085Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M6.08463%205.07929L8.10987%203.12078C8.51077%202.73309%208.82806%202.46285%209.06174%202.31005C9.2952%202.15259%209.54714%202.05532%209.81755%202.01826C10.0903%201.97896%2010.3756%202.0031%2010.6735%202.09068C10.9689%202.17582%2011.2364%202.33426%2011.4761%202.56602C11.7359%202.81728%2011.9098%203.1102%2011.9977%203.44478C12.0879%203.77712%2012.0778%204.10158%2011.9674%204.41815C12.3746%204.21472%2012.7796%204.14745%2013.1826%204.21634C13.5857%204.28523%2013.9473%204.47458%2014.2677%204.7844C14.52%205.02835%2014.7118%205.31856%2014.8432%205.65504C14.9743%205.98684%2015.0185%206.31251%2014.9756%206.63204C14.9326%206.9469%2014.7915%207.25165%2014.5524%207.54628C14.4021%207.73067%2014.0034%208.14059%2013.3564%208.77602L11.6319%2010.4438L6.08463%205.07929ZM8.03089%204.98287L9.31365%206.22336L9.98412%205.57498C10.3827%205.18952%2010.6241%204.94389%2010.7083%204.83812C10.8607%204.64682%2010.9322%204.45082%2010.9228%204.25012C10.9131%204.04474%2010.8188%203.85545%2010.6397%203.68225C10.4681%203.51636%2010.2856%203.42452%2010.0921%203.40673C9.89838%203.38427%209.70492%203.44451%209.51172%203.58743C9.39773%203.67327%209.09996%203.94903%208.61842%204.4147L8.03089%204.98287ZM10.2369%207.11622L11.7202%208.55065L12.6672%207.63489C13.0358%207.2784%2013.2583%207.04126%2013.3347%206.9235C13.4565%206.74717%2013.5066%206.55722%2013.485%206.35365C13.4632%206.14541%2013.354%205.94616%2013.1572%205.75587C12.9907%205.59487%2012.8126%205.4939%2012.6228%205.45299C12.433%205.41207%2012.2414%205.43395%2012.0479%205.51864C11.8567%205.60109%2011.5283%205.86736%2011.0629%206.31744L10.2369%207.11622Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-angleclock { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.2807%2022L15.2807%2016.3964L13.9217%2016.3964L13.9217%2019.7586L3.08379%208.55143L2%209.67214L12.8561%2020.597L9.56995%2020.597L9.56994%2022L15.2807%2022Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M12.6141%2010.6577L11.538%209.54484L12.3287%207.84242L10.3702%205.81718L8.74726%206.65905L7.69782%205.57385L14.9707%202L16.0168%203.08174L12.6141%2010.6577ZM12.915%206.57946L14.2306%203.82288L11.5782%205.19705L12.915%206.57946Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M18.9207%206.08463L20.8792%208.10987C21.2669%208.51077%2021.5372%208.82806%2021.6899%209.06174C21.8474%209.2952%2021.9447%209.54714%2021.9817%209.81755C22.021%2010.0903%2021.9969%2010.3756%2021.9093%2010.6735C21.8242%2010.9689%2021.6657%2011.2364%2021.434%2011.4761C21.1827%2011.7359%2020.8898%2011.9098%2020.5552%2011.9977C20.2229%2012.0879%2019.8984%2012.0778%2019.5819%2011.9674C19.7853%2012.3746%2019.8525%2012.7796%2019.7837%2013.1826C19.7148%2013.5857%2019.5254%2013.9473%2019.2156%2014.2677C18.9716%2014.52%2018.6814%2014.7118%2018.345%2014.8432C18.0132%2014.9743%2017.6875%2015.0185%2017.368%2014.9756C17.0531%2014.9326%2016.7484%2014.7915%2016.4537%2014.5524C16.2693%2014.4021%2015.8594%2014.0034%2015.224%2013.3564L13.5562%2011.6319L18.9207%206.08463ZM19.0171%208.03089L17.7766%209.31365L18.425%209.98412C18.8105%2010.3827%2019.0561%2010.6241%2019.1619%2010.7083C19.3532%2010.8607%2019.5492%2010.9322%2019.7499%2010.9228C19.9553%2010.9131%2020.1445%2010.8188%2020.3178%2010.6397C20.4836%2010.4681%2020.5755%2010.2856%2020.5933%2010.0921C20.6157%209.89838%2020.5555%209.70492%2020.4126%209.51172C20.3267%209.39773%2020.051%209.09996%2019.5853%208.61842L19.0171%208.03089ZM16.8838%2010.2369L15.4494%2011.7202L16.3651%2012.6672C16.7216%2013.0358%2016.9587%2013.2583%2017.0765%2013.3347C17.2528%2013.4565%2017.4428%2013.5066%2017.6463%2013.485C17.8546%2013.4632%2018.0538%2013.354%2018.2441%2013.1572C18.4051%2012.9907%2018.5061%2012.8126%2018.547%2012.6228C18.5879%2012.433%2018.566%2012.2414%2018.4814%2012.0479C18.3989%2011.8567%2018.1326%2011.5283%2017.6826%2011.0629L16.8838%2010.2369Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-vertical { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.10359%2022.0648L11.0819%2018.5454L9.95669%2017.55L7.33664%2019.8678L7.33664%201.9375L5.7453%201.9375L5.7453%2019.8678L3.12525%2017.55L2%2018.5454L5.97834%2022.0648L6.54097%2022.5625L7.10359%2022.0648Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M14.513%2013.1875L17.8287%2013.1875C18.4851%2013.1875%2018.9736%2013.2173%2019.2942%2013.277C19.6186%2013.3327%2019.9072%2013.4521%2020.1599%2013.6351C20.4164%2013.8182%2020.6295%2014.0629%2020.7993%2014.3693C20.969%2014.6717%2021.0539%2015.0119%2021.0539%2015.3899C21.0539%2015.7998%2020.9483%2016.1758%2020.737%2016.518C20.5296%2016.8602%2020.2467%2017.1168%2019.8883%2017.2879C20.3938%2017.4431%2020.7823%2017.7077%2021.0539%2018.0818C21.3255%2018.4558%2021.4613%2018.8955%2021.4613%2019.4008C21.4613%2019.7987%2021.3726%2020.1867%2021.1954%2020.5647C21.0218%2020.9387%2020.7823%2021.2392%2020.4768%2021.466C20.175%2021.6888%2019.8015%2021.8261%2019.3564%2021.8778C19.0773%2021.9096%2018.404%2021.9295%2017.3365%2021.9375L14.513%2021.9375L14.513%2013.1875ZM16.1878%2014.6438L16.1878%2016.6672L17.2855%2016.6672C17.9381%2016.6672%2018.3436%2016.6573%2018.502%2016.6374C18.7887%2016.6016%2019.0132%2016.4981%2019.1754%2016.327C19.3413%2016.1519%2019.4243%2015.9231%2019.4243%2015.6406C19.4243%2015.37%2019.3527%2015.1512%2019.2093%2014.9841C19.0697%2014.813%2018.8604%2014.7095%2018.5813%2014.6737C18.4153%2014.6538%2017.9381%2014.6438%2017.1497%2014.6438L16.1878%2014.6438ZM16.1878%2018.1235L16.1878%2020.4632L17.7382%2020.4632C18.3417%2020.4632%2018.7246%2020.4453%2018.8868%2020.4095C19.1358%2020.3618%2019.3376%2020.2464%2019.4922%2020.0634C19.6507%2019.8763%2019.7299%2019.6276%2019.7299%2019.3173C19.7299%2019.0547%2019.6695%2018.8318%2019.5488%2018.6488C19.4281%2018.4658%2019.2527%2018.3325%2019.0226%2018.2489C18.7963%2018.1653%2018.3021%2018.1235%2017.5401%2018.1235L16.1878%2018.1235Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2010.6875L20.1781%2010.6875L19.4538%208.69995L16.1381%208.69995L15.4534%2010.6875L13.6768%2010.6875L16.9076%201.9375L18.6786%201.9375L22%2010.6875ZM18.9163%207.2257L17.7733%203.97877L16.653%207.2257L18.9163%207.2257Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-rotateup { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.9142%202.48263L2%205.89535L3.1071%206.86061L5.68491%204.61307L5.68491%2022L7.25059%2022L7.25059%204.61307L9.82839%206.86061L10.9355%205.89535L7.0213%202.48263L6.46775%202L5.9142%202.48263Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M21.9277%2012.5942L21.8993%2014.2496L19.9679%2014.9391L19.9162%2017.9517L21.8256%2018.5424L21.7979%2020.1567L13.3952%2017.3594L13.4228%2015.7502L21.9277%2012.5942ZM18.5353%2015.4508L15.3807%2016.5406L18.5%2017.5072L18.5353%2015.4508Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M13.4994%2011.0787L13.5511%208.06604C13.5614%207.46968%2013.5978%207.02537%2013.6605%206.7331C13.7194%206.43747%2013.8392%206.1734%2014.0199%205.94087C14.2008%205.70492%2014.4405%205.50741%2014.7391%205.34834C15.0339%205.18933%2015.3639%205.10684%2015.7291%205.10087C16.1251%205.0944%2016.4867%205.18442%2016.814%205.37095C17.1413%205.55405%2017.3849%205.80704%2017.5446%206.12994C17.7024%205.66822%2017.9641%205.31103%2018.3296%205.05835C18.6952%204.80567%2019.1221%204.67534%2019.6103%204.66736C19.9947%204.66107%2020.3681%204.73549%2020.7306%204.8906C21.0892%205.04235%2021.3757%205.25524%2021.59%205.52927C21.8006%205.79994%2021.9274%206.13708%2021.9704%206.54069C21.9968%206.79381%2022.0056%207.40527%2021.9966%208.37509V11.0787H13.4994ZM14.9325%209.53393L16.8872%209.50197L16.9043%208.50461C16.9145%207.91168%2016.9112%207.5434%2016.8945%207.39976C16.8643%207.13985%2016.7679%206.93756%2016.6051%206.79289C16.4386%206.64485%2016.2188%206.57306%2015.9459%206.57752C15.6845%206.5818%2015.472%206.65037%2015.3083%206.78325C15.1408%206.91277%2015.0376%207.10462%2014.9986%207.35881C14.9768%207.50993%2014.9598%207.94364%2014.9475%208.65996L14.9325%209.53393ZM18.2941%209.47896L20.5545%209.442L20.5786%208.03336C20.588%207.48499%2020.5767%207.1374%2020.5446%206.99059C20.5024%206.76514%2020.3941%206.58359%2020.2196%206.44597C20.0414%206.30497%2019.8024%206.23693%2019.5026%206.24183C19.2489%206.24598%2019.0327%206.30434%2018.854%206.4169C18.6753%206.52947%2018.5437%206.69095%2018.4594%206.90133C18.3752%207.10829%2018.3271%207.55794%2018.3152%208.25026L18.2941%209.47896Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-rotatedown { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.0213%2021.5174L10.9355%2018.1047L9.82839%2017.1394L7.25058%2019.3869L7.25059%202L5.68491%202L5.68491%2019.3869L3.1071%2017.1394L2%2018.1047L5.91419%2021.5174L6.46774%2022L7.0213%2021.5174Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M13.4675%2011.4058L13.4959%209.75035L15.4273%209.06091L15.479%206.04827L13.5695%205.45761L13.5972%203.84333L22%206.64062L21.9724%208.24976L13.4675%2011.4058ZM16.8599%208.54922L20.0145%207.45944L16.8952%206.49282L16.8599%208.54922Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M21.8957%2012.9213L21.844%2015.934C21.8338%2016.5303%2021.7974%2016.9746%2021.7347%2017.2669C21.6758%2017.5625%2021.556%2017.8266%2021.3752%2018.0591C21.1944%2018.2951%2020.9547%2018.4926%2020.656%2018.6517C20.3612%2018.8107%2020.0312%2018.8932%2019.6661%2018.8991C19.2701%2018.9056%2018.9085%2018.8156%2018.5812%2018.6291C18.2538%2018.446%2018.0103%2018.193%2017.8506%2017.8701C17.6928%2018.3318%2017.4311%2018.689%2017.0655%2018.9417C16.7%2019.1943%2016.2731%2019.3247%2015.7849%2019.3326C15.4005%2019.3389%2015.0271%2019.2645%2014.6646%2019.1094C14.306%2018.9577%2014.0195%2018.7448%2013.8051%2018.4707C13.5946%2018.2001%2013.4678%2017.8629%2013.4248%2017.4593C13.3984%2017.2062%2013.3896%2016.5947%2013.3986%2015.6249L13.3986%2012.9213L21.8957%2012.9213ZM20.4627%2014.4661L18.508%2014.498L18.4909%2015.4954C18.4807%2016.0883%2018.484%2016.4566%2018.5007%2016.6002C18.5309%2016.8601%2018.6273%2017.0624%2018.7901%2017.2071C18.9566%2017.3552%2019.1764%2017.4269%2019.4493%2017.4225C19.7107%2017.4182%2019.9232%2017.3496%2020.0869%2017.2167C20.2544%2017.0872%2020.3576%2016.8954%2020.3965%2016.6412C20.4184%2016.4901%2020.4354%2016.0564%2020.4477%2015.34L20.4627%2014.4661ZM17.101%2014.521L14.8407%2014.558L14.8166%2015.9666C14.8071%2016.515%2014.8185%2016.8626%2014.8505%2017.0094C14.8928%2017.2349%2015.0011%2017.4164%2015.1755%2017.554C15.3537%2017.695%2015.5928%2017.7631%2015.8926%2017.7582C16.1463%2017.754%2016.3625%2017.6957%2016.5412%2017.5831C16.7199%2017.4705%2016.8514%2017.3091%2016.9358%2017.0987C17.02%2016.8917%2017.0681%2016.4421%2017.08%2015.7497L17.101%2014.521Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-chart { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20%205H16V20H20V5ZM10%2011H14V20H10V11ZM4%2014H8V20H4V14Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-formula { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%205H19V9.11765H16.375V7.47059H8.9375L11.5625%2012L8.9375%2016.5294H16.375V14.8824H19V19H5V17.7647L8.5%2012L5%206.23529V5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.active i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); -} -.chart-types .thumb.bar-normal { - background-image: url('../img/charts/chart-03.png'); -} -.chart-types .thumb.bar-stacked { - background-image: url('../img/charts/chart-02.png'); -} -.chart-types .thumb.bar-pstacked { - background-image: url('../img/charts/chart-01.png'); -} -.chart-types .thumb.line-normal { - background-image: url('../img/charts/chart-06.png'); -} -.chart-types .thumb.line-stacked { - background-image: url('../img/charts/chart-05.png'); -} -.chart-types .thumb.line-pstacked { - background-image: url('../img/charts/chart-04.png'); -} -.chart-types .thumb.hbar-normal { - background-image: url('../img/charts/chart-09.png'); -} -.chart-types .thumb.hbar-stacked { - background-image: url('../img/charts/chart-08.png'); -} -.chart-types .thumb.hbar-pstacked { - background-image: url('../img/charts/chart-07.png'); -} -.chart-types .thumb.area-normal { - background-image: url('../img/charts/chart-12.png'); -} -.chart-types .thumb.area-stacked { - background-image: url('../img/charts/chart-11.png'); -} -.chart-types .thumb.area-pstacked { - background-image: url('../img/charts/chart-10.png'); -} -.chart-types .thumb.pie { - background-image: url('../img/charts/chart-13.png'); -} -.chart-types .thumb.doughnut { - background-image: url('../img/charts/chart-14.png'); -} -.chart-types .thumb.pie3d { - background-image: url('../img/charts/chart-22.png'); -} -.chart-types .thumb.scatter { - background-image: url('../img/charts/chart-15.png'); -} -.chart-types .thumb.stock { - background-image: url('../img/charts/chart-16.png'); -} -.chart-types .thumb.line3d { - background-image: url('../img/charts/chart-21.png'); -} -.chart-types .thumb.bar3dnormal { - background-image: url('../img/charts/chart-17.png'); -} -.chart-types .thumb.bar3dstack { - background-image: url('../img/charts/chart-18.png'); -} -.chart-types .thumb.bar3dpstack { - background-image: url('../img/charts/chart-19.png'); -} -.chart-types .thumb.hbar3dnormal { - background-image: url('../img/charts/chart-25.png'); -} -.chart-types .thumb.hbar3dstack { - background-image: url('../img/charts/chart-24.png'); -} -.chart-types .thumb.hbar3dpstack { - background-image: url('../img/charts/chart-23.png'); -} -.chart-types .thumb.bar3dpsnormal { - background-image: url('../img/charts/chart-20.png'); -} -[applang=ru] i.icon.sortdown { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%3C%2Fstyle%3E%3Cpath%20d%3D%22M18.9348%2011H20L17.0016%203H15.9984L13%2011H14.0652L14.8824%208.71033H18.1176L18.9348%2011ZM16.4831%204.21414H16.5169L17.8188%207.86209H15.1812L16.4831%204.21414Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.0018%2017.0249V13.8981H16.2384C15.6654%2013.8981%2015.2218%2014.033%2014.9076%2014.3028C14.597%2014.5726%2014.4418%2014.957%2014.4418%2015.456C14.4418%2015.9587%2014.597%2016.3467%2014.9076%2016.6202C15.2218%2016.89%2015.6654%2017.0249%2016.2384%2017.0249H18.0018ZM16.3937%2017.9231L14.1867%2021H13L15.2957%2017.8011C14.7264%2017.6681%2014.2699%2017.3927%2013.9261%2016.9751C13.586%2016.5537%2013.4159%2016.0474%2013.4159%2015.456C13.4159%2014.7316%2013.6543%2014.1421%2014.1312%2013.6875C14.6118%2013.2292%2015.2274%2013%2015.9778%2013H19V21H18.0018V17.9231H16.3937Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -[applang=ru] i.icon.sortup { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.9348%2021H20L17.0016%2013H15.9984L13%2021H14.0652L14.8824%2018.7103H18.1176L18.9348%2021ZM16.4831%2014.2141H16.5169L17.8188%2017.8621H15.1812L16.4831%2014.2141Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.0018%207.02495V3.89813H16.2384C15.6654%203.89813%2015.2218%204.03303%2014.9076%204.30284C14.597%204.57265%2014.4418%204.95703%2014.4418%205.45599C14.4418%205.95865%2014.597%206.34673%2014.9076%206.62024C15.2218%206.89004%2015.6654%207.02495%2016.2384%207.02495H18.0018ZM16.3937%207.92308L14.1867%2011H13L15.2957%207.80111C14.7264%207.66805%2014.2699%207.3927%2013.9261%206.97505C13.586%206.55371%2013.4159%206.04736%2013.4159%205.45599C13.4159%204.73158%2013.6543%204.14207%2014.1312%203.68746C14.6118%203.22915%2015.2274%203%2015.9778%203H19V11H18.0018V7.92308H16.3937Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar-hidden + .navbar-through > .page.editor { - padding-top: 0; -} -.navbar-through > .page.editor { - padding-top: 44px; - transition: padding-top 400ms ease-in; -} -.navbar-through .page > .searchbar { - top: 74px; -} -.navbar-through .page #cell-editing-box.expanded + .searchbar { - top: 114px; -} -.flex-horizontal { - display: flex; - flex-direction: column; - align-items: stretch; -} -.flex-vertical { - display: flex; - flex-direction: row; - align-items: stretch; -} -.small-picker .picker-item { - font-size: 14px; - padding: 0; -} -#cell-editing-box { - box-sizing: border-box; - position: relative; - height: 30px; - min-height: 30px; - transition: min-height 0.1s; - background-color: #fff; - display: flex; - z-index: 500; -} -#cell-editing-box * { - box-sizing: border-box; -} -#cell-editing-box:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 #cell-editing-box:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 #cell-editing-box:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -#cell-editing-box.expanded { - min-height: 70px; - transition: min-height 0.1s; -} -#cell-editing-box .btn { - border: 0 none; - height: 30px; -} -#cell-editing-box .ce-group { - overflow: hidden; - height: 100%; - position: relative; -} -#cell-editing-box .group-name { - display: inline-flex; - background-color: #f1f1f1; - z-index: 1; -} -#cell-editing-box .group-content { - position: relative; - padding-left: 1px; - flex-grow: 1; -} -#cell-editing-box .group-content:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - width: 1px; - height: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 0% 50%; - transform-origin: 0% 50%; -} -html.pixel-ratio-2 #cell-editing-box .group-content:before { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 #cell-editing-box .group-content:before { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -#cell-editing-box .group-name, -#cell-editing-box .group-content, -#cell-editing-box .group-expand { - z-index: 1; -} -#cell-editing-box .group-functions-list { - position: absolute; - height: 30px; -} -#cell-editing-box #ce-cell-name { - display: inline-block; - width: 90px; - padding: 0 4px; - border: 0 none; - line-height: 30px; - text-align: center; -} -#cell-editing-box #ce-cell-name[disabled] { - color: #848484; - opacity: 0.5; -} -#cell-editing-box #ce-function { - height: 30px; - line-height: 30px; - padding: 0 10px; -} -#cell-editing-box #ce-btn-expand { - width: 30px; - background-color: #fff; - padding: 0 2px 0; -} -#cell-editing-box #ce-btn-expand .caret { - display: block; - transition: transform 0.1s ease; - width: 16px; - height: 16px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000%22%3E%3Cg%3E%3Cpath%20d%3D%22M20.5%2C6.5l1.1%2C1.1L11%2C18l0%2C0l0%2C0L0.5%2C7.5l1.1-1.1l9.5%2C9.5L20.5%2C6.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -#cell-editing-box #ce-btn-expand.collapse .caret { - transform: rotate(180deg); -} -#cell-editing-box #ce-cell-content { - display: block; - width: 100%; - padding: 3px 3px; - line-height: 1.428571429; - color: #000; - vertical-align: middle; - background-color: #fff; - height: 100%; - resize: none; - min-height: 30px; - border: 0 none; - font-size: 16px; -} -#cell-editing-box #ce-cell-content[disabled] { - color: #848484; - opacity: 0.5; -} -#cell-editing-box #ce-cell-name, -#cell-editing-box #ce-cell-content { - border-radius: 0; -} -#cell-editing-box.expanded .group-functions-list.opened { - top: 70px; -} -.group-functions-list { - width: 100%; - background-color: #fff; - top: 0; - transition: top .2s; -} -.group-functions-list:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .group-functions-list:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .group-functions-list:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.group-functions-list.opened { - top: 30px; -} -.group-functions-list:not(.opened) { - display: none; -} -.group-functions-list ul { - white-space: nowrap; - overflow: hidden; - padding: 0; - margin: 0; -} -.group-functions-list ul > li { - display: inline-block; -} -.group-functions-list ul > li > a { - line-height: 30px; - padding: 0 8px 0; -} -.phone #cell-editing-box #ce-cell-name { - display: none; -} -.statusbar { - position: relative; - box-sizing: border-box; - background-color: #f1f1f1; - z-index: 11; - height: 30px; - min-height: 30px; -} -.statusbar * { - box-sizing: border-box; -} -.statusbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #cbcbcb; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .statusbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .statusbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.statusbar #box-addtab { - float: left; -} -.statusbar .button { - border: 0 none; - border-radius: 0; - color: #000; - font-size: 18px; - line-height: inherit; - min-width: 48px; -} -.statusbar .button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: #cbcbcb; - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .statusbar .button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .statusbar .button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.statusbar i.icon { - width: 22px; - height: 22px; -} -.statusbar i.icon.icon-plus { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C12H12v10h-1V12H1v-1h10V1h1v10h10V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.box-tabs ul { - margin: 0; - padding: 0; - white-space: pre; - overflow: hidden; -} -.box-tabs ul > li { - list-style: none; - display: inline-block; - position: relative; -} -.box-tabs ul > li:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: #cbcbcb; - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .box-tabs ul > li:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .box-tabs ul > li:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.box-tabs ul > li:not(.active) a { - opacity: 0.5; -} -.box-tabs ul > li a { - display: inline-block; - font-size: 12px; - padding: 0 10px 0; - line-height: 30px; - margin-right: -1px; - outline: none; - color: #000; - height: 100%; -} -.box-tabs ul > li a:hover { - cursor: pointer; -} -.box-tabs .locked a { - box-shadow: inset 0 2px #f00; -} -.tablet .searchbar.document.replace .center .searchbar:first-child { - margin-right: 10px; -} -.tablet .searchbar.document.replace .center .replace { - display: flex; -} -.tablet .searchbar.document.replace .right .replace { - display: flex; - margin: 0 10px; -} -.tablet .searchbar.document .center { - width: 100%; -} -.tablet .searchbar.document .center .searchbar { - background: inherit; - padding: 0; -} -.tablet .searchbar.document .center .replace { - display: none; -} -.tablet .searchbar.document .right .prev { - margin-left: 0; -} -.tablet .searchbar.document .right .replace { - display: none; -} -.phone .searchbar.document.replace { - height: 88px; -} -.phone .searchbar.document.replace .left { - margin-top: -74 px; -} -.phone .searchbar.document.replace .center .searchbar-input { - margin: 8px 0; -} -.phone .searchbar.document.replace .center .replace { - display: block; -} -.phone .searchbar.document.replace .right > .replace { - display: flex; -} -.phone .searchbar.document .left, -.phone .searchbar.document .center, -.phone .searchbar.document .right { - flex-direction: column; -} -.phone .searchbar.document .left { - min-width: 22px; - max-width: 22px; -} -.phone .searchbar.document .center { - width: 100%; -} -.phone .searchbar.document .center .searchbar { - background: inherit; - padding: 0; -} -.phone .searchbar.document .center .searchbar:after { - content: none; -} -.phone .searchbar.document .center .replace { - display: none; -} -.phone .searchbar.document .right > p { - margin: 0; -} -.phone .searchbar.document .right > .replace { - display: none; -} -.searchbar.document { - background-color: #f7f7f8; -} -.logo-navbar { - height: 68px; -} -.logo-navbar .navbar-inner { - top: 24px; - height: 44px; -} -.navbar-through > .page.editor.with-logo { - padding-top: 68px; -} -.navbar-hidden + .navbar-through > .page.editor.with-logo { - padding-top: 0; -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: #40865c; -} -#add-table .page, -#add-shape .page { - background-color: #fff; -} -.table-styles .row, -.table-styles .row li { - margin-bottom: 12px; -} -.table-styles li { - margin: 0; - padding: 1px; -} -.table-styles li img { - width: 70px; - height: 50px; -} -.shapes li { - width: 70px; - height: 70px; - margin: 0 1px; -} -.shapes li .thumb { - width: 100%; - height: 100%; - background-color: #40865c; -} -.chart-types li { - width: 60px; - height: 60px; - margin: 6px; -} -.chart-types li .thumb { - width: 100%; - height: 100%; - background-size: contain; -} -.cell-styles.dataview .active:after { - right: 2px; - bottom: 2px; -} -.cell-styles.dataview .row { - padding: 5px; -} -.cell-styles.dataview .row li { - border: 1px solid #c8c7cc; - padding: 2px; -} -html.pixel-ratio-2 .cell-styles.dataview .row li { - border: 0.5px solid #c8c7cc; -} -html.pixel-ratio-3 .cell-styles.dataview .row li { - border: 0.33px solid #c8c7cc; -} -.cell-styles.dataview .row li .thumb { - width: 112px; - height: 38px; - background-size: contain; -} -.range-slider input[type=range]::-webkit-slider-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); - z-index: 10; - -webkit-appearance: none; -} -.modal.modal-in { - max-height: 100%; - overflow: auto; -} -.filter-root-view .list-center .item-title { - text-align: center; - width: 100%; -} -.filter-root-view #btn-delete-filter { - color: #ff3b30; -} -[data-page="regional-settings-view"] .list-block .item-title-row { - justify-content: start; - align-items: center; - display: flex; -} -[data-page="regional-settings-view"] .item-title { - margin-left: 20px; - font-weight: 500; - white-space: normal; -} -.icon.lang-flag { - width: 16px; - height: 12px; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAADMCAYAAAA1UiDlAAATR0lEQVR42u2dBVgUQRTH1xZBbMFOsLsJG7u7uzEQLOzCAgPs7u7upsHuIuxAbCn1777FxeW4O46dO0J53/f/Zndmnt/77byJu1uVY7UiXcfB19dXtrbkyaMoaVus4nw3c2ARV38AuPZT8S00HHE1McgrhQtHk2h0rU4CgPgHyBH5igCk9eevxT8APUX4ypN0BESVtl2WZEdAKkqpJDkCJI1TigBIMo18dTcChZqP1MSfFUA3IzC1ipWmDyDxzQG3oqbUFh8AWt0HpCkTvwCsRgBiyiRJgHX58ouBMIjhKMEbmMRopiXtoELxBNBtiSBvb+9vVMZVFChZucqLFEtNllEtAdidBBmVpDis4wRAwSqTxnMADFK2ERGEJhJHQNnT13wEfDkOkCnfhB8BnQBoLvY5wAigPIWS5AjIEfkm+GGOOQDGsxgzAD1FJiX8cZrRWI8d7KfRBDflwxpDZ3KbKBXzE+xSRlEaf39E4pStIsrsXaGyiiIA9klIQY+sHk3KTLl/0gdIBmBdBpMBkgGSOoAYgByRb5IHSAZgPUpQACxiP0pQo4+Pj6ID1Uml7jcuJvlynFTipzQq6T5WCQBkv379SpAPJAqfCKWfh+letaQAFPyPHz/g5eUFa2trqDJbW1ucPXs28QGQhYeHo1+/fnjx8iUiPn/FM4eV8DapD+8CteA/eh7Cgz7gzbt3IiBBJy4AMYXCeJCg1XtxKZUp3LiCfKcC8OHy4P2MFQiPCGf9iUgTfwLQ2D8qhUR7+/YT9nUejatcbtzKUA72+VujpWFj7K7TDxGPAyAxmtza+lpFjsg3JkBA0Bf06bMQ/dPXRt+CHWBQdTy4onbo1mo6wr5+ZwDQ4QhIU4jmguNub3CmI8GZkGzA5R+CCctOU5u2U0h7cyAiIkKYxG9ev8aHz98x1uU4jGtPRQ7zSRg8c6/4uy9NYoLVVgpoD4BMuoxKd4Ufv6Ito4kSQM5mRnMgoQHifJSQ1okALNLOUYJFjV0aMymVST9FKfsCTf1hTq6JAF2Pd42hHse74NSlOiS6VtpHBEhddpJUyr7GVLaT6w5gwIlOuOlmjl/e5Uh0TXVJA8DuVHs8da2OOaMHomatebCsOY+uqY7aEjfArDMt8cWrIuaOHsCvJM7RtGh8X2qjPokTYN35xojwLi+kTJcuKzFp6incufsGX76EoUWbjTQa1Cb0Wc/31RoA63FYBFgvAaBgpU/fYc55fP34LnEDkGarSKE9+25hoX0/aqM+1DcxAoiTuB0/YavRxKUJTKJrqqM26pO4AcRl9JZkGb0lWUaTBIB0Izuty41MBGBQ4jhKJKQMW0yTSho03ccm9n2A1Z+CyNp7oyhp2tC9OmkX4OuiZTDouUkqjfyTAfTyeUG/aIQska8YwOQ6AzFr/w2SCKBRAIxvCmgPYHiDEcjRfa0YPF0nLYBiXZdh6/aLcNx3FTn54At0W5WkAOSIfFnnAPsLT8dyFcazAqXkiHz/DYBkAAZRECxiP0ocNswLFmVouphJk1KWZZIAEJC1iCyJABl7nJAlEWBNKjM5+kcBAo2L4/PKDYgIeIaPTkvw0rJp0gL4vGI9fn76jOcVa0fWZSuKT84rCSxpAPwM/oDPqzdF3X/ZtBNkX3cd0AkA42k4doDXrXvg6+6DeDfITilAQr/5qzyFPn4SU0gqXQDocBIH8pPYcTFeWDRJQgDKpXOAZAAGURAsYj9KsAXAfphjPUxybCnAfpxmOM7rHuBN07J4Uba0PABDQ4hG1wkC8HlpRQSPKy8PQF8fotG1SgDGtw6VAgQNLicE/jO4GsJuVKFrqtMMIFOmSOXPD9HoWqyPFwBKnQj/qsDP6iQB4pVlGc0A1JvOAaTpIwKITz9pAYReikwdAvm6pRLV6SaFWJdBFf6UMkqumSexzgGUi30ZTeQAciQFYFDCHyVYXzhK16yUMmn8I6GHgRGTONZXvihYvZ5VFaXxz7QURFimfLKkCJAMYNi7KmasNsfcdeZ4PaciAkeUxVXTIroFYH1zVgowaokZHNebR45AkcK4a1UcgcPK6vZft2F9bVIKYL/MTChFoyCf25fXJYB2R2DSikiA8+dvRQG8nldJlwDanQMjnM1QbUz1aEE+tSuXdAAy9akKGxczzOPnwbNR5fB8fHlcLfrPL6PJAEn8KDHJICtYxP2xz1blQWWJEiVy8hrCay2vPVTSPdVL+4nmkj0PJpqYYdfKrRhhswxGufoga/aewgOkNhJdUx21UR/qSz7UJgCsyWQkSyKAFKJMmTLLGjVqNKJOnTpONWrUWM2X85s0aTKM6hWDJ5vXbzw25S6Lg7lMsKHtCNy+5o/2HVaDTDyxklHdrav+1If6Cj7kqzWAChUq5KxSpcoKCtLCwsLp1atXJWvXrr2YSrqner59JfWTAnTsNBs+7g8xvnQnHOAD25qvPE7O2xADgOqojfrYl+oo+HTsPAec765KwO3askS+YiB8kMMnTJjQqXv37gMoWP7p25ibm+/gyxF036VLF+uJEyd24fsNkwJQaphZOMHbJwDj+i3H7FzmFHQMACqpjfpQX/Ih3xgAt52yYFjF1Dg1yiBOAPXq1Vvt5+eXo2nTpvYA8lDQzZo1W0ol3Tdv3tye2vl+a6QA6jYyEUD9RqYI4JgFG9etwfpeY+IEwOf9Lisrq6F8vq+tX7++NYmCF6+pntqpn8IkpiBliXyjAezrb4zL6bPBcPBGuLm549nhkhoDtG/ffv379++L9OvXbxqAghR8p06dllBJ91RP7W3btl2vM4DDhw+jk1lJ1K5fB30bV4CLi7PGANbW1pPbtWtnPnLkyH4UdJs2bYbzUNv50obuhw8fPpjaqZ8OUoh9Eh89erRS165dV1KwvXv3dnzz5o0J/9SX8KUp3VM9376C+sWYxOaOfybxCszKZaFyElMb9fHyDhB8yFdryyiAdBQkH/TqcePG2fbs2XPCwIEDV/DleHt7exuqp3bqJwXo0HE2rno9xvgyf5fRE3NjLqNUJy6j1NfX4xHIV2sAf4LL5OHhYWlnZzeWD34TH/ReKm1tbcdQPbVTP8WNbOOfjWxjm+FqNzJqoz5CX+lGxiJOwQCkpUnLi4gqU0n3VC/2UXeUMM6t+ihBbdRn54otf48SzGa/FizaZVgAxzIVliXy5YYXtkDNSjMxwX4bEQkl1Y0obIZsJv1ilRDIcldZIt+thvlxNYupLJEvN79mA+xv2RVuF58K+eYzYCAONO8EF0cvGJedFE1kkvtEAaBuI1EEICU+gIXz9+NSz764YzdMCPrunXdw7dGL6lQ+eTIR4DBXEgFc5eiqMRjfPO+Q6JrqlIl82QEo3x1LNcKq5dcIQCib195KdRqNAAVxlzPHvT+iwMJfBeF556l4yDXCa/uVCAt8hcAmo3UDQEFQMJqKLFaA52/xopcDHnD18XrscgEooPZwZQDMX6uIADKkOoUC69lQ0CS6Fut1D0AWV4AUTm2QYv9AOSLf+B0BskQJwKCEB2A1CoJFt27dQmBgoCyRL0cULOIS2liHMHefucg7yCVKZwtmxQNvPY105ZwebnAc/KXy91craV/yZQfoPRsF7Xfix1t9DF3dH49Mcmis/fmzqH5X4udPYNcuYMMGICJC+bsS2gQgDVs+mgIjGI3kfVpPNcDr10CaNJF1Dx+qBuDGdQK3bLgska8UYNqutuwjEBQETJsG2NtHvtyhrw9MmABMmQI8f647AHqi/deOYh+Be/f+XuvpAenT/7338tLtCIzY2It9BCjfbW0Bxfq+fYHQUN0C9Fw8TntzYPRooEEDoGFDYPBgmtTK58Du/Ia4a5pVlshXBLh/JTNc9jSL2wjky/pLFQAZpRNJNF0A6HYfOHOGpG4fYAfgEtooCBZx/73ZbAQ3Zoegw+7X392/f18jPXjw4JO3t/cTjvKQG9xU0P1bd3Bj22Y+jw000tEC+jCYYnYv5Uqrt0Nal3xxQ18fUt27dy+EpFhv3arki5QrrN7q875Gk7aEcw7nIWr2JT+EhoZqJB8fn3BuuVNaYUnjJnYWhLAIhLhegL+pYaw6lF8fCyoWiqjn3BB6nt1RdUUTeFY2AfSy4GMKDqJ9oOv0meFV2RTVlzWBnkc31HFpiAWVCkUcv+Aa1PXQfXBzXaPUYO8deL4Hdp04JSg4FErN09MziOMNZ/enlwVBAO4ZMuBu1jQY1dII3LrKyLm6MmwaZUZIxowQja5trQxhtKoS36cKbFsZ4x7vQ76enhQqsPnWG2Rf5BkFoe9wC4WbjhU0efsLVQDvBQAVELHK18OLgqAABR2pkAf15lmC29cQJfsVhWil+GtunxXqOFrgcMU8+J7RkPpHAyB79S0cXff/GY3+rrCdOERQ/7k31QMogdBMfRsyfyTkv3Z/CwVbevstMgw7juIjLqLGBA8UGnYCmx+8TrQAr6DEDl/3RykrWzSsPxKc3QFhVAYcuY8PYT90l0KkenMphRrETKG9DSiFqI80hQjgNZTYt3ueOJ+XE1R93CwCEJR3iRf2PgiSAigP/tIlfxjkdVKrDDltRIDYJ3GDTJGTeH20SaxyBD4EvcWBRXME+dy9B7M9DwkgSv1PPMZ5V/cgWkZlBS8FiFxGu0Uuo1WEZTQGAC2j3rSMLv+zjC6OXEbp/3BStc5/5xUUdf8dU87yEDPFPYPX8LWIsZFt3Ho2LIPxWGgkI1umjYx8vby8HtKuqukOvOvSlXfizi3s4smW0Caex+WIfC+kM8KV9MayRL7MAKzv759OlxNv9fLKEvluLFgc+4uUiqYUjWcrlWI/8lUJcNG8BWaYd0ef9sNw3rKVzgDWFDCFq0l53O5eGJeLlReUovWyv2q1VLymNqnIV/UXW0s2XsbcYm0wrUp77HXeobN/okoAKFUOr9Zm1S4AjhwEFswC5s4G9u9RGYC7u/tzVgCvGqUEAM8qpbUIsG0T4LwIWLIY2LROpyPgP9UY9/oWQOBsI0UAknoAjhsEjpseQ72qzwZmTQEcJqOv2Wylfci3oMMhFN/mL0vkS0F8OKiPV0uy4tPJDNoDyJlrIYaWH4NhvIzzOOsU4JljDvhNMsaLpdk0TiHXYuVEAGtwnK1MWaPQnOMo4nxZjsiXfRlNtqRuW8pUxP7yVWSJfGX+yEdfMwbzJ9kb3I0bN+hGlsh3XanycK9qIUvkS9/taO3v0CzY4omF2zzj9AdEAVQyg7ulFc7UrQXXeg3hXqOWJgDa+0tAN/1fIX/bVcjffjVuBryKM4BrdUscc2qLk5Nq4NiCZrhcs06cAb4+CcTnPHnxuWsPfLOxQ1DOPIi4eVM9QI5mDsjdcxsKNHTGUbcHOHT5Hl1TXawi3wyVesCg9hjUMh+IY8OrwHunFS7ZlkBbi75Ur1bkq1dzOvRbbBLUtf9ahObMjC/LVyP06Am8zWmEpcOcqU2pyDcKgGu+HaXsj6MkL7rmWvNqs0OtRID0tcZi/ZTFuDNvHq4tcIG/y0Jsm75YMWC+nyjlAJNsVuNj6XLAiSPADU98r24B524zNQPI3Wc7srTegKxtNtB1nEdg4foj8H8cCM+JM/D+TRDWbD0e5xGwnrAP4Digc2uEDh0ApOKwauJ69QC+9FNmtmyyRL5RAOMW4mnga7iPHoO3AS+xzWVrnAFKddmM2Za2sMzTH2Z5hsG64iC0Gb5dtwDiJHxxaCeOtjDBA48bOG/TCI82LNdoETiXMz+C85pEaXPv2eBangVXZiecpu5DcH5Tqlcq8uVuZM4M/yxZZIl8RYAf377i0QoHPLvoigcrHfCTv9cUAEbZooJ6n78YnnToDe/WA/DOtBzVqQVI8JdFKIifRrlVBal7ANb3fdyMCuBmrkJyRL7sAAEBAZCKK2cjiu5jlWuhtCzSDoDUuCpToxSbiQD+JulkKRLAeSu4tUdkiXy1AfC8YVp82ZVKKB8YpEOQfeo4ADhtwBv3bOB2vwe334OXNy8vXp7g9j5A2r03+PIRf39FbP8rx40R7ABC8OSJ7+6pxOAIQnMAmxP24PY8p8D/ancwFp3pgZtuxaiMbN93l29zjwIgX8p1ClaGyFdxBGQAiCOw5wU9dV4+SLnvKkocuCTU4xYnlGaH9yD3AU8e4gYBahNAITC5KSSMAKWIL1Lse4Axp2yFJ+9ypptQTjhtjfKHjlBaEahOAUQ9NtIQoM/xmTzAU0kKXYMen/P5D54Sgm9ydCXyHLgAbt89goyWQjpahVgnsQelCq/byHvwHIodPEH3lF7UrgCQvIyyACT4TswOkNDGfJSgp8Ciwl1MUaRzsWh6+PChUp0wNIyms/r62kkBuUa+FHCeHgWjiSw8DDHsroEBbnEc7kSKIBI3wJewXwgFEBzvAOHh+DZjPj5UtuJVn66pLk4Av34Bz54+hf/DuwgTAfT14wfg28wFCDapFk3fHZfEbQS+f8LhBQPQv1wGnD95MF5HgJ68IgDVxQngztWD2O7QFKMsC2HJDBuQPc5ulHQAHDY4wrRZLTRoXgUu+5aA7En23AmYQvPilkL3XzzHuBnTMMlhLDxeP/qTQhnjexLXlz2JpRau60msockFkC6jSRMAOgRI8keJ30EUzKh5S1XrAAAAAElFTkSuQmCC"); - background-repeat: no-repeat; - background-size: auto; -} -@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 192dpi) { - .icon.lang-flag { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAGYCAYAAAC9Luf4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAQH9JREFUeNrsXQd4FEUbfvf6XXovpEBC7x0FQZqIiBSxwS+CiIiIAopYsXexgIANUYoogkqTLh1BCKGXgCGFENL79bL/zO5dSM8lueNysB/PsntbZjbfO1+d2RkGLqb7XvqMfWlkHyhkEpfUf2HkSLvua71+fb2eq40krgZg47EEJBmVWD3rAbSNCLqhdR87dozbt5HLa723a7du5X4zdjxTG53X6yGJWwHWlQB0XwacuZKFHq98j0VPDMPE/p1xKxEnAd3auKbyY+evH2v0Rjy+eD32nkvhgFDJpbcEAKLG9kI/7TmBXq8uwbm07FtDAi683MQh+qxeBpDoQFQhfbeSShI11hezqSS60eObVgJaf3QVXV1kA1hqA5bVrpLiEtPx68wH0C4ySJAAVxBVST1f/Z4DQ7ABN8AG1KSSbjYvSeJuL+xolUQj3IpBlj3UNTGx4SqYBIKN3gbUpJJuBi9J4q4vbtFqkTJnDuJz698SqQqsmOMRbIAd1ExXiI8v70WstkCwATea7iMt/uXUf6GwmBzTCEaOtKsBVtT58bGxDmmAbmMDKMMp4+/LTcTNRG4hATeTynE7G+BolSNIgJ10s6qcSgA0RhtwM6ucRi8BN7vKqRKAsj1Tgsq5wQB0Hw/GpW8wGGwMUTkf3SIqp9GpoH6FaZiYcAYGixmuEkQ6OqFWe2UdQVHOg3MA0dbPuhgDBrcwSXCLU8u2L9S7Ab5R+GuD6xdBIChVkUg4O69Oe7rRAV0N2RqHCnp0YbmfR2f0MtB9j/n/ym6IBMQnccysD504OqNBddOReY1DBYW0KD3s3r07z/iQPOfXm3mpEkM795hf697RBtD1ElAGAHbeEP7FZm8v74VYzzuSaAsc99gv9ZaApXkLGux9CTaggjqxd3/TSEBcXBy62dEpXlEiHKWCXG0DRHFWBFyxxbmpFDhUAggT2G4u+oNpbNldsAECudQGuIsEOMsNdbkNENr+LW4DYKcX5JT6BRsgkMtTEd2/PExsQK5rKic2IG752AZIYMNUEjc4FytQr+GBDiHaA7NNkACXUtzM21xoAwLsHproDLog2ABBAlxvA+r5gYYjiG00/QEV8vKCBNxIWjndpZ3yF3Y3YV1pA275TnlbQORSCWgMI+NcRY9evepSCXT5mJyVTZqwtzIAEjy60G4GUJ/dHioYMdbuF8iAxq75epymesZ1sP/vf/5H+3R7HSZz4m1AmXRwTWRvwJQjV9p130m9tnHooRAPh/799hp1IRnXCEgAQABAAEAgAYBbl1weCbd2cTIMnz8uSICgggQSABAAEEgAQABAIAEAIQ64wdSd+uF2ZiMdTplqQQIEFSSQAIAAgEACALe2F2TnyDQ6mNUeKmgsfb0O9oaOVZiypjqqy1Q2rp8qpg6jEpxCq067dlhKXFycSxngqPW46kut7f1QPS6O+5yJw2z5WDqpheNUkCu/0aLk0nFB9O+352bCI6XqABzJr2O1GeH09HT06dOH29eVGvKs4AVZGfjggw/i448/5vZ1YWTFZwWqIwBlGfjSSy/VmZFln12zZo0gBXUBoCrm2xhpL9F7bc/YgBPUkZ0AVMf88PBw7rrFaETC0qXYNmIEVrdqxW30OOHHH7lrlOi9Bw8eLAVDUEe1BWIVWm9FFWJjviYjA3seewxMQgK8RCIEiHj8dKdPI/HkSST++isGLF8OZUhIKRC05ddHim5ZACjTbCCUa/kGA3aNGwfZ5csIlJR/TEWAoFsOAWb3+PEYumkTRDJZOUDLllXOD3f1uCAH+fMONcI2FVKWYRdXrIA4MRGBYnG1hdFrVDouEimoqSyB7HBDK1LyH3/Auwbm24iqppQNG9yHA3F0uhK29q2S+LAN30jddndJ5ib8h0CmctokURKKlar+yBH7INScj0G64/A7c8Zt+M/PlnKgTs84aupKreaK/RJwQF55QokssS/me41AiiQYakbOgfGtx92I92gr6Jb6GuHqKKvdAHx7LhD9TIlQsEakigOxQdkLJYyigmSakEHudRdaVYfZUmwt31ETN9Vp5twRw7vik4QCHFV2qPE+s0mDocP7u08TtNcLqmgHGMdksatNRVSMXB95+HZER6lgMhZVW5iRXIuJ8cRDD/WusSyBalBBFRNpNv9dLpfg+2+ewNTpP+Ly5QKIJSqIRFLSMFhO7dCWH0uY/wO5RyqTVoqsq4sF6mMEHUXUCK5qzKkIWxBla71NmvhjzS/P4aXZA9EiVgbWkgmGzeKO6bnfV89AUIhvOTBteSEhFVHHVISttVb8rVBI8dj4vtxWHdmkqKoyBKpFAsoyrL55/ar6EYRouA5uaFkQ6puOLguCLTMqUB3igOqScvaQoHYcFIiVzevXlRry7C0HgL0DjpzpDrqS7PrrCY9s7+lIfrn8+4DYqedcGwg/Z+fgtDIRc/funzkWAFePC/Jv4e+S+vMu5UHcYrLdA9P+fWOJXffRNZrdRgLqS1KGxQQP3sVdpg6Hka1/boZRhtl1Xzc7Zxiuy3xBbglAsNiA5zxTES3Rcb+birVYUBKFLLPM7f4Wtxue3lVWhHd9EkuZT4ke03PdZEUCAM4iMVg8rMrETK9UqBhzpev03Axyjd4jdvn6pG7kBdlDPiITnvG8gjZSNYwmEdbub40tcTFITPfjPanwfNzT/TIe6HsBw5XZaC7RYGFJJAotEgGAhlIrwvRnCfMpCFkFKjy3eAgS0sp7TaeTgrlt/aGWWDBtO1r7qvG+z38cCBeMHoIKqpdnQrZ7lTl4xTuZYz5t+VUxvyzRa8+SewwmMffMy+RZWgYjAFA3sunzR1QZpfr89wOta2S+jS6Se/440KrUbtAyZlRjNwQVVAVRj2Y6cTFDxYZy5z2jRuHIwTEoKTGgsFCLtKtFSLiYjWPHryI+/ir0husM3nw0Bo/0vx5hU+/oHR8dviKuaopJIQBQHfWV5+NxElzRIKsiLVyWjyW//QxfXyWio3zRPDYAvW+PxqSJ3aHRGLFlWwJWrjqOlNQCJFyp/DFhCAH0Te9E/ESCtn16v8YDgKuX8MBLHe3Sh3n5Whiz9RyDT566Vnre31+J4cPa4OEHO2LM6PbYsOk8fly6v0bbIkhANbSXtMxks5KLcoMrqKDWkTmcp1MJmDwtlq+MR9NoP1xIyMaUJ3pgyO0kSEv+utx9NEpe0AhVUKMzwpRBcwtjcczgXe78sB6XS4+7d4soPW7bhgflnff/xm9rT+Hl17ch/czqcs/Gk7JomY2N+Y3WC9KwYswvjsJqTQjMVqVx/x0JaBmRx6mauGNppYynascGxNxXB6Iw4xQiFTu5c/RZWsaXpCxapuAF1YGoGd6kDcJ/JhXxikggJjHhKxJkPbeY0/w4dz6Lu+/dD3Zxe/rbVLwWC5/ZDpnEzEXBi0ggdr6RB2KNPhKmkexrhc05EGiEu2LOBqzZ3wZ/HYlF0jV+DFKzsALc2zMRD/Y9D6nEggTyzFdCKsJxRBn5UVFTPKjKxDAS2Y4bcJbbqpKav7SBWFNGdQkAOIgoQ3/VhOISUUlTPK9Wimypjv+upEkl493Yye36AyiD36jg0dDjN6vwnAQJcBJlEp/+7aJYTCRRM1U0PzawS1IAoB5EGf59SROHlMVqr9knfXYu91WX+YI4AFy5kBkXzV7Kc51tubTEbtHpPt7eO6/aXT/j6vmCXE0D3/mr1nt2Pfhm1c+uedsxKsjV44JcXb8koGmN91U3HKW252ojU26yMGmf4Ibe4tTovCD1/K8RetwT84cexIytfUrP235ndCmBx4ynBQlwNpVlflW/BQBuENGWL9gAV0a9imk3tw3oO9oMkdzkksotejOkXbYSd+56ZnN68kkgqg+2vDwE+y9kom/rELw6qhO3v+ej7fhk/UksPLncIfVTN1AwwtVQVJAniekzy/92AtEgy95h5xUp95kJDYtDzjdCALRiKd4d0RZRAR54ZRQ/YuKO1vwUaPR8+tdHBDfUmXTJIxBXlv4Jrw2VP126NycBOnJdAMCJ9K9vJMZcO8Mx+7ZJo9G9bQTizqXhMAElyKjB74HtBQCcSXqRBGvDOqB7YRpSvlmBPJMexRI51B4B2BsYC4NILADgbKJM/scvmtuEVMRNTjSlXFtWszpvJ2DRsga7wZL9V3qhm4v+eJoMzjLFoINM6ZL6Txu0eKTHBJc2ACEbKqQiBAAEEgAQABBIAODWJInNHXQlUXfQlVRbWrq6AVmOSGczG70jXDou6OG+L7mU+S9s+d71EtBB4pqP9E6b+BF54oAWLqnfnMsv4RjNeLqk/hS2RLABghEWABBIAOBWd0NrdZVkUnhOHAePMfdB1qYld85w/iLUv29EyU+rwBqMAiedBYA4LATBvyyBrAM/dEC7dReKvl4K/fFTvAj5+MCcnSNw0hkA0JZflvkF73+Ows8Xl3fl1Bp43D8chguXYDyXIHDUkQB4Thh7veVv21WJ+XwJYng/9xRYtRrZE6bBnJMncNVRAHg8MKL0uGjx0krX/d54EV6Tx4PxUHG/IxKOQP3beuQ8/YLbMGDkkaUu/UCkRi9I1rFd6bHhxOlK1wu/+h7GyynXcyOpach76S2hWTvaC6qOLPkF0O3aV6qmWK0OlqLiOpWx75Fn6z00sMEtkEuyxTXeOMBw6vqgWVnnqpevspSokfvcK0i/Yxh0Bw5zNkEgB0mAeu0GyLt35o69n57EM7iiGipjmPPmuJ/6Wd9zEk401mRcyfJfYTjDJ8OVQwfC5/lpQpO9kSqI1RuQ9chkGE7zIPi+9jyCf/4WijtuA6NScps4KFDgojONsPlaJjKG3A/Px/8Hz4dGQtGvN7cZL/6HEuJylvz4s8BFZ3tBNNdT/O1P3CbQDVRBAgkACAAIJABw8xth2+gEV5G9EyE5MyByFTFxK1y73kfWnBiXMj/42mXXS4Brk2Fw6Qca3N/vKskXbIBghAUjLLCgnsRWMJ0Mc2tKgKSLe/8Jbv32oggGPnPkAgCuIo8pUih7STgg3FaCu2/pAMS7aI79TDU2Q13vx1V3SLm98hEJ1POMggTcaN0vbcq/vucwmftKgNuom9lSqO6Ulv4WB19XOxSIoI2qcvcXztfDsNMBi7exbMPuq8U7chsAbCrGb1rVC/HI2/GjMUzZFuS9pnMM8wUVVBmErCkajslVkfZfE7LGaNyG+W5pAyhzi9cYqryWO1YLS5p7zUXulkZY0a1qzal40Akalerwqrb63nczACDvwOt7/Vkz8j7UwaLhW728t/uNypNs3q1GB5nFJZXX5wNt2WAxRCoGxesNKJzFdyQZ4swI+EwJRScJCqEXVJAzSdpZhJyXtKXM5zyf4xZkDlRDd9LkdlGx22VDa4p4y4IiSIBAN6cENBpiGEECbgYSAHC1IG0Oi7mll7Fy9bAUJg52jguKi8O4x37hDlctHwt07+6QF+gzvF2d7v/heIFDGRBbaHIpAPy4IHvu7NYNStUB66FjRtLYZuoSBdjfIdRG7rjZtWwrCHYVu6Y/Id5sEGyAYIQFAAQSABAAaLykIG5Cm0ARRrQS48I0Bdr+FA7PTgpIvMmrM+4PQKNORQSpGOx+TI6mvgxOZFgwcIUe64/nI/a9IFj0LAdA4qvZMOabBQCcQaNaixFNmP/hQRPe389nQfXXTDj/5DWwFiBsvA98+6qQvaG43nVI9/wFmYtmS5EeO9Z4AXjhNgle7SvFilNm3PPBNdxT5hpr7T8qOatH1Ex/GPPMKDigcVMbEBfHj2mpbatI9jxT2xZX/Uwl03pI0GaxDtM28x3wRT+sR9fERG5PN0rF8TpcmpOFJpN93VcF0fSCLcK1lzr3mO+QyrWaK0A1XyidyrRAWYV8/vjT31j20wzEW39bdCwnAYIX5GDyVzLQl+Fr//7tMWHifI75e/acKT2vai6FLs19Z22U0MSavbkdW8s/cXSGQyqnU3b1eWtrldeaEeOrq5Ane3zioFIwbBKgaiUnmzuPDbU3q+mgL0IqUTXZ0A8OmLBvghxPbuJtQHxsLLzpvsw9rRaGQtlUiqtLCtwYgEZK3xwzQSoGBseIcUff61PiHNjPz1EqC5ZAHipByie5yN+nEQBwBq09Z8bmcXL0jRRBRt70gTUGSP3FCH/CFz69lDDkmFB4pGHpaWP/e2FwUTraaDY0bgCulbDo9YMOoZ4M7iAgHJ0sh++YYKR9k4+cv0qguWQAa3TvDr1GPyrCQDyh1EIWqwrNWHXGXKqCbhYSsqECAAIAAgkA3Lpk/zpiJGrlcjfWCNaRZMm1/1NV20gGRxIdneAqYuZ6+rvUj3u3JK9SSF10V+fbvHecqDRN7+DBg4PI7k6ydSRbJNl8yEYzRtQ1yiIbnWF8/86dOzPtLXNBYBPu78/yi0bXV55DVMfmyMoqwsJF+3D436RK77t967Pc/p+hI8ud772Vz9AOGfpVpWdu69UM05/ph+Bgb6Se+g/xHy5AcH7KdQCixVKXMD/FbKwEAGFUP7LbTbaZhGFflWH8RLLdYYfapAzdT7afCBDZ1jIp174k2wBS5r6KADSX8tMdGCFGfu9heHDJu1D5emHb9nN49bUNuHr1eqojI/0jbr8lPLZcpfekJ3L70PCXS881aeKL998bgaF3t4WmoBhrJs+F3z+bIQWfZfzPqG98NsDKoFmUYZRxhPm9yPEislFgKCfWki25ikfpqmy/ki3feu9i8my/Msx/oSLzKelGTUCOde5oypjgfzZiXcd+2P7pMtw9pC327Xke057uB4nEflbRe+kz9FnKfFoWLZOWbWM+rZPW3SiNMGHUAisI88dBs4SmfshGp+h9jmw0e0eTQ++V1WRkCyNbJ+s99F4ZeZYCN9/K/C+rqmvg1PvRffNGHAjoAQP4b8z8TEUwf/EOlnS6B+knE/DG3GHYse059OwRXeu703u2b3uWe4Y+S8ugZdEyucCS1LHfvwdXJ6270XpB97OBx39nVWfHMJr2s1FMO31XW0EJJ9vLRL38a7uXHB+h56zX6D2rX0RxIX32D1Z5jpRVrdfw6bwdiGoeitePrMDhe5/HSQ5HqwrJvojzD4zBsgdmIjrMA+vXTa31vek9TcM8uWfos7QMG9GyaR1zj67g6vz0s52NEwCrzn/uZ6gu72AV229n9I8+CfUOawt/lzA8peIz1nNUEjpNQcm22xj9+F2sYstKeFDl/Jy1zEq0Y+cFznAmXs7Gh99PRbMv5uNr2Z3IhkcltbRj3vJa353eU1Hd0LJombRsWgeti9a5Y8d5MHG/dWO7tfVyCaOPnStG94eOMVUAMNvq7awijP1l9109l3SF4QkiEadWQbXC6jn/R/W89RE6rz61it2J2hlPWn7Hk5Au6bfj6JOkrEfI+f+RbR8p69OKdfkHTmCl0lDI5RK8+cYwPD7xdiQkZOGZqcvR4uI+3IMEov/MlYxtdUa47HmqbragFS626IvF305Aq1bB+PGnQ3j7nc3Q600wGjPqJgHfLTh6I1p/sNWI0uWY/qDn3me9d2xglcceYDQdSOu+y6rnyy7pRI9n0Gv0HnJv/Dusz07rtT+tZfW1ll0lUYZQj2fSEysRGuqFTVtmQv7wY5iLIeXUkr1En6HP0jL+2jqLK5OWTeugddU5G3pw0yl4Em915x+nMPj+js7EgDKfSsU20mJtUdeAZfD4diS0yqGM7osB0M8eywZsIuc/t16f/guTe78c7Dxy/Dy5l0Z2A6gtoGUQxm8jx2OtZa+t6NdX1yU7/4sHAbrVgWyScI/VKNlIqZTix6XjK8S2tayiZDYWYMXA0zi79SSOXtDi8CE91EUG7PgpDq9N+MdZANgWqzlslQjq8TQh21Gbd0QZ/QeTM9T2ADkeYWW+zduhotrE+mxpWWXKblypiOpILPHB2dvP4cyPMtyXqIL/wvcR1KYjkv+4F5YmTgvfqa9HW74tDI207hNtLirx7enhl0Tfn7Ne+7KCq2n77ijKGiUnWcus5EfSiDZL2vB55yraBHuIBmI1qyCGwYg5e+Dzz73k2EJiUAlys7NgyH0S9700itzwqlPCAM75ADaQFlz2/Crb7/tJrEuYf566mVRX/UHc1ZVQDSLXB1Uo6+0KZTS6ySRqVEEHhp2GZdB93HHC+yz2vvs+p56Htu3Gnd8/9owr351lrHkHC9yXagQg+24pRH9vRP5cEYK1Yqwd+hbyHp+Cy30iufPNPgh2xjsVWRNsI4gBpei/YT0/jv6mG9H524m305a2fBqskeM25NwO23Wr20npTevvkdYyC93KBox+Jho71wxFHlGRbd+WYLG3GdE/mrjWr3vBiIixXZ3xTqlkCyBbM6sut+V96CDGk2VzO1Tt0AsPQPMd2X1BbYPVUNsGPNrsSFOr+qkUwNEsZn0+OqwuDqhTHFSbF7Tpyuu41vIr/NkuAkU9NmHJqhVcy/9pQBSOKqbjq12jnQHAKeu+lzXCpcm1qzTNYmO+HsxL97OBf5VJW6wj5+ZYQaAxQg/6jPVZLiNs3Z92KwkY3uwzrh2O/y6YM7i7OR/jVfT+lKbhneaG0ozlY2QbSgzoH9ZYYPd4qF8k+67bWcXOb+DZxxop22gRiQtMU1Hy9xBG9+UEqONJLPCp1Y2lLs7dVnNRKRtKUwI0Ei5tyUPb4fPPxkChkOLlV9dh1+p9xOCfQGek29XSbZJxAuFYRZ4a+HA/fPTBKOh0Rjz/wu/YsvX68pB1joRvBBGGZ1nz+f5UC9JzrzFFg0Yx2m5E558hzKc5oQXW9APKpCI+I9e20HtGkHvnMoUDbZrUWtZ+a9lVkkwm4XL3S394FDk5Jbhv2JfQrV6B97CtlPl1IfoMfZaWQcvKzi7hyqZ10LpKJWD9pCSccGGHTDX0E1U5NHpdM/i2iV2hu3sbq9hFdD410BsIIxOsrdsGGu0rvUJ+Z5N7+qlYS+bdjG7KH4Nvi1xM+1kAnbXMKik2JhDffDMOHdqHY/XqY/j5pUUYbziGYFxf2iRf4o2A6TNr92pmvoHchV9y6WeaQxqFs8hKSMHsIefxv4+fwROTeqNXr6Z46qlVuJCQ0TizodaerK+Irx9DVMrdh1n5z9/BczCXYgHmEkZHVpFDoufmUj1P7h3yLytbMYjR3fM/UgYty9Y7Vum5Qa2xfdtzaB4bhFee/BaXZ83E04a9pcynvWTZtw/HqFP7MOTFx2p9d3oPvZc+Y7SGHbQsWiYtm9YRGxPE1XnX4NaNtz+AuJWdiHvZjqqUT+FFu6wepmqGbFQffEIY3rMM8+nxx9ZrVPc//Am8vemzY2gZTE7n6uqZ8+JdSLucifd6PYbb/vqsnLq5GtQSrdeswWO/z0fKNTVGjf621vceOeob7l76DH2WllFWLdE6aF1XEjPw4uy7Gl+fMBcIXHc1ZxEPh3a80DXSldas5i7w01s0q/AY7ZKMsxpcf6vaWUiBpN4RLcvqopajTya/yoZs3oQgtrK6uXvOBGg0Bnz2+d/49rv9MJksdvUJ0y7Jp6b0xfOzBsHDQ4ZtnywrVUulMRbjicxhwxtlpzzteN9blmFlOuX7ovavg6vqlH/OCkKtnfIFt9+DB354z2Gd8h+8P4LrW6ad8mufeB2+h7aU65R352EpNNHmY71UaA3gaAxxgDA+w94yyw1LeXk6ojq1RFZWMRYt3odDhyvPJVSfYSm33xaDZ6bRYSleSD15EfEfLbw+LMXlyv6VH1zaAFb+sqDxBmI3jKJauabeVM6bRdtCrUuqP+ejhOS5mDu4FnjCj+/f6DuET6OEfP8it898ku9GLV692CoyfO5xpbitQ14iF7c2cRLQROmDJC/eqYiO4pfVi7AaJoX1d77Sx5o+5Q2IVBzW4MqN2mu41UkSHaFCrI8XWoo280FD276lVo1Sl+Pf8D5xDD9yIrXfLP7Cik01Fnzt5DvcPqzTGxCohshZYIGLJUB67ixkZfpECx/pX+6G7I07+GSV9XfzuLH8QdD/aixYaPmCBLiHBJhfWQhzbHv4/MlHeAGB/GpEKav4/o6m1iGYeR/zXpGFsfZrH6+bzq/u+sYPP0MHqGp/09t78IL3xfTyEjprIX9wqO6Dxk5Dg8KmUkECbmkJSFr0GQzExbS5lz7TP+TdUPAScGBfGt9SU+/i9v2yV/BPisPrpPNru66BvMrQXGldESP8j3e5fdbzfIvX/MJnFbxf4btF/X7ly894mh8sx27eLdgAgeyQgJ/FrcsHVV//Ud7Lsf220lFxjzpV4LB4wMxH4Iyc19ksrANcLdbzMut5Td0+4ov95Rt0ue02lzBff/iwIAGNIhXhTLK35atqWf3o2oQP+PJWvs4L6IdP8ecf5b9USg8bKsQBAjlQAm5ULmfEvNZEEQfZcac1ZXz4tfKnbWHB9HrM/ZmY7bzRTYIEuLkENLTlC9lQQQJubS9IaPl1AEDomXIhALmXlrh0ZATDfXAkqCDXUmK2S6s/fPiw6xpgXFycS1tg9+7dmVteArq5aAEDR8+8JbihArmfDWj34s/s2fTKK+nt2jKF24d8Vey0uks0QMqHPjXeE/PbJlgslnpNTi0SiVSXHxreuAE4m2QBgiLQO+RfDGpxAAY/Of7N6Iqo7fyrNQl3npAeta5b0U5Z/dzRbXn1rKpvHcoayj6rbURzR0d45ODV8A3c8T24/vnr1Yd8nFZnnskI+Ak2gCOdpdHNIlArmXJzYMrOugniAEKXS4Iw9OjbYALLi2yT35z3cXvWRQvSPq6/hKXNmgpzfh5iN+6qPwDd184DjgS7huuptPXcyx2eyekGb3UKuningJE17knd1Qf3Ivv7RSg5uA+sToukR+9H4KSp8Bo4xH0lgJJMbIIcJpQ1Tc60AVn22gC6fEuZJVtk0c2QvWwNFNF+EKk8kP3znwh79Z0an2n0AHQNPo7ekXFg/KQ4XdiycTV5wsycpXSUOANt/BGEvfMxgiePQ8Hvv8IilSLwgWGQhIZxKknRth03fUvAE1PBSKTuA0Bz7yv4NHYl7wUVfti4bIBIBO3pE7g6/zsipYA++TJECgXE3r7kGkPUkA4pEx9C0dZd0BOhCiPHgU89614qqDHP+cOaTTAXFnDMUnVqAU3cv2AUSkj8/Tnp0J49CYu6BIoOLWCOvwRzcRFYvQ6MXOE+APxXGInplyYR2S3/So3BBjBEl3sTA1uydxc0py9B2bYZAcUC1shPtUDtgNjHB7pzlyBv4g3vIcSxEIndSwJOZHfhtgGd9/ATljUmIsz0H/8EPAcMRurUSVAfPgCRTApbGpmaWovBBM8+tyNq8VLIW7Z2Ty/IS5kKC1t+gG5jigNkEdGIWvgdzrZrDmlYOKTBIXxAlp9LbMR/iJi3oE7M5wBYs2oz2ilcg8NZnQkP9uTjgPZBx+HvWQRG3LhjALF/IFofOk5c0aYwXEnhxqbKmsXCkHQZ0sgo940Dmnlm4bce/PDDe5Kue0EFT8pgVsphJAEy46A1Oy3WHEzWFXOdc0Fibx8oO/Jzf1gSzpP/zBB7eZeec1sA5EzVHXPqQqVTptrjva6GLYNrzsu9vrq0u+eCrpQE4P2ro2D0l7pNLsh76PAGv4PrAaDfnBWl4d+iMPz7Hz9Pc68O8Ug18+P/9enOixDE1lwwzctXR9oGdpte1tY8wzCzJsqbdakRTi26pTvlhT5hF5PE1hIFEuiWJAZP3MmWWiNC41p0V78w+H+QE+OR/vQED2dWbiBh7/DTF1xrA15dngWpgu90N1ngIxFhRudQPNTC3+lVa7VajYTrOAj14s2ByYhV+Rc8zu9aiK8nvY27TpwDfl+LpHkfOOUFzqgbwVLkLILQJIafaU7EoFBrxDtnDDgCMRYMbIYW3nKnVX3s2DEPBpP6sVBFAB6EGVJzubzwi31H4ZOhk0C/CM16djLUJ+IdDsCIscHZRBBVYjGDuy8WYcqBLMQUGOySPMX+g9wilLq+fey6P9lHpv6uTzC2tPaG2Uw5zmqQNdEDkW1UoIy2WHux6D5HDYmPAp/1jcJznUKdAsDRo0c1zJHVXupNRS1V75yO4ToeOCBoKtXMR4mtPX3x1ZR3MTggGtiyBUnvlPlGi95nMTcIgOn9vZA6mDQAHSlHIYYk34AX92QQIDIRqK25bM80flh9SUT1k0d5knKv+MrwPWH8J/1DoQ9QENknLUopRpO/0zD1zo80C/P8VJnXSoBAJZ2JigeASAPUxIcvNmBA20B8NSAG7fzK5/evZOfAx9ML3kp5vQEQR0ktr705KVs6MbYIu1M9kZnvRyonLyixcGKZY9BhxaEtyFXnY+jwcfCf/BRMRBIM19K5zghGIuH7P+sTiRqNGHUsQ9NSY5EeC1NB7ymFhUjCgQ5+WNvGF55GMzpc1VTrK8uen83bks8/qywdRJ8bSGte2jsYk8bGYCMBwCwlJZHyPQoMeGVzGuasT0Hrp58wvjm0izTDaMHJ1EK+IaikPAi0+8tDhuTUIiw+n00ORegTRtS1WY0LJZn4eNUGJGdfQ0iIJzxlKmJK6+bVp6enG7lFKAZ3kWLDW6RRdFdh3t8xeDEulogiYSxdjEh8XRqiZQosmvIe7g1rCez8G0lzrTOoFBXxOeRqcBB5e1/PwRTxk5dKCHNOEQnyzcxBX5MIF0IUmE9a6Dd9Q0i9pG4TyzGr2/lCvLwzHaNP5UFHGMLaKQE7Wvrg48Ekum7nyzOTlAWNCU8ezMKM3Rlod02L/aSRKTZt0fTo0YMzwhuT8jF9dzJS04sBPyIN8jLSoDEScGToG5GPdxVJyNsVh9xridBJxAhq2wWR/XqhS5+hUMrkdVNB19nG4NuZUkyZRlpmcQju29gaR7KDeZUkM5WzDU/3HIIvR07nJnHKmz0ThQf31VsFUQC6SKXkDxEhsNiIfc298PnAMKzvHkBQEvFvR1rzffG5mP33NfS7VIwSlbhKADwJgw809+ae/5M+L7U+T5h477EcvLArAwMuFaFEwT9/nEhgWQA4e0KkedaeZHxz1DqFMQXCxiIRMTXGLLyz/j2MOfkvzkWJYVCK4HfODOWsGej14utEs0nqCwBPvdtIsPEdBv59lPhiVwyeP9qcj9c4aRCVztkQLpFi8ZPvYGREu4Z4AdAMu5sDoJz6MFjwZyc/fEoYeZS2YGowKRhFBjz9TxYmLz2Kro89DXy7uBwAr9wXiYVE1cCHNA2iUoiYoSuRoNm7rmHM8TyYyW+z6LrXWxUANtp+pRDTdyXhElE/8Ce6X06lkmiCkE4YcORpvHB2KUrEchTBAIuMxVPLk8g9TetuhKtTHF9Ok2HGDBDdH4L7/2qJfRlENah0pBKalL9ufB/scidaNG1lLcV+W8ASFZR85ACefntJJQBspLmagZ86yvHZgFBkRZHWR3Qw/Ahz98Xj49ZTMWfW19x9CxbOwoyTXwL9uwLEiJMAA/5paswmqmbSCT08mlTtxdQEgC1Z/cLeZMyn0kAbXih5h0LyDmf+Q8fLB/GgJQsXiXI4F90Fox8YhddGxjoOAC4r2VKCNXMZRLaSYt7J5vg0KRpZZmrILLwHZDLY3flcJWUUYt+ms9UCUKoWHh2Hxf1CkRIgA0uMZIGkCJ1j+uGNMH6Nho8z9uJw4m74mbzBEL0dQYzstH2Z8Fj+c43l1gaAjfYSmzCNSMO5XC1xfTIwzmzCqqJ2CA/KwbUiFQKIt6Y0HcMXr4zBmLZBjgPARhd+VKHVUA327ovG3Ue7Qy8hsIsamCamHkNKjubIs1+gNgY4iygD6N7e+l8/noGP1pxC75wcHMiLxuN3BCIhi8HlpFTIfDKQEh6J6YNi8HmfSLvGFdD6a/SbYoLE2DtPilatzPh5d0tMP98aepmBZz7TwEQqnedHKnYJ4+tL73UJxbd3NUOWQYEWXicwvuVq3BP5CwLlWYj19eK8poUHrqDVTyewOcW+jqRqTfbLD8vwIZ2JXemHBza2xO/5xBjqiYul1PEuqtU17R/bHh0jI/lhkHWJB8gDWRdTkP3NAqRvqKyjqbH01Jvhl6NHbqAci/qFEBUk51RQPlFBXSqooEOXd8PfSFQQ8XAi83kVpKpFBemMRhVVQXUBoZmXAkWF/oiISCRB45tQajxgFK9BGvWuQyWc15SUVYJ7fz2Dyd3DMH9AM6hEjP0AtAqT4Lc3GXQcIcXao9GYsK8lNHJrRCrX02kTOfPkYdTj+8eex9j2d9dfBfgc1STM6onMMu9nZviMSEsjv6LbJ52IEe4fgqwLnrwRJlEt9sfj9jbEC5rJA6Bcuw7r6TKSA64b4YVaNV4IysdEYoR9ablNHJNOMFhMaBuSgL/zRuOrk3txOr898a6i0ML3GC6afXl3nbquBjOWHErD1uRCLBjQFKNj/GoHYO6jMrxDV+OS+mH4itb4q5AEUDbmlwnIHmzZGb9NeItL4L30+kGsWHMa14iXEBpQh+QpUWEZV8+qVkeEauRKGYcrxaFpnoE4Whas6+jHBVJxbX35oIz69MUGTD2YjSnLgC4Trhf13CUG/ZcD30nFWHRHNOAtQ25TC14dyGDNuULMIfHDmJN50Esb3v/Ut30InmGJq3uqBB4xxSRoLsSx4wZc7u7Br2pvsvKLus2hnkjL1+L+NWfxaOcwfDWwKXyl4grpaKI4usSQVk+8neZ3y7HycDTGx8WUN5Z0CJ/V21k7fgbGtB6E+COFeGTa77hUoKv/X6NPxa+yZZq2HnJVWJGxNBD7gvj/63oE8HVzYsEHYi8QRt55sQhX83PgQ1p02UAsn7iskX6B5QMxygTqY5BWOTyOBGLELe1Pns/1kkBOQLXXC6oUI5zT4M15O9HT/2NcUkdDET4XT4wLx6KUPGw5eAXwIlLqKbseRdOYJFeD4BAPfNYvGo+2CrzuBT07TKJe8IlIZUQA7t3QGjtKPK2MZ8vp+kdad8Uv49/ijp+dvQcL11lXkqXBGa2orvkg2hmvS8JGZqlmuBoqmopY0D8UX99B4g3CIBivpyJe+jsdo0/kQScX25WMUxHbsb6jPz4iEnSkbZlUhNqEKTQVsScDbatIRdSNdIhPkMPbw4jmEWLYFmpdeDITLxxIgaFAzyf3aCNirUAUknMGEx7oGIoFRBrSzpzQMEd+U6njTM1V085El2/1Bj2dWRrB5Hj5pBdxd7M+OHwwF+Oe+RNJJYbrzDfX0x21ArDVslRztH8T1TwSbBWGKDn9DbkI4SlqvEwi2Mf+zYYnaUHaKtRHTbkgmozTkPdb2TMQHw0Kw5VoT74lknI8s3QkwLqGXruuagL//MvhbjDlzwwSN2w8nckn9rzKpLopv3I08A5UYXpAvobvDwj1qbLVP97hdix95BXueNqsXfh644UKyqshfXE8AFH370LqkEg+RUwYryA2YDbxYJ7anwlfjanB6WgbfT44nEtHq4knBSIhUEoQsfMK/hi3SOOsOGTJ2WzM3JcMNQ3g6JTQ4jLSQBtx8jnNdSMssnZEEA8nhOj7lZNexuBmvfD3jgw8+uw6ZJgsFXuSHEKpgfJsxGepxOTlBiQWcdnKNgVGD7oKZ35tGJ45w3XIsCZzrdZ/9NYraHsoQ037Bf4mdsJM/p40f5lGJBIFwUk0uV0Qhjbzxczdyfj9ZIZVGmR8bstDSn+rKvUJ3xfTQf3a3RPgKZbj9Y8OYd3+VOf1C7Okhad96NI+YWIIs5RKpdMDwo3J+fgi/hqyaH+DzRMy6hpBn6xAAgkkkECuIuY4MYVeLqqcTkSTLw+BJ+MaO1xCXMKB+kyXOgES6vHHuqjyY5zTy6Ip45qv8k6yBvzUtBXrZUc/7gMt/lenstde+rn2Bmg21f/7gGKVPzRefijwD4YivQhhxWmQWQrdTgWYiBQE2/FFO5S+qMvSm7RMpkywxFbxbL7JWHcADvfsj+XDHkaHeduRHR2AfZ8OgvfSBLCHANnkdpj+12L03bvb7YCgzDIVSuDXqxBBg/NweVEkLHoGIhlbBfPYCukA/jrt52Yq5MToswz3f+XzXPxb1xdNlnrh62enYl3Tbsg+k40jhmY4JzIgt70ZR2O6Il3mB3cli4nhNhFjIcwX2dnpdx0cph7fi9VZAkadP4In1sejc2stelxJwYNfLkD+oSykde6IwFOb8PCJ/W4LAEuY79ulGF5DdPDaokbePz6QBxtqZHqDjTDi4ui8lXY/oMjOxJLgUGDMXUDOThJWBwLZF4HX3wTe+RxsTi6YADuHdh87xn0lGuSiaTP9SP0pY8bxtkAthtjDDO9OJVDF6ODdvgQ5e/w4UJz5JV3diw4KAaY9zaWqsfkg8OijwL7TgE8EMPEx+5nfCFs/I2ZReMKT63bVJCvIbws/7U/VTzhEEupmA2iauph474sWA2FhwMiRwIoVRBrGAEYT8OMy/rqzyGx2WtHNZ6Wi+cxUFJ32gi5DBmOBBF2Xnodv12KnAl83AGi/sBcJ24KCgLNn+aElNIiiTKdNRS7nrzuLxM6b2M+rtRpBg/IgklqgS1dA2UQPv0ElkAUaq9H7jAsAsNG0SYAnYfSiRcAzzwBLf+Q7o2dMrZsPbjK5dEHtsvUb8qWE8XL4ECPs0VwNkYKF8QrxinT178i3uaAOtQH5uTr4vf0x8OnrwLPPXp8bbc5TwMffID9HA79A+9LrWq2JCIzrvhWn9Ze6oMTnl/oboYwkHlBLDRTE+zGViB3W8VQtAEOGrIVUesR+VBUqhBYkYf03t6Op+T/AnzC/6CQy/snDCN/XkezbEiKd2q6yjMbUAO8XekNxMcAlAOiS8gJet6kCuQVm4gllbAqCeWAetFcUCB+T5UiP0zESUJCeiyyjN3p/bMSzpxPQInAYkt9PwqK9EiQX+kOmyYGfv9LtvCBZgBHyEAM8W5DWH26ANlUBeawZYlVdDD/jfAAocyViEbLPJePVE0SEI58kqieRnAPCm3hwfa3uSDm7/Wkoi7zDvjDkSok76kWCMCM0ScrGJQGc8TJb4OdHP8Uhm+EaEMK/pLsyn9K1v673zWfv4WOZy99ENDy+qEUqJLjFiX6rxk3eV6vFzq9TufaUSesmm4jEN65Zw4XWTYc8GjNTXMN9UvfE5AT7FHfiq3UqegwEEkgggQQSSKBGTS6fr21Z+y6s1EXDUowsi44rlkIul9/wui0Wi9poNHq4PA4wEya0UHm4pO4L6hLigpvRpk0bV1TvQWcKkMTHx7NeXq4ZmlVcXIwT4yfVEHKbwBTqIA4OQVGsFxIlxWhd7A1Fah4sBXlgfZR8HwHrvuuBSmgLiI11zdCs2pYyZORKWIa1g8XfG5KrmQjr3AqWw+kwj+4KNiENzPk0t2Z+9akIln5TpsO5lDyk55QgNECFdtGBCPBQ4Iaq6xAfaKOV0CdfgDK5AIE+hShJy0FJlB4eTUOhuuoJS1HxDXsdulIGo1A4HwBDQQG++PM0/th+DoZ8NaS+Koy6ux3eHtUBMn/fG/YHyxOuIc+QBdOdxTBFiFFclALJfVIYNcnQ/52HwGwzSpxoxkpmvgQL7XqFCZI+fSFu1QL6lb9yk1SZ1UXweWsumDv6OB4Aub8ndh5OxIXDRMRDA4GEq9hO9O1HT/S+oRKvF0sgvpgLxV3BUCED2Uo1kUJvsMUBsFzIQXFECHHjnNNRr9XoYfz5F5hyrnDfXntENYP0zr7Qbf4TIvLPQv6phw2Hpftt8FaIHQvA+n0X0cRbhskvDEH7HrE4d+wyMlPSuPMj+jrWY5iu6AiRquqv2F/0z8Kz4Z1wKiMVHj3vg9cRA0wdAcXFw2g7+ja8fD4Lq1D/L+At5gywz2+GyPdcpWuT74zEF81DUajVwmP1CogiwknFCvgfOATdj8vh8cPXOH5NjUFvxcF4/mL96i9IhqTHm1uBgIRyF5qmZWBot0B8+kQPeHoooekSgJfeTsXMt7ZgVMRxx3E/N6nGVTJFd/SF3+R7oesVC8/Ow9Dso9k4//nLxBAnwm/rL9DO/BK4XOQUCSgq0nBDExk/P07tSPr1hpi4q/pvfwBbUgJGJoNZr0eBwYiGONFVdvknFzE4drkA8XEJMBN7EH/0Io5dykNy4Y0NmMSeBJ6QEDSd9gmy4jORnnkVBWe1iJjyJuDlAY9g5w0C86NqJfUKpPcOhfzJiRC3awdRZASkI4dB8ezTnKMiN2ih8JY52gaQkrtE4WhqNt5YcRRj4hOx7nwBDhWRF+pCxNCgu2EAsAa+U8M8qBfURB/n7z+MQpkJYQN6UgGGxei8Oa8t1N0jaofdth3aPfvhPXEM0L8n9K++AVNUNOgSPgyJoGknoNixADD8V/LhgTiQU4DDm5JgooFaE2KMTfobG64Ttw8WA1RKJWIGDkRguzaQEb0gFYkJOFqYNM77yvO8NACIjoLH4XXc7wMHuuCUviWmJRF1TTc/GVKDomBKKEK9EhmMuOY4AGYDzN4qbuOboRE3moqvXCVKUgZLiQZFKSnwIwwpTCJ2o2sXTgcXk+DMWWtebUs2Yk+3+/HtmWCY/P2wvzgEmftF2H/XG0j+Lwdz7wrCNj/ikNCFfOqzCAdrrgGARkJeIhFYwmQtMVUagwFJGzdBJ5NCT0DBpSvwFTvPJ5YfPoTvo3vi4uy7EL/0CHmZYnhKNfg1pzVwV0tsvi8MO3/cBj+xFgbUP5XD7AqOZDvJ5C5h8Emi6ryJX92tmuHp6fuP4NLKZyGxqOAZOwbKkYNRsnIttOrdYMxitJiyGEEdmjcoFVI07H50ruLvL7aIIVYXwuu5KZjQ4nGs+5V4f+nZ8B7eG392zEKvea8g+RRpBGEBUBnrZxdPkL/f5StoWCyWahV5eNf2xOXLQ+GRPfDpGIWWbVrDI0aBnI27IBKLG8T82uqOQgmCWCO8P/4Afx58C5+OCsLkyd1x0nc/Br7xBMRHjqFdoARNtHlOyAXdELLDpfVQoftLG3Dysykwihnk/JcIi7cfQgYMRbc5q536dvkiJeDrgWKDD5TfLsfs204DMdHA2s3IFXtC1LQltHToiaRhjHchAPbpb8+ObdDn6/3IOXIARgJAWNNuaLPkiRslnhBJRNBHxEJPZ+VLIyAER/Jqw+QYp8Q9BmYRRyyw/x24GUlCpwlKMhldUjmtWyQSuWzuUFfWXQdF7Fy6UfP1VJnx1Go1muFjguQuYoMeLAQS6NYm5lZnwIFmMrYSR1h+kdTSL+WtcxmSsACmPAZiTxaMyurIsW4OQHJycrV/QtOR86t+Zv0Mh9WfNqAlmkisbBBZ1y8i4Zm5gIEkkDBayvf7W/LJNT8WPhMt0J9goNkjgkjRsFTUVRPbONzQ6Ojoqi/IfOp2fx0pJSXlejMkLd5SwnA5R5EPC487zNCeFsFCgBB7sLBoCSChxCO+y0LuE8G8mmxSFtLohomAsJinTcWQlswQbaTPYiDvyCJ4oYlTOYYcBiICgCyCgFACpN8nRcHXEqgGm+E91syppoYFYp/++J+Hd1CAiZUY9cwNzPczRHgL83MbBf9pLk3GwOdxEwKbmiAJYyEOJSB8ZOKkQ/evCMW/isAoWGIbiJSQt/a83wzPoRakDWtgj5jY4tVEHRzMDXYRsd5EEgnsjLYu8brVEonqblIK8xWNQgLoPNtE72v2ieB/mwnKwRY6NTS8HjWj4FsJSnaJePugJH+phEiDJ5D/pQT5dA0hQ8P0iAQsU8KG9+QYIU37DxbGxlCmdrmlnXEseRtWyoPG6FCnSSwsVKjhchC4GdNI6y7aKab9P0TP04+0ieopYJE9RwJTMeDRmbR+Ld+PwsiJkb5K+6iIGIeyDfJkRGaYmWO6rqCbmRtjY7Sv1bOEb6wcoaIMtJEkQMUQXrIe1vQSa78iagxE/xyifRVNLPAaZUb2m1IkDZBBs41IxBQjpMTttFinw6DrahovMgiYa0JMnB4iecOMsERCAuLX1JPQR3IaCpEaWlZWC18ISKyKtH0G/eX/4E7JKQRLcnHKGIMdhttxyURX4StyrxCDGmElr2LyvxbDcFFMdD2LzJkyyNoTVzGSZzwFwJzOcPfr4kVg1VQimAYCQFQOZX4xVIRlFlScB62y2pETlSdDR8kZPKzcgbHK7fAUFSHZGAEftQYryfUrpqbk8Xy7Gjnn68vq1qnK9HzbMYw3FOKArUwaaBF9bsogbqe/BTJvcpzNwJhIf7MwEW9IHM4ibLkemr0SFHwnJjwT825oAzAQ6YgqmevzLT7x+YK0fhUPdbUl0iUNfYjq9kIb6UU8ItvNMZ9jpCQNo5R7EEytlznIapncKNlkNX3iAHBRrsXAB14ion5YjiVE19PZ5SUMN6BB5E08pWC2wY68RER09pzCWThFVQdnTGswwqwfBsv/hrdIgyPGjrhojkY3aW7p7fH6tigmgE73/hR/63vjvLElecF891JHliqOidaVBPMzqmQ8KYNIRdRSoLV5NXQ5NcocyvyOkkQw3Nhzpnp7afHFnfKj+D1gJq6a/TFP/RB2a3sjyRSJZeqR+FL7ANrKTuEr3w/gxVk2T/eSghpcBc77IS2fqiNGweeK4ICZGSQWAu/WgOncj3nFU0kt1akgC9ealxEmFxHG9pMfx1FTa+So/dFanILjpLWbiU5UEqP+ZuFUXDATyyUqEPJ9tQEgZzSlKkghKiF2gLrluqoZx6jxn7EFthDzQ9UQMUFks+CyOQoa1gsmiwfUxI58UvI0KUFqNcRSgcs1SgArKlVB+/R9avCArN6RKAdnSMuXkpauINLSQ3qCqKMIxIqvIUJ+CCu1o6GjxlyUC3u6nGlms7rkWnXeDnvkTYcl49IGLHIpACITcRvf91iKh+V7obOoeItTrd62gkAiXiMjInIgwwFjF/r9CEpIOTtJHJBjIf6bqNB6r6B+apUABhK2myKeR4NYGTOnMnS1BK8WK1CkFZmikMI259MSNBXBFNclL3TLd4pKIGI9mXR+zjhu7mPGYifzmFK7wDPd6lTVxTEWiTxveQBYpuRqUE5CAFEjxnyLx41rlAwnatRQxN7aALw4oXm2K9/gweRbWg0JPWIutwGNgEr7ZqtIltXpfvcMsm9tqjQs5UYDUNOwkBtBTec+Zp+UfPQLxCxrV1+pmWGUCbG321XuEF2qa1dRov85aphHvVWPR+1f6ISHh9OX5SYotU1XXR3RbFYeU/u3i9ms2eUS6JZGmLXcPCGcWwJAZ8qn3+eyZcJpk3UTvKAbIQEsP0+TydqCqCIx8MkQt/uD3FMFWfW/zsQvPW/L34puCQkwGqH/5U8YNm2H+WIid0rcMhay4UMgHzsakDon/1/WpMplPMPLrv0gr+bemwoAS2Y2Sqa8AHOF6VlMJ85wm/73TfD87jOIQhy/SjhTh+DFnYIbUV1aflXML+d/k2slTz5PFLIRAjkYAP2v62pkfikIFy5Bv3qdEw0w3xNekl+M//5Zh3Vvj8P2JR+R88abGwDDxm1wxr1110UiqHVZSN77AQ6teAtx237DrCdfwbtPPWn1hW5SAExnE+z3088lOI//Fi3UJdfgFdUMFoUvMhGO2zr4Y/f3y7Bv9RIhEOOYJJE4QfWw0Og0sOg1EGny4e0VhILsPGRn5WDSG++j35h+2LV1N8xmA1g3CpPtBkDSrpX9LmNLx3dy6U16ZCT9jUuXr2HXeQ2Mhccx8J57EUCA2LhsOQb9bzoGPv40Ll7aCZNRc/MBQP18Z9xrd5kSKZRKH5RYruKcNBJPHQjFD/73osXsqcjyUkMjCkG79sFQawogYqQ3HwDyR0ZD3LpF7a2/VXPuXoe/KCOG3K8dwpgcjG5aAmXPR8CmHUJqQS7C5/wCfQsP5CfFo2l0b4glspsPAMik8Pz+c4jbtKye+QQgzyVfcPc6g/x9AqCKHAxL+mHM8DuIx30KMZYY5TaFZxCqPwO/qNsRGND05k1F0AjXe+0P0K/6A/r1W2FJTObPxzaFfORQyMfd77RUhI18fULQqcck5KTH4VqLYYhtJUWsnx5Bge0hVfnC3aju7gphsHzCw9x2I6nsgEmR3AfBzQYhuMJ527E7dRW4TQLRXEPeh8bA9Gs/rZX55ptaAhoh0eynHO45GvWmAEAE9x3gJAzMagwS4PKBTurap0hIT0+v07CUxjDiwR76vwADABUg2IokQnpaAAAAAElFTkSuQmCC"); - background-size: 48px auto; - } -} -.lang-flag { - background-position: -16px -108px; -} -.lang-flag.ca, -.lang-flag.ca-ES { - background-position: 0 0; -} -.lang-flag.cs, -.lang-flag.cs-CZ { - background-position: -16px 0; -} -.lang-flag.da, -.lang-flag.da-DK { - background-position: -32px 0; -} -.lang-flag.de, -.lang-flag.de-DE { - background-position: 0 -12px; -} -.lang-flag.el, -.lang-flag.el-GR { - background-position: -16px -12px; -} -.lang-flag.en, -.lang-flag.en-US { - background-position: -32px -12px; -} -.lang-flag.fr, -.lang-flag.fr-FR { - background-position: 0 -24px; -} -.lang-flag.hu, -.lang-flag.hu-HU { - background-position: -16px -24px; -} -.lang-flag.it, -.lang-flag.it-IT { - background-position: -32px -24px; -} -.lang-flag.ko, -.lang-flag.ko-KR { - background-position: 0 -36px; -} -.lang-flag.nl, -.lang-flag.nl-NL { - background-position: -16px -36px; -} -.lang-flag.nb, -.lang-flag.nb-NO, -.lang-flag.nn, -.lang-flag.nn-NO { - background-position: -32px -36px; -} -.lang-flag.pl, -.lang-flag.pl-PL { - background-position: 0 -48px; -} -.lang-flag.pt, -.lang-flag.pt-BR { - background-position: -16px -48px; -} -.lang-flag.ro, -.lang-flag.ro-RO { - background-position: -32px -48px; -} -.lang-flag.ru, -.lang-flag.ru-RU { - background-position: 0 -60px; -} -.lang-flag.sv, -.lang-flag.sv-SE { - background-position: -32px -60px; -} -.lang-flag.tr, -.lang-flag.tr-TR { - background-position: 0 -72px; -} -.lang-flag.uk, -.lang-flag.uk-UA { - background-position: -16px -72px; -} -.lang-flag.lv, -.lang-flag.lv-LV { - background-position: -32px -72px; -} -.lang-flag.lt, -.lang-flag.lt-LT { - background-position: 0 -84px; -} -.lang-flag.vi, -.lang-flag.vi-VN { - background-position: -16px -84px; -} -.lang-flag.de-CH { - background-position: -32px -84px; -} -.lang-flag.pt-PT { - background-position: -16px -96px; -} -.lang-flag.de-AT { - background-position: -32px -96px; -} -.lang-flag.es, -.lang-flag.es-ES { - background-position: 0 -108px; -} -.lang-flag.en-GB { - background-position: -32px -108px; -} -.lang-flag.en-AU { - background-position: 0 -120px; -} -.lang-flag.az-Latn-AZ { - background-position: -16px -120px; -} -.lang-flag.id, -.lang-flag.id-ID { - background-position: -32px -120px; -} -.lang-flag.bg, -.lang-flag.bg-BG { - background-position: 0 -132px; -} -.lang-flag.ca-ES-valencia { - background-position: -16px -132px; -} -.lang-flag.en-CA { - background-position: -32px -132px; -} -.lang-flag.en-ZA { - background-position: 0 -144px; -} -.lang-flag.eu, -.lang-flag.eu-ES { - background-position: -16px -144px; -} -.lang-flag.gl, -.lang-flag.gl-ES { - background-position: -32px -144px; -} -.lang-flag.hr, -.lang-flag.hr-HR { - background-position: 0 -156px; -} -.lang-flag.lb, -.lang-flag.lb-LU { - background-position: -16px -156px; -} -.lang-flag.mn, -.lang-flag.mn-MN { - background-position: -32px -156px; -} -.lang-flag.sl, -.lang-flag.sl-SI { - background-position: 0 -168px; -} -.lang-flag.sr, -.lang-flag.sr-Cyrl-RS, -.lang-flag.sr-Latn-RS { - background-position: -16px -168px; -} -.lang-flag.sk, -.lang-flag.sk-SK { - background-position: -32px -168px; -} -.lang-flag.kk, -.lang-flag.kk-KZ { - background-position: 0 -180px; -} -.lang-flag.fi, -.lang-flag.fi-FI, -.lang-flag.sv-FI { - background-position: -16px -180px; -} -.lang-flag.zh, -.lang-flag.zh-CN { - background-position: -32px -180px; -} -.lang-flag.ja, -.lang-flag.ja-JP { - background-position: 0 -192px; -} -.lang-flag.es-MX { - background-position: -16px -192px; -} -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - border: 1px solid #dfdfdf; - white-space: nowrap; - padding-top: 0; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - font-size: 0; -} -.doc-placeholder > .columns { - width: 100%; - height: 100%; - display: inline-block; - background: linear-gradient(90deg, #d5d5d5 0px, rgba(0, 0, 0, 0) 1px) 0 0, linear-gradient(rgba(0, 0, 0, 0) 19px, #d5d5d5 20px) 0 0, linear-gradient(#f1f1f1 0px, #f1f1f1 20px) 0 0 repeat-x; - background-size: 80px 20px; - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; -} -.doc-placeholder > .columns:first-child { - background: linear-gradient(#f1f1f1 19px, #d5d5d5 20px) 0 0; - background-size: 20px 20px; - width: 25px; -} -.picker-modal.container-view-comment { - background-color: #efeff4; -} -.picker-modal.container-view-comment.onHide .swipe-container, -.picker-modal.container-view-comment.onHide .toolbar-inner, -.picker-modal.container-view-comment.onHide .pages { - opacity: 0.6; -} -.picker-modal.container-view-comment .swipe-container, -.picker-modal.container-view-comment .toolbar, -.picker-modal.container-view-comment .pages { - background-color: #FFFFFF; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #8e8e93; -} diff --git a/apps/spreadsheeteditor/mobile/resources/css/app-material.css b/apps/spreadsheeteditor/mobile/resources/css/app-material.css deleted file mode 100644 index 33c776dd6..000000000 --- a/apps/spreadsheeteditor/mobile/resources/css/app-material.css +++ /dev/null @@ -1,8305 +0,0 @@ -html, -body, -.framework7-root { - position: relative; - height: 100%; - width: 100%; - overflow-x: hidden; -} -body { - font-family: Roboto, Noto, Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; - color: #212121; - font-size: 14px; - line-height: 1.5; - width: 100%; - -webkit-text-size-adjust: 100%; - background: #fff; - overflow: hidden; -} -.framework7-root { - overflow: hidden; -} -* { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -a, -input, -textarea, -select { - outline: 0; -} -a { - text-decoration: none; - color: #40865c; -} -p { - margin: 1em 0; -} -/* === Grid === */ -.row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.row > [class*="col-"] { - box-sizing: border-box; -} -.row .col-auto { - width: 100%; -} -.row .col-100 { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); -} -.row.no-gutter .col-100 { - width: 100%; -} -.row .col-95 { - width: 95%; - width: -webkit-calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); -} -.row.no-gutter .col-95 { - width: 95%; -} -.row .col-90 { - width: 90%; - width: -webkit-calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); -} -.row.no-gutter .col-90 { - width: 90%; -} -.row .col-85 { - width: 85%; - width: -webkit-calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); -} -.row.no-gutter .col-85 { - width: 85%; -} -.row .col-80 { - width: 80%; - width: -webkit-calc((100% - 16px*0.25) / 1.25); - width: calc((100% - 16px*0.25) / 1.25); -} -.row.no-gutter .col-80 { - width: 80%; -} -.row .col-75 { - width: 75%; - width: -webkit-calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); -} -.row.no-gutter .col-75 { - width: 75%; -} -.row .col-70 { - width: 70%; - width: -webkit-calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); -} -.row.no-gutter .col-70 { - width: 70%; -} -.row .col-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); -} -.row.no-gutter .col-66 { - width: 66.66666666666666%; -} -.row .col-65 { - width: 65%; - width: -webkit-calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); -} -.row.no-gutter .col-65 { - width: 65%; -} -.row .col-60 { - width: 60%; - width: -webkit-calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); -} -.row.no-gutter .col-60 { - width: 60%; -} -.row .col-55 { - width: 55%; - width: -webkit-calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); -} -.row.no-gutter .col-55 { - width: 55%; -} -.row .col-50 { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); -} -.row.no-gutter .col-50 { - width: 50%; -} -.row .col-45 { - width: 45%; - width: -webkit-calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); -} -.row.no-gutter .col-45 { - width: 45%; -} -.row .col-40 { - width: 40%; - width: -webkit-calc((100% - 16px*1.5) / 2.5); - width: calc((100% - 16px*1.5) / 2.5); -} -.row.no-gutter .col-40 { - width: 40%; -} -.row .col-35 { - width: 35%; - width: -webkit-calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 16px*1.8571428571428572) / 2.857142857142857); -} -.row.no-gutter .col-35 { - width: 35%; -} -.row .col-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); -} -.row.no-gutter .col-33 { - width: 33.333333333333336%; -} -.row .col-30 { - width: 30%; - width: -webkit-calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); -} -.row.no-gutter .col-30 { - width: 30%; -} -.row .col-25 { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); -} -.row.no-gutter .col-25 { - width: 25%; -} -.row .col-20 { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); -} -.row.no-gutter .col-20 { - width: 20%; -} -.row .col-15 { - width: 15%; - width: -webkit-calc((100% - 16px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 16px*5.666666666666667) / 6.666666666666667); -} -.row.no-gutter .col-15 { - width: 15%; -} -.row .col-10 { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); -} -.row.no-gutter .col-10 { - width: 10%; -} -.row .col-5 { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); -} -.row.no-gutter .col-5 { - width: 5%; -} -.row .col-auto:nth-last-child(1), -.row .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); -} -.row.no-gutter .col-auto:nth-last-child(1), -.row.no-gutter .col-auto:nth-last-child(1) ~ .col-auto { - width: 100%; -} -.row .col-auto:nth-last-child(2), -.row .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); -} -.row.no-gutter .col-auto:nth-last-child(2), -.row.no-gutter .col-auto:nth-last-child(2) ~ .col-auto { - width: 50%; -} -.row .col-auto:nth-last-child(3), -.row .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); -} -.row.no-gutter .col-auto:nth-last-child(3), -.row.no-gutter .col-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; -} -.row .col-auto:nth-last-child(4), -.row .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); -} -.row.no-gutter .col-auto:nth-last-child(4), -.row.no-gutter .col-auto:nth-last-child(4) ~ .col-auto { - width: 25%; -} -.row .col-auto:nth-last-child(5), -.row .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); -} -.row.no-gutter .col-auto:nth-last-child(5), -.row.no-gutter .col-auto:nth-last-child(5) ~ .col-auto { - width: 20%; -} -.row .col-auto:nth-last-child(6), -.row .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 16px*5) / 6); - width: calc((100% - 16px*5) / 6); -} -.row.no-gutter .col-auto:nth-last-child(6), -.row.no-gutter .col-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; -} -.row .col-auto:nth-last-child(7), -.row .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 16px*6) / 7); - width: calc((100% - 16px*6) / 7); -} -.row.no-gutter .col-auto:nth-last-child(7), -.row.no-gutter .col-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; -} -.row .col-auto:nth-last-child(8), -.row .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 16px*7) / 8); - width: calc((100% - 16px*7) / 8); -} -.row.no-gutter .col-auto:nth-last-child(8), -.row.no-gutter .col-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; -} -.row .col-auto:nth-last-child(9), -.row .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 16px*8) / 9); - width: calc((100% - 16px*8) / 9); -} -.row.no-gutter .col-auto:nth-last-child(9), -.row.no-gutter .col-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; -} -.row .col-auto:nth-last-child(10), -.row .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); -} -.row.no-gutter .col-auto:nth-last-child(10), -.row.no-gutter .col-auto:nth-last-child(10) ~ .col-auto { - width: 10%; -} -.row .col-auto:nth-last-child(11), -.row .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 16px*10) / 11); - width: calc((100% - 16px*10) / 11); -} -.row.no-gutter .col-auto:nth-last-child(11), -.row.no-gutter .col-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; -} -.row .col-auto:nth-last-child(12), -.row .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 16px*11) / 12); - width: calc((100% - 16px*11) / 12); -} -.row.no-gutter .col-auto:nth-last-child(12), -.row.no-gutter .col-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; -} -.row .col-auto:nth-last-child(13), -.row .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 16px*12) / 13); - width: calc((100% - 16px*12) / 13); -} -.row.no-gutter .col-auto:nth-last-child(13), -.row.no-gutter .col-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; -} -.row .col-auto:nth-last-child(14), -.row .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 16px*13) / 14); - width: calc((100% - 16px*13) / 14); -} -.row.no-gutter .col-auto:nth-last-child(14), -.row.no-gutter .col-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; -} -.row .col-auto:nth-last-child(15), -.row .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 16px*14) / 15); - width: calc((100% - 16px*14) / 15); -} -.row.no-gutter .col-auto:nth-last-child(15), -.row.no-gutter .col-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; -} -.row .col-auto:nth-last-child(16), -.row .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 16px*15) / 16); - width: calc((100% - 16px*15) / 16); -} -.row.no-gutter .col-auto:nth-last-child(16), -.row.no-gutter .col-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; -} -.row .col-auto:nth-last-child(17), -.row .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 16px*16) / 17); - width: calc((100% - 16px*16) / 17); -} -.row.no-gutter .col-auto:nth-last-child(17), -.row.no-gutter .col-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; -} -.row .col-auto:nth-last-child(18), -.row .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 16px*17) / 18); - width: calc((100% - 16px*17) / 18); -} -.row.no-gutter .col-auto:nth-last-child(18), -.row.no-gutter .col-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; -} -.row .col-auto:nth-last-child(19), -.row .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 16px*18) / 19); - width: calc((100% - 16px*18) / 19); -} -.row.no-gutter .col-auto:nth-last-child(19), -.row.no-gutter .col-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; -} -.row .col-auto:nth-last-child(20), -.row .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); -} -.row.no-gutter .col-auto:nth-last-child(20), -.row.no-gutter .col-auto:nth-last-child(20) ~ .col-auto { - width: 5%; -} -.row .col-auto:nth-last-child(21), -.row .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 16px*20) / 21); - width: calc((100% - 16px*20) / 21); -} -.row.no-gutter .col-auto:nth-last-child(21), -.row.no-gutter .col-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; -} -@media all and (min-width: 768px) { - .row .tablet-100 { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); - } - .row.no-gutter .tablet-100 { - width: 100%; - } - .row .tablet-95 { - width: 95%; - width: -webkit-calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - width: calc((100% - 16px*0.05263157894736836) / 1.0526315789473684); - } - .row.no-gutter .tablet-95 { - width: 95%; - } - .row .tablet-90 { - width: 90%; - width: -webkit-calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - width: calc((100% - 16px*0.11111111111111116) / 1.1111111111111112); - } - .row.no-gutter .tablet-90 { - width: 90%; - } - .row .tablet-85 { - width: 85%; - width: -webkit-calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - width: calc((100% - 16px*0.17647058823529416) / 1.1764705882352942); - } - .row.no-gutter .tablet-85 { - width: 85%; - } - .row .tablet-80 { - width: 80%; - width: -webkit-calc((100% - 16px*0.25) / 1.25); - width: calc((100% - 16px*0.25) / 1.25); - } - .row.no-gutter .tablet-80 { - width: 80%; - } - .row .tablet-75 { - width: 75%; - width: -webkit-calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - width: calc((100% - 16px*0.33333333333333326) / 1.3333333333333333); - } - .row.no-gutter .tablet-75 { - width: 75%; - } - .row .tablet-70 { - width: 70%; - width: -webkit-calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - width: calc((100% - 16px*0.4285714285714286) / 1.4285714285714286); - } - .row.no-gutter .tablet-70 { - width: 70%; - } - .row .tablet-66 { - width: 66.66666666666666%; - width: -webkit-calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - width: calc((100% - 16px*0.5000000000000002) / 1.5000000000000002); - } - .row.no-gutter .tablet-66 { - width: 66.66666666666666%; - } - .row .tablet-65 { - width: 65%; - width: -webkit-calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - width: calc((100% - 16px*0.5384615384615385) / 1.5384615384615385); - } - .row.no-gutter .tablet-65 { - width: 65%; - } - .row .tablet-60 { - width: 60%; - width: -webkit-calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - width: calc((100% - 16px*0.6666666666666667) / 1.6666666666666667); - } - .row.no-gutter .tablet-60 { - width: 60%; - } - .row .tablet-55 { - width: 55%; - width: -webkit-calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - width: calc((100% - 16px*0.8181818181818181) / 1.8181818181818181); - } - .row.no-gutter .tablet-55 { - width: 55%; - } - .row .tablet-50 { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); - } - .row.no-gutter .tablet-50 { - width: 50%; - } - .row .tablet-45 { - width: 45%; - width: -webkit-calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - width: calc((100% - 16px*1.2222222222222223) / 2.2222222222222223); - } - .row.no-gutter .tablet-45 { - width: 45%; - } - .row .tablet-40 { - width: 40%; - width: -webkit-calc((100% - 16px*1.5) / 2.5); - width: calc((100% - 16px*1.5) / 2.5); - } - .row.no-gutter .tablet-40 { - width: 40%; - } - .row .tablet-35 { - width: 35%; - width: -webkit-calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - width: calc((100% - 16px*1.8571428571428572) / 2.857142857142857); - } - .row.no-gutter .tablet-35 { - width: 35%; - } - .row .tablet-33 { - width: 33.333333333333336%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); - } - .row.no-gutter .tablet-33 { - width: 33.333333333333336%; - } - .row .tablet-30 { - width: 30%; - width: -webkit-calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - width: calc((100% - 16px*2.3333333333333335) / 3.3333333333333335); - } - .row.no-gutter .tablet-30 { - width: 30%; - } - .row .tablet-25 { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); - } - .row.no-gutter .tablet-25 { - width: 25%; - } - .row .tablet-20 { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); - } - .row.no-gutter .tablet-20 { - width: 20%; - } - .row .tablet-15 { - width: 15%; - width: -webkit-calc((100% - 16px*5.666666666666667) / 6.666666666666667); - width: calc((100% - 16px*5.666666666666667) / 6.666666666666667); - } - .row.no-gutter .tablet-15 { - width: 15%; - } - .row .tablet-10 { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); - } - .row.no-gutter .tablet-10 { - width: 10%; - } - .row .tablet-5 { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); - } - .row.no-gutter .tablet-5 { - width: 5%; - } - .row .tablet-auto:nth-last-child(1), - .row .tablet-auto:nth-last-child(1) ~ .col-auto { - width: 100%; - width: -webkit-calc((100% - 16px*0) / 1); - width: calc((100% - 16px*0) / 1); - } - .row.no-gutter .tablet-auto:nth-last-child(1), - .row.no-gutter .tablet-auto:nth-last-child(1) ~ .tablet-auto { - width: 100%; - } - .row .tablet-auto:nth-last-child(2), - .row .tablet-auto:nth-last-child(2) ~ .col-auto { - width: 50%; - width: -webkit-calc((100% - 16px*1) / 2); - width: calc((100% - 16px*1) / 2); - } - .row.no-gutter .tablet-auto:nth-last-child(2), - .row.no-gutter .tablet-auto:nth-last-child(2) ~ .tablet-auto { - width: 50%; - } - .row .tablet-auto:nth-last-child(3), - .row .tablet-auto:nth-last-child(3) ~ .col-auto { - width: 33.33333333%; - width: -webkit-calc((100% - 16px*2) / 3); - width: calc((100% - 16px*2) / 3); - } - .row.no-gutter .tablet-auto:nth-last-child(3), - .row.no-gutter .tablet-auto:nth-last-child(3) ~ .tablet-auto { - width: 33.33333333%; - } - .row .tablet-auto:nth-last-child(4), - .row .tablet-auto:nth-last-child(4) ~ .col-auto { - width: 25%; - width: -webkit-calc((100% - 16px*3) / 4); - width: calc((100% - 16px*3) / 4); - } - .row.no-gutter .tablet-auto:nth-last-child(4), - .row.no-gutter .tablet-auto:nth-last-child(4) ~ .tablet-auto { - width: 25%; - } - .row .tablet-auto:nth-last-child(5), - .row .tablet-auto:nth-last-child(5) ~ .col-auto { - width: 20%; - width: -webkit-calc((100% - 16px*4) / 5); - width: calc((100% - 16px*4) / 5); - } - .row.no-gutter .tablet-auto:nth-last-child(5), - .row.no-gutter .tablet-auto:nth-last-child(5) ~ .tablet-auto { - width: 20%; - } - .row .tablet-auto:nth-last-child(6), - .row .tablet-auto:nth-last-child(6) ~ .col-auto { - width: 16.66666667%; - width: -webkit-calc((100% - 16px*5) / 6); - width: calc((100% - 16px*5) / 6); - } - .row.no-gutter .tablet-auto:nth-last-child(6), - .row.no-gutter .tablet-auto:nth-last-child(6) ~ .tablet-auto { - width: 16.66666667%; - } - .row .tablet-auto:nth-last-child(7), - .row .tablet-auto:nth-last-child(7) ~ .col-auto { - width: 14.28571429%; - width: -webkit-calc((100% - 16px*6) / 7); - width: calc((100% - 16px*6) / 7); - } - .row.no-gutter .tablet-auto:nth-last-child(7), - .row.no-gutter .tablet-auto:nth-last-child(7) ~ .tablet-auto { - width: 14.28571429%; - } - .row .tablet-auto:nth-last-child(8), - .row .tablet-auto:nth-last-child(8) ~ .col-auto { - width: 12.5%; - width: -webkit-calc((100% - 16px*7) / 8); - width: calc((100% - 16px*7) / 8); - } - .row.no-gutter .tablet-auto:nth-last-child(8), - .row.no-gutter .tablet-auto:nth-last-child(8) ~ .tablet-auto { - width: 12.5%; - } - .row .tablet-auto:nth-last-child(9), - .row .tablet-auto:nth-last-child(9) ~ .col-auto { - width: 11.11111111%; - width: -webkit-calc((100% - 16px*8) / 9); - width: calc((100% - 16px*8) / 9); - } - .row.no-gutter .tablet-auto:nth-last-child(9), - .row.no-gutter .tablet-auto:nth-last-child(9) ~ .tablet-auto { - width: 11.11111111%; - } - .row .tablet-auto:nth-last-child(10), - .row .tablet-auto:nth-last-child(10) ~ .col-auto { - width: 10%; - width: -webkit-calc((100% - 16px*9) / 10); - width: calc((100% - 16px*9) / 10); - } - .row.no-gutter .tablet-auto:nth-last-child(10), - .row.no-gutter .tablet-auto:nth-last-child(10) ~ .tablet-auto { - width: 10%; - } - .row .tablet-auto:nth-last-child(11), - .row .tablet-auto:nth-last-child(11) ~ .col-auto { - width: 9.09090909%; - width: -webkit-calc((100% - 16px*10) / 11); - width: calc((100% - 16px*10) / 11); - } - .row.no-gutter .tablet-auto:nth-last-child(11), - .row.no-gutter .tablet-auto:nth-last-child(11) ~ .tablet-auto { - width: 9.09090909%; - } - .row .tablet-auto:nth-last-child(12), - .row .tablet-auto:nth-last-child(12) ~ .col-auto { - width: 8.33333333%; - width: -webkit-calc((100% - 16px*11) / 12); - width: calc((100% - 16px*11) / 12); - } - .row.no-gutter .tablet-auto:nth-last-child(12), - .row.no-gutter .tablet-auto:nth-last-child(12) ~ .tablet-auto { - width: 8.33333333%; - } - .row .tablet-auto:nth-last-child(13), - .row .tablet-auto:nth-last-child(13) ~ .col-auto { - width: 7.69230769%; - width: -webkit-calc((100% - 16px*12) / 13); - width: calc((100% - 16px*12) / 13); - } - .row.no-gutter .tablet-auto:nth-last-child(13), - .row.no-gutter .tablet-auto:nth-last-child(13) ~ .tablet-auto { - width: 7.69230769%; - } - .row .tablet-auto:nth-last-child(14), - .row .tablet-auto:nth-last-child(14) ~ .col-auto { - width: 7.14285714%; - width: -webkit-calc((100% - 16px*13) / 14); - width: calc((100% - 16px*13) / 14); - } - .row.no-gutter .tablet-auto:nth-last-child(14), - .row.no-gutter .tablet-auto:nth-last-child(14) ~ .tablet-auto { - width: 7.14285714%; - } - .row .tablet-auto:nth-last-child(15), - .row .tablet-auto:nth-last-child(15) ~ .col-auto { - width: 6.66666667%; - width: -webkit-calc((100% - 16px*14) / 15); - width: calc((100% - 16px*14) / 15); - } - .row.no-gutter .tablet-auto:nth-last-child(15), - .row.no-gutter .tablet-auto:nth-last-child(15) ~ .tablet-auto { - width: 6.66666667%; - } - .row .tablet-auto:nth-last-child(16), - .row .tablet-auto:nth-last-child(16) ~ .col-auto { - width: 6.25%; - width: -webkit-calc((100% - 16px*15) / 16); - width: calc((100% - 16px*15) / 16); - } - .row.no-gutter .tablet-auto:nth-last-child(16), - .row.no-gutter .tablet-auto:nth-last-child(16) ~ .tablet-auto { - width: 6.25%; - } - .row .tablet-auto:nth-last-child(17), - .row .tablet-auto:nth-last-child(17) ~ .col-auto { - width: 5.88235294%; - width: -webkit-calc((100% - 16px*16) / 17); - width: calc((100% - 16px*16) / 17); - } - .row.no-gutter .tablet-auto:nth-last-child(17), - .row.no-gutter .tablet-auto:nth-last-child(17) ~ .tablet-auto { - width: 5.88235294%; - } - .row .tablet-auto:nth-last-child(18), - .row .tablet-auto:nth-last-child(18) ~ .col-auto { - width: 5.55555556%; - width: -webkit-calc((100% - 16px*17) / 18); - width: calc((100% - 16px*17) / 18); - } - .row.no-gutter .tablet-auto:nth-last-child(18), - .row.no-gutter .tablet-auto:nth-last-child(18) ~ .tablet-auto { - width: 5.55555556%; - } - .row .tablet-auto:nth-last-child(19), - .row .tablet-auto:nth-last-child(19) ~ .col-auto { - width: 5.26315789%; - width: -webkit-calc((100% - 16px*18) / 19); - width: calc((100% - 16px*18) / 19); - } - .row.no-gutter .tablet-auto:nth-last-child(19), - .row.no-gutter .tablet-auto:nth-last-child(19) ~ .tablet-auto { - width: 5.26315789%; - } - .row .tablet-auto:nth-last-child(20), - .row .tablet-auto:nth-last-child(20) ~ .col-auto { - width: 5%; - width: -webkit-calc((100% - 16px*19) / 20); - width: calc((100% - 16px*19) / 20); - } - .row.no-gutter .tablet-auto:nth-last-child(20), - .row.no-gutter .tablet-auto:nth-last-child(20) ~ .tablet-auto { - width: 5%; - } - .row .tablet-auto:nth-last-child(21), - .row .tablet-auto:nth-last-child(21) ~ .col-auto { - width: 4.76190476%; - width: -webkit-calc((100% - 16px*20) / 21); - width: calc((100% - 16px*20) / 21); - } - .row.no-gutter .tablet-auto:nth-last-child(21), - .row.no-gutter .tablet-auto:nth-last-child(21) ~ .tablet-auto { - width: 4.76190476%; - } -} -/* === Views === */ -.views, -.view { - position: relative; - width: 100%; - height: 100%; - z-index: 5000; -} -.views { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.view { - overflow: hidden; - box-sizing: border-box; -} -/* === Pages === */ -.pages { - position: relative; - width: 100%; - height: 100%; - overflow: hidden; -} -.page { - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #fff; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page.cached { - display: none; -} -.page-on-left { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.page-on-right { - opacity: 0; - pointer-events: none; - -webkit-transform: translate3d(0, 56px, 0); - transform: translate3d(0, 56px, 0); -} -.page-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - box-sizing: border-box; - height: 100%; - position: relative; - z-index: 1; -} -.page-transitioning { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.page-from-right-to-center { - pointer-events: none; - -webkit-animation: pageFromRightToCenter 300ms forwards; - animation: pageFromRightToCenter 300ms forwards; -} -.page-from-center-to-right { - pointer-events: none; - -webkit-animation: pageFromCenterToRight 300ms forwards; - animation: pageFromCenterToRight 300ms forwards; -} -@-webkit-keyframes pageFromRightToCenter { - from { - opacity: 0; - -webkit-transform: translate3d(0, 56px, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes pageFromRightToCenter { - from { - opacity: 0; - transform: translate3d(0, 56px, 0); - } - to { - opacity: 1; - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes pageFromCenterToRight { - from { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - } - to { - opacity: 0; - -webkit-transform: translate3d(0, 56px, 0); - } -} -@keyframes pageFromCenterToRight { - from { - opacity: 1; - transform: translate3d(0, 0, 0); - } - to { - opacity: 0; - transform: translate3d(0, 56px, 0); - } -} -.page-from-center-to-left { - -webkit-animation: pageFromCenterToLeft 300ms forwards; - animation: pageFromCenterToLeft 300ms forwards; -} -.page-from-left-to-center { - -webkit-animation: pageFromLeftToCenter 300ms forwards; - animation: pageFromLeftToCenter 300ms forwards; -} -@-webkit-keyframes pageFromCenterToLeft { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@keyframes pageFromCenterToLeft { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@-webkit-keyframes pageFromLeftToCenter { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -@keyframes pageFromLeftToCenter { - from { - opacity: 1; - } - to { - opacity: 1; - } -} -/* === Toolbars === */ -.navbar-inner, -.toolbar-inner { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - box-sizing: border-box; - overflow: hidden; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.navbar-inner { - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; -} -.toolbar-inner { - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.navbar-inner.cached { - display: none; -} -.navbar, -.toolbar { - width: 100%; - box-sizing: border-box; - position: relative; - margin: 0; - z-index: 500; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - color: #fff; -} -.navbar b, -.toolbar b { - font-weight: 500; -} -.navbar ~ .toolbar { - z-index: 499; -} -.navbar, -.toolbar, -.subnavbar { - background: #40865c; -} -.navbar a.link, -.toolbar a.link, -.subnavbar a.link { - text-decoration: none; - position: relative; - color: #fff; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - padding: 0 16px; - min-width: 48px; -} -.navbar a.link:before, -.toolbar a.link:before, -.subnavbar a.link:before { - content: ''; - width: 152%; - height: 152%; - position: absolute; - left: -26%; - top: -26%; - background-image: -webkit-radial-gradient(center, circle cover, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-image: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-repeat: no-repeat; - background-position: center; - background-size: 100% 100%; - opacity: 0; - pointer-events: none; - -webkit-transition-duration: 600ms; - transition-duration: 600ms; -} -html:not(.watch-active-state) .navbar a.link:active:before, -html:not(.watch-active-state) .toolbar a.link:active:before, -html:not(.watch-active-state) .subnavbar a.link:active:before, -.navbar a.link.active-state:before, -.toolbar a.link.active-state:before, -.subnavbar a.link.active-state:before { - opacity: 1; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.navbar a.link i + span, -.toolbar a.link i + span, -.subnavbar a.link i + span, -.navbar a.link i + i, -.toolbar a.link i + i, -.subnavbar a.link i + i, -.navbar a.link span + i, -.toolbar a.link span + i, -.subnavbar a.link span + i, -.navbar a.link span + span, -.toolbar a.link span + span, -.subnavbar a.link span + span { - margin-left: 8px; -} -.navbar a.icon-only, -.toolbar a.icon-only, -.subnavbar a.icon-only { - min-width: 0; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.navbar i.icon, -.toolbar i.icon, -.subnavbar i.icon { - display: block; -} -.navbar .center, -.subnavbar .center { - font-size: 20px; - font-weight: 500; - text-align: center; - margin: 0 16px; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - line-height: 56px; - display: inline-block; - text-align: left; -} -.navbar .left, -.subnavbar .left, -.navbar .right, -.subnavbar .right { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar .right, -.subnavbar .right { - margin-left: auto; -} -.navbar .right:first-child, -.subnavbar .right:first-child { - position: absolute; - right: 16px; - height: 100%; -} -.navbar { - left: 0; - top: 0; - height: 56px; - font-size: 20px; -} -.navbar a.link { - line-height: 56px; - height: 56px; -} -.popup .navbar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.subnavbar { - height: 48px; - width: 100%; - position: absolute; - left: 0; - top: 100%; - z-index: 20; - box-sizing: border-box; - padding: 0 16px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - overflow: hidden; -} -.subnavbar a.link { - line-height: 48px; - height: 48px; -} -.subnavbar .center { - line-height: 48px; -} -.subnavbar .center:first-child { - margin-left: 56px; -} -.navbar.no-border .subnavbar { - margin-top: 0; -} -.navbar-on-left .subnavbar, -.navbar-on-right .subnavbar { - pointer-events: none; -} -.navbar .subnavbar, -.page .subnavbar { - position: absolute; -} -.page > .subnavbar { - top: 0; - margin-top: 0; -} -.subnavbar > .buttons-row { - width: 100%; -} -.subnavbar .searchbar, -.subnavbar.searchbar { - position: absolute; -} -.subnavbar.searchbar, -.subnavbar .searchbar { - position: absolute; -} -.subnavbar .searchbar { - left: 0; - top: 0; -} -.toolbar { - left: 0; - bottom: 0; - height: 48px; - font-size: 14px; -} -.toolbar a.link { - line-height: 48px; - height: 48px; -} -.toolbar a { - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; -} -.tabbar { - z-index: 5001; - overflow: hidden; - bottom: auto; - top: 0; -} -.tabbar .toolbar-inner { - padding-left: 0; - padding-right: 0; -} -.tabbar a.link { - line-height: 1.4; -} -.tabbar a.tab-link, -.tabbar a.link { - height: 100%; - width: 100%; - box-sizing: border-box; - padding-left: 0; - padding-right: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex: 1; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; - font-size: 14px; - text-transform: uppercase; -} -.tabbar i.icon { - height: 24px; -} -.tabbar a.tab-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - overflow: hidden; - color: rgba(255, 255, 255, 0.7); - position: relative; -} -.tabbar a.tab-link.active, -html:not(.watch-active-state) .tabbar a.tab-link:active, -.tabbar a.tab-link.active-state { - color: #ffffff; -} -.tabbar .tab-link-highlight { - position: absolute; - left: 0; - bottom: 0; - height: 3px; - background: #275238; - background: rgba(255, 255, 255, 0.5); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabbar-labels { - height: 72px; -} -.tabbar-labels a.tab-link, -.tabbar-labels a.link { - padding-top: 12px; - padding-bottom: 12px; - height: 100%; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.tabbar-labels span.tabbar-label { - line-height: 1; - display: block; - margin: 0; - margin-top: 10px; - position: relative; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - max-width: 100%; -} -.tabbar-scrollable .toolbar-inner { - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - overflow: auto; -} -.tabbar-scrollable .toolbar-inner::-webkit-scrollbar { - display: none !important; - width: 0 !important; - height: 0 !important; - -webkit-appearance: none; - opacity: 0 !important; -} -.tabbar-scrollable a.tab-link, -.tabbar-scrollable a.link { - width: auto; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -ms-flex: 0; - padding: 0 16px; -} -.toolbar-bottom { - bottom: 0; - top: auto; -} -.toolbar-bottom .tab-link-highlight { - bottom: auto; - top: 0; -} -.subnavbar input[type="text"], -.navbar input[type="text"], -.subnavbar input[type="password"], -.navbar input[type="password"], -.subnavbar input[type="search"], -.navbar input[type="search"], -.subnavbar input[type="email"], -.navbar input[type="email"], -.subnavbar input[type="tel"], -.navbar input[type="tel"], -.subnavbar input[type="url"], -.navbar input[type="url"] { - box-sizing: border-box; - width: 100%; - height: 32px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 0; - font-family: inherit; - color: #fff; - font-size: 16px; - font-weight: 400; - background-color: transparent; - padding: 0; - border-bottom: 1px solid #fff; -} -.subnavbar input[type="text"]::-webkit-input-placeholder, -.navbar input[type="text"]::-webkit-input-placeholder, -.subnavbar input[type="password"]::-webkit-input-placeholder, -.navbar input[type="password"]::-webkit-input-placeholder, -.subnavbar input[type="search"]::-webkit-input-placeholder, -.navbar input[type="search"]::-webkit-input-placeholder, -.subnavbar input[type="email"]::-webkit-input-placeholder, -.navbar input[type="email"]::-webkit-input-placeholder, -.subnavbar input[type="tel"]::-webkit-input-placeholder, -.navbar input[type="tel"]::-webkit-input-placeholder, -.subnavbar input[type="url"]::-webkit-input-placeholder, -.navbar input[type="url"]::-webkit-input-placeholder { - color: #ffffff; - opacity: 1; -} -/* === Relation between toolbar/navbar types and pages === */ -.page > .navbar, -.view > .navbar, -.views > .navbar, -.page > .toolbar, -.view > .toolbar, -.views > .toolbar { - position: absolute; -} -.subnavbar ~ .page-content { - padding-top: 48px; -} -.toolbar-fixed .page-content, -.tabbar-fixed .page-content { - padding-top: 48px; -} -.tabbar-labels-fixed .page-content { - padding-top: 72px; -} -.toolbar ~ .page-content { - padding-top: 48px; -} -.tabbar-labels ~ .page-content { - padding-top: 72px; -} -.toolbar-bottom ~ .page-content, -.messagebar ~ .page-content { - padding-top: 0; - padding-bottom: 48px; -} -.tabbar-labels.toolbar-bottom ~ .page-content { - padding-bottom: 72px; -} -.navbar-fixed .page-content { - padding-top: 56px; -} -.navbar-fixed.toolbar-fixed .page-content, -.navbar-fixed.tabbar-fixed .page-content, -.navbar-fixed .toolbar-fixed .page-content, -.navbar-fixed .tabbar-fixed .page-content, -.toolbar-fixed .navbar-fixed .page-content, -.tabbar-fixed .navbar-fixed .page-content { - padding-top: 104px; -} -.navbar-fixed.tabbar-labels-fixed .page-content, -.navbar-fixed .tabbar-labels-fixed .page-content, -.tabbar-labels-fixed .navbar-fixed .page-content { - padding-top: 128px; -} -.navbar-fixed .toolbar ~ .page-content { - padding-top: 104px; -} -.navbar-fixed .messagebar ~ .page-content, -.navbar-fixed .toolbar-bottom ~ .page-content { - padding-top: 56px; -} -.navbar-fixed .tabbar-labels ~ .page-content { - padding-top: 128px; -} -.navbar-fixed .tabbar-labels.toolbar-bottom ~ .page-content { - padding-top: 56px; -} -.navbar-fixed .with-subnavbar .page-content, -.navbar-fixed .page-content.with-subnavbar, -.navbar-fixed .subnavbar ~ .page-content { - padding-top: 104px; -} -.navbar-fixed .page .subnavbar, -.navbar-fixed.page .subnavbar { - top: 56px; -} -.navbar-fixed .toolbar { - top: 56px; -} -.navbar-fixed .messagebar, -.navbar-fixed .toolbar-bottom { - top: auto; -} -.navbar.navbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.navbar.navbar-hiding ~ .page-content .list-group-title, -.navbar.navbar-hiding ~ .pages .list-group-title, -.navbar.navbar-hiding ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .page-content .subnavbar, -.navbar.navbar-hiding ~ .pages .subnavbar, -.navbar.navbar-hiding ~ .page .subnavbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hiding ~ .subnavbar, -.navbar.navbar-hiding ~ .toolbar { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar.navbar-hidden ~ .page-content .list-group-title, -.navbar.navbar-hidden ~ .pages .list-group-title, -.navbar.navbar-hidden ~ .page .list-group-title { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - top: -56px; -} -.navbar.navbar-hidden ~ .page-content .subnavbar, -.navbar.navbar-hidden ~ .pages .subnavbar, -.navbar.navbar-hidden ~ .page .subnavbar { - -webkit-transform: translate3d(0, -56px, 0); - transform: translate3d(0, -56px, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.navbar.navbar-hidden ~ .subnavbar, -.navbar.navbar-hidden ~ .toolbar:not(.messagebar):not(.toolbar-bottom) { - -webkit-transform: translate3d(0, -56px, 0); - transform: translate3d(0, -56px, 0); - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.page.no-navbar .page-content { - padding-top: 0; -} -.page.no-navbar.with-subnavbar .page-content, -.with-subnavbar .page.no-navbar .page-content, -.page.no-navbar .page-content.with-subnavbar { - padding-top: 48px; -} -.toolbar.toolbar-hiding, -.tabbar.toolbar-hiding, -.toolbar.tabbar-hiding, -.tabbar.tabbar-hiding { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.toolbar.toolbar-hidden, -.tabbar.toolbar-hidden, -.toolbar.tabbar-hidden, -.tabbar.tabbar-hidden { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} -.navbar ~ .toolbar.toolbar-hidden, -.navbar ~ .tabbar.toolbar-hidden, -.navbar ~ .toolbar.tabbar-hidden, -.navbar ~ .tabbar.tabbar-hidden { - -webkit-transform: translate3d(0, -104px, 0); - transform: translate3d(0, -104px, 0); -} -.navbar ~ .toolbar.tabbar-labels.toolbar-hidden, -.navbar ~ .tabbar.tabbar-labels.toolbar-hidden { - -webkit-transform: translate3d(0, -128px, 0); - transform: translate3d(0, -128px, 0); -} -.toolbar.toolbar-hidden.messagebar, -.tabbar.toolbar-hidden.messagebar, -.toolbar.toolbar-hidden.toolbar-bottom, -.tabbar.toolbar-hidden.toolbar-bottom { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.page.no-toolbar .page-content, -.page.no-tabbar .page-content { - padding-bottom: 0; -} -/* === Search Bar === */ -.searchbar { - height: 48px; - width: 100%; - background: #40865c; - box-sizing: border-box; - padding: 0 16px; - overflow: hidden; - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - color: #fff; -} -.searchbar a { - position: relative; - color: #fff; -} -.searchbar a:before { - content: ''; - width: 152%; - height: 152%; - position: absolute; - left: -26%; - top: -26%; - background-image: -webkit-radial-gradient(center, circle cover, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-image: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 66%, rgba(255, 255, 255, 0) 66%); - background-repeat: no-repeat; - background-position: center; - background-size: 100% 100%; - opacity: 0; - pointer-events: none; - -webkit-transition-duration: 600ms; - transition-duration: 600ms; -} -html:not(.watch-active-state) .searchbar a:active:before, -.searchbar a.active-state:before { - opacity: 1; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.searchbar .searchbar-input { - width: 100%; - height: 32px; - position: relative; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.searchbar input[type="search"] { - box-sizing: border-box; - width: 100%; - height: 32px; - display: block; - border: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 0; - font-family: inherit; - color: #fff; - font-size: 16px; - font-weight: 400; - padding: 0; - border-bottom: 1px solid #fff; - height: 100%; - padding: 0 36px 0 24px; - background-color: transparent; - background-repeat: no-repeat; - background-position: 0 center; - opacity: 0.6; - -webkit-background-size: 24px 24px; - background-size: 24px 24px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M15.5%2014h-.79l-.28-.27C15.41%2012.59%2016%2011.11%2016%209.5%2016%205.91%2013.09%203%209.5%203S3%205.91%203%209.5%205.91%2016%209.5%2016c1.61%200%203.09-.59%204.23-1.57l.27.28v.79l5%204.99L20.49%2019l-4.99-5zm-6%200C7.01%2014%205%2011.99%205%209.5S7.01%205%209.5%205%2014%207.01%2014%209.5%2011.99%2014%209.5%2014z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.searchbar input[type="search"]::-webkit-input-placeholder { - color: #ffffff; - opacity: 1; -} -.searchbar input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -.searchbar .searchbar-clear { - position: absolute; - width: 56px; - height: 100%; - right: -16px; - top: 0; - opacity: 0; - pointer-events: none; - background-position: center; - background-repeat: no-repeat; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23fff'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 24px 24px; - background-size: 24px 24px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - cursor: pointer; -} -.searchbar .searchbar-cancel { - display: none; -} -.searchbar.searchbar-active input[type="search"] { - opacity: 1; -} -.searchbar.searchbar-active .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar.searchbar-not-empty .searchbar-clear { - pointer-events: auto; - opacity: 1; -} -.searchbar-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 100; - opacity: 0; - pointer-events: none; - background: rgba(0, 0, 0, 0.25); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.searchbar-overlay.searchbar-overlay-active { - opacity: 1; - pointer-events: auto; -} -.searchbar-not-found { - display: none; -} -.hidden-by-searchbar, -.list-block .hidden-by-searchbar, -.list-block li.hidden-by-searchbar { - display: none; -} -.page > .searchbar { - position: absolute; - width: 100%; - left: 0; - top: 0; - z-index: 200; -} -.page > .searchbar ~ .page-content { - padding-top: 48px; -} -.navbar-fixed .page > .searchbar, -.navbar-through .page > .searchbar, -.navbar-fixed > .searchbar, -.navbar-through > .searchbar { - top: 56px; -} -.navbar-fixed .page > .searchbar ~ .page-content, -.navbar-through .page > .searchbar ~ .page-content, -.navbar-fixed > .searchbar ~ .page-content, -.navbar-through > .searchbar ~ .page-content { - padding-top: 104px; -} -/* === Message Bar === */ -.toolbar.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - background: #fff; - height: 48px; - top: auto; - bottom: 0; - font-size: 16px; - overflow: hidden; -} -.toolbar.messagebar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #d1d1d1; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .toolbar.messagebar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .toolbar.messagebar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.toolbar.messagebar textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0; - box-shadow: none; - display: block; - padding: 3px 8px 3px; - margin: 0; - width: 100%; - height: 28px; - color: #333; - font-size: 16px; - line-height: 22px; - font-family: inherit; - resize: none; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; -} -.toolbar.messagebar a.link { - color: #333; - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; - height: 48px; - line-height: 48px; -} -.toolbar.messagebar a.link:before { - background-image: -webkit-radial-gradient(center, circle cover, rgba(0, 0, 0, 0.1) 66%, rgba(0, 0, 0, 0) 66%); - background-image: radial-gradient(circle at center, rgba(0, 0, 0, 0.1) 66%, rgba(0, 0, 0, 0) 66%); -} -.toolbar.messagebar .link { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.toolbar.messagebar ~ .page-content { - padding-bottom: 48px; -} -.page.no-toolbar .toolbar.messagebar ~ .page-content { - padding-bottom: 48px; -} -.hidden-toolbar .toolbar.messagebar { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -/* === Icons === */ -i.icon { - display: inline-block; - vertical-align: middle; - background-size: 100% auto; - background-position: center; - background-repeat: no-repeat; - font-style: normal; - position: relative; - /* Material Icons http://google.github.io/material-design-icons/ */ -} -i.icon.icon-back { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M20%2011H7.83l5.59-5.59L12%204l-8%208%208%208%201.41-1.41L7.83%2013H20v-2z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-forward { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M12%204l-1.41%201.41L16.17%2011H4v2h12.17l-5.58%205.59L12%2020l8-8z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-bars { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M3%2018h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-camera { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23333'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'3.2'%2F%3E%3Cpath%20d%3D'M9%202L7.17%204H4c-1.1%200-2%20.9-2%202v12c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V6c0-1.1-.9-2-2-2h-3.17L15%202H9zm3%2015c-2.76%200-5-2.24-5-5s2.24-5%205-5%205%202.24%205%205-2.24%205-5%205z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-f7 { - width: 24px; - height: 24px; - background-image: url("../img/i-f7-material.png"); - border-radius: 3px; -} -i.icon.icon-next, -i.icon.icon-prev { - width: 24px; - height: 24px; -} -i.icon.icon-next { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M10%206L8.59%207.41%2013.17%2012l-4.58%204.59L10%2018l6-6z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M15.41%207.41L14%206l-6%206%206%206%201.41-1.41L10.83%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-plus { - width: 24px; - height: 24px; - font-size: 0; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%2013h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-close { - width: 24px; - height: 24px; - font-size: 0; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23FFFFFF'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20width%3D'24'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.badge { - font-size: 10px; - display: inline-block; - color: #fff; - background: #8e8e93; - border-radius: 3px; - padding: 1px 6px; - box-sizing: border-box; - vertical-align: middle; -} -.icon .badge { - position: absolute; - left: 100%; - margin-left: -10px; - top: -2px; - font-size: 10px; - line-height: 1.4; - padding: 1px 5px; -} -/* === Content Block === */ -.content-block { - margin: 32px 0; - padding: 0 16px; - box-sizing: border-box; -} -.content-block.no-hairlines:before, -.content-block.no-hairlines ul:before, -.content-block.no-hairlines .content-block-inner:before { - display: none; -} -.content-block.no-hairlines:after, -.content-block.no-hairlines ul:after, -.content-block.no-hairlines .content-block-inner:after { - display: none; -} -.content-block-title { - position: relative; - overflow: hidden; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - line-height: 1; - margin: 16px 16px 16px; - padding-top: 16px; - line-height: 16px; - font-weight: 500; - color: rgba(0, 0, 0, 0.54); -} -.content-block-title + .list-block, -.content-block-title + .content-block, -.content-block-title + .card { - margin-top: 0px; -} -.content-block-inner { - padding: 16px 16px; - margin-left: -16px; - width: 100%; - position: relative; -} -.content-block-inner:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .content-block-inner:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .content-block-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .content-block-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.content-block-inner > p:first-child { - margin-top: 0; -} -.content-block-inner > p:last-child { - margin-bottom: 0; -} -.content-block.inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 7px; -} -.content-block.inset .content-block-inner { - border-radius: 4px; -} -.content-block.inset .content-block-inner:before { - display: none; -} -.content-block.inset .content-block-inner:after { - display: none; -} -@media all and (min-width: 768px) { - .content-block.tablet-inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; - } - .content-block.tablet-inset .content-block-inner { - border-radius: 4px; - } - .content-block.tablet-inset .content-block-inner:before { - display: none; - } - .content-block.tablet-inset .content-block-inner:after { - display: none; - } -} -/* === Lists === */ -.list-block { - margin: 32px 0; - font-size: 16px; -} -.list-block ul { - list-style: none; - padding: 0; - margin: 0; - position: relative; -} -.list-block ul:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .list-block ul:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block ul:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block ul:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block ul ul { - padding-left: 56px; -} -.list-block ul ul:before { - display: none; -} -.list-block ul ul:after { - display: none; -} -.list-block .align-top, -.list-block .align-top .item-content, -.list-block .align-top .item-inner { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.list-block.inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; -} -.list-block.inset .content-block-title { - margin-left: 0; - margin-right: 0; -} -.list-block.inset ul { - border-radius: 4px; -} -.list-block.inset ul:before { - display: none; -} -.list-block.inset ul:after { - display: none; -} -.list-block.inset li:first-child > a { - border-radius: 4px 4px 0 0; -} -.list-block.inset li:last-child > a { - border-radius: 0 0 4px 4px; -} -.list-block.inset li:first-child:last-child > a { - border-radius: 4px; -} -@media all and (min-width: 768px) { - .list-block.tablet-inset { - margin-left: 16px; - margin-right: 16px; - border-radius: 4px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 4px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 4px 4px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 4px 4px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 4px; - } - .list-block.tablet-inset .content-block-title { - margin-left: 0; - margin-right: 0; - } - .list-block.tablet-inset ul { - border-radius: 4px; - } - .list-block.tablet-inset ul:before { - display: none; - } - .list-block.tablet-inset ul:after { - display: none; - } - .list-block.tablet-inset li:first-child > a { - border-radius: 4px 4px 0 0; - } - .list-block.tablet-inset li:last-child > a { - border-radius: 0 0 4px 4px; - } - .list-block.tablet-inset li:first-child:last-child > a { - border-radius: 4px; - } -} -.list-block li { - box-sizing: border-box; - position: relative; -} -.list-block .item-media { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - box-sizing: border-box; - padding-top: 8px; - padding-bottom: 8px; - min-width: 40px; -} -.list-block .item-media i + i { - margin-left: 8px; -} -.list-block .item-media i + img { - margin-left: 8px; -} -.list-block .item-media + .item-inner { - margin-left: 16px; -} -.list-block .item-inner { - padding-right: 16px; - position: relative; - width: 100%; - padding-top: 8px; - padding-bottom: 8px; - min-height: 48px; - box-sizing: border-box; - -webkit-box-flex: 1; - -ms-flex: 1; - min-width: 0; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block .item-title { - min-width: 0; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - max-width: 100%; -} -.list-block .item-after { - white-space: nowrap; - color: #757575; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - margin-left: 8px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - max-height: 28px; - font-size: 14px; -} -.list-block .smart-select .item-after, -.list-block .autocomplete-opener .item-after { - max-width: 70%; - overflow: hidden; - text-overflow: ellipsis; - position: relative; - display: block; -} -.list-block .item-link { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: block; - color: inherit; - position: relative; - overflow: hidden; - z-index: 0; -} -.list-block .item-link .item-inner { - padding-right: 42px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; - background-repeat: no-repeat; - background-position: 95% center; - background-position: -webkit-calc(100% - 16px) center; - background-position: calc(100% - 16px) center; -} -html:not(.watch-active-state) .list-block .item-link:active, -.list-block .item-link.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.list-block .item-link.list-button { - padding: 0 16px; - font-size: 16px; - display: block; - line-height: 48px; -} -.list-block .item-content { - box-sizing: border-box; - padding-left: 16px; - min-height: 48px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.list-block .list-block-label { - margin: 10px 0 35px; - padding: 0 16px; - font-size: 14px; - color: rgba(0, 0, 0, 0.54); -} -.list-block .swipeout { - overflow: hidden; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.list-block .swipeout.deleting { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block .swipeout.deleting .swipeout-content { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout.transitioning .swipeout-content, -.list-block .swipeout.transitioning .swipeout-actions-right a, -.list-block .swipeout.transitioning .swipeout-actions-left a, -.list-block .swipeout.transitioning .swipeout-overswipe { - -webkit-transition: 300ms; - transition: 300ms; -} -.list-block .swipeout-content { - position: relative; - z-index: 10; -} -.list-block .swipeout-overswipe { - -webkit-transition: 200ms left; - transition: 200ms left; -} -.list-block .swipeout-actions-left, -.list-block .swipeout-actions-right { - position: absolute; - top: 0; - height: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; -} -.list-block .swipeout-actions-left a, -.list-block .swipeout-actions-right a { - padding: 0 24px; - color: #fff; - background: #c7c7cc; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - position: relative; - left: 0; -} -.list-block .swipeout-actions-left a:after, -.list-block .swipeout-actions-right a:after { - content: ''; - position: absolute; - top: 0; - width: 600%; - height: 100%; - background: inherit; - z-index: -1; -} -.list-block .swipeout-actions-left a.swipeout-delete, -.list-block .swipeout-actions-right a.swipeout-delete { - background: #f44336; -} -.list-block .swipeout-actions-right { - right: 0%; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} -.list-block .swipeout-actions-right a:after { - left: 100%; - margin-left: -1px; -} -.list-block .swipeout-actions-left { - left: 0%; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} -.list-block .swipeout-actions-left a:after { - right: 100%; - margin-right: -1px; -} -.list-block .item-subtitle { - font-size: 14px; - position: relative; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - text-overflow: ellipsis; -} -.list-block .item-text { - font-size: 14px; - color: #757575; - line-height: 20px; - position: relative; - overflow: hidden; - max-height: 40px; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - display: -webkit-box; -} -.list-block.media-list .item-inner, -.list-block li.media-item .item-inner { - display: block; - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: stretch; - -webkit-align-self: stretch; - align-self: stretch; -} -.list-block.media-list .item-link .item-inner, -.list-block li.media-item .item-link .item-inner { - background: none; - padding-right: 16px; -} -.list-block.media-list .item-link .item-title-row, -.list-block li.media-item .item-link .item-title-row { - padding-right: 26px; - background: no-repeat right top; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%2060%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'm60%2061.5-38.25%2038.25-9.75-9.75%2029.25-28.5-29.25-28.5%209.75-9.75z'%20fill%3D'%23c7c7cc'%2F%3E%3C%2Fsvg%3E"); - background-size: 10px 20px; -} -.list-block.media-list .item-media, -.list-block li.media-item .item-media { - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: flex-start; - -webkit-align-self: flex-start; - align-self: flex-start; -} -.list-block.media-list .item-media img, -.list-block li.media-item .item-media img { - display: block; -} -.list-block.media-list .item-title-row, -.list-block li.media-item .item-title-row { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; -} -.list-block.media-list .item-content > .item-after, -.list-block li.media-item .item-content > .item-after { - padding-top: 14px; - padding-bottom: 14px; - -ms-flex-item-align: flex-start; - -webkit-align-self: flex-start; - align-self: flex-start; -} -.list-block .list-group ul:after, -.list-block .list-group ul:before { - z-index: 11; -} -.list-block .list-group + .list-group ul:before { - display: none; -} -.list-block .item-divider, -.list-block .list-group-title { - background: #f4f4f4; - padding: 0px 16px; - white-space: nowrap; - position: relative; - max-width: 100%; - text-overflow: ellipsis; - overflow: hidden; - color: rgba(0, 0, 0, 0.54); - height: 48px; - box-sizing: border-box; - line-height: 48px; - font-size: 14px; -} -.list-block .item-divider:before, -.list-block .list-group-title:before { - display: none; -} -.list-block .list-group-title { - position: relative; - position: -webkit-sticky; - position: -moz-sticky; - position: sticky; - top: 0px; - z-index: 10; - margin-top: 0; -} -.list-block .sortable-handler { - position: absolute; - right: 0; - top: 0; - bottom: 1px; - z-index: 10; - background-repeat: no-repeat; - background-size: 18px 12px; - background-position: center; - width: 50px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2018%2012'%20fill%3D'%23c7c7cc'%3E%3Cpath%20d%3D'M0%2C2V0h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C7V5h22v2H0z'%2F%3E%3Cpath%20d%3D'M0%2C12v-2h22v2H0z'%2F%3E%3C%2Fsvg%3E"); - opacity: 0; - visibility: hidden; - cursor: pointer; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable .item-inner { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block.sortable-opened .sortable-handler { - visibility: visible; - opacity: 1; -} -.list-block.sortable-opened .item-inner, -.list-block.sortable-opened .item-link .item-inner { - padding-right: 50px; -} -.list-block.sortable-opened .item-link .item-inner, -.list-block.sortable-opened .item-link .item-title-row { - background-image: none; -} -.list-block.sortable-sorting li { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.list-block li.sorting { - z-index: 50; - background: rgba(255, 255, 255, 0.8); - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - -webkit-transition-duration: 0ms; - transition-duration: 0ms; -} -.list-block li.sorting .item-inner:after { - display: none; -} -.list-block li:last-child .list-button:after { - display: none; -} -.list-block li:last-child .item-inner:after, -.list-block li:last-child li:last-child .item-inner:after { - display: none; -} -.list-block li li:last-child .item-inner:after, -.list-block li:last-child li .item-inner:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-2 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .list-block li li:last-child .item-inner:after, -html.pixel-ratio-3 .list-block li:last-child li .item-inner:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.list-block.no-hairlines:before, -.list-block.no-hairlines ul:before, -.list-block.no-hairlines .content-block-inner:before { - display: none; -} -.list-block.no-hairlines:after, -.list-block.no-hairlines ul:after, -.list-block.no-hairlines .content-block-inner:after { - display: none; -} -.list-block.no-hairlines-between .item-inner:after, -.list-block.no-hairlines-between .list-button:after, -.list-block.no-hairlines-between .item-divider:after, -.list-block.no-hairlines-between .list-group-title:after, -.list-block.no-hairlines-between .list-group-title:after { - display: none; -} -/* === Forms === */ -.list-block input[type="text"], -.list-block input[type="password"], -.list-block input[type="search"], -.list-block input[type="email"], -.list-block input[type="tel"], -.list-block input[type="url"], -.list-block input[type="date"], -.list-block input[type="datetime-local"], -.list-block input[type="time"], -.list-block input[type="number"], -.list-block select, -.list-block textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - box-sizing: border-box; - border: none; - background: none; - border-radius: 0 0 0 0; - box-shadow: none; - display: block; - padding: 0; - margin: 0; - width: 100%; - height: 36px; - color: #212121; - font-size: 16px; - font-family: inherit; -} -.list-block input[type="text"]::-webkit-input-placeholder, -.list-block input[type="password"]::-webkit-input-placeholder, -.list-block input[type="search"]::-webkit-input-placeholder, -.list-block input[type="email"]::-webkit-input-placeholder, -.list-block input[type="tel"]::-webkit-input-placeholder, -.list-block input[type="url"]::-webkit-input-placeholder, -.list-block input[type="date"]::-webkit-input-placeholder, -.list-block input[type="datetime-local"]::-webkit-input-placeholder, -.list-block input[type="time"]::-webkit-input-placeholder, -.list-block input[type="number"]::-webkit-input-placeholder, -.list-block select::-webkit-input-placeholder, -.list-block textarea::-webkit-input-placeholder { - color: rgba(0, 0, 0, 0.35); -} -.list-block .label, -.list-block .floating-label { - vertical-align: top; - color: rgba(0, 0, 0, 0.65); - -webkit-transition-duration: 200ms; - transition-duration: 200ms; - width: 35%; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.list-block input[type="date"], -.list-block input[type="datetime-local"] { - line-height: 44px; -} -.list-block select { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; -} -.list-block textarea { - resize: none; - line-height: 1.4; - padding-top: 8px; - padding-bottom: 7px; - height: 100px; -} -.list-block textarea.resizable { - height: 36px; -} -.list-block .item-input { - width: 100%; - -ms-flex: 1; - -webkit-box-flex: 1; - -webkit-flex-shrink: 1; - -ms-flex: 0 1 auto; - flex-shrink: 1; - font-size: 0; - position: relative; - margin-bottom: 4px; - min-height: 36px; -} -.list-block .input-item ul:after, -.list-block.inputs-list ul:after { - display: none; -} -.list-block .input-item .item-media, -.list-block.inputs-list .item-media { - -ms-flex-item-align: flex-end; - -webkit-align-self: flex-end; - align-self: flex-end; - min-height: 36px; - margin-bottom: 8px; - padding: 0; -} -.list-block .input-item .item-inner, -.list-block.inputs-list .item-inner { - display: block; - margin-bottom: 4px; - padding-bottom: 0; -} -.list-block .input-item .item-inner:after, -.list-block.inputs-list .item-inner:after { - display: none; -} -.list-block .input-item .label, -.list-block.inputs-list .label, -.list-block .input-item .floating-label, -.list-block.inputs-list .floating-label { - width: 100%; - font-size: 12px; -} -.list-block .input-item .floating-label, -.list-block.inputs-list .floating-label { - -webkit-transform-origin: left; - transform-origin: left; - -webkit-transform: scale(1.33333333) translateY(21px); - transform: scale(1.33333333) translateY(21px); - color: rgba(0, 0, 0, 0.35); - width: auto; - max-width: 75%; -} -.list-block .input-item .floating-label ~ .item-input input::-webkit-input-placeholder, -.list-block.inputs-list .floating-label ~ .item-input input::-webkit-input-placeholder { - color: transparent; -} -.list-block .focus-state .floating-label, -.list-block .not-empty-state .floating-label { - color: rgba(0, 0, 0, 0.65); - -webkit-transform: scale(1) translateY(0); - transform: scale(1) translateY(0); -} -.list-block .focus-state .label, -.list-block .focus-state .floating-label { - color: #40865c; -} -.item-input-field, -.input-field { - position: relative; -} -.item-input-field:after, -.input-field:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.12); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .item-input-field:after, -html.pixel-ratio-2 .input-field:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .item-input-field:after, -html.pixel-ratio-3 .input-field:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.item-input-field:after, -.input-field:after { - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -.item-input-field.focus-state:after, -.input-field.focus-state:after, -.item-input-field.not-empty-state:after, -.input-field.not-empty-state:after, -.focus-state .item-input-field:after, -.focus-state .input-field:after, -.not-empty-state .item-input-field:after, -.not-empty-state .input-field:after { - background: #40865c; - -webkit-transform: scaleY(2) !important; - transform: scaleY(2) !important; -} -textarea.resizable { - overflow: hidden; -} -.label-switch { - display: inline-block; - vertical-align: middle; - width: 36px; - height: 14px; - position: relative; - cursor: pointer; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.label-switch .checkbox { - width: 36px; - border-radius: 36px; - box-sizing: border-box; - height: 14px; - background: #b0afaf; - z-index: 0; - margin: 0; - padding: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - cursor: pointer; - position: relative; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch .checkbox:after { - content: ' '; - height: 20px; - width: 20px; - border-radius: 20px; - background: #fff; - position: absolute; - z-index: 2; - top: -3px; - left: 0px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.label-switch input[type="checkbox"] { - display: none; -} -.label-switch input[type="checkbox"]:checked + .checkbox { - background: rgba(64, 134, 92, 0.5); -} -.label-switch input[type="checkbox"]:checked + .checkbox:after { - -webkit-transform: translateX(16px); - transform: translateX(16px); - background: #40865c; -} -.item-input .label-switch { - top: 11px; -} -.button { - color: #40865c; - text-decoration: none; - text-align: center; - display: block; - border-radius: 2px; - line-height: 36px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 36px; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - font-family: inherit; - cursor: pointer; - min-width: 64px; - padding: 0 8px; - position: relative; - overflow: hidden; - outline: 0; - border: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -input[type="submit"].button, -input[type="button"].button { - width: 100%; -} -html:not(.watch-active-state) .button:active, -.button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.button.button-fill { - background-color: #40865c; - color: #fff; -} -html:not(.watch-active-state) .button.button-fill:active, -.button.button-fill.active-state { - background: #336a49; -} -.button.button-big { - height: 48px; - line-height: 48px; - border-radius: 3px; -} -.button i.icon + span, -.button span:not(.ripple-wave) + span, -.button span:not(.ripple-wave) + i.icon, -.button i.icon + i.icon { - margin-left: 8px; -} -.navbar .button:not(.button-fill), -.toolbar .button:not(.button-fill), -.subnavbar .button:not(.button-fill), -.notifications .button:not(.button-fill) { - color: #fff; -} -html:not(.watch-active-state) .navbar .button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .button:not(.button-fill):active, -.navbar .button:not(.button-fill).active-state, -.toolbar .button:not(.button-fill).active-state, -.subnavbar .button:not(.button-fill).active-state, -.notifications .button:not(.button-fill).active-state { - background: rgba(255, 255, 255, 0.15); -} -.button-raised { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); -} -html:not(.watch-active-state) .button-raised:active, -.button-raised.active-state { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); -} -.buttons-row { - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-lines: single; - -moz-box-lines: single; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: none; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.buttons-row .button { - margin-left: 16px; - width: 100%; - -webkit-box-flex: 1; - -ms-flex: 1; -} -.buttons-row .button:first-child { - margin-left: 0; -} -.range-slider { - width: 100%; - position: relative; - overflow: hidden; - -ms-flex-item-align: center; - -webkit-align-self: center; - align-self: center; -} -.range-slider input[type="range"] { - position: relative; - height: 20px; - width: 100%; - margin: 0; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: -webkit-gradient(linear, 50% 0, 50% 100%, color-stop(0, #b9b9b9), color-stop(100%, #b9b9b9)); - background: linear-gradient(to right, #b9b9b9 0, #b9b9b9 100%); - background-position: center; - background-size: 100% 2px; - background-repeat: no-repeat; - outline: 0; - -ms-background-position-y: 500px; -} -.range-slider input[type="range"]:focus, -.range-slider input[type="range"]:active { - border: 0; - outline: 0 none; -} -.range-slider input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #40865c; - border-radius: 20px; -} -.range-slider input[type="range"]::-webkit-slider-thumb:before { - position: absolute; - top: 50%; - right: 100%; - width: 2000px; - height: 2px; - margin-top: -1px; - z-index: 1; - background: #40865c; - content: ' '; -} -.range-slider input[type="range"]::-moz-range-track { - width: 100%; - height: 2px; - background: #b7b8b7; - border: none; - outline: 0; -} -.range-slider input[type="range"]::-moz-range-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #40865c; - border-radius: 20px; -} -.range-slider input[type="range"]::-ms-track { - width: 100%; - height: 2px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; -} -.range-slider input[type="range"]::-ms-thumb { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - border: none; - outline: 0; - height: 20px; - width: 20px; - position: relative; - background: #40865c; - border-radius: 20px; -} -.range-slider input[type="range"]::-ms-fill-lower { - background: #40865c; -} -.range-slider input[type="range"]::-ms-fill-upper { - background: #b7b8b7; -} -.item-input .range-slider { - top: 8px; -} -label.label-checkbox { - cursor: pointer; -} -label.label-checkbox i.icon-form-checkbox { - width: 18px; - height: 18px; - position: relative; - border-radius: 2px; - border: 2px solid #6d6d6d; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - background: transparent; -} -label.label-checkbox i.icon-form-checkbox:after { - content: ' '; - position: absolute; - width: 18px; - height: 18px; - left: -2px; - top: -2px; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0; - background: no-repeat center; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'%23ffffff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20d%3D'M9%2016.17L4.83%2012l-1.42%201.41L9%2019%2021%207l-1.41-1.41z'%2F%3E%3C%2Fsvg%3E"); - -webkit-background-size: 100% auto; - background-size: 100% auto; -} -label.label-checkbox input[type="checkbox"], -label.label-checkbox input[type="radio"] { - display: none; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox, -label.label-checkbox input[type="checkbox"]:checked ~ .item-after i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked ~ .item-after i.icon-form-checkbox, -label.label-checkbox input[type="checkbox"]:checked ~ .item-inner i.icon-form-checkbox, -label.label-checkbox input[type="radio"]:checked ~ .item-inner i.icon-form-checkbox { - border-color: #40865c; - background-color: #40865c; -} -label.label-checkbox input[type="checkbox"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked + .item-media i.icon-form-checkbox:after, -label.label-checkbox input[type="checkbox"]:checked ~ .item-after i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked ~ .item-after i.icon-form-checkbox:after, -label.label-checkbox input[type="checkbox"]:checked ~ .item-inner i.icon-form-checkbox:after, -label.label-checkbox input[type="radio"]:checked ~ .item-inner i.icon-form-checkbox:after { - opacity: 1; -} -label.label-radio { - cursor: pointer; -} -label.label-radio i.icon-form-radio { - width: 20px; - height: 20px; - position: relative; - border-radius: 20px; - border: 2px solid #6d6d6d; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-radio i.icon-form-radio:after { - content: ' '; - position: absolute; - width: 10px; - height: 10px; - left: 50%; - top: 50%; - margin-left: -5px; - margin-top: -5px; - background-color: #40865c; - border-radius: 100%; - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-radio input[type="checkbox"], -label.label-radio input[type="radio"] { - display: none; -} -label.label-radio input[type="checkbox"]:checked + .item-media i.icon-form-radio, -label.label-radio input[type="radio"]:checked + .item-media i.icon-form-radio, -label.label-radio input[type="checkbox"]:checked ~ .item-after i.icon-form-radio, -label.label-radio input[type="radio"]:checked ~ .item-after i.icon-form-radio, -label.label-radio input[type="checkbox"]:checked ~ .item-inner i.icon-form-radio, -label.label-radio input[type="radio"]:checked ~ .item-inner i.icon-form-radio { - border-color: #40865c; -} -label.label-radio input[type="checkbox"]:checked + .item-media i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked + .item-media i.icon-form-radio:after, -label.label-radio input[type="checkbox"]:checked ~ .item-after i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked ~ .item-after i.icon-form-radio:after, -label.label-radio input[type="checkbox"]:checked ~ .item-inner i.icon-form-radio:after, -label.label-radio input[type="radio"]:checked ~ .item-inner i.icon-form-radio:after { - background-color: #40865c; - -webkit-transform: scale(1); - transform: scale(1); -} -label.label-checkbox, -label.label-radio { - position: relative; - overflow: hidden; - z-index: 0; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -label.label-checkbox .item-after i.icon-form-checkbox, -label.label-radio .item-after i.icon-form-checkbox, -label.label-checkbox .item-after i.icon-form-radio, -label.label-radio .item-after i.icon-form-radio { - margin-left: 8px; - margin-right: 16px; -} -.media-list label.label-checkbox .item-media i.icon-form-checkbox, -.media-list label.label-radio .item-media i.icon-form-checkbox, -.media-item label.label-checkbox .item-media i.icon-form-checkbox, -.media-item label.label-radio .item-media i.icon-form-checkbox, -.media-list label.label-checkbox .item-media i.icon-form-radio, -.media-list label.label-radio .item-media i.icon-form-radio, -.media-item label.label-checkbox .item-media i.icon-form-radio, -.media-item label.label-radio .item-media i.icon-form-radio { - margin-top: 4px; -} -html:not(.watch-active-state) label.label-checkbox:active, -html:not(.watch-active-state) label.label-radio:active, -label.label-checkbox.active-state, -label.label-radio.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -html:not(.watch-active-state) label.label-checkbox:active .item-inner:after, -html:not(.watch-active-state) label.label-radio:active .item-inner:after, -label.label-checkbox.active-state .item-inner:after, -label.label-radio.active-state .item-inner:after { - background-color: transparent; -} -.smart-select select { - display: none; -} -/* === Floating Action Button === */ -.floating-button { - position: absolute; - right: 16px; - bottom: 16px; - width: 56px; - height: 56px; - border-radius: 50%; - z-index: 1500; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); - background-color: #40865c; - color: #fff; - overflow: hidden; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; -} -html:not(.watch-active-state) .floating-button:active, -.floating-button.active-state { - background: #336a49; -} -.floating-button-toolbar, -.speed-dial { - position: absolute; - right: 16px; - bottom: 16px; - z-index: 1500; -} -.floating-button-toolbar .floating-button, -.speed-dial .floating-button { - right: 0; - bottom: 0; - position: relative; -} -.speed-dial .floating-button i { - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.speed-dial .floating-button i + i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); - transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); - opacity: 0; -} -.speed-dial.speed-dial-opened .floating-button i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); - transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); - opacity: 0; -} -.speed-dial.speed-dial-opened .floating-button i + i { - -webkit-transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); - opacity: 1; -} -.speed-dial-buttons { - position: absolute; - width: 40px; - left: 50%; - margin-left: -20px; - bottom: 100%; - margin-bottom: 16px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: reverse; - -moz-box-orient: vertical; - -moz-box-direction: reverse; - -ms-flex-direction: column-reverse; - -webkit-flex-direction: column-reverse; - flex-direction: column-reverse; - visibility: hidden; - pointer-events: none; -} -.speed-dial-buttons a { - width: 40px; - height: 40px; - opacity: 0; - color: #fff; - border-radius: 50%; - position: relative; - z-index: 1; - overflow: hidden; - background-color: #40865c; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-transform: translate3d(0, 8px, 0) scale(0.3); - transform: translate3d(0, 8px, 0) scale(0.3); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; -} -html:not(.watch-active-state) .speed-dial-buttons a:active, -.speed-dial-buttons a.active-state { - background: #336a49; -} -.speed-dial-buttons a + a { - margin-bottom: 16px; -} -.speed-dial-opened .speed-dial-buttons { - visibility: visible; - pointer-events: auto; -} -.speed-dial-opened .speed-dial-buttons a { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0) scaleY(1); - transform: translate3d(0, 0, 0) scaleY(1); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.speed-dial-opened .speed-dial-buttons a:nth-child(2) { - -webkit-transition-delay: 50ms; - transition-delay: 50ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(3) { - -webkit-transition-delay: 100ms; - transition-delay: 100ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(4) { - -webkit-transition-delay: 150ms; - transition-delay: 150ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(5) { - -webkit-transition-delay: 200ms; - transition-delay: 200ms; -} -.speed-dial-opened .speed-dial-buttons a:nth-child(6) { - -webkit-transition-delay: 250ms; - transition-delay: 250ms; -} -.floating-button-to-popover.floating-button-to-popover { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.floating-button-to-popover.floating-button-to-popover-in { - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.floating-button-to-popover.floating-button-to-popover-in i { - opacity: 0; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.floating-button-to-popover.floating-button-to-popover-scale { - border-radius: 0; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - box-shadow: none; -} -.floating-button-to-popover.floating-button-to-popover-out { - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.floating-button-to-popover.floating-button-to-popover-out i { - opacity: 1; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; - -webkit-transition-delay: 200ms; - transition-delay: 200ms; -} -/* === Modals === */ -.modal-overlay, -.preloader-indicator-overlay, -.popup-overlay, -.picker-modal-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.4); - z-index: 13000; - visibility: hidden; - opacity: 0; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.modal-overlay.modal-overlay-visible, -.preloader-indicator-overlay.modal-overlay-visible, -.popup-overlay.modal-overlay-visible, -.picker-modal-overlay.modal-overlay-visible { - visibility: visible; - opacity: 1; -} -.popup-overlay { - z-index: 10500; -} -.picker-modal-overlay { - z-index: 12000; -} -.modal { - width: 280px; - position: absolute; - z-index: 13500; - left: 50%; - margin-left: -140px; - margin-top: 0; - top: 50%; - border-radius: 3px; - opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -ms-transition-property: -ms-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - color: #757575; - display: none; - background: #fff; - font-size: 16px; - box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); -} -.modal.modal-in { - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); -} -.modal.modal-out { - opacity: 0; - z-index: 13499; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; - -webkit-transform: translate3d(0, 0, 0) scale(0.815); - transform: translate3d(0, 0, 0) scale(0.815); -} -.modal-inner { - padding: 24px 24px 20px; - position: relative; -} -.modal-title { - font-weight: 500; - font-size: 20px; - color: #212121; - line-height: 1.3; -} -.modal-title + .modal-text { - margin-top: 20px; -} -.modal-text { - line-height: 1.5; -} -.modal-buttons { - height: 48px; - padding: 6px 8px; - overflow: hidden; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; -} -.modal-buttons.modal-buttons-vertical { - display: block; - height: auto; - padding: 0 0 8px 0; -} -.modal-buttons.modal-buttons-vertical .modal-button { - margin-left: 0; - text-align: right; - height: 48px; - line-height: 48px; - border-radius: 0; - padding-left: 16px; - padding-right: 16px; -} -.modal-button, -.modal-buttons .button { - color: #40865c; - text-decoration: none; - text-align: center; - display: block; - border-radius: 2px; - line-height: 36px; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - background: none; - padding: 0 10px; - margin: 0; - height: 36px; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 14px; - text-transform: uppercase; - font-family: inherit; - cursor: pointer; - min-width: 64px; - padding: 0 8px; - position: relative; - overflow: hidden; - outline: 0; - border: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-user-select: none; - user-select: none; -} -input[type="submit"].modal-button, -input[type="submit"].modal-buttons .button, -input[type="button"].modal-button, -input[type="button"].modal-buttons .button { - width: 100%; -} -html:not(.watch-active-state) .modal-button:active, -html:not(.watch-active-state) .modal-buttons .button:active, -.modal-button.active-state, -.modal-buttons .button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.modal-button.button-fill, -.modal-buttons .button.button-fill { - background-color: #40865c; - color: #fff; -} -html:not(.watch-active-state) .modal-button.button-fill:active, -html:not(.watch-active-state) .modal-buttons .button.button-fill:active, -.modal-button.button-fill.active-state, -.modal-buttons .button.button-fill.active-state { - background: #336a49; -} -.modal-button.button-big, -.modal-buttons .button.button-big { - height: 48px; - line-height: 48px; - border-radius: 3px; -} -.modal-button i.icon + span, -.modal-buttons .button i.icon + span, -.modal-button span:not(.ripple-wave) + span, -.modal-buttons .button span:not(.ripple-wave) + span, -.modal-button span:not(.ripple-wave) + i.icon, -.modal-buttons .button span:not(.ripple-wave) + i.icon, -.modal-button i.icon + i.icon, -.modal-buttons .button i.icon + i.icon { - margin-left: 8px; -} -.navbar .modal-button:not(.button-fill), -.navbar .modal-buttons .button:not(.button-fill), -.toolbar .modal-button:not(.button-fill), -.toolbar .modal-buttons .button:not(.button-fill), -.subnavbar .modal-button:not(.button-fill), -.subnavbar .modal-buttons .button:not(.button-fill), -.notifications .modal-button:not(.button-fill), -.notifications .modal-buttons .button:not(.button-fill) { - color: #fff; -} -html:not(.watch-active-state) .navbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .navbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .toolbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .subnavbar .modal-buttons .button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .modal-button:not(.button-fill):active, -html:not(.watch-active-state) .notifications .modal-buttons .button:not(.button-fill):active, -.navbar .modal-button:not(.button-fill).active-state, -.navbar .modal-buttons .button:not(.button-fill).active-state, -.toolbar .modal-button:not(.button-fill).active-state, -.toolbar .modal-buttons .button:not(.button-fill).active-state, -.subnavbar .modal-button:not(.button-fill).active-state, -.subnavbar .modal-buttons .button:not(.button-fill).active-state, -.notifications .modal-button:not(.button-fill).active-state, -.notifications .modal-buttons .button:not(.button-fill).active-state { - background: rgba(255, 255, 255, 0.15); -} -.modal-button.active i.icon, -.modal-buttons .button.active i.icon { - background-color: #fff; -} -.modal-button.modal-button-bold, -.modal-buttons .button.modal-button-bold { - font-weight: 700; -} -.modal-button + .modal-button, -.modal-buttons .button + .modal-button { - margin-left: 4px; -} -.modal-no-buttons .modal-buttons { - display: none; -} -.actions-modal { - position: absolute; - left: 0; - bottom: 0; - z-index: 13500; - width: 100%; - background: #fff; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 100%; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-modal.modal-in { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.actions-modal.modal-out { - z-index: 13499; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.actions-modal-group { - position: relative; -} -.actions-modal-group:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #d2d2d6; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-modal-group:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-modal-group:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-modal-group:last-child:after { - display: none; -} -.actions-modal-button, -.actions-modal-label { - width: 100%; - font-weight: normal; - margin: 0; - box-sizing: border-box; - display: block; - position: relative; - padding: 0 16px; -} -.actions-modal-button a, -.actions-modal-label a { - text-decoration: none; - color: inherit; - display: block; -} -.actions-modal-button b, -.actions-modal-label b { - font-weight: 500; -} -.actions-modal-button.actions-modal-button-bold, -.actions-modal-label.actions-modal-button-bold { - font-weight: 500; -} -.actions-modal-button.actions-modal-button-red, -.actions-modal-label.actions-modal-button-red { - color: #f44336; -} -.actions-modal-button.disabled, -.actions-modal-label.disabled { - opacity: 0.95; - color: #9e9e9e; -} -.actions-modal-button { - cursor: pointer; - line-height: 48px; - font-size: 16px; - color: rgba(0, 0, 0, 0.87); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.actions-modal-button a, -.actions-modal-button { - position: relative; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -html:not(.watch-active-state) .actions-modal-button:active, -.actions-modal-button.active-state { - background: rgba(0, 0, 0, 0.1); -} -.actions-modal-label { - font-size: 16px; - color: rgba(0, 0, 0, 0.54); - min-height: 56px; - line-height: 1.3; - padding-top: 12px; - padding-bottom: 12px; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - -webkit-justify-content: flex-start; - justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -input.modal-text-input { - box-sizing: border-box; - height: 36px; - background: #fff; - margin: 0; - margin-top: 15px; - padding: 0; - border: none; - width: 100%; - font-size: 16px; - font-family: inherit; - display: block; - box-shadow: none; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - appearance: none; - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -input.modal-text-input::-webkit-input-placeholder { - color: rgba(0, 0, 0, 0.35); -} -input.modal-text-input + input.modal-text-input { - margin-top: 16px; -} -.popover { - width: 320px; - background: #fff; - z-index: 13500; - margin: 0; - top: 0; - opacity: 0; - left: 0; - border-radius: 3px; - position: absolute; - display: none; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - -webkit-transform: scale(0.85, 0.6); - transform: scale(0.85, 0.6); - -webkit-transition-property: opacity, -webkit-transform, border-radius; - -moz-transition-property: opacity, -moz-transform, border-radius; - transition-property: opacity, transform, border-radius; -} -.popover.popover-on-top { - -webkit-transform-origin: center bottom; - transform-origin: center bottom; -} -.popover.popover-on-bottom { - -webkit-transform-origin: center top; - transform-origin: center top; -} -.popover.modal-in { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 1; -} -.popover.modal-out { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0; -} -.popover .list-block { - margin: 0; -} -.popover .list-block:first-child:last-child ul:before { - display: none; -} -.popover .list-block:first-child:last-child ul:after { - display: none; -} -.popover .list-block ul { - background: none; -} -.popover .list-block ul:before { - display: none; -} -.popover .list-block:first-child ul { - border-radius: 3px 3px 0 0; -} -.popover .list-block:first-child li:first-child a { - border-radius: 3px 3px 0 0; -} -.popover .list-block:last-child ul { - border-radius: 0 0 3px 3px; -} -.popover .list-block:last-child ul:after { - display: none; -} -.popover .list-block:last-child li:last-child a { - border-radius: 0 0 3px 3px; -} -.popover .list-block:first-child:last-child li:first-child:last-child a, -.popover .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 3px; -} -.popover.popover-floating-button { - -webkit-transform-origin: center center; - transform-origin: center center; - -webkit-transform: scale(0.7); - transform: scale(0.7); - border-radius: 50%; - box-shadow: none; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.popover.popover-floating-button.modal-in { - border-radius: 0%; - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transition-delay: 200ms; - transition-delay: 200ms; - -webkit-transition-duration: 200ms; - transition-duration: 200ms; -} -.popover.popover-floating-button.modal-out { - border-radius: 50%; - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transition-duration: 100ms; - transition-duration: 100ms; -} -.popover.popover-floating-button .list-block { - margin: 0; -} -.popover.popover-floating-button .list-block:first-child ul { - border-radius: 0; -} -.popover.popover-floating-button .list-block:first-child li:first-child a { - border-radius: 0; -} -.popover.popover-floating-button .list-block:last-child ul { - border-radius: 0; -} -.popover.popover-floating-button .list-block:last-child li:last-child a { - border-radius: 0; -} -.popover.popover-floating-button .list-block:first-child:last-child li:first-child:last-child a, -.popover.popover-floating-button .list-block:first-child:last-child ul:first-child:last-child { - border-radius: 0; -} -.popover-inner { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.actions-popover .list-block { - margin: 0; -} -.actions-popover-label { - padding: 8px 16px; - color: rgba(0, 0, 0, 0.54); - font-size: 16px; - line-height: 1.3; - padding-top: 12px; - padding-bottom: 12px; - position: relative; -} -.actions-popover-label:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #d2d2d6; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .actions-popover-label:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .actions-popover-label:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.actions-popover-label:last-child:after { - display: none; -} -.popup, -.login-screen { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 11000; - background: #fff; - box-sizing: border-box; - display: none; - overflow: auto; - -webkit-overflow-scrolling: touch; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.popup.modal-in, -.login-screen.modal-in, -.popup.modal-out, -.login-screen.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.popup.modal-in, -.login-screen.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.popup.modal-out, -.login-screen.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.login-screen.modal-in, -.login-screen.modal-out { - display: block; -} -@media all and (min-width: 630px) and (min-height: 630px) { - .popup:not(.tablet-fullscreen) { - width: 630px; - height: 630px; - left: 50%; - top: 50%; - margin-left: -315px; - margin-top: -315px; - box-shadow: 0px 20px 44px rgba(0, 0, 0, 0.5); - border-radius: 3px; - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } - .popup:not(.tablet-fullscreen).modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - .popup:not(.tablet-fullscreen).modal-out { - -webkit-transform: translate3d(0, 1024px, 0); - transform: translate3d(0, 1024px, 0); - } -} -@media all and (max-width: 629px), (max-height: 629px) { - html.with-statusbar-overlay .popup { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; - } - html.with-statusbar-overlay .popup-overlay { - z-index: 9500; - } -} -html.with-statusbar-overlay .login-screen, -html.with-statusbar-overlay .popup.tablet-fullscreen { - height: -webkit-calc(100% - 20px); - height: calc(100% - 20px); - top: 20px; -} -.modal-preloader .modal-title, -.modal-preloader .modal-inner { - text-align: center; -} -.preloader-indicator-overlay { - visibility: visible; - opacity: 0; - background: none; -} -.preloader-indicator-modal { - position: absolute; - left: 50%; - top: 50%; - padding: 8px; - margin-left: -24px; - margin-top: -24px; - background: rgba(0, 0, 0, 0.8); - z-index: 13500; - border-radius: 4px; -} -.preloader-indicator-modal .preloader { - display: block; -} -.picker-modal { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 260px; - z-index: 12000; - display: none; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -ms-transition-property: -ms-transform; - -o-transition-property: -o-transform; - transition-property: transform; - background: #fff; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal.modal-in, -.picker-modal.modal-out { - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.picker-modal.modal-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.modal-out { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} -.picker-modal .picker-modal-inner { - height: 100%; - position: relative; -} -.picker-modal .toolbar { - position: relative; - width: 100%; - top: 0; -} -.picker-modal .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px); - height: -moz-calc(100% - 48px); - height: calc(100% - 48px); -} -.picker-modal .toolbar a.link { - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.picker-modal .picker-header, -.picker-modal .picker-footer { - height: 48px; -} -.picker-modal .picker-header { - background: #40865c; -} -.picker-modal .picker-header + .toolbar .toolbar-inner { - overflow: visible; -} -.picker-modal .picker-header + .picker-footer + .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px * 3); - height: -moz-calc(100% - 48px * 3); - height: calc(100% - 48px * 3); -} -.picker-modal .picker-footer { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 48px; - padding: 6px 8px; - overflow: hidden; - box-sizing: border-box; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; -} -.picker-modal .picker-footer.modal-buttons-vertical { - display: block; - height: auto; - padding: 0 0 8px 0; -} -.picker-modal .picker-footer.modal-buttons-vertical .modal-button { - margin-left: 0; - text-align: right; - height: 48px; - line-height: 48px; - border-radius: 0; - padding-left: 16px; - padding-right: 16px; -} -.picker-modal .picker-header + .picker-modal-inner, -.picker-modal .picker-footer + .picker-modal-inner { - height: -webkit-calc(100% - 48px); - height: -moz-calc(100% - 48px); - height: calc(100% - 48px); -} -.picker-modal .picker-header + .toolbar + .picker-modal-inner, -.picker-modal .picker-footer + .toolbar + .picker-modal-inner { - height: -webkit-calc(100% - 48px * 2); - height: -moz-calc(100% - 48px * 2); - height: calc(100% - 48px * 2); -} -.picker-modal.picker-modal-inline, -.popover .picker-modal { - display: block; - position: relative; - background: none; - z-index: inherit; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.picker-modal.picker-modal-inline .toolbar, -.popover .picker-modal .toolbar { - top: 0; -} -.popover .picker-modal { - width: auto; -} -.popover .picker-modal .toolbar:first-child, -.popover .picker-modal .picker-header:first-child { - border-radius: 2px 2px 0 0; -} -.picker-modal.smart-select-picker .list-block { - margin: 0; -} -.picker-modal.smart-select-picker .list-block ul:before { - display: none; -} -.picker-modal.smart-select-picker .list-block ul:after { - display: none; -} -/* === Panels === */ -.panel-overlay { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.2); - opacity: 0; - z-index: 5999; - display: none; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.panel { - z-index: 1000; - display: none; - background: #fff; - box-sizing: border-box; - overflow: auto; - -webkit-overflow-scrolling: touch; - position: absolute; - width: 260px; - top: 0; - height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.panel.panel-left.panel-cover { - z-index: 6000; - left: -260px; -} -.panel.panel-left.panel-reveal { - left: 0; -} -.panel.panel-right.panel-cover { - z-index: 6000; - right: -260px; -} -.panel.panel-right.panel-reveal { - right: 0; -} -body.with-panel-left-cover .panel, -body.with-panel-right-cover .panel { - box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); -} -body.with-panel-left-cover .views, -body.with-panel-right-cover .views { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -body.with-panel-left-cover .panel-overlay, -body.with-panel-right-cover .panel-overlay { - display: block; - opacity: 1; -} -body.with-panel-left-reveal .views, -body.with-panel-right-reveal .views { - box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-property: -webkit-transform, box-shadow; - -moz-transition-property: -moz-transform, box-shadow; - transition-property: transform, box-shadow; -} -body.with-panel-left-reveal .panel-overlay, -body.with-panel-right-reveal .panel-overlay { - background: rgba(0, 0, 0, 0); - display: block; - opacity: 0; -} -body.with-panel-left-reveal .views { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-reveal .panel-overlay { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-left-cover .panel-left { - -webkit-transform: translate3d(260px, 0, 0); - transform: translate3d(260px, 0, 0); -} -body.with-panel-right-reveal .views { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-reveal .panel-overlay { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.with-panel-right-cover .panel-right { - -webkit-transform: translate3d(-260px, 0, 0); - transform: translate3d(-260px, 0, 0); -} -body.panel-closing .panel-overlay { - display: block; -} -body.panel-closing .views { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-property: -webkit-transform, box-shadow; - -moz-transition-property: -moz-transform, box-shadow; - transition-property: transform, box-shadow; -} -/* === Tabs === */ -.tabs .tab { - display: none; -} -.tabs .tab.active { - display: block; -} -.tabs-animated-wrap { - position: relative; - width: 100%; - overflow: hidden; - height: 100%; -} -.tabs-animated-wrap > .tabs { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - height: 100%; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.tabs-animated-wrap > .tabs > .tab { - width: 100%; - display: block; - -webkit-box-flex: 0; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; -} -.tabs-swipeable-wrap { - height: 100%; -} -.tabs-swipeable-wrap > .tabs > .tab { - display: block; -} -/* === Messages === */ -.messages-content { - background: #eee; -} -.messages { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.messages-date { - text-align: center; - font-weight: 500; - font-size: 12px; - line-height: 1; - margin: 10px 15px; -} -.messages-date span { - font-weight: 400; -} -.message { - box-sizing: border-box; - margin: 0px 8px 8px 8px; - max-width: 80%; - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.message:first-child { - margin-top: 8px; -} -.message.message-pic img { - display: block; -} -.message-name, -.message-label, -.message-date, -.messages-date { - color: rgba(0, 0, 0, 0.51); -} -.message-name { - font-size: 12px; - line-height: 1; - margin-bottom: 2px; - margin-top: 7px; -} -.message-hide-name .message-name { - display: none; -} -.message-label { - font-size: 12px; - line-height: 1; - margin-top: 4px; -} -.message-hide-label .message-label { - display: none; -} -.message-avatar { - width: 48px; - height: 48px; - border-radius: 100%; - margin-top: -48px; - position: relative; - top: 1px; - background-size: cover; - opacity: 1; - -webkit-transition-duration: 400ms; - transition-duration: 400ms; -} -.message-hide-avatar .message-avatar { - opacity: 0; -} -.message-text { - box-sizing: border-box; - border-radius: 2px; - padding: 6px 8px; - min-width: 48px; - font-size: 16px; - line-height: 1.2; - word-break: break-word; - color: #333; - min-height: 48px; - position: relative; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.message-text img { - max-width: 100%; - height: auto; -} -.message-pic .message-text { - padding: 8px; -} -.message-date { - font-size: 12px; - margin-top: 4px; -} -.message-pic img + .message-date { - margin-top: 8px; -} -.message-sent { - -ms-flex-item-align: end; - -webkit-align-self: flex-end; - align-self: flex-end; - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - align-items: flex-end; -} -.message-sent .message-name, -.message-sent .message-label { - margin-right: 8px; -} -.message-sent .message-text { - background-color: #C8E6C9; - margin-left: auto; - border-radius: 2px 2px 0 2px; - margin-right: 8px; -} -.message-sent .message-text:before { - position: absolute; - content: ''; - border-left: 0px solid transparent; - border-right: 8px solid transparent; - border-bottom: 8px solid #C8E6C9; - left: 100%; - bottom: 0; - width: 0; - height: 0; -} -.message-sent.message-with-avatar .message-text, -.message-sent.message-with-avatar .message-name, -.message-sent.message-with-avatar .message-label { - margin-right: 56px; -} -.message-received { - -ms-flex-item-align: start; - -webkit-align-self: flex-start; - align-self: flex-start; - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; -} -.message-received .message-text { - background-color: #fff; - border-radius: 2px 2px 2px 0px; - margin-left: 8px; -} -.message-received .message-text:before { - position: absolute; - content: ''; - border-left: 8px solid transparent; - border-right: 0px solid transparent; - border-bottom: 8px solid #fff; - right: 100%; - bottom: 0; - width: 0; - height: 0; -} -.message-received .message-name, -.message-received .message-label { - margin-left: 8px; -} -.message-received.message-with-avatar .message-text, -.message-received.message-with-avatar .message-name, -.message-received.message-with-avatar .message-label { - margin-left: 56px; -} -.message-appear-from-bottom { - -webkit-animation: messageAppearFromBottom 400ms; - animation: messageAppearFromBottom 400ms; -} -.message-appear-from-top { - -webkit-animation: messageAppearFromTop 400ms; - animation: messageAppearFromTop 400ms; -} -@-webkit-keyframes messageAppearFromBottom { - from { - -webkit-transform: translate3d(0, 100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromBottom { - from { - transform: translate3d(0, 100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes messageAppearFromTop { - from { - -webkit-transform: translate3d(0, -100%, 0); - } - to { - -webkit-transform: translate3d(0, 0, 0); - } -} -@keyframes messageAppearFromTop { - from { - transform: translate3d(0, -100%, 0); - } - to { - transform: translate3d(0, 0, 0); - } -} -/* === Statusbar overlay === */ -html.with-statusbar-overlay body { - padding-top: 20px; - box-sizing: border-box; -} -html.with-statusbar-overlay body .statusbar-overlay { - display: block; -} -html.with-statusbar-overlay body .panel { - padding-top: 20px; -} -.statusbar-overlay { - background: #40865c; - z-index: 10000; - position: absolute; - left: 0; - top: 0; - height: 20px; - width: 100%; - display: none; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -/* === - Preloader - By Rudi Theunissen (https://github.com/rtheunissen/md-preloader) -=== */ -.preloader { - font-size: 0; - display: inline-block; - width: 32px; - height: 32px; - -webkit-animation: preloader-outer 3300ms linear infinite; - animation: preloader-outer 3300ms linear infinite; -} -.preloader svg { - width: 100%; - height: 100%; - -webkit-animation: preloader-inner 1320ms linear infinite; - animation: preloader-inner 1320ms linear infinite; -} -.preloader svg circle { - fill: none; - stroke: #757575; - stroke-linecap: square; - -webkit-animation: preloader-arc 1320ms cubic-bezier(0.8, 0, 0.4, 0.8) infinite; - animation: preloader-arc 1320ms cubic-bezier(0.8, 0, 0.4, 0.8) infinite; -} -@-webkit-keyframes preloader-outer { - 0% { - -webkit-transform: rotate(0); - } - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes preloader-outer { - 0% { - transform: rotate(0); - } - 100% { - transform: rotate(360deg); - } -} -@-webkit-keyframes preloader-inner { - 0% { - -webkit-transform: rotate(-100.8deg); - } - 100% { - -webkit-transform: rotate(0); - } -} -@keyframes preloader-inner { - 0% { - transform: rotate(-100.8deg); - } - 100% { - transform: rotate(0); - } -} -@-webkit-keyframes preloader-arc { - 0% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: 0; - } - 40% { - stroke-dasharray: 151.55042961px, 210.48670779px; - stroke-dashoffset: 0; - } - 100% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: -151.55042961px; - } -} -@keyframes preloader-arc { - 0% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: 0; - } - 40% { - stroke-dasharray: 151.55042961px, 210.48670779px; - stroke-dashoffset: 0; - } - 100% { - stroke-dasharray: 1 210.48670779px; - stroke-dashoffset: -151.55042961px; - } -} -.preloader-inner { - position: relative; - display: block; - width: 100%; - height: 100%; - -webkit-animation: preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; - animation: preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; -} -.preloader-inner .preloader-inner-gap { - position: absolute; - width: 2px; - left: 50%; - margin-left: -1px; - top: 0; - bottom: 0; - box-sizing: border-box; - border-top: 4px solid #757575; -} -.preloader-inner .preloader-inner-left, -.preloader-inner .preloader-inner-right { - position: absolute; - top: 0; - height: 100%; - width: 50%; - overflow: hidden; -} -.preloader-inner .preloader-inner-half-circle { - position: absolute; - top: 0; - height: 100%; - width: 200%; - box-sizing: border-box; - border: 4px solid #757575; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation-iteration-count: infinite; - -webkit-animation-duration: 1.3125s; - -webkit-animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); - animation-iteration-count: infinite; - animation-duration: 1.3125s; - animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); -} -.preloader-white .preloader-inner .preloader-inner-gap, -.preloader-white .preloader-inner .preloader-inner-half-circle { - border-color: #fff; -} -.preloader-inner .preloader-inner-left { - left: 0; -} -.preloader-inner .preloader-inner-left .preloader-inner-half-circle { - left: 0; - border-right-color: transparent !important; - -webkit-animation-name: preloader-left-rotate; - animation-name: preloader-left-rotate; -} -.preloader-inner .preloader-inner-right { - right: 0; -} -.preloader-inner .preloader-inner-right .preloader-inner-half-circle { - right: 0; - border-left-color: transparent !important; - -webkit-animation-name: preloader-right-rotate; - animation-name: preloader-right-rotate; -} -.color-multi .preloader-inner .preloader-inner-left .preloader-inner-half-circle { - -webkit-animation-name: preloader-left-rotate-multicolor; - animation-name: preloader-left-rotate-multicolor; -} -.color-multi .preloader-inner .preloader-inner-right .preloader-inner-half-circle { - -webkit-animation-name: preloader-right-rotate-multicolor; - animation-name: preloader-right-rotate-multicolor; -} -@-webkit-keyframes preloader-left-rotate { - 0%, - 100% { - -webkit-transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - } -} -@keyframes preloader-left-rotate { - 0%, - 100% { - transform: rotate(130deg); - } - 50% { - transform: rotate(-5deg); - } -} -@-webkit-keyframes preloader-right-rotate { - 0%, - 100% { - -webkit-transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - } -} -@keyframes preloader-right-rotate { - 0%, - 100% { - transform: rotate(-130deg); - } - 50% { - transform: rotate(5deg); - } -} -@-webkit-keyframes preloader-inner-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - } - 25% { - -webkit-transform: rotate(270deg); - } - 37.5% { - -webkit-transform: rotate(405deg); - } - 50% { - -webkit-transform: rotate(540deg); - } - 62.5% { - -webkit-transform: rotate(675deg); - } - 75% { - -webkit-transform: rotate(810deg); - } - 87.5% { - -webkit-transform: rotate(945deg); - } - 100% { - -webkit-transform: rotate(1080deg); - } -} -@keyframes preloader-inner-rotate { - 12.5% { - transform: rotate(135deg); - } - 25% { - transform: rotate(270deg); - } - 37.5% { - transform: rotate(405deg); - } - 50% { - transform: rotate(540deg); - } - 62.5% { - transform: rotate(675deg); - } - 75% { - transform: rotate(810deg); - } - 87.5% { - transform: rotate(945deg); - } - 100% { - transform: rotate(1080deg); - } -} -@-webkit-keyframes preloader-left-rotate-multicolor { - 0%, - 100% { - border-left-color: #4285F4; - -webkit-transform: rotate(130deg); - } - 75% { - border-left-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-left-color: #F7C223; - border-top-color: #F7C223; - -webkit-transform: rotate(-5deg); - } - 25% { - border-left-color: #DE3E35; - border-top-color: #DE3E35; - } -} -@keyframes preloader-left-rotate-multicolor { - 0%, - 100% { - border-left-color: #4285F4; - transform: rotate(130deg); - } - 75% { - border-left-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-left-color: #F7C223; - border-top-color: #F7C223; - transform: rotate(-5deg); - } - 25% { - border-left-color: #DE3E35; - border-top-color: #DE3E35; - } -} -@-webkit-keyframes preloader-right-rotate-multicolor { - 0%, - 100% { - border-right-color: #4285F4; - -webkit-transform: rotate(-130deg); - } - 75% { - border-right-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-right-color: #F7C223; - border-top-color: #F7C223; - -webkit-transform: rotate(5deg); - } - 25% { - border-top-color: #DE3E35; - border-right-color: #DE3E35; - } -} -@keyframes preloader-right-rotate-multicolor { - 0%, - 100% { - border-right-color: #4285F4; - transform: rotate(-130deg); - } - 75% { - border-right-color: #1B9A59; - border-top-color: #1B9A59; - } - 50% { - border-right-color: #F7C223; - border-top-color: #F7C223; - transform: rotate(5deg); - } - 25% { - border-top-color: #DE3E35; - border-right-color: #DE3E35; - } -} -/* === Progress Bar === */ -.progressbar, -.progressbar-infinite { - height: 4px; - width: 100%; - overflow: hidden; - display: block; - position: relative; - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - background: rgba(64, 134, 92, 0.5); -} -.progressbar { - display: block; - vertical-align: middle; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.progressbar span { - content: ''; - width: 100%; - background: #40865c; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition-duration: 150ms; - transition-duration: 150ms; -} -.progressbar-infinite { - z-index: 15000; -} -.progressbar-infinite:before, -.progressbar-infinite:after { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #40865c; - -webkit-transform-origin: left center; - transform-origin: left center; -} -.progressbar-infinite:before { - -webkit-animation: progressbar-infinite-1 2s linear infinite; - animation: progressbar-infinite-1 2s linear infinite; -} -.progressbar-infinite:after { - -webkit-animation: progressbar-infinite-2 2s linear infinite; - animation: progressbar-infinite-2 2s linear infinite; -} -html.with-statusbar-overlay body > .progressbar-infinite, -html.with-statusbar-overlay .framework7-root > .progressbar-infinite { - top: 20px; -} -.progressbar-infinite.color-multi { - background: none !important; -} -.progressbar-infinite.color-multi:before, -.progressbar-infinite.color-multi:after { - width: 100%; - animation: none; -} -.progressbar-infinite.color-multi:before { - background: none; - -webkit-animation: progressbar-infinite-multicolor-bg 3s step-end infinite; - animation: progressbar-infinite-multicolor-bg 3s step-end infinite; -} -.progressbar-infinite.color-multi:after { - background: none; - -webkit-animation: progressbar-infinite-multicolor-fill 3s linear infinite; - animation: progressbar-infinite-multicolor-fill 3s linear infinite; - -webkit-transform-origin: center center; - transform-origin: center center; -} -body > .progressbar, -.view > .progressbar, -.views > .progressbar, -.page > .progressbar, -.panel > .progressbar, -.popup > .progressbar, -.framework7-root > .progressbar, -body > .progressbar-infinite, -.view > .progressbar-infinite, -.views > .progressbar-infinite, -.page > .progressbar-infinite, -.panel > .progressbar-infinite, -.popup > .progressbar-infinite, -.framework7-root > .progressbar-infinite { - position: absolute; - left: 0; - top: 0; - z-index: 15000; - -webkit-transform-origin: center top; - transform-origin: center top; -} -.progressbar-in { - -webkit-animation: progressbar-in 300ms forwards; - animation: progressbar-in 300ms forwards; -} -.progressbar-out { - -webkit-animation: progressbar-out 300ms forwards; - animation: progressbar-out 300ms forwards; -} -html.with-statusbar-overlay body > .progressbar, -html.with-statusbar-overlay .framework7-root > .progressbar { - top: 20px; -} -@-webkit-keyframes progressbar-in { - from { - opacity: 0; - -webkit-transform: scaleY(0); - } - to { - opacity: 1; - -webkit-transform: scaleY(1); - } -} -@keyframes progressbar-in { - from { - opacity: 0; - transform: scaleY(0); - } - to { - opacity: 1; - transform: scaleY(1); - } -} -@-webkit-keyframes progressbar-out { - from { - opacity: 1; - -webkit-transform: scaleY(1); - } - to { - opacity: 0; - -webkit-transform: scaleY(0); - } -} -@keyframes progressbar-out { - from { - opacity: 1; - transform: scaleY(1); - } - to { - opacity: 0; - transform: scaleY(0); - } -} -@-webkit-keyframes progressbar-infinite-1 { - 0% { - -webkit-transform: translateX(-10%) scaleX(0.1); - } - 25% { - -webkit-transform: translateX(30%) scaleX(0.6); - } - 50% { - -webkit-transform: translateX(100%) scaleX(1); - } - 100% { - -webkit-transform: translateX(100%) scaleX(1); - } -} -@keyframes progressbar-infinite-1 { - 0% { - transform: translateX(-10%) scaleX(0.1); - } - 25% { - transform: translateX(30%) scaleX(0.6); - } - 50% { - transform: translateX(100%) scaleX(1); - } - 100% { - transform: translateX(100%) scaleX(1); - } -} -@-webkit-keyframes progressbar-infinite-2 { - 0% { - -webkit-transform: translateX(-100%) scaleX(1); - } - 40% { - -webkit-transform: translateX(-100%) scaleX(1); - } - 75% { - -webkit-transform: translateX(60%) scaleX(0.35); - } - 90% { - -webkit-transform: translateX(100%) scaleX(0.1); - } - 100% { - -webkit-transform: translateX(100%) scaleX(0.1); - } -} -@keyframes progressbar-infinite-2 { - 0% { - transform: translateX(-100%) scaleX(1); - } - 40% { - transform: translateX(-100%) scaleX(1); - } - 75% { - transform: translateX(60%) scaleX(0.35); - } - 90% { - transform: translateX(100%) scaleX(0.1); - } - 100% { - transform: translateX(100%) scaleX(0.1); - } -} -@-webkit-keyframes progressbar-infinite-multicolor-bg { - 0% { - background-color: #4caf50; - } - 25% { - background-color: #f44336; - } - 50% { - background-color: #2196f3; - } - 75% { - background-color: #ffeb3b; - } -} -@keyframes progressbar-infinite-multicolor-bg { - 0% { - background-color: #4caf50; - } - 25% { - background-color: #f44336; - } - 50% { - background-color: #2196f3; - } - 75% { - background-color: #ffeb3b; - } -} -@-webkit-keyframes progressbar-infinite-multicolor-fill { - 0% { - -webkit-transform: scaleX(0); - background-color: #f44336; - } - 24.9% { - -webkit-transform: scaleX(1); - background-color: #f44336; - } - 25% { - -webkit-transform: scaleX(0); - background-color: #2196f3; - } - 49.9% { - -webkit-transform: scaleX(1); - background-color: #2196f3; - } - 50% { - -webkit-transform: scaleX(0); - background-color: #ffeb3b; - } - 74.9% { - -webkit-transform: scaleX(1); - background-color: #ffeb3b; - } - 75% { - -webkit-transform: scaleX(0); - background-color: #4caf50; - } - 100% { - -webkit-transform: scaleX(1); - background-color: #4caf50; - } -} -@keyframes progressbar-infinite-multicolor-fill { - 0% { - transform: scaleX(0); - background-color: #f44336; - } - 24.9% { - transform: scaleX(1); - background-color: #f44336; - } - 25% { - transform: scaleX(0); - background-color: #2196f3; - } - 49.9% { - transform: scaleX(1); - background-color: #2196f3; - } - 50% { - transform: scaleX(0); - background-color: #ffeb3b; - } - 74.9% { - transform: scaleX(1); - background-color: #ffeb3b; - } - 75% { - transform: scaleX(0); - background-color: #4caf50; - } - 100% { - transform: scaleX(1); - background-color: #4caf50; - } -} -/* === Columns Picker === */ -.picker-columns { - width: 100%; - height: 260px; - z-index: 11500; -} -.picker-columns.picker-modal-inline { - height: 200px; -} -@media (orientation: landscape) and (max-height: 415px) { - .picker-columns:not(.picker-modal-inline) { - height: 200px; - } -} -.popover.popover-picker-columns { - width: 280px; -} -.popover.popover-picker-columns .toolbar { - border-radius: 2px 2px 0 0; -} -.picker-items { - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - padding: 0; - text-align: right; - font-size: 20px; - -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); - -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); -} -.picker-items-col { - overflow: hidden; - position: relative; - max-height: 100%; -} -.picker-items-col.picker-items-col-left { - text-align: left; -} -.picker-items-col.picker-items-col-center { - text-align: center; -} -.picker-items-col.picker-items-col-right { - text-align: right; -} -.picker-items-col.picker-items-col-divider { - color: rgba(0, 0, 0, 0.87); - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; -} -.picker-items-col-wrapper { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.picker-item { - height: 36px; - line-height: 36px; - padding: 0 10px; - white-space: nowrap; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - color: rgba(0, 0, 0, 0.54); - left: 0; - top: 0; - width: 100%; - box-sizing: border-box; - -webkit-transition-duration: 300ms; - transition-duration: 300ms; -} -.picker-items-col-absolute .picker-item { - position: absolute; -} -.picker-item.picker-item-far { - pointer-events: none; -} -.picker-item.picker-selected { - color: rgba(0, 0, 0, 0.87); - -webkit-transform: translate3d(0, 0, 0) rotateX(0deg); - transform: translate3d(0, 0, 0) rotateX(0deg); -} -.picker-center-highlight { - height: 36px; - box-sizing: border-box; - position: absolute; - left: 0; - width: 100%; - top: 50%; - margin-top: -18px; - pointer-events: none; -} -.picker-center-highlight:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.15); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .picker-center-highlight:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-center-highlight:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.15); - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .picker-center-highlight:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .picker-center-highlight:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.picker-3d .picker-items { - overflow: hidden; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.picker-3d .picker-items-col, -.picker-3d .picker-items-col-wrapper, -.picker-3d .picker-item { - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.picker-3d .picker-items-col { - overflow: visible; -} -.picker-3d .picker-item { - -webkit-transform-origin: center center -110px; - transform-origin: center center -110px; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -/* === Notifications === */ -.notifications { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - z-index: 10900; - color: #fff; - font-size: 14px; - margin: 0; - border: none; - display: none; - box-sizing: border-box; - max-height: 100%; - overflow: hidden; - -webkit-overflow-scrolling: touch; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-perspective: 1200px; - perspective: 1200px; -} -.notifications.list-block > ul { - max-width: 568px; - background: #323232; - margin: 0 auto; -} -.notifications.list-block > ul:before { - display: none; -} -.notifications.list-block > ul:after { - display: none; -} -.notifications .item-content { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - align-items: flex-start; - padding-left: 24px; -} -.notifications .item-title { - font-size: 14px; - font-weight: normal; - white-space: normal; - padding-top: 14px; - padding-bottom: 14px; -} -.notifications .item-inner { - padding-right: 24px; - padding-top: 0; - padding-bottom: 0; -} -.notifications .item-inner:after { - display: none; -} -.notifications .item-after { - max-height: none; - margin-left: 16px; -} -.notifications .button.close-notification { - color: #44b571; -} -.notifications .notification-item { - margin: 0 auto; - -webkit-transition-duration: 450ms; - transition-duration: 450ms; - -webkit-transition-delay: 100ms; - transition-delay: 100ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; -} -.notifications .notification-hidden { - opacity: 0; - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.notifications .notification-item-removing { - -webkit-transition-delay: 0ms; - transition-delay: 0ms; -} -@media (min-width: 569px) { - .notifications.list-block > ul { - border-radius: 2px; - width: auto; - min-width: 288px; - } -} -/* === Touch ripple === */ -.ripple, -a.floating-button, -.floating-button > a, -a.link, -a.item-link, -.button, -.modal-button, -.tab-link, -.label-radio, -.label-checkbox, -.actions-modal-button, -.speed-dial-buttons a { - -webkit-user-select: none; - user-select: none; -} -.ripple-wave { - left: 0; - top: 0; - position: absolute !important; - border-radius: 50%; - pointer-events: none; - z-index: -1; - background: rgba(0, 0, 0, 0.1); - padding: 0; - margin: 0; - font-size: 0; - -webkit-transform: translate3d(0px, 0px, 0) scale(0); - transform: translate3d(0px, 0px, 0) scale(0); - -webkit-transition-duration: 1400ms; - transition-duration: 1400ms; -} -.ripple-wave.ripple-wave-fill { - -webkit-transition-duration: 300ms; - transition-duration: 300ms; - opacity: 0.35; -} -.ripple-wave.ripple-wave-out { - -webkit-transition-duration: 600ms; - transition-duration: 600ms; - opacity: 0; -} -.button-fill .ripple-wave, -.picker-calendar-day .ripple-wave { - z-index: 1; -} -.button-fill .ripple-wave, -.navbar .ripple-wave, -.toolbar .ripple-wave, -.subnavbar .ripple-wave, -.searchbar .ripple-wave, -.notifications .ripple-wave, -.floating-button .ripple-wave, -.speed-dial-buttons a .ripple-wave { - background: rgba(255, 255, 255, 0.3); -} -.messagebar .ripple-wave { - background: rgba(0, 0, 0, 0.1); -} -/* === Disabled elements === */ -.disabled, -[disabled] { - opacity: 0.55; - pointer-events: none; -} -.disabled .disabled, -.disabled [disabled], -[disabled] .disabled, -[disabled] [disabled] { - opacity: 1; -} -* { - -webkit-user-select: none; - user-select: none; -} -input, -textarea { - -webkit-touch-callout: default; - -webkit-user-select: text; - user-select: text; -} -.phone.android .container-edit .page-content .list-block:first-child, -.phone.android .container-collaboration .page-content .list-block:first-child, -.phone.android .container-filter .page-content .list-block:first-child { - margin-top: -1px; -} -.container-edit.popover, -.container-add.popover, -.container-settings.popover, -.container-collaboration.popover, -.container-filter.popover { - width: 360px; -} -.settings.popup .list-block ul, -.settings.popover .list-block ul { - border-radius: 0; - background: #fff; -} -.settings.popup .list-block:first-child, -.settings.popover .list-block:first-child { - margin-top: 0; -} -.settings.popup .list-block:first-child li:first-child a, -.settings.popover .list-block:first-child li:first-child a { - border-radius: 0; -} -.settings.popup > .content-block, -.settings.popover > .content-block, -.settings.popup .popover-inner > .content-block, -.settings.popover .popover-inner > .content-block { - width: 100%; - height: 100%; - margin: 0; - padding: 0; -} -.settings.popup .popover-view, -.settings.popover .popover-view { - border-radius: 2px; -} -.settings.popup .popover-view > .pages, -.settings.popover .popover-view > .pages { - border-radius: 2px; -} -.settings .categories { - width: 100%; - height: 100%; - margin: 0; - padding: 0; -} -.settings .categories > .toolbar { - top: 0; - height: 100%; -} -.settings .popover-inner { - height: 400px; -} -.dataview .row { - justify-content: space-around; -} -.dataview ul { - padding: 0 10px; - list-style: none; - justify-content: space-around; -} -.dataview ul li { - display: inline-block; -} -.dataview .active { - position: relative; - z-index: 1; -} -.dataview .active::after { - content: ''; - position: absolute; - width: 22px; - height: 22px; - right: -5px; - bottom: -5px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%2211%22%2F%3E%3Cpath%20d%3D%22M11%2C21A10%2C10%2C0%2C1%2C1%2C21%2C11%2C10%2C10%2C0%2C0%2C1%2C11%2C21h0ZM17.4%2C7.32L17.06%2C7a0.48%2C0.48%2C0%2C0%2C0-.67%2C0l-7%2C6.84L6.95%2C11.24a0.51%2C0.51%2C0%2C0%2C0-.59.08L6%2C11.66a0.58%2C0.58%2C0%2C0%2C0%2C0%2C.65l3.19%2C3.35a0.38%2C0.38%2C0%2C0%2C0%2C.39%2C0L17.4%2C8a0.48%2C0.48%2C0%2C0%2C0%2C0-.67h0Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.item-content .item-after.splitter label { - color: #000; - margin: 0 5px; - line-height: 36px; -} -.item-content .item-after.splitter .button { - min-width: 40px; - margin-left: 0; -} -.item-content .item-after.value { - display: block; - min-width: 50px; - color: #000000; - margin-left: 10px; - text-align: right; -} -.item-content.buttons .item-inner { - padding-top: 0; - padding-bottom: 0; -} -.item-content.buttons .item-inner > .row { - width: 100%; -} -.item-content.buttons .item-inner > .row .button { - flex: 1; - font-size: 17px; - margin-left: 5px; -} -.item-content.buttons .item-inner > .row .button:first-child { - margin-left: 0; -} -.item-content.buttons .item-inner > .row .button.active { - color: #fff; - background-color: #40865c; -} -.item-content .color-preview { - width: 30px; - height: 30px; - border-radius: 16px; - margin-top: -3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.item-link.no-indicator .item-inner { - background-image: none; - padding-right: 16px; -} -.popover .list-block:last-child li:last-child .buttons a { - border-radius: 3px; -} -.button.active i.icon { - background-color: #fff; -} -.document-menu { - width: auto; - line-height: 1 !important; - z-index: 12500; -} -.document-menu .popover-inner { - overflow: hidden; -} -.document-menu .list-block { - white-space: pre; -} -.document-menu .list-block ul { - height: 48px; -} -.document-menu .list-block li { - display: inline-block; -} -html.phone .document-menu .list-block .item-link { - padding: 0 10px; -} -.color-palette a { - flex-grow: 1; - position: relative; - min-width: 10px; - min-height: 26px; - margin: 1px 1px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-palette a.active:after { - content: ' '; - position: absolute; - width: 100%; - height: 100%; - box-shadow: 0 0 0 1px white, 0 0 0 4px #40865c; - z-index: 1; - border-radius: 1px; -} -.color-palette a.transparent { - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20x%3D'0px'%20y%3D'0px'%20viewBox%3D'0%200%2022%2022'%20xml%3Aspace%3D'preserve'%3E%3Cline%20stroke%3D'%23ff0000'%20stroke-linecap%3D'undefined'%20stroke-linejoin%3D'undefined'%20id%3D'svg_1'%20y2%3D'0'%20x2%3D'22'%20y1%3D'22'%20x1%3D'0'%20stroke-width%3D'2'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E"); -} -.color-palette .theme-colors .item-inner { - display: inline-block; - overflow: visible; -} -.color-palette .standart-colors .item-inner, -.color-palette .dynamic-colors .item-inner { - overflow: visible; -} -.color-palette.list-block:last-child li:last-child a { - border-radius: 0; -} -.custom-colors { - display: flex; - justify-content: space-around; - align-items: center; - margin: 15px; -} -.custom-colors.phone { - max-width: 300px; - margin: 0 auto; - margin-top: 4px; -} -.custom-colors.phone .button-round { - margin-top: 20px; -} -.custom-colors .right-block { - margin-left: 20px; -} -.custom-colors .button-round { - height: 72px; - width: 72px; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - border-radius: 100px; - background-color: #40865c; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - border-color: transparent; - margin-top: 25px; -} -.custom-colors .button-round.active-state { - background-color: rgba(0, 0, 0, 0.1); -} -.custom-colors .color-hsb-preview { - width: 72px; - height: 72px; - border-radius: 100px; - overflow: hidden; - border: 1px solid #ededed; -} -.custom-colors .new-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .current-color-hsb-preview { - width: 100%; - height: 36px; -} -.custom-colors .list-block ul:before, -.custom-colors .list-block ul:after { - content: none; -} -.custom-colors .list-block ul li { - border: 1px solid rgba(0, 0, 0, 0.3); -} -.custom-colors .color-picker-wheel { - position: relative; - width: 290px; - max-width: 100%; - height: auto; - font-size: 0; -} -.custom-colors .color-picker-wheel svg { - width: 100%; - height: auto; -} -.custom-colors .color-picker-wheel .color-picker-wheel-handle { - width: calc(16.66666667%); - height: calc(16.66666667%); - position: absolute; - box-sizing: border-box; - border: 2px solid #fff; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); - background: red; - border-radius: 50%; - left: 0; - top: 0; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum { - background-color: #000; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); - position: relative; - width: 45%; - height: 45%; - left: 50%; - top: 50%; - transform: translate3d(-50%, -50%, 0); - position: absolute; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle { - width: 4px; - height: 4px; - position: absolute; - left: -2px; - top: -2px; - z-index: 1; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle:after { - background-color: inherit; - content: ''; - position: absolute; - width: 16px; - height: 16px; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); - box-sizing: border-box; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transition: 150ms; - transition-property: transform; - transform-origin: center; -} -.custom-colors .color-picker-wheel .color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after { - transform: scale(1.5) translate(-33.333%, -33.333%); -} -.about .page-content { - text-align: center; -} -.about .content-block:first-child { - margin: 15px 0; -} -.about .content-block { - margin: 0 auto 15px; -} -.about .content-block a { - color: #000; -} -.about h3 { - font-weight: normal; - margin: 0; -} -.about h3.vendor { - color: #000; - font-weight: bold; - margin-top: 15px; -} -.about p > label { - margin-right: 5px; -} -.about .logo { - background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center; -} -.color-schemes-menu { - cursor: pointer; - display: block; - background-color: #fff; -} -.color-schemes-menu .item-inner { - justify-content: flex-start; -} -.color-schemes-menu .color-schema-block { - display: flex; -} -.color-schemes-menu .color { - min-width: 26px; - min-height: 26px; - margin: 0 2px 0 0; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset; -} -.color-schemes-menu .text { - margin-left: 20px; - color: #212121; -} -.page-change .block-description { - background-color: #fff; - padding-top: 15px; - padding-bottom: 15px; - margin: 0; - max-width: 100%; - word-wrap: break-word; -} -.page-change #user-name { - font-size: 16px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-change #date-change { - font-size: 14px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 3px; -} -.page-change #text-change { - color: #000000; - font-size: 15px; - line-height: 20px; - margin: 0; - margin-top: 10px; -} -.page-change .block-btn { - position: absolute; - bottom: 0; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0; - width: 100%; - height: 56px; - align-items: center; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); -} -.page-change .block-btn #btn-reject-change { - margin-left: 15px; -} -.page-change .block-btn .change-buttons, -.page-change .block-btn .accept-reject, -.page-change .block-btn .next-prev { - display: flex; -} -.page-change .block-btn .link { - position: relative; - display: flex; - justify-content: center; - align-items: center; - font-size: 14px; - text-transform: uppercase; - font-weight: 500; - height: 56px; - min-width: 48px; -} -.page-change .header-change { - display: flex; - justify-content: flex-start; - padding-right: 16px; -} -.page-change .header-change .initials-change { - height: 40px; - width: 40px; - border-radius: 50px; - color: #FFFFFF; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - font-size: 18px; -} -.page-change #no-changes { - padding: 16px; -} -.container-collaboration .navbar .right.close-collaboration { - position: absolute; - right: 5px; -} -.container-collaboration .page-content .list-block:first-child { - margin-top: -1px; -} -.page-display-mode .list-block .item-subtitle { - font-size: 14px; - color: #9e9e9e; -} -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 400; -} -#user-list ul:before { - content: none; -} -.page-comments .list-block ul:before, -.page-add-comment .list-block ul:before, -.page-view-comments .list-block ul:before, -.container-edit-comment .list-block ul:before, -.container-add-reply .list-block ul:before, -.page-edit-comment .list-block ul:before, -.page-add-reply .list-block ul:before, -.page-edit-reply .list-block ul:before, -.page-comments .list-block ul:after, -.page-add-comment .list-block ul:after, -.page-view-comments .list-block ul:after, -.container-edit-comment .list-block ul:after, -.container-add-reply .list-block ul:after, -.page-edit-comment .list-block ul:after, -.page-add-reply .list-block ul:after, -.page-edit-reply .list-block ul:after { - content: none; -} -.page-comments .list-block .item-inner, -.page-add-comment .list-block .item-inner, -.page-view-comments .list-block .item-inner, -.container-edit-comment .list-block .item-inner, -.container-add-reply .list-block .item-inner, -.page-edit-comment .list-block .item-inner, -.page-add-reply .list-block .item-inner, -.page-edit-reply .list-block .item-inner { - display: block; - padding: 16px 0; - word-wrap: break-word; -} -.page-comments .list-block .item-inner:after, -.page-add-comment .list-block .item-inner:after, -.page-view-comments .list-block .item-inner:after, -.container-edit-comment .list-block .item-inner:after, -.container-add-reply .list-block .item-inner:after, -.page-edit-comment .list-block .item-inner:after, -.page-add-reply .list-block .item-inner:after, -.page-edit-reply .list-block .item-inner:after { - content: none; -} -.page-comments .list-reply, -.page-add-comment .list-reply, -.page-view-comments .list-reply, -.container-edit-comment .list-reply, -.container-add-reply .list-reply, -.page-edit-comment .list-reply, -.page-add-reply .list-reply, -.page-edit-reply .list-reply { - padding-left: 26px; -} -.page-comments .reply-textarea, -.page-add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .comment-textarea, -.page-add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .edit-reply-textarea, -.page-add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - resize: vertical; -} -.page-comments .user-name, -.page-add-comment .user-name, -.page-view-comments .user-name, -.container-edit-comment .user-name, -.container-add-reply .user-name, -.page-edit-comment .user-name, -.page-add-reply .user-name, -.page-edit-reply .user-name { - font-size: 16px; - line-height: 22px; - color: #000000; - margin: 0; -} -.page-comments .comment-date, -.page-add-comment .comment-date, -.page-view-comments .comment-date, -.container-edit-comment .comment-date, -.container-add-reply .comment-date, -.page-edit-comment .comment-date, -.page-add-reply .comment-date, -.page-edit-reply .comment-date, -.page-comments .reply-date, -.page-add-comment .reply-date, -.page-view-comments .reply-date, -.container-edit-comment .reply-date, -.container-add-reply .reply-date, -.page-edit-comment .reply-date, -.page-add-reply .reply-date, -.page-edit-reply .reply-date { - font-size: 12px; - line-height: 18px; - color: #6d6d72; - margin: 0; - margin-top: 0px; -} -.page-comments .comment-text, -.page-add-comment .comment-text, -.page-view-comments .comment-text, -.container-edit-comment .comment-text, -.container-add-reply .comment-text, -.page-edit-comment .comment-text, -.page-add-reply .comment-text, -.page-edit-reply .comment-text, -.page-comments .reply-text, -.page-add-comment .reply-text, -.page-view-comments .reply-text, -.container-edit-comment .reply-text, -.container-add-reply .reply-text, -.page-edit-comment .reply-text, -.page-add-reply .reply-text, -.page-edit-reply .reply-text { - color: #000000; - font-size: 15px; - line-height: 25px; - margin: 0; - max-width: 100%; - padding-right: 15px; -} -.page-comments .comment-text pre, -.page-add-comment .comment-text pre, -.page-view-comments .comment-text pre, -.container-edit-comment .comment-text pre, -.container-add-reply .comment-text pre, -.page-edit-comment .comment-text pre, -.page-add-reply .comment-text pre, -.page-edit-reply .comment-text pre, -.page-comments .reply-text pre, -.page-add-comment .reply-text pre, -.page-view-comments .reply-text pre, -.container-edit-comment .reply-text pre, -.container-add-reply .reply-text pre, -.page-edit-comment .reply-text pre, -.page-add-reply .reply-text pre, -.page-edit-reply .reply-text pre { - white-space: pre-wrap; -} -.page-comments .reply-item, -.page-add-comment .reply-item, -.page-view-comments .reply-item, -.container-edit-comment .reply-item, -.container-add-reply .reply-item, -.page-edit-comment .reply-item, -.page-add-reply .reply-item, -.page-edit-reply .reply-item { - padding-right: 16px; - padding-top: 13px; -} -.page-comments .reply-item .header-reply, -.page-add-comment .reply-item .header-reply, -.page-view-comments .reply-item .header-reply, -.container-edit-comment .reply-item .header-reply, -.container-add-reply .reply-item .header-reply, -.page-edit-comment .reply-item .header-reply, -.page-add-reply .reply-item .header-reply, -.page-edit-reply .reply-item .header-reply { - display: flex; - justify-content: space-between; -} -.page-comments .reply-item .user-name, -.page-add-comment .reply-item .user-name, -.page-view-comments .reply-item .user-name, -.container-edit-comment .reply-item .user-name, -.container-add-reply .reply-item .user-name, -.page-edit-comment .reply-item .user-name, -.page-add-reply .reply-item .user-name, -.page-edit-reply .reply-item .user-name { - padding-top: 3px; -} -.page-comments .comment-quote, -.page-add-comment .comment-quote, -.page-view-comments .comment-quote, -.container-edit-comment .comment-quote, -.container-add-reply .comment-quote, -.page-edit-comment .comment-quote, -.page-add-reply .comment-quote, -.page-edit-reply .comment-quote { - color: #40865c; - border-left: 1px solid #40865c; - padding-left: 10px; - padding-right: 16px; - margin: 5px 0; - font-size: 15px; -} -.page-comments .wrap-comment, -.page-add-comment .wrap-comment, -.page-view-comments .wrap-comment, -.container-edit-comment .wrap-comment, -.container-add-reply .wrap-comment, -.page-edit-comment .wrap-comment, -.page-add-reply .wrap-comment, -.page-edit-reply .wrap-comment, -.page-comments .wrap-reply, -.page-add-comment .wrap-reply, -.page-view-comments .wrap-reply, -.container-edit-comment .wrap-reply, -.container-add-reply .wrap-reply, -.page-edit-comment .wrap-reply, -.page-add-reply .wrap-reply, -.page-edit-reply .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-comments .comment-textarea, -.page-add-comment .comment-textarea, -.page-view-comments .comment-textarea, -.container-edit-comment .comment-textarea, -.container-add-reply .comment-textarea, -.page-edit-comment .comment-textarea, -.page-add-reply .comment-textarea, -.page-edit-reply .comment-textarea, -.page-comments .reply-textarea, -.page-add-comment .reply-textarea, -.page-view-comments .reply-textarea, -.container-edit-comment .reply-textarea, -.container-add-reply .reply-textarea, -.page-edit-comment .reply-textarea, -.page-add-reply .reply-textarea, -.page-edit-reply .reply-textarea, -.page-comments .edit-reply-textarea, -.page-add-comment .edit-reply-textarea, -.page-view-comments .edit-reply-textarea, -.container-edit-comment .edit-reply-textarea, -.container-add-reply .edit-reply-textarea, -.page-edit-comment .edit-reply-textarea, -.page-add-reply .edit-reply-textarea, -.page-edit-reply .edit-reply-textarea { - margin-top: 10px; - background: transparent; - outline: none; - width: 100%; - font-size: 15px; - border: none; - border-radius: 3px; - min-height: 100px; -} -.page-comments .header-comment, -.page-add-comment .header-comment, -.page-view-comments .header-comment, -.container-edit-comment .header-comment, -.container-add-reply .header-comment, -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - display: flex; - justify-content: space-between; - padding-right: 16px; -} -.page-comments .header-comment .comment-right, -.page-add-comment .header-comment .comment-right, -.page-view-comments .header-comment .comment-right, -.container-edit-comment .header-comment .comment-right, -.container-add-reply .header-comment .comment-right, -.page-edit-comment .header-comment .comment-right, -.page-add-reply .header-comment .comment-right, -.page-edit-reply .header-comment .comment-right { - display: flex; - justify-content: space-between; - width: 70px; -} -.page-comments .header-comment .comment-left, -.page-add-comment .header-comment .comment-left, -.page-view-comments .header-comment .comment-left, -.container-edit-comment .header-comment .comment-left, -.container-add-reply .header-comment .comment-left, -.page-edit-comment .header-comment .comment-left, -.page-add-reply .header-comment .comment-left, -.page-edit-reply .header-comment .comment-left { - display: flex; - justify-content: space-between; -} -.page-comments .header-comment .initials-comment, -.page-add-comment .header-comment .initials-comment, -.page-view-comments .header-comment .initials-comment, -.container-edit-comment .header-comment .initials-comment, -.container-add-reply .header-comment .initials-comment, -.page-edit-comment .header-comment .initials-comment, -.page-add-reply .header-comment .initials-comment, -.page-edit-reply .header-comment .initials-comment { - height: 40px; - width: 40px; - border-radius: 50px; - color: #FFFFFF; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - font-size: 18px; -} -.page-comments .header-reply .reply-left, -.page-add-comment .header-reply .reply-left, -.page-view-comments .header-reply .reply-left, -.container-edit-comment .header-reply .reply-left, -.container-add-reply .header-reply .reply-left, -.page-edit-comment .header-reply .reply-left, -.page-add-reply .header-reply .reply-left, -.page-edit-reply .header-reply .reply-left { - display: flex; - justify-content: space-between; - align-items: flex-start; -} -.page-comments .header-reply .initials-reply, -.page-add-comment .header-reply .initials-reply, -.page-view-comments .header-reply .initials-reply, -.container-edit-comment .header-reply .initials-reply, -.container-add-reply .header-reply .initials-reply, -.page-edit-comment .header-reply .initials-reply, -.page-add-reply .header-reply .initials-reply, -.page-edit-reply .header-reply .initials-reply { - width: 24px; - height: 24px; - color: #FFFFFF; - font-size: 11px; - display: flex; - justify-content: center; - align-items: center; - margin-right: 16px; - border-radius: 50px; - margin-top: 5px; -} -.settings.popup .list-block ul.list-reply:last-child:after, -.settings.popover .list-block ul.list-reply:last-child:after { - display: none; -} -.container-view-comment { - position: fixed; - -webkit-transition: height 100ms; - transition: height 100ms; - background-color: #FFFFFF; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - height: 50%; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .page-view-comments { - background-color: #FFFFFF; -} -.container-view-comment .page-view-comments .list-block { - margin-bottom: 120px; -} -.container-view-comment .page-view-comments .list-block ul:before, -.container-view-comment .page-view-comments .list-block ul:after { - content: none; -} -.container-view-comment .page-view-comments .list-block .item-inner { - padding: 0; -} -.container-view-comment .toolbar { - position: fixed; - background-color: #FFFFFF; - box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); -} -.container-view-comment .toolbar.toolbar-bottom { - top: auto; -} -.container-view-comment .toolbar:before { - content: none; -} -.container-view-comment .toolbar a.link { - color: #40865c; - font-size: 16px; -} -.container-view-comment .toolbar .toolbar-inner { - display: flex; - justify-content: space-between; - padding: 0 16px; -} -.container-view-comment .toolbar .toolbar-inner .button-left { - min-width: 80px; -} -.container-view-comment .toolbar .toolbar-inner .button-right { - min-width: 62px; - display: flex; - justify-content: space-between; -} -.container-view-comment .toolbar .toolbar-inner .button-right a { - padding: 0 8px; -} -.container-view-comment .swipe-container { - display: flex; - justify-content: center; - height: 40px; -} -.container-view-comment .swipe-container .icon-swipe { - margin-top: 8px; - width: 40px; - height: 4px; - background: rgba(0, 0, 0, 0.12); - border-radius: 2px; -} -.container-view-comment .list-block { - margin-top: 0; -} -.container-view-comment.popover { - position: absolute; - border-radius: 4px; - min-height: 170px; - height: 400px; - max-height: 600px; -} -.container-view-comment.popover .toolbar { - position: absolute; - border-radius: 0 0 4px 4px; -} -.container-view-comment.popover .toolbar .toolbar-inner { - padding-right: 0; -} -.container-view-comment.popover .pages { - position: absolute; -} -.container-view-comment.popover .pages .page { - border-radius: 13px; -} -.container-view-comment.popover .pages .page .page-content { - padding: 16px; - padding-bottom: 80px; -} -.container-view-comment.popover .pages .page .page-content .list-block { - margin-bottom: 0px; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content { - padding-left: 0; -} -.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, -.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .block-reply { - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { - min-height: 70px; - width: 278px; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; -} -.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { - min-height: 60px; - width: 100%; - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 5px; - height: 60px; - margin-top: 10px; -} -.container-view-comment.popover .pages .page .page-content .comment-text { - padding-right: 0; -} -.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { - border: 1px solid #c4c4c4; - border-radius: 6px; - padding: 8px; - min-height: 80px; - height: 80px; -} -#done-comment { - padding: 0 16px; -} -.page-add-comment .wrap-comment, -.page-add-comment .wrap-reply { - padding: 16px 24px 0 16px; -} -.page-add-comment .wrap-comment .header-comment, -.page-add-comment .wrap-reply .header-comment { - justify-content: flex-start; -} -.page-add-comment .wrap-comment .user-name, -.page-add-comment .wrap-reply .user-name { - font-size: 17px; - font-weight: bold; -} -.page-add-comment .wrap-comment .comment-date, -.page-add-comment .wrap-reply .comment-date { - font-size: 13px; - color: #6d6d72; -} -.page-add-comment .wrap-comment .wrap-textarea, -.page-add-comment .wrap-reply .wrap-textarea { - margin-top: 16px; - padding-right: 6px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { - font-size: 17px; - border: none; - margin-top: 0; - min-height: 100px; - border-radius: 4px; -} -.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, -.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { - color: #9e9e9e; - font-size: 17px; -} -.container-edit-comment, -.container-add-reply { - height: 100%; -} -.container-edit-comment .navbar:after, -.container-add-reply .navbar:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -.container-edit-comment .navbar .navbar-inner, -.container-add-reply .navbar .navbar-inner { - justify-content: space-between; -} -.container-edit-comment .navbar a.link i + span, -.container-add-reply .navbar a.link i + span { - margin-left: 0; -} -.container-edit-comment .navbar .center, -.container-add-reply .navbar .center { - font-size: 18px; -} -.container-edit-comment .navbar .right, -.container-add-reply .navbar .right { - margin-left: 0; -} -.container-edit-comment .page-add-comment, -.container-add-reply .page-add-comment { - background-color: #FFFFFF; -} -.container-edit-comment .header-comment, -.container-add-reply .header-comment { - justify-content: flex-start; -} -.actions-modal-button.color-red { - color: #f44336; -} -.page-edit-comment, -.page-add-reply, -.page-edit-reply { - background-color: #FFFFFF; -} -.page-edit-comment .header-comment, -.page-add-reply .header-comment, -.page-edit-reply .header-comment { - justify-content: flex-start; -} -.page-edit-comment .navbar .right, -.page-add-reply .navbar .right, -.page-edit-reply .navbar .right { - height: 100%; -} -.page-edit-comment .navbar .right #add-new-reply, -.page-add-reply .navbar .right #add-new-reply, -.page-edit-reply .navbar .right #add-new-reply, -.page-edit-comment .navbar .right #edit-comment, -.page-add-reply .navbar .right #edit-comment, -.page-edit-reply .navbar .right #edit-comment, -.page-edit-comment .navbar .right #edit-reply, -.page-add-reply .navbar .right #edit-reply, -.page-edit-reply .navbar .right #edit-reply { - display: flex; - align-items: center; - padding-left: 16px; - padding-right: 16px; - height: 100%; -} -.container-edit-comment { - position: fixed; -} -.tablet .searchbar.document.replace .center > .replace { - display: flex; -} -.tablet .searchbar.document.replace .right .replace { - display: flex; -} -.tablet .searchbar.document.replace .link.replace { - font-size: 16px; -} -.tablet .searchbar.document .center { - width: 100%; - display: flex; - margin: 0; - overflow: visible; -} -.tablet .searchbar.document .center .searchbar { - overflow: visible; -} -.tablet .searchbar.document .center .searchbar.search { - padding: 0; -} -.tablet .searchbar.document .center > .replace { - display: none; -} -.tablet .searchbar.document .right .replace { - display: none; -} -.phone .searchbar.document.replace { - height: 96px; -} -.phone .searchbar.document.replace .link.replace { - font-size: 16px; -} -.phone .searchbar.document.replace .left { - margin-top: -48px; -} -.phone .searchbar.document.replace .center .replace { - display: block; -} -.phone .searchbar.document.replace .right > .replace { - display: flex; -} -.phone .searchbar.document .left, -.phone .searchbar.document .center, -.phone .searchbar.document .right { - flex-direction: column; -} -.phone .searchbar.document .center { - width: 100%; - margin: 0; - overflow: visible; -} -.phone .searchbar.document .center .searchbar { - padding: 0; -} -.phone .searchbar.document .center .replace { - display: none; -} -.phone .searchbar.document .right > p { - margin: 0; -} -.phone .searchbar.document .right > p a.link { - height: 48px; -} -.phone .searchbar.document .right > .replace { - display: none; -} -i.icon.icon-expand-up { - width: 17px; - height: 17px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000000%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C5.1%202%2C13.9%204.1%2C16%2011.1%2C9.2%2017.9%2C16%2020%2C13.9%2011.2%2C5.1%2011.1%2C5%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-expand-down { - width: 17px; - height: 17px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000000%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C16.9%202%2C8.1%204.1%2C6%2011.1%2C12.8%2017.9%2C6%2020%2C8.1%2011.2%2C16.9%2011.1%2C17%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M19.5%2C16.8L16%2C13.3c0.7-1.1%2C1.1-2.4%2C1.1-3.8C17%2C5.4%2C13.6%2C2%2C9.5%2C2S2%2C5.4%2C2%2C9.5S5.4%2C17%2C9.5%2C17c1.4%2C0%2C2.7-0.4%2C3.8-1.1l3.5%2C3.5c0.7%2C0.7%2C1.9%2C0.7%2C2.6%2C0C20.2%2C18.7%2C20.2%2C17.6%2C19.5%2C16.8z%20M9.5%2C15.3c-3.2%2C0-5.8-2.6-5.8-5.8s2.6-5.8%2C5.8-5.8s5.8%2C2.6%2C5.8%2C5.8S12.7%2C15.3%2C9.5%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2217.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-edit-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M2.5%2015L8%201h2l4.4146%2011.2574-1.6009%201.6008L12.12012%2012h-6.25L4.75%2015zM9%203.66998L6.62012%2010h4.75976z%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M10%2019.50035V22h2.49965l7.37231-7.37231-2.49965-2.49965zm11.805-6.80572c.26-.25997.26-.67991%200-.93987l-1.5598-1.559787c-.25992-.259964-.67986-.259964-.93983%200L18.08554%2011.4148l2.49966%202.49966z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-reader { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M17%2C21H1V9h6V2l0%2C0h10v5h1V1H6.2L0%2C7.6V22h18v-3h-1V21z%20M6%2C2.8V8H1.1L6%2C2.8z%20M13%2C8c-5.1%2C0-9%2C5-9%2C5s4.1%2C5%2C9%2C5c5%2C0%2C9-5%2C9-5S18%2C8%2C13%2C8z%20M8.7%2C15.5C6.8%2C14.4%2C6.4%2C13%2C6.4%2C13s0.4-1.5%2C2.4-2.6C8.3%2C11.2%2C8%2C12%2C8%2C13C8%2C13.9%2C8.3%2C14.8%2C8.7%2C15.5z%20M13%2C16.7c-2.1%2C0-3.7-1.7-3.7-3.7c0-2.1%2C1.7-3.7%2C3.7-3.7c2.1%2C0%2C3.7%2C1.7%2C3.7%2C3.7C16.7%2C15.1%2C15.1%2C16.7%2C13%2C16.7z%20M17.3%2C15.5c0.4-0.7%2C0.7-1.6%2C0.7-2.5c0-1-0.3-1.8-0.7-2.6c2%2C1.1%2C3.4%2C2.6%2C3.4%2C2.6S19.2%2C14.4%2C17.3%2C15.5z%20M13%2C11.7c-0.7%2C0-1.3%2C0.6-1.3%2C1.3s0.6%2C1.3%2C1.3%2C1.3s1.3-0.6%2C1.3-1.3S13.7%2C11.7%2C13%2C11.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-download { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%2340865c%22%3E%3Cpath%20d%3D%22M12%200H11L11%2014L7.39999%2010.3L6.69999%2011.1L11.5%2016L16.3%2011.1L15.6%2010.3L12%2014L12%200Z%22%2F%3E%3Cpath%20d%3D%22M14%205V6H19V20H4V6H9V5H3V21H20V5H14Z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-print { - width: 22px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-0%200%2022%2022%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%201H17V6H21V17H17V21H5V17H1V6H5V1ZM6%206H16V2H6V6ZM5%2016V13H2V16H5ZM2%2012H20V7H2V12ZM20%2013H17V16H20V13ZM16%2013H6V20H16V13ZM14%2016H8V15H14V16ZM14%2018H8V17H14V18Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-info { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M10%2C17h2V8h-2V17z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11s4.5%2C10%2C10%2C10s10-4.5%2C10-10S16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4-9-9s4-9%2C9-9s9%2C4%2C9%2C9S16%2C20%2C11%2C20z%20M10%2C7h2V5h-2V7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-about { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3%2C0.7-0.6%2C0.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%2C0l-8.9%2C4.1C-0.9%2C13.8-1%2C14.1-1%2C14.3s0.1%2C0.6%2C0.7%2C0.9l2.6%2C1.2l-2.6%2C1.2C-0.9%2C18-1%2C18.4-1%2C18.5c0%2C0.2%2C0.1%2C0.6%2C0.7%2C0.9l2.5%2C1.2l-2.5%2C1.2C-0.9%2C22.1-1%2C22.5-1%2C22.7c0%2C0.3%2C0.1%2C0.6%2C0.7%2C0.9l8.9%2C4.1c0.5%2C0.2%2C0.8%2C0.3%2C1.4%2C0.3s1-0.1%2C1.4-0.3l8.9-4.1c0.6-0.4%2C0.7-0.6%2C0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9%2C19.2%2C21%2C18.8%2C21%2C18.5z%20M-0.2%2C14.3L-0.2%2C14.3c0%2C0%2C0.1-0.1%2C0.3-0.2L9%2C10c0.6-0.3%2C1.5-0.3%2C2%2C0l8.9%2C4.1c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C18.6c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1C-0.1%2C14.4-0.2%2C14.3-0.2%2C14.3z%20M20.2%2C22.7L20.2%2C22.7c0%2C0-0.1%2C0.1-0.3%2C0.2L11%2C27.1c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5C20.1%2C22.7%2C20.2%2C22.7%2C20.2%2C22.7z%20M19.9%2C18.7L11%2C22.8c-0.6%2C0.3-1.5%2C0.3-2%2C0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0%2C0c0%2C0%2C0.1-0.1%2C0.3-0.2l3-1.5l5.5%2C2.6c0.7%2C0.4%2C1.9%2C0.4%2C2.8%2C0l5.5-2.6l3%2C1.5c0.2%2C0.1%2C0.3%2C0.2%2C0.3%2C0.2l0%2C0C20.2%2C18.5%2C20.1%2C18.6%2C19.9%2C18.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-help { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.6%2C1.3c-3.3%2C0-6%2C2.8-6%2C6.2c0.3%2C0%2C0.7%2C0%2C0.9%2C0c0-2.9%2C2.3-5.2%2C5.1-5.2s5.1%2C2.3%2C5.1%2C5.2c0%2C1.7-1.9%2C3.2-3%2C4.3C12.9%2C12.6%2C11%2C14.2%2C11%2C16c0%2C1.2%2C0%2C2.2%2C0%2C2.7c0.3%2C0%2C0.6%2C0%2C0.9%2C0c0-0.6%2C0-1.6%2C0-2.5c0-1.4%2C1.1-2.4%2C2.2-3.5c1.7-1.5%2C3.5-3.1%2C3.5-5.2C17.6%2C4.1%2C14.9%2C1.3%2C11.6%2C1.3z%20M11.5%2C20.2c-0.3%2C0-0.5%2C0.2-0.5%2C0.5v0.8c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.5s0.5-0.2%2C0.5-0.5v-0.8C11.9%2C20.4%2C11.7%2C20.2%2C11.5%2C20.2z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-versions { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%207%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M19%2C12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2c-1.1%2C0-2%2C0.9-2%2C2v12c0%2C1.1%2C0.9%2C2%2C2%2C2h18c1.1%2C0%2C2-0.9%2C2-2V14C21%2C12.9%2C20.1%2C12%2C19%2C12z%20M5%2C9h10c0.6%2C0%2C1%2C0.4%2C1%2C1H4C4%2C9.4%2C4.4%2C9%2C5%2C9z%20M3%2C11h14c0.6%2C0%2C1%2C0.4%2C1%2C1H2C2%2C11.4%2C2.4%2C11%2C3%2C11z%20M20%2C26c0%2C0.6-0.4%2C1-1%2C1H1c-0.6%2C0-1-0.4-1-1V14c0-0.6%2C0.4-1%2C1-1h18c0.6%2C0%2C1%2C0.4%2C1%2C1V26z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-color { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.9%2C12l2.3-6.3l2.2%2C6.3H8.9z%20M4.7%2C17.8h2l1.6-4.3h5.6l1.5%2C4.3h2.1L12.3%2C3.5h-2.2L4.7%2C17.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-center { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-jast { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-left { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-align-right { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-top { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%222%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%224%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2018%2011%2018%2011%207.83%208.65%209.8%208%208.94%2011.5%206%2015%209%2014.35%209.8%2012%207.83%2012%2018%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-middle { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2210%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2212%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%202%2012%202%2012%207.17%2014.35%205.2%2015%206.06%2011.5%209%208%206%208.65%205.2%2011%207.17%2011%202%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2212%2021%2011%2021%2011%2015.83%208.65%2017.8%208%2016.94%2011.5%2014%2015%2017%2014.35%2017.8%2012%2015.83%2012%2021%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-valign-bottom { - width: 22px; - height: 22px; - background-color: #40865c; - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2218%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20class%3D%22cls-1%22%20x%3D%222%22%20y%3D%2220%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2211%204%2012%204%2012%2015.17%2014.35%2013.2%2015%2014.06%2011.5%2017%208%2014%208.65%2013.2%2011%2015.17%2011%204%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-link { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.0235%207C18.4006%207%2019.5743%207.49845%2020.5446%208.49534C21.5149%209.46108%2022%2010.6293%2022%2012C22%2013.3708%2021.5149%2014.5546%2020.5446%2015.5515C19.5743%2016.5172%2018.4006%2017.0001%2017.0235%2017.0001H13V15H17C17.8451%2015%2018.5884%2014.7882%2019.1831%2014.1963C19.8091%2013.5733%2020%2012.8411%2020%2012C20%2011.1589%2019.8091%2010.4424%2019.1831%209.85049C18.5884%209.22743%2017.8685%209%2017.0235%209H13V7H17.0235ZM8.00939%2012.9814V11.0187H15.9906V12.9814H8.00939ZM4.76995%209.85049C4.17527%2010.4424%204%2011.1589%204%2012C4%2012.8411%204.17527%2013.5733%204.76995%2014.1963C5.39593%2014.7882%206.15493%2015%207%2015H11.0141V17.0001H6.97653C5.59937%2017.0001%204.42567%2016.5172%203.4554%2015.5515C2.48513%2014.5546%202%2013.3708%202%2012C2%2010.6293%202.48513%209.46108%203.4554%208.49534C4.42567%207.49845%205.59937%207%206.97653%207H11.0141V9H6.97653C6.13146%209%205.39593%209.22743%204.76995%209.85049Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insimage, -i.icon.icon-image-library { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20%205.5H4C3.72386%205.5%203.5%205.72386%203.5%206V15.5822L8.03349%2011.6898C8.47476%2011.3109%209.11904%2011.2865%209.58778%2011.6308L13.5726%2014.5579L15.9619%2012.6774C16.4488%2012.2942%2017.1428%2012.3255%2017.5933%2012.7509L20.5%2015.4962V6C20.5%205.72386%2020.2761%205.5%2020%205.5ZM20.5%2017.5294L20.485%2017.5453L16.7201%2013.9895L14.3509%2015.8542C13.9095%2016.2016%2013.2905%2016.2119%2012.8378%2015.8793L8.85988%2012.9573L3.5%2017.5592V18C3.5%2018.2761%203.72386%2018.5%204%2018.5H20C20.2761%2018.5%2020.5%2018.2761%2020.5%2018V17.5294ZM4%204C2.89543%204%202%204.89543%202%206V18C2%2019.1046%202.89543%2020%204%2020H20C21.1046%2020%2022%2019.1046%2022%2018V6C22%204.89543%2021.1046%204%2020%204H4ZM16.5%209.5C16.5%2011.1569%2015.1569%2012.5%2013.5%2012.5C11.8431%2012.5%2010.5%2011.1569%2010.5%209.5C10.5%207.84315%2011.8431%206.5%2013.5%206.5C15.1569%206.5%2016.5%207.84315%2016.5%209.5ZM13.5%2011C14.3284%2011%2015%2010.3284%2015%209.5C15%208.67157%2014.3284%208%2013.5%208C12.6716%208%2012%208.67157%2012%209.5C12%2010.3284%2012.6716%2011%2013.5%2011Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0%200H24V24H0V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-sort { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cpolygon%20points%3D%228%2C16.4%207.3%2C15.7%205%2C18.1%205%2C2%204%2C2%204%2C18.1%201.7%2C15.7%201%2C16.4%204.5%2C20%204.5%2C20%204.5%2C20%20%22%2F%3E%3Cpath%20d%3D%22M19.3%2C4H8.7C8.1%2C4%2C7.8%2C4.6%2C8.1%2C5.1l3.9%2C5.9v4.7l2.8%2C1.5c0.5%2C0.3%2C1.1-0.1%2C1.1-0.7V11h0l3.9-5.9C20.2%2C4.6%2C19.9%2C4%2C19.3%2C4z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-function { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%22-238%20240%2024%2022%22%20xml%3Aspace%3D%22preserve%22%20enable-background%3D%22new%20-238%20240%2022%2022%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3Anone%3Bstroke%3A%23000%3Bstroke-width%3A0.5%3Bstroke-linecap%3Asquare%3Bstroke-miterlimit%3A10%3B%7D.st1%7Bstroke%3A%23000%3Bstroke-width%3A0.5%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A10%3B%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M-226.94%20257.74c-0.26-0.54-0.46-1.18-0.61-1.92%20-0.15-0.73-0.22-1.46-0.22-2.18%200-1.35%200.26-2.7%200.78-4.04%200.52-1.35%201.22-2.49%202.1-3.43%200.88-0.94%201.51-1.53%201.89-1.77%200.1-0.06%200.14-0.1%200.14-0.13%200-0.04-0.07-0.05-0.21-0.05%20-0.31%200-0.55%200.04-0.71%200.12%20-0.16%200.08-0.53%200.4-1.1%200.96s-1.07%201.14-1.49%201.75c-0.42%200.61-0.78%201.25-1.06%201.94%20-0.29%200.69-0.51%201.42-0.68%202.19%20-0.17%200.77-0.25%201.63-0.25%202.57%200%200.58%200.07%201.25%200.2%201.99%200.13%200.74%200.33%201.41%200.58%202%200.25%200.59%200.41%200.9%200.48%200.94%200.07%200.04%200.24%200.06%200.51%200.06%200.09%200%200.13-0.02%200.13-0.05l-0.03-0.05C-226.53%20258.59-226.68%20258.29-226.94%20257.74zM-219.15%20253.05c0-0.09-0.04-0.14-0.12-0.14%20-0.08%200-0.18%200.08-0.29%200.24%20-0.28%200.41-0.59%200.71-0.92%200.91s-0.61%200.3-0.85%200.3c-0.18%200-0.36-0.08-0.52-0.25%20-0.17-0.16-0.25-0.42-0.25-0.77%200-0.69%200.23-1.66%200.68-2.93%200.45-1.27%201.01-1.9%201.68-1.9%200.15%200%200.22%200.08%200.22%200.24%200%200.06-0.01%200.15-0.04%200.27%20-0.02%200.07-0.02%200.12-0.02%200.18%200%200.13%200.05%200.23%200.14%200.32%200.09%200.08%200.2%200.13%200.34%200.13%200.19%200%200.34-0.06%200.45-0.17%200.1-0.11%200.16-0.24%200.16-0.38%200-0.24-0.1-0.47-0.29-0.67%20-0.19-0.21-0.43-0.31-0.71-0.31%20-0.55%200-1.09%200.29-1.62%200.87%20-0.11%200.12-0.18%200.18-0.21%200.18l-0.08-0.03c-0.06-0.33-0.17-0.58-0.34-0.75%20-0.17-0.17-0.4-0.25-0.69-0.25%20-0.37%200-0.78%200.19-1.22%200.56%20-0.44%200.37-0.66%200.62-0.66%200.74%200%200.08%200.04%200.11%200.13%200.11%200.08%200%200.2-0.09%200.37-0.27%200.45-0.48%200.81-0.72%201.09-0.72%200.14%200%200.27%200.08%200.38%200.25%200.11%200.17%200.16%200.39%200.16%200.67%200%200.58-0.27%201.53-0.8%202.85%20-0.54%201.32-1.1%201.98-1.68%201.98%20-0.13%200-0.23-0.05-0.3-0.14%20-0.08-0.09-0.12-0.18-0.12-0.27%200-0.05%200.01-0.12%200.03-0.23%200.01-0.07%200.02-0.13%200.02-0.18%200-0.3-0.14-0.45-0.42-0.45%20-0.18%200-0.33%200.07-0.46%200.2%20-0.13%200.13-0.2%200.3-0.2%200.51%200%200.26%200.13%200.48%200.4%200.66%200.27%200.18%200.56%200.26%200.86%200.26%200.4%200%200.87-0.23%201.41-0.68%200.23-0.19%200.39-0.31%200.47-0.36%200.04%200.05%200.11%200.17%200.21%200.37%200.26%200.48%200.66%200.71%201.21%200.71%200.57%200%201.11-0.22%201.63-0.67C-219.41%20253.59-219.15%20253.26-219.15%20253.05zM-216.2%20247.22c-0.13-0.75-0.33-1.41-0.58-2%20-0.25-0.59-0.41-0.9-0.48-0.94%20-0.07-0.04-0.24-0.06-0.51-0.06%20-0.09%200-0.13%200.02-0.13%200.05l0.03%200.05c0.05%200.06%200.2%200.36%200.46%200.91%200.26%200.54%200.46%201.18%200.61%201.91%200.15%200.73%200.22%201.46%200.22%202.17%200%201.36-0.26%202.71-0.78%204.05%20-0.52%201.35-1.22%202.49-2.11%203.43%20-0.89%200.94-1.51%201.53-1.89%201.77l-0.14%200.13c0%200.04%200.07%200.06%200.21%200.06%200.3%200%200.5-0.02%200.59-0.05%200.1-0.03%200.47-0.35%201.11-0.94%200.64-0.59%201.19-1.24%201.65-1.94%200.46-0.7%200.83-1.4%201.12-2.11%200.28-0.7%200.49-1.44%200.62-2.21C-216.06%20250.74-216%20249.98-216%20249.21%20-216%20248.63-216.07%20247.97-216.2%20247.22z%22%2F%3E%3Cpath%20class%3D%22st0%22%20d%3D%22M-226.94%20257.74c-0.26-0.54-0.46-1.18-0.61-1.92%20-0.15-0.73-0.22-1.46-0.22-2.18%200-1.35%200.26-2.7%200.78-4.04%200.52-1.35%201.22-2.49%202.1-3.43%200.88-0.94%201.51-1.53%201.89-1.77%200.1-0.06%200.14-0.1%200.14-0.13%200-0.04-0.07-0.05-0.21-0.05%20-0.31%200-0.55%200.04-0.71%200.12%20-0.16%200.08-0.53%200.4-1.1%200.96s-1.07%201.14-1.49%201.75c-0.42%200.61-0.78%201.25-1.06%201.94%20-0.29%200.69-0.51%201.42-0.68%202.19%20-0.17%200.77-0.25%201.63-0.25%202.57%200%200.58%200.07%201.25%200.2%201.99%200.13%200.74%200.33%201.41%200.58%202%200.25%200.59%200.41%200.9%200.48%200.94%200.07%200.04%200.24%200.06%200.51%200.06%200.09%200%200.13-0.02%200.13-0.05l-0.03-0.05C-226.53%20258.59-226.68%20258.29-226.94%20257.74zM-219.15%20253.05c0-0.09-0.04-0.14-0.12-0.14%20-0.08%200-0.18%200.08-0.29%200.24%20-0.28%200.41-0.59%200.71-0.92%200.91s-0.61%200.3-0.85%200.3c-0.18%200-0.36-0.08-0.52-0.25%20-0.17-0.16-0.25-0.42-0.25-0.77%200-0.69%200.23-1.66%200.68-2.93%200.45-1.27%201.01-1.9%201.68-1.9%200.15%200%200.22%200.08%200.22%200.24%200%200.06-0.01%200.15-0.04%200.27%20-0.02%200.07-0.02%200.12-0.02%200.18%200%200.13%200.05%200.23%200.14%200.32%200.09%200.08%200.2%200.13%200.34%200.13%200.19%200%200.34-0.06%200.45-0.17%200.1-0.11%200.16-0.24%200.16-0.38%200-0.24-0.1-0.47-0.29-0.67%20-0.19-0.21-0.43-0.31-0.71-0.31%20-0.55%200-1.09%200.29-1.62%200.87%20-0.11%200.12-0.18%200.18-0.21%200.18l-0.08-0.03c-0.06-0.33-0.17-0.58-0.34-0.75%20-0.17-0.17-0.4-0.25-0.69-0.25%20-0.37%200-0.78%200.19-1.22%200.56%20-0.44%200.37-0.66%200.62-0.66%200.74%200%200.08%200.04%200.11%200.13%200.11%200.08%200%200.2-0.09%200.37-0.27%200.45-0.48%200.81-0.72%201.09-0.72%200.14%200%200.27%200.08%200.38%200.25%200.11%200.17%200.16%200.39%200.16%200.67%200%200.58-0.27%201.53-0.8%202.85%20-0.54%201.32-1.1%201.98-1.68%201.98%20-0.13%200-0.23-0.05-0.3-0.14%20-0.08-0.09-0.12-0.18-0.12-0.27%200-0.05%200.01-0.12%200.03-0.23%200.01-0.07%200.02-0.13%200.02-0.18%200-0.3-0.14-0.45-0.42-0.45%20-0.18%200-0.33%200.07-0.46%200.2%20-0.13%200.13-0.2%200.3-0.2%200.51%200%200.26%200.13%200.48%200.4%200.66%200.27%200.18%200.56%200.26%200.86%200.26%200.4%200%200.87-0.23%201.41-0.68%200.23-0.19%200.39-0.31%200.47-0.36%200.04%200.05%200.11%200.17%200.21%200.37%200.26%200.48%200.66%200.71%201.21%200.71%200.57%200%201.11-0.22%201.63-0.67C-219.41%20253.59-219.15%20253.26-219.15%20253.05zM-216.2%20247.22c-0.13-0.75-0.33-1.41-0.58-2%20-0.25-0.59-0.41-0.9-0.48-0.94%20-0.07-0.04-0.24-0.06-0.51-0.06%20-0.09%200-0.13%200.02-0.13%200.05l0.03%200.05c0.05%200.06%200.2%200.36%200.46%200.91%200.26%200.54%200.46%201.18%200.61%201.91%200.15%200.73%200.22%201.46%200.22%202.17%200%201.36-0.26%202.71-0.78%204.05%20-0.52%201.35-1.22%202.49-2.11%203.43%20-0.89%200.94-1.51%201.53-1.89%201.77l-0.14%200.13c0%200.04%200.07%200.06%200.21%200.06%200.3%200%200.5-0.02%200.59-0.05%200.1-0.03%200.47-0.35%201.11-0.94%200.64-0.59%201.19-1.24%201.65-1.94%200.46-0.7%200.83-1.4%201.12-2.11%200.28-0.7%200.49-1.44%200.62-2.21C-216.06%20250.74-216%20249.98-216%20249.21%20-216%20248.63-216.07%20247.97-216.2%20247.22z%22%2F%3E%3Cpath%20class%3D%22st1%22%20d%3D%22M-229.66%20247.67c0.02-0.08%200.03-0.18%200.04-0.3%200.02-0.12%200.03-0.21%200.04-0.27%20-0.88%200-1.36-0.01-1.44-0.04%200.39-1.87%200.78-3.11%201.17-3.73%200.39-0.62%200.83-0.93%201.31-0.93%200.18%200%200.32%200.04%200.4%200.11%200.09%200.07%200.13%200.18%200.13%200.33%200%200.1-0.04%200.22-0.11%200.35%20-0.12%200.21-0.17%200.39-0.17%200.53%200%200.2%200.06%200.36%200.18%200.5%200.12%200.13%200.26%200.2%200.42%200.2%200.2%200%200.36-0.09%200.48-0.27%200.12-0.18%200.18-0.39%200.18-0.62%200-0.4-0.13-0.75-0.39-1.06C-227.69%20242.15-228.05%20242-228.52%20242c-0.79%200-1.49%200.43-2.11%201.28%20-0.61%200.85-1.09%202.15-1.43%203.9%20-0.68%200.01-1.21%200.04-1.62%200.08l-0.1%200.54%201.6-0.05c-0.08%200.33-0.26%201.17-0.53%202.52%20-0.68%203.42-1.27%205.89-1.77%207.41%20-0.5%201.52-1.1%202.28-1.79%202.28%20-0.19%200-0.34-0.06-0.45-0.19s-0.17-0.26-0.17-0.41c0-0.1%200.04-0.25%200.11-0.45%200.06-0.17%200.09-0.31%200.09-0.42%200-0.19-0.06-0.36-0.18-0.5%20-0.12-0.14-0.27-0.21-0.44-0.21%20-0.2%200-0.36%200.1-0.5%200.3%20-0.14%200.2-0.2%200.44-0.2%200.72%200%200.43%200.15%200.8%200.45%201.11%200.3%200.31%200.68%200.47%201.14%200.47%200.77%200%201.45-0.41%202.06-1.23%200.61-0.82%201.11-2.1%201.51-3.85l1.68-7.57C-230.66%20247.7-230.16%20247.68-229.66%20247.67L-229.66%20247.67z%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-app-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2014H16C18.2091%2014%2020%2015.7909%2020%2018C20%2020.2091%2018.2091%2022%2016%2022H7C4.79086%2022%203%2020.2091%203%2018C3%2015.7909%204.79086%2014%207%2014ZM16%2013C18.7614%2013%2021%2015.2386%2021%2018C21%2020.7614%2018.7614%2023%2016%2023H7C4.23858%2023%202%2020.7614%202%2018C2%2015.2386%204.23858%2013%207%2013H16Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%2020C14.8954%2020%2014%2019.1046%2014%2018C14%2016.8954%2014.8954%2016%2016%2016C17.1046%2016%2018%2016.8954%2018%2018C18%2019.1046%2017.1046%2020%2016%2020ZM16%2021C14.3431%2021%2013%2019.6569%2013%2018C13%2016.3431%2014.3431%2015%2016%2015C17.6569%2015%2019%2016.3431%2019%2018C19%2019.6569%2017.6569%2021%2016%2021Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%203H7C4.79086%203%203%204.79086%203%207C3%209.20914%204.79086%2011%207%2011H16C18.2091%2011%2020%209.20914%2020%207C20%204.79086%2018.2091%203%2016%203ZM7%202C4.23858%202%202%204.23858%202%207C2%209.76142%204.23858%2012%207%2012H16C18.7614%2012%2021%209.76142%2021%207C21%204.23858%2018.7614%202%2016%202H7Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%209C8.10457%209%209%208.10457%209%207C9%205.89543%208.10457%205%207%205C5.89543%205%205%205.89543%205%207C5%208.10457%205.89543%209%207%209ZM7%2010C8.65685%2010%2010%208.65685%2010%207C10%205.34315%208.65685%204%207%204C5.34315%204%204%205.34315%204%207C4%208.65685%205.34315%2010%207%2010Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-settings { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%20%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M1%202H22V21H1V2ZM12%203H21V8H12V3ZM12%209H21V14H12V9ZM11%2014V9H2V14H11ZM2%2015V20H11V15H2ZM12%2015H21V20H12V15ZM11%203V8H2V3H11Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-backward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3Cpath%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-forward { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M10%2C10V27H27V10H10ZM26%2C26H11V11H26V26Z%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2217%22%20height%3D%2217%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-background { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20opacity%3D%220.3%22%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-move-foreground { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M1%2C1V13H13V1H1ZM12%2C12H2V2H12V12Z%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M15%2C15V27H27V15H15ZM26%2C26H16V16H26V26Z%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2213%22%20height%3D%2213%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-all { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-none { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-inner { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpolygon%20points%3D%2226%2013%2014%2013%2014%201%2013%201%2013%2013%201%2013%201%2014%2013%2014%2013%2026%2014%2026%2014%2014%2026%2014%2026%2013%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-outer { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-left { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-center { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2213%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-right { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20x%3D%2226%22%20width%3D%221%22%20height%3D%2227%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-top { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-middle { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2213%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-bottom { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3Crect%20y%3D%2226%22%20width%3D%2227%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-dup { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%223%20-3%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M3-3v1v25v1h27v-1V-2v-1H3z%20M4-2h25v25H4V-2z%22%2F%3E%3Cpolygon%20points%3D%2230%2C-3%2029%2C-3%2029%2C-3%2029%2C-3%2029%2C-3%2029%2C-3%203%2C23%203%2C24%204%2C24%2030%2C-2%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-table-borders-ddown { - width: 28px; - height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%223%20-3%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M3-3v1v25v1h27v-1V-2v-1H3z%20M4-2h25v25H4V-2z%22%2F%3E%3Cpolygon%20points%3D%2230%2C23%204%2C-3%203%2C-3%203%2C-2%2029%2C24%2029%2C24%2029%2C24%2029%2C24%2029%2C24%2030%2C24%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-general { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.7700195%2C2.8598633L7.5600586%2C10h-1.050293L5.7299805%2C7.8500977H2.7099609L1.9101562%2C10H0.9399414l2.7802734-7.1401367H4.7700195z%20M5.4301758%2C7.0498047L4.2402344%2C3.7202148H4.2202148L3.0097656%2C7.0498047H5.4301758z%22%2F%3E%3Cpath%20d%3D%22M10.8500977%2C2.8598633c0.1533203%2C0%2C0.3183594%2C0.0019531%2C0.4951172%2C0.0053711c0.1762695%2C0.003418%2C0.3515625%2C0.0131836%2C0.5249023%2C0.0297852s0.3349609%2C0.0415039%2C0.4848633%2C0.0751953c0.1499023%2C0.0332031%2C0.2783203%2C0.0830078%2C0.3847656%2C0.1499023c0.2333984%2C0.1396484%2C0.4316406%2C0.3334961%2C0.5952148%2C0.5800781c0.1630859%2C0.246582%2C0.2451172%2C0.5498047%2C0.2451172%2C0.909668c0%2C0.3803711-0.0917969%2C0.7084961-0.2749023%2C0.9853516c-0.1835938%2C0.2763672-0.4453125%2C0.4814453-0.7851562%2C0.6147461v0.0200195c0.4399414%2C0.0932617%2C0.7763672%2C0.293457%2C1.0097656%2C0.6000977s0.3500977%2C0.6796875%2C0.3500977%2C1.1201172c0%2C0.2597656-0.0463867%2C0.5131836-0.1401367%2C0.7597656c-0.0932617%2C0.246582-0.2314453%2C0.4648438-0.4145508%2C0.6552734c-0.1835938%2C0.1899414-0.4101562%2C0.3432617-0.6801758%2C0.4599609S12.0634766%2C10%2C11.7099609%2C10H8.2597656V2.8598633H10.8500977z%20M11.1098633%2C5.9301758c0.5400391%2C0%2C0.9282227-0.0952148%2C1.1650391-0.2851562s0.3549805-0.4750977%2C0.3549805-0.8549805c0-0.253418-0.0400391-0.453125-0.1201172-0.6000977c-0.0795898-0.1464844-0.1899414-0.2597656-0.3295898-0.3398438c-0.1401367-0.0800781-0.3017578-0.1318359-0.4853516-0.1552734c-0.1831055-0.0229492-0.378418-0.034668-0.5849609-0.034668H9.2099609v2.2700195H11.1098633z%20M11.5898438%2C9.2001953c0.4199219%2C0%2C0.7485352-0.1132812%2C0.9853516-0.340332c0.2363281-0.2265625%2C0.3549805-0.5400391%2C0.3549805-0.9399414c0-0.2333984-0.043457-0.4262695-0.1303711-0.5800781c-0.0864258-0.1533203-0.2016602-0.2749023-0.3447266-0.3647461c-0.1435547-0.090332-0.3085938-0.1533203-0.4951172-0.1899414s-0.3798828-0.0551758-0.5800781-0.0551758H9.2099609v2.4702148H11.5898438z%22%2F%3E%3Cpath%20d%3D%22M19.425293%2C3.8701172c-0.3637695-0.253418-0.7954102-0.3798828-1.2954102-0.3798828c-0.4267578%2C0-0.7915039%2C0.0795898-1.0947266%2C0.2397461c-0.3037109%2C0.1601562-0.5537109%2C0.375-0.75%2C0.6450195c-0.1967773%2C0.2700195-0.3417969%2C0.5786133-0.4350586%2C0.9248047c-0.0932617%2C0.3466797-0.1401367%2C0.7070312-0.1401367%2C1.0800781c0%2C0.4067383%2C0.046875%2C0.7919922%2C0.1401367%2C1.1552734s0.2382812%2C0.6796875%2C0.4350586%2C0.949707c0.1962891%2C0.2700195%2C0.4482422%2C0.4853516%2C0.7548828%2C0.6450195c0.3066406%2C0.1601562%2C0.6733398%2C0.2402344%2C1.1000977%2C0.2402344c0.3129883%2C0%2C0.5913086-0.0517578%2C0.8349609-0.1552734c0.2431641-0.1030273%2C0.453125-0.246582%2C0.6298828-0.4296875c0.1767578-0.1835938%2C0.3149414-0.4018555%2C0.4150391-0.6552734c0.1000977-0.2529297%2C0.1601562-0.5263672%2C0.1801758-0.8198242h0.949707c-0.0932617%2C0.8999023-0.4033203%2C1.6000977-0.9296875%2C2.1000977c-0.5268555%2C0.5-1.2470703%2C0.75-2.1601562%2C0.75c-0.5532227%2C0-1.0366211-0.0952148-1.4501953-0.2851562c-0.4130859-0.1899414-0.7563477-0.4516602-1.0297852-0.7851562c-0.2734375-0.3330078-0.4785156-0.7265625-0.6152344-1.1796875c-0.1367188-0.4536133-0.2045898-0.9399414-0.2045898-1.4599609s0.0732422-1.0083008%2C0.2197266-1.465332c0.1464844-0.456543%2C0.3618164-0.8549805%2C0.6450195-1.1948242s0.6367188-0.6083984%2C1.0600586-0.8051758c0.4233398-0.1962891%2C0.9082031-0.2949219%2C1.4550781-0.2949219c0.3730469%2C0%2C0.7265625%2C0.050293%2C1.0600586%2C0.1499023c0.3330078%2C0.1000977%2C0.6298828%2C0.2470703%2C0.8896484%2C0.4399414c0.2602539%2C0.1938477%2C0.4765625%2C0.4350586%2C0.6503906%2C0.7250977c0.1733398%2C0.2900391%2C0.2866211%2C0.625%2C0.3398438%2C1.0048828h-0.9501953C20.0234375%2C4.503418%2C19.7885742%2C4.1235352%2C19.425293%2C3.8701172z%22%2F%3E%3Cpath%20d%3D%22M3.7099609%2C19v-5.0800781H1.8701172v-0.6796875c0.2397461%2C0%2C0.4731445-0.0185547%2C0.699707-0.0551758s0.4316406-0.1049805%2C0.6152344-0.2050781c0.1831055-0.1000977%2C0.3383789-0.2363281%2C0.4648438-0.4101562c0.1264648-0.1733398%2C0.2133789-0.3930664%2C0.2602539-0.659668h0.6499023V19H3.7099609z%22%2F%3E%3Cpath%20d%3D%22M8.7099609%2C13.4199219C8.8032227%2C13.1132812%2C8.9482422%2C12.8486328%2C9.1450195%2C12.625c0.1967773-0.2231445%2C0.4418945-0.3984375%2C0.7353516-0.5249023c0.2929688-0.1264648%2C0.6264648-0.1899414%2C1-0.1899414c0.3061523%2C0%2C0.5947266%2C0.0449219%2C0.8647461%2C0.1347656S12.25%2C12.2651367%2C12.4501953%2C12.4350586s0.3583984%2C0.3818359%2C0.4750977%2C0.6347656c0.1162109%2C0.253418%2C0.1748047%2C0.546875%2C0.1748047%2C0.8803711c0%2C0.3134766-0.0483398%2C0.5898438-0.1450195%2C0.8295898c-0.0966797%2C0.2402344-0.2250977%2C0.4550781-0.3847656%2C0.6450195c-0.1601562%2C0.1904297-0.34375%2C0.3618164-0.550293%2C0.5151367s-0.4199219%2C0.300293-0.6396484%2C0.4399414c-0.2202148%2C0.1337891-0.4404297%2C0.2651367-0.6601562%2C0.3950195C10.5%2C16.9047852%2C10.2983398%2C17.043457%2C10.1152344%2C17.1899414c-0.1835938%2C0.1469727-0.3398438%2C0.3051758-0.4702148%2C0.4750977C9.5151367%2C17.8349609%2C9.4301758%2C18.0297852%2C9.3901367%2C18.25h3.6401367V19H8.4003906C8.4335938%2C18.5800781%2C8.5083008%2C18.2216797%2C8.625%2C17.9248047c0.1166992-0.2963867%2C0.2651367-0.5546875%2C0.4453125-0.7749023C9.25%2C16.9301758%2C9.4536133%2C16.7368164%2C9.6801758%2C16.5698242c0.2265625-0.1665039%2C0.4633789-0.3232422%2C0.7099609-0.4697266c0.2998047-0.1865234%2C0.5634766-0.3583984%2C0.7900391-0.5151367s0.4150391-0.3149414%2C0.5649414-0.4750977c0.1499023-0.159668%2C0.2631836-0.3330078%2C0.3398438-0.5200195c0.0766602-0.1865234%2C0.1152344-0.4033203%2C0.1152344-0.6499023c0-0.1933594-0.0366211-0.3681641-0.1098633-0.5249023c-0.0737305-0.1567383-0.171875-0.2915039-0.2954102-0.4052734c-0.1230469-0.1132812-0.2680664-0.199707-0.4345703-0.2597656c-0.1669922-0.0600586-0.34375-0.0898438-0.5302734-0.0898438c-0.246582%2C0-0.4584961%2C0.0517578-0.6347656%2C0.1547852c-0.1767578%2C0.1035156-0.3217773%2C0.2382812-0.4350586%2C0.4052734c-0.1137695%2C0.1665039-0.1953125%2C0.3549805-0.2451172%2C0.5649414s-0.0717773%2C0.4213867-0.0649414%2C0.6347656H8.6000977C8.5800781%2C14.0600586%2C8.6166992%2C13.7265625%2C8.7099609%2C13.4199219z%22%2F%3E%3Cpath%20d%3D%22M17.5898438%2C14.9599609c0.0332031%2C0%2C0.0664062%2C0%2C0.1000977%2C0h0.1796875c0.1801758%2C0%2C0.3515625-0.0249023%2C0.5151367-0.0751953c0.1635742-0.0498047%2C0.3066406-0.1230469%2C0.4301758-0.2197266c0.1230469-0.0966797%2C0.2216797-0.2182617%2C0.2949219-0.3652344c0.0732422-0.1464844%2C0.1098633-0.3129883%2C0.1098633-0.5c0-0.3798828-0.1201172-0.6650391-0.3598633-0.8549805c-0.2402344-0.1899414-0.5400391-0.284668-0.8999023-0.284668c-0.2270508%2C0-0.425293%2C0.0415039-0.5952148%2C0.125s-0.3100586%2C0.1948242-0.4199219%2C0.3349609c-0.1098633%2C0.1396484-0.1918945%2C0.3032227-0.2451172%2C0.4897461c-0.0532227%2C0.1870117-0.0800781%2C0.3837891-0.0800781%2C0.590332h-0.8496094c0.0131836-0.340332%2C0.0678711-0.6503906%2C0.1650391-0.9301758C16.03125%2C12.9902344%2C16.1699219%2C12.75%2C16.3496094%2C12.5498047c0.1801758-0.199707%2C0.4052734-0.3564453%2C0.675293-0.4697266s0.581543-0.1699219%2C0.9350586-0.1699219c0.3066406%2C0%2C0.5913086%2C0.0380859%2C0.8549805%2C0.1147461C19.078125%2C12.1015625%2C19.3061523%2C12.2167969%2C19.5%2C12.3701172c0.1928711%2C0.1533203%2C0.3447266%2C0.3500977%2C0.4545898%2C0.5898438c0.1103516%2C0.2402344%2C0.1650391%2C0.5234375%2C0.1650391%2C0.8500977c0%2C0.3198242-0.0932617%2C0.6035156-0.2797852%2C0.8500977s-0.4199219%2C0.4331055-0.7001953%2C0.5600586v0.0200195c0.4335938%2C0.0932617%2C0.7553711%2C0.2963867%2C0.965332%2C0.6098633s0.3149414%2C0.6831055%2C0.3149414%2C1.1098633c0%2C0.3535156-0.0649414%2C0.6650391-0.1953125%2C0.9350586c-0.1298828%2C0.2700195-0.3046875%2C0.4951172-0.5249023%2C0.6748047c-0.2197266%2C0.1801758-0.4785156%2C0.3149414-0.7749023%2C0.4052734c-0.296875%2C0.0898438-0.6118164%2C0.1347656-0.9448242%2C0.1347656c-0.3603516%2C0-0.6870117-0.0498047-0.9799805-0.1499023c-0.293457-0.1000977-0.543457-0.2480469-0.75-0.4448242c-0.2070312-0.1967773-0.3652344-0.4384766-0.4750977-0.7250977s-0.1616211-0.6132812-0.1552734-0.9799805h0.8500977c0.0131836%2C0.4599609%2C0.1464844%2C0.8349609%2C0.3999023%2C1.125s0.6235352%2C0.4350586%2C1.1103516%2C0.4350586c0.206543%2C0%2C0.4033203-0.0317383%2C0.5898438-0.0952148c0.1865234-0.0629883%2C0.3500977-0.1533203%2C0.4902344-0.2700195c0.1396484-0.1162109%2C0.2514648-0.2597656%2C0.3349609-0.4296875c0.0830078-0.1704102%2C0.125-0.3618164%2C0.125-0.5751953c0-0.2202148-0.0400391-0.4150391-0.1201172-0.5849609s-0.1870117-0.3134766-0.3203125-0.4301758c-0.1333008-0.1162109-0.2915039-0.203125-0.4746094-0.2597656c-0.1835938-0.0566406-0.3818359-0.0849609-0.5952148-0.0849609c-0.1801758%2C0-0.3500977%2C0.0097656-0.5097656%2C0.0297852v-0.7197266C17.5332031%2C14.956543%2C17.5629883%2C14.9599609%2C17.5898438%2C14.9599609z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-number { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M3.7099609%2C13.8330078V8.7529297H1.8701172V8.0732422c0.2397461%2C0%2C0.4731445-0.0185547%2C0.699707-0.0551758s0.4316406-0.1049805%2C0.6152344-0.2050781C3.3681641%2C7.7128906%2C3.5234375%2C7.5766602%2C3.6499023%2C7.402832c0.1264648-0.1733398%2C0.2133789-0.3930664%2C0.2602539-0.659668h0.6499023v7.0898438H3.7099609z%22%2F%3E%3Cpath%20d%3D%22M8.5%2C12.7231445v1.0097656c0%2C0.3798828-0.0864258%2C0.706543-0.2597656%2C0.9799805c-0.1738281%2C0.2734375-0.4536133%2C0.4667969-0.840332%2C0.5800781v-0.5c0.1132812-0.0400391%2C0.2084961-0.0986328%2C0.2851562-0.1748047c0.0766602-0.0766602%2C0.1381836-0.1601562%2C0.1850586-0.25c0.0463867-0.090332%2C0.078125-0.1816406%2C0.0947266-0.2753906c0.0166016-0.0932617%2C0.0219727-0.1796875%2C0.0151367-0.2597656H7.3901367v-1.1098633H8.5z%22%2F%3E%3Cpath%20d%3D%22M9.7797852%2C9.5429688c0.0131836-0.2797852%2C0.0463867-0.5532227%2C0.1000977-0.8198242c0.0532227-0.2666016%2C0.1298828-0.5200195%2C0.2299805-0.7602539c0.1000977-0.2397461%2C0.2363281-0.449707%2C0.4101562-0.6298828c0.1733398-0.1801758%2C0.3916016-0.3232422%2C0.6547852-0.4301758c0.2631836-0.1064453%2C0.578125-0.159668%2C0.9448242-0.159668s0.6816406%2C0.0532227%2C0.9453125%2C0.159668c0.2631836%2C0.1069336%2C0.4814453%2C0.25%2C0.6547852%2C0.4301758s0.3100586%2C0.3901367%2C0.4101562%2C0.6298828c0.1000977%2C0.2402344%2C0.1767578%2C0.4936523%2C0.2299805%2C0.7602539s0.0864258%2C0.5400391%2C0.1000977%2C0.8198242c0.0131836%2C0.2802734%2C0.0200195%2C0.5498047%2C0.0200195%2C0.8100586c0%2C0.2597656-0.0068359%2C0.5297852-0.0200195%2C0.8100586c-0.0136719%2C0.2797852-0.046875%2C0.5532227-0.1000977%2C0.8198242s-0.1298828%2C0.5185547-0.2299805%2C0.7548828c-0.1000977%2C0.2368164-0.2368164%2C0.4453125-0.4101562%2C0.625c-0.1733398%2C0.1801758-0.3896484%2C0.3217773-0.6499023%2C0.425293c-0.2597656%2C0.1030273-0.5766602%2C0.1547852-0.9501953%2C0.1547852c-0.3666992%2C0-0.6816406-0.0517578-0.9448242-0.1547852c-0.2631836-0.1035156-0.4814453-0.2451172-0.6547852-0.425293c-0.1738281-0.1796875-0.3100586-0.3881836-0.4101562-0.625c-0.1000977-0.2363281-0.1767578-0.4882812-0.2299805-0.7548828c-0.0537109-0.2666016-0.0869141-0.5400391-0.1000977-0.8198242c-0.0131836-0.2802734-0.0200195-0.550293-0.0200195-0.8100586C9.7597656%2C10.0927734%2C9.7666016%2C9.8232422%2C9.7797852%2C9.5429688z%20M10.6850586%2C11.237793c0.0161133%2C0.3300781%2C0.0698242%2C0.6401367%2C0.159668%2C0.9301758c0.090332%2C0.2900391%2C0.2353516%2C0.5351562%2C0.4350586%2C0.7348633c0.2001953%2C0.2001953%2C0.4799805%2C0.300293%2C0.8398438%2C0.300293c0.3603516%2C0%2C0.6401367-0.1000977%2C0.840332-0.300293c0.199707-0.199707%2C0.3447266-0.4448242%2C0.4350586-0.7348633c0.0898438-0.2900391%2C0.1430664-0.6000977%2C0.159668-0.9301758c0.0166016-0.3295898%2C0.0253906-0.6279297%2C0.0253906-0.8950195c0-0.1728516-0.0019531-0.3647461-0.0053711-0.574707s-0.0200195-0.4199219-0.0498047-0.6298828c-0.0302734-0.2099609-0.0737305-0.4150391-0.1298828-0.6152344c-0.0571289-0.199707-0.1401367-0.375-0.25-0.5249023c-0.1103516-0.1499023-0.2485352-0.2714844-0.4150391-0.3652344c-0.1669922-0.0932617-0.3701172-0.1396484-0.6103516-0.1396484c-0.2397461%2C0-0.4433594%2C0.0463867-0.6098633%2C0.1396484c-0.1665039%2C0.09375-0.3046875%2C0.215332-0.4150391%2C0.3652344c-0.1098633%2C0.1499023-0.1933594%2C0.3251953-0.25%2C0.5249023c-0.0566406%2C0.2001953-0.1000977%2C0.4052734-0.1298828%2C0.6152344s-0.046875%2C0.4199219-0.0498047%2C0.6298828c-0.003418%2C0.2099609-0.0053711%2C0.4018555-0.0053711%2C0.574707C10.659668%2C10.6098633%2C10.6679688%2C10.9082031%2C10.6850586%2C11.237793z%22%2F%3E%3Cpath%20d%3D%22M15.3398438%2C9.5429688c0.0131836-0.2797852%2C0.0463867-0.5532227%2C0.1000977-0.8198242c0.0532227-0.2666016%2C0.1298828-0.5200195%2C0.2299805-0.7602539c0.1000977-0.2397461%2C0.2363281-0.449707%2C0.4101562-0.6298828c0.1733398-0.1801758%2C0.3916016-0.3232422%2C0.6547852-0.4301758c0.2631836-0.1064453%2C0.578125-0.159668%2C0.9448242-0.159668S18.3613281%2C6.7963867%2C18.625%2C6.902832c0.2631836%2C0.1069336%2C0.4814453%2C0.25%2C0.6547852%2C0.4301758s0.3100586%2C0.3901367%2C0.4101562%2C0.6298828c0.1000977%2C0.2402344%2C0.1767578%2C0.4936523%2C0.2299805%2C0.7602539s0.0864258%2C0.5400391%2C0.1000977%2C0.8198242c0.0131836%2C0.2802734%2C0.0200195%2C0.5498047%2C0.0200195%2C0.8100586c0%2C0.2597656-0.0068359%2C0.5297852-0.0200195%2C0.8100586c-0.0136719%2C0.2797852-0.046875%2C0.5532227-0.1000977%2C0.8198242s-0.1298828%2C0.5185547-0.2299805%2C0.7548828c-0.1000977%2C0.2368164-0.2368164%2C0.4453125-0.4101562%2C0.625c-0.1733398%2C0.1801758-0.3896484%2C0.3217773-0.6499023%2C0.425293c-0.2597656%2C0.1030273-0.5766602%2C0.1547852-0.9501953%2C0.1547852c-0.3666992%2C0-0.6816406-0.0517578-0.9448242-0.1547852c-0.2631836-0.1035156-0.4814453-0.2451172-0.6547852-0.425293c-0.1738281-0.1796875-0.3100586-0.3881836-0.4101562-0.625c-0.1000977-0.2363281-0.1767578-0.4882812-0.2299805-0.7548828c-0.0537109-0.2666016-0.0869141-0.5400391-0.1000977-0.8198242c-0.0131836-0.2802734-0.0200195-0.550293-0.0200195-0.8100586C15.3198242%2C10.0927734%2C15.3266602%2C9.8232422%2C15.3398438%2C9.5429688z%20M16.2451172%2C11.237793c0.0161133%2C0.3300781%2C0.0698242%2C0.6401367%2C0.159668%2C0.9301758c0.090332%2C0.2900391%2C0.2353516%2C0.5351562%2C0.4350586%2C0.7348633c0.2001953%2C0.2001953%2C0.4799805%2C0.300293%2C0.8398438%2C0.300293c0.3603516%2C0%2C0.6401367-0.1000977%2C0.840332-0.300293c0.199707-0.199707%2C0.3447266-0.4448242%2C0.4350586-0.7348633c0.0898438-0.2900391%2C0.1430664-0.6000977%2C0.159668-0.9301758c0.0166016-0.3295898%2C0.0253906-0.6279297%2C0.0253906-0.8950195c0-0.1728516-0.0019531-0.3647461-0.0053711-0.574707s-0.0200195-0.4199219-0.0498047-0.6298828c-0.0302734-0.2099609-0.0737305-0.4150391-0.1298828-0.6152344c-0.0571289-0.199707-0.1401367-0.375-0.25-0.5249023c-0.1103516-0.1499023-0.2485352-0.2714844-0.4150391-0.3652344c-0.1669922-0.0932617-0.3701172-0.1396484-0.6103516-0.1396484c-0.2397461%2C0-0.4433594%2C0.0463867-0.6098633%2C0.1396484c-0.1665039%2C0.09375-0.3046875%2C0.215332-0.4150391%2C0.3652344c-0.1098633%2C0.1499023-0.1933594%2C0.3251953-0.25%2C0.5249023c-0.0566406%2C0.2001953-0.1000977%2C0.4052734-0.1298828%2C0.6152344s-0.046875%2C0.4199219-0.0498047%2C0.6298828c-0.003418%2C0.2099609-0.0053711%2C0.4018555-0.0053711%2C0.574707C16.2197266%2C10.6098633%2C16.2280273%2C10.9082031%2C16.2451172%2C11.237793z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-integer { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.7089844%2C14.8330078V9.7529297H2.8691406V9.0732422c0.2402344%2C0%2C0.4736328-0.0185547%2C0.7001953-0.0551758s0.4316406-0.1049805%2C0.6152344-0.2050781C4.3671875%2C8.7128906%2C4.5234375%2C8.5766602%2C4.6494141%2C8.402832c0.1259766-0.1733398%2C0.2138672-0.3930664%2C0.2607422-0.659668h0.6494141v7.0898438H4.7089844z%22%2F%3E%3Cpath%20d%3D%22M8.109375%2C9.2529297c0.09375-0.3066406%2C0.2382812-0.5712891%2C0.4355469-0.7949219c0.1962891-0.2231445%2C0.4414062-0.3984375%2C0.734375-0.5249023s0.6269531-0.1899414%2C1-0.1899414c0.3066406%2C0%2C0.5957031%2C0.0449219%2C0.8652344%2C0.1347656s0.5048828%2C0.2202148%2C0.7050781%2C0.3901367s0.3583984%2C0.3818359%2C0.4746094%2C0.6347656C12.4414062%2C9.15625%2C12.5%2C9.449707%2C12.5%2C9.7832031c0%2C0.3134766-0.0488281%2C0.5898438-0.1455078%2C0.8295898c-0.0966797%2C0.2402344-0.2255859%2C0.4550781-0.3847656%2C0.6450195c-0.1601562%2C0.1904297-0.34375%2C0.3618164-0.5498047%2C0.5151367C11.2128906%2C11.9262695%2C11%2C12.0732422%2C10.7792969%2C12.2128906c-0.2197266%2C0.1337891-0.4394531%2C0.2651367-0.6601562%2C0.3950195c-0.2197266%2C0.1298828-0.421875%2C0.2685547-0.6044922%2C0.4150391c-0.1835938%2C0.1469727-0.3398438%2C0.3051758-0.4697266%2C0.4750977c-0.1308594%2C0.1699219-0.2148438%2C0.3647461-0.2558594%2C0.5849609h3.640625v0.75H7.7998047c0.0332031-0.4199219%2C0.1083984-0.7783203%2C0.2246094-1.0751953c0.1162109-0.2963867%2C0.2646484-0.5546875%2C0.4453125-0.7749023c0.1796875-0.2197266%2C0.3837891-0.4130859%2C0.6103516-0.5800781c0.2265625-0.1665039%2C0.4628906-0.3232422%2C0.7089844-0.4697266c0.3007812-0.1865234%2C0.5644531-0.3583984%2C0.7910156-0.5151367s0.4140625-0.3149414%2C0.5644531-0.4750977c0.1503906-0.159668%2C0.2636719-0.3330078%2C0.3398438-0.5200195c0.0761719-0.1865234%2C0.1152344-0.4033203%2C0.1152344-0.6499023c0-0.1933594-0.0371094-0.3681641-0.109375-0.5249023c-0.0742188-0.1567383-0.171875-0.2915039-0.2958984-0.4052734c-0.1230469-0.1132812-0.2685547-0.199707-0.4345703-0.2597656c-0.1669922-0.0600586-0.34375-0.0898438-0.5302734-0.0898438c-0.2470703%2C0-0.4580078%2C0.0517578-0.6347656%2C0.1547852C9.4179688%2C8.7514648%2C9.2734375%2C8.8862305%2C9.1601562%2C9.0532227C9.0458984%2C9.2197266%2C8.9648438%2C9.4082031%2C8.9140625%2C9.6181641c-0.0488281%2C0.2099609-0.0712891%2C0.4213867-0.0644531%2C0.6347656H8C7.9794922%2C9.8930664%2C8.015625%2C9.5595703%2C8.109375%2C9.2529297z%22%2F%3E%3Cpath%20d%3D%22M15.3896484%2C10.7929688c0.0332031%2C0%2C0.0664062%2C0%2C0.1005859%2C0h0.1796875c0.1796875%2C0%2C0.3515625-0.0249023%2C0.5146484-0.0751953c0.1630859-0.0498047%2C0.3066406-0.1230469%2C0.4306641-0.2197266c0.1230469-0.0966797%2C0.2207031-0.2182617%2C0.2949219-0.3652344c0.0722656-0.1464844%2C0.109375-0.3129883%2C0.109375-0.5c0-0.3798828-0.1201172-0.6650391-0.359375-0.8549805c-0.2402344-0.1899414-0.5410156-0.284668-0.9003906-0.284668c-0.2265625%2C0-0.4257812%2C0.0415039-0.5957031%2C0.125s-0.3095703%2C0.1948242-0.4199219%2C0.3349609C14.6347656%2C9.0927734%2C14.5527344%2C9.2563477%2C14.5%2C9.4428711c-0.0537109%2C0.1870117-0.0800781%2C0.3837891-0.0800781%2C0.590332h-0.8496094c0.0126953-0.340332%2C0.0673828-0.6503906%2C0.1640625-0.9301758s0.2353516-0.5200195%2C0.4150391-0.7202148c0.1806641-0.199707%2C0.4052734-0.3564453%2C0.6748047-0.4697266c0.2705078-0.1132812%2C0.5820312-0.1699219%2C0.9355469-0.1699219c0.3066406%2C0%2C0.5917969%2C0.0380859%2C0.8554688%2C0.1147461c0.2626953%2C0.0766602%2C0.4902344%2C0.1918945%2C0.6845703%2C0.3452148c0.1923828%2C0.1533203%2C0.3447266%2C0.3500977%2C0.4541016%2C0.5898438c0.1113281%2C0.2402344%2C0.1660156%2C0.5234375%2C0.1660156%2C0.8500977c0%2C0.3198242-0.09375%2C0.6035156-0.2802734%2C0.8500977s-0.4199219%2C0.4331055-0.7001953%2C0.5600586v0.0200195c0.4335938%2C0.0932617%2C0.7558594%2C0.2963867%2C0.9648438%2C0.6098633c0.2109375%2C0.3134766%2C0.3154297%2C0.6831055%2C0.3154297%2C1.1098633c0%2C0.3535156-0.0654297%2C0.6650391-0.1953125%2C0.9350586S17.7197266%2C14.2231445%2C17.5%2C14.402832c-0.2207031%2C0.1801758-0.4785156%2C0.3149414-0.7753906%2C0.4052734c-0.296875%2C0.0898438-0.6113281%2C0.1347656-0.9453125%2C0.1347656c-0.359375%2C0-0.6865234-0.0498047-0.9794922-0.1499023c-0.2939453-0.1000977-0.5439453-0.2480469-0.75-0.4448242c-0.2070312-0.1967773-0.3652344-0.4384766-0.4755859-0.7250977c-0.109375-0.2866211-0.1611328-0.6132812-0.1542969-0.9799805h0.8496094c0.0136719%2C0.4599609%2C0.1464844%2C0.8349609%2C0.4003906%2C1.125c0.2529297%2C0.2900391%2C0.6230469%2C0.4350586%2C1.109375%2C0.4350586c0.2070312%2C0%2C0.4042969-0.0317383%2C0.5898438-0.0952148c0.1875-0.0629883%2C0.3505859-0.1533203%2C0.4902344-0.2700195C17%2C13.7216797%2C17.1113281%2C13.578125%2C17.1953125%2C13.4082031c0.0820312-0.1704102%2C0.125-0.3618164%2C0.125-0.5751953c0-0.2202148-0.0410156-0.4150391-0.1210938-0.5849609s-0.1865234-0.3134766-0.3203125-0.4301758c-0.1328125-0.1162109-0.2910156-0.203125-0.4746094-0.2597656s-0.3808594-0.0849609-0.5947266-0.0849609c-0.1806641%2C0-0.3505859%2C0.0097656-0.5097656%2C0.0297852v-0.7197266C15.3330078%2C10.7895508%2C15.3632812%2C10.7929688%2C15.3896484%2C10.7929688z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-scientific { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M4.9804688%2C15.8330078v-5.5878906H2.9570312V9.4970703c0.2636719%2C0%2C0.5195312-0.0200195%2C0.7695312-0.0605469c0.2490234-0.0400391%2C0.4746094-0.1157227%2C0.6757812-0.2255859c0.2021484-0.1098633%2C0.3730469-0.2602539%2C0.5117188-0.4511719c0.1396484-0.1904297%2C0.234375-0.4321289%2C0.2871094-0.7255859h0.7148438v7.7988281H4.9804688z%22%2F%3E%3Cpath%20d%3D%22M8.5996094%2C11.1137695c0.0146484-0.3076172%2C0.0507812-0.6083984%2C0.1103516-0.9018555c0.0585938-0.2929688%2C0.1425781-0.5717773%2C0.2529297-0.8359375c0.109375-0.2641602%2C0.2597656-0.4951172%2C0.4511719-0.6928711C9.6044922%2C8.4848633%2C9.84375%2C8.3276367%2C10.1347656%2C8.2099609c0.2890625-0.1171875%2C0.6357422-0.1757812%2C1.0390625-0.1757812s0.75%2C0.0585938%2C1.0390625%2C0.1757812c0.2900391%2C0.1176758%2C0.5302734%2C0.2749023%2C0.7207031%2C0.4731445C13.125%2C8.8808594%2C13.2753906%2C9.1118164%2C13.3847656%2C9.3759766s0.1943359%2C0.5429688%2C0.2529297%2C0.8359375c0.0585938%2C0.293457%2C0.0947266%2C0.5942383%2C0.1103516%2C0.9018555c0.0136719%2C0.3081055%2C0.0214844%2C0.6054688%2C0.0214844%2C0.8911133c0%2C0.2861328-0.0078125%2C0.5830078-0.0214844%2C0.8911133c-0.015625%2C0.3081055-0.0517578%2C0.6088867-0.1103516%2C0.9018555c-0.0585938%2C0.293457-0.1435547%2C0.5703125-0.2529297%2C0.8305664s-0.2597656%2C0.4897461-0.4511719%2C0.6875c-0.1904297%2C0.1982422-0.4287109%2C0.3540039-0.7148438%2C0.4677734c-0.2861328%2C0.1132812-0.6347656%2C0.1704102-1.0449219%2C0.1704102c-0.4033203%2C0-0.75-0.0571289-1.0390625-0.1704102C9.84375%2C15.6699219%2C9.6044922%2C15.5141602%2C9.4140625%2C15.315918c-0.1914062-0.1977539-0.3417969-0.4272461-0.4511719-0.6875c-0.1103516-0.2602539-0.1943359-0.5371094-0.2529297-0.8305664c-0.0595703-0.2929688-0.0957031-0.59375-0.1103516-0.9018555S8.578125%2C12.2910156%2C8.578125%2C12.0048828C8.578125%2C11.7192383%2C8.5849609%2C11.421875%2C8.5996094%2C11.1137695z%20M9.5957031%2C12.9785156c0.0175781%2C0.362793%2C0.0761719%2C0.7041016%2C0.1757812%2C1.0229492c0.0986328%2C0.3188477%2C0.2578125%2C0.5883789%2C0.4785156%2C0.8085938c0.2197266%2C0.2197266%2C0.5273438%2C0.3300781%2C0.9238281%2C0.3300781s0.7041016-0.1103516%2C0.9238281-0.3300781c0.2207031-0.2202148%2C0.3789062-0.4897461%2C0.4785156-0.8085938s0.1582031-0.6601562%2C0.1757812-1.0229492c0.0185547-0.362793%2C0.0273438-0.690918%2C0.0273438-0.984375c0-0.190918-0.0019531-0.4018555-0.0048828-0.6328125c-0.0039062-0.230957-0.0224609-0.4619141-0.0556641-0.6928711s-0.0800781-0.456543-0.1425781-0.6762695c-0.0625-0.2202148-0.1542969-0.4125977-0.2753906-0.5776367s-0.2734375-0.2988281-0.4560547-0.4013672C11.6611328%2C8.9101562%2C11.4375%2C8.8588867%2C11.1738281%2C8.8588867s-0.4882812%2C0.0512695-0.6708984%2C0.1542969c-0.1835938%2C0.1025391-0.3359375%2C0.2363281-0.4560547%2C0.4013672C9.9257812%2C9.5795898%2C9.8339844%2C9.7719727%2C9.7714844%2C9.9921875c-0.0625%2C0.2197266-0.1103516%2C0.4453125-0.1425781%2C0.6762695c-0.0332031%2C0.230957-0.0527344%2C0.4619141-0.0556641%2C0.6928711c-0.0039062%2C0.230957-0.0048828%2C0.4418945-0.0048828%2C0.6328125C9.5683594%2C12.2875977%2C9.5761719%2C12.6157227%2C9.5957031%2C12.9785156z%22%2F%3E%3Cpath%20d%3D%22M14.3300781%2C5.1098633c0.0546875-0.1835938%2C0.1425781-0.3427734%2C0.2597656-0.4770508c0.1191406-0.1337891%2C0.265625-0.2387695%2C0.4414062-0.3149414c0.1757812-0.0756836%2C0.3759766-0.1137695%2C0.5996094-0.1137695c0.1845703%2C0%2C0.3574219%2C0.0268555%2C0.5195312%2C0.0810547C16.3125%2C4.3388672%2C16.453125%2C4.4169922%2C16.5742188%2C4.519043c0.1191406%2C0.1020508%2C0.2148438%2C0.2290039%2C0.2841797%2C0.3808594c0.0693359%2C0.1523438%2C0.1044922%2C0.328125%2C0.1044922%2C0.5283203c0%2C0.1879883-0.0283203%2C0.3540039-0.0859375%2C0.4975586c-0.0585938%2C0.144043-0.1347656%2C0.2734375-0.2314453%2C0.387207c-0.0966797%2C0.1142578-0.2060547%2C0.2172852-0.3300781%2C0.309082s-0.2519531%2C0.1801758-0.3837891%2C0.2641602c-0.1328125%2C0.0800781-0.2636719%2C0.1586914-0.3964844%2C0.2368164c-0.1318359%2C0.078125-0.2519531%2C0.1611328-0.3632812%2C0.2490234c-0.109375%2C0.0878906-0.203125%2C0.1831055-0.28125%2C0.2851562c-0.078125%2C0.1015625-0.1289062%2C0.21875-0.1533203%2C0.3505859h2.1845703v0.4501953h-2.7783203c0.0205078-0.2519531%2C0.0654297-0.4667969%2C0.1347656-0.6450195c0.0703125-0.1777344%2C0.1591797-0.3330078%2C0.2666016-0.4648438C14.6533203%2C7.2158203%2C14.7753906%2C7.1000977%2C14.9121094%2C7c0.1347656-0.1000977%2C0.2773438-0.1938477%2C0.4257812-0.2822266c0.1796875-0.1118164%2C0.3378906-0.2148438%2C0.4736328-0.3085938c0.1357422-0.0942383%2C0.2490234-0.1889648%2C0.3388672-0.2851562s0.1582031-0.2001953%2C0.2041016-0.3120117s0.0693359-0.2421875%2C0.0693359-0.3901367c0-0.1157227-0.0224609-0.2207031-0.0664062-0.3149414c-0.0439453-0.09375-0.1035156-0.1748047-0.1767578-0.2431641c-0.0742188-0.0678711-0.1611328-0.1196289-0.2607422-0.1557617c-0.1005859-0.0361328-0.2070312-0.0541992-0.3183594-0.0541992c-0.1484375%2C0-0.2753906%2C0.03125-0.3808594%2C0.0932617c-0.1064453%2C0.0620117-0.1933594%2C0.1430664-0.2617188%2C0.2431641C14.8916016%2C5.0898438%2C14.8417969%2C5.203125%2C14.8125%2C5.3291016s-0.0429688%2C0.2529297-0.0390625%2C0.3808594h-0.5097656C14.2519531%2C5.4941406%2C14.2734375%2C5.2939453%2C14.3300781%2C5.1098633z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-accounting { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.5%2C21h-10C4.1%2C21%2C3%2C19.9%2C3%2C18.5v-14C3%2C3.1%2C4.1%2C2%2C5.5%2C2h10C16.9%2C2%2C18%2C3.1%2C18%2C4.5v14C18%2C19.9%2C16.9%2C21%2C15.5%2C21z%20M5.5%2C3C4.7%2C3%2C4%2C3.7%2C4%2C4.5v14C4%2C19.3%2C4.7%2C20%2C5.5%2C20h10c0.8%2C0%2C1.5-0.7%2C1.5-1.5v-14C17%2C3.7%2C16.3%2C3%2C15.5%2C3H5.5z%22%2F%3E%3Cpath%20d%3D%22M14.5%2C9h-8C5.7%2C9%2C5%2C8.3%2C5%2C7.5v-2C5%2C4.7%2C5.7%2C4%2C6.5%2C4h8C15.3%2C4%2C16%2C4.7%2C16%2C5.5v2C16%2C8.3%2C15.3%2C9%2C14.5%2C9z%20M6.5%2C5C6.2%2C5%2C6%2C5.2%2C6%2C5.5v2C6%2C7.8%2C6.2%2C8%2C6.5%2C8h8C14.8%2C8%2C15%2C7.8%2C15%2C7.5v-2C15%2C5.2%2C14.8%2C5%2C14.5%2C5H6.5z%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%2210%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%2210%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%2210%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%2213%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%2213%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%2213%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%2216%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%2216%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%2216%22%20width%3D%223%22%20height%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-currency { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C4v14h22V4H0z%20M21%2C17H1V5h20V17z%22%2F%3E%3Cpath%20id%3D%22XMLID_3_%22%20d%3D%22M11%2C16c-2.2%2C0-4-2.2-4-5s1.8-5%2C4-5c2.2%2C0%2C4%2C2.2%2C4%2C5S13.2%2C16%2C11%2C16z%20M11%2C7c-1.7%2C0-3%2C1.8-3%2C4c0%2C2.2%2C1.3%2C4%2C3%2C4s3-1.8%2C3-4C14%2C8.8%2C12.7%2C7%2C11%2C7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-date { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C20H2V7h18V20z%20M3%2C19h16V8H3V19z%22%2F%3E%3Cpath%20d%3D%22M8%2C6H5V2h3V6z%20M6%2C5h1V3H6V5z%22%2F%3E%3Cpath%20d%3D%22M17%2C6h-3V2h3V6z%20M15%2C5h1V3h-1V5z%22%2F%3E%3Cpath%20d%3D%22M8.8%2C15.8v-4.1H7.4v-0.5c0.2%2C0%2C0.4%2C0%2C0.6%2C0s0.3-0.1%2C0.5-0.2c0.1-0.1%2C0.3-0.2%2C0.4-0.3C8.9%2C10.6%2C9%2C10.4%2C9%2C10.2h0.5v5.7H8.8z%22%2F%3E%3Cpath%20d%3D%22M14.4%2C11.8c-0.3%2C0.4-0.5%2C0.8-0.7%2C1.2c-0.2%2C0.4-0.4%2C0.9-0.5%2C1.4c-0.1%2C0.5-0.2%2C0.9-0.2%2C1.4h-0.8c0-0.5%2C0.1-0.9%2C0.2-1.4c0.1-0.5%2C0.3-0.9%2C0.5-1.3s0.4-0.8%2C0.7-1.2c0.3-0.4%2C0.5-0.7%2C0.8-1h-3v-0.6h3.7v0.6C14.9%2C11.1%2C14.6%2C11.5%2C14.4%2C11.8z%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%223%22%20width%3D%221%22%20height%3D%224%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%222%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%223%22%20width%3D%226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2217%22%20y%3D%223%22%20width%3D%223%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%224%22%20width%3D%221%22%20height%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-time { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M11.2%2C21.1c-5.7%2C0-10.3-4.6-10.3-10.3S5.5%2C0.5%2C11.2%2C0.5s10.3%2C4.6%2C10.3%2C10.3S16.9%2C21.1%2C11.2%2C21.1z%20M11.2%2C1.5c-5.1%2C0-9.3%2C4.2-9.3%2C9.3c0%2C5.1%2C4.2%2C9.3%2C9.3%2C9.3c5.1%2C0%2C9.3-4.2%2C9.3-9.3C20.5%2C5.7%2C16.3%2C1.5%2C11.2%2C1.5z%22%2F%3E%3Cpath%20class%3D%22st0%22%20d%3D%22M11.5%2C11%22%2F%3E%3Ccircle%20cx%3D%2211.2%22%20cy%3D%2210.8%22%20r%3D%221.9%22%2F%3E%3Crect%20x%3D%2210.7%22%20y%3D%222.6%22%20width%3D%221%22%20height%3D%228%22%2F%3E%3Crect%20x%3D%227.1%22%20y%3D%2210.4%22%20width%3D%223.4%22%20height%3D%220.9%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-percentage { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M2.7998047%2C6.4970703c0.0957031-0.4375%2C0.2578125-0.8251953%2C0.4863281-1.161132C3.5136719%2C5%2C3.8134766%2C4.7333984%2C4.1855469%2C4.5351562s0.8339844-0.296875%2C1.3867188-0.296875c0.5634766%2C0%2C1.0283203%2C0.0957031%2C1.3945312%2C0.2880859c0.3662109%2C0.1914062%2C0.6601562%2C0.4492188%2C0.8818359%2C0.7734375c0.2226562%2C0.3242188%2C0.3779297%2C0.7050781%2C0.46875%2C1.1435547c0.0898438%2C0.4375%2C0.1347656%2C0.9023438%2C0.1347656%2C1.3945312c0%2C0.4677734-0.0517578%2C0.9208984-0.1533203%2C1.359375c-0.1015625%2C0.4375-0.2695312%2C0.8222656-0.5039062%2C1.1513672c-0.234375%2C0.3300781-0.53125%2C0.5976562-0.890625%2C0.8017578c-0.3603516%2C0.2041016-0.8046875%2C0.3056641-1.3320312%2C0.3056641c-0.5400391%2C0-0.9960938-0.0927734-1.3681641-0.2792969c-0.3720703-0.1855469-0.671875-0.4404297-0.9003906-0.7646484c-0.2275391-0.3242188-0.3925781-0.7021484-0.4951172-1.1337891C2.7070312%2C8.8457031%2C2.65625%2C8.3837891%2C2.65625%2C7.8916016C2.65625%2C7.4003906%2C2.7041016%2C6.9355469%2C2.7998047%2C6.4970703z%20M4.0507812%2C8.7109375c0.0302734%2C0.3056641%2C0.0996094%2C0.5878906%2C0.2070312%2C0.8457031c0.1083984%2C0.2587891%2C0.2607422%2C0.4746094%2C0.4589844%2C0.6484375s0.4648438%2C0.2607422%2C0.8007812%2C0.2607422c0.3486328%2C0%2C0.6240234-0.0839844%2C0.828125-0.2519531s0.3632812-0.3808594%2C0.4775391-0.6386719c0.1132812-0.2578125%2C0.1884766-0.5429688%2C0.2246094-0.8554688c0.0361328-0.3115234%2C0.0537109-0.6054688%2C0.0537109-0.8818359c0-0.2636719-0.0146484-0.5488281-0.0449219-0.8544922C7.0273438%2C6.6767578%2C6.9580078%2C6.3955078%2C6.8496094%2C6.1367188C6.7421875%2C5.8789062%2C6.5888672%2C5.6630859%2C6.390625%2C5.4892578C6.1933594%2C5.3154297%2C5.9199219%2C5.2275391%2C5.5722656%2C5.2275391c-0.3359375%2C0-0.6064453%2C0.0878906-0.8105469%2C0.2617188S4.3984375%2C5.8789062%2C4.2851562%2C6.1367188C4.1708984%2C6.3955078%2C4.0957031%2C6.6767578%2C4.0595703%2C6.9833984C4.0244141%2C7.2890625%2C4.0058594%2C7.5800781%2C4.0058594%2C7.8564453C4.0058594%2C8.1201172%2C4.0205078%2C8.4052734%2C4.0507812%2C8.7109375z%20M15.5976562%2C4.0039062L5.9316406%2C17.3779297H4.3837891l9.6845703-13.3740234H15.5976562z%20M11.6923828%2C12.2568359c0.0957031-0.4375%2C0.2578125-0.8251953%2C0.4853516-1.1611328c0.2285156-0.3359375%2C0.5283203-0.6025391%2C0.9003906-0.8007812s0.8339844-0.296875%2C1.3857422-0.296875c0.5644531%2C0%2C1.0292969%2C0.0957031%2C1.3955078%2C0.2880859c0.3652344%2C0.1923828%2C0.6591797%2C0.4501953%2C0.8818359%2C0.7734375c0.2216797%2C0.3242188%2C0.3779297%2C0.7050781%2C0.4677734%2C1.1435547s0.1347656%2C0.9033203%2C0.1347656%2C1.3945312c0%2C0.46875-0.0507812%2C0.921875-0.1523438%2C1.359375c-0.1025391%2C0.4384766-0.2705078%2C0.8222656-0.5048828%2C1.1523438c-0.2333984%2C0.3300781-0.5302734%2C0.59375-0.890625%2C0.7919922c-0.3603516%2C0.1972656-0.8037109%2C0.296875-1.3320312%2C0.296875c-0.5400391%2C0-0.9960938-0.09375-1.3681641-0.2792969s-0.671875-0.4375-0.8994141-0.7558594c-0.2285156-0.3183594-0.3935547-0.6933594-0.4951172-1.125c-0.1025391-0.4316406-0.1533203-0.8935547-0.1533203-1.3857422S11.5957031%2C12.6953125%2C11.6923828%2C12.2568359z%20M12.9433594%2C14.4707031c0.0292969%2C0.3066406%2C0.0986328%2C0.5888672%2C0.2070312%2C0.8466797c0.1074219%2C0.2578125%2C0.2607422%2C0.4736328%2C0.4589844%2C0.6474609c0.1972656%2C0.1738281%2C0.4648438%2C0.2607422%2C0.8007812%2C0.2607422c0.3476562%2C0%2C0.6240234-0.0830078%2C0.828125-0.2519531c0.2041016-0.1679688%2C0.3623047-0.3808594%2C0.4765625-0.6386719s0.1894531-0.5429688%2C0.2255859-0.8544922c0.0351562-0.3125%2C0.0537109-0.6064453%2C0.0537109-0.8828125c0-0.2636719-0.015625-0.5488281-0.0449219-0.8544922c-0.0302734-0.3066406-0.0996094-0.5878906-0.2070312-0.8457031c-0.1083984-0.2587891-0.2607422-0.4746094-0.4589844-0.6484375s-0.4716797-0.2607422-0.8193359-0.2607422c-0.3359375%2C0-0.6064453%2C0.0869141-0.8095703%2C0.2607422c-0.2041016%2C0.1738281-0.3632812%2C0.3896484-0.4775391%2C0.6484375c-0.1142578%2C0.2578125-0.1884766%2C0.5390625-0.2246094%2C0.8457031c-0.0361328%2C0.3056641-0.0537109%2C0.5966797-0.0537109%2C0.8730469C12.8984375%2C13.8798828%2C12.9130859%2C14.1650391%2C12.9433594%2C14.4707031z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-text { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M5.5234375%2C6.4316406L8.8710938%2C15H7.6113281l-0.9355469-2.5800781h-3.625L2.0917969%2C15H0.9277344l3.3359375-8.5683594H5.5234375z%20M6.3154297%2C11.4599609L4.8876953%2C7.4638672H4.8632812l-1.4511719%2C3.9960938H6.3154297z%22%2F%3E%3Cpath%20d%3D%22M15.21875%2C6.4316406c0.1845703%2C0%2C0.3828125%2C0.0019531%2C0.5947266%2C0.0058594s0.421875%2C0.0166016%2C0.6298828%2C0.0371094c0.2080078%2C0.0195312%2C0.4023438%2C0.0488281%2C0.5820312%2C0.0898438c0.1796875%2C0.0390625%2C0.3339844%2C0.0996094%2C0.4619141%2C0.1796875c0.2802734%2C0.1679688%2C0.5185547%2C0.4003906%2C0.7138672%2C0.6953125c0.1962891%2C0.296875%2C0.2939453%2C0.6601562%2C0.2939453%2C1.0927734c0%2C0.4560547-0.1103516%2C0.8505859-0.3291016%2C1.1816406c-0.2207031%2C0.3320312-0.5351562%2C0.578125-0.9433594%2C0.7382812v0.0244141c0.5292969%2C0.1113281%2C0.9326172%2C0.3515625%2C1.2128906%2C0.71875c0.2792969%2C0.3691406%2C0.4199219%2C0.8164062%2C0.4199219%2C1.3447266c0%2C0.3115234-0.0566406%2C0.6162109-0.1679688%2C0.9121094c-0.1123047%2C0.2958984-0.2783203%2C0.5576172-0.4980469%2C0.7861328c-0.2207031%2C0.2275391-0.4921875%2C0.4121094-0.8164062%2C0.5517578S16.6757812%2C15%2C16.2519531%2C15h-4.140625V6.4316406H15.21875z%20M15.53125%2C10.1162109c0.6484375%2C0%2C1.1132812-0.1142578%2C1.3984375-0.3427734c0.2832031-0.2275391%2C0.4257812-0.5693359%2C0.4257812-1.0253906c0-0.3046875-0.0488281-0.5439453-0.1445312-0.7207031c-0.0957031-0.1757812-0.2275391-0.3115234-0.3955078-0.4072266c-0.1679688-0.0966797-0.3623047-0.1582031-0.5820312-0.1865234C16.0136719%2C7.40625%2C15.7792969%2C7.3925781%2C15.53125%2C7.3925781h-2.2792969v2.7236328H15.53125z%20M16.1074219%2C14.0400391c0.5039062%2C0%2C0.8984375-0.1357422%2C1.1816406-0.4082031c0.2841797-0.2714844%2C0.4257812-0.6474609%2C0.4257812-1.1279297c0-0.2792969-0.0517578-0.5117188-0.15625-0.6953125c-0.1035156-0.1845703-0.2412109-0.3300781-0.4130859-0.4384766c-0.1728516-0.1083984-0.3701172-0.1845703-0.5947266-0.2275391c-0.2236328-0.0449219-0.4550781-0.0664062-0.6953125-0.0664062h-2.6035156v2.9638672H16.1074219z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.sortdown { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%3C%2Fstyle%3E%3Cpath%20d%3D%22M18.4479%2011H19.4908L16.5554%203.03809H15.5733L12.6379%2011H13.6808L14.4808%208.72119H17.6479L18.4479%2011ZM16.0478%204.24644H16.0809L17.3555%207.877H14.7732L16.0478%204.24644Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M13.0407%2021H18.928V20.1061H14.3153V20.0675L18.8342%2013.7443V13.0381H13.1952V13.9319H17.5817V13.9706L13.0407%2020.2937V21Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.sortup { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M13.0407%2011H18.928V10.1061H14.3153V10.0675L18.8342%203.74434V3.03809H13.1952V3.93193H17.5817V3.97056L13.0407%2010.2937V11Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.4479%2021H19.4908L16.5554%2013.0381H15.5733L12.6379%2021H13.6808L14.4808%2018.7212H17.6479L18.4479%2021ZM16.0478%2014.2464H16.0809L17.3555%2017.877H14.7732L16.0478%2014.2464Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdf { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-3.363%20-3.658%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M8.512%2C14.989c0.8-1.567%2C1.709-3.334%2C2.438-5.107l0%2C0l0.287-0.699%20%20c-0.949-3.616-1.52-6.52-1.011-8.396l0%2C0C10.362%2C0.297%2C10.929%2C0%2C11.535%2C0l0%2C0l0.368%2C0.005h0.068c0.83-0.013%2C1.22%2C1.042%2C1.264%2C1.453%20%20l0%2C0c0.073%2C0.684-0.242%2C1.839-0.242%2C1.839l0%2C0c0-0.467%2C0.018-1.221-0.276-1.873l0%2C0c-0.343-0.753-0.671-1.203-0.965-1.274l0%2C0%20%20C11.604%2C0.25%2C11.46%2C0.455%2C11.411%2C0.85l0%2C0c-0.104%2C0.553-0.134%2C1.252-0.134%2C1.611l0%2C0c0%2C1.272%2C0.25%2C2.952%2C0.743%2C4.684l0%2C0%20%20c0.093-0.269%2C0.174-0.526%2C0.24-0.768l0%2C0c0.101-0.38%2C0.743-2.9%2C0.743-2.9l0%2C0c0%2C0-0.162%2C3.354-0.388%2C4.371l0%2C0%20%20c-0.049%2C0.215-0.103%2C0.427-0.158%2C0.644l0%2C0c0.812%2C2.268%2C2.121%2C4.292%2C3.68%2C5.75l0%2C0c0.615%2C0.575%2C1.393%2C1.038%2C2.128%2C1.461l0%2C0%20%20c1.605-0.229%2C3.084-0.338%2C4.318-0.324l0%2C0c1.637%2C0.021%2C2.838%2C0.265%2C3.324%2C0.743l0%2C0c0.237%2C0.232%2C0.335%2C0.514%2C0.364%2C0.83l0%2C0%20%20c0.007%2C0.122-0.053%2C0.41-0.069%2C0.482l0%2C0c0.018-0.088%2C0.018-0.519-1.298-0.938l0%2C0c-1.033-0.33-2.971-0.32-5.295-0.073l0%2C0%20%20c2.688%2C1.315%2C5.308%2C1.969%2C6.138%2C1.577l0%2C0c0.203-0.1%2C0.448-0.437%2C0.448-0.437l0%2C0c0%2C0-0.146%2C0.665-0.252%2C0.831l0%2C0%20%20c-0.134%2C0.18-0.396%2C0.376-0.646%2C0.44l0%2C0c-1.312%2C0.351-4.722-0.459-7.695-2.158l0%2C0c-3.322%2C0.489-6.972%2C1.394-9.896%2C2.354l0%2C0%20%20c-2.874%2C5.036-5.036%2C7.35-6.793%2C6.47l0%2C0l-0.646-0.325c-0.263-0.149-0.303-0.516-0.242-0.813l0%2C0%20%20c0.205-1.003%2C1.462-2.513%2C3.988-4.021l0%2C0c0.272-0.165%2C1.483-0.805%2C1.483-0.805l0%2C0c0%2C0-0.896%2C0.868-1.106%2C1.038l0%2C0%20%20c-2.016%2C1.652-3.504%2C3.73-3.467%2C4.536l0%2C0l0.007%2C0.069C2.643%2C24.936%2C5.21%2C21.45%2C8.512%2C14.989%20M9.559%2C15.525%20%20c-0.551%2C1.038-1.09%2C2.001-1.588%2C2.886l0%2C0c2.752-1.153%2C5.715-1.892%2C8.535-2.416l0%2C0c-0.379-0.262-0.746-0.539-1.093-0.832l0%2C0%20%20c-1.555-1.313-2.737-2.955-3.596-4.681l0%2C0C11.273%2C11.948%2C10.626%2C13.507%2C9.559%2C15.525%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-pdfa { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2033%2033%22%20height%3D%2233px%22%20width%3D%2233px%22%20y%3D%220px%22%20x%3D%220px%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.875%2018.648L11.9617%2018.4783C12.7401%2016.954%2013.6102%2015.2503%2014.312%2013.541L14.6%2012.841C13.65%209.225%2013.08%206.322%2013.589%204.445C13.726%203.956%2014.293%203.659%2014.899%203.659L15.268%203.664H15.336C16.166%203.651%2016.556%204.706%2016.6%205.117C16.673%205.8%2016.357%206.956%2016.357%206.956L16.3571%206.87946C16.358%206.40944%2016.3594%205.70047%2016.081%205.083C15.738%204.33%2015.41%203.879%2015.116%203.808C14.968%203.907%2014.824%204.112%2014.774%204.507C14.671%205.06%2014.641%205.759%2014.641%206.119C14.641%207.391%2014.891%209.071%2015.384%2010.802C15.477%2010.534%2015.558%2010.276%2015.624%2010.035C15.725%209.655%2016.367%207.134%2016.367%207.134C16.367%207.134%2016.205%2010.489%2015.979%2011.505C15.931%2011.72%2015.877%2011.932%2015.821%2012.149C16.633%2014.417%2017.942%2016.441%2019.501%2017.899C19.9467%2018.3157%2020.4779%2018.6735%2021.0164%2019H29C30.1046%2019%2031%2019.8954%2031%2021V29C31%2030.1046%2030.1046%2031%2029%2031H17C15.8954%2031%2015%2030.1046%2015%2029V21.5492C13.6156%2021.9019%2012.2807%2022.2896%2011.07%2022.687C8.19599%2027.724%206.03499%2030.038%204.27699%2029.158L3.62999%2028.833C3.36699%2028.683%203.32699%2028.317%203.38799%2028.02C3.59299%2027.017%204.84999%2025.507%207.37599%2023.999C7.64799%2023.834%208.85899%2023.194%208.85899%2023.194C8.85899%2023.194%207.96299%2024.062%207.75299%2024.232C5.73699%2025.884%204.24899%2027.962%204.28599%2028.768L4.29299%2028.837C6.00499%2028.594%208.57299%2025.109%2011.875%2018.648ZM18.775%2018.822C18.8461%2018.882%2018.918%2018.9413%2018.9906%2019H17C15.9681%2019%2015.1187%2019.7815%2015.0114%2020.785C13.7648%2021.146%2012.529%2021.5689%2011.333%2022.07C11.831%2021.185%2012.37%2020.222%2012.921%2019.184C13.989%2017.166%2014.636%2015.607%2015.18%2014.141C16.038%2015.867%2017.221%2017.508%2018.775%2018.822ZM21.5553%2027.3521H24.4447L24.9995%2029H26.7518L23.7581%2021.002H22.231L19.2537%2029H21.006L21.5553%2027.3521ZM23.9998%2026.0172H22.0002L22.9945%2023.0234L23.9998%2026.0172Z%22%20class%3D%22cls-1%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-xlsx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2263%22%20height%3D%2263%22%20viewBox%3D%2216.287%2032.45%2063.000002%2063%22%20xml%3Aspace%3D%22preserve%22%20%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22m%2053.774%2C43.725%20c%202.825%2C-0.2%205.663%2C-0.375%208.5%2C-0.512%20-3.337%2C6.837%20-6.688%2C13.675%20-10.087%2C20.487%203.438%2C7%206.95%2C13.95%2010.399%2C20.95%20-3.012%2C-0.175%20-6.012%2C-0.362%20-9.024%2C-0.575%20-2.125%2C-5.213%20-4.713%2C-10.25%20-6.237%2C-15.7%20-1.7%2C5.075%20-4.125%2C9.862%20-6.075%2C14.838%20-2.737%2C-0.038%20-5.476%2C-0.15%20-8.213%2C-0.263%203.212%2C-6.287%206.312%2C-12.624%209.624%2C-18.874%20-2.813%2C-6.438%20-5.899%2C-12.75%20-8.8%2C-19.15%202.75%2C-0.163%205.5%2C-0.325%208.25%2C-0.475%201.862%2C4.888%203.9%2C9.712%205.438%2C14.725%201.65%2C-5.313%204.112%2C-10.313%206.225%2C-15.451%20z%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-xltx { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%20xml%3Aspace%3D%22preserve%22%20%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3CclipPath%20id%3D%22clip-xltx%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3Cg%20id%3D%22xltx%22%20clip-path%3D%22url(%23clip-xltx)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_19%22%20data-name%3D%22Path%2019%22%20d%3D%22M516.527%2C119.222q2.151-.131%2C4.314-.222-2.54%2C4.455-5.119%2C8.9c1.744%2C3.04%2C3.528%2C6.06%2C5.278%2C9.1-1.528-.076-3.052-.158-4.581-.251a58.98%2C58.98%2C0%2C0%2C1-3.166-6.819c-.862%2C2.2-2.094%2C4.284-3.084%2C6.445-1.389-.017-2.779-.066-4.168-.114%2C1.63-2.732%2C3.2-5.484%2C4.885-8.2-1.428-2.8-2.994-5.54-4.467-8.319q2.095-.106%2C4.188-.206c.945%2C2.123%2C1.98%2C4.218%2C2.76%2C6.4C514.205%2C123.626%2C515.454%2C121.454%2C516.527%2C119.222Z%22%20transform%3D%22translate(-504%20-117)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-ods { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%20-54.11%20193.631%20193.63%22%20height%3D%22193.63px%22%20width%3D%22193.631px%22%20y%3D%220px%22%20x%3D%220px%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M193.16%2C5.615V5.609c-0.334-0.173-0.671-0.334-1.005-0.497%20%20c-5.356-2.586-11.256-4.287-17.525-4.88c-11.083-1.049-21.673%2C1.496-30.622%2C6.678c-6.13-3.477-13.071-5.741-20.542-6.448%20%20c-10.298-0.974-20.17%2C1.16-28.697%2C5.629c-0.084%2C0.044-0.17%2C0.095-0.251%2C0.135c-0.207%2C0.162-0.347%2C0.414-0.347%2C0.697%20%20c0%2C0.492%2C0.392%2C0.89%2C0.889%2C0.89c0.046%2C0%2C0.091-0.007%2C0.139-0.017c0.021-0.002%2C0.042-0.011%2C0.061-0.015%20%20c4.586-0.848%2C9.368-1.088%2C14.243-0.627c13.684%2C1.293%2C25.609%2C5.521%2C33.975%2C15.011c0.437%2C0.455%2C0.822%2C0.427%2C1.266-0.024%20%20c10.523-12.2%2C26.662-17.021%2C44.006-15.382c0.968%2C0.094%2C1.921%2C0.213%2C2.871%2C0.355c0.33%2C0.05%2C0.836%2C0.134%2C1.133%2C0.167%20%20c0.572%2C0.063%2C0.88-0.397%2C0.88-0.891C193.629%2C6.056%2C193.485%2C5.776%2C193.16%2C5.615L193.16%2C5.615z%22%20class%3D%22cls-1%22%20%2F%3E%3Cpath%20d%3D%22M173.054%2C48.544c-0.057-0.028-0.107-0.046-0.154-0.065%20%20c-10.518-4.35-22.021-6.758-34.094-6.758c-19.293%2C0-37.154%2C6.127-51.757%2C16.524c-11.146-4.993-23.497-7.776-36.496-7.776%20%20c-18.485%2C0-35.648%2C5.617-49.895%2C15.237c-0.047%2C0.029-0.095%2C0.066-0.149%2C0.104C0.205%2C66.044%2C0%2C66.418%2C0%2C66.848%20%20c0%2C0.729%2C0.592%2C1.323%2C1.323%2C1.323c0.086%2C0%2C0.174-0.013%2C0.259-0.03c0.058-0.015%2C0.107-0.027%2C0.161-0.048%20%20c8.166-2.456%2C16.832-3.791%2C25.798-3.791c23.836%2C0%2C45.083%2C5.634%2C61.08%2C20.681c0.038%2C0.028%2C0.071%2C0.065%2C0.111%2C0.104%20%20c0.232%2C0.205%2C0.53%2C0.325%2C0.863%2C0.325c0.412%2C0%2C0.774-0.188%2C1.018-0.486c0.006%2C0.005%2C0.515-0.72%2C0.773-1.069%20%20c16.246-22.217%2C43.03-33.172%2C72.845-33.172c2.129%2C0%2C4.246%2C0.08%2C6.338%2C0.225c0.602%2C0.047%2C1.873%2C0.144%2C1.902%2C0.144%20%20c0.727%2C0%2C1.322-0.591%2C1.322-1.323C173.796%2C49.203%2C173.492%2C48.752%2C173.054%2C48.544L173.054%2C48.544z%22%20class%3D%22cls-1%22%20%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-ots { - width: 30px; - height: 30px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip-ots%22%3E%3Crect%20width%3D%2233%22%20height%3D%2233%22%2F%3E%3C%2FclipPath%3E%3Cstyle%3E.cls-1%7Bfill%3A%2340865c%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22ots%22%20clip-path%3D%22url(%23clip-ots)%22%3E%3Crect%20id%3D%22Rectangle_20%22%20data-name%3D%22Rectangle%2020%22%20width%3D%2233%22%20height%3D%2233%22%20fill%3D%22none%22%2F%3E%3Cpath%20id%3D%22Path_33%22%20data-name%3D%22Path%2033%22%20d%3D%22M125.173%2C121h0c-.046-.03-.093-.059-.141-.088a6.133%2C6.133%2C0%2C0%2C0-2.467-.869%2C6.014%2C6.014%2C0%2C0%2C0-4.309%2C1.188%2C6.223%2C6.223%2C0%2C0%2C0-2.892-1.147%2C5.965%2C5.965%2C0%2C0%2C0-4.039%2C1l-.036.024a.176.176%2C0%2C0%2C0-.049.125.145.145%2C0%2C0%2C0%2C.126.158l.019%2C0a.019.019%2C0%2C0%2C0%2C.009%2C0%2C5.781%2C5.781%2C0%2C0%2C1%2C2.005-.111%2C6.41%2C6.41%2C0%2C0%2C1%2C4.782%2C2.669c.06.081.115.076.178%2C0a6.288%2C6.288%2C0%2C0%2C1%2C6.194-2.735c.136.017.27.038.4.064.047.009.119.024.161.03.08.011.123-.071.123-.159A.155.155%2C0%2C0%2C0%2C125.173%2C121Z%22%20transform%3D%22translate(-94.24%20-116)%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_34%22%20data-name%3D%22Path%2034%22%20d%3D%22M126.894%2C125.978a.175.175%2C0%2C0%2C0-.022-.011%2C11.686%2C11.686%2C0%2C0%2C0-4.905-1.082%2C11.924%2C11.924%2C0%2C0%2C0-7.444%2C2.647%2C11.725%2C11.725%2C0%2C0%2C0-5.251-1.245%2C11.884%2C11.884%2C0%2C0%2C0-7.176%2C2.441.229.229%2C0%2C0%2C0-.022.016.217.217%2C0%2C0%2C0-.073.167.2.2%2C0%2C0%2C0%2C.191.211.167.167%2C0%2C0%2C0%2C.037%2C0%2C.118.118%2C0%2C0%2C0%2C.023-.008%2C11.679%2C11.679%2C0%2C0%2C1%2C3.71-.608c3.429%2C0%2C6.486.9%2C8.787%2C3.315a.093.093%2C0%2C0%2C1%2C.016.016.172.172%2C0%2C0%2C0%2C.123.052.18.18%2C0%2C0%2C0%2C.147-.078s.075-.115.111-.171a12.1%2C12.1%2C0%2C0%2C1%2C10.479-5.315c.306%2C0%2C.611.014.912.037l.273.022a.2.2%2C0%2C0%2C0%2C.191-.211A.211.211%2C0%2C0%2C0%2C126.894%2C125.978Z%22%20transform%3D%22translate(-100%20-115.885)%22%20class%3D%22cls-1%22%2F%3E%3Cg%20id%3D%22Group_5%22%20data-name%3D%22Group%205%22%20transform%3D%22translate(16%2016)%22%3E%3Cpath%20id%3D%22Path_44%22%20data-name%3D%22Path%2044%22%20d%3D%22M1.011%2C0H13.989A1.011%2C1.011%2C0%2C0%2C1%2C15%2C1.011V13.989A1.011%2C1.011%2C0%2C0%2C1%2C13.989%2C15H1.011A1.011%2C1.011%2C0%2C0%2C1%2C0%2C13.989V1.011A1.011%2C1.011%2C0%2C0%2C1%2C1.011%2C0Z%22%20class%3D%22cls-1%22%2F%3E%3Cpath%20id%3D%22Path_39%22%20data-name%3D%22Path%2039%22%20d%3D%22M5.794%2C13.25V3.911H9.258V2.25h-9V3.911H3.729V13.25Z%22%20transform%3D%22translate(2.742%20-0.25)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-format-csv { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22%2017H16V18H22V17Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2020H16V21H22V20Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2014H16V15H22V14Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2011H16V12H22V11Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%208H16V9H22V8Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%205H16V6H22V5Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%202H16V3H22V2Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2017H9V18H15V17Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2020H9V21H15V20Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2014H9V15H15V14Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%2011H9V12H15V11Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%208H9V9H15V8Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%205H9V6H15V5Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M15%202H9V3H15V2Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2017H2V18H8V17Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2020H2V21H8V20Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2014H2V15H8V14Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%2011H2V12H8V11Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%208H2V9H8V8Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%205H2V6H8V5Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M8%202H2V3H8V2Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -i.icon.icon-users { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.5%207C15.5%209.26153%2014.9357%2010.9518%2014.201%2012.0307C13.4584%2013.121%2012.6234%2013.5%2012%2013.5C11.3766%2013.5%2010.5416%2013.121%209.79901%2012.0307C9.0643%2010.9518%208.5%209.26153%208.5%207C8.5%204.92262%2010.2222%203.5%2012%203.5C13.7778%203.5%2015.5%204.92262%2015.5%207ZM14.8461%2013.6216C14.006%2014.5191%2013.0044%2015%2012%2015C10.9956%2015%209.99399%2014.5191%209.15395%2013.6216C7.69714%2014.1996%206.4782%2014.7725%205.52945%2015.3496C3.82884%2016.3839%203.5%2017.1203%203.5%2017.5C3.5%2018.0104%203.76355%2018.6977%205.04703%2019.3409C6.37522%2020.0065%208.60909%2020.4999%2012%2020.5C15.3909%2020.5%2017.6248%2020.0065%2018.953%2019.3409C20.2364%2018.6977%2020.5%2018.0104%2020.5%2017.5C20.5%2017.1203%2020.1712%2016.3839%2018.4705%2015.3496C17.5218%2014.7725%2016.3029%2014.1996%2014.8461%2013.6216ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-cut { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23cut)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.22427%2022.2702C4.51527%2023.1269%206.52738%2022.7183%207.6592%2021.0127C8.79101%2019.3071%208.38572%2017.2943%207.09472%2016.4376C5.80372%2015.5809%203.79161%2015.9896%202.65979%2017.6952C1.52798%2019.4008%201.93328%2021.4136%203.22427%2022.2702ZM2.67135%2023.1035C4.51208%2024.325%207.11827%2023.6364%208.49243%2021.5656C9.8666%2019.4948%209.48837%2016.8259%207.64764%2015.6044C5.80691%2014.3829%203.20072%2015.0714%201.82656%2017.1422C0.452398%2019.2131%200.830625%2021.882%202.67135%2023.1035Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.9158%2022.2702C19.6248%2023.1269%2017.6127%2022.7183%2016.4809%2021.0127C15.349%2019.3071%2015.7543%2017.2943%2017.0453%2016.4376C18.3363%2015.5809%2020.3484%2015.9896%2021.4803%2017.6952C22.6121%2019.4008%2022.2068%2021.4136%2020.9158%2022.2702ZM21.4687%2023.1035C19.628%2024.325%2017.0218%2023.6364%2015.6476%2021.5656C14.2735%2019.4948%2014.6517%2016.8259%2016.4924%2015.6044C18.3331%2014.3829%2020.9393%2015.0714%2022.3135%2017.1422C23.6877%2019.2131%2023.3094%2021.882%2021.4687%2023.1035Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M16.4924%2015.6044L13.9037%2012.4737L19.9552%200.675715C20.0693%200.446914%2019.9552%200.172352%2019.727%200.0808313C19.4416%20-0.0106892%2019.0993%200.0808312%2018.9851%200.263872L12.0233%2011.4212L5.17562%200.263872C5.06149%200.035071%204.71911%20-0.0564496%204.43379%200.035071C4.14847%200.126592%204.03434%200.401153%204.14847%200.629955L10.2001%2012.4279L7.64761%2015.6044L9.2292%2018L12.0233%2013.4804L14.9108%2018L16.4924%2015.6044Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22cut%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22black%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -i.icon.icon-copy { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201H15V7H16V0H0V17H8V16H1V1Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M23%208H9V23H23V8ZM8%207V24H24V7H8Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13%205H3V4H13V5Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%209H3V8H8V9Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8%2013H3V12H8V13Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H11V11H21V12Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H11V15H21V16Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H11V19H21V20Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-paste { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-menu-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.6047%2016.5848C17.0078%2016.1793%2017.4729%2015.9766%2018%2015.9766C18.5271%2015.9766%2018.9922%2016.1793%2019.3953%2016.5848C19.7984%2016.9903%2020%2017.4581%2020%2017.9883C20%2018.5185%2019.7984%2018.9864%2019.3953%2019.3918C18.9922%2019.7973%2018.5271%2020%2018%2020C17.4729%2020%2017.0078%2019.7973%2016.6047%2019.3918C16.2016%2018.9864%2016%2018.5185%2016%2017.9883C16%2017.4581%2016.2016%2016.9903%2016.6047%2016.5848ZM16.6047%2010.5965C17.0078%2010.191%2017.4729%209.9883%2018%209.9883C18.5271%209.9883%2018.9922%2010.191%2019.3953%2010.5965C19.7984%2011.0019%2020%2011.4698%2020%2012C20%2012.5302%2019.7984%2012.9981%2019.3953%2013.4035C18.9922%2013.809%2018.5271%2014.0117%2018%2014.0117C17.4729%2014.0117%2017.0078%2013.809%2016.6047%2013.4035C16.2016%2012.9981%2016%2012.5302%2016%2012C16%2011.4698%2016.2016%2011.0019%2016.6047%2010.5965ZM19.3953%207.4152C18.9922%207.82066%2018.5271%208.02339%2018%208.02339C17.4729%208.02339%2017.0078%207.82066%2016.6047%207.4152C16.2016%207.00975%2016%206.54191%2016%206.0117C16%205.48148%2016.2016%205.01365%2016.6047%204.60819C17.0078%204.20273%2017.4729%204%2018%204C18.5271%204%2018.9922%204.20273%2019.3953%204.60819C19.7984%205.01365%2020%205.48148%2020%206.0117C20%206.54191%2019.7984%207.00975%2019.3953%207.4152Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-resolve-comment.check { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%2340865C%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-prev-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.4219%207.40625L10.8281%2012L15.4219%2016.5938L14.0156%2018L8.01562%2012L14.0156%206L15.4219%207.40625Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-next-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9.98438%206L15.9844%2012L9.98438%2018L8.57812%2016.5938L13.1719%2012L8.57812%207.40625L9.98438%206Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-done-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-insert-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V15.0346C2%2016.3222%203.18908%2017.013%204.5%2017.013H5.5C5.82773%2017.013%206%2017.1917%206%2017.5136V21L12%2017H20C21.1046%2017%2022%2016.1046%2022%2015V8H20.5V14.5C20.5%2015.0523%2020.0523%2015.5%2019.5%2015.5H11.5L7.5%2018V15.5H4.5C3.94772%2015.5%203.5%2015.0523%203.5%2014.5V5.5C3.5%204.94772%203.94772%204.5%204.5%204.5H19.5C20.0523%204.5%2020.5%204.94772%2020.5%205.5V8H22V5.50295C22%204.2153%2020.8109%203%2019.5%203Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M6%207.5H18V9H6L6%207.5Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M6%2011H18V12.5H6V11Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-done-comment-white { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-horizontal { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M9.51367%2010.75H11.269L8.06905%202H6.36276L3.25%2010.75H4.96174L5.62136%208.76245H8.81589L9.51367%2010.75ZM7.19682%204.04127L8.29801%207.2882H6.11744L7.19682%204.04127ZM16.0002%202H12.8057V10.75H15.5259C16.5544%2010.742%2017.2031%2010.7221%2017.4721%2010.6903C17.9009%2010.6386%2018.2607%2010.5013%2018.5515%2010.2785C18.8458%2010.0517%2019.0766%209.75125%2019.2438%209.37722C19.4146%208.9992%2019.5%208.61124%2019.5%208.21334C19.5%207.70799%2019.3692%207.2683%2019.1075%206.89427C18.8458%206.52024%2018.4715%206.25563%2017.9845%206.10044C18.3298%205.92934%2018.6023%205.67269%2018.8022%205.33049C19.0057%204.98829%2019.1075%204.61227%2019.1075%204.20242C19.1075%203.82441%2019.0257%203.4842%2018.8622%203.18179C18.6986%202.8754%2018.4933%202.63068%2018.2462%202.44765C18.0027%202.26461%2017.7247%202.14524%2017.4121%202.08953C17.1032%202.02984%2016.6326%202%2016.0002%202ZM14.4193%205.47971L14.4193%203.45634L15.346%203.45634C16.1056%203.45634%2016.5653%203.46629%2016.7252%203.48619C16.9942%203.522%2017.1959%203.62545%2017.3303%203.79656C17.4684%203.96368%2017.5375%204.18253%2017.5375%204.4531C17.5375%204.73562%2017.4575%204.96442%2017.2976%205.1395C17.1414%205.3106%2016.9251%205.41405%2016.6489%205.44986C16.4963%205.46976%2016.1056%205.47971%2015.4769%205.47971H14.4193ZM14.4193%209.27575V6.93605H15.7222C16.4563%206.93605%2016.9324%206.97783%2017.1504%207.06139C17.3721%207.14495%2017.5411%207.27825%2017.6574%207.46129C17.7737%207.64433%2017.8319%207.86716%2017.8319%208.12977C17.8319%208.44014%2017.7555%208.68884%2017.6029%208.87585C17.4539%209.05889%2017.2595%209.17428%2017.0196%209.22203C16.8633%209.25784%2016.4945%209.27575%2015.913%209.27575H14.4193ZM17.9829%2013.25L21.5023%2017.0829L22%2017.625L21.5023%2018.1671L17.9829%2022L16.9875%2020.9159L19.3053%2018.3916H2V16.8584H19.3053L16.9875%2014.3341L17.9829%2013.25Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-anglecount { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M22%208.71927H16.3964V10.0783L19.7586%2010.0783L8.55142%2020.9162L9.67214%2022L20.597%2011.1439V14.4301L22%2014.4301V8.71927Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M10.6577%2011.3859L9.54484%2012.462L7.84242%2011.6713L5.81718%2013.6298L6.65905%2015.2527L5.57385%2016.3022L2%209.02933L3.08174%207.98323L10.6577%2011.3859ZM6.57946%2011.085L3.82288%209.76944L5.19705%2012.4218L6.57946%2011.085Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M6.08462%205.07929L8.10986%203.12078C8.51077%202.73309%208.82806%202.46285%209.06174%202.31005C9.2952%202.15259%209.54714%202.05532%209.81755%202.01826C10.0903%201.97896%2010.3756%202.0031%2010.6735%202.09068C10.9689%202.17582%2011.2364%202.33426%2011.4761%202.56602C11.7359%202.81728%2011.9098%203.1102%2011.9977%203.44478C12.0879%203.77712%2012.0778%204.10158%2011.9674%204.41815C12.3746%204.21472%2012.7796%204.14745%2013.1826%204.21634C13.5857%204.28523%2013.9473%204.47458%2014.2677%204.7844C14.52%205.02835%2014.7118%205.31856%2014.8432%205.65504C14.9743%205.98684%2015.0184%206.31251%2014.9756%206.63204C14.9326%206.9469%2014.7915%207.25165%2014.5524%207.54628C14.4021%207.73067%2014.0034%208.14059%2013.3564%208.77602L11.6319%2010.4438L6.08462%205.07929ZM8.03089%204.98287L9.31365%206.22336L9.98412%205.57498C10.3827%205.18952%2010.6241%204.94389%2010.7082%204.83812C10.8607%204.64682%2010.9322%204.45082%2010.9228%204.25012C10.9131%204.04474%2010.8188%203.85545%2010.6397%203.68225C10.4681%203.51636%2010.2856%203.42452%2010.0921%203.40673C9.89838%203.38427%209.70492%203.44451%209.51172%203.58743C9.39773%203.67327%209.09996%203.94903%208.61842%204.4147L8.03089%204.98287ZM10.2369%207.11622L11.7202%208.55065L12.6672%207.63489C13.0358%207.2784%2013.2583%207.04126%2013.3347%206.9235C13.4565%206.74717%2013.5066%206.55722%2013.485%206.35365C13.4632%206.14541%2013.354%205.94616%2013.1572%205.75587C12.9907%205.59487%2012.8126%205.4939%2012.6228%205.45299C12.433%205.41207%2012.2414%205.43395%2012.0479%205.51864C11.8567%205.60109%2011.5283%205.86736%2011.0629%206.31744L10.2369%207.11622Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-angleclock { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.2807%2022L15.2807%2016.3964L13.9217%2016.3964L13.9217%2019.7586L3.08379%208.55143L2%209.67214L12.8561%2020.597L9.56995%2020.597L9.56994%2022L15.2807%2022Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M12.6141%2010.6577L11.538%209.54484L12.3287%207.84242L10.3702%205.81718L8.74726%206.65905L7.69782%205.57385L14.9707%202L16.0168%203.08174L12.6141%2010.6577ZM12.915%206.57946L14.2306%203.82288L11.5782%205.19705L12.915%206.57946Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M18.9207%206.08463L20.8792%208.10987C21.2669%208.51077%2021.5372%208.82806%2021.6899%209.06174C21.8474%209.2952%2021.9447%209.54714%2021.9817%209.81755C22.021%2010.0903%2021.9969%2010.3756%2021.9093%2010.6735C21.8242%2010.9689%2021.6657%2011.2364%2021.434%2011.4761C21.1827%2011.7359%2020.8898%2011.9098%2020.5552%2011.9977C20.2229%2012.0879%2019.8984%2012.0778%2019.5819%2011.9674C19.7853%2012.3746%2019.8525%2012.7796%2019.7837%2013.1826C19.7148%2013.5857%2019.5254%2013.9473%2019.2156%2014.2677C18.9716%2014.52%2018.6814%2014.7118%2018.345%2014.8432C18.0132%2014.9743%2017.6875%2015.0185%2017.368%2014.9756C17.0531%2014.9326%2016.7484%2014.7915%2016.4537%2014.5524C16.2693%2014.4021%2015.8594%2014.0034%2015.224%2013.3564L13.5562%2011.6319L18.9207%206.08463ZM19.0171%208.03089L17.7766%209.31365L18.425%209.98412C18.8105%2010.3827%2019.0561%2010.6241%2019.1619%2010.7083C19.3532%2010.8607%2019.5492%2010.9322%2019.7499%2010.9228C19.9553%2010.9131%2020.1445%2010.8188%2020.3178%2010.6397C20.4836%2010.4681%2020.5755%2010.2856%2020.5933%2010.0921C20.6157%209.89838%2020.5555%209.70492%2020.4126%209.51172C20.3267%209.39773%2020.051%209.09996%2019.5853%208.61842L19.0171%208.03089ZM16.8838%2010.2369L15.4494%2011.7202L16.3651%2012.6672C16.7216%2013.0358%2016.9587%2013.2583%2017.0765%2013.3347C17.2528%2013.4565%2017.4428%2013.5066%2017.6463%2013.485C17.8546%2013.4632%2018.0538%2013.354%2018.2441%2013.1572C18.4051%2012.9907%2018.5061%2012.8126%2018.547%2012.6228C18.5879%2012.433%2018.566%2012.2414%2018.4814%2012.0479C18.3989%2011.8567%2018.1326%2011.5283%2017.6826%2011.0629L16.8838%2010.2369Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-vertical { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.10359%2022.0648L11.0819%2018.5454L9.95669%2017.55L7.33664%2019.8678L7.33664%201.9375L5.7453%201.9375L5.7453%2019.8678L3.12525%2017.55L2%2018.5454L5.97834%2022.0648L6.54097%2022.5625L7.10359%2022.0648Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M14.513%2013.1875L17.8287%2013.1875C18.4851%2013.1875%2018.9736%2013.2173%2019.2942%2013.277C19.6186%2013.3327%2019.9072%2013.4521%2020.1599%2013.6351C20.4164%2013.8182%2020.6295%2014.0629%2020.7993%2014.3693C20.969%2014.6717%2021.0539%2015.0119%2021.0539%2015.3899C21.0539%2015.7998%2020.9483%2016.1758%2020.737%2016.518C20.5296%2016.8602%2020.2467%2017.1168%2019.8883%2017.2879C20.3938%2017.4431%2020.7823%2017.7077%2021.0539%2018.0818C21.3255%2018.4558%2021.4613%2018.8955%2021.4613%2019.4008C21.4613%2019.7987%2021.3726%2020.1867%2021.1954%2020.5647C21.0218%2020.9387%2020.7823%2021.2392%2020.4768%2021.466C20.175%2021.6888%2019.8015%2021.8261%2019.3564%2021.8778C19.0773%2021.9096%2018.404%2021.9295%2017.3365%2021.9375L14.513%2021.9375L14.513%2013.1875ZM16.1878%2014.6438L16.1878%2016.6672L17.2855%2016.6672C17.9381%2016.6672%2018.3436%2016.6573%2018.502%2016.6374C18.7887%2016.6016%2019.0132%2016.4981%2019.1754%2016.327C19.3413%2016.1519%2019.4243%2015.9231%2019.4243%2015.6406C19.4243%2015.37%2019.3527%2015.1512%2019.2093%2014.9841C19.0697%2014.813%2018.8604%2014.7095%2018.5813%2014.6737C18.4153%2014.6538%2017.9381%2014.6438%2017.1497%2014.6438L16.1878%2014.6438ZM16.1878%2018.1235L16.1878%2020.4632L17.7382%2020.4632C18.3417%2020.4632%2018.7246%2020.4453%2018.8868%2020.4095C19.1358%2020.3618%2019.3376%2020.2464%2019.4922%2020.0634C19.6507%2019.8763%2019.7299%2019.6276%2019.7299%2019.3173C19.7299%2019.0547%2019.6695%2018.8318%2019.5488%2018.6488C19.4281%2018.4658%2019.2527%2018.3325%2019.0226%2018.2489C18.7963%2018.1653%2018.3021%2018.1235%2017.5401%2018.1235L16.1878%2018.1235Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M22%2010.6875L20.1781%2010.6875L19.4538%208.69995L16.1381%208.69995L15.4534%2010.6875L13.6768%2010.6875L16.9076%201.9375L18.6786%201.9375L22%2010.6875ZM18.9163%207.2257L17.7733%203.97877L16.653%207.2257L18.9163%207.2257Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-rotateup { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.9142%202.48263L2%205.89535L3.1071%206.86061L5.68491%204.61307L5.68491%2022L7.25059%2022L7.25059%204.61307L9.82839%206.86061L10.9355%205.89535L7.0213%202.48263L6.46775%202L5.9142%202.48263Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M21.9277%2012.5942L21.8993%2014.2496L19.9679%2014.9391L19.9162%2017.9517L21.8256%2018.5424L21.7979%2020.1567L13.3952%2017.3594L13.4228%2015.7502L21.9277%2012.5942ZM18.5353%2015.4508L15.3807%2016.5406L18.5%2017.5072L18.5353%2015.4508Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M13.4994%2011.0787L13.5511%208.06604C13.5614%207.46968%2013.5978%207.02537%2013.6605%206.7331C13.7194%206.43747%2013.8392%206.1734%2014.0199%205.94087C14.2008%205.70492%2014.4405%205.50741%2014.7391%205.34834C15.0339%205.18933%2015.3639%205.10684%2015.7291%205.10087C16.1251%205.0944%2016.4867%205.18442%2016.814%205.37095C17.1413%205.55405%2017.3849%205.80704%2017.5446%206.12994C17.7024%205.66822%2017.9641%205.31103%2018.3296%205.05835C18.6952%204.80567%2019.1221%204.67534%2019.6103%204.66736C19.9947%204.66107%2020.3681%204.73549%2020.7306%204.8906C21.0892%205.04235%2021.3757%205.25524%2021.59%205.52927C21.8006%205.79994%2021.9274%206.13708%2021.9704%206.54069C21.9968%206.79381%2022.0056%207.40527%2021.9966%208.37509V11.0787H13.4994ZM14.9325%209.53393L16.8872%209.50197L16.9043%208.50461C16.9145%207.91168%2016.9112%207.5434%2016.8945%207.39976C16.8643%207.13985%2016.7679%206.93756%2016.6051%206.79289C16.4386%206.64485%2016.2188%206.57306%2015.9459%206.57752C15.6845%206.5818%2015.472%206.65037%2015.3083%206.78325C15.1408%206.91277%2015.0376%207.10462%2014.9986%207.35881C14.9768%207.50993%2014.9598%207.94364%2014.9475%208.65996L14.9325%209.53393ZM18.2941%209.47896L20.5545%209.442L20.5786%208.03336C20.588%207.48499%2020.5767%207.1374%2020.5446%206.99059C20.5024%206.76514%2020.3941%206.58359%2020.2196%206.44597C20.0414%206.30497%2019.8024%206.23693%2019.5026%206.24183C19.2489%206.24598%2019.0327%206.30434%2018.854%206.4169C18.6753%206.52947%2018.5437%206.69095%2018.4594%206.90133C18.3752%207.10829%2018.3271%207.55794%2018.3152%208.25026L18.2941%209.47896Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-text-orientation-rotatedown { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.0213%2021.5174L10.9355%2018.1047L9.82839%2017.1394L7.25058%2019.3869L7.25059%202L5.68491%202L5.68491%2019.3869L3.1071%2017.1394L2%2018.1047L5.91419%2021.5174L6.46774%2022L7.0213%2021.5174Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M13.4675%2011.4058L13.4959%209.75035L15.4273%209.06091L15.479%206.04827L13.5695%205.45761L13.5972%203.84333L22%206.64062L21.9724%208.24976L13.4675%2011.4058ZM16.8599%208.54922L20.0145%207.45944L16.8952%206.49282L16.8599%208.54922Z%22%20fill%3D%22%2340865c%22%2F%3E%3Cpath%20d%3D%22M21.8957%2012.9213L21.844%2015.934C21.8338%2016.5303%2021.7974%2016.9746%2021.7347%2017.2669C21.6758%2017.5625%2021.556%2017.8266%2021.3752%2018.0591C21.1944%2018.2951%2020.9547%2018.4926%2020.656%2018.6517C20.3612%2018.8107%2020.0312%2018.8932%2019.6661%2018.8991C19.2701%2018.9056%2018.9085%2018.8156%2018.5812%2018.6291C18.2538%2018.446%2018.0103%2018.193%2017.8506%2017.8701C17.6928%2018.3318%2017.4311%2018.689%2017.0655%2018.9417C16.7%2019.1943%2016.2731%2019.3247%2015.7849%2019.3326C15.4005%2019.3389%2015.0271%2019.2645%2014.6646%2019.1094C14.306%2018.9577%2014.0195%2018.7448%2013.8051%2018.4707C13.5946%2018.2001%2013.4678%2017.8629%2013.4248%2017.4593C13.3984%2017.2062%2013.3896%2016.5947%2013.3986%2015.6249L13.3986%2012.9213L21.8957%2012.9213ZM20.4627%2014.4661L18.508%2014.498L18.4909%2015.4954C18.4807%2016.0883%2018.484%2016.4566%2018.5007%2016.6002C18.5309%2016.8601%2018.6273%2017.0624%2018.7901%2017.2071C18.9566%2017.3552%2019.1764%2017.4269%2019.4493%2017.4225C19.7107%2017.4182%2019.9232%2017.3496%2020.0869%2017.2167C20.2544%2017.0872%2020.3576%2016.8954%2020.3965%2016.6412C20.4184%2016.4901%2020.4354%2016.0564%2020.4477%2015.34L20.4627%2014.4661ZM17.101%2014.521L14.8407%2014.558L14.8166%2015.9666C14.8071%2016.515%2014.8185%2016.8626%2014.8505%2017.0094C14.8928%2017.2349%2015.0011%2017.4164%2015.1755%2017.554C15.3537%2017.695%2015.5928%2017.7631%2015.8926%2017.7582C16.1463%2017.754%2016.3625%2017.6957%2016.5412%2017.5831C16.7199%2017.4705%2016.8514%2017.3091%2016.9358%2017.0987C17.02%2016.8917%2017.0681%2016.4421%2017.08%2015.7497L17.101%2014.521Z%22%20fill%3D%22%2340865c%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; -} -.navbar i.icon.icon-undo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C17v-2c0-1.7-1.3-3-3-3H3.7l3.4%2C3.4l-1.4%2C1.4l-5.2-5.2L0%2C11l0.5-0.6l5.2-5.2l1.4%2C1.4L3.7%2C10H17c2.8%2C0%2C5%2C2.2%2C5%2C5v2H20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-redo { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C17v-2c0-2.8%2C2.2-5%2C5-5h13.3l-3.4-3.4l1.4-1.4l5.2%2C5.2L22%2C11l-0.5%2C0.6l-5.2%2C5.2l-1.4-1.4l3.4-3.4H5c-1.7%2C0-3%2C1.3-3%2C3v2H0z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-search { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M19.5%2C16.8L16%2C13.3c0.7-1.1%2C1.1-2.4%2C1.1-3.8C17%2C5.4%2C13.6%2C2%2C9.5%2C2S2%2C5.4%2C2%2C9.5S5.4%2C17%2C9.5%2C17c1.4%2C0%2C2.7-0.4%2C3.8-1.1l3.5%2C3.5c0.7%2C0.7%2C1.9%2C0.7%2C2.6%2C0C20.2%2C18.7%2C20.2%2C17.6%2C19.5%2C16.8z%20M9.5%2C15.3c-3.2%2C0-5.8-2.6-5.8-5.8s2.6-5.8%2C5.8-5.8s5.8%2C2.6%2C5.8%2C5.8S12.7%2C15.3%2C9.5%2C15.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-burger { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-8%201%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M-6%2C6v2h18V6H-6z%20M-6%2C13h18v-2H-6V13z%20M-6%2C18h18v-2H-6V18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-plus { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M21%2C12h-9v9h-2v-9H1v-2h9V1h2v9h9V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-edit { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M0%2C20h22v1H0V20z%22%2F%3E%3Cpolygon%20points%3D%2217.1%2C3.1%203.5%2C16.7%203%2C20%206.3%2C19.5%2019.9%2C5.9%20%09%22%2F%3E%3Cpath%20d%3D%22M20.5%2C5.3L22%2C3.8c0%2C0-0.2-1.2-0.9-1.9C20.4%2C1.1%2C19.2%2C1%2C19.2%2C1l-1.5%2C1.5L20.5%2C5.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-settings { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpath%20d%3D%22M12.1%2C2H9.9C9.6%2C2%2C9.4%2C2.2%2C9.3%2C2.5L8.8%2C4.9c0%2C0.2-0.2%2C0.3-0.3%2C0.3s-0.1%2C0-0.2-0.1L6.2%2C3.8C6.1%2C3.7%2C6%2C3.7%2C5.8%2C3.7c-0.1%2C0-0.3%2C0-0.4%2C0.1L3.8%2C5.4c-0.1%2C0.2-0.2%2C0.5%2C0%2C0.8l1.3%2C2.1c0.1%2C0.2%2C0.1%2C0.4-0.2%2C0.5L2.5%2C9.3C2.2%2C9.4%2C2%2C9.6%2C2%2C9.9v2.2c0%2C0.3%2C0.2%2C0.5%2C0.5%2C0.6l2.4%2C0.5c0.3%2C0.1%2C0.4%2C0.3%2C0.2%2C0.5l-1.3%2C2.1c-0.2%2C0.2-0.1%2C0.6%2C0.1%2C0.8l1.6%2C1.6c0.1%2C0.1%2C0.3%2C0.2%2C0.4%2C0.2s0.2%2C0%2C0.3-0.1L8.3%2C17c0.1-0.1%2C0.1-0.1%2C0.2-0.1s0.3%2C0.1%2C0.3%2C0.3l0.5%2C2.3C9.4%2C19.8%2C9.6%2C20%2C9.9%2C20h2.2c0.3%2C0%2C0.5-0.2%2C0.6-0.5l0.5-2.4c0-0.2%2C0.1-0.3%2C0.3-0.3c0.1%2C0%2C0.1%2C0%2C0.2%2C0.1l2.1%2C1.3c0.1%2C0.1%2C0.2%2C0.1%2C0.3%2C0.1c0.2%2C0%2C0.3-0.1%2C0.4-0.2l1.6-1.6c0.2-0.2%2C0.2-0.5%2C0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5%2C0.2-0.5l2.4-0.5c0.3-0.1%2C0.5-0.3%2C0.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%2C0.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%2C0-0.3%2C0.1l-2.1%2C1.3C13.6%2C5%2C13.6%2C5%2C13.5%2C5s-0.3-0.1-0.3-0.3l-0.5-2.2C12.6%2C2.2%2C12.4%2C2%2C12.1%2C2L12.1%2C2z%20M11%2C14.5c-1.9%2C0-3.5-1.6-3.5-3.5S9.1%2C7.5%2C11%2C7.5s3.5%2C1.6%2C3.5%2C3.5S12.9%2C14.5%2C11%2C14.5L11%2C14.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-prev { - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%225.1%2C10.9%2013.9%2C2%2016%2C4.1%209.2%2C11.1%2016%2C17.9%2013.9%2C20%205.1%2C11.2%205%2C11.1%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-next { - width: 20px; - height: 20px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%2216.9%2C10.9%208.1%2C2%206%2C4.1%2012.8%2C11.1%206%2C17.9%208.1%2C20%2016.9%2C11.2%2017%2C11.1%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-expand-down { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23fff%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210.9%2C16.9%202%2C8.1%204.1%2C6%2011.1%2C12.8%2017.9%2C6%2020%2C8.1%2011.2%2C16.9%2011.1%2C17%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-collaboration { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M14.9912%206C14.9912%208.18203%2014.4464%209.76912%2013.7789%2010.7492C13.101%2011.7447%2012.4042%2012%2011.9912%2012C11.5782%2012%2010.8814%2011.7447%2010.2035%2010.7492C9.53601%209.76912%208.99121%208.18203%208.99121%206C8.99121%204.23017%2010.4571%203%2011.9912%203C13.5254%203%2014.9912%204.23017%2014.9912%206ZM13.4917%2013.6397C13.0059%2013.8771%2012.4989%2014%2011.9912%2014C11.4861%2014%2010.9817%2013.8784%2010.4983%2013.6434C8.53188%2014.3681%206.94518%2015.0737%205.78927%2015.7768C4.10512%2016.8011%204%2017.4079%204%2017.5C4%2017.7664%204.1014%2018.3077%205.27104%2018.8939C6.50029%2019.5099%208.64545%2019.9999%2012%2020C15.3546%2020%2017.4997%2019.5099%2018.7289%2018.8939C19.8986%2018.3078%2020%2017.7664%2020%2017.5C20%2017.4079%2019.8949%2016.8011%2018.2107%2015.7768C17.0529%2015.0726%2015.4627%2014.3657%2013.4917%2013.6397ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-chart { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M22%203H17V21H22V3ZM9.5%209.00012H14.5V21.0001H9.5V9.00012ZM2%2013H7V21H2V13Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-formula { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4%204H20V9H17V7H8.5L11.5%2012.5L8.5%2018H17V16H20V21H4V19.5L8%2012.5L4%205.5V4Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-shape { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%2215%22%20r%3D%227%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%203C2.44772%203%202%203.44772%202%204V17C2%2017.5523%202.44772%2018%203%2018H8.58152C8.20651%2017.0736%208%2016.0609%208%2015C8%2010.5817%2011.5817%207%2016%207C16.6906%207%2017.3608%207.08751%2018%207.25204V4C18%203.44772%2017.5523%203%2017%203H3Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-image { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.23958%2018L8.09375%2013.5L10.9062%2016.5L14.7604%2012L19.7604%2018H4.23958ZM21.3229%2020.3906C21.7743%2019.9844%2022%2019.5156%2022%2018.9844V5.01562C22%204.48438%2021.7743%204.01562%2021.3229%203.60938C20.8715%203.20313%2020.3507%203%2019.7604%203H4.23958C3.64931%203%203.12847%203.20313%202.67708%203.60938C2.22569%204.01562%202%204.48438%202%205.01562V18.9844C2%2019.5156%202.22569%2019.9844%202.67708%2020.3906C3.12847%2020.7969%203.64931%2021%204.23958%2021H19.7604C20.3507%2021%2020.8715%2020.7969%2021.3229%2020.3906ZM8%2011C9.10457%2011%2010%2010.1046%2010%209C10%207.89543%209.10457%207%208%207C6.89543%207%206%207.89543%206%209C6%2010.1046%206.89543%2011%208%2011Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0.000477791%200H24.0005V24H0.000477791V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-add-other { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2012C7%2013.6569%205.65685%2015%204%2015C2.34315%2015%201%2013.6569%201%2012C1%2010.3431%202.34315%209%204%209C5.65685%209%207%2010.3431%207%2012ZM15%2012C15%2013.6569%2013.6569%2015%2012%2015C10.3431%2015%209%2013.6569%209%2012C9%2010.3431%2010.3431%209%2012%209C13.6569%209%2015%2010.3431%2015%2012ZM20%2015C21.6569%2015%2023%2013.6569%2023%2012C23%2010.3431%2021.6569%209%2020%209C18.3431%209%2017%2010.3431%2017%2012C17%2013.6569%2018.3431%2015%2020%2015Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.navbar i.icon.icon-close-comment { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.9844%206.42188L13.4062%2012L18.9844%2017.5781L17.5781%2018.9844L12%2013.4062L6.42188%2018.9844L5.01562%2017.5781L10.5938%2012L5.01562%206.42188L6.42188%205.01562L12%2010.5938L17.5781%205.01562L18.9844%206.42188Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); -} -.chart-types .thumb.bar-normal { - background-image: url('../img/charts/chart-03.png'); -} -.chart-types .thumb.bar-stacked { - background-image: url('../img/charts/chart-02.png'); -} -.chart-types .thumb.bar-pstacked { - background-image: url('../img/charts/chart-01.png'); -} -.chart-types .thumb.line-normal { - background-image: url('../img/charts/chart-06.png'); -} -.chart-types .thumb.line-stacked { - background-image: url('../img/charts/chart-05.png'); -} -.chart-types .thumb.line-pstacked { - background-image: url('../img/charts/chart-04.png'); -} -.chart-types .thumb.hbar-normal { - background-image: url('../img/charts/chart-09.png'); -} -.chart-types .thumb.hbar-stacked { - background-image: url('../img/charts/chart-08.png'); -} -.chart-types .thumb.hbar-pstacked { - background-image: url('../img/charts/chart-07.png'); -} -.chart-types .thumb.area-normal { - background-image: url('../img/charts/chart-12.png'); -} -.chart-types .thumb.area-stacked { - background-image: url('../img/charts/chart-11.png'); -} -.chart-types .thumb.area-pstacked { - background-image: url('../img/charts/chart-10.png'); -} -.chart-types .thumb.pie { - background-image: url('../img/charts/chart-13.png'); -} -.chart-types .thumb.doughnut { - background-image: url('../img/charts/chart-14.png'); -} -.chart-types .thumb.pie3d { - background-image: url('../img/charts/chart-22.png'); -} -.chart-types .thumb.scatter { - background-image: url('../img/charts/chart-15.png'); -} -.chart-types .thumb.stock { - background-image: url('../img/charts/chart-16.png'); -} -.chart-types .thumb.line3d { - background-image: url('../img/charts/chart-21.png'); -} -.chart-types .thumb.bar3dnormal { - background-image: url('../img/charts/chart-17.png'); -} -.chart-types .thumb.bar3dstack { - background-image: url('../img/charts/chart-18.png'); -} -.chart-types .thumb.bar3dpstack { - background-image: url('../img/charts/chart-19.png'); -} -.chart-types .thumb.hbar3dnormal { - background-image: url('../img/charts/chart-25.png'); -} -.chart-types .thumb.hbar3dstack { - background-image: url('../img/charts/chart-24.png'); -} -.chart-types .thumb.hbar3dpstack { - background-image: url('../img/charts/chart-23.png'); -} -.chart-types .thumb.bar3dpsnormal { - background-image: url('../img/charts/chart-20.png'); -} -[applang=ru] i.icon.sortdown { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%3C%2Fstyle%3E%3Cpath%20d%3D%22M18.9348%2011H20L17.0016%203H15.9984L13%2011H14.0652L14.8824%208.71033H18.1176L18.9348%2011ZM16.4831%204.21414H16.5169L17.8188%207.86209H15.1812L16.4831%204.21414Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.0018%2017.0249V13.8981H16.2384C15.6654%2013.8981%2015.2218%2014.033%2014.9076%2014.3028C14.597%2014.5726%2014.4418%2014.957%2014.4418%2015.456C14.4418%2015.9587%2014.597%2016.3467%2014.9076%2016.6202C15.2218%2016.89%2015.6654%2017.0249%2016.2384%2017.0249H18.0018ZM16.3937%2017.9231L14.1867%2021H13L15.2957%2017.8011C14.7264%2017.6681%2014.2699%2017.3927%2013.9261%2016.9751C13.586%2016.5537%2013.4159%2016.0474%2013.4159%2015.456C13.4159%2014.7316%2013.6543%2014.1421%2014.1312%2013.6875C14.6118%2013.2292%2015.2274%2013%2015.9778%2013H19V21H18.0018V17.9231H16.3937Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -[applang=ru] i.icon.sortup { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E.st0%7Bfill%3A%2340865c%7D%3C%2Fstyle%3E%3Cpath%20d%3D%22M6.02377%2019.1638L8.28524%2017.1471L9%2017.8788L5.5%2021L2%2017.8788L2.71476%2017.1471L4.97623%2019.1638V3H6.02377V19.1638Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.9348%2021H20L17.0016%2013H15.9984L13%2021H14.0652L14.8824%2018.7103H18.1176L18.9348%2021ZM16.4831%2014.2141H16.5169L17.8188%2017.8621H15.1812L16.4831%2014.2141Z%22%20class%3D%22st0%22%2F%3E%3Cpath%20d%3D%22M18.0018%207.02495V3.89813H16.2384C15.6654%203.89813%2015.2218%204.03303%2014.9076%204.30284C14.597%204.57265%2014.4418%204.95703%2014.4418%205.45599C14.4418%205.95865%2014.597%206.34673%2014.9076%206.62024C15.2218%206.89004%2015.6654%207.02495%2016.2384%207.02495H18.0018ZM16.3937%207.92308L14.1867%2011H13L15.2957%207.80111C14.7264%207.66805%2014.2699%207.3927%2013.9261%206.97505C13.586%206.55371%2013.4159%206.04736%2013.4159%205.45599C13.4159%204.73158%2013.6543%204.14207%2014.1312%203.68746C14.6118%203.22915%2015.2274%203%2015.9778%203H19V11H18.0018V7.92308H16.3937Z%22%20class%3D%22st0%22%2F%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-center { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M4%2C7v1h14V7H4z%20M1%2C12h21v-1H1V12z%20M4%2C15v1h14v-1H4z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-jast { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M1%2C8h21V7H1V8z%20M1%2C12h21v-1H1V12z%20M1%2C16h21v-1H1V16z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-left { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M15%2C7H1v1h14V7z%20M1%2C12h21v-1H1V12z%20M15%2C15H1v1h14V15z%20M1%2C20h21v-1H1V20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-align-right { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C3v1h21V3H1z%20M8%2C8h14V7H8V8z%20M22%2C11H1v1h21V11z%20M8%2C16h14v-1H8V16z%20M22%2C19H1v1h21V19z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-de-indent { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M11%2C15h11v1H11V15z%20M11%2C11h11v1H11V11z%20M11%2C7h11v1H11V7z%20M6.3%2C7L7%2C7.7l-3.8%2C3.8L7%2C15.3L6.3%2C16L2%2C11.8l-0.2-0.3L2%2C11.2L6.3%2C7z%20M1%2C3h21v1H1V3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-in-indent { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-left { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-center { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%228.08%22%20width%3D%2212%22%20height%3D%2210.92%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-block-align-right { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2225%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%2222%22%20width%3D%2226%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2215%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-top { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2212%2018%2011%2018%2011%207.83%208.65%209.8%208%208.94%2011.5%206%2015%209%2014.35%209.8%2012%207.83%2012%2018%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-middle { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2210%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2212%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2211%202%2012%202%2012%207.17%2014.35%205.2%2015%206.06%2011.5%209%208%206%208.65%205.2%2011%207.17%2011%202%22%2F%3E%3Cpolygon%20points%3D%2212%2021%2011%2021%2011%2015.83%208.65%2017.8%208%2016.94%2011.5%2014%2015%2017%2014.35%2017.8%2012%2015.83%2012%2021%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish i.icon.icon-text-valign-bottom { - background-color: transparent; - -webkit-mask-image: none; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%2340865c%22%3E%3Cg%3E%3Crect%20x%3D%222%22%20y%3D%2218%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2220%22%20width%3D%2219%22%20height%3D%221%22%2F%3E%3Cpolygon%20points%3D%2211%204%2012%204%2012%2015.17%2014.35%2013.2%2015%2014.06%2011.5%2017%208%2014%208.65%2013.2%2011%2015.17%2011%204%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish .item-content.buttons .item-inner > .row .button.active { - background-color: #c7e8d1; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=textRect] .thumb { - background-image: url('../img/shapes/shape-01.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=line] .thumb { - background-image: url('../img/shapes/shape-02.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=lineWithArrow] .thumb { - background-image: url('../img/shapes/shape-03.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=lineWithTwoArrows] .thumb { - background-image: url('../img/shapes/shape-04.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rect] .thumb { - background-image: url('../img/shapes/shape-05.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=hexagon] .thumb { - background-image: url('../img/shapes/shape-06.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=roundRect] .thumb { - background-image: url('../img/shapes/shape-07.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=ellipse] .thumb { - background-image: url('../img/shapes/shape-08.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=triangle] .thumb { - background-image: url('../img/shapes/shape-09.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rtTriangle] .thumb { - background-image: url('../img/shapes/shape-10.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=trapezoid] .thumb { - background-image: url('../img/shapes/shape-11.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=diamond] .thumb { - background-image: url('../img/shapes/shape-12.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=rightArrow] .thumb { - background-image: url('../img/shapes/shape-13.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=leftRightArrow] .thumb { - background-image: url('../img/shapes/shape-14.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=leftArrow] .thumb { - background-image: url('../img/shapes/shape-15.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=bentUpArrow] .thumb { - background-image: url('../img/shapes/shape-16.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=flowChartOffpageConnector] .thumb { - background-image: url('../img/shapes/shape-17.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=heart] .thumb { - background-image: url('../img/shapes/shape-18.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=mathMinus] .thumb { - background-image: url('../img/shapes/shape-19.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=mathPlus] .thumb { - background-image: url('../img/shapes/shape-20.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=parallelogram] .thumb { - background-image: url('../img/shapes/shape-21.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=wedgeRectCallout] .thumb { - background-image: url('../img/shapes/shape-22.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=wedgeEllipseCallout] .thumb { - background-image: url('../img/shapes/shape-23.svg'); - background-color: transparent; -} -.sailfish .dataview.shapes .thumb { - -webkit-mask-image: none !important; -} -.sailfish .dataview.shapes [data-type=cloudCallout] .thumb { - background-image: url('../img/shapes/shape-24.svg'); - background-color: transparent; -} -.navbar-hidden + .navbar-through > .page.editor { - padding-top: 0; -} -.navbar-through > .page.editor { - padding-top: 56px; - transition: padding-top 400ms ease-in; -} -.navbar-through .page > .searchbar { - top: 86px; -} -.navbar-through .page #cell-editing-box.expanded + .searchbar { - top: 126px; -} -.flex-horizontal { - display: flex; - flex-direction: column; - align-items: stretch; -} -.flex-vertical { - display: flex; - flex-direction: row; - align-items: stretch; -} -.small-picker .picker-item { - font-size: 14px; - padding: 0; -} -#cell-editing-box { - box-sizing: border-box; - position: relative; - height: 30px; - min-height: 30px; - transition: min-height 0.1s; - background-color: #fff; - display: flex; - z-index: 500; -} -#cell-editing-box * { - box-sizing: border-box; -} -#cell-editing-box:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 #cell-editing-box:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 #cell-editing-box:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -#cell-editing-box.expanded { - min-height: 70px; - transition: min-height 0.1s; -} -#cell-editing-box .btn { - border: 0 none; - height: 30px; -} -#cell-editing-box .ce-group { - overflow: hidden; - height: 100%; - position: relative; -} -#cell-editing-box .group-name { - display: inline-flex; - background-color: #f1f1f1; - z-index: 1; -} -#cell-editing-box .group-content { - position: relative; - padding-left: 1px; - flex-grow: 1; -} -#cell-editing-box .group-content:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - width: 1px; - height: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 0% 50%; - transform-origin: 0% 50%; -} -html.pixel-ratio-2 #cell-editing-box .group-content:before { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 #cell-editing-box .group-content:before { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -#cell-editing-box .group-name, -#cell-editing-box .group-content, -#cell-editing-box .group-expand { - z-index: 1; -} -#cell-editing-box .group-functions-list { - position: absolute; - height: 30px; -} -#cell-editing-box #ce-cell-name { - display: inline-block; - width: 90px; - padding: 0 4px; - border: 0 none; - line-height: 30px; - text-align: center; -} -#cell-editing-box #ce-cell-name[disabled] { - color: #848484; - opacity: 0.5; -} -#cell-editing-box #ce-function { - height: 30px; - line-height: 30px; - padding: 0 10px; -} -#cell-editing-box #ce-btn-expand { - width: 30px; - background-color: #fff; - padding: 0 2px 0; -} -#cell-editing-box #ce-btn-expand .caret { - display: block; - transition: transform 0.1s ease; - width: 16px; - height: 16px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000%22%3E%3Cg%3E%3Cpath%20d%3D%22M20.5%2C6.5l1.1%2C1.1L11%2C18l0%2C0l0%2C0L0.5%2C7.5l1.1-1.1l9.5%2C9.5L20.5%2C6.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -#cell-editing-box #ce-btn-expand.collapse .caret { - transform: rotate(180deg); -} -#cell-editing-box #ce-cell-content { - display: block; - width: 100%; - padding: 3px 3px; - line-height: 1.428571429; - color: #000; - vertical-align: middle; - background-color: #fff; - height: 100%; - resize: none; - min-height: 30px; - border: 0 none; - font-size: 16px; -} -#cell-editing-box #ce-cell-content[disabled] { - color: #848484; - opacity: 0.5; -} -#cell-editing-box #ce-cell-name, -#cell-editing-box #ce-cell-content { - border-radius: 0; -} -#cell-editing-box.expanded .group-functions-list.opened { - top: 70px; -} -.group-functions-list { - width: 100%; - background-color: #fff; - top: 0; - transition: top .2s; -} -.group-functions-list:after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - right: auto; - top: auto; - height: 1px; - width: 100%; - background-color: #c4c4c4; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; -} -html.pixel-ratio-2 .group-functions-list:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .group-functions-list:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.group-functions-list.opened { - top: 30px; -} -.group-functions-list:not(.opened) { - display: none; -} -.group-functions-list ul { - white-space: nowrap; - overflow: hidden; - padding: 0; - margin: 0; -} -.group-functions-list ul > li { - display: inline-block; -} -.group-functions-list ul > li > a { - line-height: 30px; - padding: 0 8px 0; -} -.phone #cell-editing-box #ce-cell-name { - display: none; -} -.statusbar { - position: relative; - box-sizing: border-box; - background-color: #f1f1f1; - z-index: 11; - height: 30px; - min-height: 30px; -} -.statusbar * { - box-sizing: border-box; -} -.statusbar:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: auto; - right: auto; - height: 1px; - width: 100%; - background-color: #cbcbcb; - display: block; - z-index: 15; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; -} -html.pixel-ratio-2 .statusbar:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); -} -html.pixel-ratio-3 .statusbar:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); -} -.statusbar #box-addtab { - float: left; -} -.statusbar .button { - border: 0 none; - border-radius: 0; - color: #000; - font-size: 18px; - line-height: inherit; - min-width: 48px; -} -.statusbar .button:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: #cbcbcb; - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .statusbar .button:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .statusbar .button:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.statusbar i.icon { - width: 22px; - height: 22px; -} -.statusbar i.icon.icon-plus { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23000%22%3E%3Cg%3E%3Cpath%20d%3D%22M22%2C12H12v10h-1V12H1v-1h10V1h1v10h10V12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.box-tabs ul { - margin: 0; - padding: 0; - white-space: pre; - overflow: hidden; -} -.box-tabs ul > li { - list-style: none; - display: inline-block; - position: relative; -} -.box-tabs ul > li:after { - content: ''; - position: absolute; - right: 0; - top: 0; - left: auto; - bottom: auto; - width: 1px; - height: 100%; - background-color: #cbcbcb; - display: block; - z-index: 15; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; -} -html.pixel-ratio-2 .box-tabs ul > li:after { - -webkit-transform: scaleX(0.5); - transform: scaleX(0.5); -} -html.pixel-ratio-3 .box-tabs ul > li:after { - -webkit-transform: scaleX(0.33); - transform: scaleX(0.33); -} -.box-tabs ul > li:not(.active) a { - opacity: 0.5; -} -.box-tabs ul > li a { - display: inline-block; - font-size: 12px; - padding: 0 10px 0; - line-height: 30px; - margin-right: -1px; - outline: none; - color: #000; - height: 100%; -} -.box-tabs ul > li a:hover { - cursor: pointer; -} -.box-tabs .locked a { - box-shadow: inset 0 2px #f00; -} -.sailfish #cell-editing-box { - display: block; -} -.sailfish #cell-editing-box .group-content { - position: absolute; - top: 0; - left: 42px; - right: 30px; -} -.tablet.sailfish #cell-editing-box .group-content { - left: 132px; -} -.sailfish #cell-editing-box .group-expand { - position: absolute; - top: 0; - right: 0; -} -.sailfish #cell-editing-box #ce-btn-expand .caret { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2216px%22%20height%3D%2216px%22%20fill%3D%22%23000%22%3E%3Cg%3E%3Cpath%20d%3D%22M20.5%2C6.5l1.1%2C1.1L11%2C18l0%2C0l0%2C0L0.5%2C7.5l1.1-1.1l9.5%2C9.5L20.5%2C6.5z%22%20transform%3D%22matrix(0.743684%200%200%200.743684%20-0.299854%20-0.590536)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -.sailfish .statusbar { - position: absolute; - bottom: 0; - width: 100%; -} -#editor-navbar.navbar .right { - padding-right: 4px; -} -#editor-navbar.navbar .right a.link, -#editor-navbar.navbar .left a.link { - padding: 0 13px; -} -.logo-navbar { - height: 80px; -} -.logo-navbar .navbar-inner { - top: 24px; - height: 56px; -} -.navbar-through > .page.editor.with-logo { - padding-top: 80px; -} -.navbar-hidden + .navbar-through > .page.editor.with-logo { - padding-top: 0; -} -#add-table .page, -#add-shape .page { - background-color: #fff; -} -.container-add .categories i.icon { - opacity: 0.5; -} -.container-add .categories .active i.icon { - opacity: 1; -} -.table-styles .row, -.table-styles .row li { - margin-bottom: 12px; -} -.table-styles li { - margin: 0; - padding: 1px; -} -.table-styles li img { - width: 70px; - height: 50px; -} -.shapes li { - width: 70px; - height: 70px; - margin: 0 1px; -} -.shapes li .thumb { - width: 100%; - height: 100%; - background-color: #40865c; -} -.chart-types li { - width: 60px; - height: 60px; - margin: 6px; -} -.chart-types li .thumb { - width: 100%; - height: 100%; - background-size: contain; -} -.cell-styles.dataview .active:after { - right: 2px; - bottom: 2px; -} -.cell-styles.dataview .row { - padding: 5px 0; -} -.cell-styles.dataview .row li { - border: 1px solid rgba(0, 0, 0, 0.12); - padding: 2px; -} -html.pixel-ratio-2 .cell-styles.dataview .row li { - border: 0.5px solid rgba(0, 0, 0, 0.12); -} -html.pixel-ratio-3 .cell-styles.dataview .row li { - border: 0.33px solid rgba(0, 0, 0, 0.12); -} -.cell-styles.dataview .row li .thumb { - width: 112px; - height: 38px; - background-size: contain; -} -.modal.modal-in { - max-height: 100%; - overflow: auto; -} -.filter-root-view .list-center .item-title { - text-align: center; - width: 100%; -} -.filter-root-view #btn-delete-filter { - color: #f44336; -} -[data-page="regional-settings-view"] .list-block .item-title-row { - justify-content: space-between; - align-items: center; - display: flex; - width: 100%; -} -[data-page="regional-settings-view"] .item-title { - font-weight: 400; - white-space: normal; - order: 1; -} -.icon.lang-flag { - order: 2; - width: 16px; - height: 12px; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAADMCAYAAAA1UiDlAAATR0lEQVR42u2dBVgUQRTH1xZBbMFOsLsJG7u7uzEQLOzCAgPs7u7upsHuIuxAbCn1777FxeW4O46dO0J53/f/Zndmnt/77byJu1uVY7UiXcfB19dXtrbkyaMoaVus4nw3c2ARV38AuPZT8S00HHE1McgrhQtHk2h0rU4CgPgHyBH5igCk9eevxT8APUX4ypN0BESVtl2WZEdAKkqpJDkCJI1TigBIMo18dTcChZqP1MSfFUA3IzC1ipWmDyDxzQG3oqbUFh8AWt0HpCkTvwCsRgBiyiRJgHX58ouBMIjhKMEbmMRopiXtoELxBNBtiSBvb+9vVMZVFChZucqLFEtNllEtAdidBBmVpDis4wRAwSqTxnMADFK2ERGEJhJHQNnT13wEfDkOkCnfhB8BnQBoLvY5wAigPIWS5AjIEfkm+GGOOQDGsxgzAD1FJiX8cZrRWI8d7KfRBDflwxpDZ3KbKBXzE+xSRlEaf39E4pStIsrsXaGyiiIA9klIQY+sHk3KTLl/0gdIBmBdBpMBkgGSOoAYgByRb5IHSAZgPUpQACxiP0pQo4+Pj6ID1Uml7jcuJvlynFTipzQq6T5WCQBkv379SpAPJAqfCKWfh+letaQAFPyPHz/g5eUFa2trqDJbW1ucPXs28QGQhYeHo1+/fnjx8iUiPn/FM4eV8DapD+8CteA/eh7Cgz7gzbt3IiBBJy4AMYXCeJCg1XtxKZUp3LiCfKcC8OHy4P2MFQiPCGf9iUgTfwLQ2D8qhUR7+/YT9nUejatcbtzKUA72+VujpWFj7K7TDxGPAyAxmtza+lpFjsg3JkBA0Bf06bMQ/dPXRt+CHWBQdTy4onbo1mo6wr5+ZwDQ4QhIU4jmguNub3CmI8GZkGzA5R+CCctOU5u2U0h7cyAiIkKYxG9ev8aHz98x1uU4jGtPRQ7zSRg8c6/4uy9NYoLVVgpoD4BMuoxKd4Ufv6Ito4kSQM5mRnMgoQHifJSQ1okALNLOUYJFjV0aMymVST9FKfsCTf1hTq6JAF2Pd42hHse74NSlOiS6VtpHBEhddpJUyr7GVLaT6w5gwIlOuOlmjl/e5Uh0TXVJA8DuVHs8da2OOaMHomatebCsOY+uqY7aEjfArDMt8cWrIuaOHsCvJM7RtGh8X2qjPokTYN35xojwLi+kTJcuKzFp6incufsGX76EoUWbjTQa1Cb0Wc/31RoA63FYBFgvAaBgpU/fYc55fP34LnEDkGarSKE9+25hoX0/aqM+1DcxAoiTuB0/YavRxKUJTKJrqqM26pO4AcRl9JZkGb0lWUaTBIB0Izuty41MBGBQ4jhKJKQMW0yTSho03ccm9n2A1Z+CyNp7oyhp2tC9OmkX4OuiZTDouUkqjfyTAfTyeUG/aIQska8YwOQ6AzFr/w2SCKBRAIxvCmgPYHiDEcjRfa0YPF0nLYBiXZdh6/aLcNx3FTn54At0W5WkAOSIfFnnAPsLT8dyFcazAqXkiHz/DYBkAAZRECxiP0ocNswLFmVouphJk1KWZZIAEJC1iCyJABl7nJAlEWBNKjM5+kcBAo2L4/PKDYgIeIaPTkvw0rJp0gL4vGI9fn76jOcVa0fWZSuKT84rCSxpAPwM/oDPqzdF3X/ZtBNkX3cd0AkA42k4doDXrXvg6+6DeDfITilAQr/5qzyFPn4SU0gqXQDocBIH8pPYcTFeWDRJQgDKpXOAZAAGURAsYj9KsAXAfphjPUxybCnAfpxmOM7rHuBN07J4Uba0PABDQ4hG1wkC8HlpRQSPKy8PQF8fotG1SgDGtw6VAgQNLicE/jO4GsJuVKFrqtMMIFOmSOXPD9HoWqyPFwBKnQj/qsDP6iQB4pVlGc0A1JvOAaTpIwKITz9pAYReikwdAvm6pRLV6SaFWJdBFf6UMkqumSexzgGUi30ZTeQAciQFYFDCHyVYXzhK16yUMmn8I6GHgRGTONZXvihYvZ5VFaXxz7QURFimfLKkCJAMYNi7KmasNsfcdeZ4PaciAkeUxVXTIroFYH1zVgowaokZHNebR45AkcK4a1UcgcPK6vZft2F9bVIKYL/MTChFoyCf25fXJYB2R2DSikiA8+dvRQG8nldJlwDanQMjnM1QbUz1aEE+tSuXdAAy9akKGxczzOPnwbNR5fB8fHlcLfrPL6PJAEn8KDHJICtYxP2xz1blQWWJEiVy8hrCay2vPVTSPdVL+4nmkj0PJpqYYdfKrRhhswxGufoga/aewgOkNhJdUx21UR/qSz7UJgCsyWQkSyKAFKJMmTLLGjVqNKJOnTpONWrUWM2X85s0aTKM6hWDJ5vXbzw25S6Lg7lMsKHtCNy+5o/2HVaDTDyxklHdrav+1If6Cj7kqzWAChUq5KxSpcoKCtLCwsLp1atXJWvXrr2YSrqner59JfWTAnTsNBs+7g8xvnQnHOAD25qvPE7O2xADgOqojfrYl+oo+HTsPAec765KwO3askS+YiB8kMMnTJjQqXv37gMoWP7p25ibm+/gyxF036VLF+uJEyd24fsNkwJQaphZOMHbJwDj+i3H7FzmFHQMACqpjfpQX/Ih3xgAt52yYFjF1Dg1yiBOAPXq1Vvt5+eXo2nTpvYA8lDQzZo1W0ol3Tdv3tye2vl+a6QA6jYyEUD9RqYI4JgFG9etwfpeY+IEwOf9Lisrq6F8vq+tX7++NYmCF6+pntqpn8IkpiBliXyjAezrb4zL6bPBcPBGuLm549nhkhoDtG/ffv379++L9OvXbxqAghR8p06dllBJ91RP7W3btl2vM4DDhw+jk1lJ1K5fB30bV4CLi7PGANbW1pPbtWtnPnLkyH4UdJs2bYbzUNv50obuhw8fPpjaqZ8OUoh9Eh89erRS165dV1KwvXv3dnzz5o0J/9SX8KUp3VM9376C+sWYxOaOfybxCszKZaFyElMb9fHyDhB8yFdryyiAdBQkH/TqcePG2fbs2XPCwIEDV/DleHt7exuqp3bqJwXo0HE2rno9xvgyf5fRE3NjLqNUJy6j1NfX4xHIV2sAf4LL5OHhYWlnZzeWD34TH/ReKm1tbcdQPbVTP8WNbOOfjWxjm+FqNzJqoz5CX+lGxiJOwQCkpUnLi4gqU0n3VC/2UXeUMM6t+ihBbdRn54otf48SzGa/FizaZVgAxzIVliXy5YYXtkDNSjMxwX4bEQkl1Y0obIZsJv1ilRDIcldZIt+thvlxNYupLJEvN79mA+xv2RVuF58K+eYzYCAONO8EF0cvGJedFE1kkvtEAaBuI1EEICU+gIXz9+NSz764YzdMCPrunXdw7dGL6lQ+eTIR4DBXEgFc5eiqMRjfPO+Q6JrqlIl82QEo3x1LNcKq5dcIQCib195KdRqNAAVxlzPHvT+iwMJfBeF556l4yDXCa/uVCAt8hcAmo3UDQEFQMJqKLFaA52/xopcDHnD18XrscgEooPZwZQDMX6uIADKkOoUC69lQ0CS6Fut1D0AWV4AUTm2QYv9AOSLf+B0BskQJwKCEB2A1CoJFt27dQmBgoCyRL0cULOIS2liHMHefucg7yCVKZwtmxQNvPY105ZwebnAc/KXy91craV/yZQfoPRsF7Xfix1t9DF3dH49Mcmis/fmzqH5X4udPYNcuYMMGICJC+bsS2gQgDVs+mgIjGI3kfVpPNcDr10CaNJF1Dx+qBuDGdQK3bLgska8UYNqutuwjEBQETJsG2NtHvtyhrw9MmABMmQI8f647AHqi/deOYh+Be/f+XuvpAenT/7338tLtCIzY2It9BCjfbW0Bxfq+fYHQUN0C9Fw8TntzYPRooEEDoGFDYPBgmtTK58Du/Ia4a5pVlshXBLh/JTNc9jSL2wjky/pLFQAZpRNJNF0A6HYfOHOGpG4fYAfgEtooCBZx/73ZbAQ3Zoegw+7X392/f18jPXjw4JO3t/cTjvKQG9xU0P1bd3Bj22Y+jw000tEC+jCYYnYv5Uqrt0Nal3xxQ18fUt27dy+EpFhv3arki5QrrN7q875Gk7aEcw7nIWr2JT+EhoZqJB8fn3BuuVNaYUnjJnYWhLAIhLhegL+pYaw6lF8fCyoWiqjn3BB6nt1RdUUTeFY2AfSy4GMKDqJ9oOv0meFV2RTVlzWBnkc31HFpiAWVCkUcv+Aa1PXQfXBzXaPUYO8deL4Hdp04JSg4FErN09MziOMNZ/enlwVBAO4ZMuBu1jQY1dII3LrKyLm6MmwaZUZIxowQja5trQxhtKoS36cKbFsZ4x7vQ76enhQqsPnWG2Rf5BkFoe9wC4WbjhU0efsLVQDvBQAVELHK18OLgqAABR2pkAf15lmC29cQJfsVhWil+GtunxXqOFrgcMU8+J7RkPpHAyB79S0cXff/GY3+rrCdOERQ/7k31QMogdBMfRsyfyTkv3Z/CwVbevstMgw7juIjLqLGBA8UGnYCmx+8TrQAr6DEDl/3RykrWzSsPxKc3QFhVAYcuY8PYT90l0KkenMphRrETKG9DSiFqI80hQjgNZTYt3ueOJ+XE1R93CwCEJR3iRf2PgiSAigP/tIlfxjkdVKrDDltRIDYJ3GDTJGTeH20SaxyBD4EvcWBRXME+dy9B7M9DwkgSv1PPMZ5V/cgWkZlBS8FiFxGu0Uuo1WEZTQGAC2j3rSMLv+zjC6OXEbp/3BStc5/5xUUdf8dU87yEDPFPYPX8LWIsZFt3Ho2LIPxWGgkI1umjYx8vby8HtKuqukOvOvSlXfizi3s4smW0Caex+WIfC+kM8KV9MayRL7MAKzv759OlxNv9fLKEvluLFgc+4uUiqYUjWcrlWI/8lUJcNG8BWaYd0ef9sNw3rKVzgDWFDCFq0l53O5eGJeLlReUovWyv2q1VLymNqnIV/UXW0s2XsbcYm0wrUp77HXeobN/okoAKFUOr9Zm1S4AjhwEFswC5s4G9u9RGYC7u/tzVgCvGqUEAM8qpbUIsG0T4LwIWLIY2LROpyPgP9UY9/oWQOBsI0UAknoAjhsEjpseQ72qzwZmTQEcJqOv2Wylfci3oMMhFN/mL0vkS0F8OKiPV0uy4tPJDNoDyJlrIYaWH4NhvIzzOOsU4JljDvhNMsaLpdk0TiHXYuVEAGtwnK1MWaPQnOMo4nxZjsiXfRlNtqRuW8pUxP7yVWSJfGX+yEdfMwbzJ9kb3I0bN+hGlsh3XanycK9qIUvkS9/taO3v0CzY4omF2zzj9AdEAVQyg7ulFc7UrQXXeg3hXqOWJgDa+0tAN/1fIX/bVcjffjVuBryKM4BrdUscc2qLk5Nq4NiCZrhcs06cAb4+CcTnPHnxuWsPfLOxQ1DOPIi4eVM9QI5mDsjdcxsKNHTGUbcHOHT5Hl1TXawi3wyVesCg9hjUMh+IY8OrwHunFS7ZlkBbi75Ur1bkq1dzOvRbbBLUtf9ahObMjC/LVyP06Am8zWmEpcOcqU2pyDcKgGu+HaXsj6MkL7rmWvNqs0OtRID0tcZi/ZTFuDNvHq4tcIG/y0Jsm75YMWC+nyjlAJNsVuNj6XLAiSPADU98r24B524zNQPI3Wc7srTegKxtNtB1nEdg4foj8H8cCM+JM/D+TRDWbD0e5xGwnrAP4Digc2uEDh0ApOKwauJ69QC+9FNmtmyyRL5RAOMW4mnga7iPHoO3AS+xzWVrnAFKddmM2Za2sMzTH2Z5hsG64iC0Gb5dtwDiJHxxaCeOtjDBA48bOG/TCI82LNdoETiXMz+C85pEaXPv2eBangVXZiecpu5DcH5Tqlcq8uVuZM4M/yxZZIl8RYAf377i0QoHPLvoigcrHfCTv9cUAEbZooJ6n78YnnToDe/WA/DOtBzVqQVI8JdFKIifRrlVBal7ANb3fdyMCuBmrkJyRL7sAAEBAZCKK2cjiu5jlWuhtCzSDoDUuCpToxSbiQD+JulkKRLAeSu4tUdkiXy1AfC8YVp82ZVKKB8YpEOQfeo4ADhtwBv3bOB2vwe334OXNy8vXp7g9j5A2r03+PIRf39FbP8rx40R7ABC8OSJ7+6pxOAIQnMAmxP24PY8p8D/ancwFp3pgZtuxaiMbN93l29zjwIgX8p1ClaGyFdxBGQAiCOw5wU9dV4+SLnvKkocuCTU4xYnlGaH9yD3AU8e4gYBahNAITC5KSSMAKWIL1Lse4Axp2yFJ+9ypptQTjhtjfKHjlBaEahOAUQ9NtIQoM/xmTzAU0kKXYMen/P5D54Sgm9ydCXyHLgAbt89goyWQjpahVgnsQelCq/byHvwHIodPEH3lF7UrgCQvIyyACT4TswOkNDGfJSgp8Ciwl1MUaRzsWh6+PChUp0wNIyms/r62kkBuUa+FHCeHgWjiSw8DDHsroEBbnEc7kSKIBI3wJewXwgFEBzvAOHh+DZjPj5UtuJVn66pLk4Av34Bz54+hf/DuwgTAfT14wfg28wFCDapFk3fHZfEbQS+f8LhBQPQv1wGnD95MF5HgJ68IgDVxQngztWD2O7QFKMsC2HJDBuQPc5ulHQAHDY4wrRZLTRoXgUu+5aA7En23AmYQvPilkL3XzzHuBnTMMlhLDxeP/qTQhnjexLXlz2JpRau60msockFkC6jSRMAOgRI8keJ30EUzKh5S1XrAAAAAElFTkSuQmCC"); - background-repeat: no-repeat; - background-size: auto; -} -@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 192dpi) { - .icon.lang-flag { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAGYCAYAAAC9Luf4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAQH9JREFUeNrsXQd4FEUbfvf6XXovpEBC7x0FQZqIiBSxwS+CiIiIAopYsXexgIANUYoogkqTLh1BCKGXgCGFENL79bL/zO5dSM8lueNysB/PsntbZjbfO1+d2RkGLqb7XvqMfWlkHyhkEpfUf2HkSLvua71+fb2eq40krgZg47EEJBmVWD3rAbSNCLqhdR87dozbt5HLa723a7du5X4zdjxTG53X6yGJWwHWlQB0XwacuZKFHq98j0VPDMPE/p1xKxEnAd3auKbyY+evH2v0Rjy+eD32nkvhgFDJpbcEAKLG9kI/7TmBXq8uwbm07FtDAi683MQh+qxeBpDoQFQhfbeSShI11hezqSS60eObVgJaf3QVXV1kA1hqA5bVrpLiEtPx68wH0C4ySJAAVxBVST1f/Z4DQ7ABN8AG1KSSbjYvSeJuL+xolUQj3IpBlj3UNTGx4SqYBIKN3gbUpJJuBi9J4q4vbtFqkTJnDuJz698SqQqsmOMRbIAd1ExXiI8v70WstkCwATea7iMt/uXUf6GwmBzTCEaOtKsBVtT58bGxDmmAbmMDKMMp4+/LTcTNRG4hATeTynE7G+BolSNIgJ10s6qcSgA0RhtwM6ucRi8BN7vKqRKAsj1Tgsq5wQB0Hw/GpW8wGGwMUTkf3SIqp9GpoH6FaZiYcAYGixmuEkQ6OqFWe2UdQVHOg3MA0dbPuhgDBrcwSXCLU8u2L9S7Ab5R+GuD6xdBIChVkUg4O69Oe7rRAV0N2RqHCnp0YbmfR2f0MtB9j/n/ym6IBMQnccysD504OqNBddOReY1DBYW0KD3s3r07z/iQPOfXm3mpEkM795hf697RBtD1ElAGAHbeEP7FZm8v74VYzzuSaAsc99gv9ZaApXkLGux9CTaggjqxd3/TSEBcXBy62dEpXlEiHKWCXG0DRHFWBFyxxbmpFDhUAggT2G4u+oNpbNldsAECudQGuIsEOMsNdbkNENr+LW4DYKcX5JT6BRsgkMtTEd2/PExsQK5rKic2IG752AZIYMNUEjc4FytQr+GBDiHaA7NNkACXUtzM21xoAwLsHproDLog2ABBAlxvA+r5gYYjiG00/QEV8vKCBNxIWjndpZ3yF3Y3YV1pA275TnlbQORSCWgMI+NcRY9evepSCXT5mJyVTZqwtzIAEjy60G4GUJ/dHioYMdbuF8iAxq75epymesZ1sP/vf/5H+3R7HSZz4m1AmXRwTWRvwJQjV9p130m9tnHooRAPh/799hp1IRnXCEgAQABAAEAgAYBbl1weCbd2cTIMnz8uSICgggQSABAAEEgAQABAIAEAIQ64wdSd+uF2ZiMdTplqQQIEFSSQAIAAgEACALe2F2TnyDQ6mNUeKmgsfb0O9oaOVZiypjqqy1Q2rp8qpg6jEpxCq067dlhKXFycSxngqPW46kut7f1QPS6O+5yJw2z5WDqpheNUkCu/0aLk0nFB9O+352bCI6XqABzJr2O1GeH09HT06dOH29eVGvKs4AVZGfjggw/i448/5vZ1YWTFZwWqIwBlGfjSSy/VmZFln12zZo0gBXUBoCrm2xhpL9F7bc/YgBPUkZ0AVMf88PBw7rrFaETC0qXYNmIEVrdqxW30OOHHH7lrlOi9Bw8eLAVDUEe1BWIVWm9FFWJjviYjA3seewxMQgK8RCIEiHj8dKdPI/HkSST++isGLF8OZUhIKRC05ddHim5ZACjTbCCUa/kGA3aNGwfZ5csIlJR/TEWAoFsOAWb3+PEYumkTRDJZOUDLllXOD3f1uCAH+fMONcI2FVKWYRdXrIA4MRGBYnG1hdFrVDouEimoqSyB7HBDK1LyH3/Auwbm24iqppQNG9yHA3F0uhK29q2S+LAN30jddndJ5ib8h0CmctokURKKlar+yBH7INScj0G64/A7c8Zt+M/PlnKgTs84aupKreaK/RJwQF55QokssS/me41AiiQYakbOgfGtx92I92gr6Jb6GuHqKKvdAHx7LhD9TIlQsEakigOxQdkLJYyigmSakEHudRdaVYfZUmwt31ETN9Vp5twRw7vik4QCHFV2qPE+s0mDocP7u08TtNcLqmgHGMdksatNRVSMXB95+HZER6lgMhZVW5iRXIuJ8cRDD/WusSyBalBBFRNpNv9dLpfg+2+ewNTpP+Ly5QKIJSqIRFLSMFhO7dCWH0uY/wO5RyqTVoqsq4sF6mMEHUXUCK5qzKkIWxBla71NmvhjzS/P4aXZA9EiVgbWkgmGzeKO6bnfV89AUIhvOTBteSEhFVHHVISttVb8rVBI8dj4vtxWHdmkqKoyBKpFAsoyrL55/ar6EYRouA5uaFkQ6puOLguCLTMqUB3igOqScvaQoHYcFIiVzevXlRry7C0HgL0DjpzpDrqS7PrrCY9s7+lIfrn8+4DYqedcGwg/Z+fgtDIRc/funzkWAFePC/Jv4e+S+vMu5UHcYrLdA9P+fWOJXffRNZrdRgLqS1KGxQQP3sVdpg6Hka1/boZRhtl1Xzc7Zxiuy3xBbglAsNiA5zxTES3Rcb+birVYUBKFLLPM7f4Wtxue3lVWhHd9EkuZT4ke03PdZEUCAM4iMVg8rMrETK9UqBhzpev03Axyjd4jdvn6pG7kBdlDPiITnvG8gjZSNYwmEdbub40tcTFITPfjPanwfNzT/TIe6HsBw5XZaC7RYGFJJAotEgGAhlIrwvRnCfMpCFkFKjy3eAgS0sp7TaeTgrlt/aGWWDBtO1r7qvG+z38cCBeMHoIKqpdnQrZ7lTl4xTuZYz5t+VUxvyzRa8+SewwmMffMy+RZWgYjAFA3sunzR1QZpfr89wOta2S+jS6Se/440KrUbtAyZlRjNwQVVAVRj2Y6cTFDxYZy5z2jRuHIwTEoKTGgsFCLtKtFSLiYjWPHryI+/ir0husM3nw0Bo/0vx5hU+/oHR8dviKuaopJIQBQHfWV5+NxElzRIKsiLVyWjyW//QxfXyWio3zRPDYAvW+PxqSJ3aHRGLFlWwJWrjqOlNQCJFyp/DFhCAH0Te9E/ESCtn16v8YDgKuX8MBLHe3Sh3n5Whiz9RyDT566Vnre31+J4cPa4OEHO2LM6PbYsOk8fly6v0bbIkhANbSXtMxks5KLcoMrqKDWkTmcp1MJmDwtlq+MR9NoP1xIyMaUJ3pgyO0kSEv+utx9NEpe0AhVUKMzwpRBcwtjcczgXe78sB6XS4+7d4soPW7bhgflnff/xm9rT+Hl17ch/czqcs/Gk7JomY2N+Y3WC9KwYswvjsJqTQjMVqVx/x0JaBmRx6mauGNppYynascGxNxXB6Iw4xQiFTu5c/RZWsaXpCxapuAF1YGoGd6kDcJ/JhXxikggJjHhKxJkPbeY0/w4dz6Lu+/dD3Zxe/rbVLwWC5/ZDpnEzEXBi0ggdr6RB2KNPhKmkexrhc05EGiEu2LOBqzZ3wZ/HYlF0jV+DFKzsALc2zMRD/Y9D6nEggTyzFdCKsJxRBn5UVFTPKjKxDAS2Y4bcJbbqpKav7SBWFNGdQkAOIgoQ3/VhOISUUlTPK9Wimypjv+upEkl493Yye36AyiD36jg0dDjN6vwnAQJcBJlEp/+7aJYTCRRM1U0PzawS1IAoB5EGf59SROHlMVqr9knfXYu91WX+YI4AFy5kBkXzV7Kc51tubTEbtHpPt7eO6/aXT/j6vmCXE0D3/mr1nt2Pfhm1c+uedsxKsjV44JcXb8koGmN91U3HKW252ojU26yMGmf4Ibe4tTovCD1/K8RetwT84cexIytfUrP235ndCmBx4ynBQlwNpVlflW/BQBuENGWL9gAV0a9imk3tw3oO9oMkdzkksotejOkXbYSd+56ZnN68kkgqg+2vDwE+y9kom/rELw6qhO3v+ej7fhk/UksPLncIfVTN1AwwtVQVJAniekzy/92AtEgy95h5xUp95kJDYtDzjdCALRiKd4d0RZRAR54ZRQ/YuKO1vwUaPR8+tdHBDfUmXTJIxBXlv4Jrw2VP126NycBOnJdAMCJ9K9vJMZcO8Mx+7ZJo9G9bQTizqXhMAElyKjB74HtBQCcSXqRBGvDOqB7YRpSvlmBPJMexRI51B4B2BsYC4NILADgbKJM/scvmtuEVMRNTjSlXFtWszpvJ2DRsga7wZL9V3qhm4v+eJoMzjLFoINM6ZL6Txu0eKTHBJc2ACEbKqQiBAAEEgAQABBIAODWJInNHXQlUXfQlVRbWrq6AVmOSGczG70jXDou6OG+L7mU+S9s+d71EtBB4pqP9E6b+BF54oAWLqnfnMsv4RjNeLqk/hS2RLABghEWABBIAOBWd0NrdZVkUnhOHAePMfdB1qYld85w/iLUv29EyU+rwBqMAiedBYA4LATBvyyBrAM/dEC7dReKvl4K/fFTvAj5+MCcnSNw0hkA0JZflvkF73+Ows8Xl3fl1Bp43D8chguXYDyXIHDUkQB4Thh7veVv21WJ+XwJYng/9xRYtRrZE6bBnJMncNVRAHg8MKL0uGjx0krX/d54EV6Tx4PxUHG/IxKOQP3beuQ8/YLbMGDkkaUu/UCkRi9I1rFd6bHhxOlK1wu/+h7GyynXcyOpach76S2hWTvaC6qOLPkF0O3aV6qmWK0OlqLiOpWx75Fn6z00sMEtkEuyxTXeOMBw6vqgWVnnqpevspSokfvcK0i/Yxh0Bw5zNkEgB0mAeu0GyLt35o69n57EM7iiGipjmPPmuJ/6Wd9zEk401mRcyfJfYTjDJ8OVQwfC5/lpQpO9kSqI1RuQ9chkGE7zIPi+9jyCf/4WijtuA6NScps4KFDgojONsPlaJjKG3A/Px/8Hz4dGQtGvN7cZL/6HEuJylvz4s8BFZ3tBNNdT/O1P3CbQDVRBAgkACAAIJABw8xth2+gEV5G9EyE5MyByFTFxK1y73kfWnBiXMj/42mXXS4Brk2Fw6Qca3N/vKskXbIBghAUjLLCgnsRWMJ0Mc2tKgKSLe/8Jbv32oggGPnPkAgCuIo8pUih7STgg3FaCu2/pAMS7aI79TDU2Q13vx1V3SLm98hEJ1POMggTcaN0vbcq/vucwmftKgNuom9lSqO6Ulv4WB19XOxSIoI2qcvcXztfDsNMBi7exbMPuq8U7chsAbCrGb1rVC/HI2/GjMUzZFuS9pnMM8wUVVBmErCkajslVkfZfE7LGaNyG+W5pAyhzi9cYqryWO1YLS5p7zUXulkZY0a1qzal40Akalerwqrb63nczACDvwOt7/Vkz8j7UwaLhW728t/uNypNs3q1GB5nFJZXX5wNt2WAxRCoGxesNKJzFdyQZ4swI+EwJRScJCqEXVJAzSdpZhJyXtKXM5zyf4xZkDlRDd9LkdlGx22VDa4p4y4IiSIBAN6cENBpiGEECbgYSAHC1IG0Oi7mll7Fy9bAUJg52jguKi8O4x37hDlctHwt07+6QF+gzvF2d7v/heIFDGRBbaHIpAPy4IHvu7NYNStUB66FjRtLYZuoSBdjfIdRG7rjZtWwrCHYVu6Y/Id5sEGyAYIQFAAQSABAAaLykIG5Cm0ARRrQS48I0Bdr+FA7PTgpIvMmrM+4PQKNORQSpGOx+TI6mvgxOZFgwcIUe64/nI/a9IFj0LAdA4qvZMOabBQCcQaNaixFNmP/hQRPe389nQfXXTDj/5DWwFiBsvA98+6qQvaG43nVI9/wFmYtmS5EeO9Z4AXjhNgle7SvFilNm3PPBNdxT5hpr7T8qOatH1Ex/GPPMKDigcVMbEBfHj2mpbatI9jxT2xZX/Uwl03pI0GaxDtM28x3wRT+sR9fERG5PN0rF8TpcmpOFJpN93VcF0fSCLcK1lzr3mO+QyrWaK0A1XyidyrRAWYV8/vjT31j20wzEW39bdCwnAYIX5GDyVzLQl+Fr//7tMWHifI75e/acKT2vai6FLs19Z22U0MSavbkdW8s/cXSGQyqnU3b1eWtrldeaEeOrq5Ane3zioFIwbBKgaiUnmzuPDbU3q+mgL0IqUTXZ0A8OmLBvghxPbuJtQHxsLLzpvsw9rRaGQtlUiqtLCtwYgEZK3xwzQSoGBseIcUff61PiHNjPz1EqC5ZAHipByie5yN+nEQBwBq09Z8bmcXL0jRRBRt70gTUGSP3FCH/CFz69lDDkmFB4pGHpaWP/e2FwUTraaDY0bgCulbDo9YMOoZ4M7iAgHJ0sh++YYKR9k4+cv0qguWQAa3TvDr1GPyrCQDyh1EIWqwrNWHXGXKqCbhYSsqECAAIAAgkA3Lpk/zpiJGrlcjfWCNaRZMm1/1NV20gGRxIdneAqYuZ6+rvUj3u3JK9SSF10V+fbvHecqDRN7+DBg4PI7k6ydSRbJNl8yEYzRtQ1yiIbnWF8/86dOzPtLXNBYBPu78/yi0bXV55DVMfmyMoqwsJF+3D436RK77t967Pc/p+hI8ud772Vz9AOGfpVpWdu69UM05/ph+Bgb6Se+g/xHy5AcH7KdQCixVKXMD/FbKwEAGFUP7LbTbaZhGFflWH8RLLdYYfapAzdT7afCBDZ1jIp174k2wBS5r6KADSX8tMdGCFGfu9heHDJu1D5emHb9nN49bUNuHr1eqojI/0jbr8lPLZcpfekJ3L70PCXS881aeKL998bgaF3t4WmoBhrJs+F3z+bIQWfZfzPqG98NsDKoFmUYZRxhPm9yPEislFgKCfWki25ikfpqmy/ki3feu9i8my/Msx/oSLzKelGTUCOde5oypjgfzZiXcd+2P7pMtw9pC327Xke057uB4nEflbRe+kz9FnKfFoWLZOWbWM+rZPW3SiNMGHUAisI88dBs4SmfshGp+h9jmw0e0eTQ++V1WRkCyNbJ+s99F4ZeZYCN9/K/C+rqmvg1PvRffNGHAjoAQP4b8z8TEUwf/EOlnS6B+knE/DG3GHYse059OwRXeu703u2b3uWe4Y+S8ugZdEyucCS1LHfvwdXJ6270XpB97OBx39nVWfHMJr2s1FMO31XW0EJJ9vLRL38a7uXHB+h56zX6D2rX0RxIX32D1Z5jpRVrdfw6bwdiGoeitePrMDhe5/HSQ5HqwrJvojzD4zBsgdmIjrMA+vXTa31vek9TcM8uWfos7QMG9GyaR1zj67g6vz0s52NEwCrzn/uZ6gu72AV229n9I8+CfUOawt/lzA8peIz1nNUEjpNQcm22xj9+F2sYstKeFDl/Jy1zEq0Y+cFznAmXs7Gh99PRbMv5uNr2Z3IhkcltbRj3vJa353eU1Hd0LJombRsWgeti9a5Y8d5MHG/dWO7tfVyCaOPnStG94eOMVUAMNvq7awijP1l9109l3SF4QkiEadWQbXC6jn/R/W89RE6rz61it2J2hlPWn7Hk5Au6bfj6JOkrEfI+f+RbR8p69OKdfkHTmCl0lDI5RK8+cYwPD7xdiQkZOGZqcvR4uI+3IMEov/MlYxtdUa47HmqbragFS626IvF305Aq1bB+PGnQ3j7nc3Q600wGjPqJgHfLTh6I1p/sNWI0uWY/qDn3me9d2xglcceYDQdSOu+y6rnyy7pRI9n0Gv0HnJv/Dusz07rtT+tZfW1ll0lUYZQj2fSEysRGuqFTVtmQv7wY5iLIeXUkr1En6HP0jL+2jqLK5OWTeugddU5G3pw0yl4Em915x+nMPj+js7EgDKfSsU20mJtUdeAZfD4diS0yqGM7osB0M8eywZsIuc/t16f/guTe78c7Dxy/Dy5l0Z2A6gtoGUQxm8jx2OtZa+t6NdX1yU7/4sHAbrVgWyScI/VKNlIqZTix6XjK8S2tayiZDYWYMXA0zi79SSOXtDi8CE91EUG7PgpDq9N+MdZANgWqzlslQjq8TQh21Gbd0QZ/QeTM9T2ADkeYWW+zduhotrE+mxpWWXKblypiOpILPHB2dvP4cyPMtyXqIL/wvcR1KYjkv+4F5YmTgvfqa9HW74tDI207hNtLirx7enhl0Tfn7Ne+7KCq2n77ijKGiUnWcus5EfSiDZL2vB55yraBHuIBmI1qyCGwYg5e+Dzz73k2EJiUAlys7NgyH0S9700itzwqlPCAM75ADaQFlz2/Crb7/tJrEuYf566mVRX/UHc1ZVQDSLXB1Uo6+0KZTS6ySRqVEEHhp2GZdB93HHC+yz2vvs+p56Htu3Gnd8/9owr351lrHkHC9yXagQg+24pRH9vRP5cEYK1Yqwd+hbyHp+Cy30iufPNPgh2xjsVWRNsI4gBpei/YT0/jv6mG9H524m305a2fBqskeM25NwO23Wr20npTevvkdYyC93KBox+Jho71wxFHlGRbd+WYLG3GdE/mrjWr3vBiIixXZ3xTqlkCyBbM6sut+V96CDGk2VzO1Tt0AsPQPMd2X1BbYPVUNsGPNrsSFOr+qkUwNEsZn0+OqwuDqhTHFSbF7Tpyuu41vIr/NkuAkU9NmHJqhVcy/9pQBSOKqbjq12jnQHAKeu+lzXCpcm1qzTNYmO+HsxL97OBf5VJW6wj5+ZYQaAxQg/6jPVZLiNs3Z92KwkY3uwzrh2O/y6YM7i7OR/jVfT+lKbhneaG0ozlY2QbSgzoH9ZYYPd4qF8k+67bWcXOb+DZxxop22gRiQtMU1Hy9xBG9+UEqONJLPCp1Y2lLs7dVnNRKRtKUwI0Ei5tyUPb4fPPxkChkOLlV9dh1+p9xOCfQGek29XSbZJxAuFYRZ4a+HA/fPTBKOh0Rjz/wu/YsvX68pB1joRvBBGGZ1nz+f5UC9JzrzFFg0Yx2m5E558hzKc5oQXW9APKpCI+I9e20HtGkHvnMoUDbZrUWtZ+a9lVkkwm4XL3S394FDk5Jbhv2JfQrV6B97CtlPl1IfoMfZaWQcvKzi7hyqZ10LpKJWD9pCSccGGHTDX0E1U5NHpdM/i2iV2hu3sbq9hFdD410BsIIxOsrdsGGu0rvUJ+Z5N7+qlYS+bdjG7KH4Nvi1xM+1kAnbXMKik2JhDffDMOHdqHY/XqY/j5pUUYbziGYFxf2iRf4o2A6TNr92pmvoHchV9y6WeaQxqFs8hKSMHsIefxv4+fwROTeqNXr6Z46qlVuJCQ0TizodaerK+Irx9DVMrdh1n5z9/BczCXYgHmEkZHVpFDoufmUj1P7h3yLytbMYjR3fM/UgYty9Y7Vum5Qa2xfdtzaB4bhFee/BaXZ83E04a9pcynvWTZtw/HqFP7MOTFx2p9d3oPvZc+Y7SGHbQsWiYtm9YRGxPE1XnX4NaNtz+AuJWdiHvZjqqUT+FFu6wepmqGbFQffEIY3rMM8+nxx9ZrVPc//Am8vemzY2gZTE7n6uqZ8+JdSLucifd6PYbb/vqsnLq5GtQSrdeswWO/z0fKNTVGjf621vceOeob7l76DH2WllFWLdE6aF1XEjPw4uy7Gl+fMBcIXHc1ZxEPh3a80DXSldas5i7w01s0q/AY7ZKMsxpcf6vaWUiBpN4RLcvqopajTya/yoZs3oQgtrK6uXvOBGg0Bnz2+d/49rv9MJksdvUJ0y7Jp6b0xfOzBsHDQ4ZtnywrVUulMRbjicxhwxtlpzzteN9blmFlOuX7ovavg6vqlH/OCkKtnfIFt9+DB354z2Gd8h+8P4LrW6ad8mufeB2+h7aU65R352EpNNHmY71UaA3gaAxxgDA+w94yyw1LeXk6ojq1RFZWMRYt3odDhyvPJVSfYSm33xaDZ6bRYSleSD15EfEfLbw+LMXlyv6VH1zaAFb+sqDxBmI3jKJauabeVM6bRdtCrUuqP+ejhOS5mDu4FnjCj+/f6DuET6OEfP8it898ku9GLV692CoyfO5xpbitQ14iF7c2cRLQROmDJC/eqYiO4pfVi7AaJoX1d77Sx5o+5Q2IVBzW4MqN2mu41UkSHaFCrI8XWoo280FD276lVo1Sl+Pf8D5xDD9yIrXfLP7Cik01Fnzt5DvcPqzTGxCohshZYIGLJUB67ixkZfpECx/pX+6G7I07+GSV9XfzuLH8QdD/aixYaPmCBLiHBJhfWQhzbHv4/MlHeAGB/GpEKav4/o6m1iGYeR/zXpGFsfZrH6+bzq/u+sYPP0MHqGp/09t78IL3xfTyEjprIX9wqO6Dxk5Dg8KmUkECbmkJSFr0GQzExbS5lz7TP+TdUPAScGBfGt9SU+/i9v2yV/BPisPrpPNru66BvMrQXGldESP8j3e5fdbzfIvX/MJnFbxf4btF/X7ly894mh8sx27eLdgAgeyQgJ/FrcsHVV//Ud7Lsf220lFxjzpV4LB4wMxH4Iyc19ksrANcLdbzMut5Td0+4ov95Rt0ue02lzBff/iwIAGNIhXhTLK35atqWf3o2oQP+PJWvs4L6IdP8ecf5b9USg8bKsQBAjlQAm5ULmfEvNZEEQfZcac1ZXz4tfKnbWHB9HrM/ZmY7bzRTYIEuLkENLTlC9lQQQJubS9IaPl1AEDomXIhALmXlrh0ZATDfXAkqCDXUmK2S6s/fPiw6xpgXFycS1tg9+7dmVteArq5aAEDR8+8JbihArmfDWj34s/s2fTKK+nt2jKF24d8Vey0uks0QMqHPjXeE/PbJlgslnpNTi0SiVSXHxreuAE4m2QBgiLQO+RfDGpxAAY/Of7N6Iqo7fyrNQl3npAeta5b0U5Z/dzRbXn1rKpvHcoayj6rbURzR0d45ODV8A3c8T24/vnr1Yd8nFZnnskI+Ak2gCOdpdHNIlArmXJzYMrOugniAEKXS4Iw9OjbYALLi2yT35z3cXvWRQvSPq6/hKXNmgpzfh5iN+6qPwDd184DjgS7huuptPXcyx2eyekGb3UKuningJE17knd1Qf3Ivv7RSg5uA+sToukR+9H4KSp8Bo4xH0lgJJMbIIcJpQ1Tc60AVn22gC6fEuZJVtk0c2QvWwNFNF+EKk8kP3znwh79Z0an2n0AHQNPo7ekXFg/KQ4XdiycTV5wsycpXSUOANt/BGEvfMxgiePQ8Hvv8IilSLwgWGQhIZxKknRth03fUvAE1PBSKTuA0Bz7yv4NHYl7wUVfti4bIBIBO3pE7g6/zsipYA++TJECgXE3r7kGkPUkA4pEx9C0dZd0BOhCiPHgU89614qqDHP+cOaTTAXFnDMUnVqAU3cv2AUSkj8/Tnp0J49CYu6BIoOLWCOvwRzcRFYvQ6MXOE+APxXGInplyYR2S3/So3BBjBEl3sTA1uydxc0py9B2bYZAcUC1shPtUDtgNjHB7pzlyBv4g3vIcSxEIndSwJOZHfhtgGd9/ATljUmIsz0H/8EPAcMRurUSVAfPgCRTApbGpmaWovBBM8+tyNq8VLIW7Z2Ty/IS5kKC1t+gG5jigNkEdGIWvgdzrZrDmlYOKTBIXxAlp9LbMR/iJi3oE7M5wBYs2oz2ilcg8NZnQkP9uTjgPZBx+HvWQRG3LhjALF/IFofOk5c0aYwXEnhxqbKmsXCkHQZ0sgo940Dmnlm4bce/PDDe5Kue0EFT8pgVsphJAEy46A1Oy3WHEzWFXOdc0Fibx8oO/Jzf1gSzpP/zBB7eZeec1sA5EzVHXPqQqVTptrjva6GLYNrzsu9vrq0u+eCrpQE4P2ro2D0l7pNLsh76PAGv4PrAaDfnBWl4d+iMPz7Hz9Pc68O8Ug18+P/9enOixDE1lwwzctXR9oGdpte1tY8wzCzJsqbdakRTi26pTvlhT5hF5PE1hIFEuiWJAZP3MmWWiNC41p0V78w+H+QE+OR/vQED2dWbiBh7/DTF1xrA15dngWpgu90N1ngIxFhRudQPNTC3+lVa7VajYTrOAj14s2ByYhV+Rc8zu9aiK8nvY27TpwDfl+LpHkfOOUFzqgbwVLkLILQJIafaU7EoFBrxDtnDDgCMRYMbIYW3nKnVX3s2DEPBpP6sVBFAB6EGVJzubzwi31H4ZOhk0C/CM16djLUJ+IdDsCIscHZRBBVYjGDuy8WYcqBLMQUGOySPMX+g9wilLq+fey6P9lHpv6uTzC2tPaG2Uw5zmqQNdEDkW1UoIy2WHux6D5HDYmPAp/1jcJznUKdAsDRo0c1zJHVXupNRS1V75yO4ToeOCBoKtXMR4mtPX3x1ZR3MTggGtiyBUnvlPlGi95nMTcIgOn9vZA6mDQAHSlHIYYk34AX92QQIDIRqK25bM80flh9SUT1k0d5knKv+MrwPWH8J/1DoQ9QENknLUopRpO/0zD1zo80C/P8VJnXSoBAJZ2JigeASAPUxIcvNmBA20B8NSAG7fzK5/evZOfAx9ML3kp5vQEQR0ktr705KVs6MbYIu1M9kZnvRyonLyixcGKZY9BhxaEtyFXnY+jwcfCf/BRMRBIM19K5zghGIuH7P+sTiRqNGHUsQ9NSY5EeC1NB7ymFhUjCgQ5+WNvGF55GMzpc1VTrK8uen83bks8/qywdRJ8bSGte2jsYk8bGYCMBwCwlJZHyPQoMeGVzGuasT0Hrp58wvjm0izTDaMHJ1EK+IaikPAi0+8tDhuTUIiw+n00ORegTRtS1WY0LJZn4eNUGJGdfQ0iIJzxlKmJK6+bVp6enG7lFKAZ3kWLDW6RRdFdh3t8xeDEulogiYSxdjEh8XRqiZQosmvIe7g1rCez8G0lzrTOoFBXxOeRqcBB5e1/PwRTxk5dKCHNOEQnyzcxBX5MIF0IUmE9a6Dd9Q0i9pG4TyzGr2/lCvLwzHaNP5UFHGMLaKQE7Wvrg48Ekum7nyzOTlAWNCU8ezMKM3Rlod02L/aSRKTZt0fTo0YMzwhuT8jF9dzJS04sBPyIN8jLSoDEScGToG5GPdxVJyNsVh9xridBJxAhq2wWR/XqhS5+hUMrkdVNB19nG4NuZUkyZRlpmcQju29gaR7KDeZUkM5WzDU/3HIIvR07nJnHKmz0ThQf31VsFUQC6SKXkDxEhsNiIfc298PnAMKzvHkBQEvFvR1rzffG5mP33NfS7VIwSlbhKADwJgw809+ae/5M+L7U+T5h477EcvLArAwMuFaFEwT9/nEhgWQA4e0KkedaeZHxz1DqFMQXCxiIRMTXGLLyz/j2MOfkvzkWJYVCK4HfODOWsGej14utEs0nqCwBPvdtIsPEdBv59lPhiVwyeP9qcj9c4aRCVztkQLpFi8ZPvYGREu4Z4AdAMu5sDoJz6MFjwZyc/fEoYeZS2YGowKRhFBjz9TxYmLz2Kro89DXy7uBwAr9wXiYVE1cCHNA2iUoiYoSuRoNm7rmHM8TyYyW+z6LrXWxUANtp+pRDTdyXhElE/8Ce6X06lkmiCkE4YcORpvHB2KUrEchTBAIuMxVPLk8g9TetuhKtTHF9Ok2HGDBDdH4L7/2qJfRlENah0pBKalL9ufB/scidaNG1lLcV+W8ASFZR85ACefntJJQBspLmagZ86yvHZgFBkRZHWR3Qw/Ahz98Xj49ZTMWfW19x9CxbOwoyTXwL9uwLEiJMAA/5paswmqmbSCT08mlTtxdQEgC1Z/cLeZMyn0kAbXih5h0LyDmf+Q8fLB/GgJQsXiXI4F90Fox8YhddGxjoOAC4r2VKCNXMZRLaSYt7J5vg0KRpZZmrILLwHZDLY3flcJWUUYt+ms9UCUKoWHh2Hxf1CkRIgA0uMZIGkCJ1j+uGNMH6Nho8z9uJw4m74mbzBEL0dQYzstH2Z8Fj+c43l1gaAjfYSmzCNSMO5XC1xfTIwzmzCqqJ2CA/KwbUiFQKIt6Y0HcMXr4zBmLZBjgPARhd+VKHVUA327ovG3Ue7Qy8hsIsamCamHkNKjubIs1+gNgY4iygD6N7e+l8/noGP1pxC75wcHMiLxuN3BCIhi8HlpFTIfDKQEh6J6YNi8HmfSLvGFdD6a/SbYoLE2DtPilatzPh5d0tMP98aepmBZz7TwEQqnedHKnYJ4+tL73UJxbd3NUOWQYEWXicwvuVq3BP5CwLlWYj19eK8poUHrqDVTyewOcW+jqRqTfbLD8vwIZ2JXemHBza2xO/5xBjqiYul1PEuqtU17R/bHh0jI/lhkHWJB8gDWRdTkP3NAqRvqKyjqbH01Jvhl6NHbqAci/qFEBUk51RQPlFBXSqooEOXd8PfSFQQ8XAi83kVpKpFBemMRhVVQXUBoZmXAkWF/oiISCRB45tQajxgFK9BGvWuQyWc15SUVYJ7fz2Dyd3DMH9AM6hEjP0AtAqT4Lc3GXQcIcXao9GYsK8lNHJrRCrX02kTOfPkYdTj+8eex9j2d9dfBfgc1STM6onMMu9nZviMSEsjv6LbJ52IEe4fgqwLnrwRJlEt9sfj9jbEC5rJA6Bcuw7r6TKSA64b4YVaNV4IysdEYoR9ablNHJNOMFhMaBuSgL/zRuOrk3txOr898a6i0ML3GC6afXl3nbquBjOWHErD1uRCLBjQFKNj/GoHYO6jMrxDV+OS+mH4itb4q5AEUDbmlwnIHmzZGb9NeItL4L30+kGsWHMa14iXEBpQh+QpUWEZV8+qVkeEauRKGYcrxaFpnoE4Whas6+jHBVJxbX35oIz69MUGTD2YjSnLgC4Trhf13CUG/ZcD30nFWHRHNOAtQ25TC14dyGDNuULMIfHDmJN50Esb3v/Ut30InmGJq3uqBB4xxSRoLsSx4wZc7u7Br2pvsvKLus2hnkjL1+L+NWfxaOcwfDWwKXyl4grpaKI4usSQVk+8neZ3y7HycDTGx8WUN5Z0CJ/V21k7fgbGtB6E+COFeGTa77hUoKv/X6NPxa+yZZq2HnJVWJGxNBD7gvj/63oE8HVzYsEHYi8QRt55sQhX83PgQ1p02UAsn7iskX6B5QMxygTqY5BWOTyOBGLELe1Pns/1kkBOQLXXC6oUI5zT4M15O9HT/2NcUkdDET4XT4wLx6KUPGw5eAXwIlLqKbseRdOYJFeD4BAPfNYvGo+2CrzuBT07TKJe8IlIZUQA7t3QGjtKPK2MZ8vp+kdad8Uv49/ijp+dvQcL11lXkqXBGa2orvkg2hmvS8JGZqlmuBoqmopY0D8UX99B4g3CIBivpyJe+jsdo0/kQScX25WMUxHbsb6jPz4iEnSkbZlUhNqEKTQVsScDbatIRdSNdIhPkMPbw4jmEWLYFmpdeDITLxxIgaFAzyf3aCNirUAUknMGEx7oGIoFRBrSzpzQMEd+U6njTM1V085El2/1Bj2dWRrB5Hj5pBdxd7M+OHwwF+Oe+RNJJYbrzDfX0x21ArDVslRztH8T1TwSbBWGKDn9DbkI4SlqvEwi2Mf+zYYnaUHaKtRHTbkgmozTkPdb2TMQHw0Kw5VoT74lknI8s3QkwLqGXruuagL//MvhbjDlzwwSN2w8nckn9rzKpLopv3I08A5UYXpAvobvDwj1qbLVP97hdix95BXueNqsXfh644UKyqshfXE8AFH370LqkEg+RUwYryA2YDbxYJ7anwlfjanB6WgbfT44nEtHq4knBSIhUEoQsfMK/hi3SOOsOGTJ2WzM3JcMNQ3g6JTQ4jLSQBtx8jnNdSMssnZEEA8nhOj7lZNexuBmvfD3jgw8+uw6ZJgsFXuSHEKpgfJsxGepxOTlBiQWcdnKNgVGD7oKZ35tGJ45w3XIsCZzrdZ/9NYraHsoQ037Bf4mdsJM/p40f5lGJBIFwUk0uV0Qhjbzxczdyfj9ZIZVGmR8bstDSn+rKvUJ3xfTQf3a3RPgKZbj9Y8OYd3+VOf1C7Okhad96NI+YWIIs5RKpdMDwo3J+fgi/hqyaH+DzRMy6hpBn6xAAgkkkECuIuY4MYVeLqqcTkSTLw+BJ+MaO1xCXMKB+kyXOgES6vHHuqjyY5zTy6Ip45qv8k6yBvzUtBXrZUc/7gMt/lenstde+rn2Bmg21f/7gGKVPzRefijwD4YivQhhxWmQWQrdTgWYiBQE2/FFO5S+qMvSm7RMpkywxFbxbL7JWHcADvfsj+XDHkaHeduRHR2AfZ8OgvfSBLCHANnkdpj+12L03bvb7YCgzDIVSuDXqxBBg/NweVEkLHoGIhlbBfPYCukA/jrt52Yq5MToswz3f+XzXPxb1xdNlnrh62enYl3Tbsg+k40jhmY4JzIgt70ZR2O6Il3mB3cli4nhNhFjIcwX2dnpdx0cph7fi9VZAkadP4In1sejc2stelxJwYNfLkD+oSykde6IwFOb8PCJ/W4LAEuY79ulGF5DdPDaokbePz6QBxtqZHqDjTDi4ui8lXY/oMjOxJLgUGDMXUDOThJWBwLZF4HX3wTe+RxsTi6YADuHdh87xn0lGuSiaTP9SP0pY8bxtkAthtjDDO9OJVDF6ODdvgQ5e/w4UJz5JV3diw4KAaY9zaWqsfkg8OijwL7TgE8EMPEx+5nfCFs/I2ZReMKT63bVJCvIbws/7U/VTzhEEupmA2iauph474sWA2FhwMiRwIoVRBrGAEYT8OMy/rqzyGx2WtHNZ6Wi+cxUFJ32gi5DBmOBBF2Xnodv12KnAl83AGi/sBcJ24KCgLNn+aElNIiiTKdNRS7nrzuLxM6b2M+rtRpBg/IgklqgS1dA2UQPv0ElkAUaq9H7jAsAsNG0SYAnYfSiRcAzzwBLf+Q7o2dMrZsPbjK5dEHtsvUb8qWE8XL4ECPs0VwNkYKF8QrxinT178i3uaAOtQH5uTr4vf0x8OnrwLPPXp8bbc5TwMffID9HA79A+9LrWq2JCIzrvhWn9Ze6oMTnl/oboYwkHlBLDRTE+zGViB3W8VQtAEOGrIVUesR+VBUqhBYkYf03t6Op+T/AnzC/6CQy/snDCN/XkezbEiKd2q6yjMbUAO8XekNxMcAlAOiS8gJet6kCuQVm4gllbAqCeWAetFcUCB+T5UiP0zESUJCeiyyjN3p/bMSzpxPQInAYkt9PwqK9EiQX+kOmyYGfv9LtvCBZgBHyEAM8W5DWH26ANlUBeawZYlVdDD/jfAAocyViEbLPJePVE0SEI58kqieRnAPCm3hwfa3uSDm7/Wkoi7zDvjDkSok76kWCMCM0ScrGJQGc8TJb4OdHP8Uhm+EaEMK/pLsyn9K1v673zWfv4WOZy99ENDy+qEUqJLjFiX6rxk3eV6vFzq9TufaUSesmm4jEN65Zw4XWTYc8GjNTXMN9UvfE5AT7FHfiq3UqegwEEkgggQQSSKBGTS6fr21Z+y6s1EXDUowsi44rlkIul9/wui0Wi9poNHq4PA4wEya0UHm4pO4L6hLigpvRpk0bV1TvQWcKkMTHx7NeXq4ZmlVcXIwT4yfVEHKbwBTqIA4OQVGsFxIlxWhd7A1Fah4sBXlgfZR8HwHrvuuBSmgLiI11zdCs2pYyZORKWIa1g8XfG5KrmQjr3AqWw+kwj+4KNiENzPk0t2Z+9akIln5TpsO5lDyk55QgNECFdtGBCPBQ4Iaq6xAfaKOV0CdfgDK5AIE+hShJy0FJlB4eTUOhuuoJS1HxDXsdulIGo1A4HwBDQQG++PM0/th+DoZ8NaS+Koy6ux3eHtUBMn/fG/YHyxOuIc+QBdOdxTBFiFFclALJfVIYNcnQ/52HwGwzSpxoxkpmvgQL7XqFCZI+fSFu1QL6lb9yk1SZ1UXweWsumDv6OB4Aub8ndh5OxIXDRMRDA4GEq9hO9O1HT/S+oRKvF0sgvpgLxV3BUCED2Uo1kUJvsMUBsFzIQXFECHHjnNNRr9XoYfz5F5hyrnDfXntENYP0zr7Qbf4TIvLPQv6phw2Hpftt8FaIHQvA+n0X0cRbhskvDEH7HrE4d+wyMlPSuPMj+jrWY5iu6AiRquqv2F/0z8Kz4Z1wKiMVHj3vg9cRA0wdAcXFw2g7+ja8fD4Lq1D/L+At5gywz2+GyPdcpWuT74zEF81DUajVwmP1CogiwknFCvgfOATdj8vh8cPXOH5NjUFvxcF4/mL96i9IhqTHm1uBgIRyF5qmZWBot0B8+kQPeHoooekSgJfeTsXMt7ZgVMRxx3E/N6nGVTJFd/SF3+R7oesVC8/Ow9Dso9k4//nLxBAnwm/rL9DO/BK4XOQUCSgq0nBDExk/P07tSPr1hpi4q/pvfwBbUgJGJoNZr0eBwYiGONFVdvknFzE4drkA8XEJMBN7EH/0Io5dykNy4Y0NmMSeBJ6QEDSd9gmy4jORnnkVBWe1iJjyJuDlAY9g5w0C86NqJfUKpPcOhfzJiRC3awdRZASkI4dB8ezTnKMiN2ih8JY52gaQkrtE4WhqNt5YcRRj4hOx7nwBDhWRF+pCxNCgu2EAsAa+U8M8qBfURB/n7z+MQpkJYQN6UgGGxei8Oa8t1N0jaofdth3aPfvhPXEM0L8n9K++AVNUNOgSPgyJoGknoNixADD8V/LhgTiQU4DDm5JgooFaE2KMTfobG64Ttw8WA1RKJWIGDkRguzaQEb0gFYkJOFqYNM77yvO8NACIjoLH4XXc7wMHuuCUviWmJRF1TTc/GVKDomBKKEK9EhmMuOY4AGYDzN4qbuOboRE3moqvXCVKUgZLiQZFKSnwIwwpTCJ2o2sXTgcXk+DMWWtebUs2Yk+3+/HtmWCY/P2wvzgEmftF2H/XG0j+Lwdz7wrCNj/ikNCFfOqzCAdrrgGARkJeIhFYwmQtMVUagwFJGzdBJ5NCT0DBpSvwFTvPJ5YfPoTvo3vi4uy7EL/0CHmZYnhKNfg1pzVwV0tsvi8MO3/cBj+xFgbUP5XD7AqOZDvJ5C5h8Emi6ryJX92tmuHp6fuP4NLKZyGxqOAZOwbKkYNRsnIttOrdYMxitJiyGEEdmjcoFVI07H50ruLvL7aIIVYXwuu5KZjQ4nGs+5V4f+nZ8B7eG392zEKvea8g+RRpBGEBUBnrZxdPkL/f5StoWCyWahV5eNf2xOXLQ+GRPfDpGIWWbVrDI0aBnI27IBKLG8T82uqOQgmCWCO8P/4Afx58C5+OCsLkyd1x0nc/Br7xBMRHjqFdoARNtHlOyAXdELLDpfVQoftLG3Dysykwihnk/JcIi7cfQgYMRbc5q536dvkiJeDrgWKDD5TfLsfs204DMdHA2s3IFXtC1LQltHToiaRhjHchAPbpb8+ObdDn6/3IOXIARgJAWNNuaLPkiRslnhBJRNBHxEJPZ+VLIyAER/Jqw+QYp8Q9BmYRRyyw/x24GUlCpwlKMhldUjmtWyQSuWzuUFfWXQdF7Fy6UfP1VJnx1Go1muFjguQuYoMeLAQS6NYm5lZnwIFmMrYSR1h+kdTSL+WtcxmSsACmPAZiTxaMyurIsW4OQHJycrV/QtOR86t+Zv0Mh9WfNqAlmkisbBBZ1y8i4Zm5gIEkkDBayvf7W/LJNT8WPhMt0J9goNkjgkjRsFTUVRPbONzQ6Ojoqi/IfOp2fx0pJSXlejMkLd5SwnA5R5EPC487zNCeFsFCgBB7sLBoCSChxCO+y0LuE8G8mmxSFtLohomAsJinTcWQlswQbaTPYiDvyCJ4oYlTOYYcBiICgCyCgFACpN8nRcHXEqgGm+E91syppoYFYp/++J+Hd1CAiZUY9cwNzPczRHgL83MbBf9pLk3GwOdxEwKbmiAJYyEOJSB8ZOKkQ/evCMW/isAoWGIbiJSQt/a83wzPoRakDWtgj5jY4tVEHRzMDXYRsd5EEgnsjLYu8brVEonqblIK8xWNQgLoPNtE72v2ieB/mwnKwRY6NTS8HjWj4FsJSnaJePugJH+phEiDJ5D/pQT5dA0hQ8P0iAQsU8KG9+QYIU37DxbGxlCmdrmlnXEseRtWyoPG6FCnSSwsVKjhchC4GdNI6y7aKab9P0TP04+0ieopYJE9RwJTMeDRmbR+Ld+PwsiJkb5K+6iIGIeyDfJkRGaYmWO6rqCbmRtjY7Sv1bOEb6wcoaIMtJEkQMUQXrIe1vQSa78iagxE/xyifRVNLPAaZUb2m1IkDZBBs41IxBQjpMTttFinw6DrahovMgiYa0JMnB4iecOMsERCAuLX1JPQR3IaCpEaWlZWC18ISKyKtH0G/eX/4E7JKQRLcnHKGIMdhttxyURX4StyrxCDGmElr2LyvxbDcFFMdD2LzJkyyNoTVzGSZzwFwJzOcPfr4kVg1VQimAYCQFQOZX4xVIRlFlScB62y2pETlSdDR8kZPKzcgbHK7fAUFSHZGAEftQYryfUrpqbk8Xy7Gjnn68vq1qnK9HzbMYw3FOKArUwaaBF9bsogbqe/BTJvcpzNwJhIf7MwEW9IHM4ibLkemr0SFHwnJjwT825oAzAQ6YgqmevzLT7x+YK0fhUPdbUl0iUNfYjq9kIb6UU8ItvNMZ9jpCQNo5R7EEytlznIapncKNlkNX3iAHBRrsXAB14ion5YjiVE19PZ5SUMN6BB5E08pWC2wY68RER09pzCWThFVQdnTGswwqwfBsv/hrdIgyPGjrhojkY3aW7p7fH6tigmgE73/hR/63vjvLElecF891JHliqOidaVBPMzqmQ8KYNIRdRSoLV5NXQ5NcocyvyOkkQw3Nhzpnp7afHFnfKj+D1gJq6a/TFP/RB2a3sjyRSJZeqR+FL7ANrKTuEr3w/gxVk2T/eSghpcBc77IS2fqiNGweeK4ICZGSQWAu/WgOncj3nFU0kt1akgC9ealxEmFxHG9pMfx1FTa+So/dFanILjpLWbiU5UEqP+ZuFUXDATyyUqEPJ9tQEgZzSlKkghKiF2gLrluqoZx6jxn7EFthDzQ9UQMUFks+CyOQoa1gsmiwfUxI58UvI0KUFqNcRSgcs1SgArKlVB+/R9avCArN6RKAdnSMuXkpauINLSQ3qCqKMIxIqvIUJ+CCu1o6GjxlyUC3u6nGlms7rkWnXeDnvkTYcl49IGLHIpACITcRvf91iKh+V7obOoeItTrd62gkAiXiMjInIgwwFjF/r9CEpIOTtJHJBjIf6bqNB6r6B+apUABhK2myKeR4NYGTOnMnS1BK8WK1CkFZmikMI259MSNBXBFNclL3TLd4pKIGI9mXR+zjhu7mPGYifzmFK7wDPd6lTVxTEWiTxveQBYpuRqUE5CAFEjxnyLx41rlAwnatRQxN7aALw4oXm2K9/gweRbWg0JPWIutwGNgEr7ZqtIltXpfvcMsm9tqjQs5UYDUNOwkBtBTec+Zp+UfPQLxCxrV1+pmWGUCbG321XuEF2qa1dRov85aphHvVWPR+1f6ISHh9OX5SYotU1XXR3RbFYeU/u3i9ms2eUS6JZGmLXcPCGcWwJAZ8qn3+eyZcJpk3UTvKAbIQEsP0+TydqCqCIx8MkQt/uD3FMFWfW/zsQvPW/L34puCQkwGqH/5U8YNm2H+WIid0rcMhay4UMgHzsakDon/1/WpMplPMPLrv0gr+bemwoAS2Y2Sqa8AHOF6VlMJ85wm/73TfD87jOIQhy/SjhTh+DFnYIbUV1aflXML+d/k2slTz5PFLIRAjkYAP2v62pkfikIFy5Bv3qdEw0w3xNekl+M//5Zh3Vvj8P2JR+R88abGwDDxm1wxr1110UiqHVZSN77AQ6teAtx237DrCdfwbtPPWn1hW5SAExnE+z3088lOI//Fi3UJdfgFdUMFoUvMhGO2zr4Y/f3y7Bv9RIhEOOYJJE4QfWw0Og0sOg1EGny4e0VhILsPGRn5WDSG++j35h+2LV1N8xmA1g3CpPtBkDSrpX9LmNLx3dy6U16ZCT9jUuXr2HXeQ2Mhccx8J57EUCA2LhsOQb9bzoGPv40Ll7aCZNRc/MBQP18Z9xrd5kSKZRKH5RYruKcNBJPHQjFD/73osXsqcjyUkMjCkG79sFQawogYqQ3HwDyR0ZD3LpF7a2/VXPuXoe/KCOG3K8dwpgcjG5aAmXPR8CmHUJqQS7C5/wCfQsP5CfFo2l0b4glspsPAMik8Pz+c4jbtKye+QQgzyVfcPc6g/x9AqCKHAxL+mHM8DuIx30KMZYY5TaFZxCqPwO/qNsRGND05k1F0AjXe+0P0K/6A/r1W2FJTObPxzaFfORQyMfd77RUhI18fULQqcck5KTH4VqLYYhtJUWsnx5Bge0hVfnC3aju7gphsHzCw9x2I6nsgEmR3AfBzQYhuMJ527E7dRW4TQLRXEPeh8bA9Gs/rZX55ptaAhoh0eynHO45GvWmAEAE9x3gJAzMagwS4PKBTurap0hIT0+v07CUxjDiwR76vwADABUg2IokQnpaAAAAAElFTkSuQmCC"); - background-size: 48px auto; - } -} -.lang-flag { - background-position: -16px -108px; -} -.lang-flag.ca, -.lang-flag.ca-ES { - background-position: 0 0; -} -.lang-flag.cs, -.lang-flag.cs-CZ { - background-position: -16px 0; -} -.lang-flag.da, -.lang-flag.da-DK { - background-position: -32px 0; -} -.lang-flag.de, -.lang-flag.de-DE { - background-position: 0 -12px; -} -.lang-flag.el, -.lang-flag.el-GR { - background-position: -16px -12px; -} -.lang-flag.en, -.lang-flag.en-US { - background-position: -32px -12px; -} -.lang-flag.fr, -.lang-flag.fr-FR { - background-position: 0 -24px; -} -.lang-flag.hu, -.lang-flag.hu-HU { - background-position: -16px -24px; -} -.lang-flag.it, -.lang-flag.it-IT { - background-position: -32px -24px; -} -.lang-flag.ko, -.lang-flag.ko-KR { - background-position: 0 -36px; -} -.lang-flag.nl, -.lang-flag.nl-NL { - background-position: -16px -36px; -} -.lang-flag.nb, -.lang-flag.nb-NO, -.lang-flag.nn, -.lang-flag.nn-NO { - background-position: -32px -36px; -} -.lang-flag.pl, -.lang-flag.pl-PL { - background-position: 0 -48px; -} -.lang-flag.pt, -.lang-flag.pt-BR { - background-position: -16px -48px; -} -.lang-flag.ro, -.lang-flag.ro-RO { - background-position: -32px -48px; -} -.lang-flag.ru, -.lang-flag.ru-RU { - background-position: 0 -60px; -} -.lang-flag.sv, -.lang-flag.sv-SE { - background-position: -32px -60px; -} -.lang-flag.tr, -.lang-flag.tr-TR { - background-position: 0 -72px; -} -.lang-flag.uk, -.lang-flag.uk-UA { - background-position: -16px -72px; -} -.lang-flag.lv, -.lang-flag.lv-LV { - background-position: -32px -72px; -} -.lang-flag.lt, -.lang-flag.lt-LT { - background-position: 0 -84px; -} -.lang-flag.vi, -.lang-flag.vi-VN { - background-position: -16px -84px; -} -.lang-flag.de-CH { - background-position: -32px -84px; -} -.lang-flag.pt-PT { - background-position: -16px -96px; -} -.lang-flag.de-AT { - background-position: -32px -96px; -} -.lang-flag.es, -.lang-flag.es-ES { - background-position: 0 -108px; -} -.lang-flag.en-GB { - background-position: -32px -108px; -} -.lang-flag.en-AU { - background-position: 0 -120px; -} -.lang-flag.az-Latn-AZ { - background-position: -16px -120px; -} -.lang-flag.id, -.lang-flag.id-ID { - background-position: -32px -120px; -} -.lang-flag.bg, -.lang-flag.bg-BG { - background-position: 0 -132px; -} -.lang-flag.ca-ES-valencia { - background-position: -16px -132px; -} -.lang-flag.en-CA { - background-position: -32px -132px; -} -.lang-flag.en-ZA { - background-position: 0 -144px; -} -.lang-flag.eu, -.lang-flag.eu-ES { - background-position: -16px -144px; -} -.lang-flag.gl, -.lang-flag.gl-ES { - background-position: -32px -144px; -} -.lang-flag.hr, -.lang-flag.hr-HR { - background-position: 0 -156px; -} -.lang-flag.lb, -.lang-flag.lb-LU { - background-position: -16px -156px; -} -.lang-flag.mn, -.lang-flag.mn-MN { - background-position: -32px -156px; -} -.lang-flag.sl, -.lang-flag.sl-SI { - background-position: 0 -168px; -} -.lang-flag.sr, -.lang-flag.sr-Cyrl-RS, -.lang-flag.sr-Latn-RS { - background-position: -16px -168px; -} -.lang-flag.sk, -.lang-flag.sk-SK { - background-position: -32px -168px; -} -.lang-flag.kk, -.lang-flag.kk-KZ { - background-position: 0 -180px; -} -.lang-flag.fi, -.lang-flag.fi-FI, -.lang-flag.sv-FI { - background-position: -16px -180px; -} -.lang-flag.zh, -.lang-flag.zh-CN { - background-position: -32px -180px; -} -.lang-flag.ja, -.lang-flag.ja-JP { - background-position: 0 -192px; -} -.lang-flag.es-MX { - background-position: -16px -192px; -} -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - border: 1px solid #dfdfdf; - white-space: nowrap; - padding-top: 0; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - font-size: 0; -} -.doc-placeholder > .columns { - width: 100%; - height: 100%; - display: inline-block; - background: linear-gradient(90deg, #d5d5d5 0px, rgba(0, 0, 0, 0) 1px) 0 0, linear-gradient(rgba(0, 0, 0, 0) 19px, #d5d5d5 20px) 0 0, linear-gradient(#f1f1f1 0px, #f1f1f1 20px) 0 0 repeat-x; - background-size: 80px 20px; - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; -} -.doc-placeholder > .columns:first-child { - background: linear-gradient(#f1f1f1 19px, #d5d5d5 20px) 0 0; - background-size: 20px 20px; - width: 25px; -} -.picker-modal.container-view-comment { - background-color: #efeff4; -} -.picker-modal.container-view-comment.onHide .swipe-container, -.picker-modal.container-view-comment.onHide .toolbar-inner, -.picker-modal.container-view-comment.onHide .pages { - opacity: 0.6; -} -.picker-modal.container-view-comment .swipe-container, -.picker-modal.container-view-comment .toolbar, -.picker-modal.container-view-comment .pages { - background-color: #FFFFFF; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-title { - font-weight: normal; -} -.page-macros-settings[data-page="settings-macros-view"] .list-block li.media-item .item-subtitle { - font-size: 14px; - color: #9e9e9e; -} diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-01.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-01.svg new file mode 100644 index 000000000..f30e89ff4 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-01.svg @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-02.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-02.svg new file mode 100644 index 000000000..fd506c86b --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-02.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-03.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-03.svg new file mode 100644 index 000000000..7984b2565 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-03.svg @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-04.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-04.svg new file mode 100644 index 000000000..6a937f4a7 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-04.svg @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-05.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-05.svg new file mode 100644 index 000000000..c1054f48a --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-05.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-06.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-06.svg new file mode 100644 index 000000000..93d269cd7 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-06.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-07.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-07.svg new file mode 100644 index 000000000..82115ebfb --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-07.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-08.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-08.svg new file mode 100644 index 000000000..03958dc88 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-08.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-09.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-09.svg new file mode 100644 index 000000000..52e30d5be --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-09.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-10.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-10.svg new file mode 100644 index 000000000..8f2429a06 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-10.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-11.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-11.svg new file mode 100644 index 000000000..83f0c5b5b --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-11.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-12.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-12.svg new file mode 100644 index 000000000..7cf881ded --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-12.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-13.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-13.svg new file mode 100644 index 000000000..61f13cf04 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-13.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-14.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-14.svg new file mode 100644 index 000000000..d8ed459fc --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-14.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-15.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-15.svg new file mode 100644 index 000000000..43d8a23ca --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-15.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-16.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-16.svg new file mode 100644 index 000000000..ac0f8f423 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-16.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-17.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-17.svg new file mode 100644 index 000000000..9f3114a97 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-17.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-18.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-18.svg new file mode 100644 index 000000000..6f28ba9fa --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-18.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-19.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-19.svg new file mode 100644 index 000000000..4a17eef30 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-19.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-20.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-20.svg new file mode 100644 index 000000000..d666ff1a4 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-20.svg @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-21.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-21.svg new file mode 100644 index 000000000..3855a202a --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-21.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-22.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-22.svg new file mode 100644 index 000000000..31790910e --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-22.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-23.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-23.svg new file mode 100644 index 000000000..c09bd7e35 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-23.svg @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-24.svg b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-24.svg new file mode 100644 index 000000000..4222dbbf3 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/resources/img/shapes/shape-24.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/apps/spreadsheeteditor/mobile/resources/less/app-common.less b/apps/spreadsheeteditor/mobile/resources/less/app-common.less deleted file mode 100644 index bf26c6c23..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/app-common.less +++ /dev/null @@ -1,45 +0,0 @@ - -@appStatusbarHeight: 30px; -@baseZIndex: 10; - -.navbar-hidden + .navbar-through { - > .page.editor { - padding-top: 0; - } -} - -.navbar-through { - > .page.editor { - padding-top: @appToolbarHeight; - transition: padding-top 400ms ease-in; - } -} - -.navbar-through .page { - & > .searchbar { - top: @appToolbarHeight + @cellEditorHeight; - } - - #cell-editing-box.expanded + .searchbar { - top: @appToolbarHeight + @cellEditorExpandedHeight; - } -} - -.flex-horizontal { - display: flex; - flex-direction: column; - align-items: stretch; -} - -.flex-vertical { - display: flex; - flex-direction: row; - align-items: stretch; -} - -.small-picker { - .picker-item { - font-size: 14px; - padding: 0; - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/resources/less/app-ios.less b/apps/spreadsheeteditor/mobile/resources/less/app-ios.less deleted file mode 100644 index 1fe2094fb..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/app-ios.less +++ /dev/null @@ -1,372 +0,0 @@ -@import url('../../../../../vendor/framework7/src/less/ios/_mixins.less'); -@import url('../../../../../vendor/framework7/src/less/ios/_colors-vars.less'); - -// Colors -@themeColor: #40865c; // (79,158,79) - -@appToolbarHeight: @toolbarSize; - -@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('../../../../common/mobile/resources/less/ios/_color-schema.less'); -@import url('../../../../common/mobile/resources/less/ios/_collaboration.less'); - - -@import url('ios/_icons.less'); -@import url('app-common'); -@import url('celleditor'); -@import url('statusbar'); -@import url('ios/_search.less'); - -.logo-navbar { - height: 68px; - .navbar-inner { - top: 24px; - height: 44px; - } -} -.navbar-through > .page.editor.with-logo { - padding-top: 68px; -} -.navbar-hidden + .navbar-through > .page.editor.with-logo { - padding-top: 0; -} - -.label-switch input[type="checkbox"]:checked + .checkbox { - background: @themeColor; -} - -// 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; - } - } -} - -// Charts - -.chart-types { - li { - width: 60px; - height: 60px; - margin: 6px; - - .thumb { - width: 100%; - height: 100%; - background-size: contain; - } - } -} - -// Cell style -.cell-styles.dataview { - .active:after { - right: 2px; - bottom: 2px; - } - - .row { - padding: 5px; - - li { - border: 1px solid @listBlockBorderColor; - html.pixel-ratio-2 & { - border: 0.5px solid @listBlockBorderColor; - } - html.pixel-ratio-3 & { - border: 0.33px solid @listBlockBorderColor; - } - padding: 2px; - - .thumb { - width: 112px; - height: 38px; - background-size: contain; - } - } - } -} - -// Workaround ios 10.3 - -.range-slider input[type=range]::-webkit-slider-thumb { - height: 28px; - width: 28px; - border-radius: 28px; - background: #fff; - box-shadow: 0 2px 4px rgba(0,0,0,0.4); - z-index: 10; - -webkit-appearance: none; -} - -.modal.modal-in { - max-height: 100%; - overflow: auto; -} - -//Filter Options -.filter-root-view { - .list-center .item-title { - text-align: center; - width: 100%; - } - #btn-delete-filter { - color: @red; - } -} - - -//Regional Settings -[data-page="regional-settings-view"] { - .list-block .item-title-row { - justify-content: start; - align-items: center; - display: flex; - } - .item-title { - margin-left: 20px; - font-weight: 500; - white-space: normal; - } -} - -@common-image-path: "../../../../common/mobile/resources/img"; -@img-flags-width: 48px; -.icon.lang-flag { - width: 16px; - height: 12px; - background-image: data-uri(%("%s",'@{common-image-path}/controls/flags.png')); - background-repeat: no-repeat; - background-size: auto; - - @media - only screen and (-webkit-min-device-pixel-ratio: 2), - only screen and (min-resolution: 2dppx), - only screen and (min-resolution: 192dpi) { - background-image: data-uri(%("%s",'@{common-image-path}/controls/flags@2x.png')); - background-size: @img-flags-width auto; - } -} - -.lang-flag { - background-position: -16px -108px; - - &.ca, &.ca-ES {background-position: 0 0;} - &.cs, &.cs-CZ {background-position: -16px 0;} - &.da, &.da-DK {background-position: -32px 0;} - &.de, &.de-DE {background-position: 0 -12px;} - &.el, &.el-GR {background-position: -16px -12px;} - &.en, &.en-US {background-position: -32px -12px;} - &.fr, &.fr-FR {background-position: 0 -24px;} - &.hu, &.hu-HU {background-position: -16px -24px;} - &.it, &.it-IT {background-position: -32px -24px;} - &.ko, &.ko-KR {background-position: 0 -36px;} - &.nl, &.nl-NL {background-position: -16px -36px;} - &.nb, &.nb-NO, &.nn, &.nn-NO {background-position: -32px -36px;} - &.pl, &.pl-PL {background-position: 0 -48px;} - &.pt, &.pt-BR {background-position: -16px -48px;} - &.ro, &.ro-RO {background-position: -32px -48px;} - &.ru, &.ru-RU {background-position: 0 -60px;} - &.sv, &.sv-SE {background-position: -32px -60px;} - &.tr, &.tr-TR {background-position: 0 -72px;} - &.uk, &.uk-UA {background-position: -16px -72px;} - &.lv, &.lv-LV {background-position: -32px -72px;} - &.lt, &.lt-LT {background-position: 0 -84px;} - &.vi, &.vi-VN {background-position: -16px -84px;} - &.de-CH {background-position: -32px -84px;} - &.pt-PT {background-position: -16px -96px;} - &.de-AT {background-position: -32px -96px;} - &.es, &.es-ES {background-position: 0 -108px;} - &.en-GB {background-position: -32px -108px;} - &.en-AU {background-position: 0 -120px;} - &.az-Latn-AZ {background-position: -16px -120px;} - &.id, &.id-ID {background-position: -32px -120px;} - - &.bg, &.bg-BG {background-position: 0 -132px;} - &.ca-ES-valencia {background-position: -16px -132px;} - &.en-CA {background-position: -32px -132px;} - &.en-ZA {background-position: 0 -144px;} - &.eu, &.eu-ES {background-position: -16px -144px;} - &.gl, &.gl-ES {background-position: -32px -144px;} - &.hr, &.hr-HR {background-position: 0 -156px;} - &.lb, &.lb-LU {background-position: -16px -156px;} - &.mn, &.mn-MN {background-position: -32px -156px;} - &.sl, &.sl-SI {background-position: 0 -168px;} - &.sr, &.sr-Cyrl-RS, &.sr-Latn-RS {background-position: -16px -168px;} - &.sk, &.sk-SK {background-position: -32px -168px;} - &.kk, &.kk-KZ {background-position: 0 -180px;} - &.fi, &.fi-FI, &.sv-FI {background-position: -16px -180px;} - &.zh, &.zh-CN {background-position: -32px -180px;} - &.ja, &.ja-JP {background-position: 0 -192px;} - &.es-MX {background-position: -16px -192px;} -} - -// Skeleton of workbook - -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - border: 1px solid #dfdfdf; - white-space: nowrap; - padding-top: 0; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - font-size: 0; - - > .columns { - width: 100%; - height: 100%; - display: inline-block; - background: linear-gradient(90deg, #d5d5d5 0px, rgba(0,0,0,0) 1px) 0 0, - linear-gradient(rgba(0,0,0,0) 19px, #d5d5d5 20px) 0 0, - linear-gradient( #f1f1f1 0px, #f1f1f1 20px) 0 0 repeat-x; - background-size: 80px 20px; - - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; - - &:first-child { - background: linear-gradient(#f1f1f1 19px, #d5d5d5 20px) 0 0; - background-size: 20px 20px; - width: 25px; - } - } -} - -//Comments -.picker-modal.container-view-comment { - &.onHide { - .swipe-container, .toolbar-inner, .pages { - opacity: 0.6; - } - } - background-color: #efeff4; - .swipe-container, .toolbar, .pages { - background-color: #FFFFFF; - } -} - -// Macros settings -.page-macros-settings[data-page="settings-macros-view"] { - .list-block { - li.media-item { - .item-title { - font-weight: normal; - } - .item-subtitle { - font-size: 14px; - color: @gray; - } - } - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/resources/less/app-material.less b/apps/spreadsheeteditor/mobile/resources/less/app-material.less deleted file mode 100644 index a5e3979d0..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/app-material.less +++ /dev/null @@ -1,374 +0,0 @@ -@import url('../../../../../vendor/framework7/src/less/material/_mixins.less'); -@import url('../../../../../vendor/framework7/src/less/material/_colors-vars.less'); - -// Colors -@themeColor: #40865c; // (79,158,79) -@themeColorLight: #c7e8d1; -@navBarIconColor: #fff; -@black: #000000; - -@appToolbarHeight: @navbarSize; - -@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'); - -// Disable text select -* { - -webkit-user-select: none; - user-select: none; -} - -input, textarea { - -webkit-touch-callout:default; - -webkit-user-select:text; - user-select:text; -} - -@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('../../../../common/mobile/resources/less/material/_color-schema.less'); -@import url('../../../../common/mobile/resources/less/material/_collaboration.less'); - -@import url('material/_search.less'); -@import url('material/_icons.less'); -@import url('../../../../common/mobile/resources/less/material/_sailfish_fix.less'); -@import url('app-common'); -@import url('celleditor'); -@import url('statusbar'); -@import url('sailfish-fix'); - -// Main Toolbar -#editor-navbar.navbar .right { - padding-right: 4px; -} -#editor-navbar.navbar .right a.link, -#editor-navbar.navbar .left a.link { - padding: 0 13px; -} - -.logo-navbar { - height: 80px; - .navbar-inner { - top: 24px; - height: 56px; - } -} - -.navbar-through > .page.editor.with-logo { - padding-top: 80px; -} -.navbar-hidden + .navbar-through > .page.editor.with-logo { - padding-top: 0; -} - -// Add Container - -#add-table, -#add-shape { - .page { - background-color: #fff; - } -} -.container-add { - .categories { - i.icon { - opacity: 0.5; - } - .active { - i.icon { - opacity: 1; - } - } - } -} - -// 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; - } - } -} - -// Charts - -.chart-types { - li { - width: 60px; - height: 60px; - margin: 6px; - - .thumb { - width: 100%; - height: 100%; - background-size: contain; - } - } -} - -// Cell style -.cell-styles.dataview { - .active:after { - right: 2px; - bottom: 2px; - } - - .row { - padding: 5px 0; - - li { - border: 1px solid @listBlockBorderColor; - html.pixel-ratio-2 & { - border: 0.5px solid @listBlockBorderColor; - } - html.pixel-ratio-3 & { - border: 0.33px solid @listBlockBorderColor; - } - padding: 2px; - - .thumb { - width: 112px; - height: 38px; - background-size: contain; - } - } - } -} - -.modal.modal-in { - max-height: 100%; - overflow: auto; -} - -//Filter Options -.filter-root-view { - .list-center .item-title { - text-align: center; - width: 100%; - } - #btn-delete-filter { - color: @red; - } -} - -//Regional Settings -[data-page="regional-settings-view"] { - .list-block .item-title-row { - justify-content: space-between; - align-items: center; - display: flex; - width: 100%; - } - .item-title { - font-weight: 400; - white-space: normal; - order: 1; - } -} - -@common-image-path: "../../../../common/mobile/resources/img"; -@img-flags-width: 48px; -.icon.lang-flag { - order: 2; - width: 16px; - height: 12px; - background-image: data-uri(%("%s",'@{common-image-path}/controls/flags.png')); - background-repeat: no-repeat; - background-size: auto; - - @media - only screen and (-webkit-min-device-pixel-ratio: 2), - only screen and (min-resolution: 2dppx), - only screen and (min-resolution: 192dpi) { - background-image: data-uri(%("%s",'@{common-image-path}/controls/flags@2x.png')); - background-size: @img-flags-width auto; - } -} - -.lang-flag { - background-position: -16px -108px; - - &.ca, &.ca-ES {background-position: 0 0;} - &.cs, &.cs-CZ {background-position: -16px 0;} - &.da, &.da-DK {background-position: -32px 0;} - &.de, &.de-DE {background-position: 0 -12px;} - &.el, &.el-GR {background-position: -16px -12px;} - &.en, &.en-US {background-position: -32px -12px;} - &.fr, &.fr-FR {background-position: 0 -24px;} - &.hu, &.hu-HU {background-position: -16px -24px;} - &.it, &.it-IT {background-position: -32px -24px;} - &.ko, &.ko-KR {background-position: 0 -36px;} - &.nl, &.nl-NL {background-position: -16px -36px;} - &.nb, &.nb-NO, &.nn, &.nn-NO {background-position: -32px -36px;} - &.pl, &.pl-PL {background-position: 0 -48px;} - &.pt, &.pt-BR {background-position: -16px -48px;} - &.ro, &.ro-RO {background-position: -32px -48px;} - &.ru, &.ru-RU {background-position: 0 -60px;} - &.sv, &.sv-SE {background-position: -32px -60px;} - &.tr, &.tr-TR {background-position: 0 -72px;} - &.uk, &.uk-UA {background-position: -16px -72px;} - &.lv, &.lv-LV {background-position: -32px -72px;} - &.lt, &.lt-LT {background-position: 0 -84px;} - &.vi, &.vi-VN {background-position: -16px -84px;} - &.de-CH {background-position: -32px -84px;} - &.pt-PT {background-position: -16px -96px;} - &.de-AT {background-position: -32px -96px;} - &.es, &.es-ES {background-position: 0 -108px;} - &.en-GB {background-position: -32px -108px;} - &.en-AU {background-position: 0 -120px;} - &.az-Latn-AZ {background-position: -16px -120px;} - &.id, &.id-ID {background-position: -32px -120px;} - - &.bg, &.bg-BG {background-position: 0 -132px;} - &.ca-ES-valencia {background-position: -16px -132px;} - &.en-CA {background-position: -32px -132px;} - &.en-ZA {background-position: 0 -144px;} - &.eu, &.eu-ES {background-position: -16px -144px;} - &.gl, &.gl-ES {background-position: -32px -144px;} - &.hr, &.hr-HR {background-position: 0 -156px;} - &.lb, &.lb-LU {background-position: -16px -156px;} - &.mn, &.mn-MN {background-position: -32px -156px;} - &.sl, &.sl-SI {background-position: 0 -168px;} - &.sr, &.sr-Cyrl-RS, &.sr-Latn-RS {background-position: -16px -168px;} - &.sk, &.sk-SK {background-position: -32px -168px;} - &.kk, &.kk-KZ {background-position: 0 -180px;} - &.fi, &.fi-FI, &.sv-FI {background-position: -16px -180px;} - &.zh, &.zh-CN {background-position: -32px -180px;} - &.ja, &.ja-JP {background-position: 0 -192px;} - &.es-MX {background-position: -16px -192px;} -} - -// Skeleton of workbook - -.doc-placeholder { - background: #fbfbfb; - width: 100%; - height: 100%; - border: 1px solid #dfdfdf; - white-space: nowrap; - padding-top: 0; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - font-size: 0; - - > .columns { - width: 100%; - height: 100%; - display: inline-block; - background: linear-gradient(90deg, #d5d5d5 0px, rgba(0,0,0,0) 1px) 0 0, - linear-gradient(rgba(0,0,0,0) 19px, #d5d5d5 20px) 0 0, - linear-gradient( #f1f1f1 0px, #f1f1f1 20px) 0 0 repeat-x; - background-size: 80px 20px; - - -webkit-animation: flickerAnimation 2s infinite ease-in-out; - -moz-animation: flickerAnimation 2s infinite ease-in-out; - -o-animation: flickerAnimation 2s infinite ease-in-out; - animation: flickerAnimation 2s infinite ease-in-out; - - &:first-child { - background: linear-gradient(#f1f1f1 19px, #d5d5d5 20px) 0 0; - background-size: 20px 20px; - width: 25px; - } - } -} - -//Comments -.picker-modal.container-view-comment { - &.onHide { - .swipe-container, .toolbar-inner, .pages { - opacity: 0.6; - } - } - background-color: #efeff4; - .swipe-container, .toolbar, .pages { - background-color: #FFFFFF; - } -} - -// Macros settings -.page-macros-settings[data-page="settings-macros-view"] { - .list-block { - li.media-item { - .item-title { - font-weight: normal; - } - .item-subtitle { - font-size: 14px; - color: @gray; - } - } - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/resources/less/celleditor.less b/apps/spreadsheeteditor/mobile/resources/less/celleditor.less deleted file mode 100644 index cad542396..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/celleditor.less +++ /dev/null @@ -1,183 +0,0 @@ -@gray-dark: #c4c4c4; -@gray-darker: #848484; //rgb(132, 132, 132) -@gray-light: #f1f1f1; //rgb(241, 241, 241) - -@cellEditorHeight: 30px; -@cellEditorExpandedHeight: 70px; - -.border-radius(@radius: 2px) { - border-radius: @radius; -} - -#cell-editing-box { - box-sizing: border-box; - * { - box-sizing: border-box; - } - - position: relative; - - height: @cellEditorHeight; - min-height: @cellEditorHeight; - transition: min-height .1s; - - background-color: #fff; - display: flex; - //align-items: stretch; - z-index: 500; - .hairline(bottom, @gray-dark);//@toolbarBorderColor); - - &.expanded { - min-height: @cellEditorExpandedHeight; - //height: @cellEditorExpandedHeight; - transition: min-height .1s; - } - - .btn { - border: 0 none; - height: @cellEditorHeight; - } - - .ce-group { - overflow: hidden; - height: 100%; - position: relative; - } - - .group-name { - display: inline-flex; - background-color: @gray-light; - z-index: 1; - } - - .group-content { - position: relative; - padding-left: 1px; - .hairline(left, @gray-dark); - flex-grow: 1; - //height: 100%; - } - - .group-name, .group-content, - .group-expand { - z-index: 1; - } - - .group-functions-list { - position: absolute; - height: @cellEditorHeight; - } - - #ce-cell-name { - display: inline-block; - width: 90px; - padding: 0 4px; - border: 0 none; - line-height: 30px; - //font-size: 17px; - text-align: center; - - &[disabled] { - color: @gray-darker; - opacity: 0.5; - } - } - - #ce-function { - height: @cellEditorHeight; - line-height: @cellEditorHeight; - padding: 0 10px; - } - - #ce-btn-expand { - width: @cellEditorHeight; - background-color: #fff; - padding: 0 2px 0; - - .caret { - display: block; - transition: transform 0.1s ease; - width: 16px; - height: 16px; - .encoded-svg-background(''); - } - - &.collapse { - .caret { - transform: rotate(180deg); - } - } - } - - #ce-cell-content { - display: block; - width: 100%; - padding: 3px 3px; - line-height: 1.428571429; - color: #000; - vertical-align: middle; - background-color: #fff; - - height: 100%; - resize: none; - min-height: @cellEditorHeight; - border: 0 none; - font-size: 16px; - - &[disabled] { - color: @gray-darker; - opacity: 0.5; - } - } - - #ce-cell-name, #ce-cell-content { - border-radius: 0; - } - - &.expanded { - .group-functions-list { - &.opened { - top: @cellEditorExpandedHeight; - } - } - } -} - -.group-functions-list { - width: 100%; - background-color: #fff; - top: 0; - .hairline(bottom, @gray-dark); - - transition: top .2s; - - &.opened { - top: @cellEditorHeight; - } - - &:not(.opened) { - display: none; - } - - ul { - white-space: nowrap; - overflow: hidden; - padding: 0; - margin: 0; - - > li { - display: inline-block; - - > a { - line-height: 30px; - padding: 0 8px 0; - } - } - } -} - -.phone { - #cell-editing-box #ce-cell-name { - display: none; - } -} diff --git a/apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less b/apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less deleted file mode 100644 index 6cb4506e6..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less +++ /dev/null @@ -1,595 +0,0 @@ -// Icons -i.icon { - &.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; - } - &.icon-search { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-undo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-redo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-reader { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-download { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-print { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-info { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-plus { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-about { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-help { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-versions { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-color { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-fill-color { - width: 22px; - height: 22px; - background-size: 130%; - .encoded-svg-background(''); - } - &.icon-text-align-center { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-jast { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-left { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-right { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-top { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-middle { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-bottom { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-prev, &.icon-prev-comment { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-next, &.icon-next-comment { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-link { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-insimage { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-sort { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-image-library { - width: 22px; - height: 22px; - .encoded-svg-background('icons_for_svg'); - } - &.icon-cell-wrap { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - &.icon-function { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - // Reorder - - &.icon-move-backward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-forward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-background { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-foreground { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Presets of table borders - - &.icon-table-borders-all { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-none { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-inner { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-outer { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-left { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-center { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-right { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-top { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-middle { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-bottom { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-dup { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-ddown { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Cell formats - - &.icon-format-general { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-number { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-integer { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-scientific { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-accounting { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-currency { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-date { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-time { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-percentage { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-text { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - // Filter sort - - &.sortdown { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.sortup { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - - // Formats - - &.icon-format-pdf { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pdfa { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-xlsx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-xltx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-ods { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-ots { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-csv { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - // Collaboration - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-users { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-app-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-table-settings { - width: 24px; - height: 24px; - .encoded-svg-background(' '); - } - &.icon-cut { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-copy { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-paste { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - //Comments - &.icon-menu-comment { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-resolve-comment { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-resolve-comment.check { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-insert-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - //Insert - &.icon-add-chart { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-formula { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - // Text orientation - &.icon-text-orientation-horizontal { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-anglecount { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-angleclock { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-vertical { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-rotateup { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-rotatedown { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} - -.active { - i.icon { - &.icon-add-chart { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-formula { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - } -} - -.chart-types .thumb { - &.bar-normal { - background-image: url('../img/charts/chart-03.png'); - } - &.bar-stacked { - background-image: url('../img/charts/chart-02.png'); - } - &.bar-pstacked { - background-image: url('../img/charts/chart-01.png'); - } - &.line-normal { - background-image: url('../img/charts/chart-06.png'); - } - &.line-stacked { - background-image: url('../img/charts/chart-05.png'); - } - &.line-pstacked { - background-image: url('../img/charts/chart-04.png'); - } - &.hbar-normal { - background-image: url('../img/charts/chart-09.png'); - } - &.hbar-stacked { - background-image: url('../img/charts/chart-08.png'); - } - &.hbar-pstacked { - background-image: url('../img/charts/chart-07.png'); - } - &.area-normal { - background-image: url('../img/charts/chart-12.png'); - } - &.area-stacked { - background-image: url('../img/charts/chart-11.png'); - } - &.area-pstacked { - background-image: url('../img/charts/chart-10.png'); - } - &.pie { - background-image: url('../img/charts/chart-13.png'); - } - &.doughnut { - background-image: url('../img/charts/chart-14.png'); - } - &.pie3d { - background-image: url('../img/charts/chart-22.png'); - } - &.scatter { - background-image: url('../img/charts/chart-15.png'); - } - &.stock { - background-image: url('../img/charts/chart-16.png'); - } - &.line3d { - background-image: url('../img/charts/chart-21.png'); - } - &.bar3dnormal { - background-image: url('../img/charts/chart-17.png'); - } - &.bar3dstack { - background-image: url('../img/charts/chart-18.png'); - } - &.bar3dpstack { - background-image: url('../img/charts/chart-19.png'); - } - &.hbar3dnormal { - background-image: url('../img/charts/chart-25.png'); - } - &.hbar3dstack { - background-image: url('../img/charts/chart-24.png'); - } - &.hbar3dpstack { - background-image: url('../img/charts/chart-23.png'); - } - &.bar3dpsnormal { - background-image: url('../img/charts/chart-20.png'); - } -} - -[applang=ru] i.icon { - &.sortdown { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.sortup { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/resources/less/ios/_search.less b/apps/spreadsheeteditor/mobile/resources/less/ios/_search.less deleted file mode 100644 index 71dc716a3..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/ios/_search.less +++ /dev/null @@ -1,122 +0,0 @@ -// 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: -(44+30)px; - } - - .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%); - background-color: #f7f7f8; -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/resources/less/material/_icons.less b/apps/spreadsheeteditor/mobile/resources/less/material/_icons.less deleted file mode 100644 index f9836126f..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/material/_icons.less +++ /dev/null @@ -1,609 +0,0 @@ -// Icons -i.icon { - &.icon-expand-up { - width: 17px; - height: 17px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 17px; - height: 17px; - .encoded-svg-background(''); - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-reader { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-download { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-print { - width: 22px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-info { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-about { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-help { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-versions { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-color { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-text-align-center { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-jast { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-left { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-align-right { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-top { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-middle { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-text-valign-bottom { - width: 22px; - height: 22px; - .encoded-svg-mask(''); - } - &.icon-link { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-insimage, &.icon-image-library { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-sort { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-function { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-app-settings { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-table-settings { - width: 24px; - height: 24px; - .encoded-svg-background(' '); - } - - - // Reorder - - &.icon-move-backward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-forward { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-background { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-move-foreground { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Presets of table borders - - &.icon-table-borders-all { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-none { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-inner { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-outer { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-left { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-center { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-right { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-top { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-middle { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-bottom { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-dup { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - &.icon-table-borders-ddown { - width: 28px; - height: 28px; - .encoded-svg-background(''); - } - - // Cell formats - - &.icon-format-general { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-number { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-integer { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-scientific { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-accounting { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-currency { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-date { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-time { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-percentage { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-format-text { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - - // Filter sort - - &.sortdown { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.sortup { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - - // Formats - - &.icon-format-pdf { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-pdfa { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-xlsx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-xltx { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-ods { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-ots { - width: 30px; - height: 30px; - .encoded-svg-background(''); - } - &.icon-format-csv { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - // Collaboration - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-users { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-cut { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-copy { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-paste { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - //Comments - &.icon-menu-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-resolve-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-resolve-comment.check { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-prev-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-next-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-done-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-insert-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-done-comment-white { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - // Text orientation - &.icon-text-orientation-horizontal { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-anglecount { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-angleclock { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-vertical { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-rotateup { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-text-orientation-rotatedown { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} - -// Overwrite color for toolbar -.navbar { - i.icon { - &.icon-logo { - width: 100px; - height: 14px; - background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; - } - &.icon-undo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-redo { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-search { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-burger { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-plus { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-edit { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-settings { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-prev { - width: 20px; - height: 20px; - .encoded-svg-background(''); - } - &.icon-next { - width: 20px; - height: 20px; - .encoded-svg-background(''); - } - &.icon-expand-down { - width: 22px; - height: 22px; - .encoded-svg-background(''); - } - &.icon-collaboration { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-chart { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-formula { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-shape { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-image { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-add-other { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.icon-close-comment { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - } -} - -.chart-types .thumb { - &.bar-normal { - background-image: url('../img/charts/chart-03.png'); - } - &.bar-stacked { - background-image: url('../img/charts/chart-02.png'); - } - &.bar-pstacked { - background-image: url('../img/charts/chart-01.png'); - } - &.line-normal { - background-image: url('../img/charts/chart-06.png'); - } - &.line-stacked { - background-image: url('../img/charts/chart-05.png'); - } - &.line-pstacked { - background-image: url('../img/charts/chart-04.png'); - } - &.hbar-normal { - background-image: url('../img/charts/chart-09.png'); - } - &.hbar-stacked { - background-image: url('../img/charts/chart-08.png'); - } - &.hbar-pstacked { - background-image: url('../img/charts/chart-07.png'); - } - &.area-normal { - background-image: url('../img/charts/chart-12.png'); - } - &.area-stacked { - background-image: url('../img/charts/chart-11.png'); - } - &.area-pstacked { - background-image: url('../img/charts/chart-10.png'); - } - &.pie { - background-image: url('../img/charts/chart-13.png'); - } - &.doughnut { - background-image: url('../img/charts/chart-14.png'); - } - &.pie3d { - background-image: url('../img/charts/chart-22.png'); - } - &.scatter { - background-image: url('../img/charts/chart-15.png'); - } - &.stock { - background-image: url('../img/charts/chart-16.png'); - } - &.line3d { - background-image: url('../img/charts/chart-21.png'); - } - &.bar3dnormal { - background-image: url('../img/charts/chart-17.png'); - } - &.bar3dstack { - background-image: url('../img/charts/chart-18.png'); - } - &.bar3dpstack { - background-image: url('../img/charts/chart-19.png'); - } - &.hbar3dnormal { - background-image: url('../img/charts/chart-25.png'); - } - &.hbar3dstack { - background-image: url('../img/charts/chart-24.png'); - } - &.hbar3dpstack { - background-image: url('../img/charts/chart-23.png'); - } - &.bar3dpsnormal { - background-image: url('../img/charts/chart-20.png'); - } -} - -[applang=ru] i.icon { - &.sortdown { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } - &.sortup { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/resources/less/material/_search.less b/apps/spreadsheeteditor/mobile/resources/less/material/_search.less deleted file mode 100644 index 93a72ea17..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/material/_search.less +++ /dev/null @@ -1,120 +0,0 @@ -// 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 diff --git a/apps/spreadsheeteditor/mobile/resources/less/sailfish-fix.less b/apps/spreadsheeteditor/mobile/resources/less/sailfish-fix.less deleted file mode 100644 index 4af729b28..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/sailfish-fix.less +++ /dev/null @@ -1,35 +0,0 @@ - -.sailfish { - #cell-editing-box { - display: block; - - .group-content { - position: absolute; - top: 0; - left: 42px; - right: 30px; - - .tablet& { - left: 132px; - } - } - - .group-expand { - position: absolute; - top: 0; - right: 0; - } - - #ce-btn-expand { - .caret { - .encoded-svg-background(''); - } - } - } - - .statusbar { - position: absolute; - bottom: 0; - width: 100%; - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/resources/less/statusbar.less b/apps/spreadsheeteditor/mobile/resources/less/statusbar.less deleted file mode 100644 index 1578d0053..000000000 --- a/apps/spreadsheeteditor/mobile/resources/less/statusbar.less +++ /dev/null @@ -1,88 +0,0 @@ -@statusBarBorderColor: #cbcbcb; -@statusBarHeight: 30px; -@fontColor: #000; - -.statusbar { - position: relative; - box-sizing: border-box; - background-color: @gray-light; - z-index: @baseZIndex + 1; - - * { - box-sizing: border-box; - } - - .hairline(top, @statusBarBorderColor); - height: @statusBarHeight; - min-height: @statusBarHeight; - - .box-tabs { - } - - #box-addtab { - float: left; - } - - .button { - border: 0 none; - border-radius: 0; - color: #000; - font-size: 18px; - line-height: inherit; - min-width: 48px; - .hairline(right, @statusBarBorderColor); - } - - i.icon { - width: 22px; - height: 22px; - - &.icon-plus { - .encoded-svg-background(''); - } - } -} - -.box-tabs { - ul { - margin: 0; - padding: 0; - white-space: pre; - overflow: hidden; - - > li { - list-style: none; - display: inline-block; - position: relative; - .hairline(right, @statusBarBorderColor); - - &:not(.active) { - a { - opacity: 0.5; - } - } - - a { - display: inline-block; - font-size: 12px; - padding: 0 10px 0; - line-height: @statusBarHeight; - margin-right: -1px; - outline: none; - color: @fontColor; - height: 100%; - - - &:hover { - cursor: pointer; - } - } - } - } - - .locked { - a { - box-shadow: inset 0 2px #f00; - } - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/app.js b/apps/spreadsheeteditor/mobile/src/app.js new file mode 100644 index 000000000..ab1e87de8 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/app.js @@ -0,0 +1,45 @@ +// Import React and ReactDOM +import React, { Suspense } from 'react'; +import ReactDOM from 'react-dom'; + +// Import Framework7 +import Framework7 from 'framework7/lite-bundle'; +import { Dom7 } from 'framework7'; +window.$$ = Dom7; + +// Import Framework7-React Plugin +import Framework7React from 'framework7-react'; + +import jQuery from 'jquery'; +window.jQuery = jQuery; +window.$ = jQuery; + +// Import Framework7 Styles +import 'framework7/framework7-bundle.css'; + +// Import App Custom Styles +import './less/app.less'; +import '../../../../../sdkjs/cell/css/main-mobile.css' + +// Import App Component +import App from './page/app'; +import { I18nextProvider } from 'react-i18next'; +import i18n from './lib/i18n.js'; + +import { Provider } from 'mobx-react'; +import { stores } from './store/mainStore'; + +// Init F7 React Plugin +Framework7.use(Framework7React); + +// Mount React App +ReactDOM.render( + + + + + + + , + document.getElementById('app'), +); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/CellEditor.jsx b/apps/spreadsheeteditor/mobile/src/controller/CellEditor.jsx new file mode 100644 index 000000000..1170be25b --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/CellEditor.jsx @@ -0,0 +1,22 @@ + +import React, { useEffect, useState } from 'react'; +import CellEditorView from '../view/CellEditor'; + +const CellEditor = props => { + useEffect(() => { + Common.Notifications.on('engineCreated', api => { + api.asc_registerCallback('asc_onSelectionNameChanged', onApiCellSelection.bind(this)); + }); + }, []); + + const [cellName, setCellName] = useState(''); + + const onApiCellSelection = info => { + setCellName(typeof(info)=='string' ? info : info.asc_getName()); + }; + + return +}; + +export default CellEditor; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx b/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx new file mode 100644 index 000000000..7965086fb --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx @@ -0,0 +1,232 @@ +import React, { useContext } from 'react'; +import { f7 } from 'framework7-react'; +import { inject, observer } from "mobx-react"; +import { withTranslation} from 'react-i18next'; +import { LocalStorage } from '../../../../common/mobile/utils/LocalStorage'; + +import ContextMenuController from '../../../../common/mobile/lib/controller/ContextMenu'; +import { idContextMenuElement } from '../../../../common/mobile/lib/view/ContextMenu'; +import { Device } from '../../../../common/mobile/utils/device'; +import EditorUIController from '../lib/patch'; + +@inject ( stores => ({ + isEdit: stores.storeAppOptions.isEdit, + canViewComments: stores.storeAppOptions.canViewComments, + users: stores.users, + isDisconnected: stores.users.isDisconnected, + storeSheets: stores.sheets +})) +class ContextMenu extends ContextMenuController { + constructor(props) { + super(props); + + // console.log('context menu controller created'); + this.onApiShowComment = this.onApiShowComment.bind(this); + this.onApiHideComment = this.onApiHideComment.bind(this); + this.getUserName = this.getUserName.bind(this); + } + + static closeContextMenu() { + f7.popover.close(idContextMenuElement, false); + } + + getUserName(id) { + const user = this.props.users.searchUserByCurrentId(id); + return Common.Utils.UserInfoParser.getParsedName(user.asc_getUserName()); + } + + componentWillUnmount() { + super.componentWillUnmount(); + + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onShowComment', this.onApiShowComment); + api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment); + } + + + onApiShowComment(comments) { + this.isComments = comments && comments.length > 0; + } + + onApiHideComment() { + this.isComments = false; + } + + // onMenuClosed() { + // super.onMenuClosed(); + // } + + onMenuItemClick(action) { + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + + super.onMenuItemClick(action); + + if ( EditorUIController.ContextMenu && EditorUIController.ContextMenu.handleMenuItemClick(this, action) ) + return; + + const api = Common.EditorApi.get(); + const info = api.asc_getCellInfo(); + switch (action) { + case 'cut': + if (!LocalStorage.getBool("sse-hide-copy-cut-paste-warning")) { + this.showCopyCutPasteModal(); + } + break; + case 'copy': + if (!api.asc_Copy() && !LocalStorage.getBool("sse-hide-copy-cut-paste-warning")) { + this.showCopyCutPasteModal(); + } + break; + case 'paste': + if (!LocalStorage.getBool("sse-hide-copy-cut-paste-warning")) { + this.showCopyCutPasteModal(); + } + break; + case 'viewcomment': + Common.Notifications.trigger('viewcomment'); + break; + case 'openlink': + const linkinfo = info.asc_getHyperlink(); + if ( linkinfo.asc_getType() == Asc.c_oAscHyperlinkType.RangeLink ) { + const nameSheet = linkinfo.asc_getSheet(); + const curActiveSheet = api.asc_getActiveWorksheetIndex(); + api.asc_setWorksheetRange(linkinfo); + const {storeSheets} = this.props; + const tab = storeSheets.sheets.find((sheet) => sheet.name === nameSheet); + if (tab) { + const sdkIndex = tab.index; + if (sdkIndex !== curActiveSheet) { + const index = storeSheets.sheets.indexOf(tab); + storeSheets.setActiveWorksheet(index); + Common.Notifications.trigger('sheet:active', sdkIndex); + } + } + } else { + const url = linkinfo.asc_getHyperlinkUrl().replace(/\s/g, "%20"); + api.asc_getUrlType(url) > 0 && this.openLink(url); + } + break; + } + } + + onMergeCells() { + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + const api = Common.EditorApi.get(); + if (api.asc_mergeCellsDataLost(Asc.c_oAscMergeOptions.Merge)) { + setTimeout(() => { + f7.dialog.confirm(_t.warnMergeLostData, _t.notcriticalErrorTitle, () => { + api.asc_mergeCells(Asc.c_oAscMergeOptions.Merge); + }); + }, 0); + } else { + api.asc_mergeCells(Asc.c_oAscMergeOptions.Merge); + } + } + + showCopyCutPasteModal() { + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + f7.dialog.create({ + title: _t.textCopyCutPasteActions, + text: _t.errorCopyCutPaste, + content: `
                    + + ${_t.textDoNotShowAgain} +
                    `, + buttons: [{ + text: 'OK', + onClick: () => { + const dontShow = $$('input[name="checkbox-show"]').prop('checked'); + if (dontShow) LocalStorage.setItem("de-hide-copy-cut-paste-warning", 1); + } + }] + }).open(); + } + + openLink(url) { + const newDocumentPage = window.open(url, '_blank'); + + if (newDocumentPage) { + newDocumentPage.focus(); + } + } + + onDocumentReady() { + super.onDocumentReady(); + + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onShowComment', this.onApiShowComment); + api.asc_registerCallback('asc_onHideComment', this.onApiHideComment); + } + + initMenuItems() { + if ( !Common.EditorApi ) return []; + + const { t } = this.props; + const _t = t("ContextMenu", { returnObjects: true }); + + const { isEdit } = this.props; + + if (isEdit && EditorUIController.ContextMenu) { + return EditorUIController.ContextMenu.mapMenuItems(this); + } else { + const {canViewComments } = this.props; + + const api = Common.EditorApi.get(); + const cellinfo = api.asc_getCellInfo(); + + const itemsIcon = []; + const itemsText = []; + + let iscellmenu, isrowmenu, iscolmenu, isallmenu, ischartmenu, isimagemenu, istextshapemenu, isshapemenu, istextchartmenu; + const seltype = cellinfo.asc_getSelectionType(); + const isComments = cellinfo.asc_getComments().length > 0; //prohibit adding multiple comments in one cell; + + switch (seltype) { + case Asc.c_oAscSelectionType.RangeCells: iscellmenu = true; break; + case Asc.c_oAscSelectionType.RangeRow: isrowmenu = true; break; + case Asc.c_oAscSelectionType.RangeCol: iscolmenu = true; break; + case Asc.c_oAscSelectionType.RangeMax: isallmenu = true; break; + case Asc.c_oAscSelectionType.RangeImage: isimagemenu = true; break; + case Asc.c_oAscSelectionType.RangeShape: isshapemenu = true; break; + case Asc.c_oAscSelectionType.RangeChart: ischartmenu = true; break; + case Asc.c_oAscSelectionType.RangeChartText: istextchartmenu = true; break; + case Asc.c_oAscSelectionType.RangeShapeText: istextshapemenu = true; break; + } + + if (iscellmenu || istextchartmenu || istextshapemenu) { + itemsIcon.push({ + event: 'copy', + icon: 'icon-copy' + }); + } + if (iscellmenu && cellinfo.asc_getHyperlink()) { + itemsText.push({ + caption: _t.menuOpenLink, + event: 'openlink' + }); + } + if (canViewComments && isComments) { + itemsText.push({ + caption: _t.menuViewComment, + event: 'viewcomment' + }); + } + + return itemsIcon.concat(itemsText); + } + } + + initExtraItems () { + return (this.extraItems && this.extraItems.length > 0 ? this.extraItems : []); + } +} + +const _ContextMenu = withTranslation()(ContextMenu); +_ContextMenu.closeContextMenu = ContextMenu.closeContextMenu; +export { _ContextMenu as default }; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/Error.jsx b/apps/spreadsheeteditor/mobile/src/controller/Error.jsx new file mode 100644 index 000000000..340da6739 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/Error.jsx @@ -0,0 +1,355 @@ +import React, { useEffect } from 'react'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; + +const ErrorController = inject('storeAppOptions')(({storeAppOptions, LoadingDocument}) => { + const {t} = useTranslation(); + const _t = t("Error", { returnObjects: true }); + + useEffect(() => { + Common.Notifications.on('engineCreated', (api) => { + api.asc_registerCallback('asc_onError', onError); + }); + return () => { + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onError', onError); + } + }); + + const onError = (id, level, errData) => { + + if (id === Asc.c_oAscError.ID.LoadingScriptError) { + f7.notification.create({ + title: _t.criticalErrorTitle, + text: _t.scriptLoadError, + closeButton: true + }).open(); + return; + } + + Common.Notifications.trigger('preloader:close'); + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); + + const api = Common.EditorApi.get(); + + const config = { + closable: false + }; + + switch (id) + { + case Asc.c_oAscError.ID.Unknown: + config.msg = _t.unknownErrorText; + break; + + case Asc.c_oAscError.ID.ConvertationTimeout: + config.msg = _t.convertationTimeoutText; + break; + + case Asc.c_oAscError.ID.ConvertationOpenError: + config.msg = _t.openErrorText; + break; + + case Asc.c_oAscError.ID.ConvertationSaveError: + config.msg = _t.saveErrorText; + break; + + case Asc.c_oAscError.ID.DownloadError: + config.msg = _t.downloadErrorText; + break; + + case Asc.c_oAscError.ID.UplImageSize: + config.msg = _t.uploadImageSizeMessage; + break; + + case Asc.c_oAscError.ID.UplImageExt: + config.msg = _t.uploadImageExtMessage; + break; + + case Asc.c_oAscError.ID.UplImageFileCount: + config.msg = _t.uploadImageFileCountMessage; + break; + + case Asc.c_oAscError.ID.PastInMergeAreaError: + config.msg = _t.pastInMergeAreaError; + break; + + case Asc.c_oAscError.ID.FrmlWrongCountParentheses: + config.msg = _t.errorWrongBracketsCount; + config.closable = true; + break; + + case Asc.c_oAscError.ID.FrmlWrongOperator: + config.msg = _t.errorWrongOperator; + config.closable = true; + break; + + case Asc.c_oAscError.ID.FrmlWrongMaxArgument: + config.msg = _t.errorCountArgExceed; + config.closable = true; + break; + + case Asc.c_oAscError.ID.FrmlWrongCountArgument: + config.msg = _t.errorCountArg; + config.closable = true; + break; + + case Asc.c_oAscError.ID.FrmlWrongFunctionName: + config.msg = _t.errorFormulaName; + config.closable = true; + break; + + case Asc.c_oAscError.ID.FrmlAnotherParsingError: + config.msg = _t.errorFormulaParsing; + config.closable = true; + break; + + case Asc.c_oAscError.ID.FrmlWrongArgumentRange: + config.msg = _t.errorArgsRange; + config.closable = true; + break; + + case Asc.c_oAscError.ID.UnexpectedGuid: + config.msg = _t.errorUnexpectedGuid; + break; + + case Asc.c_oAscError.ID.FileRequest: + config.msg = _t.errorFileRequest; + break; + + case Asc.c_oAscError.ID.FileVKey: + config.msg = _t.errorFileVKey; + break; + + case Asc.c_oAscError.ID.MaxDataPointsError: + config.msg = _t.errorMaxPoints; + break; + + case Asc.c_oAscError.ID.FrmlOperandExpected: + config.msg = _t.errorOperandExpected; + config.closable = true; + break; + + case Asc.c_oAscError.ID.CannotMoveRange: + config.msg = _t.errorMoveRange; + break; + + case Asc.c_oAscError.ID.AutoFilterDataRangeError: + config.msg = _t.errorAutoFilterDataRange; + break; + + case Asc.c_oAscError.ID.AutoFilterChangeFormatTableError: + config.msg = _t.errorAutoFilterChangeFormatTable; + break; + + case Asc.c_oAscError.ID.AutoFilterChangeError: + config.msg = _t.errorAutoFilterChange; + break; + + case Asc.c_oAscError.ID.AutoFilterMoveToHiddenRangeError: + config.msg = _t.errorAutoFilterHiddenRange; + break; + + case Asc.c_oAscError.ID.CannotFillRange: + config.msg = _t.errorFillRange; + break; + + case Asc.c_oAscError.ID.InvalidReferenceOrName: + config.msg = _t.errorInvalidRef; + break; + + case Asc.c_oAscError.ID.LockCreateDefName: + config.msg = _t.errorCreateDefName; + break; + + case Asc.c_oAscError.ID.PasteMaxRangeError: + config.msg = _t.errorPasteMaxRange; + break; + + case Asc.c_oAscError.ID.LockedAllError: + config.msg = _t.errorLockedAll; + break; + + case Asc.c_oAscError.ID.LockedWorksheetRename: + config.msg = _t.errorLockedWorksheetRename; + break; + + case Asc.c_oAscError.ID.OpenWarning: + config.msg = _t.errorOpenWarning; + break; + + case Asc.c_oAscError.ID.FrmlWrongReferences: + config.msg = _t.errorFrmlWrongReferences; + config.closable = true; + break; + + case Asc.c_oAscError.ID.CopyMultiselectAreaError: + config.msg = _t.errorCopyMultiselectArea; + break; + + case Asc.c_oAscError.ID.PrintMaxPagesCount: + config.msg = _t.errorPrintMaxPagesCount; + break; + + case Asc.c_oAscError.ID.CannotChangeFormulaArray: + config.msg = _t.errorChangeArray; + break; + + case Asc.c_oAscError.ID.MultiCellsInTablesFormulaArray: + config.msg = _t.errorMultiCellFormula; + break; + + case Asc.c_oAscError.ID.FrmlMaxTextLength: + config.msg = _t.errorFrmlMaxTextLength; + break; + + case Asc.c_oAscError.ID.FrmlMaxLength: + config.msg = _t.errorFrmlMaxLength; + break; + + case Asc.c_oAscError.ID.FrmlMaxReference: + config.msg = _t.errorFrmlMaxReference; + break; + + case Asc.c_oAscError.ID.DataValidate: + errData && errData.asc_getErrorTitle() && (config.title = Common.Utils.String.htmlEncode(errData.asc_getErrorTitle())); + config.msg = errData && errData.asc_getError() ? Common.Utils.String.htmlEncode(errData.asc_getError()) : _t.errorDataValidate; + break; + + case Asc.c_oAscError.ID.VKeyEncrypt: + config.msg = _t.errorKeyEncrypt; + break; + + case Asc.c_oAscError.ID.KeyExpire: + config.msg = _t.errorKeyExpire; + break; + + case Asc.c_oAscError.ID.UserCountExceed: + config.msg = _t.errorUsersExceed; + break; + + case Asc.c_oAscError.ID.CoAuthoringDisconnect: + config.msg = _t.errorViewerDisconnect; + break; + + case Asc.c_oAscError.ID.ConvertationPassword: + config.msg = _t.errorFilePassProtect; + break; + + case Asc.c_oAscError.ID.StockChartError: + config.msg = _t.errorStockChart; + break; + + case Asc.c_oAscError.ID.DataRangeError: + config.msg = _t.errorDataRange; + break; + + case Asc.c_oAscError.ID.Database: + config.msg = _t.errorDatabaseConnection; + break; + + case Asc.c_oAscError.ID.UserDrop: + const lostEditingRights = storeAppOptions.lostEditingRights; + if (lostEditingRights) { + storeAppOptions.changeEditingRights(false); + return; + } + storeAppOptions.changeEditingRights(true); + config.msg = _t.errorUserDrop; + break; + + case Asc.c_oAscError.ID.Warning: + config.msg = _t.errorConnectToServer; + break; + + case Asc.c_oAscError.ID.UplImageUrl: + config.msg = _t.errorBadImageUrl; + break; + + case Asc.c_oAscError.ID.SessionAbsolute: + config.msg = _t.errorSessionAbsolute; + break; + + case Asc.c_oAscError.ID.SessionIdle: + config.msg = _t.errorSessionIdle; + break; + + case Asc.c_oAscError.ID.SessionToken: + config.msg = _t.errorSessionToken; + break; + + case Asc.c_oAscError.ID.DataEncrypted: + config.msg = _t.errorDataEncrypted; + break; + + case Asc.c_oAscError.ID.AccessDeny: + config.msg = _t.errorAccessDeny; + break; + + case Asc.c_oAscError.ID.EditingError: + config.msg = _t.errorEditingDownloadas; + break; + + case Asc.c_oAscError.ID.ConvertationOpenLimitError: + config.msg = _t.errorFileSizeExceed; + break; + + case Asc.c_oAscError.ID.UpdateVersion: + config.msg = _t.errorUpdateVersionOnDisconnect; + break; + + default: + config.msg = _t.errorDefaultMessage.replace('%1', id); + break; + } + + if (level === Asc.c_oAscError.Level.Critical) { + + // report only critical errors + Common.Gateway.reportError(id, config.msg); + + config.title = _t.criticalErrorTitle; + + if (storeAppOptions.canBackToFolder && !storeAppOptions.isDesktopApp) { + config.msg += '

                    ' + _t.criticalErrorExtText; + config.callback = function() { + Common.Notifications.trigger('goback', true); + } + } + if (id === Asc.c_oAscError.ID.DataEncrypted) { + api.asc_coAuthoringDisconnect(); + Common.Notifications.trigger('api:disconnect'); + } + } + else { + Common.Gateway.reportWarning(id, config.msg); + + config.title = config.title || _t.notcriticalErrorTitle; + config.callback = (btn) => { + if (id == Asc.c_oAscError.ID.DataValidate) { + api.asc_closeCellEditor(true); + } + storeAppOptions.changeEditingRights(false); + }; + } + + f7.dialog.create({ + cssClass: 'error-dialog', + title : config.title, + text : config.msg, + buttons: [ + { + text: 'OK', + onClick: config.callback + } + ] + }).open(); + + Common.component.Analytics.trackEvent('Internal Error', id.toString()); + }; + + return null +}); + +export default ErrorController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/LongActions.jsx b/apps/spreadsheeteditor/mobile/src/controller/LongActions.jsx new file mode 100644 index 000000000..08127984b --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/LongActions.jsx @@ -0,0 +1,193 @@ +import React, { useEffect } from 'react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import IrregularStack from "../../../../common/mobile/utils/IrregularStack"; + +const LongActionsController = () => { + const {t} = useTranslation(); + const _t = t("LongActions", { returnObjects: true }); + + const ApplyEditRights = -255; + const LoadingDocument = -256; + + const stackLongActions = new IrregularStack({ + strongCompare : function(obj1, obj2){return obj1.id === obj2.id && obj1.type === obj2.type;}, + weakCompare : function(obj1, obj2){return obj1.type === obj2.type;} + }); + + let loadMask = null; + + const closePreloader = () => { + if (loadMask && loadMask.el) { + f7.dialog.close(loadMask.el); + } + }; + + useEffect( () => { + Common.Notifications.on('engineCreated', (api) => { + api.asc_registerCallback('asc_onStartAction', onLongActionBegin); + api.asc_registerCallback('asc_onEndAction', onLongActionEnd); + api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument); + }); + Common.Notifications.on('preloader:endAction', onLongActionEnd); + Common.Notifications.on('preloader:beginAction', onLongActionBegin); + Common.Notifications.on('preloader:close', closePreloader); + + return ( () => { + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onStartAction', onLongActionBegin); + api.asc_unregisterCallback('asc_onEndAction', onLongActionEnd); + api.asc_unregisterCallback('asc_onOpenDocumentProgress', onOpenDocument); + + Common.Notifications.off('preloader:endAction', onLongActionEnd); + Common.Notifications.off('preloader:beginAction', onLongActionBegin); + Common.Notifications.off('preloader:close', closePreloader); + }) + }); + + const onLongActionBegin = (type, id) => { + const action = {id: id, type: type}; + stackLongActions.push(action); + setLongActionView(action); + }; + + const onLongActionEnd = (type, id) => { + let action = {id: id, type: type}; + stackLongActions.pop(action); + + //this.updateWindowTitle(true); + + action = stackLongActions.get({type: Asc.c_oAscAsyncActionType.Information}); + + if (action) { + this.setLongActionView(action) + } + + action = stackLongActions.get({type: Asc.c_oAscAsyncActionType.BlockInteraction}); + + if (action) { + setLongActionView(action) + } else { + loadMask && loadMask.el && loadMask.el.classList.contains('modal-in') && f7.dialog.close(loadMask.el); + } + }; + + const setLongActionView = (action) => { + let title = ''; + let text = ''; + switch (action.id) { + case Asc.c_oAscAsyncAction['Open']: + title = _t.openTitleText; + text = _t.openTextText; + break; + + case Asc.c_oAscAsyncAction['Save']: + title = _t.saveTitleText; + text = _t.saveTextText; + break; + + case Asc.c_oAscAsyncAction['LoadDocumentFonts']: + title = _t.loadFontsTitleText; + text = _t.loadFontsTextText; + break; + + case Asc.c_oAscAsyncAction['LoadDocumentImages']: + title = _t.loadImagesTitleText; + text = _t.loadImagesTextText; + break; + + case Asc.c_oAscAsyncAction['LoadFont']: + title = _t.loadFontTitleText; + text = _t.loadFontTextText; + break; + + case Asc.c_oAscAsyncAction['LoadImage']: + title = _t.loadImageTitleText; + text = _t.loadImageTextText; + break; + + case Asc.c_oAscAsyncAction['DownloadAs']: + title = _t.downloadTitleText; + text = _t.downloadTextText; + break; + + case Asc.c_oAscAsyncAction['Print']: + title = _t.printTitleText; + text = _t.printTextText; + break; + + case Asc.c_oAscAsyncAction['UploadImage']: + title = _t.uploadImageTitleText; + text = _t.uploadImageTextText; + break; + + case Asc.c_oAscAsyncAction['ApplyChanges']: + title = _t.applyChangesTitleText; + text = _t.applyChangesTextText; + break; + + case Asc.c_oAscAsyncAction['PrepareToSave']: + title = _t.savePreparingText; + text = _t.savePreparingTitle; + break; + + case Asc.c_oAscAsyncAction['MailMergeLoadFile']: + title = _t.mailMergeLoadFileText; + text = _t.mailMergeLoadFileTitle; + break; + + case Asc.c_oAscAsyncAction['DownloadMerge']: + title = _t.downloadMergeTitle; + text = _t.downloadMergeText; + break; + + case Asc.c_oAscAsyncAction['SendMailMerge']: + title = _t.sendMergeTitle; + text = _t.sendMergeText; + break; + + case Asc.c_oAscAsyncAction['Waiting']: + title = _t.waitText; + text = _t.waitText; + break; + + case ApplyEditRights: + title = _t.txtEditingMode; + text = _t.txtEditingMode; + break; + + case LoadingDocument: + title = _t.loadingDocumentTitleText; + text = _t.loadingDocumentTextText; + break; + default: + if (typeof action.id == 'string'){ + title = action.id; + text = action.id; + } + break; + } + + if (action.type == Asc.c_oAscAsyncActionType.BlockInteraction) { + if (loadMask && loadMask.el && loadMask.el.classList.contains('modal-in')) { + loadMask.el.getElementsByClassName('dialog-title')[0].innerHTML = title; + } else { + loadMask = f7.dialog.preloader(title); + } + } + + }; + + const onOpenDocument = (progress) => { + if (loadMask && loadMask.el) { + const $title = loadMask.el.getElementsByClassName('dialog-title')[0]; + const proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount()); + + $title.innerHTML = `${_t.textLoadingDocument}: ${Math.min(Math.round(proc * 100), 100)}%`; + } + } + + return null; +}; + +export default LongActionsController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/Main.jsx b/apps/spreadsheeteditor/mobile/src/controller/Main.jsx new file mode 100644 index 000000000..034d235c0 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/Main.jsx @@ -0,0 +1,769 @@ + +import React, { Component, Fragment } from 'react' +import { inject } from "mobx-react"; +import { f7 } from 'framework7-react'; +import { withTranslation } from 'react-i18next'; +import CollaborationController from '../../../../common/mobile/lib/controller/collaboration/Collaboration.jsx' +import { onAdvancedOptions } from './settings/Download.jsx'; +import EditorUIController from '../lib/patch'; +import { + AddCommentController, + CommentsController, + EditCommentController, + ViewCommentsController +} from "../../../../common/mobile/lib/controller/collaboration/Comments"; +import {LocalStorage} from "../../../../common/mobile/utils/LocalStorage"; +import LongActionsController from "./LongActions"; +import ErrorController from "./Error"; +import app from "../page/app"; +import About from "../../../../common/mobile/lib/view/About"; +import PluginsController from '../../../../common/mobile/lib/controller/Plugins.jsx'; + +@inject( + "storeAppOptions", + "storeFocusObjects", + "storeCellSettings", + "storeTextSettings", + "storeChartSettings", + "storeSpreadsheetSettings", + "storeSpreadsheetInfo", + "storeApplicationSettings" + ) +class MainController extends Component { + constructor(props) { + super(props); + window.editorType = 'sse'; + + this.LoadingDocument = -256; + + this._state = { + licenseType: false, + isDocModified: false + }; + + this.defaultTitleText = __APP_TITLE_TEXT__; + + const { t } = this.props; + this._t = t('Controller.Main', {returnObjects:true}); + } + + initSdk() { + const script = document.createElement("script"); + script.src = "../../../../sdkjs/develop/sdkjs/cell/scripts.js"; + script.async = true; + script.onload = () => { + let dep_scripts = [ + '../../../vendor/jquery/jquery.min.js', + '../../../vendor/jquery.browser/dist/jquery.browser.min.js', + '../../../vendor/bootstrap/dist/js/bootstrap.js', + '../../../vendor/underscore/underscore-min.js', + '../../../vendor/xregexp/xregexp-all-min.js', + '../../../vendor/sockjs/sockjs.min.js', + '../../../vendor/jszip/jszip.min.js', + '../../../vendor/jszip-utils/jszip-utils.min.js']; + dep_scripts.push(...sdk_scripts); + + const promise_get_script = (scriptpath) => { + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = scriptpath; + script.onload = () => { + resolve('ok'); + }; + script.onerror = () => { + reject('error'); + }; + + document.body.appendChild(script); + }); + }; + + const loadConfig = data => { + const _t = this._t; + + EditorUIController.isSupportEditFeature(); + + this.editorConfig = Object.assign({}, this.editorConfig, data.config); + this.appOptions.lang = this.editorConfig.lang; + + const appOptions = this.props.storeAppOptions; + appOptions.setConfigOptions(this.editorConfig, _t); + + let value; + if (appOptions.canRenameAnonymous) { + value = LocalStorage.getItem("guest-username"); + //Common.Utils.InternalSettings.set("guest-username", value); + //Common.Utils.InternalSettings.set("save-guest-username", !!value); + } + + value = LocalStorage.getItem("sse-settings-regional"); + if (value !== null) { + this.api.asc_setLocale(parseInt(value)); + } else { + value = appOptions.region; + value = Common.util.LanguageInfo.getLanguages().hasOwnProperty(value) ? value : Common.util.LanguageInfo.getLocalLanguageCode(value); + if (value !== null) { + value = parseInt(value); + } else { + value = (appOptions.lang) ? parseInt(Common.util.LanguageInfo.getLocalLanguageCode(appOptions.lang)) : 0x0409; + } + this.api.asc_setLocale(value); + } + + if (appOptions.location == 'us' || appOptions.location == 'ca') { + Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch); + } + + //if (!appOptions.customization || !(appOptions.customization.loaderName || appOptions.customization.loaderLogo)) + //$('#editor_sdk').append('
                    ' + '
                    '.repeat(2) + '
                    '); + + value = LocalStorage.getItem("sse-mobile-macros-mode"); + if (value === null) { + value = appOptions.customization ? appOptions.customization.macrosMode : 'warn'; + value = (value === 'enable') ? 1 : (value === 'disable' ? 2 : 0); + } else { + value = parseInt(value); + } + this.props.storeApplicationSettings.changeMacrosSettings(value); + }; + + const loadDocument = data => { + this.permissions = {}; + this.document = data.doc; + + let docInfo = {}; + + if ( data.doc ) { + this.permissions = Object.assign(this.permissions, data.doc.permissions); + + let _permissions = Object.assign({}, data.doc.permissions), + _user = new Asc.asc_CUserInfo(); + const _userOptions = this.props.storeAppOptions.user; + + _user.put_Id(_userOptions.id); + _user.put_FullName(_userOptions.fullname); + + docInfo = new Asc.asc_CDocInfo(); + docInfo.put_Id(data.doc.key); + docInfo.put_Url(data.doc.url); + docInfo.put_Title(data.doc.title); + docInfo.put_Format(data.doc.fileType); + docInfo.put_VKey(data.doc.vkey); + docInfo.put_Options(data.doc.options); + docInfo.put_UserInfo(_user); + docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); + docInfo.put_Token(data.doc.token); + docInfo.put_Permissions(_permissions); + docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); + + const appOptions = this.props.storeAppOptions; + let enable = !appOptions.customization || (appOptions.customization.macros !== false); + docInfo.asc_putIsEnabledMacroses(!!enable); + enable = !appOptions.customization || (appOptions.customization.plugins!==false); + docInfo.asc_putIsEnabledPlugins(!!enable); + } + + this.api.asc_registerCallback('asc_onGetEditorPermissions', onEditorPermissions); + this.api.asc_registerCallback('asc_onLicenseChanged', this.onLicenseChanged.bind(this)); + this.api.asc_registerCallback('asc_onRunAutostartMacroses', this.onRunAutostartMacroses.bind(this)); + this.api.asc_setDocInfo(docInfo); + this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId); + this.api.asc_enableKeyEvents(true); + + // Common.SharedSettings.set('document', data.doc); + + // Document Info + + const storeSpreadsheetInfo = this.props.storeSpreadsheetInfo; + + storeSpreadsheetInfo.setDataDoc(this.document); + }; + + const onEditorPermissions = params => { + const licType = params.asc_getLicenseType(); + this.appOptions.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); + + const appOptions = this.props.storeAppOptions; + appOptions.setPermissionOptions(this.document, licType, params, this.permissions); + + this.applyMode(appOptions); + + this.api.asc_LoadDocument(); + + //if (!me.appOptions.isEdit) { + //me.hidePreloader(); + //me.onLongActionBegin(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); + //} + }; + + const _process_array = (array, fn) => { + let results = []; + return array.reduce(function(p, item) { + return p.then(function() { + return fn(item).then(function(data) { + results.push(data); + return results; + }); + }); + }, Promise.resolve()); + }; + + _process_array(dep_scripts, promise_get_script) + .then ( result => { + const {t} = this.props; + const _t = t('Controller.Main.SDK', {returnObjects:true}) + const styleNames = ['Normal', 'Neutral', 'Bad', 'Good', 'Input', 'Output', 'Calculation', 'Check Cell', 'Explanatory Text', 'Note', 'Linked Cell', 'Warning Text', + 'Heading 1', 'Heading 2', 'Heading 3', 'Heading 4', 'Title', 'Total', 'Currency', 'Percent', 'Comma']; + const translate = { + 'Series': _t.txtSeries, + 'Diagram Title': _t.txtDiagramTitle, + 'X Axis': _t.txtXAxis, + 'Y Axis': _t.txtYAxis, + 'Your text here': _t.txtArt + }; + styleNames.forEach(function(item){ + translate[item] = _t['txtStyle_' + item.replace(/ /g, '_')] || item; + }); + translate['Currency [0]'] = _t.txtStyle_Currency + ' [0]'; + translate['Comma [0]'] = _t.txtStyle_Comma + ' [0]'; + + for (let i=1; i<7; i++) { + translate['Accent'+i] = _t.txtAccent + i; + translate['20% - Accent'+i] = '20% - ' + _t.txtAccent + i; + translate['40% - Accent'+i] = '40% - ' + _t.txtAccent + i; + translate['60% - Accent'+i] = '60% - ' + _t.txtAccent + i; + } + this.api = new Asc.spreadsheet_api({ + 'id-view': 'editor_sdk', + 'id-input': 'idx-cell-content', + 'mobile': true, + 'translate': translate + }); + + Common.Notifications.trigger('engineCreated', this.api); + Common.EditorApi = {get: () => this.api}; + + this.appOptions = {}; + this.bindEvents(); + + let value = LocalStorage.getItem("sse-settings-fontrender"); + if (value === null) value = window.devicePixelRatio > 1 ? '1' : '3'; + this.api.asc_setFontRenderingMode(parseInt(value)); + + Common.Utils.Metric.setCurrentMetric(Common.Utils.Metric.c_MetricUnits.pt); // TODO: beautify c_MetricUnits + + Common.Gateway.on('init', loadConfig); + Common.Gateway.on('showmessage', this.onExternalMessage.bind(this)); + Common.Gateway.on('opendocument', loadDocument); + Common.Gateway.appReady(); + + Common.Gateway.on('internalcommand', function(data) { + if (data.command === 'hardBack') { + if ($$('.modal-in').length > 0) { + if ( !($$('.error-dialog.modal-in').length > 0) ) { + f7.dialog.close(); + } + Common.Gateway.internalMessage('hardBack', false); + } else + Common.Gateway.internalMessage('hardBack', true); + } + }); + Common.Gateway.internalMessage('listenHardBack'); + }, error => { + console.log('promise failed ' + error); + }); + }; + + script.onerror = () => { + console.log('error'); + }; + + document.body.appendChild(script); + } + + bindEvents() { + this.api.asc_registerCallback('asc_onDocumentUpdateVersion', this.onUpdateVersion.bind(this)); + this.api.asc_registerCallback('asc_onServerVersion', this.onServerVersion.bind(this)); + this.api.asc_registerCallback('asc_onPrintUrl', this.onPrintUrl.bind(this)); + this.api.asc_registerCallback('asc_onPrint', this.onPrint.bind(this)); + this.api.asc_registerCallback('asc_onDocumentName', this.onDocumentName.bind(this)); + this.api.asc_registerCallback('asc_onEndAction', this._onLongActionEnd.bind(this)); + + EditorUIController.initCellInfo && EditorUIController.initCellInfo(this.props); + + EditorUIController.initEditorStyles && EditorUIController.initEditorStyles(this.props.storeCellSettings); + + EditorUIController.initFonts && EditorUIController.initFonts(this.props); + + const styleSize = this.props.storeCellSettings.styleSize; + this.api.asc_setThumbnailStylesSizes(styleSize.width, styleSize.height); + + // Spreadsheet Settings + + this.api.asc_registerCallback('asc_onSendThemeColorSchemes', schemes => { + this.props.storeSpreadsheetSettings.addSchemes(schemes); + }); + + // Downloaded Advanced Options + + this.api.asc_registerCallback('asc_onAdvancedOptions', (type, advOptions, mode, formatOptions) => { + const {t} = this.props; + const _t = t("Settings", { returnObjects: true }); + onAdvancedOptions(type, advOptions, mode, formatOptions, _t, this.props.storeAppOptions.canRequestClose); + }); + + } + + _onLongActionEnd(type, id) { + if ( type === Asc.c_oAscAsyncActionType.BlockInteraction && id == Asc.c_oAscAsyncAction.Open ) { + Common.Gateway.internalMessage('documentReady', {}); + Common.Notifications.trigger('document:ready'); + this.onDocumentContentReady(); + } + } + + onDocumentContentReady() { + if (this._isDocReady) + return; + + const appOptions = this.props.storeAppOptions; + const appSettings = this.props.storeApplicationSettings; + + this._isDocReady = true; + + this.api.asc_showWorksheet(this.api.asc_getActiveWorksheetIndex()); + this.api.asc_Resize(); + + Common.Notifications.trigger('preloader:close'); + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + + let value = (appOptions.isEditMailMerge || appOptions.isEditDiagram) ? 100 : LocalStorage.getItem("sse-settings-zoom"); + var zf = (value !== null) ? parseInt(value)/100 : (appOptions.customization && appOptions.customization.zoom ? parseInt(appOptions.customization.zoom)/100 : 1); + this.api.asc_setZoom(zf>0 ? zf : 1); + + this.updateWindowTitle(true); + + if (appOptions.isEdit) { + if (this.needToUpdateVersion) { + Common.Notifications.trigger('api:disconnect'); + } + } + + if (appOptions.canAnalytics && false) { + Common.component.Analytics.initialize('UA-12442749-13', 'Spreadsheet Editor'); + } + + Common.Gateway.on('processsaveresult', this.onProcessSaveResult.bind(this)); + Common.Gateway.on('processrightschange', this.onProcessRightsChange.bind(this)); + Common.Gateway.on('downloadas', this.onDownloadAs.bind(this)); + Common.Gateway.on('requestclose', this.onRequestClose.bind(this)); + + Common.Gateway.sendInfo({ + mode: appOptions.isEdit ? 'edit' : 'view' + }); + + this.applyLicense(); + + //R1C1 reference style + value = LocalStorage.getBool('sse-settings-r1c1', false); + appSettings.changeRefStyle(value); + this.api.asc_setR1C1Mode(value); + + Common.Gateway.documentReady(); + f7.emit('resize'); + } + + applyMode (appOptions) { + this.api.asc_enableKeyEvents(appOptions.isEdit); + + if (!appOptions.isEditMailMerge && !appOptions.isEditDiagram) { + EditorUIController.initThemeColors && EditorUIController.initThemeColors(); + this.api.asc_registerCallback('asc_onDownloadUrl', this.onDownloadUrl.bind(this)); + } + + this.api.asc_setViewMode(!appOptions.isEdit && !appOptions.isRestrictedEdit); + (appOptions.isRestrictedEdit && appOptions.canComments) && this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyComments); + + let value = LocalStorage.getItem('sse-mobile-settings-unit'); + value = (value !== null) ? parseInt(value) : (appOptions.customization && appOptions.customization.unit ? Common.Utils.Metric.c_MetricUnits[appOptions.customization.unit.toLocaleLowerCase()] : Common.Utils.Metric.getDefaultMetric()); + (value === undefined) && (value = Common.Utils.Metric.getDefaultMetric()); + Common.Utils.Metric.setCurrentMetric(value); + + this.api.asc_registerCallback('asc_onDocumentModifiedChanged', this.onDocumentModifiedChanged.bind(this)); + this.api.asc_registerCallback('asc_onDocumentCanSaveChanged', this.onDocumentCanSaveChanged.bind(this)); + + //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 = this.onBeforeUnload.bind(this); + window.onunload = this.onUnload.bind(this); + } + + onLicenseChanged (params) { + const appOptions = this.props.storeAppOptions; + if (appOptions.isEditDiagram || appOptions.isEditMailMerge) return; + + const licType = params.asc_getLicenseType(); + if (licType !== undefined && appOptions.canEdit && appOptions.config.mode !== 'view' && + (licType === Asc.c_oLicenseResult.Connections || licType === Asc.c_oLicenseResult.UsersCount || licType === Asc.c_oLicenseResult.ConnectionsOS || licType === Asc.c_oLicenseResult.UsersCountOS + || licType === Asc.c_oLicenseResult.SuccessLimit && (appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0)) + this._state.licenseType = licType; + + if (this._isDocReady && this._state.licenseType) + this.applyLicense(); + } + + applyLicense () { + const _t = this._t; + const warnNoLicense = _t.warnNoLicense.replace(/%1/g, __COMPANY_NAME__); + const warnNoLicenseUsers = _t.warnNoLicenseUsers.replace(/%1/g, __COMPANY_NAME__); + const textNoLicenseTitle = _t.textNoLicenseTitle.replace(/%1/g, __COMPANY_NAME__); + const warnLicenseExceeded = _t.warnLicenseExceeded.replace(/%1/g, __COMPANY_NAME__); + const warnLicenseUsersExceeded = _t.warnLicenseUsersExceeded.replace(/%1/g, __COMPANY_NAME__); + + const appOptions = this.props.storeAppOptions; + if (appOptions.config.mode !== 'view' && !EditorUIController.isSupportEditFeature()) { + let value = LocalStorage.getItem("sse-opensource-warning"); + value = (value !== null) ? parseInt(value) : 0; + const now = (new Date).getTime(); + if (now - value > 86400000) { + LocalStorage.setItem("sse-opensource-warning", now); + f7.dialog.create({ + title: _t.notcriticalErrorTitle, + text : _t.errorOpensource, + buttons: [{text: 'OK'}] + }).open(); + } + Common.Notifications.trigger('toolbar:activatecontrols'); + return; + } + + if (this._state.licenseType) { + let license = this._state.licenseType; + let buttons = [{text: 'OK'}]; + if ((appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0 && + (license === Asc.c_oLicenseResult.SuccessLimit || + license === Asc.c_oLicenseResult.ExpiredLimited || + appOptions.permissionsLicense === Asc.c_oLicenseResult.SuccessLimit) + ) { + license = (license === Asc.c_oLicenseResult.ExpiredLimited) ? _t.warnLicenseLimitedNoAccess : _t.warnLicenseLimitedRenewed; + } else if (license === Asc.c_oLicenseResult.Connections || license === Asc.c_oLicenseResult.UsersCount) { + license = (license===Asc.c_oLicenseResult.Connections) ? warnLicenseExceeded : warnLicenseUsersExceeded; + } else { + license = (license === Asc.c_oLicenseResult.ConnectionsOS) ? warnNoLicense : warnNoLicenseUsers; + buttons = [{ + text: _t.textBuyNow, + bold: true, + onClick: function() { + window.open(`${__PUBLISHER_URL__}`, "_blank"); + } + }, + { + text: _t.textContactUs, + onClick: function() { + window.open(`mailto:${__SALES_EMAIL__}`, "_blank"); + } + }]; + } + if (this._state.licenseType === Asc.c_oLicenseResult.SuccessLimit) { + Common.Notifications.trigger('toolbar:activatecontrols'); + } else { + Common.Notifications.trigger('toolbar:activatecontrols'); + Common.Notifications.trigger('toolbar:deactivateeditcontrols'); + Common.Notifications.trigger('api:disconnect'); + } + + let value = LocalStorage.getItem("sse-license-warning"); + value = (value !== null) ? parseInt(value) : 0; + const now = (new Date).getTime(); + + if (now - value > 86400000) { + LocalStorage.setItem("sse-license-warning", now); + f7.dialog.create({ + title: textNoLicenseTitle, + text : license, + buttons: buttons + }).open(); + } + } else { + if (!appOptions.isDesktopApp && !appOptions.canBrandingExt && + appOptions.config && appOptions.config.customization && (appOptions.config.customization.loaderName || appOptions.config.customization.loaderLogo)) { + f7.dialog.create({ + title: _t.textPaidFeature, + text : _t.textCustomLoader, + buttons: [{ + text: _t.textContactUs, + bold: true, + onClick: () => { + window.open(`mailto:${__SALES_EMAIL__}`, "_blank"); + } + }, + { text: _t.textClose }] + }).open(); + } + Common.Notifications.trigger('toolbar:activatecontrols'); + } + } + + onExternalMessage (msg) { + if (msg && msg.msg) { + msg.msg = (msg.msg).toString(); + f7.notification.create({ + //title: uiApp.params.modalTitle, + text: [msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)], + closeButton: true + }).open(); + + Common.component.Analytics.trackEvent('External Error'); + } + } + + onRunAutostartMacroses () { + const appOptions = this.props.storeAppOptions; + const enable = !appOptions.customization || (appOptions.customization.macros !== false); + if (enable) { + const value = this.props.storeApplicationSettings.macrosMode; + if (value === 1) { + this.api.asc_runAutostartMacroses(); + } else if (value === 0) { + const _t = this._t; + f7.dialog.create({ + title: _t.notcriticalErrorTitle, + text: _t.textHasMacros, + content: `
                    + + ${_t.textRemember} +
                    `, + buttons: [{ + text: _t.textYes, + onClick: () => { + const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked'); + if (dontshow) { + this.props.storeApplicationSettings.changeMacrosSettings(1); + LocalStorage.setItem("sse-mobile-macros-mode", 1); + } + setTimeout(() => { + this.api.asc_runAutostartMacroses(); + }, 1); + }}, + { + text: _t.textNo, + onClick: () => { + const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked'); + if (dontshow) { + this.props.storeApplicationSettings.changeMacrosSettings(2); + LocalStorage.setItem("sse-mobile-macros-mode", 2); + } + } + }] + }).open(); + } + } + } + + onDownloadUrl () { + if (this._state.isFromGatewayDownloadAs) { + Common.Gateway.downloadAs(url); + } + + this._state.isFromGatewayDownloadAs = false; + } + + onBeforeUnload () { + const _t = this._t; + + LocalStorage.save(); + + const config = this.props.storeAppOptions.config; + const isEdit = this.permissions.edit !== false && config.mode !== 'view' && config.mode !== 'editdiagram'; + if (isEdit && this.api.asc_isDocumentModified()) { + this.api.asc_stopSaving(); + this.continueSavingTimer = window.setTimeout(() => { + this.api.asc_continueSaving(); + }, 500); + + return _t.leavePageText; + } + } + + onUnload () { + if (this.continueSavingTimer) + clearTimeout(this.continueSavingTimer); + } + + onUpdateVersion (callback) { + const _t = this._t; + + this.needToUpdateVersion = true; + Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + + f7.dialog.alert( + _t.errorUpdateVersion, + _t.titleUpdateVersion, + () => { + Common.Gateway.updateVersion(); + if (callback) { + callback.call(this); + } + Common.Notifications.trigger('preloader:beginAction', Asc.c_oAscAsyncActionType['BlockInteraction'], this.LoadingDocument); + }); + } + + onServerVersion (buildVersion) { + if (this.changeServerVersion) return true; + const _t = this._t; + + if (About.appVersion() !== buildVersion && !About.compareVersions()) { + this.changeServerVersion = true; + f7.dialog.alert( + _t.errorServerVersion, + _t.titleServerVersion, + () => { + setTimeout(() => {Common.Gateway.updateVersion()}, 0); + }); + return true; + } + return false; + } + + onPrintUrl (url) { + if (this.iframePrint) { + this.iframePrint.parentNode.removeChild(this.iframePrint); + this.iframePrint = null; + } + + if (!this.iframePrint) { + this.iframePrint = document.createElement("iframe"); + this.iframePrint.id = "id-print-frame"; + this.iframePrint.style.display = 'none'; + this.iframePrint.style.visibility = "hidden"; + this.iframePrint.style.position = "fixed"; + this.iframePrint.style.right = "0"; + this.iframePrint.style.bottom = "0"; + document.body.appendChild(this.iframePrint); + this.iframePrint.onload = function() { + this.iframePrint.contentWindow.focus(); + this.iframePrint.contentWindow.print(); + this.iframePrint.contentWindow.blur(); + window.focus(); + }; + } + + if (url) { + this.iframePrint.src = url; + } + } + + onDocumentName (name) { + this.updateWindowTitle(true); + } + + updateWindowTitle (force) { + const isModified = this.api.asc_isDocumentModified(); + if (this._state.isDocModified !== isModified || force) { + const title = this.defaultTitleText; + + if (window.document.title !== title) { + window.document.title = title; + } + + this._isDocReady && (this._state.isDocModified !== isModified) && Common.Gateway.setDocumentModified(isModified); + this._state.isDocModified = isModified; + } + } + + onDocumentModifiedChanged () { + const isModified = this.api.asc_isDocumentCanSave(); + if (this._state.isDocModified !== isModified) { + this._isDocReady && Common.Gateway.setDocumentModified(this.api.asc_isDocumentModified()); + } + + this.updateWindowTitle(); + } + + onDocumentCanSaveChanged (isCanSave) { + // + } + + onPrint () { + if (!this.props.storeAppOptions.canPrint) return; + + if (this.api) + this.api.asc_Print(); + Common.component.Analytics.trackEvent('Print'); + } + + onProcessSaveResult (data) { + this.api.asc_OnSaveEnd(data.result); + + if (data && data.result === false) { + const _t = this._t; + f7.dialog.alert( + (!data.message) ? _t.errorProcessSaveResult : data.message, + _t.criticalErrorTitle + ); + } + } + + onProcessRightsChange (data) { + if (data && data.enabled === false) { + const appOptions = this.props.storeAppOptions; + const old_rights = appOptions.lostEditingRights; + appOptions.changeEditingRights(!old_rights); + this.api.asc_coAuthoringDisconnect(); + Common.Notifications.trigger('api:disconnect'); + + if (!old_rights) { + const _t = this._t; + f7.dialog.alert( + (!data.message) ? _t.warnProcessRightsChange : data.message, + _t.notcriticalErrorTitle, + () => { appOptions.changeEditingRights(false); } + ); + } + } + } + + onDownloadAs () { + if ( this.props.storeAppOptions.canDownload) { + Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, this._t.errorAccessDeny); + return; + } + this._state.isFromGatewayDownloadAs = true; + this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.XLSX, true)); + } + + onRequestClose () { + Common.Gateway.requestClose(); + } + + render() { + return ( + + + + + + + + + + + ) + } + + componentDidMount() { + this.initSdk(); + } +} + +const translated = withTranslation()(MainController); +export {translated as MainController}; diff --git a/apps/spreadsheeteditor/mobile/src/controller/Search.jsx b/apps/spreadsheeteditor/mobile/src/controller/Search.jsx new file mode 100644 index 000000000..6deb8480e --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/Search.jsx @@ -0,0 +1,211 @@ +import React, { Fragment, useEffect } from 'react'; +import { List, ListItem, Toggle, BlockTitle, Navbar, NavRight, Link, Page } from 'framework7-react'; +import { SearchController, SearchView, SearchSettingsView } from '../../../../common/mobile/lib/controller/Search'; +import { f7 } from 'framework7-react'; +import { withTranslation } from 'react-i18next'; +import { Dom7 } from 'framework7'; +import { Device } from '../../../../common/mobile/utils/device'; + +class SearchSettings extends SearchSettingsView { + constructor(props) { + super(props); + + this.onToggleMarkResults = this.onToggleMarkResults.bind(this); + } + + onToggleMarkResults(checked) { + const api = Common.EditorApi.get(); + api.asc_selectSearchingResults(checked); + } + + extraSearchOptions() { + const anc_markup = super.extraSearchOptions(); + const show_popover = !Device.phone; + const { t } = this.props; + const _t = t("View.Settings", { returnObjects: true }); + + const markup = ( + + + {!show_popover && + + {_t.textDone} + + } + + + this.onFindReplaceClick('find')} /> + this.onFindReplaceClick('replace')} /> + this.onFindReplaceClick('replace-all')}> + + {_t.textSearchIn} + + this.setState({ + searchIn: 0 + })} /> + this.setState({ + searchIn: 1 + })} /> + + {_t.textSearchBy} + + this.setState({ + searchBy: 0 + })} /> + this.setState({ + searchBy: 1 + })} /> + + {_t.textLookIn} + + this.setState({ + lookIn: 0 + })} /> + this.setState({ + lookIn: 1 + })} /> + + + + this.setState({ + isMatchCase: !this.state.isMatchCase + })} /> + + + this.setState({ + isMatchCell: !this.state.isMatchCell + })} /> + + + + + + + ) + + return {...anc_markup, ...markup}; + } +} + +class SESearchView extends SearchView { + constructor(props) { + super(props); + } + + searchParams() { + let params = super.searchParams(); + const $$ = Dom7; + + const checkboxMatchCase = f7.toggle.get('.toggle-match-case'), + checkboxMatchCell = f7.toggle.get('.toggle-match-cell'), + checkboxMarkResults = f7.toggle.get('.toggle-mark-results'), + checkboxSearchIn = $$('[name="search-in-checkbox"]:checked')[0], + checkboxSearchBy = $$('[name="search-by-checkbox"]:checked')[0], + checkboxLookIn = $$('[name="look-in-checkbox"]:checked')[0]; + + const searchOptions = { + caseSensitive: checkboxMatchCase.checked, + highlight: checkboxMarkResults.checked, + matchCell: checkboxMatchCell.checked, + searchIn: checkboxSearchIn.value, + searchBy: checkboxSearchBy.value, + lookIn: checkboxLookIn.value, + }; + + return {...params, ...searchOptions}; + } + + onSearchbarShow(isshowed, bar) { + super.onSearchbarShow(isshowed, bar); + + const api = Common.EditorApi.get(); + if ( isshowed ) { + const checkboxMarkResults = f7.toggle.get('.toggle-mark-results'); + api.asc_selectSearchingResults(checkboxMarkResults.checked); + } else api.asc_selectSearchingResults(false); + } +} + +const Search = withTranslation()(props => { + const { t } = props; + const _t = t('View.Settings', {returnObjects: true}); + + const onSearchQuery = params => { + const api = Common.EditorApi.get(); + + let lookIn = +params.lookIn === 0; + let searchIn = +params.searchIn === 1; + let searchBy = +params.searchBy === 0; + + if (params.find && params.find.length) { + let options = new Asc.asc_CFindOptions(); + + options.asc_setFindWhat(params.find); + options.asc_setScanForward(params.forward); + options.asc_setIsMatchCase(params.caseSensitive); + options.asc_setIsWholeCell(params.matchCell); + options.asc_setScanOnOnlySheet(searchIn); + options.asc_setScanByRows(searchBy); + options.asc_setLookIn(lookIn ? Asc.c_oAscFindLookIn.Formulas : Asc.c_oAscFindLookIn.Value); + + if (!api.asc_findText(options)) { + f7.dialog.alert(null, _t.textNoTextFound); + } + } + }; + + const onReplaceQuery = params => { + const api = Common.EditorApi.get(); + let lookIn = +params.lookIn === 0; + let searchIn = +params.searchIn === 1; + let searchBy = +params.searchBy === 0; + + if (params.find && params.find.length) { + api.isReplaceAll = false; + + let options = new Asc.asc_CFindOptions(); + + options.asc_setFindWhat(params.find); + options.asc_setReplaceWith(params.replace); + options.asc_setIsMatchCase(params.caseSensitive); + options.asc_setIsWholeCell(params.matchCell); + options.asc_setScanOnOnlySheet(searchIn); + options.asc_setScanByRows(searchBy); + options.asc_setLookIn(lookIn ? Asc.c_oAscFindLookIn.Formulas : Asc.c_oAscFindLookIn.Value); + options.asc_setIsReplaceAll(false); + + api.asc_replaceText(options); + } + } + + const onReplaceAllQuery = params => { + const api = Common.EditorApi.get(); + let lookIn = +params.lookIn === 0; + let searchIn = +params.searchIn === 1; + let searchBy = +params.searchBy === 0; + + if (params.find && params.find.length) { + api.isReplaceAll = true; + + let options = new Asc.asc_CFindOptions(); + + options.asc_setFindWhat(params.find); + options.asc_setReplaceWith(params.replace); + options.asc_setIsMatchCase(params.caseSensitive); + options.asc_setIsWholeCell(params.matchCell); + options.asc_setScanOnOnlySheet(searchIn); + options.asc_setScanByRows(searchBy); + options.asc_setLookIn(lookIn ? Asc.c_oAscFindLookIn.Formulas : Asc.c_oAscFindLookIn.Value); + options.asc_setIsReplaceAll(true); + + api.asc_replaceText(options); + } + } + + return +}); + +const SearchSettingsWithTranslation = withTranslation()(SearchSettings); + +export {Search, SearchSettingsWithTranslation as SearchSettings} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/Statusbar.jsx b/apps/spreadsheeteditor/mobile/src/controller/Statusbar.jsx new file mode 100644 index 000000000..3531b7d36 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/Statusbar.jsx @@ -0,0 +1,345 @@ + +import React, { Fragment, useEffect, useState } from 'react'; +import {StatusbarView} from '../view/Statusbar'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import { Device } from '../../../../common/mobile/utils/device'; + +const Statusbar = inject('sheets', 'storeAppOptions', 'users')(props => { + const {sheets, storeAppOptions, users} = props; + const {t} = useTranslation(); + const _t = t('Statusbar', {returnObjects: true}); + + let isEdit = storeAppOptions.isEdit; + let isDisconnected = users.isDisconnected; + + useEffect(() => { + const onDocumentReady = () => { + const api = Common.EditorApi.get(); + // api.asc_registerCallback('asc_onUpdateTabColor', onApiUpdateTabColor); + api.asc_registerCallback('asc_onWorkbookLocked', onWorkbookLocked); + api.asc_registerCallback('asc_onWorksheetLocked', onWorksheetLocked); + api.asc_registerCallback('asc_onSheetsChanged', onApiSheetsChanged); + api.asc_registerCallback('asc_onHidePopMenu', onApiHideTabContextMenu); + }; + if ( !Common.EditorApi ) { + Common.Notifications.on('document:ready', onDocumentReady); + Common.Notifications.on('document:ready', onApiSheetsChanged); + } else { + onDocumentReady(); + } + + const on_main_view_click = e => { + if(!e.target.closest('.tab.active')) { + f7.popover.close('.document-menu.modal-in', false); + } + }; + + $$('.view-main').on('click', on_main_view_click); + + return () => { + Common.Notifications.off('document:ready', onDocumentReady); + Common.Notifications.off('document:ready', onApiSheetsChanged); + + const api = Common.EditorApi.get(); + // api.asc_unregisterCallback('asc_onUpdateTabColor', onApiUpdateTabColor); + api.asc_unregisterCallback('asc_onWorkbookLocked', onWorkbookLocked); + api.asc_unregisterCallback('asc_onWorksheetLocked', onWorksheetLocked); + api.asc_unregisterCallback('asc_onSheetsChanged', onApiSheetsChanged); + api.asc_unregisterCallback('asc_onHidePopMenu', onApiHideTabContextMenu); + + $$('.view-main').off('click', on_main_view_click); + }; + }, []); + + const onApiHideTabContextMenu = () => { + f7.popover.close('.document-menu.modal-in', false); + } + + const onWorkbookLocked = locked => { + locked ? $$('.idx-btn-addtab').addClass('disabled') : $$('.idx-btn-addtab').removeClass('disabled'); + }; + + const onWorksheetLocked = (index, locked) => { + // let model = sheets.sheets.find(sheet => sheet.index === index); + let model = sheets.at(index); + if(model && model.locked != locked) + model.locked = locked; + }; + + const onApiSheetsChanged = () => { + // console.log('on api sheets changed'); + + const api = Common.EditorApi.get(); + const sheets_count = api.asc_getWorksheetsCount(); + const active_index = api.asc_getActiveWorksheetIndex(); + + let i = -1, items = []; + + while (++i < sheets_count) { + const tab = { + index : i, + active : active_index == i, + name : api.asc_getWorksheetName(i), + locked : api.asc_isWorksheetLockedOrDeleted(i), + hidden : api.asc_isWorksheetHidden(i), + color : api.asc_getWorksheetTabColor(i) + }; + + items.push(tab); + } + + sheets.resetSheets(items); + // updateTabsColors(); + }; + + // const loadTabColor = sheetindex => { + // const api = Common.EditorApi.get(); + // let tab = sheets.sheets.find(sheet => sheet.index === sheetindex); + + // if (tab) { + // setTabLineColor(tab, api.asc_getWorksheetTabColor(sheetindex)); + // } + + // }; + + // const onApiUpdateTabColor = index => { + // loadTabColor(index); + // }; + + // const setTabLineColor = (tab, color) => { + // console.log(color); + // if (tab) { + // if (null !== color) { + // color = '#' + Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + // } else { + // color = ''; + // } + + // if (color.length) { + // if (!tab.active) { + // color = '0px 4px 0 ' + Common.Utils.RGBColor(color).toRGBA(0.7) + ' inset'; + // } else { + // color = '0px 4px 0 ' + color + ' inset'; + // } + + // $$('.sheet-tabs .tab a').eq(tab.index).css('box-shadow', color); + // } else { + // $$('.sheet-tabs .tab a').eq(tab.index).css('box-shadow', ''); + // } + // } + // }; + + // const updateTabsColors = () => { + // const api = Common.EditorApi.get(); + + // sheets.sheets.forEach(model => { + // setTabLineColor(model, api.asc_getWorksheetTabColor(model.index)); + // }); + // }; + + const onTabClicked = i => { + const model = sheets.at(i); + const api = Common.EditorApi.get(); + + api.asc_showWorksheet(model.index); + sheets.setActiveWorksheet(i); + + Common.Notifications.trigger('sheet:active', model.index); + }; + + const createSheetName = () => { + const api = Common.EditorApi.get(); + + let items = [], wc = api.asc_getWorksheetsCount(); + while (wc--) { + items.push(api.asc_getWorksheetName(wc).toLowerCase()); + } + + let index = 0, name; + while(++index < 1000) { + name = /*this.strSheet*/ 'Sheet' + index; + if (items.indexOf(name.toLowerCase()) < 0) break; + } + + return name; + }; + + const onAddTabClicked = () => { + const api = Common.EditorApi.get(); + api.asc_closeCellEditor(); + + createSheetName(); + api.asc_addWorksheet(createSheetName()); + }; + + const onTabClick = (i, target) => { + const api = Common.EditorApi.get(); + const model = sheets.at(i); + // console.log(model); + + let opened = $$('.document-menu.modal-in').length; + let index = model.index; + + f7.popover.close('.document-menu.modal-in', false); + + if (index == api.asc_getActiveWorksheetIndex()) { + if (!opened) { + if (!isDisconnected) { + api.asc_closeCellEditor(); + f7.popover.open('#idx-tab-context-menu-popover', target); + } + } + } else { + f7.popover.close('#idx-tab-context-menu-popover', false); + onTabClicked(i); + // Common.Notifications.trigger('sheet:active', index); + } + }; + + const deleteWorksheet = () => { + const api = Common.EditorApi.get(); + const visibleSheets = sheets.visibleWorksheets(); + + if (sheets.sheets.length == 1 || visibleSheets.length == 1) { + f7.dialog.alert(_t.textErrorLastSheet, _t.notcriticalErrorTitle); + } else { + f7.dialog.confirm( + _t.textWarnDeleteSheet, + _t.notcriticalErrorTitle, + () => { + if (!api.asc_deleteWorksheet()) { + f7.dialog.alert(_t.textErrorRemoveSheet, _t.notcriticalErrorTitle); + } + } + ); + } + }; + + const renameWorksheet = () => { + const api = Common.EditorApi.get(); + + if (api.asc_getWorksheetsCount() > 0) { + let sindex = api.asc_getActiveWorksheetIndex(); + + if (api.asc_isWorksheetLockedOrDeleted(sindex)) { + return; + } + + let current = api.asc_getWorksheetName(api.asc_getActiveWorksheetIndex()); + + f7.dialog.create({ + title: _t.textRenameSheet, + content: Device.ios ? + '
                    ' : + '
                    ', + buttons: [ + { + text: 'OK', + bold: true, + onClick: function () { + let s = $$('input[name="modal-sheet-name"]').val(), + wc = api.asc_getWorksheetsCount(), items = [], + err = !s.trim().length ? _t.textErrNotEmpty : ((s.length > 2 && s[0] == '"' && s[s.length-1] == '"' || !/[:\\\/\*\?\[\]\']/.test(s)) ? null : _t.textErrNameWrongChar); + if (!err) { + while (wc--) { + if (sindex !== wc) { + items.push(api.asc_getWorksheetName(wc).toLowerCase()); + } + } + if (items) { + let testval = s.toLowerCase(); + for (var i = items.length - 1; i >= 0; --i) { + if (items[i] === testval) { + err = _t.textErrNameExists; + } + } + } + } + if (err) { + f7.dialog.alert(err, _t.notcriticalErrorTitle, () => { + renameWorksheet(); + }); + } else if (s != current) + api.asc_renameWorksheet(s); + } + }, + { + text: _t.textCancel + } + ] + }).open(); + } + }; + + const createCopyName = (orig) => { + const api = Common.EditorApi.get(); + let wc = api.asc_getWorksheetsCount(), names = []; + + while (wc--) { + names.push(api.asc_getWorksheetName(wc).toLowerCase()); + } + + let re = /^(.*)\((\d)\)$/.exec(orig); + let first = re ? re[1] : orig + ' '; + let index = 1, name; + + while(++index < 1000) { + name = first + '(' + index + ')'; + if (names.indexOf(name.toLowerCase()) < 0) break; + } + + return name; + }; + + const hideWorksheet = (hide, index) => { + const api = Common.EditorApi.get(); + const visibleSheets = sheets.visibleWorksheets(); + + if(hide) { + visibleSheets.length == 1 ? + f7.dialog.alert(_t.textErrorLastSheet, _t.notcriticalErrorTitle) : + api['asc_hideWorksheet']([index]); + } else { + f7.popover.close('#idx-hidden-sheets-popover'); + api['asc_showWorksheet'](index); + // loadTabColor(index); + } + }; + + const onTabMenu = (event) => { + const api = Common.EditorApi.get(); + let index = sheets.sheets.find(sheet => sheet.active).index; + + f7.popover.close('.document-menu.modal-in', false); + + switch (event) { + case 'del': deleteWorksheet(); break; + case 'hide': hideWorksheet(true, index); break; + case 'ins': api.asc_insertWorksheet(createSheetName()); break; + case 'copy': + let name = createCopyName(api.asc_getWorksheetName(api.asc_getActiveWorksheetIndex())); + api.asc_copyWorksheet(index, name); + break; + case 'ren': renameWorksheet(); break; + case 'unhide': + f7.popover.open('#idx-hidden-sheets-popover', '.active'); + break; + case 'showMore': + f7.actions.open('#idx-tab-menu-actions'); + break; + default: + let _re = /reveal\:(\d+)/.exec(event); + if (_re && !!_re[1]) { + hideWorksheet(false, parseInt(_re[1])); + } + } + }; + + return ( + + ) +}); + +export default Statusbar; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx b/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx new file mode 100644 index 000000000..16dd1b657 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx @@ -0,0 +1,207 @@ +import React, { useEffect, useState } from 'react'; +import { inject } from 'mobx-react'; +import { f7 } from 'framework7-react'; +import { useTranslation } from 'react-i18next'; +import ToolbarView from "../view/Toolbar"; + +const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetInfo')(props => { + const {t} = useTranslation(); + const _t = t("Toolbar", { returnObjects: true }); + + const appOptions = props.storeAppOptions; + const isDisconnected = props.users.isDisconnected; + const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments; + const docTitle = props.storeSpreadsheetInfo.dataDoc ? props.storeSpreadsheetInfo.dataDoc.title : ''; + + useEffect(() => { + const onDocumentReady = () => { + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onCanUndoChanged', onApiCanUndo); + api.asc_registerCallback('asc_onCanRedoChanged', onApiCanRedo); + api.asc_registerCallback('asc_onSelectionChanged', onApiSelectionChanged); + api.asc_registerCallback('asc_onWorkbookLocked', onApiSelectionChanged); + api.asc_registerCallback('asc_onWorksheetLocked', onApiSelectionChanged); + api.asc_registerCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged); + api.asc_registerCallback('asc_onCoAuthoringDisconnect', onCoAuthoringDisconnect); + + Common.Notifications.on('api:disconnect', onCoAuthoringDisconnect); + Common.Notifications.on('toolbar:activatecontrols', activateControls); + Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); + Common.Notifications.on('goback', goBack); + Common.Notifications.on('sheet:active', onApiActiveSheetChanged); + }; + if ( !Common.EditorApi ) { + Common.Notifications.on('document:ready', onDocumentReady); + Common.Gateway.on('init', loadConfig); + } else { + onDocumentReady(); + } + + return () => { + Common.Notifications.off('document:ready', onDocumentReady); + Common.Notifications.off('api:disconnect', onCoAuthoringDisconnect); + Common.Notifications.off('toolbar:activatecontrols', activateControls); + Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls); + Common.Notifications.off('goback', goBack); + Common.Notifications.off('sheet:active', onApiActiveSheetChanged); + + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onCanUndoChanged', onApiCanUndo); + api.asc_unregisterCallback('asc_onCanRedoChanged', onApiCanRedo); + //api.asc_unregisterCallback('asc_onSelectionChanged', onApiSelectionChanged); TO DO + api.asc_unregisterCallback('asc_onWorkbookLocked', onApiSelectionChanged); + api.asc_unregisterCallback('asc_onWorksheetLocked', onApiSelectionChanged); + api.asc_unregisterCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged); + api.asc_unregisterCallback('asc_onCoAuthoringDisconnect', onCoAuthoringDisconnect); + } + }); + + // Back button + const [isShowBack, setShowBack] = useState(false); + const loadConfig = (data) => { + if (data && data.config && data.config.canBackToFolder !== false && + data.config.customization && data.config.customization.goback && + (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) { + setShowBack(true); + } + }; + const onBack = () => { + const api = Common.EditorApi.get(); + if (api.asc_isDocumentModified()) { + f7.dialog.create({ + title : _t.dlgLeaveTitleText, + text : _t.dlgLeaveMsgText, + verticalButtons: true, + buttons : [ + { + text: _t.leaveButtonText, + onClick: function() { + goBack(); + } + }, + { + text: _t.stayButtonText, + bold: true + } + ] + }).open(); + } else { + goBack(); + } + }; + const goBack = (current) => { + //if ( !Common.Controllers.Desktop.process('goback') ) { + if (appOptions.customization.goback.requestClose && appOptions.canRequestClose) { + Common.Gateway.requestClose(); + } else { + const href = appOptions.customization.goback.url; + if (!current && appOptions.customization.goback.blank !== false) { + window.open(href, "_blank"); + } else { + parent.location.href = href; + } + } + //} + } + + // Undo and Redo + const [isCanUndo, setCanUndo] = useState(false); + const [isCanRedo, setCanRedo] = useState(false); + const onApiCanUndo = (can) => { + if (isDisconnected) return; + setCanUndo(can); + }; + const onApiCanRedo = (can) => { + if (isDisconnected) return; + setCanRedo(can); + }; + const onUndo = () => { + const api = Common.EditorApi.get(); + if (api) { + api.asc_Undo(); + } + }; + const onRedo = () => { + const api = Common.EditorApi.get(); + if (api) { + api.asc_Redo(); + } + } + + const [disabledEditControls, setDisabledEditControls] = useState(false); + const onApiSelectionChanged = (cellInfo) => { + if (isDisconnected) return; + + const api = Common.EditorApi.get(); + const info = !!cellInfo ? cellInfo : api.asc_getCellInfo(); + let islocked = false; + + switch (info.asc_getSelectionType()) { + case Asc.c_oAscSelectionType.RangeChart: + case Asc.c_oAscSelectionType.RangeImage: + case Asc.c_oAscSelectionType.RangeShape: + case Asc.c_oAscSelectionType.RangeChartText: + case Asc.c_oAscSelectionType.RangeShapeText: + const objects = api.asc_getGraphicObjectProps(); + for ( let i in objects ) { + if ( objects[i].asc_getObjectType() == Asc.c_oAscTypeSelectElement.Image ) { + if ((islocked = objects[i].asc_getObjectValue().asc_getLocked())) + break; + } + } + break; + default: + islocked = info.asc_getLocked(); + } + + setDisabledEditControls(islocked); + }; + + const onApiActiveSheetChanged = (index) => { + Common.Notifications.trigger('comments:filterchange', ['doc', 'sheet' + Common.EditorApi.get().asc_getWorksheetId(index)], false ); + }; + + const [disabledSettings, setDisabledSettings] = useState(false); + const deactivateEditControls = (enableDownload) => { + setDisabledEditControls(true); + if (enableDownload) { + //DE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); + } else { + setDisabledSettings(true); + } + }; + + + const [disabledControls, setDisabledControls] = useState(true); + const activateControls = () => { + setDisabledControls(false); + }; + + const onCoAuthoringDisconnect = (enableDownload) => { + deactivateEditControls(enableDownload); + setCanUndo(false); + setCanRedo(false); + f7.popover.close(); + f7.sheet.close(); + f7.popup.close(); + }; + + return ( + + ) +}); + +export {ToolbarController as Toolbar}; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddChart.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddChart.jsx new file mode 100644 index 000000000..55d1b8e3a --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddChart.jsx @@ -0,0 +1,37 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import AddChart from '../../view/add/AddChart'; + +class AddChartController extends Component { + constructor (props) { + super(props); + this.onInsertChart = this.onInsertChart.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onInsertChart (type) { + const api = Common.EditorApi.get(); + const settings = api.asc_getChartObject(); + settings.changeType(type); + api.asc_addChartDrawingObject(settings); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +export default AddChartController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx new file mode 100644 index 000000000..ef9a13408 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx @@ -0,0 +1,67 @@ +import React, {Component} from 'react'; + +import AddSortAndFilter from '../../view/add/AddFilter'; + +class AddFilterController extends Component { + constructor (props) { + super(props); + this.onInsertFilter = this.onInsertFilter.bind(this); + this.uncheckedFilter = this.uncheckedFilter.bind(this); + + const api = Common.EditorApi.get(); + + const filterInfo = api.asc_getCellInfo().asc_getAutoFilterInfo(); + const isFilter = (filterInfo ? filterInfo.asc_getIsAutoFilter() : false); + + this.state = { + isFilter: isFilter + }; + } + + componentDidMount () { + const api = Common.EditorApi.get(); + api.asc_registerCallback('asc_onError', this.uncheckedFilter); + } + + componentWillUnmount () { + const api = Common.EditorApi.get(); + api.asc_unregisterCallback('asc_onError', this.uncheckedFilter); + } + + uncheckedFilter (id, level, errData) { + setTimeout(() => { + if (id === Asc.c_oAscError.ID.AutoFilterDataRangeError) { + this.setState({isFilter: false}); + } + }, 0); + } + + onInsertSort (type) { + const api = Common.EditorApi.get(); + api.asc_sortColFilter(type == 'down' ? Asc.c_oAscSortOptions.Ascending : Asc.c_oAscSortOptions.Descending, '', undefined, undefined, true); + } + + onInsertFilter (checked) { + this.setState({isFilter: checked}); + const api = Common.EditorApi.get(); + const formatTableInfo = api.asc_getCellInfo().asc_getFormatTableInfo(); + const tablename = (formatTableInfo) ? formatTableInfo.asc_getTableName() : undefined; + if (checked) { + api.asc_addAutoFilter(); + } else { + api.asc_changeAutoFilter(tablename, Asc.c_oAscChangeFilterOptions.filter, checked); + } + } + + render () { + return ( + + ) + } +} + +export default AddFilterController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddFunction.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddFunction.jsx new file mode 100644 index 000000000..46220d98d --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddFunction.jsx @@ -0,0 +1,88 @@ +import React, {Component} from 'react'; +import {observer, inject} from "mobx-react"; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import {LocalStorage} from '../../../../../common/mobile/utils/LocalStorage'; + +import {AddFunction} from '../../view/add/AddFunction'; + +class _FunctionGroups extends Component { + constructor (props) { + super(props); + } + componentDidMount() { + Common.Notifications.on('engineCreated', api => { + this.api = api; + this.init(); + }); + } + init () { + const editorLang = LocalStorage.getItem('sse-settings-func-lang'); + this._editorLang = (editorLang ? editorLang : 'en').split(/[\-\_]/)[0].toLowerCase(); + const localizationFunctions = (data) => { + this.api.asc_setLocalization(data); + this.fill(data); + }; + + fetch(`locale/l10n/functions/${this._editorLang}.json`) + .then(response => response.json()) + .then((data) => { + localizationFunctions(data); + }); + } + fill () { + this._functions = {}; + const localizationFunctionsDesc = (data) => { + let jsonDesc = {}; + try { + jsonDesc = JSON.parse(data); + } catch (e) { + jsonDesc = data; + } + const grouparr = this.api.asc_getFormulasInfo(); + this.props.storeFunctions.initFunctions(grouparr, jsonDesc); + }; + + fetch(`locale/l10n/functions/${this._editorLang}_desc.json`) + .then(response => response.json()) + .then((data) => { + localizationFunctionsDesc(data); + }); + } + render() { + return null; + } +} +const FunctionGroups = inject("storeFunctions")(observer(_FunctionGroups)); + +class AddFunctionController extends Component { + constructor (props) { + super(props); + this.onInsertFunction = this.onInsertFunction.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onInsertFunction (type) { + const api = Common.EditorApi.get(); + api.asc_insertInCell(api.asc_getFormulaLocaleName(type), Asc.c_oAscPopUpSelectorType.Func, true); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +export {FunctionGroups, AddFunctionController}; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddImage.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddImage.jsx new file mode 100644 index 000000000..10815d5f4 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddImage.jsx @@ -0,0 +1,60 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {withTranslation} from 'react-i18next'; + +import {AddImage} from '../../view/add/AddImage'; + +class AddImageController extends Component { + constructor (props) { + super(props); + this.onInsertByFile = this.onInsertByFile.bind(this); + this.onInsertByUrl = this.onInsertByUrl.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onInsertByFile () { + const api = Common.EditorApi.get(); + api.asc_addImage(); + this.closeModal(); + } + + onInsertByUrl (value) { + const { t } = this.props; + const _t = t("View.Add", { returnObjects: true }); + + const _value = value.replace(/ /g, ''); + + if (_value) { + if ((/((^https?)|(^ftp)):\/\/.+/i.test(_value))) { + this.closeModal(); + const api = Common.EditorApi.get(); + api.asc_addImageDrawingObject(_value); + } else { + f7.dialog.alert(_t.txtNotUrl, _t.notcriticalErrorTitle); + } + } else { + f7.dialog.alert(_t.textEmptyImgUrl, _t.notcriticalErrorTitle); + } + } + + render () { + return ( + + ) + } +} + +const AddImageWithTranslation = withTranslation()(AddImageController); + +export {AddImageWithTranslation as AddImageController}; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddLink.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddLink.jsx new file mode 100644 index 000000000..3d026852b --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddLink.jsx @@ -0,0 +1,121 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {withTranslation} from 'react-i18next'; + +import {AddLink} from '../../view/add/AddLink'; + +class AddLinkController extends Component { + constructor (props) { + super(props); + this.onInsertLink = this.onInsertLink.bind(this); + + const api = Common.EditorApi.get(); + const cell = api.asc_getCellInfo(); + const celltype = cell.asc_getSelectionType(); + + this.allowInternal = (celltype !== Asc.c_oAscSelectionType.RangeImage && celltype !== Asc.c_oAscSelectionType.RangeShape && + celltype !== Asc.c_oAscSelectionType.RangeShapeText && celltype !== Asc.c_oAscSelectionType.RangeChart && + celltype !== Asc.c_oAscSelectionType.RangeChartText); + + this.displayText = cell.asc_getLockText() ? 'locked' : cell.asc_getText(); + + // sheets + let items = []; + let wsc = api.asc_getWorksheetsCount(); + const aws = api.asc_getActiveWorksheetIndex(); + if (wsc > 0) { + items = []; + while ( !(--wsc < 0) ) { + if ( !api.asc_isWorksheetHidden(wsc) ) { + items.unshift({ + value: wsc, + caption: api.asc_getWorksheetName(wsc) + }); + if (wsc === aws) { + this.activeSheet = { + value: wsc, + caption: api.asc_getWorksheetName(wsc) + } + } + } + } + this.sheets = items; + } + } + + onInsertLink (args) { + const api = Common.EditorApi.get(); + const { t } = this.props; + const _t = t("View.Add", { returnObjects: true }); + + const link = new Asc.asc_CHyperlink(); + let display = ''; + + if (args.type == 'ext') { + let url = args.url; + const urltype = api.asc_getUrlType(url.trim()); + const isEmail = (urltype == 2); + + if (urltype < 1) { + f7.dialog.alert(_t.txtNotUrl, _t.notcriticalErrorTitle); + return; + } + + url = url.replace(/^\s+|\s+$/g, ''); + + if (!/(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url)) + url = (isEmail ? 'mailto:' : 'http://' ) + url; + + url = url.replace(new RegExp("%20", 'g'), " "); + + link.asc_setType(Asc.c_oAscHyperlinkType.WebLink); + link.asc_setHyperlinkUrl(url); + display = url; + } else { + const isValid = api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.FormatTable, args.url, false); + + if (isValid !== Asc.c_oAscError.ID.No) { + f7.dialog.alert(_t.textInvalidRange, _t.notcriticalErrorTitle); + return; + } + + link.asc_setType(Asc.c_oAscHyperlinkType.RangeLink); + link.asc_setSheet(args.sheet); + link.asc_setRange(args.url); + + display = args.sheet + '!' + args.url; + } + + link.asc_setText(args.text == null ? null : !!args.text ? args.text : display); + link.asc_setTooltip(args.tooltip); + + api.asc_insertHyperlink(link); + + this.closeModal(); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + render () { + return ( + + ) + } +} + +const AddLinkWithTranslation = withTranslation()(AddLinkController); + +export {AddLinkWithTranslation as AddLinkController}; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddOther.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddOther.jsx new file mode 100644 index 000000000..85ffc2e93 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddOther.jsx @@ -0,0 +1,40 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import { withTranslation} from 'react-i18next'; + +import {AddOther} from '../../view/add/AddOther'; + +class AddOtherController extends Component { + constructor (props) { + super(props); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + hideAddComment () { + const cellinfo = Common.EditorApi.get().asc_getCellInfo(); + const iscelllocked = cellinfo.asc_getLocked(); + const seltype = cellinfo.asc_getSelectionType(); + const isComments = cellinfo.asc_getComments().length > 0; + return (!(seltype === Asc.c_oAscSelectionType.RangeCells && !iscelllocked) || isComments); + } + + render () { + return ( + + ) + } +} + +const AddOtherWithTranslation = withTranslation()(AddOtherController); + +export {AddOtherWithTranslation as AddOtherController}; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddShape.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddShape.jsx new file mode 100644 index 000000000..0c7209c53 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddShape.jsx @@ -0,0 +1,35 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import AddShape from '../../view/add/AddShape'; + +class AddShapeController extends Component { + constructor (props) { + super(props); + this.onShapeClick = this.onShapeClick.bind(this); + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('.add-popup', true); + } else { + f7.popover.close('#add-popover'); + } + } + + onShapeClick (type) { + const api = Common.EditorApi.get(); + api.asc_addShapeOnSheet(type); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +export default AddShapeController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/edit/EditCell.jsx b/apps/spreadsheeteditor/mobile/src/controller/edit/EditCell.jsx new file mode 100644 index 000000000..b0d7bd9b7 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/edit/EditCell.jsx @@ -0,0 +1,176 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import { EditCell } from '../../view/edit/EditCell'; + +class EditCellController extends Component { + constructor (props) { + super(props); + } + + toggleBold(value) { + const api = Common.EditorApi.get(); + api.asc_setCellBold(value); + } + + toggleItalic(value) { + const api = Common.EditorApi.get(); + api.asc_setCellItalic(value); + + } + + toggleUnderline(value) { + const api = Common.EditorApi.get(); + api.asc_setCellUnderline(value); + } + + onStyleClick(type) { + const api = Common.EditorApi.get(); + api.asc_setCellStyle(type); + } + + onTextColor(color) { + const api = Common.EditorApi.get(); + api.asc_setCellTextColor(Common.Utils.ThemeColor.getRgbColor(color)); + } + + onFillColor(color) { + const api = Common.EditorApi.get(); + api.asc_setCellBackgroundColor(color == 'transparent' ? null : Common.Utils.ThemeColor.getRgbColor(color)); + } + + onFontSize(curSize, isDecrement) { + const api = Common.EditorApi.get(); + let size = curSize; + + if (isDecrement) { + typeof size === 'undefined' ? api.asc_decreaseFontSize() : size = Math.max(1, --size); + } else { + typeof size === 'undefined' ? api.asc_increaseFontSize() : size = Math.min(409, ++size); + } + + if (typeof size !== 'undefined') { + api.asc_setCellFontSize(size); + } + } + + onFontClick(name) { + const api = Common.EditorApi.get(); + + if (name) { + api.asc_setCellFontName(name); + } + } + + onHAlignChange(value) { + const api = Common.EditorApi.get(); + let type; + + if (value == 'center') { + type = AscCommon.align_Center; + } else if (value == 'right') { + type = AscCommon.align_Right; + } else if (value == 'justify') { + type = AscCommon.align_Justify; + } else if (value == 'left') { + type = AscCommon.align_Left; + } + + api.asc_setCellAlign(type); + } + + onVAlignChange(value) { + const api = Common.EditorApi.get(); + let type; + + if (value == 'top') { + type = Asc.c_oAscVAlign.Top; + } else if (value == 'center') { + type = Asc.c_oAscVAlign.Center; + } else if (value == 'bottom') { + type = Asc.c_oAscVAlign.Bottom; + } + + api.asc_setCellVertAlign(type); + } + + onWrapTextChange(checked) { + const api = Common.EditorApi.get(); + console.log(checked); + api.asc_setCellTextWrap(checked); + } + + onTextOrientationChange(value) { + const api = Common.EditorApi.get(); + let angle = 0; + + switch (value) { + case 'anglecount': angle = 45; break; + case 'angleclock': angle = -45; break; + case 'vertical': angle = 255; break; + case 'rotateup': angle = 90; break; + case 'rotatedown': angle = -90; break; + } + + api.asc_setCellAngle(angle); + } + + onCellFormat(value) { + const api = Common.EditorApi.get(); + let type = decodeURIComponent(atob(value)); + api.asc_setCellFormat(type); + } + + onBorderStyle(type, borderInfo) { + const api = Common.EditorApi.get(); + let newBorders = [], + bordersWidth = borderInfo.width, + bordersColor = Common.Utils.ThemeColor.getRgbColor(borderInfo.color); + + if (type == 'inner') { + newBorders[Asc.c_oAscBorderOptions.InnerV] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.InnerH] = new Asc.asc_CBorder(bordersWidth, bordersColor); + } else if (type == 'all') { + newBorders[Asc.c_oAscBorderOptions.InnerV] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.InnerH] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.Left] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.Top] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.Right] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.Bottom] = new Asc.asc_CBorder(bordersWidth, bordersColor); + } else if (type == 'outer') { + newBorders[Asc.c_oAscBorderOptions.Left] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.Top] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.Right] = new Asc.asc_CBorder(bordersWidth, bordersColor); + newBorders[Asc.c_oAscBorderOptions.Bottom] = new Asc.asc_CBorder(bordersWidth, bordersColor); + } else if (type != 'none') { + var borderId = parseInt(type); + newBorders[borderId] = new Asc.asc_CBorder(bordersWidth, bordersColor); + } + + api.asc_setCellBorders(newBorders); + } + + render () { + return ( + + ) + } +} + +export default EditCellController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/edit/EditChart.jsx b/apps/spreadsheeteditor/mobile/src/controller/edit/EditChart.jsx new file mode 100644 index 000000000..55876d155 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/edit/EditChart.jsx @@ -0,0 +1,395 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditChart } from '../../view/edit/EditChart'; + +class EditChartController extends Component { + constructor (props) { + super(props); + this.onRemoveChart = this.onRemoveChart.bind(this); + this.onType = this.onType.bind(this); + this.onStyle = this.onStyle.bind(this); + this.onBorderColor = this.onBorderColor.bind(this); + this.onBorderSize = this.onBorderSize.bind(this); + this.onVerAxisMinValue = this.onVerAxisMinValue.bind(this); + this.onVerAxisMaxValue = this.onVerAxisMaxValue.bind(this); + this.onVerAxisCrossType = this.onVerAxisCrossType.bind(this); + this.onVerAxisCrossValue = this.onVerAxisCrossValue.bind(this); + this.onVerAxisDisplayUnits = this.onVerAxisDisplayUnits.bind(this); + this.onVerAxisReverse = this.onVerAxisReverse.bind(this); + this.onVerAxisTickMajor = this.onVerAxisTickMajor.bind(this); + this.onVerAxisTickMinor = this.onVerAxisTickMinor.bind(this); + this.onVerAxisLabelPos = this.onVerAxisLabelPos.bind(this); + this.onHorAxisCrossType = this.onHorAxisCrossType.bind(this); + this.onHorAxisCrossValue = this.onHorAxisCrossValue.bind(this); + this.onHorAxisPos = this.onHorAxisPos.bind(this); + this.onHorAxisReverse = this.onHorAxisReverse.bind(this); + this.onHorAxisTickMajor = this.onHorAxisTickMajor.bind(this); + this.onHorAxisTickMinor = this.onHorAxisTickMinor.bind(this); + this.onHorAxisLabelPos = this.onHorAxisLabelPos.bind(this); + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + }; + + onRemoveChart() { + const api = Common.EditorApi.get(); + api.asc_Remove(); + this.closeModal(); + } + + onStyle(type) { + const api = Common.EditorApi.get(); + let image = new Asc.asc_CImgProperty(), + chart = this.props.storeFocusObjects.chartObject.get_ChartProperties(); + + chart.putStyle(type); + image.put_ChartProperties(chart); + + api.asc_setGraphicObjectProps(image); + + } + + onType(type) { + const api = Common.EditorApi.get(); + let image = new Asc.asc_CImgProperty(), + chart = this.props.storeFocusObjects.chartObject.get_ChartProperties(); + + chart.changeType(type); + image.put_ChartProperties(chart); + + api.asc_setGraphicObjectProps(image); + + // Force update styles + this.props.storeChartSettings.updateChartStyles(api.asc_getChartPreviews(chart.getType())); + + // me.updateAxisProps(type); + } + + onFillColor(color) { + const api = Common.EditorApi.get(); + let image = new Asc.asc_CImgProperty(), + shape = new Asc.asc_CShapeProperty(), + fill = new Asc.asc_CShapeFill(); + + if (color == 'transparent') { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); + fill.put_fill(null); + } else { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); + fill.put_fill(new Asc.asc_CFillSolid()); + fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); + } + + shape.put_fill(fill); + image.put_ShapeProperties(shape); + + api.asc_setGraphicObjectProps(image); + } + + onBorderColor(color) { + const api = Common.EditorApi.get(); + const currentShape = this.props.storeFocusObjects.shapeObject.get_ShapeProperties(); + let image = new Asc.asc_CImgProperty(), + shape = new Asc.asc_CShapeProperty(), + stroke = new Asc.asc_CStroke(); + + if(currentShape && currentShape.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { + + if (currentShape.get_stroke().get_width() < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); + stroke.put_width(currentShape.get_stroke().get_width()); + stroke.asc_putPrstDash(currentShape.get_stroke().asc_getPrstDash()); + } + + shape.put_stroke(stroke); + image.put_ShapeProperties(shape); + + api.asc_setGraphicObjectProps(image); + } + } + + onBorderSize(value) { + const api = Common.EditorApi.get(); + const image = new Asc.asc_CImgProperty(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + + const _borderColor = this.props.storeChartSettings.borderColor; + + if (value < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + if (_borderColor == 'transparent') + stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); + else + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); + stroke.put_width(value * 25.4 / 72.0); + } + + shape.put_stroke(stroke); + image.put_ShapeProperties(shape); + + api.asc_setGraphicObjectProps(image); + this.props.storeChartSettings.initBorderColor(this.props.storeFocusObjects.shapeObject.get_ShapeProperties()); // when select STROKE_NONE or change from STROKE_NONE to STROKE_COLOR + } + + onReorder(type) { + const api = Common.EditorApi.get(); + let ascType; + + if (type == 'all-up') { + ascType = Asc.c_oAscDrawingLayerType.BringToFront; + } else if (type == 'all-down') { + ascType = Asc.c_oAscDrawingLayerType.SendToBack; + } else if (type == 'move-up') { + ascType = Asc.c_oAscDrawingLayerType.BringForward; + } else { + ascType = Asc.c_oAscDrawingLayerType.SendBackward; + } + + api.asc_setSelectedDrawingObjectLayer(ascType); + } + + setLayoutProperty(propertyMethod, value) { + const api = Common.EditorApi.get(); + let chartObject = api.asc_getChartObject(); + + if (chartObject && value) { + + chartObject[propertyMethod](+value); + + if ("putDataLabelsPos" == propertyMethod && +value != 0) { + chartObject["putShowVal"](true); + } + + api.asc_editChartDrawingObject(chartObject); + } + } + + getVerticalAxisProp() { + const api = Common.EditorApi.get(); + let chartObject = api.asc_getChartObject(), + verAxisProps = chartObject.getVertAxisProps(); + + return (verAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? verAxisProps : chartObject.getHorAxisProps(); + } + + setVerticalAxisProp(axisProps) { + const api = Common.EditorApi.get(); + let chartObject = api.asc_getChartObject(), + verAxisProps = chartObject.getVertAxisProps(); + + if (chartObject) { + chartObject[(verAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? 'putVertAxisProps' : 'putHorAxisProps'](axisProps); + api.asc_editChartDrawingObject(chartObject); + } + } + + onVerAxisMinValue(value) { + let axisProps = this.getVerticalAxisProp(), + axisRule = !value ? Asc.c_oAscValAxisRule.auto : Asc.c_oAscValAxisRule.fixed; + + axisProps.putMinValRule(axisRule); + + if (axisRule == Asc.c_oAscValAxisRule.fixed) { + axisProps.putMinVal(+value); + } + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisMaxValue(value) { + let axisProps = this.getVerticalAxisProp(), + axisRule = !value ? Asc.c_oAscValAxisRule.auto : Asc.c_oAscValAxisRule.fixed; + + axisProps.putMaxValRule(axisRule); + + if (axisRule == Asc.c_oAscValAxisRule.fixed) { + axisProps.putMaxVal(+value); + } + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisCrossType(value) { + let axisProps = this.getVerticalAxisProp(); + + axisProps.putCrossesRule(+value); + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisCrossValue(value) { + let axisProps = this.getVerticalAxisProp(); + + axisProps.putCrossesRule(Asc.c_oAscCrossesRule.value); + axisProps.putCrosses(+value); + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisDisplayUnits(value) { + let axisProps = this.getVerticalAxisProp(); + + axisProps.putDispUnitsRule(+value); + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisReverse(value) { + let axisProps = this.getVerticalAxisProp(); + + axisProps.putInvertValOrder(value); + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisTickMajor(value) { + let axisProps = this.getVerticalAxisProp(); + + axisProps.putMajorTickMark(+value); + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisTickMinor(value) { + let axisProps = this.getVerticalAxisProp(); + + axisProps.putMinorTickMark(+value); + + this.setVerticalAxisProp(axisProps); + } + + onVerAxisLabelPos(value) { + let axisProps = this.getVerticalAxisProp(); + + axisProps.putTickLabelsPos(+value); + + this.setVerticalAxisProp(axisProps); + } + + // Horizontal + + getHorizontalAxisProp() { + const api = Common.EditorApi.get(); + let chartObject = api.asc_getChartObject(), + verHorProps = chartObject.getHorAxisProps(); + + return (verHorProps.getAxisType() == Asc.c_oAscAxisType.val) ? chartObject.getVertAxisProps() : verHorProps; + } + + setHorizontalAxisProp(axisProps) { + const api = Common.EditorApi.get(); + let chartObject = api.asc_getChartObject(), + verAxisProps = chartObject.getHorAxisProps(); + + if (chartObject) { + chartObject[(verAxisProps.getAxisType() == Asc.c_oAscAxisType.val) ? 'putVertAxisProps' : 'putHorAxisProps'](axisProps); + api.asc_editChartDrawingObject(chartObject); + } + } + + onHorAxisCrossType(value) { + let axisProps = this.getHorizontalAxisProp(); + + axisProps.putCrossesRule(+value); + + this.setHorizontalAxisProp(axisProps); + } + + onHorAxisCrossValue(value) { + let axisProps = this.getHorizontalAxisProp(); + + axisProps.putCrossesRule(Asc.c_oAscCrossesRule.value); + axisProps.putCrosses(+value); + + this.setHorizontalAxisProp(axisProps); + } + + onHorAxisPos(value) { + let axisProps = this.getHorizontalAxisProp(); + + axisProps.putLabelsPosition(+value); + + this.setHorizontalAxisProp(axisProps); + } + + onHorAxisReverse(value) { + let axisProps = this.getHorizontalAxisProp(); + + axisProps.putInvertCatOrder(value); + + this.setHorizontalAxisProp(axisProps); + } + + onHorAxisTickMajor(value) { + let axisProps = this.getHorizontalAxisProp(); + + axisProps.putMajorTickMark(+value); + + this.setHorizontalAxisProp(axisProps); + } + + onHorAxisTickMinor(value) { + let axisProps = this.getHorizontalAxisProp(); + + axisProps.putMinorTickMark(+value); + + this.setHorizontalAxisProp(axisProps); + } + + onHorAxisLabelPos(value) { + let axisProps = this.getHorizontalAxisProp(); + + axisProps.putTickLabelsPos(+value); + + this.setHorizontalAxisProp(axisProps); + } + + render () { + return ( + + ) + } +} + +export default inject("storeChartSettings", "storeFocusObjects")(observer(EditChartController)); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/edit/EditImage.jsx b/apps/spreadsheeteditor/mobile/src/controller/edit/EditImage.jsx new file mode 100644 index 000000000..446dc647d --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/edit/EditImage.jsx @@ -0,0 +1,91 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditImage } from '../../view/edit/EditImage'; + +class EditImageController extends Component { + constructor (props) { + super(props); + this.onRemoveImage = this.onRemoveImage.bind(this); + this.onReplaceByFile = this.onReplaceByFile.bind(this); + this.onReplaceByUrl = this.onReplaceByUrl.bind(this); + } + + onReorder(type) { + const api = Common.EditorApi.get(); + let ascType; + + switch(type) { + case 'all-up': + ascType = Asc.c_oAscDrawingLayerType.BringToFront; + break; + case 'all-down': + ascType = Asc.c_oAscDrawingLayerType.SendToBack; + break; + case 'move-up': + ascType = Asc.c_oAscDrawingLayerType.BringForward; + break; + case 'move-down': + ascType = Asc.c_oAscDrawingLayerType.SendBackward; + break; + } + + api.asc_setSelectedDrawingObjectLayer(ascType); + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + }; + + onDefaultSize() { + const api = Common.EditorApi.get(); + let imgsize = api.asc_getOriginalImageSize(), + properties = new Asc.asc_CImgProperty(); + + properties.put_Width(imgsize.get_ImageWidth()); + properties.put_Height(imgsize.get_ImageHeight()); + properties.put_ResetCrop(true); + api.asc_setGraphicObjectProps(properties); + } + + onRemoveImage() { + const api = Common.EditorApi.get(); + api.asc_Remove(); + this.closeModal(); + } + + onReplaceByFile() { + const api = Common.EditorApi.get(); + api.asc_changeImageFromFile(); + this.closeModal(); + } + + onReplaceByUrl(value) { + const api = Common.EditorApi.get(); + const image = new Asc.asc_CImgProperty(); + image.asc_putImageUrl(value); + api.asc_setGraphicObjectProps(image); + this.closeModal(); + } + + + render () { + return ( + + ) + } +} + +export default EditImageController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/edit/EditLink.jsx b/apps/spreadsheeteditor/mobile/src/controller/edit/EditLink.jsx new file mode 100644 index 000000000..92e221136 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/edit/EditLink.jsx @@ -0,0 +1,145 @@ +import React, { Component } from 'react'; +import { f7 } from 'framework7-react'; +import { Device } from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; +import { withTranslation } from 'react-i18next'; + +import { EditLink } from '../../view/edit/EditLink'; + +class EditLinkController extends Component { + constructor (props) { + super(props); + this.onEditLink = this.onEditLink.bind(this); + this.onRemoveLink = this.onRemoveLink.bind(this); + + const api = Common.EditorApi.get(); + const cellInfo = api.asc_getCellInfo(); + + this.linkInfo = cellInfo.asc_getHyperlink(); + this.isLock = cellInfo.asc_getLockText(); + this.currentSheet = api.asc_getWorksheetName(api.asc_getActiveWorksheetIndex()); + + // Sheets + + let items = []; + let wsc = api.asc_getWorksheetsCount(); + const aws = api.asc_getActiveWorksheetIndex(); + + if (wsc > 0) { + items = []; + while ( !(--wsc < 0) ) { + if ( !api.asc_isWorksheetHidden(wsc) ) { + items.unshift({ + value: wsc, + caption: api.asc_getWorksheetName(wsc) + }); + if (wsc === aws) { + this.activeSheet = { + value: wsc, + caption: api.asc_getWorksheetName(wsc) + } + } + } + } + this.sheets = items; + } + } + + closeModal () { + if ( Device.phone ) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + } + + onEditLink(args) { + const api = Common.EditorApi.get(); + const { t } = this.props; + const _t = t("View.Edit", {returnObjects: true}); + + let linkProps = new Asc.asc_CHyperlink(), + sheet = "", + displayText = args.text, + tip = args.tooltip, + defaultDisplay = ""; + + linkProps.asc_setType(args.type); + + if(args.type === Asc.c_oAscHyperlinkType.RangeLink) { + let range = args.url, + isValidRange = /^[A-Z]+[1-9]\d*:[A-Z]+[1-9]\d*$/.test(range); + + if (!isValidRange) + isValidRange = /^[A-Z]+[1-9]\d*$/.test(range); + + if (!isValidRange) { + f7.dialog.alert(_t.textInvalidRange, _t.notcriticalErrorTitle); + return; + } + + sheet = args.sheet; + + linkProps.asc_setSheet(sheet); + linkProps.asc_setRange(range); + defaultDisplay = sheet + '!' + range; + } else { + let url = args.url.replace(/^\s+|\s+$/g,''); + + if (! /(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url)) { + let urlType = api.asc_getUrlType(url.trim()); + + if (urlType < 1) { + f7.dialog.alert(_t.txtNotUrl, _t.notcriticalErrorTitle); + return; + } + + url = ( (urlType == 2) ? 'mailto:' : 'http://' ) + url; + } + + url = url.replace(new RegExp("%20",'g')," "); + + linkProps.asc_setHyperlinkUrl(url); + defaultDisplay = url; + } + + if (this.isLock) { + linkProps.asc_setText(null); + } else { + if (!displayText) { + displayText = defaultDisplay; + } + linkProps.asc_setText(displayText); + } + + linkProps.asc_setTooltip(tip); + + api.asc_insertHyperlink(linkProps); + this.closeModal(); + + } + + onRemoveLink() { + const api = Common.EditorApi.get(); + api.asc_removeHyperlink(); + this.closeModal(); + } + + render () { + return ( + + ) + } +} + +const EditLinkWithTranslation = withTranslation()(EditLinkController); + +export {EditLinkWithTranslation as EditLinkController}; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/edit/EditShape.jsx b/apps/spreadsheeteditor/mobile/src/controller/edit/EditShape.jsx new file mode 100644 index 000000000..7280a0731 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/edit/EditShape.jsx @@ -0,0 +1,164 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; +import {observer, inject} from "mobx-react"; + +import { EditShape } from '../../view/edit/EditShape'; + +class EditShapeController extends Component { + constructor (props) { + super(props); + this.onRemoveShape = this.onRemoveShape.bind(this); + this.onBorderSize = this.onBorderSize.bind(this); + this.onBorderColor = this.onBorderColor.bind(this); + + this.props.storeShapeSettings.setFillColor(undefined); + this.props.storeShapeSettings.setBorderColor(undefined); + } + + onReplace(type) { + const api = Common.EditorApi.get(); + api.asc_changeShapeType(type); + } + + onReorder(type) { + const api = Common.EditorApi.get(); + let ascType; + + switch(type) { + case 'all-up': + ascType = Asc.c_oAscDrawingLayerType.BringToFront; + break; + case 'all-down': + ascType = Asc.c_oAscDrawingLayerType.SendToBack; + break; + case 'move-up': + ascType = Asc.c_oAscDrawingLayerType.BringForward; + break; + case 'move-down': + ascType = Asc.c_oAscDrawingLayerType.SendBackward; + break; + } + + api.asc_setSelectedDrawingObjectLayer(ascType); + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('#edit-sheet', true); + } else { + f7.popover.close('#edit-popover'); + } + }; + + onRemoveShape() { + const api = Common.EditorApi.get(); + api.asc_Remove(); + this.closeModal(); + } + + onFillColor(color) { + const api = Common.EditorApi.get(); + + let shape = new Asc.asc_CShapeProperty(), + image = new Asc.asc_CImgProperty(), + fill = new Asc.asc_CShapeFill(); + + if (color == 'transparent') { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_NOFILL); + fill.put_fill(null); + } else { + fill.put_type(Asc.c_oAscFill.FILL_TYPE_SOLID); + fill.put_fill(new Asc.asc_CFillSolid()); + fill.get_fill().put_color(Common.Utils.ThemeColor.getRgbColor(color)); + } + + shape.asc_putFill(fill); + image.asc_putShapeProperties(shape); + + api.asc_setGraphicObjectProps(image); + } + + onBorderColor(color) { + const api = Common.EditorApi.get(); + const _shapeObject = this.props.storeFocusObjects.shapeObject.get_ShapeProperties(); + + if (_shapeObject && _shapeObject.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) { + let shape = new Asc.asc_CShapeProperty(), + image = new Asc.asc_CImgProperty(), + stroke = new Asc.asc_CStroke(); + + if (_shapeObject.get_stroke().get_width() < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color)); + stroke.put_width(_shapeObject.get_stroke().get_width()); + stroke.asc_putPrstDash(_shapeObject.get_stroke().asc_getPrstDash()); + } + + shape.put_stroke(stroke); + image.asc_putShapeProperties(shape); + + api.asc_setGraphicObjectProps(image); + } + } + + onBorderSize(value) { + const api = Common.EditorApi.get(); + const shape = new Asc.asc_CShapeProperty(); + const stroke = new Asc.asc_CStroke(); + const image = new Asc.asc_CImgProperty(); + + const _borderColor = this.props.storeShapeSettings.borderColorView; + + if (value < 0.01) { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_NONE); + } else { + stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR); + if (_borderColor == 'transparent') + stroke.put_color(Common.Utils.ThemeColor.getRgbColor({color: '000000', effectId: 29})); + else + stroke.put_color(Common.Utils.ThemeColor.getRgbColor(Common.Utils.ThemeColor.colorValue2EffectId(_borderColor))); + stroke.put_width(value * 25.4 / 72.0); + } + + shape.put_stroke(stroke); + image.asc_putShapeProperties(shape); + + api.asc_setGraphicObjectProps(image); + + this.props.storeShapeSettings.initBorderColorView(this.props.storeFocusObjects.shapeObject.get_ShapeProperties()); + } + + onOpacity(value) { + const api = Common.EditorApi.get(); + + let fill = new Asc.asc_CShapeFill(), + properties = new Asc.asc_CImgProperty(), + shape = new Asc.asc_CShapeProperty(); + + fill.asc_putTransparent(parseInt(value * 2.55)); + shape.asc_putFill(fill); + properties.put_ShapeProperties(shape); + + api.asc_setGraphicObjectProps(properties); + } + + + render () { + return ( + + ) + } +} + +export default inject("storeShapeSettings", "storeFocusObjects")(observer(EditShapeController)); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/edit/EditText.jsx b/apps/spreadsheeteditor/mobile/src/controller/edit/EditText.jsx new file mode 100644 index 000000000..3aac994dd --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/edit/EditText.jsx @@ -0,0 +1,108 @@ +import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import {Device} from '../../../../../common/mobile/utils/device'; + +import { EditText } from '../../view/edit/EditText'; + +class EditTextController extends Component { + constructor (props) { + super(props); + } + + toggleBold(value) { + const api = Common.EditorApi.get(); + api.asc_setCellBold(value); + }; + + toggleItalic(value) { + const api = Common.EditorApi.get(); + api.asc_setCellItalic(value); + }; + + toggleUnderline(value) { + const api = Common.EditorApi.get(); + api.asc_setCellUnderline(value); + }; + + onParagraphAlign(type) { + const api = Common.EditorApi.get(); + let value = AscCommon.align_Left; + + switch (type) { + case 'justify': + value = AscCommon.align_Justify; + break; + case 'right': + value = AscCommon.align_Right; + break; + case 'center': + value = AscCommon.align_Center; + break; + } + + api.asc_setCellAlign(value); + }; + + onParagraphValign(type) { + const api = Common.EditorApi.get(); + let value; + + switch(type) { + case 'top': + value = Asc.c_oAscVAlign.Top; + break; + case 'center': + value = Asc.c_oAscVAlign.Center; + break; + case 'bottom': + value = Asc.c_oAscVAlign.Bottom; + break; + } + + api.asc_setCellVertAlign(value); + }; + + changeFontSize(curSize, isDecrement) { + const api = Common.EditorApi.get(); + let size = curSize; + + if (isDecrement) { + typeof size === 'undefined' ? api.asc_decreaseFontSize() : size = Math.max(1, --size); + } else { + typeof size === 'undefined' ? api.asc_increaseFontSize() : size = Math.min(409, ++size); + } + + if (typeof size !== 'undefined') { + api.asc_setCellFontSize(size); + } + }; + + changeFontFamily(name) { + const api = Common.EditorApi.get(); + if (name) { + api.asc_setCellFontName(name); + } + } + + onTextColor(color) { + const api = Common.EditorApi.get(); + api.asc_setCellTextColor(Common.Utils.ThemeColor.getRgbColor(color)); + } + + render () { + return ( + + ) + } +} + +export default EditTextController; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/settings/ApplicationSettings.jsx b/apps/spreadsheeteditor/mobile/src/controller/settings/ApplicationSettings.jsx new file mode 100644 index 000000000..1704fee0c --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/settings/ApplicationSettings.jsx @@ -0,0 +1,105 @@ +import React, { Component } from "react"; +import { ApplicationSettings } from "../../view/settings/ApplicationSettings"; +import {observer, inject} from "mobx-react"; + +class ApplicationSettingsController extends Component { + constructor(props) { + super(props); + this.onFormulaLangChange = this.onFormulaLangChange.bind(this); + this.onRegSettings = this.onRegSettings.bind(this); + this.initRegSettings = this.initRegSettings.bind(this); + this.props.storeApplicationSettings.initRegData(); + this.initRegSettings(); + } + + initRegSettings() { + this.props.storeApplicationSettings.getRegCode(); + + const info = new Asc.asc_CFormatCellsInfo(); + const api = Common.EditorApi.get(); + const regCode = this.props.storeApplicationSettings.regCode; + + info.asc_setType(Asc.c_oAscNumFormatType.None); + info.asc_setSymbol(regCode); + + const arr = api.asc_getFormatCells(info); + const text4 = api.asc_getLocaleExample(arr[4], 1000.01, regCode), + text5 = api.asc_getLocaleExample(arr[5], Asc.cDate().getExcelDateWithTime(), regCode), + text6 = api.asc_getLocaleExample(arr[6], Asc.cDate().getExcelDateWithTime(), regCode); + + this.props.storeApplicationSettings.setRegExample(`${text4} ${text5} ${text6}`); + } + + onChangeDisplayComments(displayComments) { + const api = Common.EditorApi.get(); + + if (!displayComments) { + api.asc_hideComments(); + Common.localStorage.setBool("sse-settings-resolvedcomment", false); + } else { + let resolved = Common.localStorage.getBool("sse-settings-resolvedcomment"); + api.asc_showComments(resolved); + } + + Common.localStorage.setBool("sse-mobile-settings-livecomment", displayComments); + } + + onChangeDisplayResolved(value) { + const api = Common.EditorApi.get(); + let displayComments = Common.localStorage.getBool("sse-mobile-settings-livecomment"); + + if (displayComments) { + api.asc_showComments(value); + Common.localStorage.setBool("sse-settings-resolvedcomment", value); + } + } + + clickR1C1Style(checked) { + const api = Common.EditorApi.get(); + Common.localStorage.setBool('sse-settings-r1c1', checked); + api.asc_setR1C1Mode(checked); + } + + unitMeasurementChange(value) { + value = value ? +value : Common.Utils.Metric.getDefaultMetric(); + Common.Utils.Metric.setCurrentMetric(value); + Common.localStorage.setItem("se-mobile-settings-unit", value); + } + + onChangeMacrosSettings(value) { + Common.Utils.InternalSettings.set("sse-mobile-macros-mode", +value); + Common.localStorage.setItem("sse-mobile-macros-mode", +value); + } + + onFormulaLangChange(value) { + Common.localStorage.setItem("sse-settings-func-lang", value); + this.initRegSettings(); + // SSE.getController('AddFunction').onDocumentReady(); + } + + onRegSettings(regCode) { + const api = Common.EditorApi.get(); + Common.localStorage.setItem("sse-settings-regional", regCode); + this.initRegSettings(); + if (regCode!==null) api.asc_setLocale(+regCode); + } + + render() { + return ( + + ) + } +} + + +export default inject("storeApplicationSettings")(observer(ApplicationSettingsController)); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/settings/Download.jsx b/apps/spreadsheeteditor/mobile/src/controller/settings/Download.jsx new file mode 100644 index 000000000..2ee98c31d --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/settings/Download.jsx @@ -0,0 +1,168 @@ +import React, { Component } from "react"; +import Download from "../../view/settings/Download"; +import { Device } from '../../../../../common/mobile/utils/device'; +import { withTranslation, useTranslation } from 'react-i18next'; +import { f7 } from 'framework7-react'; + +class DownloadController extends Component { + constructor(props) { + super(props); + this.onSaveFormat = this.onSaveFormat.bind(this); + } + + closeModal() { + if (Device.phone) { + f7.sheet.close('.settings-popup', true); + } else { + f7.popover.close('#settings-popover'); + } + } + + onSaveFormat(format) { + const api = Common.EditorApi.get(); + const { t } = this.props; + const _t = t("View.Settings", {returnObjects: true}); + + this.closeModal(); + + if (format) { + if (format == Asc.c_oAscFileType.CSV) { + f7.dialog.confirm( + _t.warnDownloadAs, + _t.notcriticalErrorTitle, + function () { + onAdvancedOptions(Asc.c_oAscAdvancedOptionsID.CSV, api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format), _t) + } + ) + } else { + api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format)); + } + } + } + + render() { + return ( + + ); + } +} + +const DownloadWithTranslation = withTranslation()(DownloadController); + +const onAdvancedOptions = (type, advOptions, mode, formatOptions, _t, canRequestClose) => { + const api = Common.EditorApi.get(); + + if (type == Asc.c_oAscAdvancedOptionsID.CSV) { + let picker; + const pages = []; + const pagesName = []; + + for (let page of advOptions.asc_getCodePages()) { + pages.push(page.asc_getCodePage()); + pagesName.push(page.asc_getCodePageName()); + } + + // me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); + + const buttons = []; + + if (mode === 2) { + buttons.push({ + text: _t.textCancel + }); + } + + buttons.push({ + text: 'OK', + bold: true, + onClick: function() { + let encoding = picker.cols[0].value, + delimiter = picker.cols[1].value; + + if (mode == 2) { + formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(encoding, delimiter)); + api.asc_DownloadAs(formatOptions); + } else { + api.asc_setAdvancedOptions(type, new Asc.asc_CTextOptions(encoding, delimiter)); + } + + //if (!me._isDocReady) { + //me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); + //} + } + }); + + const dialog = f7.dialog.create({ + title: _t.advCSVOptions, + text: '', + content: + '
                    ' + + '
                    ' + + '
                    ' + _t.txtEncoding + '
                    ' + + '
                    ' + _t.txtDelimiter + '
                    ' + + '
                    ' + + '
                    ' + + '
                    ', + buttons: buttons + }).open(); + + const recommendedSettings = advOptions.asc_getRecommendedSettings(); + + dialog.on('opened', () => { + picker = f7.picker.create({ + containerEl: document.getElementById('txt-encoding'), + cols: [{ + textAlign: 'left', + values: pages, + displayValues: pagesName + },{ + textAlign: 'right', + width: 120, + values: [4, 2, 3, 1, 5], + displayValues: [',', ';', ':', _t.txtTab, _t.txtSpace] + }], + toolbar: false, + rotateEffect: true, + value: [ + recommendedSettings && recommendedSettings.asc_getCodePage(), + (recommendedSettings && recommendedSettings.asc_getDelimiter()) ? recommendedSettings.asc_getDelimiter() : 4 + ], + }); + }); + + } else if (type == Asc.c_oAscAdvancedOptionsID.DRM) { + //me.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); + const buttons = [{ + text: 'OK', + bold: true, + onClick: function () { + const password = document.getElementById('modal-password').value; + api.asc_setAdvancedOptions(type, new Asc.asc_CDRMAdvancedOptions(password)); + //if (!me._isDocReady) { + //me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument); + //} + } + }]; + + if (canRequestClose) + buttons.push({ + text: _t.closeButtonText, + onClick: function () { + Common.Gateway.requestClose(); + } + }); + + f7.dialog.create({ + title: _t.advDRMOptions, + text: _t.txtProtected, + content: + '
                    ', + buttons: buttons + }).open(); + } +}; + +export { + DownloadWithTranslation, + onAdvancedOptions +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetInfo.jsx b/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetInfo.jsx new file mode 100644 index 000000000..238036bcd --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetInfo.jsx @@ -0,0 +1,103 @@ +import React, { Component } from "react"; +import { observer, inject } from "mobx-react"; +import SpreadsheetInfo from "../../view/settings/SpreadsheetInfo"; + +class SpreadsheetInfoController extends Component { + constructor(props) { + super(props); + this.docProps = this.getDocProps(); + this.getModified = this.getModified(); + this.getModifiedBy = this.getModifiedBy(); + this.getCreators = this.getCreators(); + this.title = this.getTitle(); + this.subject = this.getSubject(); + this.description = this.getDescription(); + this.getCreated = this.getCreated(); + } + + getDocProps() { + const api = Common.EditorApi.get(); + return api.asc_getCoreProps(); + } + + getAppProps() { + const api = Common.EditorApi.get(); + const appProps = api.asc_getAppProps(); + + if (appProps) { + let appName = + (appProps.asc_getApplication() || "") + + (appProps.asc_getAppVersion() ? " " : "") + + (appProps.asc_getAppVersion() || ""); + return appName; + } + } + + getModified() { + let valueModified = this.docProps.asc_getModified(); + const _lang = this.props.storeAppOptions.lang; + + if (valueModified) { + return ( + valueModified.toLocaleString(_lang, { + year: "numeric", + month: "2-digit", + day: "2-digit", + }) + + " " + + valueModified.toLocaleTimeString(_lang, { timeStyle: "short" }) + ); + } + } + + getModifiedBy() { + let valueModifiedBy = this.docProps.asc_getLastModifiedBy(); + + if (valueModifiedBy) { + return Common.Utils.UserInfoParser.getParsedName(valueModifiedBy); + } + } + + getCreators() { + return this.docProps.asc_getCreator(); + } + + getTitle() { + return this.docProps.asc_getTitle(); + } + + getSubject() { + return this.docProps.asc_getSubject(); + } + + getDescription() { + return this.docProps.asc_getDescription(); + } + + getCreated() { + let value = this.docProps.asc_getCreated(); + const _lang = this.props.storeAppOptions.lang; + + if(value) { + return value.toLocaleString(_lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleTimeString(_lang, {timeStyle: 'short'}); + } + } + + render() { + return ( + + ); + } +} + + +export default inject("storeAppOptions")(observer(SpreadsheetInfoController)); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetSettings.jsx b/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetSettings.jsx new file mode 100644 index 000000000..b1030ab10 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetSettings.jsx @@ -0,0 +1,115 @@ + +import React, {Component} from 'react'; +import {SpreadsheetSettings} from '../../view/settings/SpreadsheetSettings'; +import {observer, inject} from "mobx-react"; + +class SpreadsheetSettingsController extends Component { + constructor (props) { + super (props); + this.initSpreadsheetMargins = this.initSpreadsheetMargins.bind(this); + this.onFormatChange = this.onFormatChange.bind(this); + this.onPageMarginsChange = this.onPageMarginsChange.bind(this); + this.initSpreadsheetSettings(); + } + + initSpreadsheetSettings() { + const api = Common.EditorApi.get(); + const params = api.asc_getSheetViewSettings(); + const currentSheet = api.asc_getActiveWorksheetIndex(); + const propsSheet = api.asc_getPageOptions(currentSheet); + const opt = propsSheet.asc_getPageSetup(); + + this.props.storeSpreadsheetSettings.changeHideHeadings(!params.asc_getShowRowColHeaders()); + this.props.storeSpreadsheetSettings.changeHideGridlines(!params.asc_getShowGridLines()); + this.props.storeSpreadsheetSettings.resetPortrait(opt.asc_getOrientation() === Asc.c_oAscPageOrientation.PagePortrait ? true : false); + this.props.storeSpreadsheetSettings.changeDocSize(opt.asc_getWidth(), opt.asc_getHeight()); + } + + initSpreadsheetMargins() { + const api = Common.EditorApi.get(); + + // Init page margins + + let currentSheet = api.asc_getActiveWorksheetIndex(), + props = api.asc_getPageOptions(currentSheet); + + this.localMarginProps = props.asc_getPageMargins(); + + let left = this.localMarginProps.asc_getLeft(), + top = this.localMarginProps.asc_getTop(), + right = this.localMarginProps.asc_getRight(), + bottom = this.localMarginProps.asc_getBottom(); + + return {left, top, right, bottom}; + } + + onPageMarginsChange(align, marginValue) { + const api = Common.EditorApi.get(); + let changeProps = new Asc.asc_CPageMargins(); + + changeProps.asc_setTop(this.localMarginProps.asc_getTop()); + changeProps.asc_setBottom(this.localMarginProps.asc_getBottom()); + changeProps.asc_setLeft(this.localMarginProps.asc_getLeft()); + changeProps.asc_setRight(this.localMarginProps.asc_getRight()); + + switch (align) { + case 'left': changeProps.asc_setLeft(marginValue); break; + case 'top': changeProps.asc_setTop(marginValue); break; + case 'right': changeProps.asc_setRight(marginValue); break; + case 'bottom': changeProps.asc_setBottom(marginValue); break; + } + + api.asc_changePageMargins(changeProps.asc_getLeft(), changeProps.asc_getRight(), changeProps.asc_getTop(), changeProps.asc_getBottom(), api.asc_getActiveWorksheetIndex()); + } + + onOrientationChange(value) { + const api = Common.EditorApi.get(); + api.asc_changePageOrient(+value === Asc.c_oAscPageOrientation.PagePortrait, api.asc_getActiveWorksheetIndex()); + } + + clickCheckboxHideHeadings(value) { + const api = Common.EditorApi.get(); + api.asc_setDisplayHeadings(!value); + } + + clickCheckboxHideGridlines(value) { + const api = Common.EditorApi.get(); + api.asc_setDisplayGridlines(!value); + } + + initPageColorSchemes() { + const api = Common.EditorApi.get(); + return api.asc_GetCurrentColorSchemeIndex(); + } + + onColorSchemeChange(index) { + const api = Common.EditorApi.get(); + api.asc_ChangeColorSchemeByIdx(+index); + } + + onFormatChange(value) { + const api = Common.EditorApi.get(); + api.asc_changeDocSize(parseFloat(value[0]), parseFloat(value[1]), api.asc_getActiveWorksheetIndex()); + this.initSpreadsheetSettings(); + } + + render () { + return ( + + ) + } +} + +export default inject("storeSpreadsheetSettings")(observer(SpreadsheetSettingsController)); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/index_dev.html b/apps/spreadsheeteditor/mobile/src/index_dev.html new file mode 100644 index 000000000..8b053439c --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/index_dev.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + Spreadsheet Editor + + + + + + + + + + + + + + +
                    + + + + + \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/less/app-ios.less b/apps/spreadsheeteditor/mobile/src/less/app-ios.less new file mode 100644 index 000000000..e058a2241 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/app-ios.less @@ -0,0 +1,23 @@ + +.device-ios { + input.modal-text-input { + box-sizing: border-box; + height: 26px; + background: #fff; + margin: 0; + margin-top: 15px; + padding: 0 5px; + border: 1px solid rgba(0,0,0,.3); + border-radius: 0; + width: 100%; + font-size: 14px; + font-family: inherit; + display: block; + box-shadow: 0 0 0 transparent; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + appearance: none; + } + +} diff --git a/apps/spreadsheeteditor/mobile/src/less/app-material.less b/apps/spreadsheeteditor/mobile/src/less/app-material.less new file mode 100644 index 000000000..879f3a67c --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/app-material.less @@ -0,0 +1,24 @@ + +// Colors +@themeColorLight: #a2bdde; +@navBarIconColor: #fff; + + +.device-android { + --f7-navbar-bg-color: @themeColor; + --f7-navbar-link-color: @navBarIconColor; + --f7-navbar-text-color: @navBarIconColor; + + // Main Toolbar + #editor-navbar.navbar .right { + padding-right: 4px; + } + #editor-navbar.navbar .right a.link, + #editor-navbar.navbar .left a.link { + padding: 0 13px; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + width: auto; + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/less/app.less b/apps/spreadsheeteditor/mobile/src/less/app.less new file mode 100644 index 000000000..b2dbf1c91 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/app.less @@ -0,0 +1,45 @@ + +@themeColor: #40865c; + +@import '../../../../common/mobile/resources/less/variables.less'; +@import '../../../../../vendor/framework7-react/node_modules/framework7/less/mixins.less'; + +@import '../../../../common/mobile/resources/less/_mixins.less'; +@import '../../../../common/mobile/resources/less/collaboration.less'; +@import '../../../../common/mobile/resources/less/common.less'; +@import '../../../../common/mobile/resources/less/common-ios.less'; +@import '../../../../common/mobile/resources/less/common-material.less'; +@import '../../../../common/mobile/resources/less/icons.less'; +@import '../../../../common/mobile/resources/less/dataview.less'; +@import '../../../../common/mobile/resources/less/search.less'; +@import '../../../../common/mobile/resources/less/contextmenu.less'; +@import '../../../../common/mobile/resources/less/comments.less'; +@import './app-material.less'; +@import './app-ios.less'; +@import './icons-ios.less'; +@import './icons-material.less'; +@import './icons-common.less'; +@import './celleditor.less'; +@import './statusbar.less'; + +.page[data-name='home'] { + .page-content { + display: flex; + flex-direction: column; + align-items: stretch; + } +}; + +:root { + --f7-popover-width: 360px; + //--f7-page-content-extra-padding-top: 37px; +} + +.function-info { + padding: 0 15px; +} +.page-function-info { + &.page-content, .page-content { + background-color: @white; + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/less/celleditor.less b/apps/spreadsheeteditor/mobile/src/less/celleditor.less new file mode 100644 index 000000000..53be7192a --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/celleditor.less @@ -0,0 +1,124 @@ + +@cellEditorHeight: 30px; +@cellEditorExpandedHeight: 70px; +@contentBackColor: #fff; +@gray-light: #f1f1f1; +@gray-darker: #848484; //rgb(132, 132, 132) +@statusBarBorderColor: #cbcbcb; + +#idx-celleditor { + box-sizing: border-box; + * { + box-sizing: border-box; + } + + display: flex; + z-index: 5001; + + height: @cellEditorHeight; + min-height: @cellEditorHeight; + background-color: @contentBackColor; + + &.expanded { + min-height: @cellEditorExpandedHeight; + //height: @cellEditorExpandedHeight; + transition: min-height .1s; + } + + &:after { + content: ''; + position: absolute; + background-color: @border-regular-control; + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); + } + + #box-cell-name { + display: inline-flex; + background-color: var(--f7-navbar-bg-color); + + .md & { + background-color: @gray-light; + } + } + + #idx-cell-name { + display: inline-block; + width: 90px; + padding: 0 4px; + border: 0 none; + line-height: 30px; + //font-size: 17px; + text-align: center; + + &[disabled] { + color: @gray-darker; + opacity: 0.5; + } + } + + .phone & { + #idx-cell-name { + display: none; + } + } + + #idx-btn-function { + height: @cellEditorHeight; + line-height: @cellEditorHeight; + padding: 0 10px; + } + + #idx-cell-content { + padding: 3px 3px; + line-height: 1.428571429; + color: #000; + vertical-align: middle; + background-color: @contentBackColor; + min-height: @cellEditorHeight; + height: 100%; + width: 100%; + } + + .caret { + &::after { + content: ''; + position: absolute; + top: 8px; + left: 6px; + width: 8px; + height: 8px; + background-color: transparent; + border: solid 1px black; + border-bottom: none; + border-right: none; + + transition: transform 0.2s ease; + transform: rotate(-135deg); + } + + width: 30px; + height: 16px; + } + + &.expanded { + .caret { + &::after { + transform: rotate(45deg) translate(3px, 3px); + } + } + } + + .group--content { + position: relative; + .hairline(left, @statusBarBorderColor); + } +} diff --git a/apps/spreadsheeteditor/mobile/src/less/icons-common.less b/apps/spreadsheeteditor/mobile/src/less/icons-common.less new file mode 100644 index 000000000..c4c4f0dd9 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/icons-common.less @@ -0,0 +1,79 @@ + +.chart-types .thumb { + @relativepath: '../../resources/img'; + &.bar-normal { + background-image: url('@{relativepath}/charts/chart-03.png'); + } + &.bar-stacked { + background-image: url('@{relativepath}/charts/chart-02.png'); + } + &.bar-pstacked { + background-image: url('@{relativepath}/charts/chart-01.png'); + } + &.line-normal { + background-image: url('@{relativepath}/charts/chart-06.png'); + } + &.line-stacked { + background-image: url('@{relativepath}/charts/chart-05.png'); + } + &.line-pstacked { + background-image: url('@{relativepath}/charts/chart-04.png'); + } + &.hbar-normal { + background-image: url('@{relativepath}/charts/chart-09.png'); + } + &.hbar-stacked { + background-image: url('@{relativepath}/charts/chart-08.png'); + } + &.hbar-pstacked { + background-image: url('@{relativepath}/charts/chart-07.png'); + } + &.area-normal { + background-image: url('@{relativepath}/charts/chart-12.png'); + } + &.area-stacked { + background-image: url('@{relativepath}/charts/chart-11.png'); + } + &.area-pstacked { + background-image: url('@{relativepath}/charts/chart-10.png'); + } + &.pie { + background-image: url('@{relativepath}/charts/chart-13.png'); + } + &.doughnut { + background-image: url('@{relativepath}/charts/chart-14.png'); + } + &.pie3d { + background-image: url('@{relativepath}/charts/chart-22.png'); + } + &.scatter { + background-image: url('@{relativepath}/charts/chart-15.png'); + } + &.stock { + background-image: url('@{relativepath}/charts/chart-16.png'); + } + &.line3d { + background-image: url('@{relativepath}/charts/chart-21.png'); + } + &.bar3dnormal { + background-image: url('@{relativepath}/charts/chart-17.png'); + } + &.bar3dstack { + background-image: url('@{relativepath}/charts/chart-18.png'); + } + &.bar3dpstack { + background-image: url('@{relativepath}/charts/chart-19.png'); + } + &.hbar3dnormal { + background-image: url('@{relativepath}/charts/chart-25.png'); + } + &.hbar3dstack { + background-image: url('@{relativepath}/charts/chart-24.png'); + } + &.hbar3dpstack { + background-image: url('@{relativepath}/charts/chart-23.png'); + } + &.bar3dpsnormal { + background-image: url('@{relativepath}/charts/chart-20.png'); + } +} diff --git a/apps/spreadsheeteditor/mobile/src/less/icons-ios.less b/apps/spreadsheeteditor/mobile/src/less/icons-ios.less new file mode 100644 index 000000000..26229adbb --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/icons-ios.less @@ -0,0 +1,477 @@ +// Icons + +.device-ios { + i.icon { + &.icon-logo { + width: 100px; + height: 14px; + background: url('../../../../common/mobile/resources/img/header/logo-ios.svg') no-repeat center; + } + &.icon-search { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-edit { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-edit-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-undo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-redo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-reader { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-download { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-print { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-info { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-about { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-help { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-versions { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-text-color { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-fill-color { + width: 22px; + height: 22px; + background-size: 130%; + .encoded-svg-background(''); + } + &.icon-text-align-center { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-jast { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-left { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-right { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-valign-top { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-valign-middle { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-valign-bottom { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-expand-down { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-link { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-insimage { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-sort { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-image-library { + width: 22px; + height: 22px; + .encoded-svg-background('icons_for_svg'); + } + &.icon-cell-wrap { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + &.icon-function { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + // Reorder + + &.icon-move-backward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-forward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-background { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-foreground { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + // Presets of table borders + + &.icon-table-borders-all { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-none { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-inner { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-outer { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-left { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-center { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-right { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-top { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-middle { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-bottom { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-dup { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-ddown { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + // Cell formats + + &.icon-format-general { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-number { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-integer { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-scientific { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-accounting { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-currency { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-date { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-time { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-percentage { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-text { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Filter sort + + &.sortdown { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.sortup { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Formats + + &.icon-format-pdf { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-pdfa { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-xlsx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-xltx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-ods { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-ots { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-csv { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + // Collaboration + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-app-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-table-settings { + width: 24px; + height: 24px; + .encoded-svg-background(' '); + } + //Comments + &.icon-menu-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-resolve-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-resolve-comment.check { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + //Insert + &.icon-add-chart { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-formula { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + // Text orientation + &.icon-text-orientation-horizontal { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-anglecount { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-angleclock { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-vertical { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-rotateup { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-rotatedown { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + + .tab-link-active { + i.icon { + &.icon-add-chart { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-formula { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + } +} diff --git a/apps/spreadsheeteditor/mobile/src/less/icons-material.less b/apps/spreadsheeteditor/mobile/src/less/icons-material.less new file mode 100644 index 000000000..046876ee2 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/icons-material.less @@ -0,0 +1,491 @@ +// Icons + +.device-android { + i.icon { + &.icon-expand-up { + width: 17px; + height: 17px; + .encoded-svg-background(''); + } + &.icon-expand-down { + width: 17px; + height: 17px; + .encoded-svg-background(''); + } + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-edit { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-edit-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-reader { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-download { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-print { + width: 22px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-info { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-about { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-help { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-versions { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-text-color { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-text-align-center { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-jast { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-left { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-align-right { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-valign-top { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-valign-middle { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-text-valign-bottom { + width: 22px; + height: 22px; + .encoded-svg-mask(''); + } + &.icon-link { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-insimage, &.icon-image-library { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-sort { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-function { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-app-settings { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-table-settings { + width: 24px; + height: 24px; + .encoded-svg-background(' '); + } + + + // Reorder + + &.icon-move-backward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-forward { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-background { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-move-foreground { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + // Presets of table borders + + &.icon-table-borders-all { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-none { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-inner { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-outer { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-left { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-center { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-right { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-top { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-middle { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-bottom { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-dup { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + &.icon-table-borders-ddown { + width: 28px; + height: 28px; + .encoded-svg-background(''); + } + + // Cell formats + + &.icon-format-general { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-number { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-integer { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-scientific { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-accounting { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-currency { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-date { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-time { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-percentage { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-format-text { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Filter sort + + &.sortdown { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.sortup { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + + // Formats + + &.icon-format-pdf { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-pdfa { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-xlsx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-xltx { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-ods { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-ots { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-format-csv { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + // Collaboration + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + //Comments + &.icon-menu-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-resolve-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-resolve-comment.check { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-done-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-done-comment-white { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + // Text orientation + &.icon-text-orientation-horizontal { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-anglecount { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-angleclock { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-vertical { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-rotateup { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-text-orientation-rotatedown { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + } + + // Overwrite color for toolbar + .navbar { + i.icon { + &.icon-logo { + width: 100px; + height: 14px; + background: url('../../../../common/mobile/resources/img/header/logo-android.svg') no-repeat center; + } + &.icon-undo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-redo { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-search { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-burger { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-plus { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-edit { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-settings { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-prev { + width: 20px; + height: 20px; + .encoded-svg-background(''); + } + &.icon-next { + width: 20px; + height: 20px; + .encoded-svg-background(''); + } + &.icon-expand-down { + width: 22px; + height: 22px; + .encoded-svg-background(''); + } + &.icon-add-chart { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-formula { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-close-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } + } +} diff --git a/apps/spreadsheeteditor/mobile/src/less/statusbar.less b/apps/spreadsheeteditor/mobile/src/less/statusbar.less new file mode 100644 index 000000000..40fe15ce9 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/less/statusbar.less @@ -0,0 +1,73 @@ +@statusbar-height: 30px; +@fontColor: #000; + +.statusbar { + .hairline(top, @border-regular-control); + height: @statusbar-height; + min-height: @statusbar-height; + background-color: @background-normal; + display: flex; + + .tab { + border: 0 none; + border-radius: 0; + font-size: 18px; + line-height: inherit; + min-width: 48px; + + display: inline-block; + // padding: 0 10px; + text-align: center; + height: 100%; + position: relative; + + .hairline(right, @border-regular-control); + } + + .statusbar--box-tabs { + overflow-x: auto; + overflow-y: hidden; + &::-webkit-scrollbar { + -webkit-appearance: none; + display: none; + // width: 0; + // height: 0; + } + > ul { + padding: 0; + margin: 0; + height: 100%; + white-space: pre; + // overflow: hidden; + // position: absolute; + // left: 0; + // top: 0; + > li { + a { + font-size: 12px; + padding: 0 10px 0; + line-height: @statusbar-height; + color: @text-normal; + height: 100%; + display: block; + } + + &:not(.active) { + a { + opacity: 0.5; + } + } + } + } + } + + i.icon { + width: 22px; + height: 22px; + &.icon-plus { + @source: ''; + .encoded-svg-mask(@source, @fontColor); + background-image: none; + } + } +} diff --git a/apps/spreadsheeteditor/mobile/src/lib/i18n.js b/apps/spreadsheeteditor/mobile/src/lib/i18n.js new file mode 100644 index 000000000..b3d3566ee --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/lib/i18n.js @@ -0,0 +1,17 @@ +import i18n from 'i18next' +import {initReactI18next} from 'react-i18next' +import Fetch from 'i18next-fetch-backend' + +i18n.use(initReactI18next) + .use(Fetch) + .init({ + lng: Common.Locale.currentLang, + fallbackLng: "en", + escapeValue: false, + backend: { + loadPath: './locale/{{lng}}.json' + }, + interpolation: { escapeValue: false }, + }); + +export default i18n; \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/lib/patch.jsx b/apps/spreadsheeteditor/mobile/src/lib/patch.jsx new file mode 100644 index 000000000..ec7b37a2c --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/lib/patch.jsx @@ -0,0 +1,6 @@ + +const EditorUIController = () => null; + +EditorUIController.isSupportEditFeature = () => false; + +export default EditorUIController; diff --git a/apps/spreadsheeteditor/mobile/src/page/app.jsx b/apps/spreadsheeteditor/mobile/src/page/app.jsx new file mode 100644 index 000000000..2bf443815 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/page/app.jsx @@ -0,0 +1,51 @@ + +import React from 'react'; + +import {App,Views,View,Navbar,NavLeft,NavRight,Link} from 'framework7-react'; +import { f7ready } from 'framework7-react'; + +import '../../../../common/Analytics.js'; + +import '../../../../common/Gateway.js'; + +import routes from '../router/routes.js'; + +import '../../../../common/main/lib/util/utils.js'; +import '../../../../common/main/lib/util/LanguageInfo.js'; +import {LocalStorage} from '../../../../common/mobile/utils/LocalStorage.js'; +import Notifications from '../../../../common/mobile/utils/notifications.js'; +import {MainController} from '../controller/Main'; +import {Device} from '../../../../common/mobile/utils/device'; +import CellEditor from '../controller/CellEditor'; + +const f7params = { + name: 'Spreadsheet Editor', // App name + theme: 'auto', // Automatic theme detection + + routes: routes, // App routes +}; + +export default class extends React.Component { + constructor() { + super(); + + Common.Notifications = new Notifications(); + Common.localStorage = LocalStorage; + } + + render() { + return ( + + {/* Your main view, should have "view-main" class */} + + + + ) + } + + componentDidMount() { + f7ready(f7 => { + Device.initDom(); + }); + } +} diff --git a/apps/spreadsheeteditor/mobile/src/page/main.jsx b/apps/spreadsheeteditor/mobile/src/page/main.jsx new file mode 100644 index 000000000..356e4859b --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/page/main.jsx @@ -0,0 +1,106 @@ +import React, { Component } from 'react'; +import { Page, View, Navbar, Subnavbar, Icon } from 'framework7-react'; +import { observer, inject } from "mobx-react"; + +import Settings from '../view/settings/Settings'; +import CollaborationView from '../../../../common/mobile/lib/view/collaboration/Collaboration.jsx' +import CellEditor from '../controller/CellEditor'; +import Statusbar from '../controller/StatusBar' +import AddOptions from "../view/add/Add"; +import EditOptions from "../view/edit/Edit"; +import { Search, SearchSettings } from '../controller/Search'; +import { f7 } from 'framework7-react'; + +import {FunctionGroups} from "../controller/add/AddFunction"; +import ContextMenu from '../controller/ContextMenu'; +import { Toolbar } from "../controller/Toolbar"; + +class MainPage extends Component { + constructor(props) { + super(props); + this.state = { + editOptionsVisible: false, + addOptionsVisible: false, + addShowOptions: null, + settingsVisible: false, + collaborationVisible: false, + }; + } + + handleClickToOpenOptions = (opts, showOpts) => { + f7.popover.close('.document-menu.modal-in', false); + + this.setState(state => { + if ( opts == 'edit' ) + return {editOptionsVisible: true}; + else if ( opts == 'add' ) + return { + addOptionsVisible: true, + addShowOptions: showOpts + }; + else if ( opts == 'settings' ) + return {settingsVisible: true}; + else if ( opts == 'coauth' ) + return {collaborationVisible: true}; + }); + }; + + handleOptionsViewClosed = opts => { + (async () => { + await 1 && this.setState(state => { + if ( opts == 'edit' ) + return {editOptionsVisible: false}; + else if ( opts == 'add' ) + return {addOptionsVisible: false}; + else if ( opts == 'settings' ) + return {settingsVisible: false}; + else if ( opts == 'coauth' ) + return {collaborationVisible: false}; + }) + })(); + }; + + render() { + const appOptions = this.props.storeAppOptions; + const config = appOptions.config; + const showLogo = !(appOptions.canBrandingExt && (config.customization && (config.customization.loaderName || config.customization.loaderLogo))); + return ( + + {/* Top Navbar */} + + {showLogo &&
                    } + + + + +
                    + this.handleClickToOpenOptions('add', {panels: panels, button: button})}/> + {/* Page content */} + + + { + !this.state.editOptionsVisible ? null : + + } + { + !this.state.addOptionsVisible ? null : + + } + { + !this.state.settingsVisible ? null : + + } + { + !this.state.collaborationVisible ? null : + + } + + + {/* hidden component*/} + +
                    + ) + } +} + +export default inject("storeAppOptions")(observer(MainPage)); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/router/routes.js b/apps/spreadsheeteditor/mobile/src/router/routes.js new file mode 100644 index 000000000..d5dc65d43 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/router/routes.js @@ -0,0 +1,11 @@ + +import MainPage from '../page/main'; + +var routes = [ + { + path: '/', + component: MainPage, + } +]; + +export default routes; diff --git a/apps/spreadsheeteditor/mobile/src/store/appOptions.js b/apps/spreadsheeteditor/mobile/src/store/appOptions.js new file mode 100644 index 000000000..f33a3736f --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/appOptions.js @@ -0,0 +1,80 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storeAppOptions { + constructor() { + makeObservable(this, { + isEdit: observable, + canViewComments: observable, + setConfigOptions: action, + setPermissionOptions: action + }); + } + + isEdit = false; + config = {}; + canViewComments = false; + + setConfigOptions (config, _t) { + this.config = config; + this.customization = config.customization; + this.canRenameAnonymous = !((typeof (this.customization) == 'object') && (typeof (this.customization.anonymous) == 'object') && (this.customization.anonymous.request===false)); + this.guestName = (typeof (this.customization) == 'object') && (typeof (this.customization.anonymous) == 'object') && + (typeof (this.customization.anonymous.label) == 'string') && this.customization.anonymous.label.trim()!=='' ? + Common.Utils.String.htmlEncode(this.customization.anonymous.label) : _t.textGuest; + + const value = this.canRenameAnonymous ? Common.localStorage.getItem("guest-username") : null; + this.user = Common.Utils.fillUserInfo(config.user, config.lang, value ? (value + ' (' + this.guestName + ')' ) : _t.textAnonymous); + + config.user = this.user; + this.isDesktopApp = config.targetApp == 'desktop'; + this.canCreateNew = !!config.createUrl && !this.isDesktopApp; + this.canOpenRecent = config.recent !== undefined && !this.isDesktopApp; + this.templates = config.templates; + this.recent = config.recent; + this.createUrl = config.createUrl; + this.lang = config.lang; + this.location = (typeof (config.location) == 'string') ? config.location.toLowerCase() : ''; + this.region = (typeof (config.region) == 'string') ? config.region.toLowerCase() : config.region; + this.sharingSettingsUrl = config.sharingSettingsUrl; + this.fileChoiceUrl = config.fileChoiceUrl; + this.isEditDiagram = config.mode == 'editdiagram'; + this.isEditMailMerge = config.mode == 'editmerge'; + this.mergeFolderUrl = config.mergeFolderUrl; + this.canAnalytics = false; + this.canRequestClose = config.canRequestClose; + this.customization = config.customization; + this.canBackToFolder = (config.canBackToFolder!==false) && (typeof (config.customization) == 'object') && (typeof (config.customization.goback) == 'object') + && (!!(config.customization.goback.url) || config.customization.goback.requestClose && this.canRequestClose); + this.canBack = this.canBackToFolder === true; + this.canPlugins = false; + } + + setPermissionOptions (document, licType, params, permissions) { + permissions.edit = params.asc_getRights() !== Asc.c_oRights.Edit ? false : true; + this.canAutosave = true; + this.canAnalytics = params.asc_getIsAnalyticsEnable(); + this.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); + this.isLightVersion = params.asc_getIsLight(); + this.canCoAuthoring = !this.isLightVersion; + this.isOffline = Common.EditorApi.get().asc_isOffline(); + this.canRequestEditRights = this.config.canRequestEditRights; + this.canEdit = permissions.edit !== false && // can edit or review + (this.config.canRequestEditRights || this.config.mode !== 'view') && true; // if mode=="view" -> canRequestEditRights must be defined + // (!this.isReviewOnly || this.canLicense) && // if isReviewOnly==true -> canLicense must be true + // true /*isSupportEditFeature*/; + this.isEdit = (this.canLicense || this.isEditDiagram || this.isEditMailMerge) && permissions.edit !== false && this.config.mode !== 'view' && true; + this.canComments = this.canLicense && (permissions.comment === undefined ? this.isEdit : permissions.comment) && (this.config.mode !== 'view'); + this.canComments = this.canComments && !((typeof (this.customization) == 'object') && this.customization.comments===false); + this.canViewComments = this.canComments || !((typeof (this.customization) == 'object') && this.customization.comments===false); + this.canEditComments = this.isOffline || !(typeof (this.customization) == 'object' && this.customization.commentAuthorOnly); + this.canChat = this.canLicense && !this.isOffline && !((typeof (this.customization) == 'object') && this.customization.chat === false); + this.canPrint = (permissions.print !== false); + this.isRestrictedEdit = !this.isEdit && this.canComments; + this.trialMode = params.asc_getLicenseMode(); + this.canDownloadOrigin = permissions.download !== false; + this.canDownload = permissions.download !== false; + this.canBranding = params.asc_getCustomization(); + this.canBrandingExt = params.asc_getCanBranding() && (typeof this.customization == 'object'); + this.canUseReviewPermissions = this.canLicense && this.customization && this.customization.reviewPermissions && (typeof (this.customization.reviewPermissions) == 'object'); + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/applicationSettings.js b/apps/spreadsheeteditor/mobile/src/store/applicationSettings.js new file mode 100644 index 000000000..faea20f77 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/applicationSettings.js @@ -0,0 +1,118 @@ +import {makeObservable, action, observable} from 'mobx'; + +export class storeApplicationSettings { + constructor() { + makeObservable(this, { + unitMeasurement: observable, + macrosMode: observable, + formulaLang: observable, + regCode: observable, + regExample: observable, + regData: observable, + isRefStyle: observable, + isComments: observable, + isResolvedComments: observable, + initRegData: action, + getRegCode: action, + changeRegCode: action, + setRegExample: action, + changeUnitMeasurement: action, + changeMacrosSettings: action, + changeDisplayComments: action, + changeDisplayResolved: action, + changeRefStyle: action, + changeFormulaLang: action + }); + } + + unitMeasurement = Common.Utils.Metric.getCurrentMetric(); + macrosMode = 0; + formulaLang = Common.Locale.currentLang || dataLang[0].value; + regCode = undefined; + regExample = ''; + regData = []; + isRefStyle = false; + isComments = true; + isResolvedComments = true; + + getFormulaLanguages() { + const dataLang = [ + { value: 'en', displayValue: 'English', exampleValue: ' SUM; MIN; MAX; COUNT' }, + { value: 'de', displayValue: 'Deutsch', exampleValue: ' SUMME; MIN; MAX; ANZAHL' }, + { value: 'es', displayValue: 'Spanish', exampleValue: ' SUMA; MIN; MAX; CALCULAR' }, + { value: 'fr', displayValue: 'French', exampleValue: ' SOMME; MIN; MAX; NB' }, + { value: 'it', displayValue: 'Italian', exampleValue: ' SOMMA; MIN; MAX; CONTA.NUMERI' }, + { value: 'ru', displayValue: 'Russian', exampleValue: ' СУММ; МИН; МАКС; СЧЁТ' }, + { value: 'pl', displayValue: 'Polish', exampleValue: ' SUMA; MIN; MAX; ILE.LICZB' } + ] + + return dataLang; + } + + getRegDataCodes() { + const regDataCode = [ + { value: 0x042C }, { value: 0x0402 }, { value: 0x0405 }, { value: 0x0407 }, {value: 0x0807}, { value: 0x0408 }, { value: 0x0C09 }, { value: 0x0809 }, { value: 0x0409 }, { value: 0x0C0A }, { value: 0x080A }, + { value: 0x040B }, { value: 0x040C }, { value: 0x0410 }, { value: 0x0411 }, { value: 0x0412 }, { value: 0x0426 }, { value: 0x0413 }, { value: 0x0415 }, { value: 0x0416 }, + { value: 0x0816 }, { value: 0x0419 }, { value: 0x041B }, { value: 0x0424 }, { value: 0x081D }, { value: 0x041D }, { value: 0x041F }, { value: 0x0422 }, { value: 0x042A }, { value: 0x0804 } + ]; + + return regDataCode; + } + + initRegData() { + const regDataCodes = this.getRegDataCodes(); + + regDataCodes.forEach(item => { + let langInfo = Common.util.LanguageInfo.getLocalLanguageName(item.value); + this.regData.push({code: item.value, displayName: langInfo[1], langName: langInfo[0]}); + }) + } + + getRegCode() { + const regData = this.regData; + let value = Number(Common.localStorage.getItem('sse-settings-regional')); + + regData.forEach(obj => { + if(obj.code === value) { + this.regCode = obj.code; + } + }); + + if(!this.regCode) { + this.regCode = 0x0409; + } + } + + changeRegCode(value) { + this.regCode = value; + } + + setRegExample(value) { + this.regExample = value; + } + + changeUnitMeasurement(value) { + this.unitMeasurement = +value; + } + + changeMacrosSettings(value) { + this.macrosMode = +value; + } + + changeDisplayComments(value) { + this.isComments = value; + if (!value) this.changeDisplayResolved(value); + } + + changeDisplayResolved(value) { + this.isResolvedComments = value; + } + + changeRefStyle(value) { + this.isRefStyle = value; + } + + changeFormulaLang(value) { + this.formulaLang = value; + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/cellSettings.js b/apps/spreadsheeteditor/mobile/src/store/cellSettings.js new file mode 100644 index 000000000..f4b7e4e81 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/cellSettings.js @@ -0,0 +1,196 @@ +import {makeObservable, action, observable, computed} from 'mobx'; + +export class storeCellSettings { + constructor() { + makeObservable(this, { + styleSize: observable, + borderInfo: observable, + borderStyle: observable, + cellStyles: observable, + fontsArray: observable, + fontInfo: observable, + fillColor: observable, + fontColor: observable, + styleName: observable, + isBold: observable, + isItalic: observable, + isUnderline: observable, + hAlignStr: observable, + vAlignStr: observable, + isWrapText: observable, + orientationStr: observable, + initCellSettings: action, + initTextFormat: action, + initTextOrientation: action, + initFontSettings: action, + initEditorFonts: action, + initCellStyles: action, + initFontInfo: action, + changeFontColor: action, + changeFillColor: action, + changeBorderColor: action, + changeBorderSize: action, + changeBorderStyle: action + }); + } + + styleSize = { + width: 100, + height: 50 + }; + + borderInfo = { + color: '000000', + width: 12 // Asc.c_oAscBorderStyles.Medium + }; + + borderStyle = 'none'; + + cellStyles = []; + fontsArray = []; + fontInfo = {}; + + fillColor = undefined; + fontColor = undefined; + styleName = undefined; + + isBold = false; + isItalic = false; + isUnderline = false; + + hAlignStr = 'left'; + vAlignStr = 'bottom'; + isWrapText; + + orientationStr = 'horizontal'; + + initCellSettings(cellInfo) { + + let xfs = cellInfo.asc_getXfs(); + this.initFontSettings(xfs); + + let color = xfs.asc_getFillColor(); + // console.log(color); + + const clr = color.get_auto() ? 'transparent' : this.resetColor(color); + + this.fillColor = clr; + this.styleName = cellInfo.asc_getStyleName(); + + this.initTextOrientation(xfs); + this.initTextFormat(xfs); + + } + + initTextFormat(xfs) { + let hAlign = xfs.asc_getHorAlign(); + let vAlign = xfs.asc_getVertAlign(); + let isWrapText = xfs.asc_getWrapText(); + + if (vAlign == Asc.c_oAscVAlign.Top) + this.vAlignStr = 'top'; + else if (vAlign == Asc.c_oAscVAlign.Center) + this.vAlignStr = 'center'; + else if (vAlign == Asc.c_oAscVAlign.Bottom) + this.vAlignStr = 'bottom'; + + switch (hAlign) { + case AscCommon.align_Left: this.hAlignStr = 'left'; break; + case AscCommon.align_Center: this.hAlignStr = 'center'; break; + case AscCommon.align_Right: this.hAlignStr = 'right'; break; + case AscCommon.align_Justify: this.hAlignStr = 'justify'; break; + } + + this.isWrapText = isWrapText; + } + + initTextOrientation(xfs) { + switch( xfs.asc_getAngle() ) { + case 45: this.orientationStr = 'anglecount'; break; + case -45: this.orientationStr = 'angleclock'; break; + case 255: this.orientationStr = 'vertical'; break; + case 90: this.orientationStr = 'rotateup'; break; + case -90: this.orientationStr = 'rotatedown'; break; + case 0: this.orientationStr = 'horizontal'; break; + } + } + + initFontSettings(xfs) { + this.fontInfo.name = xfs.asc_getFontName(); + this.fontInfo.size = xfs.asc_getFontSize(); + + this.fontInfo.color = xfs.asc_getFontColor(); + this.fontColor = this.resetColor(this.fontInfo.color); + + this.isBold = xfs.asc_getFontBold(); + this.isItalic = xfs.asc_getFontItalic(); + this.isUnderline = xfs.asc_getFontUnderline(); + } + + initEditorFonts(fonts, select) { + let array = []; + + for (let font of fonts) { + array.push({ + id : font.asc_getFontId(), + name : font.asc_getFontName(), + //displayValue: font.asc_getFontName(), + imgidx : font.asc_getFontThumbnail(), + type : font.asc_getFontType() + }); + } + + this.fontsArray = array; + } + + initCellStyles(styles) { + this.cellStyles = styles; + } + + initFontInfo(fontObj) { + this.fontInfo = fontObj; + } + + changeFontColor(color) { + this.fontColor = color; + } + + changeFillColor(color) { + this.fillColor = color; + } + + changeBorderColor(color) { + this.borderInfo.color = color; + } + + changeBorderSize(size) { + this.borderInfo.width = size; + console.log('change border width ' + size); + } + + changeBorderStyle(type) { + this.borderStyle = type; + } + + resetColor(color) { + let clr = 'transparent'; + + if(color) { + if (color.get_auto()) { + clr = 'auto' + } else { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + clr = { + color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), + effectValue: color.get_value() + } + } else { + clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + + return clr; + } + +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/chartSettings.js b/apps/spreadsheeteditor/mobile/src/store/chartSettings.js new file mode 100644 index 000000000..3d1ea1dbb --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/chartSettings.js @@ -0,0 +1,164 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeChartSettings { + constructor() { + makeObservable(this, { + borderColor: observable, + fillColor: observable, + chartStyles: observable, + setBorderColor: action, + initBorderColor: action, + setFillColor: action, + getFillColor: action, + clearChartStyles: action, + updateChartStyles: action, + styles: computed, + types: computed, + }); + } + + borderColor = undefined; + + setBorderColor (color) { + this.borderColor = color; + } + + initBorderColor(shapeProperties) { + let stroke = shapeProperties.get_stroke(); + this.borderColor = (stroke && stroke.get_type() == Asc.c_oAscStrokeType.STROKE_COLOR) ? this.resetColor(stroke.get_color()) : 'transparent'; + } + + fillColor = undefined; + + setFillColor (color) { + this.fillColor = color; + } + + getFillColor (shapeProperties) { + const fill = shapeProperties.asc_getFill(); + const fillType = fill.asc_getType(); + + if (fillType == Asc.c_oAscFill.FILL_TYPE_SOLID) { + this.fillColor = this.resetColor(fill.asc_getFill().asc_getColor()); + } + + return this.fillColor; + } + + chartStyles = null; + + clearChartStyles () { + this.chartStyles = null; + } + + updateChartStyles (styles) { + this.chartStyles = styles; + } + + get styles () { + if (!this.chartStyles) return null; + const widthContainer = document.querySelector(".page-content").clientWidth; + const columns = parseInt(widthContainer / 70); // magic + let row = -1; + const styles = []; + + this.chartStyles.forEach((style, index) => { + if (0 == index % columns) { + styles.push([]); + row++ + } + styles[row].push(style); + }); + + return styles; + } + + get types () { + const _types = [ + { type: Asc.c_oAscChartTypeSettings.barNormal, thumb: 'bar-normal'}, + { type: Asc.c_oAscChartTypeSettings.barStacked, thumb: 'bar-stacked'}, + { type: Asc.c_oAscChartTypeSettings.barStackedPer, thumb: 'bar-pstacked'}, + { type: Asc.c_oAscChartTypeSettings.lineNormal, thumb: 'line-normal'}, + { type: Asc.c_oAscChartTypeSettings.lineStacked, thumb: 'line-stacked'}, + { type: Asc.c_oAscChartTypeSettings.lineStackedPer, thumb: 'line-pstacked'}, + { type: Asc.c_oAscChartTypeSettings.hBarNormal, thumb: 'hbar-normal'}, + { type: Asc.c_oAscChartTypeSettings.hBarStacked, thumb: 'hbar-stacked'}, + { type: Asc.c_oAscChartTypeSettings.hBarStackedPer, thumb: 'hbar-pstacked'}, + { type: Asc.c_oAscChartTypeSettings.areaNormal, thumb: 'area-normal'}, + { type: Asc.c_oAscChartTypeSettings.areaStacked, thumb: 'area-stacked'}, + { type: Asc.c_oAscChartTypeSettings.areaStackedPer, thumb: 'area-pstacked'}, + { type: Asc.c_oAscChartTypeSettings.pie, thumb: 'pie'}, + { type: Asc.c_oAscChartTypeSettings.doughnut, thumb: 'doughnut'}, + { type: Asc.c_oAscChartTypeSettings.pie3d, thumb: 'pie3d'}, + { type: Asc.c_oAscChartTypeSettings.scatter, thumb: 'scatter'}, + { type: Asc.c_oAscChartTypeSettings.stock, thumb: 'stock'}, + { type: Asc.c_oAscChartTypeSettings.line3d, thumb: 'line3d'}, + { type: Asc.c_oAscChartTypeSettings.barNormal3d, thumb: 'bar3dnormal'}, + { type: Asc.c_oAscChartTypeSettings.barStacked3d, thumb: 'bar3dstack'}, + { type: Asc.c_oAscChartTypeSettings.barStackedPer3d, thumb: 'bar3dpstack'}, + { type: Asc.c_oAscChartTypeSettings.hBarNormal3d, thumb: 'hbar3dnormal'}, + { type: Asc.c_oAscChartTypeSettings.hBarStacked3d, thumb: 'hbar3dstack'}, + { type: Asc.c_oAscChartTypeSettings.hBarStackedPer3d, thumb: 'hbar3dpstack'}, + { type: Asc.c_oAscChartTypeSettings.barNormal3dPerspective, thumb: 'bar3dpsnormal'} + ]; + const columns = 3; + let row = -1; + const groups = []; + _types.forEach((type, index) => { + if (0 == index % columns) { + groups.push([]); + row++ + } + groups[row].push(type); + }); + return groups; + } + + borderSizeTransform () { + const _sizes = [0, 0.5, 1, 1.5, 2.25, 3, 4.5, 6]; + + return { + sizeByIndex: function (index) { + if (index < 1) return _sizes[0]; + if (index > _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } + + resetColor(color) { + let clr = 'transparent'; + + if(color) { + if (color.get_auto()) { + clr = 'auto' + } else { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + clr = { + color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), + effectValue: color.get_value() + } + } else { + clr = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + + return clr; + } + +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/focusObjects.js b/apps/spreadsheeteditor/mobile/src/store/focusObjects.js new file mode 100644 index 000000000..936293cb0 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/focusObjects.js @@ -0,0 +1,79 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeFocusObjects { + constructor() { + makeObservable(this, { + focusOn: observable, + _focusObjects: observable, + _cellInfo: observable, + resetFocusObjects: action, + objects: computed, + resetCellInfo: action, + selections: computed, + shapeObject: computed, + imageObject: computed, + chartObject: computed + }); + } + + focusOn = undefined; + _focusObjects = []; + + resetFocusObjects(objects) { + this.focusOn = 'obj'; + this._focusObjects = objects; + } + + get objects() { + const _objects = []; + for (let object of this._focusObjects) { + const type = object.get_ObjectType(); + + if (Asc.c_oAscTypeSelectElement.Paragraph == type) { + _objects.push('text', 'paragraph'); + } else if (Asc.c_oAscTypeSelectElement.Table == type) { + _objects.push('table'); + } else if (Asc.c_oAscTypeSelectElement.Image == type) { + if (object.get_ObjectValue().get_ChartProperties()) { + _objects.push('chart'); + } else if (object.get_ObjectValue().get_ShapeProperties()) { + _objects.push('shape'); + } else { + _objects.push('image'); + } + } else if (Asc.c_oAscTypeSelectElement.Hyperlink == type) { + _objects.push('hyperlink'); + } + } + const resultArr = _objects.filter((value, index, self) => self.indexOf(value) === index); //get uniq array + // Exclude shapes if chart exist + if (resultArr.indexOf('chart') > -1) { + resultArr.splice(resultArr.indexOf('shape'), 1); + } + return resultArr; + } + + _cellInfo; + + resetCellInfo (cellInfo) { + this.focusOn = 'cell'; + this._cellInfo = cellInfo; + } + + get selections () { + return !!this.intf ? this.intf.getSelections() : null; + } + + get shapeObject() { + return !!this.intf ? this.intf.getShapeObject() : null; + } + + get imageObject() { + return !!this.intf ? this.intf.getImageObject() : null; + } + + get chartObject() { + return !!this.intf ? this.intf.getChartObject() : null; + } + +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/functions.js b/apps/spreadsheeteditor/mobile/src/store/functions.js new file mode 100644 index 000000000..7c5b90a6d --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/functions.js @@ -0,0 +1,39 @@ +import {action, computed, makeObservable} from 'mobx'; + +export class storeFunctions { + constructor() { + makeObservable(this, { + initFunctions: action, + functions: computed + }); + } + + initFunctions (groups, data) { + this.groups = groups; + this.data = data; + } + + get functions () { + const groups = this.groups; + const data = this.data; + const functions = {}; + for (let g in groups) { + const group = groups[g]; + const groupname = group.asc_getGroupName(); + const funcarr = group.asc_getFormulasArray(); + + for (let f in funcarr) { + const func = funcarr[f]; + const _name = func.asc_getName(); + functions[_name] = { + type: _name, + group: groupname, + caption: func.asc_getLocaleName(), + args: (data && data[_name]) ? data[_name].a : '', + descr: (data && data[_name]) ? data[_name].d : '' + }; + } + } + return functions; + } +} diff --git a/apps/spreadsheeteditor/mobile/src/store/mainStore.js b/apps/spreadsheeteditor/mobile/src/store/mainStore.js new file mode 100644 index 000000000..0190760f3 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/mainStore.js @@ -0,0 +1,39 @@ + +// import {storeDocumentSettings} from './documentSettings'; +import {storeFocusObjects} from "./focusObjects"; +import {storeUsers} from '../../../../common/mobile/lib/store/users'; +import {storeWorksheets} from './sheets'; +import {storeFunctions} from './functions'; +import {storePalette} from "./palette"; +import {storeTextSettings} from "./textSettings"; +import {storeApplicationSettings} from "./applicationSettings"; +import {storeShapeSettings} from "./shapeSettings"; +import {storeCellSettings} from "./cellSettings"; +import {storeSpreadsheetInfo} from "./spreadsheetInfo"; +import {storeAppOptions} from "./appOptions"; +// import {storeImageSettings} from "./imageSettings"; +// import {storeTableSettings} from "./tableSettings"; +import {storeChartSettings} from "./chartSettings"; +import {storeSpreadsheetSettings} from "./spreadsheetSettings"; +import {storeComments} from "../../../../common/mobile/lib/store/comments"; + +export const stores = { + storeFocusObjects: new storeFocusObjects(), + storeSpreadsheetSettings: new storeSpreadsheetSettings(), + storeApplicationSettings: new storeApplicationSettings(), + users: new storeUsers(), + sheets: new storeWorksheets(), + storeFunctions: new storeFunctions(), + storeTextSettings: new storeTextSettings(), + storeSpreadsheetInfo: new storeSpreadsheetInfo(), + storeAppOptions: new storeAppOptions(), + // storeParagraphSettings: new storeParagraphSettings(), + storeShapeSettings: new storeShapeSettings(), + storeChartSettings: new storeChartSettings(), + storePalette: new storePalette(), + storeCellSettings: new storeCellSettings(), + // storeImageSettings: new storeImageSettings(), + // storeTableSettings: new storeTableSettings() + storeComments: new storeComments() +}; + diff --git a/apps/spreadsheeteditor/mobile/src/store/palette.js b/apps/spreadsheeteditor/mobile/src/store/palette.js new file mode 100644 index 000000000..0633a3140 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/palette.js @@ -0,0 +1,16 @@ +import {action, makeObservable, observable} from 'mobx'; + +export class storePalette { + constructor() { + makeObservable(this, { + customColors: observable, + changeCustomColors: action + }); + } + + customColors = []; + + changeCustomColors (colors) { + this.customColors = colors; + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/shapeSettings.js b/apps/spreadsheeteditor/mobile/src/store/shapeSettings.js new file mode 100644 index 000000000..f9cdad438 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/shapeSettings.js @@ -0,0 +1,236 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeShapeSettings { + constructor() { + makeObservable(this, { + fillColor: observable, + borderColorView: observable, + setFillColor: action, + getFillColor: action, + setBorderColor: action, + initBorderColorView: action + }); + } + + getStyleGroups () { + const styles = [ + { + title: 'Text', + thumb: 'shape-01.svg', + type: 'textRect' + }, + { + title: 'Line', + thumb: 'shape-02.svg', + type: 'line' + }, + { + title: 'Line with arrow', + thumb: 'shape-03.svg', + type: 'lineWithArrow' + }, + { + title: 'Line with two arrows', + thumb: 'shape-04.svg', + type: 'lineWithTwoArrows' + }, + { + title: 'Rect', + thumb: 'shape-05.svg', + type: 'rect' + }, + { + title: 'Hexagon', + thumb: 'shape-06.svg', + type: 'hexagon' + }, + { + title: 'Round rect', + thumb: 'shape-07.svg', + type: 'roundRect' + }, + { + title: 'Ellipse', + thumb: 'shape-08.svg', + type: 'ellipse' + }, + { + title: 'Triangle', + thumb: 'shape-09.svg', + type: 'triangle' + }, + { + title: 'Triangle', + thumb: 'shape-10.svg', + type: 'rtTriangle' + }, + { + title: 'Trapezoid', + thumb: 'shape-11.svg', + type: 'trapezoid' + }, + { + title: 'Diamond', + thumb: 'shape-12.svg', + type: 'diamond' + }, + { + title: 'Right arrow', + thumb: 'shape-13.svg', + type: 'rightArrow' + }, + { + title: 'Left-right arrow', + thumb: 'shape-14.svg', + type: 'leftRightArrow' + }, + { + title: 'Left arrow callout', + thumb: 'shape-15.svg', + type: 'leftArrow' + }, + { + title: 'Right arrow callout', + thumb: 'shape-16.svg', + type: 'bentUpArrow' + }, + { + title: 'Flow chart off page connector', + thumb: 'shape-17.svg', + type: 'flowChartOffpageConnector' + }, + { + title: 'Heart', + thumb: 'shape-18.svg', + type: 'heart' + }, + { + title: 'Math minus', + thumb: 'shape-19.svg', + type: 'mathMinus' + }, + { + title: 'Math plus', + thumb: 'shape-20.svg', + type: 'mathPlus' + }, + { + title: 'Parallelogram', + thumb: 'shape-21.svg', + type: 'parallelogram' + }, + { + title: 'Wedge rect callout', + thumb: 'shape-22.svg', + type: 'wedgeRectCallout' + }, + { + title: 'Wedge ellipse callout', + thumb: 'shape-23.svg', + type: 'wedgeEllipseCallout' + }, + { + title: 'Cloud callout', + thumb: 'shape-24.svg', + type: 'cloudCallout' + } + ]; + + const groups = []; + let i = 0; + + for (let row=0; row _sizes.length - 1) return _sizes[_sizes.length - 1]; + return _sizes[index]; + }, + + indexSizeByValue: function (value) { + let index = 0; + _sizes.forEach((size, idx) => { + if (Math.abs(size - value) < 0.25) { + index = idx; + } + }); + return index; + }, + + sizeByValue: function (value) { + return _sizes[this.indexSizeByValue(value)]; + } + } + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/sheets.js b/apps/spreadsheeteditor/mobile/src/store/sheets.js new file mode 100644 index 000000000..bb79938d3 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/sheets.js @@ -0,0 +1,64 @@ + +import {observable, action, makeObservable} from 'mobx'; + +class Worksheet { + sheet = { + index : -1, + active : false, + name : '', + locked : false, + hidden : false, + color : '' + }; + + constructor(data = {}) { + makeObservable(this, { + sheet: observable + }); + this.sheet.merge(data); + } +} + +export class storeWorksheets { + sheets; + + constructor() { + makeObservable(this, { + sheets: observable, + resetSheets: action, + setActiveWorksheet: action + }); + this.sheets = []; + } + + resetSheets(sheets) { + this.sheets = Object.values(sheets) + } + + setActiveWorksheet(i) { + if ( !this.sheets[i].active ) { + this.sheets.forEach(model => { + if ( model.active ) + model.active = false; + }); + + this.sheets[i].active = true; + } + } + + at(i) { + return this.sheets[i] + } + + hasHiddenWorksheet() { + return this.sheets.some(model => model.hidden); + } + + hiddenWorksheets() { + return this.sheets.filter(model => model.hidden); + } + + visibleWorksheets() { + return this.sheets.filter(model => !model.hidden); + } +} diff --git a/apps/spreadsheeteditor/mobile/src/store/spreadsheetInfo.js b/apps/spreadsheeteditor/mobile/src/store/spreadsheetInfo.js new file mode 100644 index 000000000..406bda2ec --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/spreadsheetInfo.js @@ -0,0 +1,16 @@ +import {action, observable, makeObservable} from 'mobx'; + +export class storeSpreadsheetInfo { + constructor() { + makeObservable(this, { + dataDoc: observable, + setDataDoc: action + }) + } + + dataDoc; + + setDataDoc(obj) { + this.dataDoc = obj; + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/store/spreadsheetSettings.js b/apps/spreadsheeteditor/mobile/src/store/spreadsheetSettings.js new file mode 100644 index 000000000..9d2757b44 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/spreadsheetSettings.js @@ -0,0 +1,96 @@ +import {action, observable, computed, makeObservable} from 'mobx'; + +export class storeSpreadsheetSettings { + constructor() { + makeObservable(this, { + isPortrait: observable, + widthDocument: observable, + heightDocument: observable, + allSchemes: observable, + isHideHeadings: observable, + isHideGridlines: observable, + resetPortrait: action, + changeDocSize: action, + pageSizesIndex: computed, + addSchemes: action, + changeHideHeadings: action, + changeHideGridlines: action + }) + } + + isPortrait = true; + + resetPortrait (isPortrait) { + this.isPortrait = isPortrait === true; + } + + // Spreadsheet Formats + + widthDocument; + heightDocument; + + changeDocSize (width, height) { + this.widthDocument = width; + this.heightDocument = height; + } + + getPageSizesList () { + const txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm); + const pageSizes = [ + { caption: 'US Letter', subtitle: '21,59 ' + txtCm + ' x 27,94 ' + txtCm, value: [215.9, 279.4] }, + { caption: 'US Legal', subtitle: '21,59 ' + txtCm + ' x 35,56 ' + txtCm, value: [215.9, 355.6] }, + { caption: 'A4', subtitle: '21 ' + txtCm + ' x 29,7 ' + txtCm, value: [210, 297] }, + { caption: 'A5', subtitle: '14,8 ' + txtCm + ' x 21 ' + txtCm, value: [148, 210] }, + { caption: 'B5', subtitle: '17,6 ' + txtCm + ' x 25 ' + txtCm, value: [176, 250] }, + { caption: 'Envelope #10', subtitle: '10,48 ' + txtCm + ' x 24,13 ' + txtCm, value: [104.8, 241.3] }, + { caption: 'Envelope DL', subtitle: '11 ' + txtCm + ' x 22 ' + txtCm, value: [110, 220] }, + { caption: 'Tabloid', subtitle: '27,94 ' + txtCm + ' x 43,18 ' + txtCm, value: [279.4, 431.8] }, + { caption: 'A3', subtitle: '29,7 ' + txtCm + ' x 42 ' + txtCm, value: [297, 420] }, + { caption: 'Tabloid Oversize', subtitle: '30,48 ' + txtCm + ' x 45,71 ' + txtCm, value: [304.8, 457.1] }, + { caption: 'ROC 16K', subtitle: '19,68 ' + txtCm + ' x 27,3 ' + txtCm, value: [196.8, 273] }, + { caption: 'Envelope Choukei 3', subtitle: '11,99 ' + txtCm + ' x 23,49 ' + txtCm, value: [119.9, 234.9] }, + { caption: 'Super B/A3', subtitle: '33,02 ' + txtCm + ' x 48,25 ' + txtCm, value: [330.2, 482.5] }, + { caption: 'A0', subtitle: '84,1 ' + txtCm + ' x 118,9 ' + txtCm, value: [841, 1189] }, + { caption: 'A1', subtitle: '59,4 ' + txtCm + ' x 84,1 ' + txtCm, value: [594, 841] }, + { caption: 'A2', subtitle: '42 ' + txtCm + ' x 59,4 ' + txtCm, value: [420, 594] }, + { caption: 'A6', subtitle: '10,5 ' + txtCm + ' x 14,8 ' + txtCm, value: [105, 148] } + ]; + + return pageSizes; + } + + get pageSizesIndex () { + let w = this.widthDocument; + let h = this.heightDocument; + let ind; + const pageSizes = this.getPageSizesList(); + + pageSizes.forEach(function callback(size, index) { + if (Math.abs(size.value[0] - w) < 0.1 && Math.abs(size.value[1] - h) < 0.1) { + ind = index; + } + }, this); + + return ind; + } + + // Color Schemes + + allSchemes; + + addSchemes(arr) { + this.allSchemes = arr; + } + + isHideHeadings; + isHideGridlines; + + changeHideHeadings(value) { + this.isHideHeadings = value; + } + + changeHideGridlines(value) { + this.isHideGridlines = value; + } + +} diff --git a/apps/spreadsheeteditor/mobile/src/store/textSettings.js b/apps/spreadsheeteditor/mobile/src/store/textSettings.js new file mode 100644 index 000000000..38dc619da --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/store/textSettings.js @@ -0,0 +1,112 @@ +import {action, observable, makeObservable, computed} from 'mobx'; + +export class storeTextSettings { + constructor() { + makeObservable(this, { + fontsArray: observable, + fontInfo: observable, + fontName: observable, + fontSize: observable, + isBold: observable, + isItalic: observable, + isUnderline: observable, + textColor: observable, + customTextColors: observable, + paragraphAlign: observable, + paragraphValign: observable, + textIn: observable, + initTextSettings: action, + initEditorFonts: action, + initFontInfo: action, + changeTextColor: action, + changeCustomTextColors: action + }); + } + + fontsArray = []; + fontInfo = {}; + fontName = ''; + fontSize = undefined; + isBold = false; + isItalic = false; + isUnderline = false; + textColor = undefined; + customTextColors = []; + paragraphAlign = undefined; + paragraphValign = undefined; + textIn = undefined; + + initTextSettings(cellInfo) { + let xfs = cellInfo.asc_getXfs(); + let selectType = cellInfo.asc_getSelectionType(); + + switch (selectType) { + case Asc.c_oAscSelectionType.RangeChartText: this.textIn = 1; break; + case Asc.c_oAscSelectionType.RangeShapeText: this.textIn = 2; break; + default: this.textIn = 0; + } + + this.fontName = xfs.asc_getFontName(); + this.fontSize = xfs.asc_getFontSize(); + + this.isBold = xfs.asc_getFontBold(); + this.isItalic = xfs.asc_getFontItalic(); + this.isUnderline = xfs.asc_getFontUnderline(); + + let color = xfs.asc_getFontColor(); + // console.log(color); + this.textColor = this.resetTextColor(color); + + this.paragraphAlign = xfs.asc_getHorAlign(); + this.paragraphValign = xfs.asc_getVertAlign(); + } + + initEditorFonts (fonts, select) { + let array = []; + for (let font of fonts) { + let fontId = font.asc_getFontId(); + array.push({ + id : fontId, + name : font.asc_getFontName(), + //displayValue: font.asc_getFontName(), + imgidx : font.asc_getFontThumbnail(), + type : font.asc_getFontType() + }); + } + + this.fontsArray = array; + } + + initFontInfo(fontObj) { + this.fontInfo = fontObj; + } + + changeTextColor(value) { + this.textColor = value; + } + + resetTextColor (color) { + let value; + + if (color) { + if (color.get_auto()) { + value = 'auto'; + } else { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + value = { + color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), + effectValue: color.get_value() + } + } else { + value = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } + } + + return value; + } + + changeCustomTextColors (colors) { + this.customTextColors = colors; + } +} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx b/apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx new file mode 100644 index 000000000..c1439de24 --- /dev/null +++ b/apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx @@ -0,0 +1,36 @@ + +import React, { useState } from 'react'; +import { Input, View, Button, Link } from 'framework7-react'; + +const viewStyle = { + height: 30 +}; + +const contentStyle = { + flexGrow: 1 +}; + +const CellEditorView = props => { + const [expanded, setExpanded] = useState(false); + + const expandClick = e => { + setExpanded(!expanded); + }; + + return + +
                    +