Merge branch 'hotfix/v8.3.2' into feature/modern-koch-design-tbar
@ -14,7 +14,7 @@
|
||||
type: 'desktop or mobile or embedded',
|
||||
width: '100% by default',
|
||||
height: '100% by default',
|
||||
documentType: 'word' | 'cell' | 'slide' | 'pdf' | 'visio' ,// deprecate 'text' | 'spreadsheet' | 'presentation',
|
||||
documentType: 'word' | 'cell' | 'slide' | 'pdf' ,// deprecate 'text' | 'spreadsheet' | 'presentation',
|
||||
token: <string> encrypted signature
|
||||
document: {
|
||||
title: 'document title',
|
||||
@ -88,7 +88,8 @@
|
||||
id: 'user id',
|
||||
name: 'user name',
|
||||
group: 'group name' // for customization.reviewPermissions or permissions.reviewGroups or permissions.commentGroups. Can be multiple groups separated by commas (,) : 'Group1' or 'Group1,Group2'
|
||||
image: 'image url'
|
||||
image: 'image url',
|
||||
roles: ['Role1'] // used for pdf-forms, fill form with Role1
|
||||
},
|
||||
recent: [
|
||||
{
|
||||
@ -212,7 +213,8 @@
|
||||
tabBackground: {
|
||||
mode: 'header'/'toolbar' // init value, 'header' by default
|
||||
change: true/false // show/hide feature
|
||||
} / 'header'/'toolbar' // if string - use as init value
|
||||
} / 'header'/'toolbar' // if string - use as init value,
|
||||
featuresTips: false/true // show tips about new feature
|
||||
},
|
||||
font: {
|
||||
name: "Arial",
|
||||
@ -252,11 +254,19 @@
|
||||
mobile: {
|
||||
forceView: true/false (default: true) // turn on/off the 'reader' mode on launch. for mobile document editor only
|
||||
standardView: true/false (default: false) // open editor in 'Standard view' instead of 'Mobile view'
|
||||
disableForceDesktop: false // hide or show UI option to switch editor in 'Desktop' type
|
||||
},
|
||||
submitForm: {
|
||||
visible: true/false (default: true)
|
||||
resultMessage: 'text'/''/null/undefined // if '' - don't show a message after submitting form, null/undefined - show the default message
|
||||
}
|
||||
},
|
||||
startFillingForm: {
|
||||
text: 'Share & collect' // caption of the start filling button, used for pdf-forms
|
||||
},
|
||||
slidePlayerBackground: '#000000', // background color for slide show in presentation editor
|
||||
wordHeadingsColor: '#00ff00' // set color for default heading styles in document editor
|
||||
showVerticalScroll: true/false, // show/hide scroll in the spreadsheet editor by default
|
||||
showHorizontalScroll: true/false // show/hide scroll in the spreadsheet editor by default
|
||||
},
|
||||
coEditing: {
|
||||
mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor
|
||||
@ -312,6 +322,7 @@
|
||||
'onSubmit': <filled form is submitted> // send when filled form is submitted successfully
|
||||
'onRequestRefreshFile': <request new file version> // send when file version is updated. use instead of onOutdatedVersion
|
||||
'onUserActionRequired': <user action callback> // send if the user needs to enter a password or select encoding/delimiters when opening a file
|
||||
'onRequestFillingStatus': <request filling status for current role> // used in pdf-form fill forms mode
|
||||
}
|
||||
}
|
||||
|
||||
@ -327,7 +338,8 @@
|
||||
url: 'document url',
|
||||
fileType: 'document file type',
|
||||
key: 'key',
|
||||
vkey: 'vkey'
|
||||
vkey: 'vkey',
|
||||
isForm: 'pdf form' / false/true
|
||||
},
|
||||
editorConfig: {
|
||||
licenseUrl: <url for license>,
|
||||
@ -383,6 +395,7 @@
|
||||
_config.editorConfig.canSaveDocumentToBinary = _config.events && !!_config.events.onSaveDocument;
|
||||
_config.editorConfig.canStartFilling = _config.events && !!_config.events.onRequestStartFilling;
|
||||
_config.editorConfig.canRequestRefreshFile = _config.events && !!_config.events.onRequestRefreshFile;
|
||||
_config.editorConfig.canRequestFillingStatus = _config.events && !!_config.events.onRequestFillingStatus;
|
||||
_config.editorConfig.canUpdateVersion = _config.events && !!_config.events.onOutdatedVersion;
|
||||
_config.frameEditorId = placeholderId;
|
||||
_config.parentOrigin = window.location.origin;
|
||||
@ -433,6 +446,15 @@
|
||||
|
||||
if (msg.event === 'onRequestEditRights' && !handler) {
|
||||
_applyEditRights(false, 'handler isn\'t defined');
|
||||
} else
|
||||
if (msg.event === 'onSwitchEditorType' && !handler) {
|
||||
if ( msg.data ) {
|
||||
if ( typeof msg.data.type == 'string' )
|
||||
localStorage.setItem('asc-force-editor-type', msg.data.type);
|
||||
|
||||
if ( msg.data.restart )
|
||||
window.location.reload();
|
||||
}
|
||||
} else {
|
||||
if (msg.event === 'onAppReady') {
|
||||
_onAppReady();
|
||||
@ -462,12 +484,11 @@
|
||||
'word': 'docx',
|
||||
'cell': 'xlsx',
|
||||
'slide': 'pptx',
|
||||
'pdf': 'pdf',
|
||||
'visio': 'vsdx'
|
||||
'pdf': 'pdf'
|
||||
}, app;
|
||||
|
||||
if (_config.documentType=='text' || _config.documentType=='spreadsheet' ||_config.documentType=='presentation')
|
||||
console.warn("The \"documentType\" parameter for the config object must take one of the values word/cell/slide/pdf/visio.");
|
||||
console.warn("The \"documentType\" parameter for the config object must take one of the values word/cell/slide/pdf.");
|
||||
|
||||
if (typeof _config.documentType === 'string' && _config.documentType != '') {
|
||||
app = appMap[_config.documentType.toLowerCase()];
|
||||
@ -481,7 +502,7 @@
|
||||
|
||||
if (typeof _config.document.fileType === 'string' && _config.document.fileType != '') {
|
||||
_config.document.fileType = _config.document.fileType.toLowerCase();
|
||||
var type = /^(?:(xls|xlsx|ods|csv|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb|sxc|et|ett|numbers)|(pps|ppsx|ppt|pptx|odp|gslides|pot|potm|potx|ppsm|pptm|fodp|otp|sxi|dps|dpt|key)|(pdf|djvu|xps|oxps)|(doc|docx|odt|gdoc|txt|rtf|mht|htm|html|mhtml|epub|docm|dot|dotm|dotx|fodt|ott|fb2|xml|oform|docxf|sxw|stw|wps|wpt|pages)|(vsdx|vssx|vstx|vsdm|vssm|vstm))$/
|
||||
var type = /^(?:(xls|xlsx|ods|csv|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb|sxc|et|ett|numbers)|(pps|ppsx|ppt|pptx|odp|gslides|pot|potm|potx|ppsm|pptm|fodp|otp|sxi|dps|dpt|key)|(pdf|djvu|xps|oxps)|(doc|docx|odt|gdoc|txt|rtf|mht|htm|html|mhtml|epub|docm|dot|dotm|dotx|fodt|ott|fb2|xml|oform|docxf|sxw|stw|wps|wpt|pages|hwp|hwpx))$/
|
||||
.exec(_config.document.fileType);
|
||||
if (!type) {
|
||||
window.alert("The \"document.fileType\" parameter for the config object is invalid. Please correct it.");
|
||||
@ -490,8 +511,7 @@
|
||||
if (typeof type[1] === 'string') _config.documentType = 'cell'; else
|
||||
if (typeof type[2] === 'string') _config.documentType = 'slide'; else
|
||||
if (typeof type[3] === 'string') _config.documentType = 'pdf'; else
|
||||
if (typeof type[4] === 'string') _config.documentType = 'word'; else
|
||||
if (typeof type[5] === 'string') _config.documentType = 'visio';
|
||||
if (typeof type[4] === 'string') _config.documentType = 'word';
|
||||
}
|
||||
}
|
||||
|
||||
@ -1013,6 +1033,34 @@
|
||||
return "";
|
||||
}
|
||||
|
||||
function isLocalStorageAvailable() {
|
||||
try {
|
||||
const storage = window['localStorage'];
|
||||
return true;
|
||||
}
|
||||
catch(e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function correct_app_type(config) {
|
||||
if ( config.type == 'mobile' ) {
|
||||
if ( !config.editorConfig.customization || !config.editorConfig.customization.mobile ||
|
||||
config.editorConfig.customization.mobile.disableForceDesktop !== true )
|
||||
{
|
||||
if ( isLocalStorageAvailable() ) {
|
||||
const f = localStorage.getItem('asc-force-editor-type');
|
||||
if ( f === 'desktop' ) {
|
||||
config.editorConfig.forceDesktop = true;
|
||||
return 'desktop';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return config.type;
|
||||
}
|
||||
|
||||
function getAppPath(config) {
|
||||
var extensionPath = getExtensionPath(),
|
||||
path = extensionPath ? extensionPath : (config.type=="test" ? getTestPath() : getBasePath()),
|
||||
@ -1025,7 +1073,6 @@
|
||||
'cell': 'spreadsheeteditor',
|
||||
'slide': 'presentationeditor',
|
||||
'pdf': 'pdfeditor',
|
||||
'visio': 'visioeditor',
|
||||
'common': 'common'
|
||||
},
|
||||
appType = 'word',
|
||||
@ -1034,20 +1081,21 @@
|
||||
isForm = false;
|
||||
if (config.document) {
|
||||
if (typeof config.document.fileType === 'string')
|
||||
type = /^(?:(pdf)|(djvu|xps|oxps)|(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb|numbers)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp|key)|(oform|docxf)|(vsdx|vssx|vstx|vsdm|vssm|vstm))$/
|
||||
type = /^(?:(pdf)|(djvu|xps|oxps)|(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb|numbers)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp|key)|(oform|docxf))$/
|
||||
.exec(config.document.fileType);
|
||||
|
||||
if (config.document.permissions)
|
||||
fillForms = (config.document.permissions.fillForms===undefined ? config.document.permissions.edit !== false : config.document.permissions.fillForms) &&
|
||||
config.editorConfig && (config.editorConfig.mode !== 'view');
|
||||
}
|
||||
var corrected_type = correct_app_type(config);
|
||||
if (type && typeof type[2] === 'string') { // djvu|xps|oxps
|
||||
appType = config.type === 'mobile' || config.type === 'embedded' ? 'word' : 'pdf';
|
||||
appType = corrected_type === 'mobile' || corrected_type === 'embedded' ? 'word' : 'pdf';
|
||||
} else if (type && typeof type[1] === 'string') { // pdf - need check
|
||||
isForm = config.document ? config.document.isForm : undefined;
|
||||
if (config.type === 'embedded')
|
||||
if (corrected_type === 'embedded')
|
||||
appType = fillForms && isForm===undefined ? 'common' : 'word';
|
||||
else if (config.type !== 'mobile')
|
||||
else if (corrected_type !== 'mobile')
|
||||
appType = isForm===undefined ? 'common' : isForm ? 'word' : 'pdf';
|
||||
} else if (type && typeof type[5] === 'string') { // oform|docxf
|
||||
appType = 'word';
|
||||
@ -1056,16 +1104,15 @@
|
||||
appType = config.documentType.toLowerCase();
|
||||
else {
|
||||
if (type && typeof type[3] === 'string') appType = 'cell'; else
|
||||
if (type && typeof type[4] === 'string') appType = 'slide'; else
|
||||
if (type && typeof type[6] === 'string') appType = 'visio';
|
||||
if (type && typeof type[4] === 'string') appType = 'slide';
|
||||
}
|
||||
}
|
||||
if (!(config.editorConfig && config.editorConfig.shardkey && config.document && config.editorConfig.shardkey!==config.document.key))
|
||||
path = extendAppPath(config, path);
|
||||
path += appMap[appType];
|
||||
|
||||
const path_type = config.type === "mobile" ? "mobile" :
|
||||
config.type === "embedded" ? (fillForms && isForm ? "forms" : "embed") : "main";
|
||||
const path_type = corrected_type === "mobile" ? "mobile" :
|
||||
corrected_type === "embedded" ? (fillForms && isForm ? "forms" : "embed") : "main";
|
||||
if (appType !== 'common')
|
||||
path += "/" + path_type;
|
||||
|
||||
@ -1168,6 +1215,10 @@
|
||||
params += "&indexPostfix=_loader";
|
||||
}
|
||||
}
|
||||
if (config.editorConfig && config.editorConfig.customization && config.editorConfig.customization.wordHeadingsColor && typeof config.editorConfig.customization.wordHeadingsColor === 'string') {
|
||||
params += "&headingsColor=" + config.editorConfig.customization.wordHeadingsColor.replace(/#/, '');
|
||||
}
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
@ -91,6 +91,11 @@ div {
|
||||
<div id="iframeEditor">
|
||||
</div>
|
||||
</div>
|
||||
<div id="keyData" style="display:none;" data-json="<%= key %>"></div>
|
||||
<div id="fileInfoJsonData" style="display:none;" data-json="<%= JSON.stringify(fileInfo) %>"></div>
|
||||
<div id="userAuthJsonData" style="display:none;" data-json="<%= JSON.stringify(userAuth) %>"></div>
|
||||
<div id="queryParamsJsonData" style="display:none;" data-json="<%= JSON.stringify(queryParams) %>"></div>
|
||||
<div id="docsApiConfigJsonData" style="display:none;" data-json="<%= JSON.stringify(docs_api_config) %>"></div>
|
||||
<script type="text/javascript" src="../../../web-apps/apps/api/documents/api.js<%- apiQuery %>"></script>
|
||||
<script type="text/javascript" language="javascript">
|
||||
|
||||
@ -283,14 +288,14 @@ div {
|
||||
|
||||
var connectEditor = function () {
|
||||
|
||||
fileInfo = <%- JSON.stringify(fileInfo) %>;
|
||||
fileInfo = JSON.parse(document.getElementById('fileInfoJsonData').getAttribute('data-json'));
|
||||
|
||||
var key = "<%- key %>";
|
||||
var documentType = "<%- documentType %>";
|
||||
var userAuth = <%- JSON.stringify(userAuth) %>;
|
||||
var token = "<%- token %>";
|
||||
var queryParams = <%- JSON.stringify(queryParams) %>;
|
||||
var docs_api_config = <%- JSON.stringify(docs_api_config) %>;
|
||||
var key = document.getElementById('keyData').getAttribute('data-json');
|
||||
var documentType = "<%= documentType %>";
|
||||
var userAuth = JSON.parse(document.getElementById('userAuthJsonData').getAttribute('data-json'));
|
||||
var token = "<%= token %>";
|
||||
var queryParams = JSON.parse(document.getElementById('queryParamsJsonData').getAttribute('data-json'));
|
||||
var docs_api_config = JSON.parse(document.getElementById('docsApiConfigJsonData').getAttribute('data-json'));
|
||||
|
||||
if (!fileInfo.BaseFileName) {
|
||||
showError();
|
||||
|
||||
@ -402,8 +402,22 @@ if (window.Common === undefined) {
|
||||
_postMessage({event:'onRequestReferenceSource'});
|
||||
},
|
||||
|
||||
requestStartFilling: function () {
|
||||
_postMessage({event:'onRequestStartFilling'});
|
||||
requestStartFilling: function (roles) {
|
||||
_postMessage({
|
||||
event:'onRequestStartFilling',
|
||||
data: roles
|
||||
});
|
||||
},
|
||||
|
||||
requestFillingStatus: function (role) {
|
||||
_postMessage({
|
||||
event:'onRequestFillingStatus',
|
||||
data: role
|
||||
});
|
||||
},
|
||||
|
||||
switchEditorType: function (value, restart) {
|
||||
_postMessage({event:'onSwitchEditorType', data: {type: value, restart: restart}});
|
||||
},
|
||||
|
||||
pluginsReady: function() {
|
||||
|
||||
@ -1,220 +1,186 @@
|
||||
<svg width="580" height="40" viewBox="0 0 580 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-menu-sprite Embedded Viewer">
|
||||
<g id="view-settings">
|
||||
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
||||
<path id="Vector_2" d="M17 30H3V31H17V30Z" fill="white"/>
|
||||
<path id="Vector_3" d="M17 34H3V35H17V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="download">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M31 22H30V33.2929L25.3536 28.6464L24.6465 29.3536L30.1465 34.8536L30.5 35.2071L30.8536 34.8536L36.3536 29.3536L35.6465 28.6464L31 33.2929V22Z" fill="white"/>
|
||||
<rect id="Rectangle 88" x="24" y="36" width="13" height="1" fill="white"/>
|
||||
</g>
|
||||
<g id="share">
|
||||
<path id="share_2" d="M56 25C56 26.1046 55.1046 27 54 27C53.4663 27 52.9815 26.791 52.6229 26.4503L47.9076 29.3974C47.9676 29.5875 48 29.79 48 30C48 30.21 47.9676 30.4125 47.9076 30.6026L52.6229 33.5497C52.9815 33.209 53.4663 33 54 33C55.1046 33 56 33.8954 56 35C56 36.1046 55.1046 37 54 37C52.8954 37 52 36.1046 52 35C52 34.79 52.0324 34.5875 52.0924 34.3974L47.3771 31.4503C47.0185 31.791 46.5337 32 46 32C44.8954 32 44 31.1046 44 30C44 28.8954 44.8954 28 46 28C46.5337 28 47.0185 28.209 47.3771 28.5497L52.0924 25.6026C52.0324 25.4125 52 25.21 52 25C52 23.8954 52.8954 23 54 23C55.1046 23 56 23.8954 56 25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="embed ">
|
||||
<g id="embed _2">
|
||||
<path d="M67.8536 25.3536L67.1465 24.6465L62.293 29.5L67.1465 34.3536L67.8536 33.6465L63.7072 29.5L67.8536 25.3536Z" fill="white"/>
|
||||
<path d="M72.1465 25.3536L72.8536 24.6465L77.7072 29.5L72.8536 34.3536L72.1465 33.6465L76.293 29.5L72.1465 25.3536Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen">
|
||||
<path id="Rectangle 81 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M93 27H87V33H93V27ZM86 26V34H94V26H86Z" fill="white"/>
|
||||
<path id="Subtract" fill-rule="evenodd" clip-rule="evenodd" d="M86 23H83V26H84V24H86V23Z" fill="white"/>
|
||||
<path id="Subtract_2" fill-rule="evenodd" clip-rule="evenodd" d="M97 26L97 23L94 23L94 24L96 24L96 26L97 26Z" fill="white"/>
|
||||
<path id="Subtract_3" fill-rule="evenodd" clip-rule="evenodd" d="M94 37L97 37L97 34L96 34L96 36L94 36L94 37Z" fill="white"/>
|
||||
<path id="Subtract_4" fill-rule="evenodd" clip-rule="evenodd" d="M83 34L83 37L86 37L86 36L84 36L84 34L83 34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-in">
|
||||
<path id="Union_2" fill-rule="evenodd" clip-rule="evenodd" d="M111 25H110V30H105V31H110V36H111V31H116V30H111V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-out">
|
||||
<rect id="Rectangle 44.8" x="135" y="30" width="1" height="10" transform="rotate(90 135 30)" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet">
|
||||
<path id="Vector 13 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M155 25L147 30L155 35V25Z" fill="white"/>
|
||||
<path id="Rectangle 225" d="M145 25H146V35H145V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet">
|
||||
<path id="Vector 13 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M165 35L173 30L165 25V35Z" fill="white"/>
|
||||
<path id="Rectangle 225 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M174 35H175V25H174V35Z" fill="white"/>
|
||||
</g>
|
||||
<g id="play">
|
||||
<path id="Vector 8 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M185 23L198 30L185 37V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="pause">
|
||||
<path id="Rectangle 81 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M205 25V35H209V25H205Z" fill="white"/>
|
||||
<path id="Rectangle 81.1 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M211 25V35H215V25H211Z" fill="white"/>
|
||||
</g>
|
||||
<g id=" print">
|
||||
<path id="Union_3" fill-rule="evenodd" clip-rule="evenodd" d="M226 24H234V26H226V24ZM225 26V24C225 23.4477 225.448 23 226 23H234C234.552 23 235 23.4477 235 24V26H237C237.552 26 238 26.4477 238 27V33C238 33.5523 237.552 34 237 34H235V36C235 36.5523 234.552 37 234 37H226C225.448 37 225 36.5523 225 36V34H223C222.448 34 222 33.5523 222 33V27C222 26.4477 222.448 26 223 26H225ZM225 33V31C225 30.4477 225.448 30 226 30H234C234.552 30 235 30.4477 235 31V33H237V27H234H226H223V33H225ZM225 28H224V29H225V28ZM234 31H226V36H234V31ZM227 32H233V33H227V32ZM233 34H227V35H233V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="clear-style">
|
||||
<path id="Union_4" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 24.5608C252.291 23.5845 250.708 23.5845 249.732 24.5608L243.561 30.7324C242.584 31.7087 242.584 33.2916 243.561 34.268L245.146 35.8537L245.293 36.0002L245.5 36.0002H249.5L249.707 36.0002L255 36.0002V35.0002H250.707L255.439 30.268C256.416 29.2916 256.416 27.7087 255.439 26.7324L253.268 24.5608ZM249.293 35.0002L252.793 31.5002L248.5 27.2073L244.268 31.4395C243.682 32.0253 243.682 32.9751 244.268 33.5609L245.707 35.0002L249.293 35.0002ZM249.207 26.5002L253.5 30.7931L254.732 29.5608C255.318 28.9751 255.318 28.0253 254.732 27.4395L252.561 25.268C251.975 24.6822 251.025 24.6822 250.439 25.268L249.207 26.5002Z" fill="white"/>
|
||||
</g>
|
||||
<g id="view-settings_2">
|
||||
<path id="Vector_4" d="M17 6H3V7H17V6Z" fill="black"/>
|
||||
<path id="Vector_5" d="M17 10H3V11H17V10Z" fill="black"/>
|
||||
<path id="Vector_6" d="M17 14H3V15H17V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="download_2">
|
||||
<path id="Union_5" fill-rule="evenodd" clip-rule="evenodd" d="M31 2H30V13.2929L25.3536 8.64645L24.6465 9.35355L30.1465 14.8536L30.5 15.2071L30.8536 14.8536L36.3536 9.35355L35.6465 8.64645L31 13.2929V2Z" fill="black"/>
|
||||
<rect id="Rectangle 88_2" x="24" y="16" width="13" height="1" fill="black"/>
|
||||
</g>
|
||||
<g id="share_3">
|
||||
<path id="share_4" d="M56 5C56 6.10457 55.1046 7 54 7C53.4663 7 52.9815 6.79098 52.6229 6.45034L47.9076 9.39737C47.9676 9.58754 48 9.78999 48 10C48 10.21 47.9676 10.4125 47.9076 10.6026L52.6229 13.5497C52.9815 13.209 53.4663 13 54 13C55.1046 13 56 13.8954 56 15C56 16.1046 55.1046 17 54 17C52.8954 17 52 16.1046 52 15C52 14.79 52.0324 14.5875 52.0924 14.3974L47.3771 11.4503C47.0185 11.791 46.5337 12 46 12C44.8954 12 44 11.1046 44 10C44 8.89543 44.8954 8 46 8C46.5337 8 47.0185 8.20902 47.3771 8.54966L52.0924 5.60264C52.0324 5.41246 52 5.21001 52 5C52 3.89543 52.8954 3 54 3C55.1046 3 56 3.89543 56 5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="embed _3">
|
||||
<g id="embed _4">
|
||||
<path d="M67.8536 5.35359L67.1465 4.64648L62.293 9.50004L67.1465 14.3536L67.8536 13.6465L63.7072 9.50004L67.8536 5.35359Z" fill="black"/>
|
||||
<path d="M72.1465 5.35359L72.8536 4.64648L77.7072 9.50004L72.8536 14.3536L72.1465 13.6465L76.293 9.50004L72.1465 5.35359Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen_2">
|
||||
<path id="Rectangle 81 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M93 7H87V13H93V7ZM86 6V14H94V6H86Z" fill="black"/>
|
||||
<path id="Subtract_5" fill-rule="evenodd" clip-rule="evenodd" d="M86 3H83V6H84V4H86V3Z" fill="black"/>
|
||||
<path id="Subtract_6" fill-rule="evenodd" clip-rule="evenodd" d="M97 6L97 3L94 3L94 4L96 4L96 6L97 6Z" fill="black"/>
|
||||
<path id="Subtract_7" fill-rule="evenodd" clip-rule="evenodd" d="M94 17L97 17L97 14L96 14L96 16L94 16L94 17Z" fill="black"/>
|
||||
<path id="Subtract_8" fill-rule="evenodd" clip-rule="evenodd" d="M83 14L83 17L86 17L86 16L84 16L84 14L83 14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-in_2">
|
||||
<path id="Union_6" fill-rule="evenodd" clip-rule="evenodd" d="M111 5H110V10H105V11H110V16H111V11H116V10H111V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-out_2">
|
||||
<rect id="Rectangle 44.8_2" x="135" y="10" width="1" height="10" transform="rotate(90 135 10)" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M155 5L147 10L155 15V5Z" fill="black"/>
|
||||
<path id="Rectangle 225_2" d="M145 5H146V15H145V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M165 15L173 10L165 5V15Z" fill="black"/>
|
||||
<path id="Rectangle 225 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M174 15H175V5H174V15Z" fill="black"/>
|
||||
</g>
|
||||
<g id="play_2">
|
||||
<path id="Vector 8 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M185 3L198 10L185 17V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="pause_2">
|
||||
<path id="Rectangle 81 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M205 5V15H209V5H205Z" fill="black"/>
|
||||
<path id="Rectangle 81.1 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M211 5V15H215V5H211Z" fill="black"/>
|
||||
</g>
|
||||
<g id=" print_2">
|
||||
<path id="Union_7" fill-rule="evenodd" clip-rule="evenodd" d="M226 4H234V6H226V4ZM225 6V4C225 3.44772 225.448 3 226 3H234C234.552 3 235 3.44772 235 4V6H237C237.552 6 238 6.44772 238 7V13C238 13.5523 237.552 14 237 14H235V16C235 16.5523 234.552 17 234 17H226C225.448 17 225 16.5523 225 16V14H223C222.448 14 222 13.5523 222 13V7C222 6.44772 222.448 6 223 6H225ZM225 13V11C225 10.4477 225.448 10 226 10H234C234.552 10 235 10.4477 235 11V13H237V7H234H226H223V13H225ZM225 8H224V9H225V8ZM234 11H226V16H234V11ZM227 12H233V13H227V12ZM233 14H227V15H233V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="clear-style_2">
|
||||
<path id="Union_8" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 4.56085C252.291 3.58454 250.708 3.58453 249.732 4.56085L243.561 10.7324C242.584 11.7087 242.584 13.2916 243.561 14.268L245.146 15.8537L245.293 16.0002L245.5 16.0002H249.5L249.707 16.0002L255 16.0002V15.0002H250.707L255.439 10.268C256.416 9.29164 256.416 7.70873 255.439 6.73242L253.268 4.56085ZM249.293 15.0002L252.793 11.5002L248.5 7.20729L244.268 11.4395C243.682 12.0253 243.682 12.9751 244.268 13.5609L245.707 15.0002L249.293 15.0002ZM249.207 6.50019L253.5 10.7931L254.732 9.56085C255.318 8.97506 255.318 8.02531 254.732 7.43953L252.561 5.26795C251.975 4.68217 251.025 4.68217 250.439 5.26795L249.207 6.50019Z" fill="black"/>
|
||||
</g>
|
||||
<g id="edit">
|
||||
<path id="Vector_7" d="M263 34V37H266L274 29L271 26L263 34Z" fill="white"/>
|
||||
<path id="Vector 2" d="M275 28L272 25L274 23H275L277 25V26L275 28Z" fill="white"/>
|
||||
</g>
|
||||
<g id="more-vertical">
|
||||
<circle id="Ellipse" cx="290" cy="26" r="1" transform="rotate(90 290 26)" fill="white"/>
|
||||
<circle id="Ellipse_2" cx="290" cy="30" r="1" transform="rotate(90 290 30)" fill="white"/>
|
||||
<circle id="Ellipse_3" cx="290" cy="34" r="1" transform="rotate(90 290 34)" fill="white"/>
|
||||
</g>
|
||||
<g id="go-to-location">
|
||||
<path id="Vector_8" d="M317 26H311V25C311 24.45 310.55 24 310 24H303C302.45 24 302 24.45 302 25V36C302 36.55 302.45 37 303 37H317C317.55 37 318 36.55 318 36V27C318 26.45 317.55 26 317 26ZM317 36H303V25H310V27H317V36Z" fill="white"/>
|
||||
<path id="Union_9" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 33.6465L310.354 34.3536L313.207 31.5L310.354 28.6465L309.646 29.3536L311.268 30.9747H306V31.9747H311.318L309.646 33.6465Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-down">
|
||||
<path id="Union_10" fill-rule="evenodd" clip-rule="evenodd" d="M331 23H330V34.2929L325.354 29.6464L324.646 30.3536L330.146 35.8536L330.5 36.2071L330.854 35.8536L336.354 30.3536L335.646 29.6464L331 34.2929V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="edit_2">
|
||||
<path id="Vector_9" d="M263 14V17H266L274 9L271 6L263 14Z" fill="black"/>
|
||||
<path id="Vector 2_2" d="M275 8L272 5L274 3H275L277 5V6L275 8Z" fill="black"/>
|
||||
</g>
|
||||
<g id="more-vertical_2">
|
||||
<circle id="Ellipse_4" cx="290" cy="6" r="1" transform="rotate(90 290 6)" fill="black"/>
|
||||
<circle id="Ellipse_5" cx="290" cy="10" r="1" transform="rotate(90 290 10)" fill="black"/>
|
||||
<circle id="Ellipse_6" cx="290" cy="14" r="1" transform="rotate(90 290 14)" fill="black"/>
|
||||
</g>
|
||||
<g id="go-to-location_2">
|
||||
<path id="Vector_10" d="M317 6H311V5C311 4.45 310.55 4 310 4H303C302.45 4 302 4.45 302 5V16C302 16.55 302.45 17 303 17H317C317.55 17 318 16.55 318 16V7C318 6.45 317.55 6 317 6ZM317 16H303V5H310V7H317V16Z" fill="black"/>
|
||||
<path id="Union_11" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 13.6465L310.354 14.3536L313.207 11.5L310.354 8.64648L309.646 9.35359L311.268 10.9747H306V11.9747H311.318L309.646 13.6465Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-down_2">
|
||||
<path id="Union_12" fill-rule="evenodd" clip-rule="evenodd" d="M331 3H330V14.2929L325.354 9.64645L324.646 10.3536L330.146 15.8536L330.5 16.2071L330.854 15.8536L336.354 10.3536L335.646 9.64645L331 14.2929V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-up">
|
||||
<path id="Union_13" fill-rule="evenodd" clip-rule="evenodd" d="M350 36.207L351 36.207L351 24.9141L355.646 29.5606L356.354 28.8535L350.854 23.3535L350.5 22.9999L350.146 23.3535L344.646 28.8535L345.354 29.5606L350 24.9141L350 36.207Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-up_2">
|
||||
<path id="Union_14" fill-rule="evenodd" clip-rule="evenodd" d="M350 16.207L351 16.207L351 4.91414L355.646 9.56059L356.354 8.85348L350.854 3.35348L350.5 2.99993L350.146 3.35348L344.646 8.85348L345.354 9.56059L350 4.91414L350 16.207Z" fill="black"/>
|
||||
</g>
|
||||
<g id="close">
|
||||
<path id="Vector 73" d="M366 25L375 34M375 25L366 34" stroke="white" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="close_2">
|
||||
<path id="Vector 73_2" d="M366 5L375 14M375 5L366 14" stroke="black" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="сut">
|
||||
<circle id="Ellipse 103" cx="385.5" cy="13.5" r="2" stroke="black"/>
|
||||
<circle id="Ellipse 104" cx="385.5" cy="6.5" r="2" stroke="black"/>
|
||||
<path id="Rectangle 1552" d="M387.188 7.56689L398.446 14.0669V14.0669C398.17 14.5452 397.559 14.7091 397.08 14.4329L386.688 8.43292L387.188 7.56689Z" fill="black"/>
|
||||
<path id="Rectangle 1553" d="M386.688 11.5669L397.08 5.56689C397.558 5.29075 398.17 5.45463 398.446 5.93292V5.93292L387.188 12.4329L386.688 11.5669Z" fill="black"/>
|
||||
</g>
|
||||
<g id="сut_2">
|
||||
<circle id="Ellipse 103_2" cx="385.5" cy="33.5" r="2" stroke="white"/>
|
||||
<circle id="Ellipse 104_2" cx="385.5" cy="26.5" r="2" stroke="white"/>
|
||||
<path id="Rectangle 1552_2" d="M387.188 27.5669L398.446 34.0669V34.0669C398.17 34.5452 397.559 34.7091 397.08 34.4329L386.688 28.4329L387.188 27.5669Z" fill="white"/>
|
||||
<path id="Rectangle 1553_2" d="M386.688 31.5669L397.08 25.5669C397.558 25.2908 398.17 25.4546 398.446 25.9329V25.9329L387.188 32.4329L386.688 31.5669Z" fill="white"/>
|
||||
</g>
|
||||
<g id="copy">
|
||||
<path id="Union_27" fill-rule="evenodd" clip-rule="evenodd" d="M404 5H412V7H413V5C413 4.44772 412.552 4 412 4H404C403.448 4 403 4.44772 403 5V12C403 12.5523 403.448 13 404 13H406V12H404V5ZM411 6H405V7H411V6ZM408 9V16H416V9H408ZM408 8C407.448 8 407 8.44772 407 9V16C407 16.5523 407.448 17 408 17H416C416.552 17 417 16.5523 417 16V9C417 8.44772 416.552 8 416 8H408ZM406 8H405V9H406V8ZM405 10H406V11H405V10ZM415 11V10H409V11H415ZM415 12V13H409V12H415ZM415 15V14H409V15H415Z" fill="black"/>
|
||||
</g>
|
||||
<g id="copy_2">
|
||||
<path id="Union_28" fill-rule="evenodd" clip-rule="evenodd" d="M404 25H412V27H413V25C413 24.4477 412.552 24 412 24H404C403.448 24 403 24.4477 403 25V32C403 32.5523 403.448 33 404 33H406V32H404V25ZM411 26H405V27H411V26ZM408 29V36H416V29H408ZM408 28C407.448 28 407 28.4477 407 29V36C407 36.5523 407.448 37 408 37H416C416.552 37 417 36.5523 417 36V29C417 28.4477 416.552 28 416 28H408ZM406 28H405V29H406V28ZM405 30H406V31H405V30ZM415 31V30H409V31H415ZM415 32V33H409V32H415ZM415 35V34H409V35H415Z" fill="white"/>
|
||||
</g>
|
||||
<g id="paste">
|
||||
<path id="Union_29" fill-rule="evenodd" clip-rule="evenodd" d="M426 3H432V4H434C434.552 4 435 4.44772 435 5V7H434V5H432V6H426V5H424V12H426V13H424C423.448 13 423 12.5523 423 12V5C423 4.44772 423.448 4 424 4H426V3ZM436 16V9H428V16H436ZM428 8C427.448 8 427 8.44772 427 9V16C427 16.5523 427.448 17 428 17H436C436.552 17 437 16.5523 437 16V9C437 8.44772 436.552 8 436 8H428ZM429 11V10H435V11H429ZM435 12H429V13H435V12ZM429 15V14H435V15H429Z" fill="black"/>
|
||||
</g>
|
||||
<g id="paste_2">
|
||||
<path id="Union_30" fill-rule="evenodd" clip-rule="evenodd" d="M426 23H432V24H434C434.552 24 435 24.4477 435 25V27H434V25H432V26H426V25H424V32H426V33H424C423.448 33 423 32.5523 423 32V25C423 24.4477 423.448 24 424 24H426V23ZM436 36V29H428V36H436ZM428 28C427.448 28 427 28.4477 427 29V36C427 36.5523 427.448 37 428 37H436C436.552 37 437 36.5523 437 36V29C437 28.4477 436.552 28 436 28H428ZM429 31V30H435V31H429ZM435 32H429V33H435V32ZM429 35V34H435V35H429Z" fill="white"/>
|
||||
</g>
|
||||
<g id="redo">
|
||||
<path id="Vector" d="M469.1 7C471.1 7 473.2 8.3 474.5 9.5L477 7V14H470L472.5 11.5C471.7 10.2 469.9 9.1 468.2 9.1C465.7 9.1 462.8 10.8 462.5 13.2C462.9 9.7 465.5 7 469.1 7Z" fill="black"/>
|
||||
</g>
|
||||
<g id="redo_2">
|
||||
<path id="Vector_2" d="M469.1 27C471.1 27 473.2 28.3 474.5 29.5L477 27V34H470L472.5 31.5C471.7 30.2 469.9 29.1 468.2 29.1C465.7 29.1 462.8 30.8 462.5 33.2C462.9 29.7 465.5 27 469.1 27Z" fill="white"/>
|
||||
</g>
|
||||
<g id="undo">
|
||||
<path id="Vector_3" d="M450.9 7C448.9 7 446.8 8.3 445.5 9.5L443 7V14H450L447.5 11.5C448.3 10.2 450.1 9.1 451.8 9.1C454.3 9.1 457.2 10.8 457.5 13.2C457.1 9.7 454.5 7 450.9 7Z" fill="black"/>
|
||||
</g>
|
||||
<g id="undo_2">
|
||||
<path id="Vector_4" d="M450.9 27C448.9 27 446.8 28.3 445.5 29.5L443 27V34H450L447.5 31.5C448.3 30.2 450.1 29.1 451.8 29.1C454.3 29.1 457.2 30.8 457.5 33.2C457.1 29.7 454.5 27 450.9 27Z" fill="white"/>
|
||||
</g>
|
||||
<g id="search">
|
||||
<path id="Union_31" fill-rule="evenodd" clip-rule="evenodd" d="M493 8.5C493 10.9853 490.985 13 488.5 13C486.015 13 484 10.9853 484 8.5C484 6.01472 486.015 4 488.5 4C490.985 4 493 6.01472 493 8.5ZM492.02 12.7266C491.066 13.5217 489.839 14 488.5 14C485.462 14 483 11.5376 483 8.5C483 5.46243 485.462 3 488.5 3C491.538 3 494 5.46243 494 8.5C494 9.83875 493.522 11.0658 492.727 12.0195L496.854 16.1465L496.146 16.8536L492.02 12.7266Z" fill="black"/>
|
||||
</g>
|
||||
<g id="search_2">
|
||||
<path id="Union_32" fill-rule="evenodd" clip-rule="evenodd" d="M493 28.5C493 30.9853 490.985 33 488.5 33C486.015 33 484 30.9853 484 28.5C484 26.0147 486.015 24 488.5 24C490.985 24 493 26.0147 493 28.5ZM492.02 32.7266C491.066 33.5217 489.839 34 488.5 34C485.462 34 483 31.5376 483 28.5C483 25.4624 485.462 23 488.5 23C491.538 23 494 25.4624 494 28.5C494 29.8387 493.522 31.0658 492.727 32.0195L496.854 36.1465L496.146 36.8536L492.02 32.7266Z" fill="white"/>
|
||||
</g>
|
||||
<g id="btn-sheet-view">
|
||||
<path id="Union_33" fill-rule="evenodd" clip-rule="evenodd" d="M509.93 13C507.552 13 505.45 11.8151 504.184 10C505.45 8.18485 507.552 7 509.93 7C512.307 7 514.409 8.18486 515.675 10C514.409 11.8151 512.307 13 509.93 13ZM509.93 6C512.891 6 515.476 7.6088 516.859 10C515.476 12.3912 512.891 14 509.93 14C506.969 14 504.383 12.3912 503 10C504.383 7.60879 506.969 6 509.93 6ZM509.93 12C511.034 12 511.93 11.1046 511.93 10C511.93 8.89543 511.034 8 509.93 8C508.825 8 507.93 8.89543 507.93 10C507.93 11.1046 508.825 12 509.93 12Z" fill="black"/>
|
||||
</g>
|
||||
<g id="btn-sheet-view_2">
|
||||
<path id="Union_34" fill-rule="evenodd" clip-rule="evenodd" d="M509.93 33C507.552 33 505.45 31.8151 504.184 30C505.45 28.1849 507.552 27 509.93 27C512.307 27 514.409 28.1849 515.675 30C514.409 31.8151 512.307 33 509.93 33ZM509.93 26C512.891 26 515.476 27.6088 516.859 30C515.476 32.3912 512.891 34 509.93 34C506.969 34 504.383 32.3912 503 30C504.383 27.6088 506.969 26 509.93 26ZM509.93 32C511.034 32 511.93 31.1046 511.93 30C511.93 28.8954 511.034 28 509.93 28C508.825 28 507.93 28.8954 507.93 30C507.93 31.1046 508.825 32 509.93 32Z" fill="white"/>
|
||||
</g>
|
||||
<g id="hide-password">
|
||||
<path id="Subtract" fill-rule="evenodd" clip-rule="evenodd" d="M530.948 6.05196C530.638 6.01766 530.321 6 530 6C526.91 6 524.243 7.63505 523 10C523.439 10.8356 524.056 11.5801 524.807 12.1935L525.518 11.4821C524.979 11.055 524.519 10.5539 524.158 10C525.311 8.23092 527.473 7 530 7C530 7 530 7 530 7L530.948 6.05196ZM530 13C532.527 12.9999 534.689 11.769 535.842 10C535.481 9.44626 535.021 8.94525 534.482 8.51821L535.194 7.80682C535.944 8.42019 536.561 9.16455 537 10C535.757 12.3649 533.09 14 530 14C529.679 14 529.363 13.9824 529.052 13.9481L530 13Z" fill="black"/>
|
||||
<path id="Vector 169" d="M525 15L535 5" stroke="black"/>
|
||||
</g>
|
||||
<g id="hide-password_2">
|
||||
<path id="Subtract_2" fill-rule="evenodd" clip-rule="evenodd" d="M530.948 26.052C530.638 26.0177 530.321 26 530 26C526.91 26 524.243 27.6351 523 30C523.439 30.8356 524.056 31.5801 524.807 32.1935L525.518 31.4821C524.979 31.055 524.519 30.5539 524.158 30C525.311 28.2309 527.473 27 530 27C530 27 530 27 530 27L530.948 26.052ZM530 33C532.527 32.9999 534.689 31.769 535.842 30C535.481 29.4463 535.021 28.9453 534.482 28.5182L535.194 27.8068C535.944 28.4202 536.561 29.1646 537 30C535.757 32.3649 533.09 34 530 34C529.679 34 529.363 33.9824 529.052 33.9481L530 33Z" fill="white"/>
|
||||
<path id="Vector 169_2" d="M525 35L535 25" stroke="white"/>
|
||||
</g>
|
||||
<g id="arrow-up">
|
||||
<path id="Union_4" fill-rule="evenodd" clip-rule="evenodd" d="M550 6.29297L550.354 6.64652L555.854 12.1465L555.146 12.8536L550 7.70718L544.854 12.8536L544.146 12.1465L549.646 6.64652L550 6.29297Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-up_2">
|
||||
<path id="Union_3" fill-rule="evenodd" clip-rule="evenodd" d="M550 26.293L550.354 26.6465L555.854 32.1465L555.146 32.8536L550 27.7072L544.854 32.8536L544.146 32.1465L549.646 26.6465L550 26.293Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-down">
|
||||
<path id="Union_2" fill-rule="evenodd" clip-rule="evenodd" d="M570 13.7071L570.354 13.3536L575.854 7.85359L575.146 7.14648L570 12.2929L564.854 7.14648L564.146 7.85359L569.646 13.3536L570 13.7071Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-down_2">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M570 33.7071L570.354 33.3536L575.854 27.8536L575.146 27.1465L570 32.2929L564.854 27.1465L564.146 27.8536L569.646 33.3536L570 33.7071Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg width="600" height="40" viewBox="0 0 600 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="menu-dark">
|
||||
<path d="M17 6H3v1h14zm0 4H3v1h14zM3 14h14v1H3z" fill="#000"/>
|
||||
</g>
|
||||
<g id="menu-light">
|
||||
<path d="M17 26H3v1h14zm0 4H3v1h14zM3 34h14v1H3z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="download-dark">
|
||||
<path d="M30 2h1v11.293l4.647-4.647.707.708-5.854 5.853-5.853-5.853.707-.708L30 13.293zm-6 14h13v1H24z" fill="#000"/>
|
||||
</g>
|
||||
<g id="download-light">
|
||||
<path d="M30 22h1v11.293l4.647-4.646.707.707-5.854 5.853-5.853-5.853.707-.707L30 33.293zm-6 14h13v1H24z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="share-dark">
|
||||
<path d="M56 5a2 2 0 0 1-3.377 1.45l-4.715 2.947a2 2 0 0 1 0 1.206l4.715 2.947a2 2 0 1 1-.53.848l-4.716-2.948a2 2 0 1 1 0-2.9l4.715-2.947A2 2 0 1 1 56 5" fill="#000"/>
|
||||
</g>
|
||||
<g id="share-light">
|
||||
<path d="M56 25a2 2 0 0 1-3.377 1.45l-4.715 2.947a2 2 0 0 1 0 1.206l4.715 2.947a2 2 0 1 1-.53.848l-4.716-2.948a2 2 0 1 1 0-2.9l4.715-2.947A2 2 0 1 1 56 25" fill="#fff"/>
|
||||
</g>
|
||||
<g id="embed-dark">
|
||||
<path d="m67.147 4.646.707.708L63.707 9.5l4.147 4.147-.707.707L62.293 9.5zm5.707 0-.707.708L76.293 9.5l-4.147 4.147.708.707L77.707 9.5z" fill="#000"/>
|
||||
</g>
|
||||
<g id="embed-light">
|
||||
<path d="m67.147 24.647.707.707-4.147 4.146 4.147 4.147-.707.707-4.854-4.854zm5.707 0-.707.707 4.146 4.146-4.147 4.147.708.707 4.853-4.854z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="full-screen-dark">
|
||||
<path d="M86 3h-3v3h1V4h2zm0 3v8h8V6zm7 1v6h-6V7zm4-4v3h-1V4h-2V3zm-3 14h3v-3h-1v2h-2zm-11 0v-3h1v2h2v1z" fill="#000"/>
|
||||
</g>
|
||||
<g id="full-screen-light">
|
||||
<path d="M86 23h-3v3h1v-2h2zm0 3v8h8v-8zm7 1v6h-6v-6zm4-4v3h-1v-2h-2v-1zm-3 14h3v-3h-1v2h-2zm-11 0v-3h1v2h2v1z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="zoom-in-dark">
|
||||
<path d="M111 5h-1v5h-5v1h5v5h1v-5h5v-1h-5z" fill="#000"/>
|
||||
</g>
|
||||
<g id="zoom-in-light">
|
||||
<path d="M111 25h-1v5h-5v1h5v5h1v-5h5v-1h-5z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="zoom-out-dark">
|
||||
<path d="M135 11v-1h-10v1z" fill="#000"/>
|
||||
</g>
|
||||
<g id="zoom-out-light">
|
||||
<path d="M135 31v-1h-10v1z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="go-to-first-dark">
|
||||
<path d="M146 5h-1v10h1zm1 5 8-5v10z" fill="#000"/>
|
||||
</g>
|
||||
<g id="go-to-first-light">
|
||||
<path d="M146 25h-1v10h1zm1 5 8-5v10z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="go-to-last-dark">
|
||||
<path d="m173 10-8 5V5zm2 5h-1V5h1z" fill="#000"/>
|
||||
</g>
|
||||
<g id="go-to-last-light">
|
||||
<path d="m173 30-8 5V25zm2 5h-1V25h1z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="play-dark">
|
||||
<path d="m185 3 13 7-13 7z" fill="#000"/>
|
||||
</g>
|
||||
<g id="play-light">
|
||||
<path d="m185 23 13 7-13 7z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="pause-dark">
|
||||
<path d="M205 15V5h4v10zm6 0V5h4v10z" fill="#000"/>
|
||||
</g>
|
||||
<g id="pause-light">
|
||||
<path d="M205 35V25h4v10zm6 0V25h4v10z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="print-dark">
|
||||
<path d="M226 4v2h8V4zm-1 2V4a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-2v2a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-2h-2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zm0 7v-2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h2V7h-14v6zm0-5h-1v1h1zm9 3h-8v5h8zm-7 1h6v1h-6zm6 2h-6v1h6z" fill="#000"/>
|
||||
</g>
|
||||
<g id="print-light">
|
||||
<path d="M226 24v2h8v-2zm-1 2v-2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-2v2a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-2h-2a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zm0 7v-2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h2v-6h-14v6zm0-5h-1v1h1zm9 3h-8v5h8zm-7 1h6v1h-6zm6 2h-6v1h6z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="clear-style-dark">
|
||||
<path d="M253.268 4.56a2.5 2.5 0 0 0-3.536 0l-6.171 6.172a2.5 2.5 0 0 0 0 3.536l1.585 1.585.147.147H255v-1h-4.293l4.732-4.732a2.5 2.5 0 0 0 0-3.536zM249.293 15h-3.586l-1.439-1.44a1.5 1.5 0 0 1 0-2.121l4.232-4.232 4.293 4.293zm-.086-8.5 1.232-1.233a1.5 1.5 0 0 1 2.122 0l2.171 2.172a1.5 1.5 0 0 1 0 2.121l-1.232 1.233z" fill="#000"/>
|
||||
</g>
|
||||
<g id="clear-style-light">
|
||||
<path d="M253.268 24.56a2.5 2.5 0 0 0-3.536 0l-6.171 6.172a2.5 2.5 0 0 0 0 3.535l1.585 1.586.147.147H255v-1h-4.293l4.732-4.733a2.5 2.5 0 0 0 0-3.535zM249.293 35h-3.586l-1.439-1.44a1.5 1.5 0 0 1 0-2.121l4.232-4.232 4.293 4.293zm-.086-8.5 1.232-1.233a1.5 1.5 0 0 1 2.122 0l2.171 2.172a1.5 1.5 0 0 1 0 2.121l-1.232 1.233z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="edit-dark">
|
||||
<path d="m272 5 3 3 2-2V5l-2-2h-1zm-9 12v-3l8-8 3 3-8 8z" fill="#000"/>
|
||||
</g>
|
||||
<g id="edit-light">
|
||||
<path d="m272 25 3 3 2-2v-1l-2-2h-1zm-9 12v-3l8-8 3 3-8 8z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="more-vertical-dark">
|
||||
<path d="M289 6a1 1 0 1 0 2 0 1 1 0 0 0-2 0m0 4a1 1 0 1 0 2 0 1 1 0 0 0-2 0m1 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2" fill="#000"/>
|
||||
</g>
|
||||
<g id="more-vertical-light">
|
||||
<path d="M289 26a1 1 0 1 0 2 0 1 1 0 0 0-2 0m0 4a1 1 0 1 0 2 0 1 1 0 0 0-2 0m1 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2" fill="#fff"/>
|
||||
</g>
|
||||
<g id="go-to-location-dark">
|
||||
<path d="m313.207 11.5-2.853 2.854-.708-.707 1.672-1.672H306v-1h5.268l-1.622-1.621.708-.708z" fill="#000"/>
|
||||
<path d="M311 6h6c.55 0 1 .45 1 1v9c0 .55-.45 1-1 1h-14c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h7c.55 0 1 .45 1 1zm-8-1v11h14V7h-7V5z" fill="#000"/>
|
||||
</g>
|
||||
<g id="go-to-location-light">
|
||||
<path d="m313.207 31.5-2.853 2.854-.708-.707 1.672-1.672H306v-1h5.268l-1.622-1.621.708-.707z" fill="#fff"/>
|
||||
<path d="M311 26h6c.55 0 1 .45 1 1v9c0 .55-.45 1-1 1h-14c-.55 0-1-.45-1-1V25c0-.55.45-1 1-1h7c.55 0 1 .45 1 1zm-8-1v11h14v-9h-7v-2z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="arrow-down-dark">
|
||||
<path d="M331 3h-1v11.293l-4.646-4.647-.708.708 5.5 5.5.354.353.354-.353 5.5-5.5-.708-.708L331 14.293z" fill="#000"/>
|
||||
</g>
|
||||
<g id="arrow-down-light">
|
||||
<path d="M331 23h-1v11.293l-4.646-4.646-.708.707 5.5 5.5.354.353.354-.353 5.5-5.5-.708-.707L331 34.293z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="arrow-up-dark">
|
||||
<path d="M350 16.207h1V4.914l4.646 4.647.708-.707-5.5-5.5L350.5 3l-.354.354-5.5 5.5.708.707L350 4.914z" fill="#000"/>
|
||||
</g>
|
||||
<g id="arrow-up-light">
|
||||
<path d="M350 36.207h1V24.914l4.646 4.647.708-.707-5.5-5.5L350.5 23l-.354.354-5.5 5.5.708.707L350 24.914z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="close-dark">
|
||||
<path d="m369.439 9.5-3.969-3.97 1.06-1.06 3.97 3.97 3.97-3.97 1.06 1.06-3.969 3.97 3.969 3.97-1.06 1.06-3.97-3.97-3.97 3.97-1.06-1.06z" fill="#000"/>
|
||||
</g>
|
||||
<g id="close-light">
|
||||
<path d="m369.439 29.5-3.969-3.97 1.06-1.06 3.97 3.97 3.97-3.97 1.06 1.06-3.969 3.97 3.969 3.97-1.06 1.06-3.97-3.97-3.97 3.97-1.06-1.06z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="cut-dark">
|
||||
<path d="M385.5 4a2.5 2.5 0 1 0 1.413 4.563L389.402 10l-2.489 1.437a2.5 2.5 0 1 0 .711.744l2.777-1.604 6.678 3.856a1 1 0 0 0 1.367-.366L391.401 10l7.045-4.067a1 1 0 0 0-1.367-.366l-6.677 3.856-2.778-1.604A2.5 2.5 0 0 0 385.5 4M384 6.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m0 7a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0" fill="#000"/>
|
||||
</g>
|
||||
<g id="cut-light">
|
||||
<path d="M385.5 24a2.5 2.5 0 1 0 1.413 4.563L389.402 30l-2.489 1.437a2.5 2.5 0 1 0 .711.744l2.777-1.604 6.678 3.856a1 1 0 0 0 1.367-.366L391.401 30l7.045-4.067a1 1 0 0 0-1.367-.366l-6.677 3.856-2.778-1.604A2.5 2.5 0 0 0 385.5 24m-1.5 2.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m0 7a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0" fill="#fff"/>
|
||||
</g>
|
||||
<g id="copy-dark">
|
||||
<path d="M404 5h8v2h1V5a1 1 0 0 0-1-1h-8a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h2v-1h-2zm7 1h-6v1h6zm-3 3h8v7h-8zm0-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zm-2 0h-1v1h1zm-1 2h1v1h-1zm10 1v-1h-6v1zm0 1v1h-6v-1zm0 3v-1h-6v1z" fill="#000"/>
|
||||
</g>
|
||||
<g id="copy-light">
|
||||
<path d="M404 25h8v2h1v-2a1 1 0 0 0-1-1h-8a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h2v-1h-2zm7 1h-6v1h6zm-3 3h8v7h-8zm0-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-7a1 1 0 0 0-1-1zm-2 0h-1v1h1zm-1 2h1v1h-1zm10 1v-1h-6v1zm0 1v1h-6v-1zm0 3v-1h-6v1z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="paste-dark">
|
||||
<path d="M426 3h6v1h2a1 1 0 0 1 1 1v2h-1V5h-2v1h-6V5h-2v7h2v1h-2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h2zm10 13h-8V9h8zm-8-8a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zm1 3v-1h6v1zm6 1h-6v1h6zm-6 3v-1h6v1z" fill="#000"/>
|
||||
</g>
|
||||
<g id="paste-light">
|
||||
<path d="M426 23h6v1h2a1 1 0 0 1 1 1v2h-1v-2h-2v1h-6v-1h-2v7h2v1h-2a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h2zm10 13h-8v-7h8zm-8-8a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-7a1 1 0 0 0-1-1zm1 3v-1h6v1zm6 1h-6v1h6zm-6 3v-1h6v1z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="undo-dark">
|
||||
<path d="m445.707 8 3.447 3.447-.707.707-4.654-4.654 4.654-4.653.707.707L445.707 7H452c1.5 0 2.76.353 3.651 1.128.902.786 1.349 1.939 1.349 3.372 0 1.434-.447 2.587-1.349 3.372C454.76 15.648 453.5 16 452 16h-2v-1h2c1.36 0 2.35-.32 2.994-.882.633-.55 1.006-1.398 1.006-2.618s-.373-2.067-1.006-2.618C454.35 8.322 453.36 8 452 8z" fill="#000"/>
|
||||
</g>
|
||||
<g id="undo-light">
|
||||
<path d="m445.707 28 3.447 3.447-.707.707-4.654-4.654 4.654-4.653.707.707L445.707 27H452c1.5 0 2.76.353 3.651 1.128.902.786 1.349 1.939 1.349 3.372 0 1.434-.447 2.587-1.349 3.372C454.76 35.648 453.5 36 452 36h-2v-1h2c1.36 0 2.35-.32 2.994-.882.633-.55 1.006-1.398 1.006-2.618s-.373-2.067-1.006-2.618C454.35 28.322 453.36 28 452 28z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="redo-dark">
|
||||
<path d="m474.293 8-3.447 3.447.707.707 4.654-4.654-4.653-4.653-.708.707L474.293 7H468c-1.5 0-2.76.353-3.651 1.128-.902.786-1.349 1.939-1.349 3.372 0 1.434.447 2.587 1.349 3.372C465.24 15.648 466.5 16 468 16h2v-1h-2c-1.36 0-2.35-.32-2.994-.882-.633-.55-1.006-1.398-1.006-2.618s.373-2.067 1.006-2.618C465.65 8.322 466.64 8 468 8z" fill="#000"/>
|
||||
</g>
|
||||
<g id="redo-light">
|
||||
<path d="m474.293 28-3.447 3.447.707.707 4.654-4.654-4.653-4.653-.708.707L474.293 27H468c-1.5 0-2.76.353-3.651 1.128-.902.786-1.349 1.939-1.349 3.372 0 1.434.447 2.587 1.349 3.372C465.24 35.648 466.5 36 468 36h2v-1h-2c-1.36 0-2.35-.32-2.994-.882-.633-.55-1.006-1.398-1.006-2.618s.373-2.067 1.006-2.618c.644-.56 1.634-.882 2.994-.882z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="search-dark">
|
||||
<path d="M493 8.5a4.5 4.5 0 1 0-9 0 4.5 4.5 0 0 0 9 0m-.98 4.227a5.5 5.5 0 1 1 .707-.707l4.127 4.127-.708.707z" fill="#000"/>
|
||||
</g>
|
||||
<g id="search-light">
|
||||
<path d="M493 28.5a4.5 4.5 0 1 0-9 0 4.5 4.5 0 0 0 9 0m-.98 4.227a5.5 5.5 0 1 1 .707-.707l4.127 4.127-.708.707z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="show-dark">
|
||||
<path d="M509.93 13a6.99 6.99 0 0 0 5.745-3 6.99 6.99 0 0 0-5.745-3 6.99 6.99 0 0 0-5.746 3 6.99 6.99 0 0 0 5.746 3m0-7a8 8 0 0 1 6.929 4 8 8 0 0 1-6.929 4 8 8 0 0 1-6.93-4 8 8 0 0 1 6.93-4m0 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4" fill="#000"/>
|
||||
</g>
|
||||
<g id="show-light">
|
||||
<path d="M509.93 33a6.99 6.99 0 0 0 5.745-3 6.99 6.99 0 0 0-5.745-3 6.99 6.99 0 0 0-5.746 3 6.99 6.99 0 0 0 5.746 3m0-7a8 8 0 0 1 6.929 4 8 8 0 0 1-6.929 4 8 8 0 0 1-6.93-4 8 8 0 0 1 6.93-4m0 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4" fill="#fff"/>
|
||||
</g>
|
||||
<g id="hide-dark">
|
||||
<path d="m525.354 15.354 10-10-.708-.708-10 10zM530 6q.482 0 .948.052L530 7c-2.527 0-4.689 1.231-5.842 3a6.3 6.3 0 0 0 1.36 1.482l-.711.712A7.1 7.1 0 0 1 523 10c1.243-2.365 3.91-4 7-4m5.842 4c-1.153 1.769-3.315 3-5.842 3l-.948.948q.466.051.948.052c3.09 0 5.757-1.635 7-4a7.1 7.1 0 0 0-1.806-2.193l-.712.711a6.3 6.3 0 0 1 1.36 1.482" fill="#000"/>
|
||||
</g>
|
||||
<g id="hide-light">
|
||||
<path d="m525.354 35.354 10-10-.708-.707-10 10zM530 26q.482 0 .948.052L530 27c-2.527 0-4.689 1.231-5.842 3a6.3 6.3 0 0 0 1.36 1.482l-.711.712A7.1 7.1 0 0 1 523 30c1.243-2.365 3.91-4 7-4m5.842 4c-1.153 1.769-3.315 3-5.842 3l-.948.948q.466.051.948.052c3.09 0 5.757-1.635 7-4a7.1 7.1 0 0 0-1.806-2.193l-.712.711c.539.427.999.928 1.36 1.482" fill="#fff"/>
|
||||
</g>
|
||||
<g id="chevron-up-dark">
|
||||
<path d="m550 6.293.354.354 5.5 5.5-.708.707L550 7.707l-5.146 5.147-.708-.707 5.5-5.5z" fill="#000"/>
|
||||
</g>
|
||||
<g id="chevron-up-light">
|
||||
<path d="m550 26.293.354.354 5.5 5.5-.708.707L550 27.707l-5.146 5.147-.708-.707 5.5-5.5z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="chevron-down-dark">
|
||||
<path d="m570 13.707.354-.353 5.5-5.5-.708-.708L570 12.293l-5.146-5.147-.708.708 5.5 5.5z" fill="#000"/>
|
||||
</g>
|
||||
<g id="chevron-down-light">
|
||||
<path d="m570 33.707.354-.353 5.5-5.5-.708-.707L570 32.292l-5.146-5.146-.708.707 5.5 5.5z" fill="#fff"/>
|
||||
</g>
|
||||
<g id="filing-status-dark">
|
||||
<path d="M595 6h-6V5h6zm-6 2h4V7h-4zm6 3h-6v-1h6zm-6 2h4v-1h-4z" fill="#000"/>
|
||||
<path d="M582 3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-14a1 1 0 0 1-1-1zm5 0v14h10V3zm-1 0h-3v14h3z" fill="#000"/>
|
||||
</g>
|
||||
<g id="filing-status-light">
|
||||
<path d="M595 26h-6v-1h6zm-6 2h4v-1h-4zm6 3h-6v-1h6zm-6 2h4v-1h-4z" fill="#fff"/>
|
||||
<path d="M582 23a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-14a1 1 0 0 1-1-1zm5 0v14h10V23zm-1 0h-3v14h3z" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 12 KiB |
@ -419,7 +419,7 @@
|
||||
|
||||
.svg-icon {
|
||||
background: data-uri('../../../../common/forms/resources/img/icon-menu-sprite.svg') no-repeat;
|
||||
background-size: @icon-width*29 @icon-height*2;
|
||||
background-size: @icon-width*30 @icon-height*2;
|
||||
|
||||
&.download {
|
||||
background-position: -@icon-width 0;
|
||||
@ -535,6 +535,10 @@
|
||||
background-position: -@icon-width*28 0;
|
||||
background-position: -@icon-width*28 @icon-normal-top;
|
||||
}
|
||||
&.filing-status {
|
||||
background-position: -@icon-width*29 0;
|
||||
background-position: -@icon-width*29 @icon-normal-top;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
|
||||
@ -111,7 +111,8 @@ define([], function () {
|
||||
if (cmd && cmd.referer == "ace-editor") {
|
||||
switch (cmd.command) {
|
||||
case 'changeValue':
|
||||
this.fireEvent('change', cmd.data);
|
||||
data = cmd.data || {};
|
||||
this.fireEvent('change', data.value, data.pos);
|
||||
break;
|
||||
case 'aceEditorReady':
|
||||
this.fireEvent('ready', cmd.data);
|
||||
@ -126,13 +127,14 @@ define([], function () {
|
||||
this.loadMask.hide();
|
||||
},
|
||||
|
||||
setValue: function(value, readonly) {
|
||||
setValue: function(value, currentPos, readonly) {
|
||||
this._postMessage(this.iframe.contentWindow, {
|
||||
command: 'setValue',
|
||||
referer: 'ace-editor',
|
||||
data: {
|
||||
value: value,
|
||||
readonly: readonly
|
||||
readonly: readonly,
|
||||
currentPos: currentPos
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@ -148,6 +148,10 @@ define([
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setCaption: function(text) {
|
||||
this.$label.find('.caption').text(text);
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -77,7 +77,7 @@ define([
|
||||
template: _.template([
|
||||
'<div id="<%= id %>" class="asc-loadmask-body <%= cls %>" role="presentation" tabindex="-1">',
|
||||
'<i id="loadmask-spinner" class="asc-loadmask-image"></i>',
|
||||
'<div class="asc-loadmask-title"><%= title %></div>',
|
||||
'<div class="asc-loadmask-title"><%- title %></div>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
||||
@ -129,7 +129,7 @@ define([
|
||||
var me = this;
|
||||
if (me.title != me.options.title) {
|
||||
me.options.title = me.title;
|
||||
$('.asc-loadmask-title', this.loaderEl).html(me.title);
|
||||
$('.asc-loadmask-title', this.loaderEl).html(Common.Utils.String.htmlEncode(me.title));
|
||||
}
|
||||
|
||||
if (immediately) {
|
||||
@ -168,7 +168,7 @@ define([
|
||||
|
||||
if (this.ownerEl && this.ownerEl.hasloader && this.loaderEl){
|
||||
var el = $('.asc-loadmask-title', this.loaderEl);
|
||||
el.html(title);
|
||||
el.html(Common.Utils.String.htmlEncode(title));
|
||||
this.loaderEl.css('min-width', el.width() + 105);
|
||||
}
|
||||
},
|
||||
|
||||
@ -87,6 +87,7 @@ define([
|
||||
this.textButton = this.options.textButton || this.textGotIt;
|
||||
this.textHeader = this.options.textHeader || '';
|
||||
this.position = this.options.position; // show in the position relative to target
|
||||
this.offset = this.options.offset; // shift from target
|
||||
this.style = this.options.style || '';
|
||||
this.automove = this.options.automove;
|
||||
this.binding = {};
|
||||
@ -132,7 +133,8 @@ define([
|
||||
|
||||
applyPlacement: function () {
|
||||
var target = this.target && this.target.length>0 ? this.target : $(document.body);
|
||||
var showxy = Common.Utils.getOffset(target);
|
||||
var showxy = Common.Utils.getOffset(target),
|
||||
offset = this.offset || {x: 0, y: 0};
|
||||
if (this.placement=='target' && !this.position) {
|
||||
this.cmpEl.css({top : showxy.top + 5 + 'px', left: showxy.left + 5 + 'px'});
|
||||
return;
|
||||
@ -158,31 +160,31 @@ define([
|
||||
var top, left, bottom, right;
|
||||
var pos = placement[0];
|
||||
if (pos=='top') {
|
||||
bottom = Common.Utils.innerHeight() - showxy.top;
|
||||
bottom = Common.Utils.innerHeight() - showxy.top + offset.y;
|
||||
} else if (pos == 'bottom') {
|
||||
top = showxy.top + target.height();
|
||||
top = showxy.top + target.height() + offset.y;
|
||||
} else if (pos == 'left') {
|
||||
right = Common.Utils.innerWidth() - showxy.left;
|
||||
right = Common.Utils.innerWidth() - showxy.left + offset.x;
|
||||
} else if (pos == 'right') {
|
||||
left = showxy.left + target.width();
|
||||
left = showxy.left + target.width() + offset.x;
|
||||
}
|
||||
pos = placement[1];
|
||||
if (pos=='top') {
|
||||
bottom = Common.Utils.innerHeight() - showxy.top - target.height()/2;
|
||||
bottom = Common.Utils.innerHeight() - showxy.top - target.height()/2 + offset.y;
|
||||
} else if (pos == 'bottom') {
|
||||
top = showxy.top + target.height()/2;
|
||||
top = showxy.top + target.height()/2 + offset.y;
|
||||
var height = this.cmpEl.height();
|
||||
if (top+height>Common.Utils.innerHeight())
|
||||
top = Common.Utils.innerHeight() - height - 10;
|
||||
} else if (pos == 'left') {
|
||||
right = Common.Utils.innerWidth() - showxy.left - target.width()/2;
|
||||
right = Common.Utils.innerWidth() - showxy.left - target.width()/2 + offset.x;
|
||||
} else if (pos == 'right') {
|
||||
left = showxy.left + target.width()/2;
|
||||
left = showxy.left + target.width()/2 + offset.x;
|
||||
} else {
|
||||
if (bottom!==undefined || top!==undefined)
|
||||
left = showxy.left + (target.width() - this.cmpEl.width())/2;
|
||||
left = showxy.left + (target.width() - this.cmpEl.width())/2 + offset.x;
|
||||
else
|
||||
top = showxy.top + (target.height() - this.cmpEl.height())/2;
|
||||
top = showxy.top + (target.height() - this.cmpEl.height())/2 + offset.y;
|
||||
}
|
||||
top = (top!==undefined) ? (top + 'px') : 'auto';
|
||||
bottom = (bottom!==undefined) ? (bottom + 'px') : 'auto';
|
||||
@ -220,6 +222,8 @@ define([
|
||||
// 'step': {
|
||||
// name: 'localstorage-id', // (or undefined when don't save option to localstorage) save 1 to localstorage to not show message again
|
||||
// placement: 'bottom',
|
||||
// position: '',
|
||||
// offset: {x: 0, y: 0}
|
||||
// text: '',
|
||||
// header: '',
|
||||
// target: '#id', // string or $el
|
||||
@ -316,6 +320,8 @@ define([
|
||||
extCls: 'colored' + (props.extCls ? ' ' + props.extCls : '') + (props.noHighlight ? ' no-arrow' : ''),
|
||||
style: 'min-width:200px;max-width:' + (props.maxwidth ? props.maxwidth + (typeof props.maxwidth === 'number' ? 'px;' : ';') : '250px;'),
|
||||
placement: placement,
|
||||
position: props.position,
|
||||
offset: props.offset,
|
||||
target: targetEl,
|
||||
text: props.text,
|
||||
textHeader: props.header,
|
||||
|
||||
@ -514,11 +514,13 @@ define([
|
||||
|
||||
if (!options.dontshow) body.css('padding-bottom', '10px');
|
||||
|
||||
if (options.maxwidth && options.width=='auto') {
|
||||
if ((options.maxwidth || options.minwidth) && options.width=='auto') {
|
||||
var width = !Common.UI.isRTL() ? (Common.Utils.getPosition(text).left + text.width() + parseInt(text_cnt.css('padding-right'))) :
|
||||
(parseInt(text_cnt.css('padding-right')) + icon_width + text.width() + parseInt(text_cnt.css('padding-left')));
|
||||
if (width > options.maxwidth)
|
||||
if (options.maxwidth && width > options.maxwidth)
|
||||
options.width = options.maxwidth;
|
||||
else if (options.minwidth && width < options.minwidth)
|
||||
options.width = options.minwidth;
|
||||
}
|
||||
if (options.width=='auto') {
|
||||
text_cnt.height(Math.max(text.height(), icon_height) + ((check.length>0) ? (check.height() + parseInt(check.css('margin-top'))) : 0));
|
||||
@ -704,6 +706,8 @@ define([
|
||||
this.$window.find('.tool.help').on('click', _.bind(dohelp, this));
|
||||
if (!this.initConfig.modal)
|
||||
Common.Gateway.on('processmouse', _.bind(_onProcessMouse, this));
|
||||
var tools = this.$window.find('.tools .tool').length;
|
||||
(tools>0) && this.$window.find('> .header > .title').css({'padding-right': tools * 20 + 'px', 'padding-left': tools * 20 + 'px'});
|
||||
} else {
|
||||
this.$window.find('.body').css({
|
||||
top:0,
|
||||
|
||||
@ -162,8 +162,7 @@ define([
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
usersStore[usersStore.size() > 0 ? 'add' : 'reset'](arrUsers);
|
||||
usersStore.reset(arrUsers);
|
||||
arrIds.length && Common.UI.ExternalUsers.get('info', arrIds);
|
||||
}
|
||||
},
|
||||
|
||||
@ -996,7 +996,7 @@ define([
|
||||
this.getPopover().saveText();
|
||||
this.getPopover().hideTips();
|
||||
|
||||
if (posY < 0 || this.getPopover().sdkBounds.height < posY || (!_.isUndefined(leftX) && this.getPopover().sdkBounds.width < leftX)) {
|
||||
if (posY < 0 || this.getPopover().sdkBounds.outerHeight < posY || (!_.isUndefined(leftX) && this.getPopover().sdkBounds.width < leftX)) {
|
||||
this.getPopover().hide();
|
||||
} else {
|
||||
if (this.isModeChanged)
|
||||
|
||||
@ -272,6 +272,7 @@ define([
|
||||
!!titlebuttons['undo'] && (info.hints['undo'] = titlebuttons['undo'].btn.btnEl.attr('data-hint-title-lang'));
|
||||
!!titlebuttons['redo'] && (info.hints['redo'] = titlebuttons['redo'].btn.btnEl.attr('data-hint-title-lang'));
|
||||
!!titlebuttons['save'] && (info.hints['save'] = titlebuttons['save'].btn.btnEl.attr('data-hint-title-lang'));
|
||||
!!titlebuttons['startover'] && (info.hints['startover'] = titlebuttons['startover'].btn.btnEl.attr('data-hint-title-lang'));
|
||||
}
|
||||
|
||||
native.execCommand('althints:show', JSON.stringify(info));
|
||||
@ -483,6 +484,10 @@ define([
|
||||
if (!!header.btnRedo)
|
||||
titlebuttons['redo'] = {btn: header.btnRedo};
|
||||
|
||||
if (!!header.btnStartOver) {
|
||||
titlebuttons['startover'] = {btn: header.btnStartOver};
|
||||
}
|
||||
|
||||
if (!!header.btnQuickAccess)
|
||||
titlebuttons['quickaccess'] = {btn: header.btnQuickAccess};
|
||||
|
||||
@ -552,7 +557,8 @@ define([
|
||||
// if ( native.features.opentemplate )
|
||||
{
|
||||
const filemenu = webapp.getController('LeftMenu').leftMenu.getMenu('file');
|
||||
if ( filemenu.miNew.visible ) {
|
||||
const cancreatenew = webapp.getController('Main').appOptions.canCreateNew;
|
||||
if ( filemenu.miNew.visible && !!cancreatenew ) {
|
||||
const miNewFromTemplate = new Common.UI.MenuItem({
|
||||
el: $('<li id="fm-btn-create-fromtpl" class="fm-btn"></li>'),
|
||||
action: 'create:fromtemplate',
|
||||
@ -757,7 +763,8 @@ define([
|
||||
const FILE_DOCUMENT = 0x0040,
|
||||
FILE_PRESENTATION = 0x0080,
|
||||
FILE_SPREADSHEET = 0x0100,
|
||||
FILE_CROSSPLATFORM = 0x0200;
|
||||
FILE_CROSSPLATFORM = 0x0200,
|
||||
FILE_DRAW = 0x4000;
|
||||
|
||||
const utils = {};
|
||||
utils.defines = {}
|
||||
@ -784,6 +791,9 @@ define([
|
||||
FILE_DOCUMENT_OFORM: FILE_DOCUMENT + 0x0015,
|
||||
FILE_DOCUMENT_DOCXF: FILE_DOCUMENT + 0x0016,
|
||||
FILE_DOCUMENT_OFORM_PDF: FILE_DOCUMENT + 0x0017,
|
||||
FILE_DOCUMENT_PAGES: FILE_DOCUMENT + 0x0018,
|
||||
FILE_DOCUMENT_HWP: FILE_DOCUMENT + 0x0019,
|
||||
FILE_DOCUMENT_HWPX: FILE_DOCUMENT + 0x0020,
|
||||
FILE_DOCUMENT_XML: FILE_DOCUMENT + 0x0030,
|
||||
|
||||
FILE_PRESENTATION: FILE_PRESENTATION,
|
||||
@ -797,6 +807,7 @@ define([
|
||||
FILE_PRESENTATION_POTM: FILE_PRESENTATION + 0x0008,
|
||||
FILE_PRESENTATION_ODP_FLAT: FILE_PRESENTATION + 0x0009,
|
||||
FILE_PRESENTATION_OTP: FILE_PRESENTATION + 0x000a,
|
||||
FILE_PRESENTATION_KEY: FILE_PRESENTATION + 0x000d,
|
||||
|
||||
FILE_SPREADSHEET: FILE_SPREADSHEET,
|
||||
FILE_SPREADSHEET_XLSX: FILE_SPREADSHEET + 0x0001,
|
||||
@ -809,13 +820,22 @@ define([
|
||||
FILE_SPREADSHEET_XLSB: FILE_SPREADSHEET + 0x0008,
|
||||
FILE_SPREADSHEET_ODS_FLAT: FILE_SPREADSHEET + 0x0009,
|
||||
FILE_SPREADSHEET_OTS: FILE_SPREADSHEET + 0x000a,
|
||||
FILE_SPREADSHEET_NUMBERS: FILE_SPREADSHEET + 0x000d,
|
||||
|
||||
FILE_CROSSPLATFORM: FILE_CROSSPLATFORM,
|
||||
FILE_CROSSPLATFORM_PDF: FILE_CROSSPLATFORM + 0x0001,
|
||||
FILE_CROSSPLATFORM_SWF: FILE_CROSSPLATFORM + 0x0002,
|
||||
FILE_CROSSPLATFORM_DJVU: FILE_CROSSPLATFORM + 0x0003,
|
||||
FILE_CROSSPLATFORM_XPS: FILE_CROSSPLATFORM + 0x0004,
|
||||
FILE_CROSSPLATFORM_PDFA: FILE_CROSSPLATFORM + 0x0009
|
||||
FILE_CROSSPLATFORM_PDFA: FILE_CROSSPLATFORM + 0x0009,
|
||||
|
||||
FILE_DRAW: FILE_DRAW,
|
||||
FILE_DRAW_VSDX: FILE_DRAW + 0x0001,
|
||||
FILE_DRAW_VSSX: FILE_DRAW + 0x0002,
|
||||
FILE_DRAW_VSTX: FILE_DRAW + 0x0003,
|
||||
FILE_DRAW_VSDM: FILE_DRAW + 0x0004,
|
||||
FILE_DRAW_VSSM: FILE_DRAW + 0x0005,
|
||||
FILE_DRAW_VSTM: FILE_DRAW + 0x0006,
|
||||
};
|
||||
|
||||
utils.parseFileFormat = function(format) {
|
||||
@ -838,6 +858,9 @@ define([
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_ODT_FLAT: return 'fodt';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_DOTM: return 'dotm';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_XML: return 'xml';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_PAGES: return 'pages';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_HWP: return 'hwpx';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_HWPX: return 'hwp';
|
||||
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_XLS: return 'xls';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_XLTX: return 'xltx';
|
||||
@ -849,6 +872,7 @@ define([
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_XLTM: return 'xltm';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_XLSM: return 'xlsm';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_ODS_FLAT:return 'fods';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_NUMBERS: return 'numbers';
|
||||
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_PPT: return 'ppt';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_POTX: return 'potx';
|
||||
@ -860,11 +884,19 @@ define([
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_PPSM: return 'ppsm';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_POTM: return 'potm';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_ODP_FLAT: return 'fodp';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_KEY: return 'key';
|
||||
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_PDFA:
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_PDF: return 'pdf';
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_DJVU: return 'djvu';
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_XPS: return 'xps';
|
||||
|
||||
case utils.defines.FileFormat.FILE_DRAW_VSTX:
|
||||
case utils.defines.FileFormat.FILE_DRAW_VSSX:
|
||||
case utils.defines.FileFormat.FILE_DRAW_VSDM:
|
||||
case utils.defines.FileFormat.FILE_DRAW_VSSM:
|
||||
case utils.defines.FileFormat.FILE_DRAW_VSTM:
|
||||
case utils.defines.FileFormat.FILE_DRAW_VSDX: return 'vsdx';
|
||||
}
|
||||
|
||||
return '';
|
||||
@ -892,6 +924,14 @@ define([
|
||||
t == utils.defines.FileFormat.FILE_CROSSPLATFORM_PDF ||
|
||||
t == utils.defines.FileFormat.FILE_CROSSPLATFORM_DJVU ||
|
||||
t == utils.defines.FileFormat.FILE_CROSSPLATFORM_XPS;
|
||||
} else
|
||||
if ( window.VE ) {
|
||||
return t == utils.defines.FileFormat.FILE_DRAW_VSDX ||
|
||||
t == utils.defines.FileFormat.FILE_DRAW_VSDM ||
|
||||
t == utils.defines.FileFormat.FILE_DRAW_VSTX ||
|
||||
t == utils.defines.FileFormat.FILE_DRAW_VSTM ||
|
||||
t == utils.defines.FileFormat.FILE_DRAW_VSSX ||
|
||||
t == utils.defines.FileFormat.FILE_DRAW_VSSM;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@ -71,8 +71,14 @@ define([
|
||||
onLaunch: function () {
|
||||
this._state = {};
|
||||
|
||||
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
|
||||
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
|
||||
Common.NotificationCenter.on({
|
||||
'draw-tool:pen': this.startDraw.bind(this),
|
||||
'draw-tool:eraser': this.startEraser.bind(this),
|
||||
'draw-tool:select': this.stopDraw.bind(this),
|
||||
'draw-tool:erase-all': this.onEraseAllInksOnSlide.bind(this),
|
||||
'app:ready': this.onAppReady.bind(this),
|
||||
'api:disconnect': _.bind(this.onCoAuthoringDisconnect, this)
|
||||
});
|
||||
},
|
||||
|
||||
setConfig: function (data, api) {
|
||||
@ -115,34 +121,53 @@ define([
|
||||
Common.NotificationCenter.trigger('edit:complete', this.view);
|
||||
},
|
||||
|
||||
startEraser: function() {
|
||||
this.api && this.api.asc_StartInkEraser();
|
||||
Common.NotificationCenter.trigger('draw:start', this.view);
|
||||
},
|
||||
|
||||
onEraser: function(btn){
|
||||
if (this.api) {
|
||||
if (!btn.pressed)
|
||||
this.api.asc_StopInkDrawer();
|
||||
else {
|
||||
this.view.depressButtons(btn);
|
||||
this.api.asc_StartInkEraser();
|
||||
Common.NotificationCenter.trigger('draw:start', this.view);
|
||||
this.startEraser();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onEraseAllInksOnSlide: function() {
|
||||
this.api && this.api.asc_EraseAllInksOnSlide();
|
||||
},
|
||||
|
||||
startDraw: function(options) {
|
||||
if (!this.api) { return; }
|
||||
var stroke = new Asc.asc_CStroke();
|
||||
stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR);
|
||||
stroke.put_color(Common.Utils.ThemeColor.getRgbColor(options.color));
|
||||
stroke.asc_putPrstDash(Asc.c_oDashType.solid);
|
||||
stroke.put_width(options.size);
|
||||
stroke.put_transparent(options.opacity * 2.55);
|
||||
this.api.asc_StartDrawInk(stroke, options.index);
|
||||
Common.NotificationCenter.trigger('draw:start', this.view);
|
||||
},
|
||||
|
||||
stopDraw: function() {
|
||||
this.api && this.api.asc_StopInkDrawer();
|
||||
Common.NotificationCenter.trigger('draw:stop', this.view);
|
||||
},
|
||||
|
||||
onDrawPen: function(btn){
|
||||
if (this.api) {
|
||||
if (!btn.pressed)
|
||||
this.api.asc_StopInkDrawer();
|
||||
else {
|
||||
this.view.depressButtons(btn);
|
||||
|
||||
var options = btn.options.penOptions;
|
||||
var stroke = new Asc.asc_CStroke();
|
||||
stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR);
|
||||
stroke.put_color(Common.Utils.ThemeColor.getRgbColor(options.color));
|
||||
stroke.asc_putPrstDash(Asc.c_oDashType.solid);
|
||||
stroke.put_width(options.size.arr[options.size.idx]);
|
||||
stroke.put_transparent(options.opacity * 2.55);
|
||||
this.api.asc_StartDrawInk(stroke, options.idx);
|
||||
Common.NotificationCenter.trigger('draw:start', this.view);
|
||||
var options = _.clone(btn.options.penOptions);
|
||||
options.size = options.size.arr[options.size.idx];
|
||||
options.index = options.idx;
|
||||
this.startDraw(options);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -291,7 +291,6 @@ define([
|
||||
onShowBeforeButtonMenu: function() {
|
||||
if(this.api && this.panelHistory.chHighlightDeleted) {
|
||||
this.panelHistory.chHighlightDeleted.setChecked(this.api.asc_isShowedDeletedTextInVersionHistory(), true);
|
||||
Common.UI.TooltipManager.closeTip('textDeleted');
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -109,6 +109,7 @@ define([
|
||||
});
|
||||
|
||||
this.autostart = [];
|
||||
this.pluginsWinToShow = [];
|
||||
this.startOnPostLoad = false;
|
||||
this.customPluginsDlg = [];
|
||||
|
||||
@ -128,7 +129,7 @@ define([
|
||||
loadConfig: function(data) {
|
||||
var me = this;
|
||||
me.configPlugins.config = data.config.plugins;
|
||||
me.editor = !!window.PDFE ? 'pdf' : !!window.DE ? 'word' : !!window.PE ? 'slide' : !!window.VE ? 'visio' : 'cell';
|
||||
me.editor = !!window.PDFE ? 'pdf' : !!window.DE ? 'word' : !!window.PE ? 'slide' : !!window.VE ? 'diagram' : 'cell';
|
||||
me.isPDFEditor = !!window.PDFE;
|
||||
},
|
||||
|
||||
@ -215,9 +216,9 @@ define([
|
||||
return this;
|
||||
},
|
||||
|
||||
onAfterRender: function(panel, guid) {
|
||||
onAfterRender: function(panel, guid, isActivated) {
|
||||
var me = this;
|
||||
this.openUIPlugin(guid);
|
||||
isActivated && this.openUIPlugin(guid);
|
||||
panel.pluginClose.on('click', _.bind(this.onToolClose, this, panel));
|
||||
Common.NotificationCenter.on({
|
||||
'layout:resizestart': function(e) {
|
||||
@ -644,7 +645,7 @@ define([
|
||||
el: '#panel-plugins-' + name,
|
||||
menu: menu
|
||||
});
|
||||
this.viewPlugins.pluginPanels[pluginGuid].on('render:after', _.bind(this.onAfterRender, this, this.viewPlugins.pluginPanels[pluginGuid], pluginGuid));
|
||||
this.viewPlugins.pluginPanels[pluginGuid].on('render:after', _.bind(this.onAfterRender, this, this.viewPlugins.pluginPanels[pluginGuid], pluginGuid, true));
|
||||
},
|
||||
|
||||
openUIPlugin: function (id) {
|
||||
@ -854,7 +855,7 @@ define([
|
||||
isDisplayedInViewer = false,
|
||||
isBackgroundPlugin = false,
|
||||
isSystem;
|
||||
item.variations.forEach(function(itemVar, itemInd){
|
||||
item.variations && item.variations.forEach(function(itemVar, itemInd){
|
||||
var variationType = Asc.PluginType.getType(itemVar.type);
|
||||
isSystem = (true === itemVar.isSystem) || (Asc.PluginType.System === variationType);
|
||||
var visible = (isEdit || itemVar.isViewer && (itemVar.isDisplayedInViewer!==false)) && _.contains(itemVar.EditorsSupport, editor) && !isSystem;
|
||||
@ -1111,6 +1112,10 @@ define([
|
||||
|
||||
// Plugin can create windows
|
||||
onPluginWindowShow: function(frameId, variation) {
|
||||
if (!Common.Controllers.LaunchController.isScriptLoaded()) {
|
||||
this.pluginsWinToShow.push({frameId: frameId, variation: variation});
|
||||
return;
|
||||
}
|
||||
if (variation.isVisual) {
|
||||
if (this.customPluginsDlg[frameId] || this.viewPlugins.customPluginPanels[frameId]) return;
|
||||
|
||||
@ -1187,9 +1192,18 @@ define([
|
||||
me.customPluginsDlg[frameId].show();
|
||||
}
|
||||
}
|
||||
if (this.pluginsWinToShow.length>0) {
|
||||
let plg = this.pluginsWinToShow.shift();
|
||||
plg && this.onPluginWindowShow(plg.frameId, plg.variation);
|
||||
}
|
||||
},
|
||||
|
||||
onPluginWindowClose: function(frameId) {
|
||||
if (this.pluginsWinToShow.length>0) {
|
||||
this.pluginsWinToShow = _.reject(this.pluginsWinToShow, function (item) {
|
||||
return item.frameId === frameId;
|
||||
});
|
||||
}
|
||||
if (this.customPluginsDlg[frameId]) {
|
||||
this.customPluginsDlg[frameId].close();
|
||||
} else if (this.viewPlugins.customPluginPanels[frameId]) {
|
||||
@ -1222,10 +1236,11 @@ define([
|
||||
if (typeof variation.descriptionLocale == 'object')
|
||||
description = variation.descriptionLocale[lang] || variation.descriptionLocale['en'] || description || '';
|
||||
|
||||
var baseUrl = variation.baseUrl || "";
|
||||
var model = this.viewPlugins.storePlugins.findWhere({guid: guid});
|
||||
var icons = variation.icons;
|
||||
var icon_url, icon_cls;
|
||||
var baseUrl = variation.baseUrl || "",
|
||||
model = this.viewPlugins.storePlugins.findWhere({guid: guid}),
|
||||
icons = variation.icons,
|
||||
icon_url, icon_cls,
|
||||
isActivated = variation.isActivated!==false;
|
||||
|
||||
if (model) {
|
||||
if ("" === baseUrl)
|
||||
@ -1265,7 +1280,7 @@ define([
|
||||
baseUrl: baseUrl,
|
||||
icons: icons
|
||||
});
|
||||
this.viewPlugins.customPluginPanels[frameId].on('render:after', _.bind(this.onAfterRender, this, this.viewPlugins.customPluginPanels[frameId], frameId));
|
||||
this.viewPlugins.customPluginPanels[frameId].on('render:after', _.bind(this.onAfterRender, this, this.viewPlugins.customPluginPanels[frameId], frameId, isActivated));
|
||||
|
||||
if (!this.viewPlugins.customPluginPanels[frameId].openInsideMode(description, variation.url, frameId, guid))
|
||||
this.api.asc_pluginButtonClick(-1, guid, frameId);
|
||||
@ -1318,6 +1333,10 @@ define([
|
||||
},
|
||||
|
||||
onPostLoadComplete: function() {
|
||||
if (this.pluginsWinToShow.length>0) {
|
||||
let plg = this.pluginsWinToShow.shift();
|
||||
plg && this.onPluginWindowShow(plg.frameId, plg.variation);
|
||||
}
|
||||
this.startOnPostLoad && this.runAutoStartPlugins();
|
||||
},
|
||||
|
||||
|
||||
@ -294,7 +294,7 @@ define([
|
||||
saveTxtReplyId = '';
|
||||
|
||||
if (this.getPopover()) {
|
||||
if (posY < 0 || this.getPopover().sdkBounds.height < posY) {
|
||||
if (posY < 0 || this.getPopover().sdkBounds.outerHeight < posY) {
|
||||
this.getPopover().hide();
|
||||
} else if (this.popoverChanges.length>0) {
|
||||
if (!this.getPopover().isVisible())
|
||||
@ -717,22 +717,7 @@ define([
|
||||
} else if (item === 'storage') {
|
||||
Common.NotificationCenter.trigger('storage:document-load', 'compare');
|
||||
} else if (item === 'settings') {
|
||||
var value = me._state.compareSettings ? me._state.compareSettings.getWords() : true;
|
||||
(new Common.Views.OptionsDialog({
|
||||
title: me.textTitleComparison,
|
||||
items: [
|
||||
{caption: me.textChar, value: false, checked: (value===false)},
|
||||
{caption: me.textWord, value: true, checked: (value!==false)}
|
||||
],
|
||||
label: me.textShow,
|
||||
handler: function (dlg, result) {
|
||||
if (result=='ok') {
|
||||
me._state.compareSettings = new AscCommonWord.ComparisonOptions();
|
||||
me._state.compareSettings.putWords(dlg.getSettings());
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
|
||||
}
|
||||
})).show();
|
||||
me.onCompareSettings();
|
||||
}
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete', this.view);
|
||||
@ -765,11 +750,33 @@ define([
|
||||
})).show();
|
||||
} else if (item === 'storage') {
|
||||
Common.NotificationCenter.trigger('storage:document-load', 'combine');
|
||||
} else if (item === 'settings') {
|
||||
me.onCompareSettings();
|
||||
}
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete', this.view);
|
||||
},
|
||||
|
||||
onCompareSettings: function() {
|
||||
var me = this,
|
||||
value = me._state.compareSettings ? me._state.compareSettings.getWords() : true;
|
||||
(new Common.Views.OptionsDialog({
|
||||
title: me.textTitleComparison,
|
||||
items: [
|
||||
{caption: me.textChar, value: false, checked: (value===false)},
|
||||
{caption: me.textWord, value: true, checked: (value!==false)}
|
||||
],
|
||||
label: me.textShow,
|
||||
handler: function (dlg, result) {
|
||||
if (result=='ok') {
|
||||
me._state.compareSettings = new AscCommonWord.ComparisonOptions();
|
||||
me._state.compareSettings.putWords(dlg.getSettings());
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
|
||||
}
|
||||
})).show();
|
||||
},
|
||||
|
||||
setRevisedFile: function(data) {
|
||||
data && (data.c = 'compare');
|
||||
this.setRequestedDocument(data);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
+function registerServiceWorker() {
|
||||
if ('serviceWorker' in navigator) {
|
||||
if ('serviceWorker' in navigator && !(window.location.origin.lastIndexOf('file://', 0) === 0)) {
|
||||
const serviceWorkerName = 'document_editor_service_worker.js';
|
||||
const serviceWorkerPath = '../../../../' + serviceWorkerName;
|
||||
let reg;
|
||||
|
||||
@ -60,7 +60,7 @@ if ( window.nativeprocvars && window.nativeprocvars.rtl !== undefined ) {
|
||||
else ui_rtl = true;
|
||||
}
|
||||
|
||||
if ( ui_rtl && isIEBrowser !== true ) {
|
||||
if ( ui_rtl && window.isIEBrowser !== true ) {
|
||||
document.body.setAttribute('dir', 'rtl');
|
||||
document.body.classList.add('rtl');
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ define([], function () {
|
||||
"screen and (min-resolution: 2.25dppx), screen and (min-resolution: 216dpi)";
|
||||
|
||||
if (window.matchMedia(str_mq_125).matches) {
|
||||
scale.devicePixelRatio = 1.5;
|
||||
scale.devicePixelRatio = 1.25;
|
||||
} else if (window.matchMedia(str_mq_150).matches) {
|
||||
scale.devicePixelRatio = 1.5;
|
||||
} else if (window.matchMedia(str_mq_175).matches) {
|
||||
|
||||
@ -62,6 +62,7 @@ define([], function () { 'use strict';
|
||||
'<div class="padding-small" id="quick-access-chb-quick-print" style="display:none;"></div>',
|
||||
'<div class="padding-small" id="quick-access-chb-undo"></div>',
|
||||
'<div class="padding-small" id="quick-access-chb-redo"></div>',
|
||||
'<div class="padding-small" id="quick-access-chb-start-over" style="display:none;"></div>',
|
||||
'</div>'
|
||||
].join('');
|
||||
|
||||
@ -120,6 +121,16 @@ define([], function () { 'use strict';
|
||||
value: this.props.redo
|
||||
});
|
||||
this.focusedComponents.push(this.chRedo);
|
||||
|
||||
if (!!window.PE) {
|
||||
this.chStartOver = new Common.UI.CheckBox({
|
||||
el: $('#quick-access-chb-start-over'),
|
||||
labelText: this.textStartOver,
|
||||
value: this.props.startOver
|
||||
});
|
||||
this.focusedComponents.push(this.chStartOver);
|
||||
this.chStartOver.show();
|
||||
}
|
||||
},
|
||||
|
||||
getFocusedComponents: function() {
|
||||
@ -137,7 +148,8 @@ define([], function () { 'use strict';
|
||||
print: this.chPrint ? this.chPrint.getValue() === 'checked' : undefined,
|
||||
quickPrint: this.chQuickPrint ? this.chQuickPrint.getValue() === 'checked' : undefined,
|
||||
undo: this.chUndo.getValue() === 'checked',
|
||||
redo: this.chRedo.getValue() === 'checked'
|
||||
redo: this.chRedo.getValue() === 'checked',
|
||||
startOver: this.chStartOver ? this.chStartOver.getValue() === 'checked' : undefined
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -110,8 +110,9 @@ define([
|
||||
'249B01', 'C504D2', '0633D1', 'FFF7A0', 'FF0303', 'FFFFFF', 'D3D3D4', '969696', '606060', '000000'
|
||||
]}
|
||||
],
|
||||
lock = (this.appPrefix === 'de-') ? [_set.headerLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.viewMode] :
|
||||
lock = (this.appPrefix === 'de-') ? [_set.headerLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockViewIns, _set.docLockForms, _set.docLockCommentsIns, _set.viewMode] :
|
||||
(this.appPrefix === 'pe-') ? [_set.slideDeleted, _set.lostConnect, _set.noSlides] :
|
||||
(this.appPrefix === 'pdfe-') ? [_set.pageDeleted, _set.lostConnect] :
|
||||
[_set.editCell, _set.lostConnect, _set.coAuth, _set['Objects']],
|
||||
me = this;
|
||||
penOptions.forEach(function (props) {
|
||||
|
||||
@ -54,6 +54,7 @@ define([
|
||||
var isPDFEditor = !!window.PDFE,
|
||||
isDocEditor = !!window.DE,
|
||||
isSSEEditor = !!window.SSE,
|
||||
isPEEditor = !!window.PE,
|
||||
isVisioEditor = !!window.VE;
|
||||
|
||||
var templateUserItem =
|
||||
@ -88,6 +89,7 @@ define([
|
||||
'<div class="hedset">' +
|
||||
'<div class="btn-slot margin-right-2" id="slot-btn-header-form-submit"></div>' +
|
||||
'<div class="btn-slot margin-right-2" id="slot-btn-start-fill"></div>' +
|
||||
'<div class="btn-slot margin-right-2 margin-left-5" id="slot-btn-fill-status"></div>' +
|
||||
'</div>' +
|
||||
'<div class="hedset">' +
|
||||
'<div class="btn-slot" id="slot-hbtn-edit"></div>' +
|
||||
@ -149,6 +151,7 @@ define([
|
||||
'<div class="btn-slot" id="slot-btn-dt-print-quick"></div>' +
|
||||
'<div class="btn-slot" id="slot-btn-dt-undo"></div>' +
|
||||
'<div class="btn-slot" id="slot-btn-dt-redo"></div>' +
|
||||
'<div class="btn-slot" id="slot-btn-dt-start-over"></div>' +
|
||||
'<div class="btn-slot" id="slot-btn-dt-quick-access"></div>' +
|
||||
'</div>' +
|
||||
'<div class="lr-separator" id="id-box-doc-name">' +
|
||||
@ -205,10 +208,8 @@ define([
|
||||
if ( has_edit_users ) {
|
||||
$panelUsers['show']();
|
||||
$btnUsers.find('.caption').html(originalCount);
|
||||
isPDFEditor && appConfig && (appConfig.isPDFEdit || appConfig.isPDFAnnotate || appConfig.isPDFFill) && Common.UI.TooltipManager.showTip('pdfCoedit')
|
||||
} else {
|
||||
$panelUsers['hide']();
|
||||
isPDFEditor && appConfig && (appConfig.isPDFEdit || appConfig.isPDFAnnotate || appConfig.isPDFFill) && Common.UI.TooltipManager.closeTip('pdfCoedit')
|
||||
}
|
||||
updateDocNamePosition();
|
||||
}
|
||||
@ -227,7 +228,6 @@ define([
|
||||
|
||||
usertip.hide();
|
||||
}
|
||||
isPDFEditor && appConfig && (appConfig.isPDFEdit || appConfig.isPDFAnnotate || appConfig.isPDFFill) && Common.UI.TooltipManager.closeTip('pdfCoedit')
|
||||
}
|
||||
|
||||
function updateDocNamePosition(config) {
|
||||
@ -357,6 +357,10 @@ define([
|
||||
this.btnRedo[props.redo ? 'show' : 'hide']();
|
||||
Common.localStorage.setBool(this.appPrefix + 'quick-access-redo', props.redo);
|
||||
}
|
||||
if (props.startOver !== undefined) {
|
||||
this.btnStartOver[props.startOver ? 'show' : 'hide']();
|
||||
Common.localStorage.setBool(this.appPrefix + 'quick-access-start-over', props.startOver);
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete');
|
||||
|
||||
if ( caller && caller == 'header' )
|
||||
@ -397,13 +401,15 @@ define([
|
||||
updateDocNamePosition();
|
||||
}
|
||||
|
||||
if (me.btnStartFill) {
|
||||
Common.Gateway.on('startfilling', function() {
|
||||
me.btnStartFill.setVisible(false);
|
||||
updateDocNamePosition();
|
||||
});
|
||||
me.btnStartFill.on('click', function (e) {
|
||||
Common.Gateway.requestStartFilling();
|
||||
me.btnStartFill && me.btnStartFill.on('click', function (e) {
|
||||
Common.NotificationCenter.trigger('forms:request-fill');
|
||||
});
|
||||
|
||||
if (me.btnFillStatus) {
|
||||
me.btnFillStatus.updateHint(me.tipFillStatus);
|
||||
me.btnFillStatus && me.btnFillStatus.on('click', function (e) {
|
||||
Common.UI.TooltipManager.closeTip('showFillStatus');
|
||||
Common.Gateway.requestFillingStatus(appConfig.user.roles && appConfig.user.roles.length>0 ? appConfig.user.roles[0] : undefined);
|
||||
});
|
||||
}
|
||||
|
||||
@ -481,6 +487,13 @@ define([
|
||||
});
|
||||
}
|
||||
|
||||
if (me.btnStartOver) {
|
||||
me.btnStartOver.updateHint(me.tipStartOver + (Common.Utils.String.platformKey(Common.Utils.isMac ? 'Ctrl+Shift+enter' : 'Ctrl+F5')));
|
||||
me.btnStartOver.on('click', function (e) {
|
||||
me.fireEvent('startover', me);
|
||||
});
|
||||
}
|
||||
|
||||
if (me.btnQuickAccess) {
|
||||
me.btnQuickAccess.updateHint(me.tipCustomizeQuickAccessToolbar);
|
||||
var arr = [];
|
||||
@ -519,6 +532,13 @@ define([
|
||||
checkable: true
|
||||
});
|
||||
}
|
||||
if (me.btnStartOver) {
|
||||
arr.push({
|
||||
caption: me.textStartOver,
|
||||
value: 'startover',
|
||||
checkable: true
|
||||
});
|
||||
}
|
||||
me.btnQuickAccess.setMenu(new Common.UI.Menu({
|
||||
cls: 'ppm-toolbar',
|
||||
style: 'min-width: 110px;',
|
||||
@ -538,6 +558,9 @@ define([
|
||||
} else if (item.value === 'redo') {
|
||||
item.setChecked(Common.localStorage.getBool(me.appPrefix + 'quick-access-redo', true), true);
|
||||
}
|
||||
if (item.value === 'startover') {
|
||||
item.setChecked(Common.localStorage.getBool(me.appPrefix + 'quick-access-start-over', true), true);
|
||||
}
|
||||
});
|
||||
});
|
||||
me.btnQuickAccess.menu.on('item:click', function (menu, item) {
|
||||
@ -558,6 +581,9 @@ define([
|
||||
case 'redo':
|
||||
props.redo = item.checked;
|
||||
break;
|
||||
case 'startover':
|
||||
props.startOver = item.checked;
|
||||
break;
|
||||
}
|
||||
onChangeQuickAccess.call(me, 'header', props);
|
||||
});
|
||||
@ -979,7 +1005,7 @@ define([
|
||||
if (config.canStartFilling) {
|
||||
me.btnStartFill = new Common.UI.Button({
|
||||
cls: 'btn-text-default auto yellow',
|
||||
caption: me.textStartFill,
|
||||
caption: config.customization && config.customization.startFillingForm && config.customization.startFillingForm.text ? config.customization.startFillingForm.text : me.textStartFill,
|
||||
dataHint: '0',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'big'
|
||||
@ -989,6 +1015,14 @@ define([
|
||||
$html.find('#slot-btn-start-fill').hide();
|
||||
}
|
||||
|
||||
if (config.isPDFForm && config.canRequestFillingStatus) {
|
||||
me.btnFillStatus = new Common.UI.Button({
|
||||
cls: 'btn-header',
|
||||
iconCls: 'toolbar__icon icon--inverse btn-filling-status',
|
||||
});
|
||||
me.btnFillStatus.render($html.find('#slot-btn-fill-status'));
|
||||
}
|
||||
|
||||
$userList = $html.find('.cousers-list');
|
||||
$panelUsers = $html.find('.box-cousers');
|
||||
$btnUsers = $panelUsers.find('> .btn-users');
|
||||
@ -1044,6 +1078,10 @@ define([
|
||||
me.btnRedo = createTitleButton('toolbar__icon icon--inverse btn-redo', $html.findById('#slot-btn-dt-redo'), true, undefined, undefined, 'Y',
|
||||
[Common.enumLock.redoLock, Common.enumLock.fileMenuOpened, Common.enumLock.lostConnect]);
|
||||
!Common.localStorage.getBool(me.appPrefix + 'quick-access-redo', true) && me.btnRedo.hide();
|
||||
if (isPEEditor) {
|
||||
me.btnStartOver= createTitleButton('toolbar__icon icon--inverse btn-preview', $html.findById('#slot-btn-dt-start-over'), true, undefined, undefined, 'O');
|
||||
!Common.localStorage.getBool(me.appPrefix + 'quick-access-start-over', true) && me.btnStartOver.hide();
|
||||
}
|
||||
me.btnQuickAccess = new Common.UI.Button({
|
||||
cls: 'btn-header no-caret',
|
||||
iconCls: 'toolbar__icon icon--inverse btn-more',
|
||||
@ -1337,6 +1375,11 @@ define([
|
||||
this.setDocumentCaption(this.documentCaption);
|
||||
},
|
||||
|
||||
onStartFilling: function() {
|
||||
this.btnStartFill && this.btnStartFill.setVisible(false);
|
||||
updateDocNamePosition();
|
||||
},
|
||||
|
||||
textBack: 'Go to Documents',
|
||||
txtRename: 'Rename',
|
||||
txtAccessRights: 'Change access rights',
|
||||
@ -1394,7 +1437,8 @@ define([
|
||||
helpQuickAccessHeader: 'Customize Quick Access',
|
||||
ariaQuickAccessToolbar: 'Quick access toolbar',
|
||||
textAnnotateDesc: 'Fill forms or annotate',
|
||||
textDownload: 'Download'
|
||||
textDownload: 'Download',
|
||||
tipFillStatus: 'Filling status'
|
||||
}
|
||||
}(), Common.Views.Header || {}))
|
||||
});
|
||||
|
||||
@ -103,7 +103,8 @@ define([], function () {
|
||||
macrosItemMenuOpen: null,
|
||||
functionItemMenuOpen: null,
|
||||
currentElementMode: this.CurrentElementModeType.Macros,
|
||||
currentValue: ''
|
||||
currentValue: '',
|
||||
currentPos: {row: 2, column: 0}
|
||||
};
|
||||
|
||||
_options.tpl = _.template(this.template)({
|
||||
@ -259,19 +260,21 @@ define([], function () {
|
||||
this.codeEditor = new Common.UI.AceEditor({parentEl: '#code-editor'});
|
||||
this.codeEditor.on('ready', function() {
|
||||
me.codeEditor.updateTheme();
|
||||
me.codeEditor.setValue(me._state.currentValue);
|
||||
me.codeEditor.setValue(me._state.currentValue, me._state.currentPos);
|
||||
setTimeout(function() {
|
||||
me.aceContainer.removeClass('invisible');
|
||||
}, 10);
|
||||
// me.loadMask.hide();
|
||||
});
|
||||
this.codeEditor.on('change', function(value) {
|
||||
this.codeEditor.on('change', function(value, pos) {
|
||||
var selectedItem = me._state.currentElementMode === me.CurrentElementModeType.Macros
|
||||
? me.listMacros.getSelectedRec()
|
||||
: me.listFunctions.getSelectedRec();
|
||||
if(selectedItem) {
|
||||
me._state.currentValue = value;
|
||||
me._state.currentPos = pos;
|
||||
selectedItem.set('value', value);
|
||||
selectedItem.set('currentPos', pos);
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -313,6 +316,7 @@ define([], function () {
|
||||
if(macrosList.length > 0) {
|
||||
macrosList.forEach(function (macros) {
|
||||
macros.autostart = !!macros.autostart;
|
||||
macros.currentPos = {row: 2, column: 0};
|
||||
});
|
||||
this.listMacros.store.reset(macrosList);
|
||||
var selectItem = this.listMacros.store.at(data.current);
|
||||
@ -631,8 +635,9 @@ define([], function () {
|
||||
this.listMacros.store.add({
|
||||
guid: this.createGuid(),
|
||||
name : (macrosTextTranslate + " " + indexMax),
|
||||
value : "(function()\n{\n})();",
|
||||
autostart: false
|
||||
value : "(function()\n{\n\n})();",
|
||||
autostart: false,
|
||||
currentPos: {row: 2, column: 0}
|
||||
});
|
||||
this.listMacros.selectRecord(this.listMacros.store.at(-1));
|
||||
},
|
||||
@ -654,8 +659,9 @@ define([], function () {
|
||||
},
|
||||
onSelectListMacrosItem: function(listView, itemView, record) {
|
||||
this._state.currentElementMode = this.CurrentElementModeType.Macros;
|
||||
this.codeEditor.setValue(record.get('value'));
|
||||
this.codeEditor.setValue(record.get('value'), record.get('currentPos')!==undefined ? record.get('currentPos') : {row: 2, column: 0});
|
||||
this._state.currentValue = record.get('value');
|
||||
this._state.currentPos = record.get('currentPos');
|
||||
|
||||
this.btnMacrosRun.setDisabled(false);
|
||||
this.listFunctions && this.listFunctions.deselectAll();
|
||||
@ -747,7 +753,8 @@ define([], function () {
|
||||
this.listFunctions.store.add({
|
||||
guid: this.createGuid(),
|
||||
name : (macrosTextTranslate + " " + indexMax),
|
||||
value : "(function()\n{\n\t/**\n\t * Function that returns the argument\n\t * @customfunction\n\t * @param {any} arg Any data.\n * @returns {any} The argumet of the function.\n\t*/\n\tfunction myFunction(arg) {\n\t return arg;\n\t}\n\tApi.AddCustomFunction(myFunction);\n})();"
|
||||
value : "(function()\n{\n\t/**\n\t * Function that returns the argument\n\t * @customfunction\n\t * @param {any} arg Any data.\n * @returns {any} The argumet of the function.\n\t*/\n\tfunction myFunction(arg) {\n\t\t\n\t return arg;\n\t}\n\tApi.AddCustomFunction(myFunction);\n})();",
|
||||
currentPos: {row: 9, column: 2}
|
||||
});
|
||||
this.listFunctions.selectRecord(this.listFunctions.store.at(-1));
|
||||
},
|
||||
@ -769,7 +776,7 @@ define([], function () {
|
||||
},
|
||||
onSelectListFunctionItem: function(listView, itemView, record) {
|
||||
this._state.currentElementMode = this.CurrentElementModeType.CustomFunction;
|
||||
this.codeEditor.setValue(record.get('value'));
|
||||
this.codeEditor.setValue(record.get('value'), record.get('currentPos')!==undefined ? record.get('currentPos') : {row: 2, column: 0});
|
||||
|
||||
this.btnMacrosRun.setDisabled(true);
|
||||
|
||||
@ -777,7 +784,7 @@ define([], function () {
|
||||
},
|
||||
|
||||
onHelp: function() {
|
||||
window.open('https://api.onlyoffice.com/plugin/macros', '_blank')
|
||||
window.open('https://api.onlyoffice.com/docs/plugin-and-macros/macros/getting-started/', '_blank')
|
||||
},
|
||||
onBtnClick: function(event) {
|
||||
this._handleInput(event.currentTarget.attributes['result'].value);
|
||||
|
||||
@ -629,8 +629,8 @@ define([
|
||||
{caption: me.mniFromFile, value: 'file'},
|
||||
{caption: me.mniFromUrl, value: 'url'},
|
||||
{caption: me.mniFromStorage, value: 'storage'}
|
||||
// ,{caption: '--'},
|
||||
// {caption: me.mniSettings, value: 'settings'}
|
||||
,{caption: '--'},
|
||||
{caption: me.mniSettings, value: 'settings'}
|
||||
]
|
||||
}));
|
||||
me.btnCompare.menu.items[2].setVisible(me.appConfig.canRequestSelectDocument || me.appConfig.canRequestCompareFile || me.appConfig.fileChoiceUrl && me.appConfig.fileChoiceUrl.indexOf("{documentType}")>-1);
|
||||
@ -644,6 +644,8 @@ define([
|
||||
{caption: me.mniFromFile, value: 'file'},
|
||||
{caption: me.mniFromUrl, value: 'url'},
|
||||
{caption: me.mniFromStorage, value: 'storage'}
|
||||
,{caption: '--'},
|
||||
{caption: me.mniSettings, value: 'settings'}
|
||||
]
|
||||
}));
|
||||
me.btnCombine.menu.items[2].setVisible(me.appConfig.canRequestSelectDocument || me.appConfig.fileChoiceUrl && me.appConfig.fileChoiceUrl.indexOf("{documentType}")>-1);
|
||||
|
||||
@ -109,7 +109,7 @@ define([
|
||||
_options.tpl = _.template(this.template)(_options);
|
||||
|
||||
this.arrow = {margin: 20, width: 10, height: 30};
|
||||
this.sdkBounds = {width: 0, height: 0, padding: 10, paddingTop: 20};
|
||||
this.sdkBounds = {width: 0, height: 0, outerWidth: 0, outerHeight: 0, padding: 10, paddingTop: 20};
|
||||
|
||||
Common.UI.Window.prototype.initialize.call(this, _options);
|
||||
|
||||
@ -772,8 +772,8 @@ define([
|
||||
|
||||
this.$window.css({maxHeight: sdkBoundsHeight + 'px'});
|
||||
|
||||
this.sdkBounds.width = editorBounds.width;
|
||||
this.sdkBounds.height = editorBounds.height;
|
||||
this.sdkBounds.width = this.sdkBounds.outerWidth = editorBounds.width;
|
||||
this.sdkBounds.height = this.sdkBounds.outerHeight = editorBounds.height;
|
||||
|
||||
// LEFT CORNER
|
||||
|
||||
@ -861,10 +861,14 @@ define([
|
||||
topPos = Math.min(sdkBoundsTop + sdkBoundsHeight - outerHeight, this.arrowPosY + sdkBoundsTop - this.arrow.height);
|
||||
topPos = Math.max(topPos, sdkBoundsTopPos);
|
||||
|
||||
if (parseInt(arrowView.css('top')) + this.arrow.height > outerHeight) {
|
||||
arrowView.css({top: (outerHeight-this.arrow.height) + 'px'});
|
||||
var arrowPosY = 0;
|
||||
if (Math.ceil(sdkBoundsHeight) <= Math.ceil(outerHeight))
|
||||
arrowPosY = Math.min(arrowPosY, sdkBoundsHeight - (sdkPanelHeight + this.arrow.margin + this.arrow.height));
|
||||
else {
|
||||
arrowPosY = Math.max(this.arrow.margin, this.arrowPosY - (sdkBoundsHeight - outerHeight) - this.arrow.height);
|
||||
arrowPosY = Math.min(arrowPosY, outerHeight - this.arrow.margin - this.arrow.height);
|
||||
}
|
||||
|
||||
arrowView.css({top: arrowPosY + 'px'});
|
||||
this.$window.css('top', topPos + 'px');
|
||||
}
|
||||
}
|
||||
@ -1262,7 +1266,17 @@ define([
|
||||
str = str.toLowerCase();
|
||||
if (str.length>0) {
|
||||
users = _.filter(users, function(item) {
|
||||
return (item.email && 0 === item.email.toLowerCase().indexOf(str) || item.name && 0 === item.name.toLowerCase().indexOf(str))
|
||||
if (item.email && 0 === item.email.toLowerCase().indexOf(str)) return true;
|
||||
|
||||
let arr = item.name ? item.name.toLowerCase().split(' ') : [],
|
||||
inName = false;
|
||||
for (let i=0; i<arr.length; i++) {
|
||||
if (0 === arr[i].indexOf(str)) {
|
||||
inName = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return inName;
|
||||
});
|
||||
}
|
||||
var tpl = _.template('<a id="<%= id %>" tabindex="-1" type="menuitem">' +
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.5 KiB |
6
apps/common/main/resources/img/doc-formats/hwp.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg width="24" height="30" viewBox="0 0 24 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1 2a2 2 0 0 1 2-2h13.586a1 1 0 0 1 .707.293l5.414 5.414a1 1 0 0 1 .293.707V28a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2z" fill="#fff"/>
|
||||
<path d="M1 2a2 2 0 0 1 2-2h13.586a1 1 0 0 1 .707.293l5.414 5.414a1 1 0 0 1 .293.707V28a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2zm21 5h-3.12c-.403 0-.735 0-1.006-.022-.281-.023-.54-.072-.782-.196a2 2 0 0 1-.874-.874c-.124-.243-.173-.501-.196-.782C16 4.856 16 4.523 16 4.12V1H3a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1zm-.414-1L17 1.414V4.1c0 .428 0 .72.019.944.018.22.05.332.09.41a1 1 0 0 0 .437.437c.078.04.19.072.41.09.225.019.516.019.944.019z" fill="#BBB"/>
|
||||
<path d="M6 15a1 1 0 1 0 0 2h12a1 1 0 1 0 0-2zm0 4a1 1 0 1 0 0 2h7a1 1 0 1 0 0-2z" fill="#A9CBDD"/>
|
||||
<path d="M5 12a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1" fill="#287CA9"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 890 B |
6
apps/common/main/resources/img/doc-formats/hwpx.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg width="24" height="30" viewBox="0 0 24 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1 2a2 2 0 0 1 2-2h13.586a1 1 0 0 1 .707.293l5.414 5.414a1 1 0 0 1 .293.707V28a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2z" fill="#fff"/>
|
||||
<path d="M1 2a2 2 0 0 1 2-2h13.586a1 1 0 0 1 .707.293l5.414 5.414a1 1 0 0 1 .293.707V28a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2zm21 5h-3.12c-.403 0-.735 0-1.006-.022-.281-.023-.54-.072-.782-.196a2 2 0 0 1-.874-.874c-.124-.243-.173-.501-.196-.782C16 4.856 16 4.523 16 4.12V1H3a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1zm-.414-1L17 1.414V4.1c0 .428 0 .72.019.944.018.22.05.332.09.41a1 1 0 0 0 .437.437c.078.04.19.072.41.09.225.019.516.019.944.019z" fill="#BBB"/>
|
||||
<path d="M6 15a1 1 0 1 0 0 2h12a1 1 0 1 0 0-2zm0 4a1 1 0 1 0 0 2h7a1 1 0 1 0 0-2z" fill="#A9CBDD"/>
|
||||
<path d="M5 12a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1" fill="#287CA9"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 890 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-context.png
Normal file
|
After Width: | Height: | Size: 237 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-ltr.png
Normal file
|
After Width: | Height: | Size: 197 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-pin.png
Normal file
|
After Width: | Height: | Size: 268 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-rtl.png
Normal file
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 517 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-unpin.png
Normal file
|
After Width: | Height: | Size: 232 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-context.png
Normal file
|
After Width: | Height: | Size: 263 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-ltr.png
Normal file
|
After Width: | Height: | Size: 215 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-pin.png
Normal file
|
After Width: | Height: | Size: 282 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-rtl.png
Normal file
|
After Width: | Height: | Size: 227 B |
|
After Width: | Height: | Size: 601 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-unpin.png
Normal file
|
After Width: | Height: | Size: 282 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-context.png
Normal file
|
After Width: | Height: | Size: 281 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-ltr.png
Normal file
|
After Width: | Height: | Size: 240 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-pin.png
Normal file
|
After Width: | Height: | Size: 340 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-rtl.png
Normal file
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 655 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-unpin.png
Normal file
|
After Width: | Height: | Size: 340 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-context.png
Normal file
|
After Width: | Height: | Size: 214 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-ltr.png
Normal file
|
After Width: | Height: | Size: 176 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-pin.png
Normal file
|
After Width: | Height: | Size: 229 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-rtl.png
Normal file
|
After Width: | Height: | Size: 182 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-switch-mobile.png
Normal file
|
After Width: | Height: | Size: 752 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-unpin.png
Normal file
|
After Width: | Height: | Size: 236 B |
@ -0,0 +1,4 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m4.89 15.004 1.625 1.646-.698.707L3 14.504l2.817-2.854.698.707-1.625 1.647H15v1z" fill="#000"/>
|
||||
<path d="m15.11 15.004-1.625 1.646.698.707L17 14.504l-2.817-2.854-.698.707 1.625 1.647H6v1zM8.5 9q.255 0 .5-.035V12h1V5h1v7h1V5h1V4H8.5C7.5 4 6 4.567 6 6.5S8 9 8.5 9" fill="#000"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 397 B |
3
apps/common/main/resources/img/toolbar/2.5x/btn-ltr.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8 8.965A3.5 3.5 0 0 1 7.5 9C7 9 5 8.433 5 6.5S6.5 4 7.5 4H12v1h-1v7h-1V5H9v7H8zm4.485 7.685 1.625-1.646H4v-1h10.11l-1.625-1.646.698-.708L16 14.504l-2.817 2.854z" fill="#000"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 293 B |
3
apps/common/main/resources/img/toolbar/2.5x/btn-pin.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.146 3.146a.5.5 0 0 1 .708 0l5 5a.5.5 0 0 1-.708.708l-.646-.647-2.529 2.529-.476 3.335a.5.5 0 0 1-.141.283l-1.5 1.5a.5.5 0 0 1-.708 0L7.5 13.207l-3.146 3.146a.5.5 0 1 1-.708-.707L6.793 12.5 4.146 9.854a.5.5 0 0 1 0-.708l1.5-1.5a.5.5 0 0 1 .283-.141l3.335-.476L11.793 4.5l-.647-.646a.5.5 0 0 1 0-.708M12.5 5.207 9.854 7.854a.5.5 0 0 1-.283.141l-3.335.476L5.207 9.5l5.293 5.293 1.029-1.029.476-3.335a.5.5 0 0 1 .141-.283L14.793 7.5z" fill="#000"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 565 B |
3
apps/common/main/resources/img/toolbar/2.5x/btn-rtl.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 8.965A3.5 3.5 0 0 1 9.5 9C9 9 7 8.433 7 6.5S8.5 4 9.5 4H14v1h-1v7h-1V5h-1v7h-1zM7.515 16.65 5.89 15.004H16v-1H5.89l1.625-1.646-.698-.708L4 14.504l2.817 2.854z" fill="#000"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 294 B |
@ -0,0 +1,3 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 5C2 4.44772 2.44772 4 3 4H17C17.5523 4 18 4.44772 18 5V15C18 15.5523 17.5523 16 17 16H3C2.44772 16 2 15.5523 2 15V5ZM3 5V15H17V5H3ZM7 13.5C7 13.2239 7.22386 13 7.5 13H12C12.2761 13 12.5 13.2239 12.5 13.5C12.5 13.7761 12.2761 14 12 14H7.5C7.22386 14 7 13.7761 7 13.5Z" fill="#444444"/>
|
||||
</svg>
|
||||
@ -0,0 +1,3 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.146 3.146a.5.5 0 0 1 .708 0l5 5a.5.5 0 0 1-.708.708l-.646-.647-2.146 2.147a.5.5 0 0 1-.708-.708L14.793 7.5 12.5 5.207l-2.146 2.147a.5.5 0 0 1-.708-.708L11.793 4.5l-.647-.646a.5.5 0 0 1 0-.708m-7 1a.5.5 0 0 1 .708 0L8.1 7.393l.008.008 4.491 4.491.008.008 3.247 3.246a.5.5 0 0 1-.708.708l-2.542-2.543-.109.76a.5.5 0 0 1-.141.283l-1.5 1.5a.5.5 0 0 1-.708 0L7.5 13.207l-3.146 3.146a.5.5 0 1 1-.708-.707L6.793 12.5 4.146 9.854a.5.5 0 0 1 0-.708l1.5-1.5a.5.5 0 0 1 .283-.141l.76-.109-2.543-2.542a.5.5 0 0 1 0-.708M7.573 8.28l-1.337.191L5.207 9.5l5.293 5.293 1.029-1.029.19-1.337z" fill="#000"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 709 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-context.png
Normal file
|
After Width: | Height: | Size: 303 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-ltr.png
Normal file
|
After Width: | Height: | Size: 246 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-pin.png
Normal file
|
After Width: | Height: | Size: 384 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-rtl.png
Normal file
|
After Width: | Height: | Size: 249 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-switch-mobile.png
Normal file
|
After Width: | Height: | Size: 481 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-unpin.png
Normal file
|
After Width: | Height: | Size: 349 B |
@ -1,7 +1,8 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { f7, ListItem, List, Icon } from 'framework7-react';
|
||||
import React from 'react';
|
||||
import { ListItem, List } from 'framework7-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { LocalStorage } from '../../utils/LocalStorage.mjs';
|
||||
import { WheelColorPicker } from "./WheelColorPicker";
|
||||
|
||||
const ThemeColors = ({ themeColors, onColorClick, curColor, isTypeColors, isTypeCustomColors }) => {
|
||||
return (
|
||||
@ -159,23 +160,6 @@ const CustomColorPicker = props => {
|
||||
}
|
||||
|
||||
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');
|
||||
@ -186,20 +170,7 @@ const CustomColorPicker = props => {
|
||||
props.onAddNewColor && props.onAddNewColor(colors, newColor);
|
||||
};
|
||||
|
||||
return (
|
||||
<div id='color-picker'>
|
||||
<div className='color-picker-container'></div>
|
||||
<div className='right-block'>
|
||||
<div className='color-hsb-preview'>
|
||||
<div className='new-color-hsb-preview' style={{backgroundColor: stateColor}}></div>
|
||||
<div className='current-color-hsb-preview' style={{backgroundColor: `#${currentColor}`}}></div>
|
||||
</div>
|
||||
<a href='#' id='add-new-color' className='button button-round' onClick={()=>{addNewColor(stateColor)}}>
|
||||
<Icon icon={'icon-plus'} slot="media" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
return <WheelColorPicker initialColor={`#${currentColor}`} onSelectColor={addNewColor}/>
|
||||
};
|
||||
|
||||
export { ThemeColorPalette, CustomColorPicker };
|
||||
31
apps/common/mobile/lib/component/WheelColorPicker.jsx
Normal file
@ -0,0 +1,31 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { f7, Icon } from 'framework7-react';
|
||||
|
||||
export const WheelColorPicker = ({ initialColor = '#ffffff', onSelectColor }) => {
|
||||
const [color, setColor] = useState(initialColor);
|
||||
|
||||
useEffect(() => {
|
||||
if (!document.getElementsByClassName('color-picker-wheel').length) {
|
||||
f7.colorPicker.create({
|
||||
containerEl: document.getElementsByClassName('color-picker-container')[0],
|
||||
value: { hex: initialColor },
|
||||
on: { change: (value) => setColor(value.getValue().hex) }
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return (
|
||||
<div id='color-picker'>
|
||||
<div className='color-picker-container'/>
|
||||
<div className='right-block'>
|
||||
<div className='color-hsb-preview'>
|
||||
<div className='new-color-hsb-preview' style={{ backgroundColor: color }}/>
|
||||
<div className='current-color-hsb-preview' style={{ backgroundColor: initialColor }}/>
|
||||
</div>
|
||||
<a href='#' id='add-new-color' className='button button-round' onClick={() => onSelectColor(color)}>
|
||||
<Icon icon='icon-plus' slot="media"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@ -1,6 +1,5 @@
|
||||
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';
|
||||
@ -252,10 +251,15 @@ class ContextMenuController extends Component {
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Fragment>
|
||||
<ContextMenuView items={this.state.items} onMenuClosed={this.onMenuClosed} onMenuItemClick={this.onMenuItemClick} />
|
||||
<ActionsWithExtraItems items={this.state.extraItems} onMenuItemClick={this.onMenuItemClick} opened={this.state.openedMore} onActionClosed={this.onActionClosed}/>
|
||||
</Fragment>
|
||||
<div>
|
||||
<ContextMenuView items={this.state.items}
|
||||
onMenuClosed={this.onMenuClosed}
|
||||
onMenuItemClick={this.onMenuItemClick} />
|
||||
<ActionsWithExtraItems items={this.state.extraItems}
|
||||
onMenuItemClick={this.onMenuItemClick}
|
||||
opened={this.state.openedMore}
|
||||
onActionClosed={this.onActionClosed}/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
114
apps/common/mobile/lib/controller/Draw.jsx
Normal file
@ -0,0 +1,114 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { DrawView } from "../view/Draw";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { Device } from "../../utils/device";
|
||||
import { LocalStorage } from '../../utils/LocalStorage.mjs';
|
||||
|
||||
const DEFAULT_TOOL_SETTINGS = {
|
||||
pen: { color: '#FF0000', opacity: 100, lineSize: 2 },
|
||||
highlighter: { color: '#FFFC54', opacity: 50, lineSize: 5 },
|
||||
}
|
||||
const DEFAULT_ANDROID_COLORS = ['#FF0000', '#FFC000', '#FFFF00', '#92D050', '#00B050', '#00B0F0', '#0070C0', '#002060', '#C00000']
|
||||
const DEFAULT_IOS_COLORS = ['#FFFC54', '#72F54A', '#74F9FD', '#EB51F7', '#A900F9', '#FF0303', '#EF8B3A', '#D3D3D4', '#000000']
|
||||
|
||||
export const DrawController = inject('storeAppOptions')(observer(({ storeAppOptions }) => {
|
||||
const [currentTool, setCurrentTool] = useState(null);
|
||||
const [toolSettings, setToolSettings] = useState(() => {
|
||||
const stored = LocalStorage.getJson('draw-settings');
|
||||
return stored || DEFAULT_TOOL_SETTINGS;
|
||||
});
|
||||
const [colors, setColors] = useState(() => {
|
||||
const storageColors = LocalStorage.getJson('draw-colors', []);
|
||||
if (!storageColors.length) {
|
||||
return Device.android ? DEFAULT_ANDROID_COLORS : DEFAULT_IOS_COLORS
|
||||
}
|
||||
return storageColors
|
||||
})
|
||||
const [enableErasing, setEnableErasing] = useState(true);
|
||||
|
||||
const onApiFocusObject = () => {
|
||||
if (storeAppOptions.isDrawMode) {
|
||||
const api = Common.EditorApi.get();
|
||||
setEnableErasing(api.asc_HaveInks());
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
Common.Notifications.on('draw:start', () => {
|
||||
storeAppOptions.changeDrawMode(true);
|
||||
setCurrentToolAndApply('pen');
|
||||
})
|
||||
|
||||
Common.Notifications.on('draw:stop', () => {
|
||||
storeAppOptions.changeDrawMode(false);
|
||||
setCurrentToolAndApply('scroll');
|
||||
})
|
||||
|
||||
Common.Notifications.on('engineCreated', api => {
|
||||
api.asc_registerCallback(window.editorType === 'sse' ? 'asc_onSelectionChanged' : 'asc_onFocusObject', onApiFocusObject);
|
||||
});
|
||||
|
||||
return () => {
|
||||
Common.Notifications.off('draw:start');
|
||||
Common.Notifications.off('draw:stop');
|
||||
Common.Notifications.off('engineCreated');
|
||||
}
|
||||
}, []);
|
||||
|
||||
const createStroke = (color, lineSize, opacity) => {
|
||||
const stroke = new Asc.asc_CStroke();
|
||||
stroke.put_type(Asc.c_oAscStrokeType.STROKE_COLOR);
|
||||
stroke.put_color(Common.Utils.ThemeColor.getRgbColor(color));
|
||||
stroke.asc_putPrstDash(Asc.c_oDashType.solid);
|
||||
stroke.put_width(lineSize);
|
||||
stroke.put_transparent(opacity * 2.55);
|
||||
return stroke;
|
||||
};
|
||||
|
||||
const toolActions = {
|
||||
pen: (api, settings) => api.asc_StartDrawInk(createStroke(settings.pen.color, settings.pen.lineSize, settings.pen.opacity)),
|
||||
highlighter: (api, settings) => api.asc_StartDrawInk(createStroke(settings.highlighter.color, settings.highlighter.lineSize, settings.highlighter.opacity)),
|
||||
eraser: (api) => api.asc_StartInkEraser(),
|
||||
eraseEntireScreen: (api) => api.asc_RemoveAllInks(),
|
||||
scroll: (api) => api.asc_StopInkDrawer(),
|
||||
};
|
||||
|
||||
const setCurrentToolAndApply = (tool) => {
|
||||
const api = Common.EditorApi.get();
|
||||
if (tool === 'eraseEntireScreen') {
|
||||
toolActions.eraseEntireScreen(api);
|
||||
toolActions[currentTool]?.(api, toolSettings);
|
||||
setEnableErasing(false);
|
||||
} else {
|
||||
setCurrentTool(tool);
|
||||
toolActions[tool]?.(api, toolSettings);
|
||||
}
|
||||
};
|
||||
|
||||
const updateToolSettings = (newSettings) => {
|
||||
setToolSettings(prev => {
|
||||
const updatedSettings = { ...prev, [currentTool]: { ...prev[currentTool], ...newSettings } };
|
||||
const api = Common.EditorApi.get();
|
||||
toolActions[currentTool]?.(api, updatedSettings);
|
||||
LocalStorage.setJson('draw-settings', updatedSettings)
|
||||
return updatedSettings;
|
||||
});
|
||||
};
|
||||
|
||||
const addCustomColor = (color) => {
|
||||
const updatedColors = [...colors, color]
|
||||
setColors(updatedColors)
|
||||
updateToolSettings({ color })
|
||||
LocalStorage.setJson('draw-colors', updatedColors)
|
||||
}
|
||||
|
||||
return storeAppOptions.isDrawMode ? <DrawView
|
||||
currentTool={currentTool}
|
||||
setTool={setCurrentToolAndApply}
|
||||
settings={toolSettings}
|
||||
setSettings={updateToolSettings}
|
||||
colors={colors}
|
||||
addCustomColor={addCustomColor}
|
||||
enableErasing={enableErasing}
|
||||
/> : null
|
||||
}));
|
||||
120
apps/common/mobile/lib/view/Draw.jsx
Normal file
@ -0,0 +1,120 @@
|
||||
import React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { Button, f7, Icon, Range, Sheet } from 'framework7-react';
|
||||
import SvgIcon from '../../../../common/mobile//lib/component/SvgIcon'
|
||||
import IconDrawPen from '../../../../common/mobile/resources/icons/draw-pen.svg'
|
||||
import IconDrawHighlighter from '../../../../common/mobile/resources/icons/draw-highlighter.svg'
|
||||
import IconClearAll from '../../../../common/mobile/resources/icons/clear-all.svg'
|
||||
import IconClearObject from '../../../../common/mobile/resources/icons/clear-object.svg'
|
||||
import IconScroll from '../../../../common/mobile/resources/icons/scroll.svg'
|
||||
import { WheelColorPicker } from "../component/WheelColorPicker";
|
||||
import { Device } from "../../utils/device";
|
||||
|
||||
export const DrawView = ({ currentTool, setTool, settings, setSettings, colors, addCustomColor, enableErasing }) => {
|
||||
const { t } = useTranslation();
|
||||
const _t = t('Draw', { returnObjects: true });
|
||||
const isDrawingTool = currentTool === 'pen' || currentTool === 'highlighter';
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
{isDrawingTool && (<>
|
||||
<Sheet className='draw-sheet draw-sheet--color-picker' backdrop swipeToClose onSheetClosed={() => f7.sheet.open('.draw-sheet--settings')}>
|
||||
<div className='draw-sheet-label'><span>{_t.textCustomColor}</span></div>
|
||||
<WheelColorPicker
|
||||
initialColor={settings[currentTool].color}
|
||||
onSelectColor={(color) => {
|
||||
f7.sheet.close('.draw-sheet--color-picker')
|
||||
addCustomColor(color)
|
||||
}}
|
||||
/>
|
||||
</Sheet>
|
||||
<Sheet className="draw-sheet draw-sheet--settings" backdrop swipeToClose style={{ height: 'auto' }}>
|
||||
<div id='swipe-handler' className='swipe-container'>
|
||||
<Icon icon='icon icon-swipe'/>
|
||||
</div>
|
||||
<div className='draw-sheet-label'><span>{_t.textColor}</span></div>
|
||||
<div className='draw-sheet--settings-colors'>
|
||||
<div className="draw-sheet--settings-colors-list">
|
||||
{colors.map((color, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className="draw-sheet--settings-colors-list-item" style={{ backgroundColor: color }}
|
||||
onClick={() => setSettings({ color })}
|
||||
onTouchStart={() => setSettings({ color })}
|
||||
/>
|
||||
))}
|
||||
<div
|
||||
className="draw-sheet--settings-colors-list-add" style={{ backgroundColor: settings[currentTool].color }}
|
||||
onClick={() => {
|
||||
f7.sheet.close('.draw-sheet--settings')
|
||||
f7.sheet.open('.draw-sheet--color-picker')
|
||||
}}
|
||||
>
|
||||
<Icon icon="icon-plus"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className='draw-sheet-label'><span>{_t.textLineSize}</span></div>
|
||||
<div className='draw-sheet-item'>
|
||||
{/*{Device.android ? (*/}
|
||||
<Range
|
||||
min={0.5} max={10} step={0.5} value={settings[currentTool].lineSize}
|
||||
onRangeChange={(value) => setSettings({ lineSize: value })}
|
||||
/>
|
||||
{/*) : (*/}
|
||||
{/* <input className='line-size-range--ios' type='range' min={0.5} max={10} step={0.5} value={settings[currentTool].lineSize} onChange={(e) => setSettings({ lineSize: parseInt(e.target.value) })} />*/}
|
||||
{/* )}*/}
|
||||
</div>
|
||||
<div className='draw-sheet-label'><span>{_t.textOpacity}</span></div>
|
||||
<div className='draw-sheet-item'>
|
||||
<input style={{ '--color': settings[currentTool].color }}
|
||||
className={Device.android ? 'opacity-range-input--android' : 'opacity-range-input--ios'} type='range' min={0} max={100} step={1}
|
||||
value={settings[currentTool].opacity}
|
||||
onChange={(e) => setSettings({ opacity: parseInt(e.target.value) })}/>
|
||||
</div>
|
||||
</Sheet>
|
||||
</>)}
|
||||
<div className="draw-toolbar">
|
||||
<div className="draw-toolbar-item">
|
||||
<Button type='button' fill={currentTool === 'pen'} onClick={() => setTool('pen')}>
|
||||
<SvgIcon symbolId={IconDrawPen.id} className='icon icon-svg'/>
|
||||
</Button>
|
||||
</div>
|
||||
<div className="draw-toolbar-item">
|
||||
<Button type='button' fill={currentTool === 'highlighter'} onClick={() => setTool('highlighter')}>
|
||||
<SvgIcon symbolId={IconDrawHighlighter.id} className='icon icon-svg'/>
|
||||
</Button>
|
||||
</div>
|
||||
<div className="draw-toolbar-item">
|
||||
<Button type='button' sheetOpen={isDrawingTool ? ".draw-sheet--settings" : undefined} disabled={!isDrawingTool}>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="50%" cy="50%" r="8" fill={settings[currentTool]?.color || '#808080'}/>
|
||||
</svg>
|
||||
</Button>
|
||||
</div>
|
||||
<div className="draw-toolbar-item">
|
||||
<div className='draw-toolbar-divider'/>
|
||||
</div>
|
||||
<div className="draw-toolbar-item">
|
||||
<Button type='button' disabled={!enableErasing} fill={currentTool === 'eraser'} onClick={() => setTool('eraser')}>
|
||||
<SvgIcon symbolId={IconClearObject.id} className='icon icon-svg'/>
|
||||
</Button>
|
||||
</div>
|
||||
<div className="draw-toolbar-item">
|
||||
<Button type='button' disabled={!enableErasing} onClick={() => setTool('eraseEntireScreen')}>
|
||||
<SvgIcon symbolId={IconClearAll.id} className='icon icon-svg'/>
|
||||
</Button>
|
||||
</div>
|
||||
<div className="draw-toolbar-item">
|
||||
<div className='draw-toolbar-divider'/>
|
||||
</div>
|
||||
<div className="draw-toolbar-item">
|
||||
<Button type='button' fill={currentTool === 'scroll'} onClick={() => setTool('scroll')} tabIndex='-1'>
|
||||
<SvgIcon symbolId={IconScroll.id} className='icon icon-svg'/>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ body.theme-type-dark {
|
||||
--background-navbar-cell: #232323;
|
||||
--background-navbar-slide: #232323;
|
||||
--background-navbar-visio: #232323;
|
||||
--background-navbar-pdf: #232323;
|
||||
|
||||
background-color: var(--background-primary, #232323);
|
||||
}
|
||||
@ -56,6 +57,10 @@ body.theme-type-dark {
|
||||
background-color: var(--background-navbar-word, #446995);
|
||||
}
|
||||
|
||||
.skl-navbar.skl-navbar--word.skl-navbar--md.pdf-view {
|
||||
background-color: var(--background-navbar-pdf, #AA5252);
|
||||
}
|
||||
|
||||
.skl-navbar.skl-navbar--cell.skl-navbar--md {
|
||||
background-color: var(--background-navbar-cell, #40865c);
|
||||
}
|
||||
|
||||
4
apps/common/mobile/resources/icons/clear-all.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 2H20V4.45714L21 5.42857V2V1H20H4H3V2V22V23H4H20H21V22V15.1429L20 16.1143V22H4V2Z" fill="currentColor"/>
|
||||
<path d="M18 19H14.4286M14.4286 19L19.1429 14.2857M14.4286 19H13.0036H8.375L6.39203 16.9856C5.62147 16.2028 5.62642 14.945 6.40312 14.1683L12.7143 7.85714M19.1429 14.2857L21.5858 11.8428C22.3668 11.0617 22.3668 9.79541 21.5858 9.01436L17.9856 5.41421C17.2046 4.63316 15.9383 4.63317 15.1572 5.41421L12.7143 7.85714M19.1429 14.2857L12.7143 7.85714" stroke="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 631 B |
3
apps/common/mobile/resources/icons/clear-object.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M21.1429 22H12.5714M12.5714 22H5.14286L1.58533 18.8378C0.725257 18.0732 0.686148 16.7424 1.49985 15.9287L10.2857 7.14286M12.5714 22L18.8571 15.7143M18.8571 15.7143L22.5858 11.9856C23.3668 11.2046 23.3668 9.93826 22.5858 9.15722L16.8428 3.41421C16.0617 2.63316 14.7954 2.63316 14.0144 3.41421L10.2857 7.14286M18.8571 15.7143L10.2857 7.14286" stroke="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 477 B |
7
apps/common/mobile/resources/icons/draw-highlighter.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7 14H6V21.5V21.75C6 22 6 22 6.25 22H6.5H7H6.75C7 22 7 22 7 21.75V14Z" fill="currentColor"/>
|
||||
<path d="M18 14H17V21.5V21.75C17 22 17 22 17.25 22H17.5H17.75C18 22 18 22 18 21.75V14Z" fill="currentColor"/>
|
||||
<path d="M15 7.99998H9H8.75C8.5 7.99998 8.4674 8.10429 8.4348 8.20861L7 13H8L9.2 8.99998H14.75L16 13H17L15.755 8.99998L15.5703 8.20861C15.5469 8.13358 15.45 7.99998 15.25 7.99998H15Z" fill="currentColor"/>
|
||||
<path d="M7.19 13H16.745H17.245L17.6 12.9995C17.855 12.9995 18 13.1495 18 13.3995V14H16.995H6.94H6V13.3995C6 13.1495 6.15 13 6.4 13H6.69H7.19Z" fill="currentColor"/>
|
||||
<path d="M9 7.99998H15V2.39189C14.9975 2.21731 14.9628 2.10444 14.9 2.0466C14.8238 1.97646 14.7062 1.98727 14.5544 2.06713L9.64754 4.85429C9.64168 4.85802 9.63591 4.86187 9.63023 4.86584C9.57927 4.90147 9.53532 4.94691 9.5 4.99947C9.45228 5.07048 9.42033 5.15451 9.40822 5.24492L9 7.99998Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1000 B |
6
apps/common/mobile/resources/icons/draw-pen.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.82 5.80825H9.18H8.75C8.5 5.80825 8.4674 5.91382 8.4348 6.01938L6 13.9041H7H17H18L15.8171 6.82024L15.5703 6.01938C15.5469 5.94345 15.45 5.80825 15.25 5.80825H14.82ZM9.18 6.82024L7.5 12.8921H16.5L14.82 6.82024H9.18Z" fill="currentColor"/>
|
||||
<path d="M7 13.9041H6V21.494V21.747C6 22 6 22 6.25 22H6.5H7H6.75C7 22 7 22 7 21.747V13.9041Z" fill="currentColor"/>
|
||||
<path d="M18 13.9041H17V21.494V21.747C17 22 17 22 17.25 22H17.5H17.75C18 22 18 22 18 21.747V13.9041Z" fill="currentColor"/>
|
||||
<path d="M9.18 5.80825H14.82L13.5 3.32813C12.5 1.56585 11.5 1.54875 10.5 3.32813L9.18 5.80825Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 751 B |
3
apps/common/mobile/resources/icons/draw.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.737 5.62105L22.0002 4.35789C22.0002 4.35789 21.8318 3.34737 21.2423 2.75789C20.6528 2.08421 19.6423 2 19.6423 2L18.3791 3.26316L20.737 5.62105ZM19.7263 5.62108L8.61053 16.6527L7.34737 15.3895L18.4632 4.35792L17.8737 3.76845L6.42105 15.2211L6 18L8.77895 17.579L14.5053 11.8527L20.2316 6.12634L19.7263 5.62108ZM13.4801 7.10498C13.7534 6.68633 13.7532 6.68617 13.7529 6.686L13.7523 6.68561L13.7508 6.68462L13.7466 6.68189L13.7332 6.67345C13.7222 6.66654 13.707 6.6571 13.6876 6.64542C13.6488 6.62206 13.5934 6.58971 13.5223 6.55067C13.3801 6.47261 13.1745 6.36757 12.9125 6.25401C12.3888 6.02712 11.636 5.76465 10.7096 5.61688C8.84758 5.3199 6.30186 5.49026 3.53986 7.30505C0.618665 9.22443 0.000158966 12.2988 0.854419 15.2145C1.7018 18.1067 3.99969 20.8956 6.99949 22.4443L7.45822 21.5557C4.6876 20.1254 2.5803 17.5485 1.81408 14.9333C1.05473 12.3416 1.61422 9.76684 4.08899 8.14078C6.61649 6.48008 8.9036 6.34147 10.5521 6.6044C11.3808 6.73658 12.0526 6.97128 12.5148 7.17157C12.7457 7.2716 12.9234 7.36266 13.0411 7.4273C13.1 7.4596 13.1438 7.48526 13.1717 7.50206C13.1856 7.51046 13.1956 7.51664 13.2015 7.52033L13.2071 7.52389C13.2069 7.52377 13.2067 7.52363 13.4801 7.10498ZM19.1353 20.4311C20.7445 18.6887 20.7121 16.4688 20.147 14.5823C19.5829 12.6991 18.4598 11.0314 17.6862 10.2326L16.9678 10.9283C17.6368 11.619 18.6736 13.1485 19.189 14.8693C19.7035 16.5868 19.6702 18.3779 18.4006 19.7527C17.0172 21.2507 14.7032 21.3649 12.5461 20.8504C11.4861 20.5975 10.5138 20.2025 9.79385 19.7968C9.43322 19.5936 9.14757 19.3943 8.94872 19.2175C8.84948 19.1293 8.77888 19.0529 8.73234 18.9909C8.68391 18.9264 8.67427 18.8944 8.67428 18.8944L7.70686 19.1476C7.78962 19.4639 8.03374 19.7421 8.28433 19.9649C8.55196 20.2028 8.90143 20.4418 9.30292 20.668C10.1072 21.1213 11.1671 21.5495 12.3141 21.8231C14.5712 22.3615 17.3707 22.3418 19.1353 20.4311Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
4
apps/common/mobile/resources/icons/scroll.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.3131 22.5C10.2175 22.5087 8.01189 20.812 6.84764 17.5345L5.15461 12.7863C5.04986 12.5004 5.00123 12.1658 5.00026 11.9178C4.98411 10.9611 5.71509 10.406 6.54563 10.4022C7.14956 10.4048 7.6768 10.7657 7.97915 11.4901L8.7828 13.4574C8.8051 13.5051 8.82797 13.5234 8.86564 13.5272C8.91504 13.5255 8.93599 13.4935 8.93407 13.4433L8.87828 5.30155C8.87059 4.20929 9.5785 3.49716 10.5628 3.50001C11.5298 3.49655 12.2595 4.19874 12.2672 5.291L12.2914 8.50878C12.5222 8.4346 12.7729 8.38746 12.9964 8.38985C13.7776 8.38785 14.3525 8.83546 14.5653 9.53711C14.843 9.44044 15.114 9.39084 15.39 9.38267C16.1422 9.37998 16.6886 9.79739 16.8878 10.4544C18.531 10.4701 19.4744 11.6762 19.4848 13.8193L19.4998 15.7263C19.5286 20.0452 16.978 22.4813 13.3131 22.5ZM13.3413 21.5001C16.5067 21.4871 18.5706 19.4379 18.5375 15.6325L18.5327 13.9471C18.5206 12.3382 17.992 11.4519 17.054 11.456L17.055 12.5954C17.0635 12.9055 16.8451 13.0833 16.6012 13.0833C16.3542 13.0922 16.1341 12.9128 16.1287 12.5939L16.1232 11.2449C16.1112 10.6661 15.8014 10.3252 15.2845 10.3247C15.0783 10.3286 14.8449 10.382 14.6518 10.4601L14.6691 12.2491C14.6689 12.5561 14.4505 12.7339 14.2153 12.7371C13.9596 12.7428 13.7395 12.5634 13.7428 12.2477L13.7209 10.2489C13.7176 9.6733 13.4108 9.32359 12.8823 9.32867C12.6877 9.32697 12.4513 9.38921 12.2582 9.46724L12.2745 11.8997C12.278 12.1684 12.0936 12.3883 11.8207 12.3877C11.5564 12.3902 11.3486 12.1757 11.3452 11.907L11.3013 5.23546C11.2932 4.75712 11.0149 4.4376 10.5765 4.43598C10.135 4.44315 9.8353 4.76951 9.83472 5.2447L9.90648 14.6501C9.91321 15.0487 9.65545 15.3111 9.30409 15.3116C9.01078 15.3135 8.75494 15.1804 8.58272 14.7808L7.3437 11.9118C7.19128 11.5392 6.96312 11.3272 6.64078 11.3283C6.2283 11.3362 5.94652 11.6393 5.95382 12.0085C5.95037 12.1855 5.98266 12.3161 6.03782 12.465L7.73085 17.2132C8.79341 20.196 10.7626 21.5093 13.3413 21.5001Z" fill="currentColor"/>
|
||||
<path d="M4.64523 7.22755C4.49571 7.08397 4.25857 7.08587 4.11189 7.23231C3.96521 7.37874 3.96236 7.61551 4.10617 7.7648L5.23002 8.8878C5.30145 8.96006 5.39764 9 5.49861 9C5.59956 9 5.69671 8.96006 5.76815 8.88875L6.89295 7.7667C7.03676 7.61836 7.03485 7.3816 6.88818 7.23516C6.74151 7.08777 6.50437 7.08587 6.35484 7.22945L5.88054 7.70204V3.29677L6.35484 3.76936C6.50436 3.91199 6.7415 3.91104 6.88818 3.76365C7.03485 3.61722 7.03676 3.38045 6.89295 3.23211C5.19098 1.59468 5.81006 1.58329 4.10514 3.23401C3.96133 3.3833 3.96514 3.62006 4.11181 3.7665C4.25848 3.91294 4.49563 3.91484 4.64516 3.77126L5.11946 3.29772V7.70202L4.64523 7.22755Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
3
apps/common/mobile/resources/icons/switch-desktop.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9 20V19H11V17H4.6155C4.15517 17 3.77083 16.8458 3.4625 16.5375C3.15417 16.2292 3 15.8448 3 15.3845V5.6155C3 5.15517 3.15417 4.77083 3.4625 4.4625C3.77083 4.15417 4.15517 4 4.6155 4H19.3845C19.8448 4 20.2292 4.15417 20.5375 4.4625C20.8458 4.77083 21 5.15517 21 5.6155V15.3845C21 15.8448 20.8458 16.2292 20.5375 16.5375C20.2292 16.8458 19.8448 17 19.3845 17H13V19H15V20H9ZM4.6155 16H19.3845C19.5385 16 19.6796 15.9359 19.8078 15.8077C19.9359 15.6796 20 15.5385 20 15.3845V5.6155C20 5.4615 19.9359 5.32042 19.8078 5.19225C19.6796 5.06408 19.5385 5 19.3845 5H4.6155C4.4615 5 4.32042 5.06408 4.19225 5.19225C4.06408 5.32042 4 5.4615 4 5.6155V15.3845C4 15.5385 4.06408 15.6796 4.19225 15.8077C4.32042 15.9359 4.4615 16 4.6155 16Z"/>
|
||||
</svg>
|
||||
@ -31,6 +31,9 @@
|
||||
--toolbar-segment: #FFF;
|
||||
--toolbar-tab-normal: #757575;
|
||||
|
||||
--draw-toolbar-background: #232323;
|
||||
--draw-toolbar-border: #54545866;
|
||||
|
||||
--component-disabled-opacity: .4;
|
||||
|
||||
--image-border-types-filter: invert(100%) brightness(4);
|
||||
|
||||
@ -29,11 +29,14 @@
|
||||
--toolbar-segment: #446995;
|
||||
--toolbar-tab-normal:fade(#FFF, 50%);
|
||||
|
||||
--draw-toolbar-background: #fff;
|
||||
--draw-toolbar-border: #E6E6E6;
|
||||
|
||||
--component-disabled-opacity: .4;
|
||||
|
||||
--active-opacity-word: fade(#446995, 30%);
|
||||
--active-opacity-slide: fade(#BE664F, 30%);
|
||||
--active-opacity-cell: fade(#40865C, 30%);
|
||||
--active-opacity-word: #E5F0FF;
|
||||
--active-opacity-slide: #FBE4DE;
|
||||
--active-opacity-cell: #D9EFE2;
|
||||
|
||||
--image-border-types-filter: none;
|
||||
|
||||
@ -109,4 +112,8 @@
|
||||
@toolbar-segment: var(--toolbar-segment);
|
||||
@toolbar-tab-normal: var(--toolbar-tab-normal);
|
||||
|
||||
@draw-toolbar-background: var(--draw-toolbar-background);
|
||||
@draw-toolbar-divider: var(--draw-toolbar-divider);
|
||||
@draw-toolbar-border: var(--draw-toolbar-border);
|
||||
|
||||
@component-disabled-opacity: var(--component-disabled-opacity);
|
||||
|
||||
@ -70,7 +70,7 @@
|
||||
.subnavbar {
|
||||
.subnavbar-inner {
|
||||
padding: 0;
|
||||
|
||||
|
||||
.title {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
@ -202,13 +202,13 @@
|
||||
html.pixel-ratio-3 & {
|
||||
border: 0.33px solid @gray;
|
||||
}
|
||||
|
||||
|
||||
.thumb {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: @fill-white;
|
||||
background-size: cover;
|
||||
|
||||
|
||||
label {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
@ -225,7 +225,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.row.list .item-content {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
@ -424,7 +424,7 @@
|
||||
|
||||
.style-effect, .style-type {
|
||||
.list .item-title {
|
||||
font-weight: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
@ -451,7 +451,7 @@
|
||||
cursor: pointer;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, .3);
|
||||
}
|
||||
&::-ms-thumb {
|
||||
&::-ms-thumb {
|
||||
appearance: none;
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
@ -533,7 +533,7 @@
|
||||
background-size: 100% 100%;
|
||||
.encoded-svg-background("<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 22 22' xml:space='preserve'><line stroke='#ff0000' stroke-linecap='undefined' stroke-linejoin='undefined' id='svg_1' y2='0' x2='22' y1='22' x1='0' stroke-width='2' fill='none'/></svg>");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -878,7 +878,7 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
.content-block {
|
||||
padding: 0;
|
||||
}
|
||||
.picker-3d {
|
||||
.picker-3d {
|
||||
.picker-item {
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
@ -1064,11 +1064,11 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
}
|
||||
|
||||
.target-function-list {
|
||||
position: absolute;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 0;
|
||||
width: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@ -1168,7 +1168,7 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
}
|
||||
}
|
||||
|
||||
.list input[type='password'],
|
||||
.list input[type='password'],
|
||||
.list input[type='text'] {
|
||||
background: transparent;
|
||||
}
|
||||
@ -1193,7 +1193,7 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
}
|
||||
|
||||
// Version History
|
||||
.version-history {
|
||||
.version-history {
|
||||
&__user {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
|
||||
200
apps/common/mobile/resources/less/draw.less
Normal file
@ -0,0 +1,200 @@
|
||||
.draw-sheet {
|
||||
background-color: @background-primary;
|
||||
|
||||
.device-android & {
|
||||
box-shadow: 0 3.75px 11px 0 #00000030, 0 0.5px 5px 0 #0000000A;
|
||||
--f7-sheet-border-radius: 16px;
|
||||
}
|
||||
|
||||
.device-ios & {
|
||||
box-shadow: 0 8px 28px 0 #00000029;
|
||||
--f7-sheet-border-radius: 10px;
|
||||
}
|
||||
|
||||
.swipe-container {
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
&-label {
|
||||
padding-inline: 16px;
|
||||
height: 48px;
|
||||
display: flex;
|
||||
color: @text-normal;
|
||||
|
||||
.device-android & {
|
||||
font-size: 16px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.device-ios & {
|
||||
align-items: flex-end;
|
||||
text-transform: uppercase;
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
|
||||
span {
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-item {
|
||||
padding-inline: 16px;
|
||||
height: 48px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.draw-sheet--settings {
|
||||
&-colors {
|
||||
padding: 8px 16px;
|
||||
|
||||
&-list {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(10, 1fr);
|
||||
gap: 2px;
|
||||
|
||||
&-item {
|
||||
border: 1px solid;
|
||||
aspect-ratio: 1;
|
||||
border-color: @background-menu-divider;
|
||||
}
|
||||
|
||||
&-add {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
aspect-ratio: 1;
|
||||
border: 2px solid @background-primary;
|
||||
|
||||
i {
|
||||
background-color: @brandColor;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: -5px;
|
||||
background: linear-gradient(to right, #FF0000, #FF8A00, #FAFF01, #00FF1A, #00F0FF, #0029FF, #DB00FF);
|
||||
z-index: -1;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#drawbar.navbar {
|
||||
--height: calc(44px + var(--f7-safe-area-bottom));
|
||||
height: var(--height);
|
||||
--f7-navbar-border-color: @draw-toolbar-border;
|
||||
--f7-navbar-bg-color: @draw-toolbar-background;
|
||||
|
||||
.device-android & {
|
||||
body.theme-type-light & {
|
||||
--f7-navbar-bg-color: #fff;
|
||||
}
|
||||
top: unset;
|
||||
bottom: env(keyboard-inset-top);
|
||||
}
|
||||
|
||||
.device-ios & {
|
||||
top: 100vh;
|
||||
margin-top: calc(-1 * (var(--height) + env(keyboard-inset-top, 0px)));
|
||||
}
|
||||
|
||||
.draw-toolbar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding-inline: 10px;
|
||||
width: 100%;
|
||||
|
||||
@media (min-width: 550px) {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(8, 1fr);
|
||||
}
|
||||
|
||||
&-item {
|
||||
@media (min-width: 550px) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
button {
|
||||
display: flex;
|
||||
padding: 0;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
min-width: 36px;
|
||||
border-radius: 7px;
|
||||
border: none;
|
||||
|
||||
&.button-fill {
|
||||
color: @brandColor;
|
||||
background-color: @button-active-opacity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-divider {
|
||||
width: 1px;
|
||||
height: 24px;
|
||||
background-color: @background-menu-divider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.line-size-range--ios {
|
||||
appearance: none;
|
||||
width: 100%;
|
||||
height: 24px;
|
||||
background: url(data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDM0MyAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMTJDMCAxMC44ODYxIDAuODg1NzUgOS45NzQxOCAxLjk5OTE1IDkuOTQxNzJMMzMxLjAwNSAwLjM0OTcwNkMzMzcuNTcyIDAuMTU4MjQgMzQzIDUuNDI5OTIgMzQzIDEyQzM0MyAxOC41NzAxIDMzNy41NzIgMjMuODQxOCAzMzEuMDA1IDIzLjY1MDNMMS45OTkxNSAxNC4wNTgzQzAuODg1NzU0IDE0LjAyNTggMCAxMy4xMTM5IDAgMTJaIiBmaWxsPSIjQUVBRUIyIi8+Cjwvc3ZnPgo=);
|
||||
background-size: 100% 24px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.opacity-range-input--ios {
|
||||
appearance: none;
|
||||
width: 100%;
|
||||
height: 24px;
|
||||
border-radius: 30px;
|
||||
background: linear-gradient(90deg, transparent, var(--color)),
|
||||
linear-gradient(#9797971A, #9797971A),
|
||||
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEsWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNjQiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iNjQiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLzEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI2NCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjY0IgogICBleGlmOkNvbG9yU3BhY2U9IjEiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDEtMTVUMDM6NTY6MjIrMDU6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjUtMDEtMTVUMDM6NTY6MjIrMDU6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWZmaW5pdHkgUGhvdG8gMiAyLjUuNSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNS0wMS0xNVQwMzo1NjoyMiswNTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+sHvpjAAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG5S0NBEIe/REXxiqCIhUWQaBUlHkRtLBK8QC2SCF5N8nIJOR7vJYjYCrYBBdHGq9C/QFvBWhAURRBrbRVtNDznJYGImFl29tvfzgy7s2ANJJSkXu2CZCqj+SY99oXFJXvtKxaaaWeI4aCiq7P+iQAV7fNeosVue81aleP+tYZwRFfAUic8pqhaRnhKeGYto5q8I9ymxINh4TNhpyYXFL4z9VCRX0yOFfnbZC3g84K1Rdge+8WhX6zEtaSwvBxHMpFVSvcxX9IYSc37Ze2S2YmOj0k82JlmHC9u+hkV76aXAfpkR4V8VyF/jrTkKuJV1tFYJUacDE5Rs1I9ImtU9IiMBOtm///2VY8ODhSrN3qg5tkw3ruhdhvyOcP4OjKM/DFUPcFlqpyfPoSRD9FzZc1xALZNOL8qa6FduNiCjkc1qAULUpVMazQKb6fQtAitN1C/XOxZ6ZyTBwhsyFddw94+9Ei8beUH1zhoGb7OAhMAAAAJcEhZcwAACxMAAAsTAQCanBgAAAC4SURBVHic7drBCcUwDMDQ5NNZu/8G+UP48Ggr3Y2FyCXgvda614BzzmR87b1H89P9v9H0CyiAFtAUQAtoCqAFNAXQApoCaAFNAbSApgBaQHM9/T8/3f/5F1AALaApgBbQFEALaAqgBTQF0AKaAmgBTQG0gOZ6+n+++4AhBdACmgJoAU0BtICmAFpAUwAtoCmAFtAUQAtoug8YTb+AAmgBTQG0gKYAWkBTAC2gKYAW0BRAC2gKoAU0f7KKGOlRUMddAAAAAElFTkSuQmCC);
|
||||
background-size: 100%, 100%, 32px;
|
||||
}
|
||||
|
||||
.opacity-range-input--ios::-webkit-slider-thumb, .line-size-range--ios::-webkit-slider-thumb {
|
||||
appearance: none;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border: 0.5px solid rgba(116, 116, 128, 0.08);
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
box-shadow: 0 3px 1px 0 rgba(0, 0, 0, 0.03),
|
||||
0 1px 1px 0 rgba(0, 0, 0, 0.01),
|
||||
0 3px 8px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.opacity-range-input--android {
|
||||
appearance: none;
|
||||
width: 100%;
|
||||
height: 16px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 0 0 0.5px #0000001F;
|
||||
background: linear-gradient(90deg, #C4C4C4, var(--color));
|
||||
}
|
||||
|
||||
.opacity-range-input--android::-webkit-slider-thumb {
|
||||
appearance: none;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
box-shadow: 0 1px 3px 0 #00000033, 0 2px 2px 0 #0000001F, 0 0 2px 0 #00000024;
|
||||
}
|
||||
@ -4,6 +4,7 @@
|
||||
.icon-svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
fill: @brandColor;
|
||||
}
|
||||
|
||||
i.icon {
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
i.icon {
|
||||
&.icon_mask {
|
||||
background-color: white;
|
||||
|
||||
@ -48,6 +48,10 @@
|
||||
}
|
||||
}
|
||||
.navbar {
|
||||
.icon-svg {
|
||||
fill: @toolbar-icons;
|
||||
}
|
||||
|
||||
i.icon {
|
||||
&.icon-collaboration {
|
||||
width: 24px;
|
||||
@ -65,7 +69,7 @@
|
||||
&.icon-close {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
.encoded-svg-mask('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.9844 6.42188L13.4062 12L18.9844 17.5781L17.5781 18.9844L12 13.4062L6.42188 18.9844L5.01562 17.5781L10.5938 12L5.01562 6.42188L6.42188 5.01562L12 10.5938L17.5781 5.01562L18.9844 6.42188Z"/></svg>', @text-normal);
|
||||
.encoded-svg-mask('<svg xmlns="http://www.w3.org/2000/svg" fill="@{toolbar-icons}" width="24" height="24" viewBox="0 0 24 24"><path d="M18.9844 6.42188L13.4062 12L18.9844 17.5781L17.5781 18.9844L12 13.4062L6.42188 18.9844L5.01562 17.5781L10.5938 12L5.01562 6.42188L6.42188 5.01562L12 10.5938L17.5781 5.01562L18.9844 6.42188Z"/></svg>', @toolbar-icons);
|
||||
}
|
||||
&.icon-done-disabled {
|
||||
width: 24px;
|
||||
|
||||
@ -78,6 +78,19 @@ class LocalStorage {
|
||||
else return this._store[name]===undefined ? null : this._store[name];
|
||||
};
|
||||
|
||||
setJson(name, value, just) {
|
||||
this.setItem(name, JSON.stringify(value), just);
|
||||
}
|
||||
|
||||
getJson(name, fallbackValue = null) {
|
||||
try {
|
||||
const stored = this.getItem(name);
|
||||
return stored ? JSON.parse(stored) : fallbackValue;
|
||||
} catch {
|
||||
return fallbackValue;
|
||||
}
|
||||
}
|
||||
|
||||
setBool(name, value, just) {
|
||||
this.setItem(name, value ? 1 : 0, just);
|
||||
}
|
||||
|
||||
@ -1022,10 +1022,12 @@ DE.ApplicationController = new(function(){
|
||||
|
||||
api = isPDF ? new Asc.PDFEditorApi({
|
||||
'id-view' : 'editor_sdk',
|
||||
'embedded' : true
|
||||
'embedded' : true,
|
||||
'isRtlInterface': window.isrtl
|
||||
}) : new Asc.asc_docs_api({
|
||||
'id-view' : 'editor_sdk',
|
||||
'embedded' : true
|
||||
'embedded' : true,
|
||||
'isRtlInterface': window.isrtl
|
||||
});
|
||||
|
||||
if (api){
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
"common.view.modals.txtShare": "Споделяне на връзка",
|
||||
"common.view.modals.txtTitleProtected": "Защитен файл",
|
||||
"common.view.modals.txtWidth": "Широчина",
|
||||
"common.view.SearchBar.textFind": "Търсене",
|
||||
"DE.ApplicationController.convertationErrorText": "Конвертирането е неуспешно.",
|
||||
"DE.ApplicationController.convertationTimeoutText": "Превишава се времето на изтичане на реализациите.",
|
||||
"DE.ApplicationController.criticalErrorTitle": "Грешка",
|
||||
@ -13,18 +14,24 @@
|
||||
"DE.ApplicationController.downloadTextText": "Документът се изтегли ...",
|
||||
"DE.ApplicationController.errorAccessDeny": "Опитвате се да извършите действие, за което нямате права. <br> Моля, свържете се с администратора на сървъра за документи.",
|
||||
"DE.ApplicationController.errorDefaultMessage": "Код на грешка: %1",
|
||||
"DE.ApplicationController.errorEditingDownloadas": "Възникна грешка по време на работа с документа. <br> Използвайте опцията 'Download as ...', за да запишете архивното копие на файла на твърдия диск на компютъра.",
|
||||
"DE.ApplicationController.errorFilePassProtect": "Файлът е защитен с парола и не може да бъде отворен.",
|
||||
"DE.ApplicationController.errorFileSizeExceed": "Размерът на файла надвишава ограничението, зададено за вашия сървър.<br> Моля, свържете се с вашия администратор на Document Server за подробности.",
|
||||
"DE.ApplicationController.errorForceSave": "При запазването на файла възникна грешка. Моля, използвайте опцията \"Изтегляне като\", за да запишете файла на твърдия диск на компютъра или опитайте отново по-късно.",
|
||||
"DE.ApplicationController.errorToken": "Токенът за защита на документа не е правилно оформен. <br> Моля, свържете се с вашия администратор на сървър за документи.",
|
||||
"DE.ApplicationController.errorTokenExpire": "Токенът за защита на документа е изтекъл. <br> Моля, свържете се с администратора на документа.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Интернет връзката е възстановена и версията на файла е променена.<br> Преди да продължите да работите, трябва да изтеглите файла или да копирате съдържанието му, за да сте сигурни, че нищо не е загубено, и след това да презаредите тази страница.",
|
||||
"DE.ApplicationController.errorUserDrop": "Файлът не може да бъде достъпен в момента.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Внимание",
|
||||
"DE.ApplicationController.openErrorText": "Възникна грешка при отварянето на файла.",
|
||||
"DE.ApplicationController.scriptLoadError": "Връзката е твърде бавна, някои от компонентите не могат да бъдат заредени. Моля, презаредете страницата.",
|
||||
"DE.ApplicationController.textAnonymous": "Анонимен",
|
||||
"DE.ApplicationController.textClear": "Изчисти всички полета",
|
||||
"DE.ApplicationController.textGuest": "Гост",
|
||||
"DE.ApplicationController.textLoadingDocument": "Зареждане на документ",
|
||||
"DE.ApplicationController.textNext": "Следващо поле",
|
||||
"DE.ApplicationController.textOf": "на",
|
||||
"DE.ApplicationController.titleLicenseExp": "Лицензът е изтекъл",
|
||||
"DE.ApplicationController.txtClose": "Затвори",
|
||||
"DE.ApplicationController.unknownErrorText": "Неизвестна грешка.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Вашият браузър не се поддържа.",
|
||||
@ -35,5 +42,7 @@
|
||||
"DE.ApplicationView.txtEmbed": "Вграждане",
|
||||
"DE.ApplicationView.txtFileLocation": "Mестоположението на файла",
|
||||
"DE.ApplicationView.txtFullScreen": "Цял екран",
|
||||
"DE.ApplicationView.txtPrint": "Печат",
|
||||
"DE.ApplicationView.txtSearch": "Търсене",
|
||||
"DE.ApplicationView.txtShare": "Дял"
|
||||
}
|
||||
@ -38,7 +38,7 @@
|
||||
"DE.ApplicationController.textConvertFormDownload": "Κατεβάστε το αρχείο ως συμπληρώσιμο PDF για να μπορείτε να το συμπληρώσετε.",
|
||||
"DE.ApplicationController.textCtrl": "Ctrl",
|
||||
"DE.ApplicationController.textDownloadPdf": "Λήψη PDF",
|
||||
"DE.ApplicationController.textGotIt": "Ελήφθη",
|
||||
"DE.ApplicationController.textGotIt": "Εντάξει",
|
||||
"DE.ApplicationController.textGuest": "Επισκέπτης",
|
||||
"DE.ApplicationController.textLoadingDocument": "Φόρτωση εγγράφου",
|
||||
"DE.ApplicationController.textNext": "Επόμενο Πεδίο",
|
||||
|
||||
@ -4,48 +4,48 @@
|
||||
"common.view.modals.txtHeight": "Altezza",
|
||||
"common.view.modals.txtIncorrectPwd": "Password non corretta",
|
||||
"common.view.modals.txtOpenFile": "Immettere la password per aprire il file",
|
||||
"common.view.modals.txtShare": "Condividi il link",
|
||||
"common.view.modals.txtShare": "Condividi collegamento",
|
||||
"common.view.modals.txtTitleProtected": "File protetto",
|
||||
"common.view.modals.txtWidth": "Larghezza",
|
||||
"common.view.SearchBar.textFind": "Trova",
|
||||
"DE.ApplicationController.convertationErrorText": "Conversione fallita.",
|
||||
"DE.ApplicationController.convertationTimeoutText": "È stato superato il tempo limite della conversione.",
|
||||
"DE.ApplicationController.convertationTimeoutText": "È stato superato il tempo limite di conversione.",
|
||||
"DE.ApplicationController.criticalErrorTitle": "Errore",
|
||||
"DE.ApplicationController.downloadErrorText": "Scaricamento fallito",
|
||||
"DE.ApplicationController.downloadTextText": "Scaricamento del documento in corso...",
|
||||
"DE.ApplicationController.downloadTextText": "Scaricamento documento in corso...",
|
||||
"DE.ApplicationController.errorAccessDeny": "Stai tentando di eseguire un'azione per la quale non disponi di permessi sufficienti.<br>Si prega di contattare l'amministratore del Server dei Documenti.",
|
||||
"DE.ApplicationController.errorDefaultMessage": "Codice errore: %1",
|
||||
"DE.ApplicationController.errorEditingDownloadas": "Si è verificato un errore durante il lavoro con il documento.<br>Utilizzare l'opzione 'Scarica come ...' per salvare la copia di backup del file sul disco rigido del computer.",
|
||||
"DE.ApplicationController.errorEditingDownloadas": "Si è verificato un'errore durante il lavoro con il documento.<br>Usare l'opzione 'Scarica come...' per salvare la copia di backup del file sul disco rigido del computer.",
|
||||
"DE.ApplicationController.errorFilePassProtect": "Il file è protetto da una password. Impossibile aprirlo.",
|
||||
"DE.ApplicationController.errorFileSizeExceed": "La dimensione del file supera la limitazione impostata per il tuo server.<br>Per i dettagli, contatta l'amministratore del Document server.",
|
||||
"DE.ApplicationController.errorForceSave": "Si è verificato un errore durante il salvataggio del file. Utilizzare l'opzione 'Scarica come' per salvare il file sul disco rigido del computer o riprovare più tardi.",
|
||||
"DE.ApplicationController.errorInconsistentExt": "Si è verificato un errore durante l'apertura del file.<br>Il contenuto del file non corrisponde all'estensione del file.",
|
||||
"DE.ApplicationController.errorInconsistentExtDocx": "Si è verificato un errore durante l'apertura del file.<br>Il contenuto del file corrisponde a documenti di testo (ad es. docx), ma il file ha l'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPdf": "Si è verificato un errore durante l'apertura del file.<br>Il contenuto del file corrisponde a uno dei seguenti formati: pdf/djvu/xps/oxps, ma il file ha l'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPptx": "Si è verificato un errore durante l'apertura del file.<br>Il contenuto del file corrisponde a presentazioni (ad es. pptx), ma il file ha un'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtXlsx": "Si è verificato un errore durante l'apertura del file.<br>Il contenuto del file corrisponde a fogli di calcolo (ad es. xlsx), ma il file ha l'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorLoadingFont": "I caratteri non sono caricati.<br>Si prega di contattare il tuo amministratore di Document Server.",
|
||||
"DE.ApplicationController.errorFileSizeExceed": "La dimensione del file supera la limitazione impostata per il tuo server.<br>Per i dettagli, contatta l'amministratore del Server dei Documenti.",
|
||||
"DE.ApplicationController.errorForceSave": "Si è verificato un'errore durante il salvataggio del file. Usare l'opzione 'Scarica come' per salvare il file sul disco rigido del computer o riprovare più tardi.",
|
||||
"DE.ApplicationController.errorInconsistentExt": "Si è verificato un'errore durante l'apertura del file.<br>Il contenuto del file non corrisponde all'estensione.",
|
||||
"DE.ApplicationController.errorInconsistentExtDocx": "Si è verificato un'errore durante l'apertura del file.<br>Il contenuto del file corrisponde a documenti di testo (ad es. docx), ma il file ha l'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPdf": "Si è verificato un'errore durante l'apertura del file.<br>Il contenuto del file corrisponde a uno dei seguenti formati: pdf/djvu/xps/oxps, ma il file ha l'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPptx": "Si è verificato un'errore durante l'apertura del file.<br>Il contenuto del file corrisponde a presentazioni (ad es. pptx), ma il file ha un'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtXlsx": "Si è verificato un'errore durante l'apertura del file.<br>Il contenuto del file corrisponde a fogli di calcolo (ad es. xlsx), ma il file ha l'estensione incompatibile: %1.",
|
||||
"DE.ApplicationController.errorLoadingFont": "I caratteri non sono stati caricati.<br>Si prega di contattare il tuo amministratore del Server dei Documenti.",
|
||||
"DE.ApplicationController.errorSubmit": "Invio fallito.",
|
||||
"DE.ApplicationController.errorToken": "Il token di sicurezza del documento non è stato creato correttamente.<br>Si prega di contattare l'amministratore del Server dei Documenti.",
|
||||
"DE.ApplicationController.errorTokenExpire": "Il token di sicurezza del documento è scaduto.<br>Ti preghiamo di contattare l'amministratore del Document Server.",
|
||||
"DE.ApplicationController.errorTokenExpire": "Il gettone di sicurezza del documento è scaduto.<br>Ti preghiamo di contattare l'amministratore del Server dei Documenti.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connessione Internet è stata ripristinata e la versione del file è stata modificata.<br>Prima di poter continuare a lavorare, devi scaricare il file o copiarne il contenuto per assicurarti che nulla vada perso, quindi ricarica questa pagina.",
|
||||
"DE.ApplicationController.errorUserDrop": "Impossibile accedere al file subito.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Avviso",
|
||||
"DE.ApplicationController.openErrorText": "Si è verificato un errore durante l'apertura del file.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Attenzione",
|
||||
"DE.ApplicationController.openErrorText": "Si è verificato un'errore durante l'apertura del file.",
|
||||
"DE.ApplicationController.scriptLoadError": "La connessione è troppo lenta, alcuni componenti non possono essere caricati. Si prega di ricaricare la pagina.",
|
||||
"DE.ApplicationController.textAnonymous": "Anonimo",
|
||||
"DE.ApplicationController.textClear": "Cancella tutti i campi",
|
||||
"DE.ApplicationController.textConvertFormDownload": "Scarica il file come modulo PDF compilabile per poterlo compilare.",
|
||||
"DE.ApplicationController.textConvertFormDownload": "Scarica il file come modulo PDF compilabile per poterlo riempire.",
|
||||
"DE.ApplicationController.textCtrl": "Ctrl",
|
||||
"DE.ApplicationController.textDownloadPdf": "Scarica PDF",
|
||||
"DE.ApplicationController.textGotIt": "Capito",
|
||||
"DE.ApplicationController.textGuest": "Ospite",
|
||||
"DE.ApplicationController.textLoadingDocument": "Caricamento del documento",
|
||||
"DE.ApplicationController.textLoadingDocument": "Caricamento documento",
|
||||
"DE.ApplicationController.textNext": "Campo successivo",
|
||||
"DE.ApplicationController.textOf": "di",
|
||||
"DE.ApplicationController.textRequired": "Compila tutti i campi richiesti per inviare il modulo.",
|
||||
"DE.ApplicationController.textSubmit": "Invia",
|
||||
"DE.ApplicationController.textSubmited": "<b>Modulo è stato inviato con successo</b><br>Clicca su per chiudere la notifica</br>",
|
||||
"DE.ApplicationController.textSubmited": "<b>Il modulo è stato inviato</b><br>Clicca per chiudere la notifica</br>",
|
||||
"DE.ApplicationController.titleLicenseExp": "La licenza è scaduta",
|
||||
"DE.ApplicationController.titleLicenseNotActive": "Licenza non attiva",
|
||||
"DE.ApplicationController.txtClose": "Chiudi",
|
||||
@ -53,9 +53,9 @@
|
||||
"DE.ApplicationController.txtPressLink": "Premi %1 e clicca sul collegamento",
|
||||
"DE.ApplicationController.unknownErrorText": "Errore sconosciuto.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Il tuo browser non è supportato.",
|
||||
"DE.ApplicationController.waitText": "Per favore, attendi...",
|
||||
"DE.ApplicationController.waitText": "Per favore, attendere...",
|
||||
"DE.ApplicationController.warnLicenseBefore": "Licenza non attiva. Contattare l'Amministratore.",
|
||||
"DE.ApplicationController.warnLicenseExp": "La licenza è scaduta. Rinnova la tua licenza e aggiorna la pagina.",
|
||||
"DE.ApplicationController.warnLicenseExp": "La licenza è scaduta. Rinnovala e aggiorna la pagina.",
|
||||
"DE.ApplicationView.txtDownload": "Scarica",
|
||||
"DE.ApplicationView.txtDownloadDocx": "Scarica come .docx",
|
||||
"DE.ApplicationView.txtDownloadPdf": "Scarica come .pdf",
|
||||
@ -63,6 +63,6 @@
|
||||
"DE.ApplicationView.txtFileLocation": "Apri percorso file",
|
||||
"DE.ApplicationView.txtFullScreen": "Schermo intero",
|
||||
"DE.ApplicationView.txtPrint": "Stampa",
|
||||
"DE.ApplicationView.txtSearch": "Cerca",
|
||||
"DE.ApplicationView.txtSearch": "Trova",
|
||||
"DE.ApplicationView.txtShare": "Condividi"
|
||||
}
|
||||
@ -13,7 +13,7 @@
|
||||
"DE.ApplicationController.criticalErrorTitle": "오류",
|
||||
"DE.ApplicationController.downloadErrorText": "다운로드 실패",
|
||||
"DE.ApplicationController.downloadTextText": "문서 다운로드 중...",
|
||||
"DE.ApplicationController.errorAccessDeny": "권한이없는 작업을 수행하려고합니다. <br> Document Server 관리자에게 문의하십시오.",
|
||||
"DE.ApplicationController.errorAccessDeny": "권한이 없는 작업을 수행하려고 합니다.<br>관리자에게 문의하십시오.",
|
||||
"DE.ApplicationController.errorDefaultMessage": "오류 코드: %1",
|
||||
"DE.ApplicationController.errorEditingDownloadas": " 문서 작업 중에 알수 없는 장애가 발생했습니다.<br> \"다른 이름으로 다운로드...\"를 선택하여 파일을 현재 사용 중인 컴퓨터 하드 디스크에 저장하시기 바랍니다.",
|
||||
"DE.ApplicationController.errorFilePassProtect": "이 문서는 암호로 보호되어있어 열 수 없습니다.",
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
"DE.ApplicationController.scriptLoadError": "De verbinding is te langzaam, sommige componenten konden niet geladen worden. Laad de pagina opnieuw.",
|
||||
"DE.ApplicationController.textAnonymous": "Anoniem",
|
||||
"DE.ApplicationController.textClear": "Wis alle velden",
|
||||
"DE.ApplicationController.textConvertFormDownload": "Download het bestand als een invulbaar PDF-formulier om het in te vullen.",
|
||||
"DE.ApplicationController.textCtrl": "Ctrl",
|
||||
"DE.ApplicationController.textDownloadPdf": "Download PDF",
|
||||
"DE.ApplicationController.textGotIt": "OK",
|
||||
@ -53,6 +54,8 @@
|
||||
"DE.ApplicationController.unknownErrorText": "Onbekende fout.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Uw browser wordt niet ondersteund.",
|
||||
"DE.ApplicationController.waitText": "Een moment geduld",
|
||||
"DE.ApplicationController.warnLicenseBefore": "Licentie niet actief. Neem contact op met je beheerder.",
|
||||
"DE.ApplicationController.warnLicenseExp": "Je licentie is verlopen. Werk je licentie bij en vernieuw de pagina.",
|
||||
"DE.ApplicationView.txtDownload": "Download",
|
||||
"DE.ApplicationView.txtDownloadDocx": "Download als DOCX",
|
||||
"DE.ApplicationView.txtDownloadPdf": "Download als PDF",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"common.view.modals.txtCopy": "පසුරුපුවරුවට පිටපත් කරන්න",
|
||||
"common.view.modals.txtEmbed": "එබ්බවූ",
|
||||
"common.view.modals.txtCopy": "පසුරුපුවරුවට පිටපතක්",
|
||||
"common.view.modals.txtEmbed": "කාවැද්දූ",
|
||||
"common.view.modals.txtHeight": "උස",
|
||||
"common.view.modals.txtIncorrectPwd": "මුරපදය වැරදියි",
|
||||
"common.view.modals.txtOpenFile": "ගොනුව ඇරීමට මුරපදයක් යොදන්න",
|
||||
@ -11,28 +11,28 @@
|
||||
"DE.ApplicationController.convertationErrorText": "අනුවර්තනයට අසමත් විය.",
|
||||
"DE.ApplicationController.convertationTimeoutText": "අනුවර්තන කාලය ඉක්මවා ඇත.",
|
||||
"DE.ApplicationController.criticalErrorTitle": "දෝෂයකි",
|
||||
"DE.ApplicationController.downloadErrorText": "බාගැනීම අසාර්ථකයි.",
|
||||
"DE.ApplicationController.downloadErrorText": "බාගැනීමට අසමත් විය.",
|
||||
"DE.ApplicationController.downloadTextText": "ලේඛනය බාගැනෙමින්...",
|
||||
"DE.ApplicationController.errorAccessDeny": "අයිතියක් නැති ක්රියාමාර්ගයක් ගැනීමට ඔබ උත්සාහ කරයි.<br>ඔබගේ ලේඛන සේවාදායකයේ පරිපාලක අමතන්න.",
|
||||
"DE.ApplicationController.errorDefaultMessage": "දෝෂයේ කේතය: %1",
|
||||
"DE.ApplicationController.errorEditingDownloadas": "ලේඛනය සමඟ වැඩ කරන විට දෝෂයක් සිදු විය.<br>ඔබගේ පරිගණකයේ දෘඩ තැටියට ගොනුවේ උපස්ථ පිටපතක් සුරැකීමට 'මෙලෙස බාගන්න...' විකල්පය භාවිතා කරන්න.",
|
||||
"DE.ApplicationController.errorFilePassProtect": "ගොනුව රහස් පදයකින් ආරක්ෂිත බැවින් විවෘත කිරීමට නොහැකිය.",
|
||||
"DE.ApplicationController.errorFilePassProtect": "ගොනුව මුරපදයකින් ආරක්ෂිත බැවින් ඇරීමට නොහැකිය.",
|
||||
"DE.ApplicationController.errorFileSizeExceed": "ගොනුවේ ප්රමාණය ඔබගේ සේවාදායකයට සකසා ඇති සීමාව ඉක්මවයි.<br>වැඩි විස්තර සඳහා ඔබගේ ලේඛන සේවාදායකයේ පරිපාලක අමතන්න.",
|
||||
"DE.ApplicationController.errorForceSave": "ගොනුව සුරැකීමේදී දෝෂයක් සිදු විය. ඔබගේ පරිගණකයේ දෘඪ තැටියට ගොනුව සුරැකීමට 'ලෙස බාගන්න' විකල්පය භාවිතා කරන්න හෝ පසුව උත්සාහ කරන්න.",
|
||||
"DE.ApplicationController.errorInconsistentExt": "ගොනුව විවෘත කිරීමේදී දෝෂයක් සිදුවී ඇත.<br>ගොනුවේ අන්තර්ගතය මෙම ගොනුවේ දිගුවට නොගැළපේ.",
|
||||
"DE.ApplicationController.errorInconsistentExtDocx": "ගොනුව විවෘත කිරීමේදී දෝෂයක් සිදුවී ඇත.<br>ගොනුවේ අන්තර්ගතය පෙළ ලේඛන සඳහා අනුරූප වේ (උදා. docx), නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPdf": "ගොනුව විවෘත කිරීමේදී දෝෂයක් සිදු වී ඇත.<br>ගොනුවේ අන්තර්ගතය පහත දැක්වෙන ආකෘති වලින් එකකට අනුරූප වේ: pdf/djvu/xps/oxps, නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPptx": "ගොනුව විවෘත කිරීමේදී දෝෂයක් සිදුවී ඇත.<br>ගොනුවේ අන්තර්ගතය සමර්පණ සඳහා අනුරූප වේ (උදා. pptx), නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtXlsx": "ගොනුව විවෘත කිරීමේදී දෝෂයක් සිදුවී ඇත.<br>ගොනුවේ අන්තර්ගතය පැතුරුම්පත් සඳහා අනුරූප වේ (උදා. xlsx), නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorForceSave": "ගොනුව සුරැකීමේදී දෝෂයක් සිදු විය. ඔබගේ පරිගණකයේ දෘඪ තැටියට ගොනුව සුරැකීමට 'මෙලෙස බාගන්න' විකල්පය භාවිතා කරන්න හෝ පසුව උත්සාහ කරන්න.",
|
||||
"DE.ApplicationController.errorInconsistentExt": "ගොනුව අරින විට දෝෂයක් සිදු වී ඇත.<br>ගොනුවේ අන්තර්ගතය මෙම ගොනුවේ දිගුවට නොගැළපේ.",
|
||||
"DE.ApplicationController.errorInconsistentExtDocx": "ගොනුව අරින විට දෝෂයක් සිදු වී ඇත.<br>ගොනුවේ අන්තර්ගතය පෙළ ලේඛන සඳහා අනුරූප වේ (උදා. docx), නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPdf": "ගොනුව අරින විට දෝෂයක් සිදු වී ඇත.<br>ගොනුවේ අන්තර්ගතය පහත දැක්වෙන ආකෘති වලින් එකකට අනුරූප වේ: pdf/djvu/xps/oxps, නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPptx": "ගොනුව අරින විට දෝෂයක් සිදු වී ඇත.<br>ගොනුවේ අන්තර්ගතය සමර්පණ සඳහා අනුරූප වේ (උදා. pptx), නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtXlsx": "ගොනුව අරින විට දෝෂයක් සිදු වී ඇත.<br>ගොනුවේ අන්තර්ගතය පැතුරුම්පත් සඳහා අනුරූප වේ (උදා. xlsx), නමුත් ගොනුව සඳහා අසංගත දිගුවක් ඇත: %1.",
|
||||
"DE.ApplicationController.errorLoadingFont": "රුවකුරු පූරණය වී නැත.<br>ඔබගේ ලේඛන සේවාදායකයේ පරිපාලක අමතන්න.",
|
||||
"DE.ApplicationController.errorSubmit": "යොමු කිරීමට අසමත් විය.",
|
||||
"DE.ApplicationController.errorToken": "ලේඛනයේ ආරක්ෂණ නිමිත්ත නිවැරදිව පිහිටුවා නැත.<br>කරුණාකර ඔබගේ ලේඛන සේවාදායකයේ පරිපාලකයා අමතන්න.",
|
||||
"DE.ApplicationController.errorTokenExpire": "ලේඛන ආරක්ෂණ නිමිත්ත කල් ඉකුත් වී ඇත.<br> ඔබගේ ලේඛන සේවාදායකයේ පරිපාලක අමතන්න.",
|
||||
"DE.ApplicationController.errorTokenExpire": "ලේඛනයේ ආරක්ෂණ නිමිත්ත කල් ඉකුත් වී ඇත.<br>ඔබගේ ලේඛන සේවාදායකයේ පරිපාලකයා අමතන්න.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "සම්බන්ධතාව ප්රත්යර්පණය වී තිබෙන අතර ගොනුවේ අනුවාදය වෙනස්ව ඇත.<br>දිගටම වැඩ කිරීමට පෙර කිසිවක් අහිමි නොවීමට ඔබ ගොනුව බාගැනීම හෝ එහි අන්තර්ගතය පිටපත් කරගැනීම සිදුකළ යුතුය, ඉන්පසු මෙම පිටුව නැවත පූරණය කරන්න.",
|
||||
"DE.ApplicationController.errorUserDrop": "ගොනුවට මේ මොහොතේ ප්රවේශ වීමට නොහැකිය.",
|
||||
"DE.ApplicationController.errorUserDrop": "ගොනුවට මේ මොහොතේ ප්රවේශයට නොහැකිය.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "අවවාදයයි",
|
||||
"DE.ApplicationController.openErrorText": "ගොනුව විවෘත කිරීමේදී දෝෂයක් සිදු විය.",
|
||||
"DE.ApplicationController.scriptLoadError": "සම්බන්ධතාවය ඉතා මන්දගාමීය, සමහර සංරචක පූරණය නොවිණි. පිටුව නැවත පූරණය කරන්න.",
|
||||
"DE.ApplicationController.openErrorText": "ගොනුව අරින විට දෝෂයක් සිදු විය.",
|
||||
"DE.ApplicationController.scriptLoadError": "සම්බන්ධතාව ඉතා මන්දගාමීය, සමහර සංරචක පූරණය නොවුණි. පිටුව යළි පූරණය කරන්න.",
|
||||
"DE.ApplicationController.textAnonymous": "නිර්නාමික",
|
||||
"DE.ApplicationController.textClear": "සියළු ක්ෂේත්ර හිස්කරන්න",
|
||||
"DE.ApplicationController.textConvertFormDownload": "ගොනුව පිරවිය හැකි පීඩීඑෆ් ආකෘතිපත්රයක් ලෙස බාගන්න.",
|
||||
@ -52,14 +52,14 @@
|
||||
"DE.ApplicationController.txtEmpty": "(හිස්)",
|
||||
"DE.ApplicationController.txtPressLink": "%1 තද කරගෙන සබැඳිය ඔබන්න",
|
||||
"DE.ApplicationController.unknownErrorText": "නොදන්නා දෝෂයකි",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "ඔබගේ වියමන අතිරික්සුව සහය නොදක්වයි.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "ඔබගේ වියමන අතිරික්සුව සහාය නොදක්වයි.",
|
||||
"DE.ApplicationController.waitText": "කරුණාකර, රැඳෙන්න...",
|
||||
"DE.ApplicationController.warnLicenseBefore": "බලපත්රය සක්රිය නැත. කරුණාකර ඔබගේ පරිපාලක අමතන්න.",
|
||||
"DE.ApplicationController.warnLicenseExp": "බලපත්රය කල් ඉකුත් වී ඇත. ඔබගේ බලපත්රය යාවත්කාලීන කර පිටුව නැවුම් කරන්න.",
|
||||
"DE.ApplicationView.txtDownload": "බාගන්න",
|
||||
"DE.ApplicationView.txtDownloadDocx": "DOCX ලෙස බාගන්න",
|
||||
"DE.ApplicationView.txtDownloadPdf": "පීඩීඑෆ් ලෙස බාගන්න",
|
||||
"DE.ApplicationView.txtEmbed": "එබ්බවූ",
|
||||
"DE.ApplicationView.txtEmbed": "කාවැද්දූ",
|
||||
"DE.ApplicationView.txtFileLocation": "ගොනුවේ ස්ථානය අරින්න",
|
||||
"DE.ApplicationView.txtFullScreen": "පූර්ණ තිරය",
|
||||
"DE.ApplicationView.txtPrint": "මුද්රණය කරන්න",
|
||||
|
||||
68
apps/documenteditor/embed/locale/sq.json
Normal file
@ -0,0 +1,68 @@
|
||||
{
|
||||
"common.view.modals.txtCopy": "Kopjoni në kujtesën e fragmenteve",
|
||||
"common.view.modals.txtEmbed": "Integroj",
|
||||
"common.view.modals.txtHeight": "Lartësi",
|
||||
"common.view.modals.txtIncorrectPwd": "Fjalëkalimi është i gabuar",
|
||||
"common.view.modals.txtOpenFile": "Futni një fjalëkalim për të hapur skedarin",
|
||||
"common.view.modals.txtShare": "Shpërndaj lidhjen",
|
||||
"common.view.modals.txtTitleProtected": "Skedar i mbrojtur",
|
||||
"common.view.modals.txtWidth": "Gjerësia",
|
||||
"common.view.SearchBar.textFind": "Gjej",
|
||||
"DE.ApplicationController.convertationErrorText": "Konvertimi dështoi.",
|
||||
"DE.ApplicationController.convertationTimeoutText": "Koha e konvertimit u tejkalua.",
|
||||
"DE.ApplicationController.criticalErrorTitle": "Gabim",
|
||||
"DE.ApplicationController.downloadErrorText": "Sharkimi dështoi.",
|
||||
"DE.ApplicationController.downloadTextText": "Dokumenti po shkarkohet...",
|
||||
"DE.ApplicationController.errorAccessDeny": "Ju po përpiqeni të kryeni një veprim për të cilin nuk keni të drejta.<br>Ju lutem, kontaktoni administratorin e serverit të dokumenteve. ",
|
||||
"DE.ApplicationController.errorDefaultMessage": "Kodi gabim: %1",
|
||||
"DE.ApplicationController.errorEditingDownloadas": "Ndodhi një gabim gjatë punës me dokumentin.<br>Përdorni opsionin 'Shkarko si...' për të ruajtur kopjen rezervë të skedarit në hard diskun e kompjuterit tuaj.",
|
||||
"DE.ApplicationController.errorFilePassProtect": "Skedari eshte i mbrojtuar me fjalëkalim dhe nuk mund të hapet.",
|
||||
"DE.ApplicationController.errorFileSizeExceed": "Madhësia e skedarit tejkalon kufizimin e caktuar për serverin tuaj.<br> Ju lutem, kontaktoni adiminstratorin e serverit të dokumentit për detaje.",
|
||||
"DE.ApplicationController.errorForceSave": "Ndodhi një gabim gjatë ruajtjes së skedarit. Ju lutem përdorni opsionin 'Shkarko si' për të ruajtur skedarin në hard diskun e kompjuterit tuaj ose provoni përsëri më vonë. ",
|
||||
"DE.ApplicationController.errorInconsistentExt": "Ka ndodhur një gabim gjatë hapjes së skedarit.<br>Përmbajtja e skedarit nuk përputhet me shtrirjen e skedarit.",
|
||||
"DE.ApplicationController.errorInconsistentExtDocx": "Ka ndodhur një gabim gjatë hapjes së skedarit.<br>Përmbajtja e skedarit korrespondon me dokumentet tekstuale (e.g. docx), por skedari ka shtrirje jokonsistente: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPdf": "Ka ndodhur një gabim gjatë hapjes së skedarit.<br>Përmbajtja e skedarit korrespondon me një nga formatet e mëposhtme: pdf/djvu/xps/oxps, por skedari ka shtrirje jokonsistente: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtPptx": "Ka ndodhur një gabim gjatë hapjes së skedarit.<br>Përmbajtja e skedarit korrespondon me prezantimet (e.g. pptx), por skedari ka shtrirje jokonsistente: %1.",
|
||||
"DE.ApplicationController.errorInconsistentExtXlsx": "Ka ndodhur një gabim gjatë hapjes së skedarit.<br>Përmbajtja e skedarit korrespondon me fletëllogaritëse (e.g. xlsx), por skedari ka shtrirje jokonsistente: %1.",
|
||||
"DE.ApplicationController.errorLoadingFont": "Fontet nuk janë ngarkuar.<br>Ju lutem, kontaktoni administratorin tuaj të serverit të dokumenteve.",
|
||||
"DE.ApplicationController.errorSubmit": "Dërgimi dështoi",
|
||||
"DE.ApplicationController.errorToken": "Tokeni i sigurisë së dokumentit nuk është formuar saktë.<br>Ju lutem, kontaktoni administratorin e serverit të dokumentit.",
|
||||
"DE.ApplicationController.errorTokenExpire": "Tokeni i sigurisë së dokumentit ka skaduar.<br>Ju lutem, kontaktoni administratorin e serverit të dokumentit.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Lidhja është restauruar, dhe versioni i skedarit është ndryshuar .<br>Përpara se të vazhdoni të punoni, duhet të shkarkoni skedarin ose të kopjoni përmbajtjen e tij për të siguroheni që asgjë nuk ka humbur dhe më pas ringarkoni këtë faqe.",
|
||||
"DE.ApplicationController.errorUserDrop": "Skedari nuk mund të aksesohet tani.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Paralajmërim",
|
||||
"DE.ApplicationController.openErrorText": "Ka ndodhur një gabim gjatë mbylljes së skedarit.",
|
||||
"DE.ApplicationController.scriptLoadError": "Lidhja është shumë e ngadaltë, disa nga komponentët nuk mund të ngarkoheshin. Ju lutem ringarkoni faqen.",
|
||||
"DE.ApplicationController.textAnonymous": "Anonim",
|
||||
"DE.ApplicationController.textClear": "Pastroni të gjithë fushat",
|
||||
"DE.ApplicationController.textConvertFormDownload": "Shkarkoni skedarin në form PDF të plotësueshëm për të qenë në gjendje ta plotësoni atë.",
|
||||
"DE.ApplicationController.textCtrl": "Ctrl",
|
||||
"DE.ApplicationController.textDownloadPdf": "Shkarko PDF",
|
||||
"DE.ApplicationController.textGotIt": "E kuptova",
|
||||
"DE.ApplicationController.textGuest": "Vizitor",
|
||||
"DE.ApplicationController.textLoadingDocument": "Dokumenti po ngarkohet",
|
||||
"DE.ApplicationController.textNext": "Fusha e ardhshme",
|
||||
"DE.ApplicationController.textOf": "i/e",
|
||||
"DE.ApplicationController.textRequired": "Mbush të gjitha fushat e kërkuara për të dërguar fomularin.",
|
||||
"DE.ApplicationController.textSubmit": "Dërgo",
|
||||
"DE.ApplicationController.textSubmited": "<b>Formulari u dergua me sukses</b><br>Klikoni per te mbyllur keshillen",
|
||||
"DE.ApplicationController.titleLicenseExp": "Licensa ka skaduar",
|
||||
"DE.ApplicationController.titleLicenseNotActive": "Licensë jo aktive",
|
||||
"DE.ApplicationController.txtClose": "Mbyll",
|
||||
"DE.ApplicationController.txtEmpty": "(Bosh)",
|
||||
"DE.ApplicationController.txtPressLink": "Shtypni %1 dhe klikoni lidhjen.",
|
||||
"DE.ApplicationController.unknownErrorText": "Gabim i panjohur",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Shfletuesi juaj nuk suportohet.",
|
||||
"DE.ApplicationController.waitText": "Ju lutem, prisni...",
|
||||
"DE.ApplicationController.warnLicenseBefore": "Licensë jo aktive. Ju lutem kontaktoni administratorin tuaj. ",
|
||||
"DE.ApplicationController.warnLicenseExp": "Licensa juaj ka skaduar. Ju lutem përditësoni licensën tuaj dhe rifreskoni faqen.",
|
||||
"DE.ApplicationView.txtDownload": "Shkarko",
|
||||
"DE.ApplicationView.txtDownloadDocx": "Shkarko si DOCX",
|
||||
"DE.ApplicationView.txtDownloadPdf": "Shkarko si PDF",
|
||||
"DE.ApplicationView.txtEmbed": "Pjesë e integruar",
|
||||
"DE.ApplicationView.txtFileLocation": "Hap lokacionin e skedarit",
|
||||
"DE.ApplicationView.txtFullScreen": "Ekran i plotë",
|
||||
"DE.ApplicationView.txtPrint": "Printo",
|
||||
"DE.ApplicationView.txtSearch": "Zbuloj diçka të fshehur.",
|
||||
"DE.ApplicationView.txtShare": "Shpërndaj"
|
||||
}
|
||||
@ -94,11 +94,15 @@ define([
|
||||
"Enter a date": this.txtEnterDate,
|
||||
"Click to load image": this.txtClickToLoad
|
||||
}
|
||||
this.api = new Asc.asc_docs_api({
|
||||
'id-view' : 'editor_sdk',
|
||||
'embedded' : true,
|
||||
'translate': translationTable
|
||||
});
|
||||
var config = {
|
||||
'id-view' : 'editor_sdk',
|
||||
'embedded' : true,
|
||||
'translate': translationTable,
|
||||
'isRtlInterface': Common.UI.isRTL()
|
||||
},
|
||||
hcolor = (/(?:&|^)headingsColor=([^&]+)&?/i).exec(window.location.search.substring(1));
|
||||
hcolor && (config['headings-color'] = '#' + hcolor[1]);
|
||||
this.api = new Asc.asc_docs_api(config);
|
||||
|
||||
Common.UI.Themes.init(this.api);
|
||||
Common.Controllers.LaunchController.init(this.api);
|
||||
@ -472,6 +476,7 @@ define([
|
||||
this.appOptions.isDesktopApp = this.editorConfig.targetApp == 'desktop' || Common.Controllers.Desktop.isActive();
|
||||
this.appOptions.lang = this.editorConfig.lang;
|
||||
this.appOptions.canPlugins = false;
|
||||
this.appOptions.canRequestFillingStatus = this.editorConfig.canRequestFillingStatus;
|
||||
|
||||
Common.Controllers.Desktop.init(this.appOptions);
|
||||
|
||||
@ -658,32 +663,30 @@ define([
|
||||
DE.getController('Plugins').setMode(this.appOptions, this.api);
|
||||
|
||||
var me = this;
|
||||
me.view.btnSubmit.setVisible(this.appOptions.canFillForms && this.appOptions.canSubmitForms);
|
||||
me.view.btnDownload.setVisible(false && this.appOptions.canDownload && this.appOptions.canFillForms && !this.appOptions.canSubmitForms);
|
||||
if (me.appOptions.isOffline || me.appOptions.canRequestSaveAs || !!me.appOptions.saveAsUrl) {
|
||||
me.view.btnDownload.setCaption(me.appOptions.isOffline ? me.textSaveAsDesktop : me.textSaveAs);
|
||||
me.view.btnDownload.updateHint('');
|
||||
}
|
||||
if (!this.appOptions.canFillForms) {
|
||||
me.view.btnPrev.setVisible(false);
|
||||
me.view.btnNext.setVisible(false);
|
||||
me.view.btnClear.setVisible(false);
|
||||
me.view.btnUndo.setVisible(false);
|
||||
me.view.btnRedo.setVisible(false);
|
||||
me.view.btnRedo.$el.next().hide();
|
||||
} else {
|
||||
me.showFillingForms(false); // hide filling forms
|
||||
me.view.btnFillStatus.setVisible(this.appOptions.canRequestFillingStatus);
|
||||
if (this.appOptions.canFillForms) {
|
||||
me.view.btnPrev.on('click', function(){
|
||||
me.api.asc_MoveToFillingForm(false);
|
||||
me.onEditComplete();
|
||||
});
|
||||
me.view.btnNext.on('click', function(){
|
||||
me.api.asc_MoveToFillingForm(true);
|
||||
me.onEditComplete();
|
||||
});
|
||||
me.view.btnClear.on('click', function(){
|
||||
me.api.asc_ClearAllSpecialForms();
|
||||
me.onEditComplete();
|
||||
});
|
||||
me.view.btnSubmit.on('click', function(){
|
||||
if (!me.api.asc_IsAllRequiredFormsFilled()) {
|
||||
me.api.asc_MoveToFillingForm(true, true, true);
|
||||
me.onEditComplete();
|
||||
if (!me.requiredTooltip) {
|
||||
me.requiredTooltip = new Common.UI.SynchronizeTip({
|
||||
extCls: 'colored',
|
||||
@ -726,9 +729,16 @@ define([
|
||||
});
|
||||
me.view.btnUndo.on('click', function(){
|
||||
me.api.Undo(false);
|
||||
me.onEditComplete();
|
||||
|
||||
});
|
||||
me.view.btnRedo.on('click', function(){
|
||||
me.api.Redo(false);
|
||||
me.onEditComplete();
|
||||
});
|
||||
me.view.btnFillStatus.on('click', function(){
|
||||
Common.UI.TooltipManager.closeTip('showFillStatus');
|
||||
Common.Gateway.requestFillingStatus(me.appOptions.user.roles && me.appOptions.user.roles.length>0 ? me.appOptions.user.roles[0] : undefined);
|
||||
});
|
||||
|
||||
this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyForms);
|
||||
@ -1098,7 +1108,7 @@ define([
|
||||
closable: false,
|
||||
msg: err,
|
||||
callback: function(btn){
|
||||
Common.NotificationCenter.trigger('edit:complete', me);
|
||||
me.onEditComplete();
|
||||
}
|
||||
});
|
||||
}).on('close', function(obj){
|
||||
@ -1515,6 +1525,25 @@ define([
|
||||
|
||||
var me = this;
|
||||
me._isDocReady = true;
|
||||
|
||||
if (me.appOptions.canFillForms) {
|
||||
var oform = me.api.asc_GetOForm(),
|
||||
role = new AscCommon.CRestrictionSettings();
|
||||
if (oform && me.appOptions.user.roles) {
|
||||
if (me.appOptions.user.roles.length>0 && oform.asc_canFillRole(me.appOptions.user.roles[0])) {
|
||||
role.put_OFormRole(this.appOptions.user.roles[0]);
|
||||
me.showFillingForms(true);
|
||||
} else {
|
||||
role.put_OFormNoRole(true);
|
||||
me.view.btnFillStatus && me.view.btnFillStatus.isVisible() && Common.UI.TooltipManager.addTips({
|
||||
'showFillStatus': { name: 'de-help-tip-fill-status', text: me.helpTextFillStatus, target: '#id-btn-status', placement: 'bottom-left', showButton: false, automove: true, maxwidth: 300 }
|
||||
});
|
||||
}
|
||||
} else // can fill all fields
|
||||
me.showFillingForms(true);
|
||||
this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyForms, role);
|
||||
}
|
||||
|
||||
this.hidePreloader();
|
||||
this.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
|
||||
Common.NotificationCenter.trigger('app:face', this.appOptions); // for Desktop controller only
|
||||
@ -1563,6 +1592,7 @@ define([
|
||||
Common.Gateway.documentReady();
|
||||
Common.Analytics.trackEvent('Load', 'Complete');
|
||||
Common.NotificationCenter.trigger('document:ready');
|
||||
Common.UI.TooltipManager.showTip('showFillStatus');
|
||||
requireUserAction = false;
|
||||
},
|
||||
|
||||
@ -1909,7 +1939,7 @@ define([
|
||||
var me = this;
|
||||
_.delay(function(){
|
||||
if (event.get_Type() == 0) {
|
||||
me.api && me.appOptions.canFillForms && me.fillMenuProps(me.api.getSelectedElements(), event);
|
||||
me.api && me.appOptions.canFillForms && me.isFormFillingVisible && me.fillMenuProps(me.api.getSelectedElements(), event);
|
||||
}
|
||||
},10);
|
||||
},
|
||||
@ -1983,19 +2013,30 @@ define([
|
||||
} else if (Asc.c_oAscTypeSelectElement.Header == elType) {
|
||||
menu_props.headerProps = {};
|
||||
menu_props.headerProps.locked = (elValue) ? elValue.get_Locked() : false;
|
||||
} else if (Asc.c_oAscTypeSelectElement.ContentControl == elType) {
|
||||
menu_props.controlProps = {};
|
||||
menu_props.controlProps.formPr = (elValue) ? elValue.get_FormPr() : null;
|
||||
}
|
||||
}
|
||||
if (this.textMenu && !noobject) {
|
||||
var cancopy = this.api.can_CopyCut(),
|
||||
disabled = menu_props.paraProps && menu_props.paraProps.locked || menu_props.headerProps && menu_props.headerProps.locked ||
|
||||
menu_props.imgProps && (menu_props.imgProps.locked || menu_props.imgProps.content_locked) || this._isDisabled;
|
||||
menu_props.imgProps && (menu_props.imgProps.locked || menu_props.imgProps.content_locked) || this._isDisabled,
|
||||
canFillRole = true;
|
||||
|
||||
if (menu_props.controlProps && menu_props.controlProps.formPr) {
|
||||
var oform = this.api.asc_GetOForm();
|
||||
if (oform && !oform.asc_canFillRole(menu_props.controlProps.formPr.get_Role())) {
|
||||
canFillRole = false;
|
||||
}
|
||||
}
|
||||
this.textMenu.items[0].setDisabled(disabled || !this.api.asc_getCanUndo()); // undo
|
||||
this.textMenu.items[1].setDisabled(disabled || !this.api.asc_getCanRedo()); // redo
|
||||
|
||||
this.textMenu.items[3].setDisabled(disabled); // clear
|
||||
this.textMenu.items[5].setDisabled(disabled || !cancopy); // cut
|
||||
this.textMenu.items[3].setDisabled(disabled || !canFillRole); // clear
|
||||
this.textMenu.items[5].setDisabled(disabled || !cancopy || !canFillRole); // cut
|
||||
this.textMenu.items[6].setDisabled(!cancopy); // copy
|
||||
this.textMenu.items[7].setDisabled(disabled) // paste;
|
||||
this.textMenu.items[7].setDisabled(disabled || !canFillRole) // paste;
|
||||
|
||||
this.showPopupMenu(this.textMenu, {}, event);
|
||||
}
|
||||
@ -2041,7 +2082,43 @@ define([
|
||||
this.view && this.view.btnClear && this.view.btnClear.setDisabled(state);
|
||||
this.view && this.view.btnUndo && this.view.btnUndo.setDisabled(state || !this.api.asc_getCanUndo());
|
||||
this.view && this.view.btnRedo && this.view.btnRedo.setDisabled(state || !this.api.asc_getCanRedo());
|
||||
this.api.asc_setRestriction(state || !this.appOptions.canFillForms ? Asc.c_oAscRestrictionType.View : Asc.c_oAscRestrictionType.OnlyForms);
|
||||
if (this.view && this.view.btnOptions && this.view.btnOptions.menu) {
|
||||
this.view.btnOptions.menu.items[0].setDisabled(state || !this.api.asc_getCanUndo()); // undo
|
||||
this.view.btnOptions.menu.items[1].setDisabled(state || !this.api.asc_getCanRedo()); // redo
|
||||
this.view.btnOptions.menu.items[3].setDisabled(); // clear
|
||||
}
|
||||
var oform = this.api.asc_GetOForm(),
|
||||
role = new AscCommon.CRestrictionSettings();
|
||||
if (oform && this.appOptions.user.roles) {
|
||||
if (this.appOptions.user.roles.length>0 && oform.asc_canFillRole(this.appOptions.user.roles[0])) {
|
||||
role.put_OFormRole(this.appOptions.user.roles[0]);
|
||||
} else {
|
||||
role.put_OFormNoRole(true);
|
||||
}
|
||||
}
|
||||
this.api.asc_setRestriction(state || !this.appOptions.canFillForms ? Asc.c_oAscRestrictionType.View : Asc.c_oAscRestrictionType.OnlyForms, role);
|
||||
},
|
||||
|
||||
showFillingForms: function(visible) {
|
||||
this.isFormFillingVisible = visible;
|
||||
if (this.view) {
|
||||
visible = visible && this.appOptions.canFillForms;
|
||||
this.view.btnPrev.setVisible(visible);
|
||||
this.view.btnNext.setVisible(visible);
|
||||
this.view.btnClear.setVisible(visible);
|
||||
this.view.btnUndo.setVisible(visible);
|
||||
this.view.btnRedo.setVisible(visible);
|
||||
this.view.btnRedo.$el.next().hide();
|
||||
this.view.btnSubmit.setVisible(visible && this.appOptions.canSubmitForms);
|
||||
if (this.view.btnOptions && this.view.btnOptions.menu) {
|
||||
var menuItems = this.view.btnOptions.menu.items;
|
||||
menuItems[0].setVisible(visible); // undo
|
||||
menuItems[1].setVisible(visible); // redo
|
||||
menuItems[2].setVisible(visible); // --
|
||||
menuItems[3].setVisible(visible); // clear
|
||||
menuItems[4].setVisible(visible); // --
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onApiServerDisconnect: function(enableDownload) {
|
||||
@ -2071,10 +2148,10 @@ define([
|
||||
onApiCanRevert: function(which, can) {
|
||||
if (!this.view) return;
|
||||
|
||||
(which=='undo') ? this.view.btnUndo.setDisabled(!can) : this.view.btnRedo.setDisabled(!can);
|
||||
(which=='undo') ? this.view.btnUndo.setDisabled(!can || this._isDisabled) : this.view.btnRedo.setDisabled(!can || this._isDisabled);
|
||||
|
||||
if (this.view.btnOptions && this.view.btnOptions.menu) {
|
||||
(which=='undo') ? this.view.btnOptions.menu.items[0].setDisabled(!can) : this.view.btnOptions.menu.items[1].setDisabled(!can);
|
||||
(which=='undo') ? this.view.btnOptions.menu.items[0].setDisabled(!can || this._isDisabled) : this.view.btnOptions.menu.items[1].setDisabled(!can || this._isDisabled);
|
||||
}
|
||||
},
|
||||
|
||||
@ -2133,6 +2210,11 @@ define([
|
||||
}
|
||||
},
|
||||
|
||||
onEditComplete: function() {
|
||||
var me = this;
|
||||
me.boxSdk && _.defer(function(){ me.boxSdk.focus(); }, 50);
|
||||
},
|
||||
|
||||
errorDefaultMessage : 'Error code: %1',
|
||||
unknownErrorText : 'Unknown error.',
|
||||
convertationTimeoutText : 'Conversion timeout exceeded.',
|
||||
|
||||
@ -55,8 +55,9 @@ define([
|
||||
|
||||
onLaunch: function() {
|
||||
this.autostart = [];
|
||||
|
||||
this.startOnPostLoad = false;
|
||||
Common.Gateway.on('init', this.loadConfig.bind(this));
|
||||
Common.NotificationCenter.on('script:loaded', this.onPostLoadComplete.bind(this));
|
||||
},
|
||||
|
||||
loadConfig: function(data) {
|
||||
@ -175,7 +176,12 @@ define([
|
||||
},
|
||||
help: !!help,
|
||||
loader: plugin.get_Loader(),
|
||||
modal: isModal!==undefined ? isModal : true
|
||||
modal: isModal!==undefined ? isModal : !variation.get_InsideMode(),
|
||||
resizable: !!variation.get_InsideMode(),
|
||||
minwidth: variation.get_InsideMode() ? 300 : undefined,
|
||||
minheight: variation.get_InsideMode() ? 300 : undefined,
|
||||
maxwidth: variation.get_InsideMode() ? Common.Utils.innerWidth() : undefined,
|
||||
maxheight: variation.get_InsideMode() ? Common.Utils.innerHeight() : undefined
|
||||
});
|
||||
me.pluginDlg.on({
|
||||
'render:after': function(obj){
|
||||
@ -231,6 +237,10 @@ define([
|
||||
}
|
||||
},
|
||||
|
||||
onPostLoadComplete: function() {
|
||||
this.startOnPostLoad && this.runAutoStartPlugins();
|
||||
},
|
||||
|
||||
resetPluginsList: function() {
|
||||
this.getApplication().getCollection('Common.Collections.Plugins').reset();
|
||||
},
|
||||
@ -341,7 +351,8 @@ define([
|
||||
|
||||
if (this.appOptions.canPlugins) {
|
||||
this.refreshPluginsList();
|
||||
this.runAutoStartPlugins();
|
||||
this.startOnPostLoad = !Common.Controllers.LaunchController.isScriptLoaded();
|
||||
!this.startOnPostLoad && this.runAutoStartPlugins();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||