/* * (c) Copyright Ascensio System SIA 2010-2024 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish * street, Riga, Latvia, EU, LV-1050. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, undefined){ function CIHelper(plugin) { this.plugin = plugin; this.ps; this.items = []; this.isVisible = false; this.isCurrentVisible = false; }; CIHelper.prototype.createWindow = function() { var _body = document.body; var _head = document.getElementsByTagName('head')[0]; if (!_body || !_head) return; var _style = document.createElement('style'); _style.type = 'text/css'; var _style_body = ".ih_main { margin: 0px; padding: 0px; width: 100%; height: 100%; display: inline-block; overflow: hidden; box-sizing: border-box; user-select: none; position: fixed; border: 1px solid #cfcfcf; } "; _style_body += "ul { margin: 0px; padding: 0px; width: 100%; height: 100%; list-style-type: none; outline:none; } "; _style_body += "li { padding: 5px; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 400; color: #373737; } "; _style_body += "li:hover { background-color: #D8DADC; } "; _style_body += ".li_selected { background-color: #D8DADC; color: #373737; }"; _style_body += ".li_selected:hover { background-color: #D8DADC; color: #373737; }"; _style.innerHTML = _style_body; _head.appendChild(_style); document.body.style.background = "#FFFFFF"; document.body.style.width = "100%"; document.body.style.height = "100%"; document.body.style.margin = "0"; document.body.style.padding = "0"; document.body.innerHTML = "
"; this.ps = new PerfectScrollbar(document.getElementById("ih_area"), { minScrollbarLength: 20 }); this.updateScrolls(); this.createDefaultEvents(); }; CIHelper.prototype.setItems = function(items) { this.items = items; var _data = ""; var _len = items.length; for (var i = 0; i < _len; i++) { if (undefined === items[i].id) items[i].id = "" + i; _data += "
  • "; _data += items[i].text; _data += "
  • "; } document.getElementById("ih_elements_id").innerHTML = _data; this.updateScrolls(); this.scrollToSelected(); }; CIHelper.prototype.createDefaultEvents = function() { this.plugin.onExternalMouseUp = function() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("mouseup", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); document.dispatchEvent(evt); }; var _t = this; window.onkeydown = function(e) { switch (e.keyCode) { case 27: // Escape { if (_t.isVisible) { _t.isVisible = false; _t.plugin.executeMethod("UnShowInputHelper", [_t.plugin.info.guid, true]); } break; } case 38: // Up case 40: // Down case 9: // Tab case 36: // Home case 35: // End case 33: // PageUp case 34: // PageDown { var items = document.getElementsByTagName("li"); var curIndex = -1; for (var i = 0; i < items.length; i++) { if (items[i].className == "li_selected") { curIndex = i; items[i].className = ""; break; } } if (curIndex == -1) { curIndex = 0; } else { switch (e.keyCode) { case 38: { curIndex--; if (curIndex < 0) curIndex = 0; break; } case 40: { curIndex++; if (curIndex >= items.length) curIndex = items.length - 1; break; } case 9: { curIndex++; if (curIndex >= items.length) curIndex = 0; break; } case 36: { curIndex = 0; break; } case 35: { curIndex = items.length - 1; break; } case 33: case 34: { var _indexDif = 1; var _count = (document.getElementById("ih_area").clientHeight / 24) >> 0; if (_count > 1) _indexDif = _count; if (33 == e.keyCode) { curIndex -= _indexDif; if (curIndex < 0) curIndex = 0; } else { curIndex += _indexDif; if (curIndex >= items.length) curIndex = curIndex = items.length - 1;; } break; } } } if (curIndex < items.length) { items[curIndex].className = "li_selected"; var _currentOffset = items[curIndex].offsetTop; var _currentHeight = items[curIndex].offsetHeight; var container = document.getElementById("ih_area"); var _currentScroll = container.scrollTop; if (_currentOffset < _currentScroll) { if (container.scrollTo) container.scrollTo(0, _currentOffset); else container.scrollTop = _currentOffset; } else if ((_currentScroll + container.offsetHeight) < (_currentOffset + _currentHeight)) { if (container.scrollTo) container.scrollTo(0, _currentOffset - (container.offsetHeight - _currentHeight)); else container.scrollTop = _currentOffset - (container.offsetHeight - _currentHeight); } } break; } case 13: { _t.onSelectedItem(); break; } } if (e.preventDefault) e.preventDefault(); if (e.stopPropagation) e.stopPropagation(); return false; }; window.onresize = function(e) { _t.updateScrolls(); }; window._private_on_ih_click = function(e) { var items = document.getElementsByTagName("li"); for (var i = 0; i < items.length; i++) { items[i].className = ""; } e.target.className = "li_selected"; var _id = e.target.getAttribute("id"); _t.onSelectedItem(); }; this.plugin.event_onKeyDown = function(data) { window.onkeydown({ keyCode : data.keyCode }); }; }; CIHelper.prototype.updateScrolls = function() { this.ps.update(); this.ps.update(); var _elemV = document.getElementsByClassName("ps__rail-y")[0]; var _elemH = document.getElementsByClassName("ps__rail-x")[0]; if (!_elemH || !_elemV) return; var _styleV = window.getComputedStyle(_elemV); var _styleH = window.getComputedStyle(_elemH); var _visibleV = (_styleV && _styleV.display == "none") ? false : true; var _visibleH = (_styleH && _styleH.display == "none") ? false : true; if (_visibleH && _visibleV) { if ("13px" != _elemV.style.marginBottom) _elemV.style.marginBottom = "13px"; if ("13px" != _elemH.style.marginRight) _elemH.style.marginRight = "13px"; } else { if ("2px" != _elemV.style.marginBottom) _elemV.style.marginBottom = "2px"; if ("2px" != _elemH.style.marginRight) _elemH.style.marginRight = "2px"; } }; CIHelper.prototype.scrollToSelected = function() { var items = document.getElementsByTagName("li"); var curIndex = -1; for (var i = 0; i < items.length; i++) { if (items[i].className == "li_selected") { var container = document.getElementById("ih_area"); if (container.scrollTo) container.scrollTo(0, items[i].offsetTop); else container.scrollTop = items[i].offsetTop; return; } } }; CIHelper.prototype.getSelectedItem = function() { var items = document.getElementsByTagName("li"); var curId = -1; for (var i = 0; i < items.length; i++) { if (items[i].className == "li_selected") { curId = items[i].getAttribute("id"); break; } } if (-1 == curId) return null; var len = this.items.length; for (var i = 0; i < len; i++) { if (curId == this.items[i].id) return this.items[i]; } return null; }; CIHelper.prototype.onSelectedItem = function() { if (this.plugin.inputHelper_onSelectItem) this.plugin.inputHelper_onSelectItem(this.getSelectedItem()); }; CIHelper.prototype.show = function(w, h, isKeyboardTake) { this.isCurrentVisible = true; this.plugin.executeMethod("ShowInputHelper", [this.plugin.info.guid, w, h, isKeyboardTake], function() { window.Asc.plugin.ih.isVisible = true; }); }; CIHelper.prototype.unShow = function() { if (!this.isCurrentVisible && !this.isVisible) return; this.isCurrentVisible = false; window.Asc.plugin.executeMethod("UnShowInputHelper", [this.plugin.info.guid], function() { window.Asc.plugin.ih.isVisible = false; }); }; CIHelper.prototype.getItemHeight = function() { var _sizeItem = 24; var _items = document.getElementsByTagName("li"); if (_items.length > 0 && _items[0].offsetHeight > 0) _sizeItem = _items[0].offsetHeight; return _sizeItem; }; CIHelper.prototype.getItemsHeight = function(count) { return 2 + count * this.getItemHeight(); }; CIHelper.prototype.getItems = function() { return this.items; }; CIHelper.prototype.getScrollSizes = function() { var _size = { w : 0, h : 0 }; var _sizeItem = this.getItemHeight(); var _elem = document.getElementById("ih_elements_id"); if (_elem) { _size.w = _elem.scrollWidth; _size.h = 2 + this.items.length * _sizeItem; } return _size; }; function CPluginWindow() { this.id = window.Asc.generateGuid(); this.id = this.id.replace(/-/g, ''); this._events = {}; this._register(); } CPluginWindow.prototype._register = function() { var plugin = window.Asc.plugin; if (!plugin._windows) plugin._windows = {}; plugin._windows[this.id] = this; }; CPluginWindow.prototype._unregister = function() { var plugin = window.Asc.plugin; if (!plugin._windows || !plugin._windows[this.id]) return; delete plugin._windows[this.id]; }; CPluginWindow.prototype.show = function(settings) { var url = settings.url; if ((0 !== url.indexOf("http://")) && (0 !== url.indexOf("https://")) && (0 !== url.indexOf("file://")) && (0 !== url.indexOf("www."))) { let location = window.location; let start = location.pathname.lastIndexOf('/') + 1; let file = location.pathname.substring(start); url = location.href.replace(file, url); } if (-1 === url.indexOf(".html?")) url += "?windowID="; else url += "&windowID="; settings.url = url + this.id; window.Asc.plugin.executeMethod("ShowWindow", [this.id, settings]); }; CPluginWindow.prototype.activate = function(isFocus) { window.Asc.plugin.executeMethod("ActivateWindow", [this.id, isFocus]); }; CPluginWindow.prototype.close = function() { window.Asc.plugin.executeMethod("CloseWindow", [this.id]); this._unregister(); }; CPluginWindow.prototype.command = function(name, data) { window.Asc.plugin.executeMethod("SendToWindow", [this.id, name, data]); }; CPluginWindow.prototype.attachEvent = function(id, action) { this._events[id] = action; }; CPluginWindow.prototype.detachEvent = function(id) { if (this._events && this._events[id]) delete this._events[id]; }; CPluginWindow.prototype._oncommand = function(id, data) { if (this._events && this._events[id]) this._events[id].call(window.Asc.plugin, data); }; window.Asc = window.Asc || {}; window.Asc.generateGuid = function() { if (!window.crypto || !window.crypto.getRandomValues) { function s4() { return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); } return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); } else { var array = new Uint16Array(8); window.crypto.getRandomValues(array); var index = 0; function s4() { var value = 0x10000 + array[index++]; return value.toString(16).substring(1); } return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); } }; window.Asc.inputHelper = CIHelper; window.Asc.PluginWindow = CPluginWindow; })(window, undefined); (function(window, undefined){ function onReloadPage(isCtrl) { window.parent.postMessage(JSON.stringify({ type : "reload", guid : window.Asc.plugin.guid, ctrl : isCtrl }), "*"); } function onBaseKeyDown(e) { var isCtrl = (e.metaKey || e.ctrlKey) ? true : false; if (e.keyCode == 116) { onReloadPage(isCtrl); if (e.preventDefault) e.preventDefault(); if (e.stopPropagation) e.stopPropagation(); return false; } } if (window.addEventListener) window.addEventListener("keydown", onBaseKeyDown, false); else window.attachEvent("keydown", onBaseKeyDown); })(window, undefined); (function(window, undefined){ // className => { css property => key in theme object } var g_themes_map = { "body" : { "color" : "text-normal", "background-color" : "background-toolbar" }, ".defaultlable" : { "color" : "text-normal" }, ".aboutlable" : { "color" : "text-normal" }, "a.aboutlink" : { "color" : "text-normal" }, ".form-control, .form-control[readonly], .form-control[disabled]" : { "color" : "text-normal", "background-color" : "background-normal", "border-color" : "border-regular-control" }, ".form-control:focus" : { "border-color" : "border-control-focus" }, ".form-control[disabled]" : { "color" : "text-invers" }, ".btn-text-default" : { "background-color" : "background-normal", "border-color" : "border-regular-control", "color" : "text-normal" }, ".btn-text-default:hover" : { "background-color" : "highlight-button-hover" }, ".btn-text-default.active,\ .btn-text-default:active" : { "background-color" : "highlight-button-pressed !important", "color" : "text-normal-pressed" }, ".btn-text-default[disabled]:hover,\ .btn-text-default.disabled:hover,\ .btn-text-default[disabled]:active,\ .btn-text-default[disabled].active,\ .btn-text-default.disabled:active,\ .btn-text-default.disabled.active": {"background-color" : "background-normal !important", "color" : "text-normal"}, ".select2-container--default .select2-selection--single" : { "color" : "text-normal", "background-color" : "background-normal" }, ".select2-container--default .select2-selection--single .select2-selection__rendered" : { "color" : "text-normal" }, ".select2-results" : { "background-color" : "background-normal" }, ".select2-container--default .select2-results__option--highlighted[aria-selected]" : { "background-color" : "highlight-button-hover !important"}, ".select2-container--default .select2-results__option[aria-selected=true]" : { "background-color" : "highlight-button-pressed !important", "color" : "text-normal-pressed"}, ".select2-dropdown, .select2-container--default .select2-selection--single" : { "border-color" : "border-regular-control !important"}, ".select2-container--default.select2-container--open .select2-selection--single" : { "border-color" : "border-control-focus !important"}, ".select2-container--default.select2-container--focus:not(.select2-container--open) .select2-selection--single" : { "border-color" : "border-regular-control !important"}, ".select2-container--default.select2-container--open.select2-container--focus .select2-selection--single" : { "border-color" : "border-control-focus !important"}, ".select2-search--dropdown" : { "background-color" : "background-normal !important"}, ".select2-container--default .select2-search--dropdown .select2-search__field" : { "color" : "text-normal", "background-color" : "background-normal", "border-color" : "border-regular-control"}, ".select2-container--default.select2-container--disabled .select2-selection--single" : { "background-color" : "background-normal" }, ".select2-container--default .select2-selection--single .select2-selection__arrow b" : { "border-color" : "text-normal !important" }, ".select2-container--default.select2-container--open .select2-selection__arrow b" : {"border-color" : "text-normal !important"}, ".ps .ps__rail-y:hover" : {"background-color" : "background-toolbar" }, ".ps .ps__rail-y.ps--clicking" : {"background-color" : "background-toolbar" }, ".ps__thumb-y" : { "background-color" : "background-normal", "border-color" : "Border !important" }, ".ps__rail-y:hover > .ps__thumb-y" : {"border-color" : "canvas-scroll-thumb-hover", "background-color" : "canvas-scroll-thumb-hover !important" }, ".ps .ps__rail-x:hover" : {"background-color" : "background-toolbar" }, ".ps .ps__rail-x.ps--clicking" : {"background-color" : "background-toolbar" }, ".ps__thumb-x" : { "background-color" : "background-normal", "border-color" : "Border !important" }, ".ps__rail-x:hover > .ps__thumb-x" : {"border-color" : "canvas-scroll-thumb-hover" }, "a" : { "color" : "text-link !important" }, "a:hover" : { "color" : "text-link-hover !important" }, "a:active" : { "color" : "text-link-active !important" }, "a:visited" : { "color" : "text-link-visited !important" }, "*::-webkit-scrollbar-track" : { "background" : "background-normal" }, "*::-webkit-scrollbar-track:hover" : { "background" : "background-toolbar-additional" }, "*::-webkit-scrollbar-thumb" : { "background-color" : "background-toolbar", "border-color" : "border-regular-control" }, "*::-webkit-scrollbar-thumb:hover" : { "background-color" : "canvas-scroll-thumb-hover" }, ".asc-plugin-loader" : { "color" : "text-normal" } }; var g_isMouseSendEnabled = false; var g_language = ""; window.plugin_sendMessage = function sendMessage(data) { if (window.Asc.plugin.ie_channel) window.Asc.plugin.ie_channel.postMessage(data); else window.parent.postMessage(data, "*"); }; window.plugin_onMessage = function(event) { if (!window.Asc.plugin) return; if (typeof(event.data) == "string") { var pluginData = {}; try { pluginData = JSON.parse(event.data); } catch(err) { pluginData = {}; } var type = pluginData.type; if (pluginData.guid != window.Asc.plugin.guid) { if (undefined !== pluginData.guid) return; switch (type) { case "onExternalPluginMessage": break; default: return; } } if (type === "init") window.Asc.plugin.info = pluginData; if (type === "updateOptions" && pluginData.options) window.Asc.plugin.info.options = pluginData.options; if (undefined !== pluginData.theme) { if (!window.Asc.plugin.theme || type === "onThemeChanged") { window.Asc.plugin.theme = pluginData.theme; if (!window.Asc.plugin.onThemeChangedBase) { window.Asc.plugin.onThemeChangedBase = function (newTheme) { // correct theme var rules = ""; for (var className in g_themes_map) { rules += (className + " {"); var attributes = g_themes_map[className]; for (var attr in attributes) { var attrValue = attributes[attr]; var attrValueImportant = attrValue.indexOf(" !important"); if (-1 < attrValueImportant) attrValue = attrValue.substr(0, attrValueImportant); var newVal = newTheme[attrValue]; if (newVal) rules += (attr + " : " + newVal + ((-1 === attrValueImportant) ? ";" : " !important;")); } rules += " }\n"; } var styleTheme = document.createElement('style'); styleTheme.type = 'text/css'; styleTheme.innerHTML = rules; document.getElementsByTagName('head')[0].appendChild(styleTheme); }; } if (window.Asc.plugin.onThemeChanged) window.Asc.plugin.onThemeChanged(window.Asc.plugin.theme); else window.Asc.plugin.onThemeChangedBase(window.Asc.plugin.theme); } } if (!window.Asc.plugin.tr || !window.Asc.plugin.tr_init) { window.Asc.plugin.tr_init = true; window.Asc.plugin.tr = function(val) { if (!window.Asc.plugin.translateManager || !window.Asc.plugin.translateManager[val]) return val; return window.Asc.plugin.translateManager[val]; }; } var newLang = ""; if (window.Asc.plugin.info) newLang = window.Asc.plugin.info.lang; if (newLang == "" || newLang != g_language) { g_language = newLang; if (g_language == "en-EN" || g_language == "") { pluginInitTranslateManager(); } else { var _client = new XMLHttpRequest(); _client.open("GET", "./translations/langs.json"); _client.onreadystatechange = function () { if (_client.readyState == 4) { if (_client.status == 200 || location.href.indexOf("file:") == 0) { try { var arr = JSON.parse(_client.responseText); var fullName, shortName; for (var i = 0; i < arr.length; i++) { var file = arr[i]; if (file == g_language) { fullName = file; break; } else if (file.split('-')[0] == g_language.split('-')[0]) { shortName = file; } } if (fullName || shortName) { pluginGetTranslateFile( (fullName || shortName) ); } else { pluginInitTranslateManager(); } } catch (error) { pluginGetTranslateFile(g_language); } } else if (_client.status == 404) { pluginGetTranslateFile(g_language); } else { pluginInitTranslateManager(); } } }; _client.send(); } } switch (type) { case "init": { pluginStart(); window.Asc.plugin.init(window.Asc.plugin.info.data); break; } case "button": { var _buttonId = parseInt(pluginData.button); if (isNaN(_buttonId)) _buttonId = pluginData.button; if (!window.Asc.plugin.button && -1 === _buttonId && undefined === pluginData.buttonWindowId) window.Asc.plugin.executeCommand("close", ""); else window.Asc.plugin.button(_buttonId, pluginData.buttonWindowId); break; } case "enableMouseEvent": { g_isMouseSendEnabled = pluginData.isEnabled; if (window.Asc.plugin.onEnableMouseEvent) window.Asc.plugin.onEnableMouseEvent(g_isMouseSendEnabled); break; } case "onExternalMouseUp": { if (window.Asc.plugin.onExternalMouseUp) window.Asc.plugin.onExternalMouseUp(); break; } case "onMethodReturn": { window.Asc.plugin.isWaitMethod = false; if (window.Asc.plugin.methodCallback) { var methodCallback = window.Asc.plugin.methodCallback; window.Asc.plugin.methodCallback = null; methodCallback(pluginData.methodReturnData); methodCallback = null; } else if (window.Asc.plugin.onMethodReturn) { window.Asc.plugin.onMethodReturn(pluginData.methodReturnData); } if (window.Asc.plugin.executeMethodStack && window.Asc.plugin.executeMethodStack.length > 0) { var obj = window.Asc.plugin.executeMethodStack.shift(); window.Asc.plugin.executeMethod(obj.name, obj.params, obj.callback); } break; } case "onCommandCallback": { if (window.Asc.plugin.onCallCommandCallback) { var methodCallback = window.Asc.plugin.onCallCommandCallback; window.Asc.plugin.onCallCommandCallback = null; methodCallback(pluginData.commandReturnData); methodCallback = null; } else if (window.Asc.plugin.onCommandCallback) window.Asc.plugin.onCommandCallback(pluginData.commandReturnData); break; } case "onExternalPluginMessage": { if (window.Asc.plugin.onExternalPluginMessage && pluginData.data && pluginData.data.type) window.Asc.plugin.onExternalPluginMessage(pluginData.data); break; } case "onEvent": { if (window.Asc.plugin["event_" + pluginData.eventName]) window.Asc.plugin["event_" + pluginData.eventName](pluginData.eventData); else if (window.Asc.plugin.onEvent) window.Asc.plugin.onEvent(pluginData.eventName, pluginData.eventData); break; } case "onWindowEvent": { if (window.Asc.plugin._windows && pluginData.windowID && window.Asc.plugin._windows[pluginData.windowID]) { if ("private_window_method" === pluginData.eventName) { var _windowID = pluginData.windowID; window.Asc.plugin.executeMethod(pluginData.eventData.name, pluginData.eventData.params, function(retValue){ if (window.Asc.plugin._windows && window.Asc.plugin._windows[_windowID]) window.Asc.plugin._windows[_windowID].command("on_private_window_method", retValue); }); } else if ("private_window_command" === pluginData.eventName) { var _windowID = pluginData.windowID; window.Asc.plugin.info.recalculate = (false === pluginData.eventData.isCalc) ? false : true; window.Asc.plugin.executeCommand("command", pluginData.eventData.code, function(retValue){ if (window.Asc.plugin._windows && window.Asc.plugin._windows[_windowID]) window.Asc.plugin._windows[_windowID].command("on_private_window_command", retValue); }); } else { window.Asc.plugin._windows[pluginData.windowID]._oncommand(pluginData.eventName, pluginData.eventData); } } break; } case "updateOptions": { if (window.Asc.plugin.onUpdateOptions) window.Asc.plugin.onUpdateOptions(); } default: break; } } }; function pluginGetTranslateFile (fileName) { var _client = new XMLHttpRequest(); _client.open("GET", "./translations/" + fileName + ".json"); _client.onreadystatechange = function () { if (_client.readyState == 4) { if (_client.status == 200 || location.href.indexOf("file:") == 0) { try { pluginInitTranslateManager( JSON.parse(_client.responseText) ); } catch (err) { pluginInitTranslateManager(); } } if (_client.status == 404) pluginInitTranslateManager(); } }; _client.send(); } function pluginInitTranslateManager (data) { window.Asc.plugin.translateManager = data || {}; if (window.Asc.plugin.onTranslate) window.Asc.plugin.onTranslate(); } function pluginStart() { if (window.Asc.plugin.isStarted) return; window.Asc.plugin.isStarted = true; window.startPluginApi(); var zoomValue = AscCommon.checkDeviceScale(); AscCommon.retinaPixelRatio = zoomValue.applicationPixelRatio; AscCommon.zoom = zoomValue.zoom; AscCommon.correctApplicationScale(zoomValue); window.Asc.plugin.onEnableMouseEvent = function(isEnabled) { var _frames = document.getElementsByTagName("iframe"); if (_frames && _frames[0]) { _frames[0].style.pointerEvents = isEnabled ? "none" : ""; } }; } window.onmousemove = function(e) { if (!g_isMouseSendEnabled || !window.Asc.plugin || !window.Asc.plugin.executeCommand) return; var _x = (undefined === e.clientX) ? e.pageX : e.clientX; var _y = (undefined === e.clientY) ? e.pageY : e.clientY; window.Asc.plugin.executeCommand("onmousemove", JSON.stringify({ x : _x, y : _y })); }; window.onmouseup = function(e) { if (!g_isMouseSendEnabled || !window.Asc.plugin || !window.Asc.plugin.executeCommand) return; var _x = (undefined === e.clientX) ? e.pageX : e.clientX; var _y = (undefined === e.clientY) ? e.pageY : e.clientY; window.Asc.plugin.executeCommand("onmouseup", JSON.stringify({ x : _x, y : _y })); }; var objectInternalInit = { guid : window.Asc.plugin.guid, type : "initialize_internal" }; if (window.Asc.plugin.windowID) objectInternalInit.windowID = window.Asc.plugin.windowID; window.plugin_sendMessage(JSON.stringify(objectInternalInit)); })(window, undefined);