Plugin Directory

Changeset 2588981


Ignore:
Timestamp:
08/26/2021 06:04:34 AM (4 years ago)
Author:
tansadev
Message:
  • Release new version 5.0.1.16.
Location:
tansa/trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • tansa/trunk/dist/gutenberg/sidebar.js

    r2527878 r2588981  
    330330
    331331"use strict";
    332 eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(80);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n\n\n\n\n\n/**\n * Tansa Sidebar\n */\nvar __ = wp.i18n.__;\nvar _wp$editPost = wp.editPost,\n    PluginSidebar = _wp$editPost.PluginSidebar,\n    PluginSidebarMoreMenuItem = _wp$editPost.PluginSidebarMoreMenuItem;\nvar _wp$components = wp.components,\n    PanelBody = _wp$components.PanelBody,\n    TextControl = _wp$components.TextControl;\nvar _wp$element = wp.element,\n    Component = _wp$element.Component,\n    Fragment = _wp$element.Fragment;\nvar registerPlugin = wp.plugins.registerPlugin;\n\nvar TansaIcon = function (_Component) {\n\t__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(TansaIcon, _Component);\n\n\tfunction TansaIcon() {\n\t\t__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, TansaIcon);\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (TansaIcon.__proto__ || __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default()(TansaIcon)).apply(this, arguments));\n\t}\n\n\t__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(TansaIcon, [{\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(evt) {\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tevt.preventDefault();\n\t\t\t\tevt.stopPropagation();\n\n\t\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\t\twpTansaSidebarComponent.showTansaMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn wp.element.createElement(\"img\", { onClick: this.handleClick, \"class\": \"tansaIcon\", id: \"content_tansaButton\", src: tansaExtensionInfo.pluginPath + '/img/TS.png', alt: \"Tansa\" });\n\t\t}\n\t}]);\n\n\treturn TansaIcon;\n}(Component);\n\nvar Tansa_Sidebar = function (_Component2) {\n\t__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(Tansa_Sidebar, _Component2);\n\n\tfunction Tansa_Sidebar() {\n\t\t__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Tansa_Sidebar);\n\n\t\tvar _this2 = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (Tansa_Sidebar.__proto__ || __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default()(Tansa_Sidebar)).apply(this, arguments));\n\n\t\twindow.initTansaObject();\n\t\t_this2.state = _this2.getInitialState();\n\t\twindow.wpTansaSidebarComponent = _this2;\n\t\treturn _this2;\n\t}\n\n\t__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(Tansa_Sidebar, [{\n\t\tkey: \"getInitialState\",\n\t\tvalue: function getInitialState() {\n\t\t\tvar loadingMenuHTML = '<ul id=\"' + window.tansaCustomSubMenuElementId + '\"><li class=\"lodingMenu\">Loading menu...</li></ul>';\n\t\t\t//\t\tvar connectionMenuHTML = \"<ul class='submenu' id='tansaSubMenu'><li><a class='thickbox components-button is-button is-default is-large' href='\" + tansaExtensionInfo.pluginPath + \"/javascriptapp/html/connection.html?TB_iframe=true&width=400px&height=500px' id='connectionMenu' >Connection</a></li></ul>\";\n\t\t\tvar tansaSettingsPageMenuHTML = \"<ul id='\" + window.tansaCustomSubMenuElementId + \"'><li class='ui-menu-item' role='presentation'><a href='admin.php?page=tansaSettingsPage' id='tansaSettingsPageMenuItem' class='ui-corner-all' tabindex='-1' role='menuitem'>Tansa Settings </a></li></li></ul>\";\n\t\t\treturn {\n\t\t\t\ttansaMenuHTML: loadingMenuHTML,\n\t\t\t\tloadingMenuHTML: loadingMenuHTML,\n\t\t\t\ttansaSettingsPageMenuHTML: tansaSettingsPageMenuHTML\n\t\t\t\t//\t\t\tconnectionMenuHTML: connectionMenuHTML\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"addTansaCssClasses\",\n\t\tvalue: function addTansaCssClasses(tansaMenuHTML) {\n\t\t\ttansaMenuHTML = window.jQuery('<div></div>').html(tansaMenuHTML);\n\t\t\twindow.jQuery('#tansaSubMenu', tansaMenuHTML).attr('id', 'tansaSidebarSubMenu');\n\t\t\tvar tansaMenuElements = tansaMenuHTML.find('#tansaSidebarSubMenu li a');\n\t\t\tif (tansaMenuElements.length > 0) {\n\t\t\t\tfor (var i = 0; i < tansaMenuElements.length; i++) {\n\t\t\t\t\tvar tansaMenuElement = tansaMenuElements[i];\n\t\t\t\t\ttansaMenuElement.setAttribute('title', tansaMenuElement.innerText);\n\t\t\t\t\tif (tansaMenuElement.id == \"connectionMenu\") {\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"href\", tansaExtensionInfo.pluginPath + '/javascriptapp/html/connection.html?TB_iframe=true&width=400px&height=500px');\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"class\", \"thickbox components-button is-button is-default is-large\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"onClick\", \"wpTansaSidebarComponent.tansaMenuClicked(event)\");\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"class\", \"components-button is-button is-default is-large\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn tansaMenuHTML.html();\n\t\t}\n\t}, {\n\t\tkey: \"tansaMenuClicked\",\n\t\tvalue: function tansaMenuClicked(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tevt.stopImmediatePropagation();\n\t\t\tevt.stopPropagation();\n\t\t\tvar menu = window.jQuery(evt.target);\n\t\t\tvar href = window.jQuery(menu).attr(\"href\");\n\t\t\tvar profileId = window.jQuery(menu).attr(\"data-profileid\");\n\t\t\tvar profileTitle = window.jQuery(menu).attr(\"data-profiletitle\");\n\t\t\tvar profileLangCode = window.jQuery(menu).attr(\"data-profilelangcode\");\n\t\t\tvar serviceName = window.jQuery(menu).attr(\"data-servicename\");\n\t\t\tvar menuId = window.jQuery(menu).attr(\"id\");\n\t\t\tvar menuTitle = window.jQuery(menu).html();\n\n\t\t\tif (menuId === \"clearHyphenationPointsMenu\") {\n\t\t\t\twindow.tansaMain.removeHyphenationPoints();\n\t\t\t} else if (menuId === \"aboutMenu\") {\n\t\t\t\twindow.tansaMain.showAboutDialog(href, menuTitle);\n\t\t\t} else if (href && href !== \"\" && href !== \"#\") {\n\t\t\t\twindow.open(href, '_blank');\n\t\t\t} else {\n\t\t\t\twindow.tansaMain.onRunTansaProofing({\n\t\t\t\t\t\"profileId\": profileId,\n\t\t\t\t\t\"serviceName\": serviceName,\n\t\t\t\t\t\"profileLangCode\": profileLangCode,\n\t\t\t\t\t\"userId\": window.tansa.settings.userId,\n\t\t\t\t\t\"theme\": window.tansa.settings.theme,\n\t\t\t\t\t\"langCode\": window.tansa.settings.langCode,\n\t\t\t\t\t\"profileTitle\": profileTitle\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderMenu\",\n\t\tvalue: function renderMenu() {\n\t\t\tvar menuHTML = this.state.tansaMenuHTML;\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tmenuHTML = '';\n\t\t\t}\n\t\t\treturn wp.element.createElement(\"div\", { id: \"tansaMenuContainer\", dangerouslySetInnerHTML: { __html: menuHTML } });\n\t\t}\n\t}, {\n\t\tkey: \"stringEndsWith\",\n\t\tvalue: function stringEndsWith(sourceStr, subStr) {\n\t\t\treturn sourceStr.indexOf(subStr, sourceStr.length - subStr.length) !== -1;\n\t\t}\n\t}, {\n\t\tkey: \"toggleTansaFloatingMenu\",\n\t\tvalue: function toggleTansaFloatingMenu(forcedToggle) {\n\t\t\tvar evtTargetElement = window.jQuery(event.target);\n\t\t\tif (forcedToggle || evtTargetElement.hasClass(\"tansaIcon\") || evtTargetElement.find(\".tansaIcon\").length > 0) {\n\t\t\t\twindow.hideTansaPluginSidebar();\n\t\t\t\twindow.resetMenuContentPositionAndStyle();\n\t\t\t\twindow.toggleTansaMenu();\n\t\t\t} else {\n\t\t\t\t// hide the menu when Tansa button is not clicked.\n\t\t\t\t$(tansaMain.tansaSubMenuElementSelector).hide();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"checkAndLoadMenuFromServer\",\n\t\tvalue: function checkAndLoadMenuFromServer() {\n\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu && this.menuLoaded) {\n\t\t\t\twpTansaSidebarComponent.toggleTansaFloatingMenu();\n\t\t\t} else {\n\t\t\t\twindow.tansaLoaderScriptCallBack = this.tansaLoaderScriptCallBack;\n\t\t\t\tvar stateTansaMenuHTML = wpTansaSidebarComponent.state.tansaMenuHTML;\n\t\t\t\tif (!stateTansaMenuHTML || stateTansaMenuHTML === wpTansaSidebarComponent.state.loadingMenuHTML) wpTansaSidebarComponent.loadInitTansaLoaderScript();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"resetAllMenus\",\n\t\tvalue: function resetAllMenus() {\n\t\t\twpTansaSidebarComponent.setState({\n\t\t\t\ttansaMenuHTML: wpTansaSidebarComponent.state.loadingMenuHTML\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"tansaLoaderScriptCallBack\",\n\t\tvalue: function tansaLoaderScriptCallBack() {\n\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\tvar stateTansaMenuHTML = wpTansaSidebarComponent.state.tansaMenuHTML;\n\t\t\tif (!window.tansaMain) {\n\t\t\t\tconsole.error(\"Sorry! Something went wrong. Please try again.\");\n\t\t\t\twpTansaSidebarComponent.menuLoaded = false;\n\t\t\t\twpTansaSidebarComponent.showTansaSettingsMenu();\n\t\t\t} else if ((!stateTansaMenuHTML || stateTansaMenuHTML === wpTansaSidebarComponent.state.loadingMenuHTML) && window.tansaMain) {\n\t\t\t\tvar callBackFunc = function callBackFunc(tansaMenuHTML) {\n\t\t\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\t\t\twindow.tansaMain.setMenuContentPositionAndStyle(tansaMenuHTML, window.getTansaMenuButtonPosition());\n\t\t\t\t\t\twpTansaSidebarComponent.toggleTansaFloatingMenu(true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.showTansaPluginSidebar();\n\t\t\t\t\t\ttansaMenuHTML = wpTansaSidebarComponent.strReplaceAll(tansaMenuHTML, '<li>-</li>', '<li class=\"separator\"></li>');\n\t\t\t\t\t\ttansaMenuHTML = wpTansaSidebarComponent.addTansaCssClasses(tansaMenuHTML);\n\t\t\t\t\t\twpTansaSidebarComponent.setState({\n\t\t\t\t\t\t\ttansaMenuHTML: tansaMenuHTML\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\twpTansaSidebarComponent.tansaCustomMenuLoaded = false;\n\t\t\t\t\twpTansaSidebarComponent.menuLoaded = true;\n\t\t\t\t};\n\t\t\t\twindow.tansaMain.getMenuUI(true, callBackFunc);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"strReplaceAll\",\n\t\tvalue: function strReplaceAll(source, search, replacement) {\n\t\t\treturn source.replace(new RegExp(search, 'g'), replacement);\n\t\t}\n\t}, {\n\t\tkey: \"loadInitTansaLoaderScript\",\n\t\tvalue: function loadInitTansaLoaderScript() {\n\t\t\tvar tansaLoaderScript = document.getElementById(\"tansaLoaderScript\");\n\t\t\tif (!tansaLoaderScript) {\n\t\t\t\tvar initTansaLoaderScript = document.createElement('script');\n\t\t\t\tinitTansaLoaderScript.src = window.tansa.settings.baseUrl + 'initTansaLoader.js?' + new Date().getTime();\n\t\t\t\tinitTansaLoaderScript.async = false;\n\t\t\t\tinitTansaLoaderScript.onerror = function (err) {\n\t\t\t\t\twindow.tansaLoaderScriptCallBack();\n\t\t\t\t};\n\t\t\t\tdocument.querySelector('head').appendChild(initTansaLoaderScript);\n\t\t\t} else {\n\t\t\t\tif (window.tansaLoaderScriptCallBack) window.tansaLoaderScriptCallBack();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"showTansaSettingsMenu\",\n\t\tvalue: function showTansaSettingsMenu() {\n\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tif (!wpTansaSidebarComponent.tansaCustomMenuLoaded) {\n\t\t\t\t\twpTansaSidebarComponent.menuLoaded = false;\n\t\t\t\t\twpTansaSidebarComponent.tansaCustomMenuLoaded = true;\n\t\t\t\t\twindow.setTansaMenuContentPositionAndStyle(wpTansaSidebarComponent.state.tansaSettingsPageMenuHTML);\n\t\t\t\t} else {\n\t\t\t\t\twindow.toggleTansaCustomMenu();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar stateTansaMenuHTML = wpTansaSidebarComponent.state.tansaMenuHTML;\n\t\t\t\tif (!stateTansaMenuHTML || stateTansaMenuHTML !== wpTansaSidebarComponent.state.tansaSettingsPageMenuHTML) {\n\t\t\t\t\twpTansaSidebarComponent.setState({\n\t\t\t\t\t\ttansaMenuHTML: wpTansaSidebarComponent.state.tansaSettingsPageMenuHTML\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"showTansaMenu\",\n\t\tvalue: function showTansaMenu() {\n\t\t\tif (!window.tansaExtensionInfo.isTansaServerURLSet) {\n\t\t\t\tthis.showTansaSettingsMenu();\n\t\t\t} else {\n\t\t\t\tthis.checkAndLoadMenuFromServer();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\twindow.showTansaPluginSidebar();\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tif (this.isTansaSidebarActive()) {\n\t\t\t\t\twindow.hideTansaPluginSidebar();\n\t\t\t\t}\n\n\t\t\t\tif (this.menuLoaded || this.tansaCustomMenuLoaded) {\n\t\t\t\t\tthis.showTansaMenu();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.showTansaMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"isTansaSidebarActive\",\n\t\tvalue: function isTansaSidebarActive() {\n\t\t\tvar activeGeneralSidebarName = wp.data.select('core/edit-post').getActiveGeneralSidebarName();\n\t\t\treturn activeGeneralSidebarName == 'tansa/tansa-sidebar';\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn wp.element.createElement(\n\t\t\t\tFragment,\n\t\t\t\tnull,\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebarMoreMenuItem,\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: \"tansa-sidebar\"\n\t\t\t\t\t},\n\t\t\t\t\t__('Tansa')\n\t\t\t\t),\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebar,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"tansa-sidebar\",\n\t\t\t\t\t\ttitle: __('Tansa')\n\t\t\t\t\t},\n\t\t\t\t\tthis.renderMenu()\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Tansa_Sidebar;\n}(Component);\n\nregisterPlugin('tansa', {\n\ticon: wp.element.createElement(TansaIcon, null),\n\trender: Tansa_Sidebar\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZ3V0ZW5iZXJnL3NpZGViYXIuanM/NjlmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX09iamVjdCRnZXRQcm90b3R5cGVPZiBmcm9tIFwiYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcImJhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVyblwiO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tIFwiYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzXCI7XG4vKipcbiAqIFRhbnNhIFNpZGViYXJcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdFBvc3QgPSB3cC5lZGl0UG9zdCxcbiAgICBQbHVnaW5TaWRlYmFyID0gX3dwJGVkaXRQb3N0LlBsdWdpblNpZGViYXIsXG4gICAgUGx1Z2luU2lkZWJhck1vcmVNZW51SXRlbSA9IF93cCRlZGl0UG9zdC5QbHVnaW5TaWRlYmFyTW9yZU1lbnVJdGVtO1xudmFyIF93cCRjb21wb25lbnRzID0gd3AuY29tcG9uZW50cyxcbiAgICBQYW5lbEJvZHkgPSBfd3AkY29tcG9uZW50cy5QYW5lbEJvZHksXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbDtcbnZhciBfd3AkZWxlbWVudCA9IHdwLmVsZW1lbnQsXG4gICAgQ29tcG9uZW50ID0gX3dwJGVsZW1lbnQuQ29tcG9uZW50LFxuICAgIEZyYWdtZW50ID0gX3dwJGVsZW1lbnQuRnJhZ21lbnQ7XG52YXIgcmVnaXN0ZXJQbHVnaW4gPSB3cC5wbHVnaW5zLnJlZ2lzdGVyUGx1Z2luO1xuXG52YXIgVGFuc2FJY29uID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcblx0X2luaGVyaXRzKFRhbnNhSWNvbiwgX0NvbXBvbmVudCk7XG5cblx0ZnVuY3Rpb24gVGFuc2FJY29uKCkge1xuXHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUYW5zYUljb24pO1xuXG5cdFx0cmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChUYW5zYUljb24uX19wcm90b19fIHx8IF9PYmplY3QkZ2V0UHJvdG90eXBlT2YoVGFuc2FJY29uKSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG5cdH1cblxuXHRfY3JlYXRlQ2xhc3MoVGFuc2FJY29uLCBbe1xuXHRcdGtleTogXCJoYW5kbGVDbGlja1wiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBoYW5kbGVDbGljayhldnQpIHtcblx0XHRcdGlmICh0YW5zYUV4dGVuc2lvbkluZm8uc2hvd0Zsb2F0aW5nVGFuc2FNZW51KSB7XG5cdFx0XHRcdGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cblx0XHRcdFx0dmFyIHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50ID0gd2luZG93LndwVGFuc2FTaWRlYmFyQ29tcG9uZW50O1xuXHRcdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zaG93VGFuc2FNZW51KCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInJlbmRlclwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG5cdFx0XHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHsgb25DbGljazogdGhpcy5oYW5kbGVDbGljaywgXCJjbGFzc1wiOiBcInRhbnNhSWNvblwiLCBpZDogXCJjb250ZW50X3RhbnNhQnV0dG9uXCIsIHNyYzogdGFuc2FFeHRlbnNpb25JbmZvLnBsdWdpblBhdGggKyAnL2ltZy9UUy5wbmcnLCBhbHQ6IFwiVGFuc2FcIiB9KTtcblx0XHR9XG5cdH1dKTtcblxuXHRyZXR1cm4gVGFuc2FJY29uO1xufShDb21wb25lbnQpO1xuXG52YXIgVGFuc2FfU2lkZWJhciA9IGZ1bmN0aW9uIChfQ29tcG9uZW50Mikge1xuXHRfaW5oZXJpdHMoVGFuc2FfU2lkZWJhciwgX0NvbXBvbmVudDIpO1xuXG5cdGZ1bmN0aW9uIFRhbnNhX1NpZGViYXIoKSB7XG5cdFx0X2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRhbnNhX1NpZGViYXIpO1xuXG5cdFx0dmFyIF90aGlzMiA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChUYW5zYV9TaWRlYmFyLl9fcHJvdG9fXyB8fCBfT2JqZWN0JGdldFByb3RvdHlwZU9mKFRhbnNhX1NpZGViYXIpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcblxuXHRcdHdpbmRvdy5pbml0VGFuc2FPYmplY3QoKTtcblx0XHRfdGhpczIuc3RhdGUgPSBfdGhpczIuZ2V0SW5pdGlhbFN0YXRlKCk7XG5cdFx0d2luZG93LndwVGFuc2FTaWRlYmFyQ29tcG9uZW50ID0gX3RoaXMyO1xuXHRcdHJldHVybiBfdGhpczI7XG5cdH1cblxuXHRfY3JlYXRlQ2xhc3MoVGFuc2FfU2lkZWJhciwgW3tcblx0XHRrZXk6IFwiZ2V0SW5pdGlhbFN0YXRlXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcblx0XHRcdHZhciBsb2FkaW5nTWVudUhUTUwgPSAnPHVsIGlkPVwiJyArIHdpbmRvdy50YW5zYUN1c3RvbVN1Yk1lbnVFbGVtZW50SWQgKyAnXCI+PGxpIGNsYXNzPVwibG9kaW5nTWVudVwiPkxvYWRpbmcgbWVudS4uLjwvbGk+PC91bD4nO1xuXHRcdFx0Ly9cdFx0dmFyIGNvbm5lY3Rpb25NZW51SFRNTCA9IFwiPHVsIGNsYXNzPSdzdWJtZW51JyBpZD0ndGFuc2FTdWJNZW51Jz48bGk+PGEgY2xhc3M9J3RoaWNrYm94IGNvbXBvbmVudHMtYnV0dG9uIGlzLWJ1dHRvbiBpcy1kZWZhdWx0IGlzLWxhcmdlJyBocmVmPSdcIiArIHRhbnNhRXh0ZW5zaW9uSW5mby5wbHVnaW5QYXRoICsgXCIvamF2YXNjcmlwdGFwcC9odG1sL2Nvbm5lY3Rpb24uaHRtbD9UQl9pZnJhbWU9dHJ1ZSZ3aWR0aD00MDBweCZoZWlnaHQ9NTAwcHgnIGlkPSdjb25uZWN0aW9uTWVudScgPkNvbm5lY3Rpb248L2E+PC9saT48L3VsPlwiO1xuXHRcdFx0dmFyIHRhbnNhU2V0dGluZ3NQYWdlTWVudUhUTUwgPSBcIjx1bCBpZD0nXCIgKyB3aW5kb3cudGFuc2FDdXN0b21TdWJNZW51RWxlbWVudElkICsgXCInPjxsaSBjbGFzcz0ndWktbWVudS1pdGVtJyByb2xlPSdwcmVzZW50YXRpb24nPjxhIGhyZWY9J2FkbWluLnBocD9wYWdlPXRhbnNhU2V0dGluZ3NQYWdlJyBpZD0ndGFuc2FTZXR0aW5nc1BhZ2VNZW51SXRlbScgY2xhc3M9J3VpLWNvcm5lci1hbGwnIHRhYmluZGV4PSctMScgcm9sZT0nbWVudWl0ZW0nPlRhbnNhIFNldHRpbmdzIDwvYT48L2xpPjwvbGk+PC91bD5cIjtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRhbnNhTWVudUhUTUw6IGxvYWRpbmdNZW51SFRNTCxcblx0XHRcdFx0bG9hZGluZ01lbnVIVE1MOiBsb2FkaW5nTWVudUhUTUwsXG5cdFx0XHRcdHRhbnNhU2V0dGluZ3NQYWdlTWVudUhUTUw6IHRhbnNhU2V0dGluZ3NQYWdlTWVudUhUTUxcblx0XHRcdFx0Ly9cdFx0XHRjb25uZWN0aW9uTWVudUhUTUw6IGNvbm5lY3Rpb25NZW51SFRNTFxuXHRcdFx0fTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6IFwiYWRkVGFuc2FDc3NDbGFzc2VzXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIGFkZFRhbnNhQ3NzQ2xhc3Nlcyh0YW5zYU1lbnVIVE1MKSB7XG5cdFx0XHR0YW5zYU1lbnVIVE1MID0gd2luZG93LmpRdWVyeSgnPGRpdj48L2Rpdj4nKS5odG1sKHRhbnNhTWVudUhUTUwpO1xuXHRcdFx0d2luZG93LmpRdWVyeSgnI3RhbnNhU3ViTWVudScsIHRhbnNhTWVudUhUTUwpLmF0dHIoJ2lkJywgJ3RhbnNhU2lkZWJhclN1Yk1lbnUnKTtcblx0XHRcdHZhciB0YW5zYU1lbnVFbGVtZW50cyA9IHRhbnNhTWVudUhUTUwuZmluZCgnI3RhbnNhU2lkZWJhclN1Yk1lbnUgbGkgYScpO1xuXHRcdFx0aWYgKHRhbnNhTWVudUVsZW1lbnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCB0YW5zYU1lbnVFbGVtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdHZhciB0YW5zYU1lbnVFbGVtZW50ID0gdGFuc2FNZW51RWxlbWVudHNbaV07XG5cdFx0XHRcdFx0dGFuc2FNZW51RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgdGFuc2FNZW51RWxlbWVudC5pbm5lclRleHQpO1xuXHRcdFx0XHRcdGlmICh0YW5zYU1lbnVFbGVtZW50LmlkID09IFwiY29ubmVjdGlvbk1lbnVcIikge1xuXHRcdFx0XHRcdFx0dGFuc2FNZW51RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIHRhbnNhRXh0ZW5zaW9uSW5mby5wbHVnaW5QYXRoICsgJy9qYXZhc2NyaXB0YXBwL2h0bWwvY29ubmVjdGlvbi5odG1sP1RCX2lmcmFtZT10cnVlJndpZHRoPTQwMHB4JmhlaWdodD01MDBweCcpO1xuXHRcdFx0XHRcdFx0dGFuc2FNZW51RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBcInRoaWNrYm94IGNvbXBvbmVudHMtYnV0dG9uIGlzLWJ1dHRvbiBpcy1kZWZhdWx0IGlzLWxhcmdlXCIpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0YW5zYU1lbnVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm9uQ2xpY2tcIiwgXCJ3cFRhbnNhU2lkZWJhckNvbXBvbmVudC50YW5zYU1lbnVDbGlja2VkKGV2ZW50KVwiKTtcblx0XHRcdFx0XHRcdHRhbnNhTWVudUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgXCJjb21wb25lbnRzLWJ1dHRvbiBpcy1idXR0b24gaXMtZGVmYXVsdCBpcy1sYXJnZVwiKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB0YW5zYU1lbnVIVE1MLmh0bWwoKTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6IFwidGFuc2FNZW51Q2xpY2tlZFwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiB0YW5zYU1lbnVDbGlja2VkKGV2dCkge1xuXHRcdFx0ZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRldnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cdFx0XHRldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHR2YXIgbWVudSA9IHdpbmRvdy5qUXVlcnkoZXZ0LnRhcmdldCk7XG5cdFx0XHR2YXIgaHJlZiA9IHdpbmRvdy5qUXVlcnkobWVudSkuYXR0cihcImhyZWZcIik7XG5cdFx0XHR2YXIgcHJvZmlsZUlkID0gd2luZG93LmpRdWVyeShtZW51KS5hdHRyKFwiZGF0YS1wcm9maWxlaWRcIik7XG5cdFx0XHR2YXIgcHJvZmlsZVRpdGxlID0gd2luZG93LmpRdWVyeShtZW51KS5hdHRyKFwiZGF0YS1wcm9maWxldGl0bGVcIik7XG5cdFx0XHR2YXIgcHJvZmlsZUxhbmdDb2RlID0gd2luZG93LmpRdWVyeShtZW51KS5hdHRyKFwiZGF0YS1wcm9maWxlbGFuZ2NvZGVcIik7XG5cdFx0XHR2YXIgc2VydmljZU5hbWUgPSB3aW5kb3cualF1ZXJ5KG1lbnUpLmF0dHIoXCJkYXRhLXNlcnZpY2VuYW1lXCIpO1xuXHRcdFx0dmFyIG1lbnVJZCA9IHdpbmRvdy5qUXVlcnkobWVudSkuYXR0cihcImlkXCIpO1xuXHRcdFx0dmFyIG1lbnVUaXRsZSA9IHdpbmRvdy5qUXVlcnkobWVudSkuaHRtbCgpO1xuXG5cdFx0XHRpZiAobWVudUlkID09PSBcImNsZWFySHlwaGVuYXRpb25Qb2ludHNNZW51XCIpIHtcblx0XHRcdFx0d2luZG93LnRhbnNhTWFpbi5yZW1vdmVIeXBoZW5hdGlvblBvaW50cygpO1xuXHRcdFx0fSBlbHNlIGlmIChtZW51SWQgPT09IFwiYWJvdXRNZW51XCIpIHtcblx0XHRcdFx0d2luZG93LnRhbnNhTWFpbi5zaG93QWJvdXREaWFsb2coaHJlZiwgbWVudVRpdGxlKTtcblx0XHRcdH0gZWxzZSBpZiAoaHJlZiAmJiBocmVmICE9PSBcIlwiICYmIGhyZWYgIT09IFwiI1wiKSB7XG5cdFx0XHRcdHdpbmRvdy5vcGVuKGhyZWYsICdfYmxhbmsnKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHdpbmRvdy50YW5zYU1haW4ub25SdW5UYW5zYVByb29maW5nKHtcblx0XHRcdFx0XHRcInByb2ZpbGVJZFwiOiBwcm9maWxlSWQsXG5cdFx0XHRcdFx0XCJzZXJ2aWNlTmFtZVwiOiBzZXJ2aWNlTmFtZSxcblx0XHRcdFx0XHRcInByb2ZpbGVMYW5nQ29kZVwiOiBwcm9maWxlTGFuZ0NvZGUsXG5cdFx0XHRcdFx0XCJ1c2VySWRcIjogd2luZG93LnRhbnNhLnNldHRpbmdzLnVzZXJJZCxcblx0XHRcdFx0XHRcInRoZW1lXCI6IHdpbmRvdy50YW5zYS5zZXR0aW5ncy50aGVtZSxcblx0XHRcdFx0XHRcImxhbmdDb2RlXCI6IHdpbmRvdy50YW5zYS5zZXR0aW5ncy5sYW5nQ29kZSxcblx0XHRcdFx0XHRcInByb2ZpbGVUaXRsZVwiOiBwcm9maWxlVGl0bGVcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInJlbmRlck1lbnVcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gcmVuZGVyTWVudSgpIHtcblx0XHRcdHZhciBtZW51SFRNTCA9IHRoaXMuc3RhdGUudGFuc2FNZW51SFRNTDtcblx0XHRcdGlmICh0YW5zYUV4dGVuc2lvbkluZm8uc2hvd0Zsb2F0aW5nVGFuc2FNZW51KSB7XG5cdFx0XHRcdG1lbnVIVE1MID0gJyc7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgaWQ6IFwidGFuc2FNZW51Q29udGFpbmVyXCIsIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7IF9faHRtbDogbWVudUhUTUwgfSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6IFwic3RyaW5nRW5kc1dpdGhcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gc3RyaW5nRW5kc1dpdGgoc291cmNlU3RyLCBzdWJTdHIpIHtcblx0XHRcdHJldHVybiBzb3VyY2VTdHIuaW5kZXhPZihzdWJTdHIsIHNvdXJjZVN0ci5sZW5ndGggLSBzdWJTdHIubGVuZ3RoKSAhPT0gLTE7XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInRvZ2dsZVRhbnNhRmxvYXRpbmdNZW51XCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHRvZ2dsZVRhbnNhRmxvYXRpbmdNZW51KGZvcmNlZFRvZ2dsZSkge1xuXHRcdFx0dmFyIGV2dFRhcmdldEVsZW1lbnQgPSB3aW5kb3cualF1ZXJ5KGV2ZW50LnRhcmdldCk7XG5cdFx0XHRpZiAoZm9yY2VkVG9nZ2xlIHx8IGV2dFRhcmdldEVsZW1lbnQuaGFzQ2xhc3MoXCJ0YW5zYUljb25cIikgfHwgZXZ0VGFyZ2V0RWxlbWVudC5maW5kKFwiLnRhbnNhSWNvblwiKS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHdpbmRvdy5oaWRlVGFuc2FQbHVnaW5TaWRlYmFyKCk7XG5cdFx0XHRcdHdpbmRvdy5yZXNldE1lbnVDb250ZW50UG9zaXRpb25BbmRTdHlsZSgpO1xuXHRcdFx0XHR3aW5kb3cudG9nZ2xlVGFuc2FNZW51KCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBoaWRlIHRoZSBtZW51IHdoZW4gVGFuc2EgYnV0dG9uIGlzIG5vdCBjbGlja2VkLlxuXHRcdFx0XHQkKHRhbnNhTWFpbi50YW5zYVN1Yk1lbnVFbGVtZW50U2VsZWN0b3IpLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6IFwiY2hlY2tBbmRMb2FkTWVudUZyb21TZXJ2ZXJcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gY2hlY2tBbmRMb2FkTWVudUZyb21TZXJ2ZXIoKSB7XG5cdFx0XHR2YXIgd3BUYW5zYVNpZGViYXJDb21wb25lbnQgPSB3aW5kb3cud3BUYW5zYVNpZGViYXJDb21wb25lbnQ7XG5cdFx0XHRpZiAodGFuc2FFeHRlbnNpb25JbmZvLnNob3dGbG9hdGluZ1RhbnNhTWVudSAmJiB0aGlzLm1lbnVMb2FkZWQpIHtcblx0XHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQudG9nZ2xlVGFuc2FGbG9hdGluZ01lbnUoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHdpbmRvdy50YW5zYUxvYWRlclNjcmlwdENhbGxCYWNrID0gdGhpcy50YW5zYUxvYWRlclNjcmlwdENhbGxCYWNrO1xuXHRcdFx0XHR2YXIgc3RhdGVUYW5zYU1lbnVIVE1MID0gd3BUYW5zYVNpZGViYXJDb21wb25lbnQuc3RhdGUudGFuc2FNZW51SFRNTDtcblx0XHRcdFx0aWYgKCFzdGF0ZVRhbnNhTWVudUhUTUwgfHwgc3RhdGVUYW5zYU1lbnVIVE1MID09PSB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zdGF0ZS5sb2FkaW5nTWVudUhUTUwpIHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LmxvYWRJbml0VGFuc2FMb2FkZXJTY3JpcHQoKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6IFwicmVzZXRBbGxNZW51c1wiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiByZXNldEFsbE1lbnVzKCkge1xuXHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQuc2V0U3RhdGUoe1xuXHRcdFx0XHR0YW5zYU1lbnVIVE1MOiB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zdGF0ZS5sb2FkaW5nTWVudUhUTUxcblx0XHRcdH0pO1xuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJ0YW5zYUxvYWRlclNjcmlwdENhbGxCYWNrXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHRhbnNhTG9hZGVyU2NyaXB0Q2FsbEJhY2soKSB7XG5cdFx0XHR2YXIgd3BUYW5zYVNpZGViYXJDb21wb25lbnQgPSB3aW5kb3cud3BUYW5zYVNpZGViYXJDb21wb25lbnQ7XG5cdFx0XHR2YXIgc3RhdGVUYW5zYU1lbnVIVE1MID0gd3BUYW5zYVNpZGViYXJDb21wb25lbnQuc3RhdGUudGFuc2FNZW51SFRNTDtcblx0XHRcdGlmICghd2luZG93LnRhbnNhTWFpbikge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKFwiU29ycnkhIFNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLlwiKTtcblx0XHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQubWVudUxvYWRlZCA9IGZhbHNlO1xuXHRcdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zaG93VGFuc2FTZXR0aW5nc01lbnUoKTtcblx0XHRcdH0gZWxzZSBpZiAoKCFzdGF0ZVRhbnNhTWVudUhUTUwgfHwgc3RhdGVUYW5zYU1lbnVIVE1MID09PSB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zdGF0ZS5sb2FkaW5nTWVudUhUTUwpICYmIHdpbmRvdy50YW5zYU1haW4pIHtcblx0XHRcdFx0dmFyIGNhbGxCYWNrRnVuYyA9IGZ1bmN0aW9uIGNhbGxCYWNrRnVuYyh0YW5zYU1lbnVIVE1MKSB7XG5cdFx0XHRcdFx0aWYgKHRhbnNhRXh0ZW5zaW9uSW5mby5zaG93RmxvYXRpbmdUYW5zYU1lbnUpIHtcblx0XHRcdFx0XHRcdHdpbmRvdy50YW5zYU1haW4uc2V0TWVudUNvbnRlbnRQb3NpdGlvbkFuZFN0eWxlKHRhbnNhTWVudUhUTUwsIHdpbmRvdy5nZXRUYW5zYU1lbnVCdXR0b25Qb3NpdGlvbigpKTtcblx0XHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnRvZ2dsZVRhbnNhRmxvYXRpbmdNZW51KHRydWUpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR3aW5kb3cuc2hvd1RhbnNhUGx1Z2luU2lkZWJhcigpO1xuXHRcdFx0XHRcdFx0dGFuc2FNZW51SFRNTCA9IHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0clJlcGxhY2VBbGwodGFuc2FNZW51SFRNTCwgJzxsaT4tPC9saT4nLCAnPGxpIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9saT4nKTtcblx0XHRcdFx0XHRcdHRhbnNhTWVudUhUTUwgPSB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5hZGRUYW5zYUNzc0NsYXNzZXModGFuc2FNZW51SFRNTCk7XG5cdFx0XHRcdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zZXRTdGF0ZSh7XG5cdFx0XHRcdFx0XHRcdHRhbnNhTWVudUhUTUw6IHRhbnNhTWVudUhUTUxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnRhbnNhQ3VzdG9tTWVudUxvYWRlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50Lm1lbnVMb2FkZWQgPSB0cnVlO1xuXHRcdFx0XHR9O1xuXHRcdFx0XHR3aW5kb3cudGFuc2FNYWluLmdldE1lbnVVSSh0cnVlLCBjYWxsQmFja0Z1bmMpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJzdHJSZXBsYWNlQWxsXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHN0clJlcGxhY2VBbGwoc291cmNlLCBzZWFyY2gsIHJlcGxhY2VtZW50KSB7XG5cdFx0XHRyZXR1cm4gc291cmNlLnJlcGxhY2UobmV3IFJlZ0V4cChzZWFyY2gsICdnJyksIHJlcGxhY2VtZW50KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6IFwibG9hZEluaXRUYW5zYUxvYWRlclNjcmlwdFwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBsb2FkSW5pdFRhbnNhTG9hZGVyU2NyaXB0KCkge1xuXHRcdFx0dmFyIHRhbnNhTG9hZGVyU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0YW5zYUxvYWRlclNjcmlwdFwiKTtcblx0XHRcdGlmICghdGFuc2FMb2FkZXJTY3JpcHQpIHtcblx0XHRcdFx0dmFyIGluaXRUYW5zYUxvYWRlclNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXHRcdFx0XHRpbml0VGFuc2FMb2FkZXJTY3JpcHQuc3JjID0gd2luZG93LnRhbnNhLnNldHRpbmdzLmJhc2VVcmwgKyAnaW5pdFRhbnNhTG9hZGVyLmpzPycgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblx0XHRcdFx0aW5pdFRhbnNhTG9hZGVyU2NyaXB0LmFzeW5jID0gZmFsc2U7XG5cdFx0XHRcdGluaXRUYW5zYUxvYWRlclNjcmlwdC5vbmVycm9yID0gZnVuY3Rpb24gKGVycikge1xuXHRcdFx0XHRcdHdpbmRvdy50YW5zYUxvYWRlclNjcmlwdENhbGxCYWNrKCk7XG5cdFx0XHRcdH07XG5cdFx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKS5hcHBlbmRDaGlsZChpbml0VGFuc2FMb2FkZXJTY3JpcHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKHdpbmRvdy50YW5zYUxvYWRlclNjcmlwdENhbGxCYWNrKSB3aW5kb3cudGFuc2FMb2FkZXJTY3JpcHRDYWxsQmFjaygpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJzaG93VGFuc2FTZXR0aW5nc01lbnVcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gc2hvd1RhbnNhU2V0dGluZ3NNZW51KCkge1xuXHRcdFx0dmFyIHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50ID0gd2luZG93LndwVGFuc2FTaWRlYmFyQ29tcG9uZW50O1xuXHRcdFx0aWYgKHRhbnNhRXh0ZW5zaW9uSW5mby5zaG93RmxvYXRpbmdUYW5zYU1lbnUpIHtcblx0XHRcdFx0aWYgKCF3cFRhbnNhU2lkZWJhckNvbXBvbmVudC50YW5zYUN1c3RvbU1lbnVMb2FkZWQpIHtcblx0XHRcdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5tZW51TG9hZGVkID0gZmFsc2U7XG5cdFx0XHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQudGFuc2FDdXN0b21NZW51TG9hZGVkID0gdHJ1ZTtcblx0XHRcdFx0XHR3aW5kb3cuc2V0VGFuc2FNZW51Q29udGVudFBvc2l0aW9uQW5kU3R5bGUod3BUYW5zYVNpZGViYXJDb21wb25lbnQuc3RhdGUudGFuc2FTZXR0aW5nc1BhZ2VNZW51SFRNTCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0d2luZG93LnRvZ2dsZVRhbnNhQ3VzdG9tTWVudSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YXIgc3RhdGVUYW5zYU1lbnVIVE1MID0gd3BUYW5zYVNpZGViYXJDb21wb25lbnQuc3RhdGUudGFuc2FNZW51SFRNTDtcblx0XHRcdFx0aWYgKCFzdGF0ZVRhbnNhTWVudUhUTUwgfHwgc3RhdGVUYW5zYU1lbnVIVE1MICE9PSB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zdGF0ZS50YW5zYVNldHRpbmdzUGFnZU1lbnVIVE1MKSB7XG5cdFx0XHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQuc2V0U3RhdGUoe1xuXHRcdFx0XHRcdFx0dGFuc2FNZW51SFRNTDogd3BUYW5zYVNpZGViYXJDb21wb25lbnQuc3RhdGUudGFuc2FTZXR0aW5nc1BhZ2VNZW51SFRNTFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInNob3dUYW5zYU1lbnVcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gc2hvd1RhbnNhTWVudSgpIHtcblx0XHRcdGlmICghd2luZG93LnRhbnNhRXh0ZW5zaW9uSW5mby5pc1RhbnNhU2VydmVyVVJMU2V0KSB7XG5cdFx0XHRcdHRoaXMuc2hvd1RhbnNhU2V0dGluZ3NNZW51KCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmNoZWNrQW5kTG9hZE1lbnVGcm9tU2VydmVyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcblx0XHRcdHdpbmRvdy5zaG93VGFuc2FQbHVnaW5TaWRlYmFyKCk7XG5cdFx0XHRpZiAodGFuc2FFeHRlbnNpb25JbmZvLnNob3dGbG9hdGluZ1RhbnNhTWVudSkge1xuXHRcdFx0XHRpZiAodGhpcy5pc1RhbnNhU2lkZWJhckFjdGl2ZSgpKSB7XG5cdFx0XHRcdFx0d2luZG93LmhpZGVUYW5zYVBsdWdpblNpZGViYXIoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLm1lbnVMb2FkZWQgfHwgdGhpcy50YW5zYUN1c3RvbU1lbnVMb2FkZWQpIHtcblx0XHRcdFx0XHR0aGlzLnNob3dUYW5zYU1lbnUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zaG93VGFuc2FNZW51KCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcImlzVGFuc2FTaWRlYmFyQWN0aXZlXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIGlzVGFuc2FTaWRlYmFyQWN0aXZlKCkge1xuXHRcdFx0dmFyIGFjdGl2ZUdlbmVyYWxTaWRlYmFyTmFtZSA9IHdwLmRhdGEuc2VsZWN0KCdjb3JlL2VkaXQtcG9zdCcpLmdldEFjdGl2ZUdlbmVyYWxTaWRlYmFyTmFtZSgpO1xuXHRcdFx0cmV0dXJuIGFjdGl2ZUdlbmVyYWxTaWRlYmFyTmFtZSA9PSAndGFuc2EvdGFuc2Etc2lkZWJhcic7XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInJlbmRlclwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG5cdFx0XHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRGcmFnbWVudCxcblx0XHRcdFx0bnVsbCxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFBsdWdpblNpZGViYXJNb3JlTWVudUl0ZW0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dGFyZ2V0OiBcInRhbnNhLXNpZGViYXJcIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0X18oJ1RhbnNhJylcblx0XHRcdFx0KSxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFBsdWdpblNpZGViYXIsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogXCJ0YW5zYS1zaWRlYmFyXCIsXG5cdFx0XHRcdFx0XHR0aXRsZTogX18oJ1RhbnNhJylcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRoaXMucmVuZGVyTWVudSgpXG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdFx0fVxuXHR9XSk7XG5cblx0cmV0dXJuIFRhbnNhX1NpZGViYXI7XG59KENvbXBvbmVudCk7XG5cbnJlZ2lzdGVyUGx1Z2luKCd0YW5zYScsIHtcblx0aWNvbjogd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRhbnNhSWNvbiwgbnVsbCksXG5cdHJlbmRlcjogVGFuc2FfU2lkZWJhclxufSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvZ3V0ZW5iZXJnL3NpZGViYXIuanNcbi8vIG1vZHVsZSBpZCA9IDQzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///43\n");
     332eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(80);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n\n\n\n\n\n/**\n * Tansa Sidebar\n */\nvar __ = wp.i18n.__;\nvar _wp$editPost = wp.editPost,\n    PluginSidebar = _wp$editPost.PluginSidebar,\n    PluginSidebarMoreMenuItem = _wp$editPost.PluginSidebarMoreMenuItem;\nvar _wp$components = wp.components,\n    PanelBody = _wp$components.PanelBody,\n    TextControl = _wp$components.TextControl;\nvar _wp$element = wp.element,\n    Component = _wp$element.Component,\n    Fragment = _wp$element.Fragment;\nvar registerPlugin = wp.plugins.registerPlugin;\n\nvar TansaIcon = function (_Component) {\n\t__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(TansaIcon, _Component);\n\n\tfunction TansaIcon() {\n\t\t__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, TansaIcon);\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (TansaIcon.__proto__ || __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default()(TansaIcon)).apply(this, arguments));\n\t}\n\n\t__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(TansaIcon, [{\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(evt) {\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tevt.preventDefault();\n\t\t\t\tevt.stopPropagation();\n\n\t\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\t\twpTansaSidebarComponent.showTansaMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn wp.element.createElement(\"img\", { onClick: this.handleClick, \"class\": \"tansaIcon\", id: \"content_tansaButton\", src: tansaExtensionInfo.pluginPath + '/img/TS.png', alt: \"Tansa\" });\n\t\t}\n\t}]);\n\n\treturn TansaIcon;\n}(Component);\n\nvar Tansa_Sidebar = function (_Component2) {\n\t__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(Tansa_Sidebar, _Component2);\n\n\tfunction Tansa_Sidebar() {\n\t\t__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Tansa_Sidebar);\n\n\t\tvar _this2 = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (Tansa_Sidebar.__proto__ || __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default()(Tansa_Sidebar)).apply(this, arguments));\n\n\t\twindow.initTansaObject();\n\t\t_this2.floatingLoadingMenu = \"\";\n\t\t_this2.state = _this2.getInitialState();\n\t\twindow.wpTansaSidebarComponent = _this2;\n\t\treturn _this2;\n\t}\n\n\t__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(Tansa_Sidebar, [{\n\t\tkey: \"getInitialState\",\n\t\tvalue: function getInitialState() {\n\t\t\tvar loadingMenuLabel = window.getUILanguageStringValue(tansaExtensionInfo.uiLangaugeStrings.client.popupMenu.loadingMenu);\n\t\t\tvar settingsMenuLabel = window.getUILanguageStringValue(tansaExtensionInfo.uiLangaugeStrings.client.connectionDialog.settingMenu);\n\t\t\tvar loadingMenuHTML = '<ul id=\"' + window.tansaCustomSubMenuElementId + '\"><li class=\"lodingMenu\">' + loadingMenuLabel + '</li></ul>';\n\t\t\t//\t\tvar connectionMenuHTML = \"<ul class='submenu' id='tansaSubMenu'><li><a class='thickbox components-button is-button is-default is-large' href='\" + tansaExtensionInfo.pluginPath + \"/javascriptapp/html/connection.html?TB_iframe=true&width=400px&height=500px' id='connectionMenu' >Connection</a></li></ul>\";\n\t\t\tvar tansaSettingsPageMenuHTML = \"<ul id='\" + window.tansaCustomSubMenuElementId + \"'><li class='ui-menu-item' role='presentation'><a href='admin.php?page=tansaSettingsPage' id='tansaSettingsPageMenuItem' class='ui-corner-all' tabindex='-1' role='menuitem'>\" + settingsMenuLabel + \"</a></li></li></ul>\";\n\t\t\tthis.floatingLoadingMenu = \"<ul id='\" + window.tansaCustomSubMenuElementId + \"' class = 'floatingLoadingMenu'><li role='presentation'><a id='loadingMenu' class='ui-corner-all' tabindex='-1' role='menuitem'>\" + loadingMenuLabel + \"</a></li></ul>\";\n\t\t\treturn {\n\t\t\t\ttansaMenuHTML: loadingMenuHTML,\n\t\t\t\tloadingMenuHTML: loadingMenuHTML,\n\t\t\t\ttansaSettingsPageMenuHTML: tansaSettingsPageMenuHTML\n\t\t\t\t//\t\t\tconnectionMenuHTML: connectionMenuHTML\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"addTansaCssClasses\",\n\t\tvalue: function addTansaCssClasses(tansaMenuHTML) {\n\t\t\ttansaMenuHTML = window.jQuery('<div></div>').html(tansaMenuHTML);\n\t\t\twindow.jQuery('#tansaSubMenu', tansaMenuHTML).attr('id', 'tansaSidebarSubMenu');\n\t\t\tvar tansaMenuElements = tansaMenuHTML.find('#tansaSidebarSubMenu li a');\n\t\t\tif (tansaMenuElements.length > 0) {\n\t\t\t\tfor (var i = 0; i < tansaMenuElements.length; i++) {\n\t\t\t\t\tvar tansaMenuElement = tansaMenuElements[i];\n\t\t\t\t\ttansaMenuElement.setAttribute('title', tansaMenuElement.innerText);\n\t\t\t\t\tif (tansaMenuElement.id == \"connectionMenu\") {\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"href\", tansaExtensionInfo.pluginPath + '/javascriptapp/html/connection.html?TB_iframe=true&width=400px&height=500px');\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"class\", \"thickbox components-button is-button is-default is-large\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"onClick\", \"wpTansaSidebarComponent.tansaMenuClicked(event)\");\n\t\t\t\t\t\ttansaMenuElement.setAttribute(\"class\", \"components-button is-button is-default is-large\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn tansaMenuHTML.html();\n\t\t}\n\t}, {\n\t\tkey: \"tansaMenuClicked\",\n\t\tvalue: function tansaMenuClicked(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tevt.stopImmediatePropagation();\n\t\t\tevt.stopPropagation();\n\t\t\tvar menu = window.jQuery(evt.target);\n\t\t\tvar href = window.jQuery(menu).attr(\"href\");\n\t\t\tvar profileId = window.jQuery(menu).attr(\"data-profileid\");\n\t\t\tvar profileTitle = window.jQuery(menu).attr(\"data-profiletitle\");\n\t\t\tvar profileLangCode = window.jQuery(menu).attr(\"data-profilelangcode\");\n\t\t\tvar serviceName = window.jQuery(menu).attr(\"data-servicename\");\n\t\t\tvar menuId = window.jQuery(menu).attr(\"id\");\n\t\t\tvar menuTitle = window.jQuery(menu).html();\n\n\t\t\tif (menuId === \"clearHyphenationPointsMenu\") {\n\t\t\t\twindow.tansaMain.removeHyphenationPoints();\n\t\t\t} else if (menuId === \"aboutMenu\") {\n\t\t\t\twindow.tansaMain.showAboutDialog(href, menuTitle);\n\t\t\t} else if (href && href !== \"\" && href !== \"#\") {\n\t\t\t\twindow.open(href, '_blank');\n\t\t\t} else {\n\t\t\t\twindow.tansaMain.onRunTansaProofing({\n\t\t\t\t\t\"profileId\": profileId,\n\t\t\t\t\t\"serviceName\": serviceName,\n\t\t\t\t\t\"profileLangCode\": profileLangCode,\n\t\t\t\t\t\"userId\": window.tansa.settings.userId,\n\t\t\t\t\t\"theme\": window.tansa.settings.theme,\n\t\t\t\t\t\"langCode\": window.tansa.settings.langCode,\n\t\t\t\t\t\"profileTitle\": profileTitle\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderMenu\",\n\t\tvalue: function renderMenu() {\n\t\t\tvar menuHTML = this.state.tansaMenuHTML;\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tmenuHTML = '';\n\t\t\t}\n\t\t\treturn wp.element.createElement(\"div\", { id: \"tansaMenuContainer\", dangerouslySetInnerHTML: { __html: menuHTML } });\n\t\t}\n\t}, {\n\t\tkey: \"stringEndsWith\",\n\t\tvalue: function stringEndsWith(sourceStr, subStr) {\n\t\t\treturn sourceStr.indexOf(subStr, sourceStr.length - subStr.length) !== -1;\n\t\t}\n\t}, {\n\t\tkey: \"toggleTansaFloatingMenu\",\n\t\tvalue: function toggleTansaFloatingMenu(forcedToggle) {\n\t\t\tvar evtTargetElement;\n\t\t\tif (event) {\n\t\t\t\tevtTargetElement = window.jQuery(event.target);\n\t\t\t}\n\t\t\tif (forcedToggle || evtTargetElement && (evtTargetElement.hasClass(\"tansaIcon\") || evtTargetElement.find(\".tansaIcon\").length > 0)) {\n\t\t\t\tif (this.isTansaSidebarActive()) {\n\t\t\t\t\twindow.hideTansaPluginSidebar();\n\t\t\t\t}\n\t\t\t\twindow.resetMenuContentPositionAndStyle();\n\t\t\t\twindow.toggleTansaMenu();\n\t\t\t} else {\n\t\t\t\t// hide the menu when Tansa button is not clicked.\n\t\t\t\t$(tansaMain.tansaSubMenuElementSelector).hide();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"checkAndLoadMenuFromServer\",\n\t\tvalue: function checkAndLoadMenuFromServer() {\n\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu && this.menuLoaded) {\n\t\t\t\twpTansaSidebarComponent.toggleTansaFloatingMenu();\n\t\t\t} else {\n\t\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu && !this.menuLoaded && !this.tansaCustomMenuLoaded && !this.loadingMenuLoaded) {\n\t\t\t\t\twpTansaSidebarComponent.loadingMenuLoaded = true;\n\t\t\t\t\t// setTimeout(window.setTansaMenuContentPositionAndStyle(wpTansaSidebarComponent.floatingLoadingMenu), 0)\n\t\t\t\t\twindow.setTansaMenuContentPositionAndStyle(wpTansaSidebarComponent.floatingLoadingMenu);\n\t\t\t\t}\n\t\t\t\twindow.tansaLoaderScriptCallBack = this.tansaLoaderScriptCallBack;\n\t\t\t\tvar stateTansaMenuHTML = wpTansaSidebarComponent.state.tansaMenuHTML;\n\t\t\t\tif (!stateTansaMenuHTML || stateTansaMenuHTML === wpTansaSidebarComponent.state.loadingMenuHTML) wpTansaSidebarComponent.loadInitTansaLoaderScript();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"resetAllMenus\",\n\t\tvalue: function resetAllMenus() {\n\t\t\twpTansaSidebarComponent.setState({\n\t\t\t\ttansaMenuHTML: wpTansaSidebarComponent.state.loadingMenuHTML\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"tansaLoaderScriptCallBack\",\n\t\tvalue: function tansaLoaderScriptCallBack() {\n\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\tvar stateTansaMenuHTML = wpTansaSidebarComponent.state.tansaMenuHTML;\n\t\t\tif (!window.tansaMain) {\n\t\t\t\tconsole.error(\"Sorry! Something went wrong. Please try again.\");\n\t\t\t\twpTansaSidebarComponent.menuLoaded = false;\n\t\t\t\twpTansaSidebarComponent.showTansaSettingsMenu();\n\t\t\t} else if ((!stateTansaMenuHTML || stateTansaMenuHTML === wpTansaSidebarComponent.state.loadingMenuHTML) && window.tansaMain) {\n\t\t\t\tvar callBackFunc = function callBackFunc(tansaMenuHTML) {\n\t\t\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\n\t\t\t\t\t\tif (wpTansaSidebarComponent.loadingMenuLoaded) {\n\t\t\t\t\t\t\twindow.toggleTansaCustomMenu();\n\t\t\t\t\t\t}\n\t\t\t\t\t\twpTansaSidebarComponent.loadingMenuLoaded = false;\n\t\t\t\t\t\twindow.tansaMain.setMenuContentPositionAndStyle(tansaMenuHTML, window.getTansaMenuButtonPosition());\n\t\t\t\t\t\twpTansaSidebarComponent.toggleTansaFloatingMenu(true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.showTansaPluginSidebar();\n\t\t\t\t\t\ttansaMenuHTML = wpTansaSidebarComponent.strReplaceAll(tansaMenuHTML, '<li>-</li>', '<li class=\"separator\"></li>');\n\t\t\t\t\t\ttansaMenuHTML = wpTansaSidebarComponent.addTansaCssClasses(tansaMenuHTML);\n\t\t\t\t\t\twpTansaSidebarComponent.setState({\n\t\t\t\t\t\t\ttansaMenuHTML: tansaMenuHTML\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\twpTansaSidebarComponent.tansaCustomMenuLoaded = false;\n\t\t\t\t\twpTansaSidebarComponent.menuLoaded = true;\n\t\t\t\t};\n\t\t\t\twindow.tansaMain.getMenuUI(true, callBackFunc);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"strReplaceAll\",\n\t\tvalue: function strReplaceAll(source, search, replacement) {\n\t\t\treturn source.replace(new RegExp(search, 'g'), replacement);\n\t\t}\n\t}, {\n\t\tkey: \"loadInitTansaLoaderScript\",\n\t\tvalue: function loadInitTansaLoaderScript() {\n\t\t\tvar tansaLoaderScript = document.getElementById(\"tansaLoaderScript\");\n\t\t\tif (!tansaLoaderScript) {\n\t\t\t\tvar initTansaLoaderScript = document.createElement('script');\n\t\t\t\tinitTansaLoaderScript.src = window.tansa.settings.baseUrl + 'initTansaLoader.js?' + new Date().getTime();\n\t\t\t\tinitTansaLoaderScript.async = false;\n\t\t\t\tinitTansaLoaderScript.onerror = function (err) {\n\t\t\t\t\twindow.tansaLoaderScriptCallBack();\n\t\t\t\t};\n\t\t\t\tdocument.querySelector('head').appendChild(initTansaLoaderScript);\n\t\t\t} else {\n\t\t\t\tif (window.tansaLoaderScriptCallBack) window.tansaLoaderScriptCallBack();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"showTansaSettingsMenu\",\n\t\tvalue: function showTansaSettingsMenu() {\n\t\t\tvar wpTansaSidebarComponent = window.wpTansaSidebarComponent;\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tif (!wpTansaSidebarComponent.tansaCustomMenuLoaded) {\n\t\t\t\t\tif (wpTansaSidebarComponent.loadingMenuLoaded) {\n\t\t\t\t\t\twindow.toggleTansaCustomMenu();\n\t\t\t\t\t}\n\t\t\t\t\twpTansaSidebarComponent.loginMenuLoaded = false;\n\t\t\t\t\twpTansaSidebarComponent.menuLoaded = false;\n\t\t\t\t\twpTansaSidebarComponent.tansaCustomMenuLoaded = true;\n\t\t\t\t\twindow.setTansaMenuContentPositionAndStyle(wpTansaSidebarComponent.state.tansaSettingsPageMenuHTML);\n\t\t\t\t} else {\n\t\t\t\t\twindow.toggleTansaCustomMenu();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar stateTansaMenuHTML = wpTansaSidebarComponent.state.tansaMenuHTML;\n\t\t\t\tif (!stateTansaMenuHTML || stateTansaMenuHTML !== wpTansaSidebarComponent.state.tansaSettingsPageMenuHTML) {\n\t\t\t\t\twpTansaSidebarComponent.setState({\n\t\t\t\t\t\ttansaMenuHTML: wpTansaSidebarComponent.state.tansaSettingsPageMenuHTML\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"showTansaMenu\",\n\t\tvalue: function showTansaMenu() {\n\t\t\tif (!window.tansaExtensionInfo.isTansaServerURLSet) {\n\t\t\t\tthis.showTansaSettingsMenu();\n\t\t\t} else {\n\t\t\t\tthis.checkAndLoadMenuFromServer();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\twindow.showTansaPluginSidebar();\n\t\t\tif (tansaExtensionInfo.showFloatingTansaMenu) {\n\t\t\t\tif (this.isTansaSidebarActive()) {\n\t\t\t\t\twindow.hideTansaPluginSidebar();\n\t\t\t\t}\n\n\t\t\t\tif (this.menuLoaded || this.tansaCustomMenuLoaded) {\n\t\t\t\t\tthis.showTansaMenu();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.showTansaMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"isTansaSidebarActive\",\n\t\tvalue: function isTansaSidebarActive() {\n\t\t\tvar activeGeneralSidebarName = wp.data.select('core/edit-post').getActiveGeneralSidebarName();\n\t\t\treturn activeGeneralSidebarName == 'tansa/tansa-sidebar';\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn wp.element.createElement(\n\t\t\t\tFragment,\n\t\t\t\tnull,\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebarMoreMenuItem,\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: \"tansa-sidebar\"\n\t\t\t\t\t},\n\t\t\t\t\t__('Tansa')\n\t\t\t\t),\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebar,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"tansa-sidebar\",\n\t\t\t\t\t\ttitle: __('Tansa')\n\t\t\t\t\t},\n\t\t\t\t\tthis.renderMenu()\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Tansa_Sidebar;\n}(Component);\n\nregisterPlugin('tansa', {\n\ticon: wp.element.createElement(TansaIcon, null),\n\trender: Tansa_Sidebar\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZ3V0ZW5iZXJnL3NpZGViYXIuanM/NjlmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX09iamVjdCRnZXRQcm90b3R5cGVPZiBmcm9tIFwiYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcImJhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVyblwiO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tIFwiYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzXCI7XG4vKipcbiAqIFRhbnNhIFNpZGViYXJcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdFBvc3QgPSB3cC5lZGl0UG9zdCxcbiAgICBQbHVnaW5TaWRlYmFyID0gX3dwJGVkaXRQb3N0LlBsdWdpblNpZGViYXIsXG4gICAgUGx1Z2luU2lkZWJhck1vcmVNZW51SXRlbSA9IF93cCRlZGl0UG9zdC5QbHVnaW5TaWRlYmFyTW9yZU1lbnVJdGVtO1xudmFyIF93cCRjb21wb25lbnRzID0gd3AuY29tcG9uZW50cyxcbiAgICBQYW5lbEJvZHkgPSBfd3AkY29tcG9uZW50cy5QYW5lbEJvZHksXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbDtcbnZhciBfd3AkZWxlbWVudCA9IHdwLmVsZW1lbnQsXG4gICAgQ29tcG9uZW50ID0gX3dwJGVsZW1lbnQuQ29tcG9uZW50LFxuICAgIEZyYWdtZW50ID0gX3dwJGVsZW1lbnQuRnJhZ21lbnQ7XG52YXIgcmVnaXN0ZXJQbHVnaW4gPSB3cC5wbHVnaW5zLnJlZ2lzdGVyUGx1Z2luO1xuXG52YXIgVGFuc2FJY29uID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcblx0X2luaGVyaXRzKFRhbnNhSWNvbiwgX0NvbXBvbmVudCk7XG5cblx0ZnVuY3Rpb24gVGFuc2FJY29uKCkge1xuXHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUYW5zYUljb24pO1xuXG5cdFx0cmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChUYW5zYUljb24uX19wcm90b19fIHx8IF9PYmplY3QkZ2V0UHJvdG90eXBlT2YoVGFuc2FJY29uKSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG5cdH1cblxuXHRfY3JlYXRlQ2xhc3MoVGFuc2FJY29uLCBbe1xuXHRcdGtleTogXCJoYW5kbGVDbGlja1wiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBoYW5kbGVDbGljayhldnQpIHtcblx0XHRcdGlmICh0YW5zYUV4dGVuc2lvbkluZm8uc2hvd0Zsb2F0aW5nVGFuc2FNZW51KSB7XG5cdFx0XHRcdGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cblx0XHRcdFx0dmFyIHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50ID0gd2luZG93LndwVGFuc2FTaWRlYmFyQ29tcG9uZW50O1xuXHRcdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zaG93VGFuc2FNZW51KCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInJlbmRlclwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG5cdFx0XHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHsgb25DbGljazogdGhpcy5oYW5kbGVDbGljaywgXCJjbGFzc1wiOiBcInRhbnNhSWNvblwiLCBpZDogXCJjb250ZW50X3RhbnNhQnV0dG9uXCIsIHNyYzogdGFuc2FFeHRlbnNpb25JbmZvLnBsdWdpblBhdGggKyAnL2ltZy9UUy5wbmcnLCBhbHQ6IFwiVGFuc2FcIiB9KTtcblx0XHR9XG5cdH1dKTtcblxuXHRyZXR1cm4gVGFuc2FJY29uO1xufShDb21wb25lbnQpO1xuXG52YXIgVGFuc2FfU2lkZWJhciA9IGZ1bmN0aW9uIChfQ29tcG9uZW50Mikge1xuXHRfaW5oZXJpdHMoVGFuc2FfU2lkZWJhciwgX0NvbXBvbmVudDIpO1xuXG5cdGZ1bmN0aW9uIFRhbnNhX1NpZGViYXIoKSB7XG5cdFx0X2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRhbnNhX1NpZGViYXIpO1xuXG5cdFx0dmFyIF90aGlzMiA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChUYW5zYV9TaWRlYmFyLl9fcHJvdG9fXyB8fCBfT2JqZWN0JGdldFByb3RvdHlwZU9mKFRhbnNhX1NpZGViYXIpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcblxuXHRcdHdpbmRvdy5pbml0VGFuc2FPYmplY3QoKTtcblx0XHRfdGhpczIuZmxvYXRpbmdMb2FkaW5nTWVudSA9IFwiXCI7XG5cdFx0X3RoaXMyLnN0YXRlID0gX3RoaXMyLmdldEluaXRpYWxTdGF0ZSgpO1xuXHRcdHdpbmRvdy53cFRhbnNhU2lkZWJhckNvbXBvbmVudCA9IF90aGlzMjtcblx0XHRyZXR1cm4gX3RoaXMyO1xuXHR9XG5cblx0X2NyZWF0ZUNsYXNzKFRhbnNhX1NpZGViYXIsIFt7XG5cdFx0a2V5OiBcImdldEluaXRpYWxTdGF0ZVwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG5cdFx0XHR2YXIgbG9hZGluZ01lbnVMYWJlbCA9IHdpbmRvdy5nZXRVSUxhbmd1YWdlU3RyaW5nVmFsdWUodGFuc2FFeHRlbnNpb25JbmZvLnVpTGFuZ2F1Z2VTdHJpbmdzLmNsaWVudC5wb3B1cE1lbnUubG9hZGluZ01lbnUpO1xuXHRcdFx0dmFyIHNldHRpbmdzTWVudUxhYmVsID0gd2luZG93LmdldFVJTGFuZ3VhZ2VTdHJpbmdWYWx1ZSh0YW5zYUV4dGVuc2lvbkluZm8udWlMYW5nYXVnZVN0cmluZ3MuY2xpZW50LmNvbm5lY3Rpb25EaWFsb2cuc2V0dGluZ01lbnUpO1xuXHRcdFx0dmFyIGxvYWRpbmdNZW51SFRNTCA9ICc8dWwgaWQ9XCInICsgd2luZG93LnRhbnNhQ3VzdG9tU3ViTWVudUVsZW1lbnRJZCArICdcIj48bGkgY2xhc3M9XCJsb2RpbmdNZW51XCI+JyArIGxvYWRpbmdNZW51TGFiZWwgKyAnPC9saT48L3VsPic7XG5cdFx0XHQvL1x0XHR2YXIgY29ubmVjdGlvbk1lbnVIVE1MID0gXCI8dWwgY2xhc3M9J3N1Ym1lbnUnIGlkPSd0YW5zYVN1Yk1lbnUnPjxsaT48YSBjbGFzcz0ndGhpY2tib3ggY29tcG9uZW50cy1idXR0b24gaXMtYnV0dG9uIGlzLWRlZmF1bHQgaXMtbGFyZ2UnIGhyZWY9J1wiICsgdGFuc2FFeHRlbnNpb25JbmZvLnBsdWdpblBhdGggKyBcIi9qYXZhc2NyaXB0YXBwL2h0bWwvY29ubmVjdGlvbi5odG1sP1RCX2lmcmFtZT10cnVlJndpZHRoPTQwMHB4JmhlaWdodD01MDBweCcgaWQ9J2Nvbm5lY3Rpb25NZW51JyA+Q29ubmVjdGlvbjwvYT48L2xpPjwvdWw+XCI7XG5cdFx0XHR2YXIgdGFuc2FTZXR0aW5nc1BhZ2VNZW51SFRNTCA9IFwiPHVsIGlkPSdcIiArIHdpbmRvdy50YW5zYUN1c3RvbVN1Yk1lbnVFbGVtZW50SWQgKyBcIic+PGxpIGNsYXNzPSd1aS1tZW51LWl0ZW0nIHJvbGU9J3ByZXNlbnRhdGlvbic+PGEgaHJlZj0nYWRtaW4ucGhwP3BhZ2U9dGFuc2FTZXR0aW5nc1BhZ2UnIGlkPSd0YW5zYVNldHRpbmdzUGFnZU1lbnVJdGVtJyBjbGFzcz0ndWktY29ybmVyLWFsbCcgdGFiaW5kZXg9Jy0xJyByb2xlPSdtZW51aXRlbSc+XCIgKyBzZXR0aW5nc01lbnVMYWJlbCArIFwiPC9hPjwvbGk+PC9saT48L3VsPlwiO1xuXHRcdFx0dGhpcy5mbG9hdGluZ0xvYWRpbmdNZW51ID0gXCI8dWwgaWQ9J1wiICsgd2luZG93LnRhbnNhQ3VzdG9tU3ViTWVudUVsZW1lbnRJZCArIFwiJyBjbGFzcyA9ICdmbG9hdGluZ0xvYWRpbmdNZW51Jz48bGkgcm9sZT0ncHJlc2VudGF0aW9uJz48YSBpZD0nbG9hZGluZ01lbnUnIGNsYXNzPSd1aS1jb3JuZXItYWxsJyB0YWJpbmRleD0nLTEnIHJvbGU9J21lbnVpdGVtJz5cIiArIGxvYWRpbmdNZW51TGFiZWwgKyBcIjwvYT48L2xpPjwvdWw+XCI7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0YW5zYU1lbnVIVE1MOiBsb2FkaW5nTWVudUhUTUwsXG5cdFx0XHRcdGxvYWRpbmdNZW51SFRNTDogbG9hZGluZ01lbnVIVE1MLFxuXHRcdFx0XHR0YW5zYVNldHRpbmdzUGFnZU1lbnVIVE1MOiB0YW5zYVNldHRpbmdzUGFnZU1lbnVIVE1MXG5cdFx0XHRcdC8vXHRcdFx0Y29ubmVjdGlvbk1lbnVIVE1MOiBjb25uZWN0aW9uTWVudUhUTUxcblx0XHRcdH07XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcImFkZFRhbnNhQ3NzQ2xhc3Nlc1wiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBhZGRUYW5zYUNzc0NsYXNzZXModGFuc2FNZW51SFRNTCkge1xuXHRcdFx0dGFuc2FNZW51SFRNTCA9IHdpbmRvdy5qUXVlcnkoJzxkaXY+PC9kaXY+JykuaHRtbCh0YW5zYU1lbnVIVE1MKTtcblx0XHRcdHdpbmRvdy5qUXVlcnkoJyN0YW5zYVN1Yk1lbnUnLCB0YW5zYU1lbnVIVE1MKS5hdHRyKCdpZCcsICd0YW5zYVNpZGViYXJTdWJNZW51Jyk7XG5cdFx0XHR2YXIgdGFuc2FNZW51RWxlbWVudHMgPSB0YW5zYU1lbnVIVE1MLmZpbmQoJyN0YW5zYVNpZGViYXJTdWJNZW51IGxpIGEnKTtcblx0XHRcdGlmICh0YW5zYU1lbnVFbGVtZW50cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgdGFuc2FNZW51RWxlbWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHR2YXIgdGFuc2FNZW51RWxlbWVudCA9IHRhbnNhTWVudUVsZW1lbnRzW2ldO1xuXHRcdFx0XHRcdHRhbnNhTWVudUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsIHRhbnNhTWVudUVsZW1lbnQuaW5uZXJUZXh0KTtcblx0XHRcdFx0XHRpZiAodGFuc2FNZW51RWxlbWVudC5pZCA9PSBcImNvbm5lY3Rpb25NZW51XCIpIHtcblx0XHRcdFx0XHRcdHRhbnNhTWVudUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCB0YW5zYUV4dGVuc2lvbkluZm8ucGx1Z2luUGF0aCArICcvamF2YXNjcmlwdGFwcC9odG1sL2Nvbm5lY3Rpb24uaHRtbD9UQl9pZnJhbWU9dHJ1ZSZ3aWR0aD00MDBweCZoZWlnaHQ9NTAwcHgnKTtcblx0XHRcdFx0XHRcdHRhbnNhTWVudUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgXCJ0aGlja2JveCBjb21wb25lbnRzLWJ1dHRvbiBpcy1idXR0b24gaXMtZGVmYXVsdCBpcy1sYXJnZVwiKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGFuc2FNZW51RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJvbkNsaWNrXCIsIFwid3BUYW5zYVNpZGViYXJDb21wb25lbnQudGFuc2FNZW51Q2xpY2tlZChldmVudClcIik7XG5cdFx0XHRcdFx0XHR0YW5zYU1lbnVFbGVtZW50LnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIFwiY29tcG9uZW50cy1idXR0b24gaXMtYnV0dG9uIGlzLWRlZmF1bHQgaXMtbGFyZ2VcIik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGFuc2FNZW51SFRNTC5odG1sKCk7XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInRhbnNhTWVudUNsaWNrZWRcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gdGFuc2FNZW51Q2xpY2tlZChldnQpIHtcblx0XHRcdGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0ZXZ0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdFx0ZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0dmFyIG1lbnUgPSB3aW5kb3cualF1ZXJ5KGV2dC50YXJnZXQpO1xuXHRcdFx0dmFyIGhyZWYgPSB3aW5kb3cualF1ZXJ5KG1lbnUpLmF0dHIoXCJocmVmXCIpO1xuXHRcdFx0dmFyIHByb2ZpbGVJZCA9IHdpbmRvdy5qUXVlcnkobWVudSkuYXR0cihcImRhdGEtcHJvZmlsZWlkXCIpO1xuXHRcdFx0dmFyIHByb2ZpbGVUaXRsZSA9IHdpbmRvdy5qUXVlcnkobWVudSkuYXR0cihcImRhdGEtcHJvZmlsZXRpdGxlXCIpO1xuXHRcdFx0dmFyIHByb2ZpbGVMYW5nQ29kZSA9IHdpbmRvdy5qUXVlcnkobWVudSkuYXR0cihcImRhdGEtcHJvZmlsZWxhbmdjb2RlXCIpO1xuXHRcdFx0dmFyIHNlcnZpY2VOYW1lID0gd2luZG93LmpRdWVyeShtZW51KS5hdHRyKFwiZGF0YS1zZXJ2aWNlbmFtZVwiKTtcblx0XHRcdHZhciBtZW51SWQgPSB3aW5kb3cualF1ZXJ5KG1lbnUpLmF0dHIoXCJpZFwiKTtcblx0XHRcdHZhciBtZW51VGl0bGUgPSB3aW5kb3cualF1ZXJ5KG1lbnUpLmh0bWwoKTtcblxuXHRcdFx0aWYgKG1lbnVJZCA9PT0gXCJjbGVhckh5cGhlbmF0aW9uUG9pbnRzTWVudVwiKSB7XG5cdFx0XHRcdHdpbmRvdy50YW5zYU1haW4ucmVtb3ZlSHlwaGVuYXRpb25Qb2ludHMoKTtcblx0XHRcdH0gZWxzZSBpZiAobWVudUlkID09PSBcImFib3V0TWVudVwiKSB7XG5cdFx0XHRcdHdpbmRvdy50YW5zYU1haW4uc2hvd0Fib3V0RGlhbG9nKGhyZWYsIG1lbnVUaXRsZSk7XG5cdFx0XHR9IGVsc2UgaWYgKGhyZWYgJiYgaHJlZiAhPT0gXCJcIiAmJiBocmVmICE9PSBcIiNcIikge1xuXHRcdFx0XHR3aW5kb3cub3BlbihocmVmLCAnX2JsYW5rJyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aW5kb3cudGFuc2FNYWluLm9uUnVuVGFuc2FQcm9vZmluZyh7XG5cdFx0XHRcdFx0XCJwcm9maWxlSWRcIjogcHJvZmlsZUlkLFxuXHRcdFx0XHRcdFwic2VydmljZU5hbWVcIjogc2VydmljZU5hbWUsXG5cdFx0XHRcdFx0XCJwcm9maWxlTGFuZ0NvZGVcIjogcHJvZmlsZUxhbmdDb2RlLFxuXHRcdFx0XHRcdFwidXNlcklkXCI6IHdpbmRvdy50YW5zYS5zZXR0aW5ncy51c2VySWQsXG5cdFx0XHRcdFx0XCJ0aGVtZVwiOiB3aW5kb3cudGFuc2Euc2V0dGluZ3MudGhlbWUsXG5cdFx0XHRcdFx0XCJsYW5nQ29kZVwiOiB3aW5kb3cudGFuc2Euc2V0dGluZ3MubGFuZ0NvZGUsXG5cdFx0XHRcdFx0XCJwcm9maWxlVGl0bGVcIjogcHJvZmlsZVRpdGxlXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJyZW5kZXJNZW51XCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHJlbmRlck1lbnUoKSB7XG5cdFx0XHR2YXIgbWVudUhUTUwgPSB0aGlzLnN0YXRlLnRhbnNhTWVudUhUTUw7XG5cdFx0XHRpZiAodGFuc2FFeHRlbnNpb25JbmZvLnNob3dGbG9hdGluZ1RhbnNhTWVudSkge1xuXHRcdFx0XHRtZW51SFRNTCA9ICcnO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGlkOiBcInRhbnNhTWVudUNvbnRhaW5lclwiLCBkYW5nZXJvdXNseVNldElubmVySFRNTDogeyBfX2h0bWw6IG1lbnVIVE1MIH0gfSk7XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInN0cmluZ0VuZHNXaXRoXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHN0cmluZ0VuZHNXaXRoKHNvdXJjZVN0ciwgc3ViU3RyKSB7XG5cdFx0XHRyZXR1cm4gc291cmNlU3RyLmluZGV4T2Yoc3ViU3RyLCBzb3VyY2VTdHIubGVuZ3RoIC0gc3ViU3RyLmxlbmd0aCkgIT09IC0xO1xuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJ0b2dnbGVUYW5zYUZsb2F0aW5nTWVudVwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiB0b2dnbGVUYW5zYUZsb2F0aW5nTWVudShmb3JjZWRUb2dnbGUpIHtcblx0XHRcdHZhciBldnRUYXJnZXRFbGVtZW50O1xuXHRcdFx0aWYgKGV2ZW50KSB7XG5cdFx0XHRcdGV2dFRhcmdldEVsZW1lbnQgPSB3aW5kb3cualF1ZXJ5KGV2ZW50LnRhcmdldCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZm9yY2VkVG9nZ2xlIHx8IGV2dFRhcmdldEVsZW1lbnQgJiYgKGV2dFRhcmdldEVsZW1lbnQuaGFzQ2xhc3MoXCJ0YW5zYUljb25cIikgfHwgZXZ0VGFyZ2V0RWxlbWVudC5maW5kKFwiLnRhbnNhSWNvblwiKS5sZW5ndGggPiAwKSkge1xuXHRcdFx0XHRpZiAodGhpcy5pc1RhbnNhU2lkZWJhckFjdGl2ZSgpKSB7XG5cdFx0XHRcdFx0d2luZG93LmhpZGVUYW5zYVBsdWdpblNpZGViYXIoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR3aW5kb3cucmVzZXRNZW51Q29udGVudFBvc2l0aW9uQW5kU3R5bGUoKTtcblx0XHRcdFx0d2luZG93LnRvZ2dsZVRhbnNhTWVudSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gaGlkZSB0aGUgbWVudSB3aGVuIFRhbnNhIGJ1dHRvbiBpcyBub3QgY2xpY2tlZC5cblx0XHRcdFx0JCh0YW5zYU1haW4udGFuc2FTdWJNZW51RWxlbWVudFNlbGVjdG9yKS5oaWRlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcImNoZWNrQW5kTG9hZE1lbnVGcm9tU2VydmVyXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIGNoZWNrQW5kTG9hZE1lbnVGcm9tU2VydmVyKCkge1xuXHRcdFx0dmFyIHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50ID0gd2luZG93LndwVGFuc2FTaWRlYmFyQ29tcG9uZW50O1xuXHRcdFx0aWYgKHRhbnNhRXh0ZW5zaW9uSW5mby5zaG93RmxvYXRpbmdUYW5zYU1lbnUgJiYgdGhpcy5tZW51TG9hZGVkKSB7XG5cdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnRvZ2dsZVRhbnNhRmxvYXRpbmdNZW51KCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAodGFuc2FFeHRlbnNpb25JbmZvLnNob3dGbG9hdGluZ1RhbnNhTWVudSAmJiAhdGhpcy5tZW51TG9hZGVkICYmICF0aGlzLnRhbnNhQ3VzdG9tTWVudUxvYWRlZCAmJiAhdGhpcy5sb2FkaW5nTWVudUxvYWRlZCkge1xuXHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LmxvYWRpbmdNZW51TG9hZGVkID0gdHJ1ZTtcblx0XHRcdFx0XHQvLyBzZXRUaW1lb3V0KHdpbmRvdy5zZXRUYW5zYU1lbnVDb250ZW50UG9zaXRpb25BbmRTdHlsZSh3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5mbG9hdGluZ0xvYWRpbmdNZW51KSwgMClcblx0XHRcdFx0XHR3aW5kb3cuc2V0VGFuc2FNZW51Q29udGVudFBvc2l0aW9uQW5kU3R5bGUod3BUYW5zYVNpZGViYXJDb21wb25lbnQuZmxvYXRpbmdMb2FkaW5nTWVudSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0d2luZG93LnRhbnNhTG9hZGVyU2NyaXB0Q2FsbEJhY2sgPSB0aGlzLnRhbnNhTG9hZGVyU2NyaXB0Q2FsbEJhY2s7XG5cdFx0XHRcdHZhciBzdGF0ZVRhbnNhTWVudUhUTUwgPSB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zdGF0ZS50YW5zYU1lbnVIVE1MO1xuXHRcdFx0XHRpZiAoIXN0YXRlVGFuc2FNZW51SFRNTCB8fCBzdGF0ZVRhbnNhTWVudUhUTUwgPT09IHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0YXRlLmxvYWRpbmdNZW51SFRNTCkgd3BUYW5zYVNpZGViYXJDb21wb25lbnQubG9hZEluaXRUYW5zYUxvYWRlclNjcmlwdCgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJyZXNldEFsbE1lbnVzXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHJlc2V0QWxsTWVudXMoKSB7XG5cdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zZXRTdGF0ZSh7XG5cdFx0XHRcdHRhbnNhTWVudUhUTUw6IHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0YXRlLmxvYWRpbmdNZW51SFRNTFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiBcInRhbnNhTG9hZGVyU2NyaXB0Q2FsbEJhY2tcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gdGFuc2FMb2FkZXJTY3JpcHRDYWxsQmFjaygpIHtcblx0XHRcdHZhciB3cFRhbnNhU2lkZWJhckNvbXBvbmVudCA9IHdpbmRvdy53cFRhbnNhU2lkZWJhckNvbXBvbmVudDtcblx0XHRcdHZhciBzdGF0ZVRhbnNhTWVudUhUTUwgPSB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zdGF0ZS50YW5zYU1lbnVIVE1MO1xuXHRcdFx0aWYgKCF3aW5kb3cudGFuc2FNYWluKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJTb3JyeSEgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uXCIpO1xuXHRcdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5tZW51TG9hZGVkID0gZmFsc2U7XG5cdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnNob3dUYW5zYVNldHRpbmdzTWVudSgpO1xuXHRcdFx0fSBlbHNlIGlmICgoIXN0YXRlVGFuc2FNZW51SFRNTCB8fCBzdGF0ZVRhbnNhTWVudUhUTUwgPT09IHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0YXRlLmxvYWRpbmdNZW51SFRNTCkgJiYgd2luZG93LnRhbnNhTWFpbikge1xuXHRcdFx0XHR2YXIgY2FsbEJhY2tGdW5jID0gZnVuY3Rpb24gY2FsbEJhY2tGdW5jKHRhbnNhTWVudUhUTUwpIHtcblx0XHRcdFx0XHRpZiAodGFuc2FFeHRlbnNpb25JbmZvLnNob3dGbG9hdGluZ1RhbnNhTWVudSkge1xuXG5cdFx0XHRcdFx0XHRpZiAod3BUYW5zYVNpZGViYXJDb21wb25lbnQubG9hZGluZ01lbnVMb2FkZWQpIHtcblx0XHRcdFx0XHRcdFx0d2luZG93LnRvZ2dsZVRhbnNhQ3VzdG9tTWVudSgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQubG9hZGluZ01lbnVMb2FkZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdHdpbmRvdy50YW5zYU1haW4uc2V0TWVudUNvbnRlbnRQb3NpdGlvbkFuZFN0eWxlKHRhbnNhTWVudUhUTUwsIHdpbmRvdy5nZXRUYW5zYU1lbnVCdXR0b25Qb3NpdGlvbigpKTtcblx0XHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnRvZ2dsZVRhbnNhRmxvYXRpbmdNZW51KHRydWUpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR3aW5kb3cuc2hvd1RhbnNhUGx1Z2luU2lkZWJhcigpO1xuXHRcdFx0XHRcdFx0dGFuc2FNZW51SFRNTCA9IHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0clJlcGxhY2VBbGwodGFuc2FNZW51SFRNTCwgJzxsaT4tPC9saT4nLCAnPGxpIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9saT4nKTtcblx0XHRcdFx0XHRcdHRhbnNhTWVudUhUTUwgPSB3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5hZGRUYW5zYUNzc0NsYXNzZXModGFuc2FNZW51SFRNTCk7XG5cdFx0XHRcdFx0XHR3cFRhbnNhU2lkZWJhckNvbXBvbmVudC5zZXRTdGF0ZSh7XG5cdFx0XHRcdFx0XHRcdHRhbnNhTWVudUhUTUw6IHRhbnNhTWVudUhUTUxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnRhbnNhQ3VzdG9tTWVudUxvYWRlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50Lm1lbnVMb2FkZWQgPSB0cnVlO1xuXHRcdFx0XHR9O1xuXHRcdFx0XHR3aW5kb3cudGFuc2FNYWluLmdldE1lbnVVSSh0cnVlLCBjYWxsQmFja0Z1bmMpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJzdHJSZXBsYWNlQWxsXCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHN0clJlcGxhY2VBbGwoc291cmNlLCBzZWFyY2gsIHJlcGxhY2VtZW50KSB7XG5cdFx0XHRyZXR1cm4gc291cmNlLnJlcGxhY2UobmV3IFJlZ0V4cChzZWFyY2gsICdnJyksIHJlcGxhY2VtZW50KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6IFwibG9hZEluaXRUYW5zYUxvYWRlclNjcmlwdFwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBsb2FkSW5pdFRhbnNhTG9hZGVyU2NyaXB0KCkge1xuXHRcdFx0dmFyIHRhbnNhTG9hZGVyU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0YW5zYUxvYWRlclNjcmlwdFwiKTtcblx0XHRcdGlmICghdGFuc2FMb2FkZXJTY3JpcHQpIHtcblx0XHRcdFx0dmFyIGluaXRUYW5zYUxvYWRlclNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXHRcdFx0XHRpbml0VGFuc2FMb2FkZXJTY3JpcHQuc3JjID0gd2luZG93LnRhbnNhLnNldHRpbmdzLmJhc2VVcmwgKyAnaW5pdFRhbnNhTG9hZGVyLmpzPycgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblx0XHRcdFx0aW5pdFRhbnNhTG9hZGVyU2NyaXB0LmFzeW5jID0gZmFsc2U7XG5cdFx0XHRcdGluaXRUYW5zYUxvYWRlclNjcmlwdC5vbmVycm9yID0gZnVuY3Rpb24gKGVycikge1xuXHRcdFx0XHRcdHdpbmRvdy50YW5zYUxvYWRlclNjcmlwdENhbGxCYWNrKCk7XG5cdFx0XHRcdH07XG5cdFx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKS5hcHBlbmRDaGlsZChpbml0VGFuc2FMb2FkZXJTY3JpcHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKHdpbmRvdy50YW5zYUxvYWRlclNjcmlwdENhbGxCYWNrKSB3aW5kb3cudGFuc2FMb2FkZXJTY3JpcHRDYWxsQmFjaygpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJzaG93VGFuc2FTZXR0aW5nc01lbnVcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gc2hvd1RhbnNhU2V0dGluZ3NNZW51KCkge1xuXHRcdFx0dmFyIHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50ID0gd2luZG93LndwVGFuc2FTaWRlYmFyQ29tcG9uZW50O1xuXHRcdFx0aWYgKHRhbnNhRXh0ZW5zaW9uSW5mby5zaG93RmxvYXRpbmdUYW5zYU1lbnUpIHtcblx0XHRcdFx0aWYgKCF3cFRhbnNhU2lkZWJhckNvbXBvbmVudC50YW5zYUN1c3RvbU1lbnVMb2FkZWQpIHtcblx0XHRcdFx0XHRpZiAod3BUYW5zYVNpZGViYXJDb21wb25lbnQubG9hZGluZ01lbnVMb2FkZWQpIHtcblx0XHRcdFx0XHRcdHdpbmRvdy50b2dnbGVUYW5zYUN1c3RvbU1lbnUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQubG9naW5NZW51TG9hZGVkID0gZmFsc2U7XG5cdFx0XHRcdFx0d3BUYW5zYVNpZGViYXJDb21wb25lbnQubWVudUxvYWRlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnRhbnNhQ3VzdG9tTWVudUxvYWRlZCA9IHRydWU7XG5cdFx0XHRcdFx0d2luZG93LnNldFRhbnNhTWVudUNvbnRlbnRQb3NpdGlvbkFuZFN0eWxlKHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0YXRlLnRhbnNhU2V0dGluZ3NQYWdlTWVudUhUTUwpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHdpbmRvdy50b2dnbGVUYW5zYUN1c3RvbU1lbnUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIHN0YXRlVGFuc2FNZW51SFRNTCA9IHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0YXRlLnRhbnNhTWVudUhUTUw7XG5cdFx0XHRcdGlmICghc3RhdGVUYW5zYU1lbnVIVE1MIHx8IHN0YXRlVGFuc2FNZW51SFRNTCAhPT0gd3BUYW5zYVNpZGViYXJDb21wb25lbnQuc3RhdGUudGFuc2FTZXR0aW5nc1BhZ2VNZW51SFRNTCkge1xuXHRcdFx0XHRcdHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnNldFN0YXRlKHtcblx0XHRcdFx0XHRcdHRhbnNhTWVudUhUTUw6IHdwVGFuc2FTaWRlYmFyQ29tcG9uZW50LnN0YXRlLnRhbnNhU2V0dGluZ3NQYWdlTWVudUhUTUxcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJzaG93VGFuc2FNZW51XCIsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHNob3dUYW5zYU1lbnUoKSB7XG5cdFx0XHRpZiAoIXdpbmRvdy50YW5zYUV4dGVuc2lvbkluZm8uaXNUYW5zYVNlcnZlclVSTFNldCkge1xuXHRcdFx0XHR0aGlzLnNob3dUYW5zYVNldHRpbmdzTWVudSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5jaGVja0FuZExvYWRNZW51RnJvbVNlcnZlcigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG5cdFx0XHR3aW5kb3cuc2hvd1RhbnNhUGx1Z2luU2lkZWJhcigpO1xuXHRcdFx0aWYgKHRhbnNhRXh0ZW5zaW9uSW5mby5zaG93RmxvYXRpbmdUYW5zYU1lbnUpIHtcblx0XHRcdFx0aWYgKHRoaXMuaXNUYW5zYVNpZGViYXJBY3RpdmUoKSkge1xuXHRcdFx0XHRcdHdpbmRvdy5oaWRlVGFuc2FQbHVnaW5TaWRlYmFyKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodGhpcy5tZW51TG9hZGVkIHx8IHRoaXMudGFuc2FDdXN0b21NZW51TG9hZGVkKSB7XG5cdFx0XHRcdFx0dGhpcy5zaG93VGFuc2FNZW51KCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2hvd1RhbnNhTWVudSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJpc1RhbnNhU2lkZWJhckFjdGl2ZVwiLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBpc1RhbnNhU2lkZWJhckFjdGl2ZSgpIHtcblx0XHRcdHZhciBhY3RpdmVHZW5lcmFsU2lkZWJhck5hbWUgPSB3cC5kYXRhLnNlbGVjdCgnY29yZS9lZGl0LXBvc3QnKS5nZXRBY3RpdmVHZW5lcmFsU2lkZWJhck5hbWUoKTtcblx0XHRcdHJldHVybiBhY3RpdmVHZW5lcmFsU2lkZWJhck5hbWUgPT0gJ3RhbnNhL3RhbnNhLXNpZGViYXInO1xuXHRcdH1cblx0fSwge1xuXHRcdGtleTogXCJyZW5kZXJcIixcblx0XHR2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuXHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0RnJhZ21lbnQsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRQbHVnaW5TaWRlYmFyTW9yZU1lbnVJdGVtLFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRhcmdldDogXCJ0YW5zYS1zaWRlYmFyXCJcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdF9fKCdUYW5zYScpXG5cdFx0XHRcdCksXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRQbHVnaW5TaWRlYmFyLFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG5hbWU6IFwidGFuc2Etc2lkZWJhclwiLFxuXHRcdFx0XHRcdFx0dGl0bGU6IF9fKCdUYW5zYScpXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0aGlzLnJlbmRlck1lbnUoKVxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdH1cblx0fV0pO1xuXG5cdHJldHVybiBUYW5zYV9TaWRlYmFyO1xufShDb21wb25lbnQpO1xuXG5yZWdpc3RlclBsdWdpbigndGFuc2EnLCB7XG5cdGljb246IHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUYW5zYUljb24sIG51bGwpLFxuXHRyZW5kZXI6IFRhbnNhX1NpZGViYXJcbn0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2d1dGVuYmVyZy9zaWRlYmFyLmpzXG4vLyBtb2R1bGUgaWQgPSA0M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///43\n");
    333333
    334334/***/ }),
  • tansa/trunk/dist/javascriptapp/init.js

    r2527878 r2588981  
    11window.tansa = {};
    22window.tansa.settings = {};
     3
     4String.prototype.replaceAll = function (target, replacement) {
     5    target = escapeRegExpPattern(target);
     6    var regExp = new RegExp(target, "ig");
     7    return this.replace(regExp, replacement);
     8};
     9
     10function escapeRegExpPattern(str) {
     11    return str.replace(/[-\/\\^$*+?.()|[\]{}!]/g, '\\$&');
     12};
    313
    414window.initTansaObject = function(){
     
    7686        left = tansaSubMenu.width() - 70;
    7787    }
    78     if(window.wpTansaSidebarComponent.tansaCustomMenuLoaded){
     88    if(window.wpTansaSidebarComponent.tansaCustomMenuLoaded || window.wpTansaSidebarComponent.loadingMenuLoaded){
    7989        left = 72;
    8090    }
     
    8797    window.jQuery('#' + window.tansaCustomSubMenuElementId).toggle();
    8898}
     99
     100function getUILanguageStringValue(uiLangaugeStringsObj){
     101    var attributes = uiLangaugeStringsObj['@attributes'];
     102    var langString = attributes.text ||attributes.tansa || ""
     103    return langString.replaceAll("%SHORTSYSTEMNAME%", tansaExtensionInfo.shortSystemName);
     104}
  • tansa/trunk/dist/tinymce/plugin.min.js

    r2527878 r2588981  
    77(function ($) {
    88    //var connectionMenuHTML = "<ul class='submenu' id='tansaSubMenu'><li><a class='thickbox' href='" + tansaExtensionInfo.pluginPath + "/javascriptapp/html/connection.html?TB_iframe=true&width=400px&height=500px' id='connectionMenu' >Connection</a></li></ul>";
    9     var loadingMenuTitle = 'Loading menu...';
     9    var loadingMenuTitle = window.getUILanguageStringValue(tansaExtensionInfo.uiLangaugeStrings.client.popupMenu.loadingMenu);
    1010    var loadingMenu = { text: loadingMenuTitle,  title: loadingMenuTitle };
    1111
  • tansa/trunk/readme.txt

    r2527878 r2588981  
    44Tested up to: 5.7
    55Requires PHP: 5.6.20
    6 Stable tag: 5.0.1.15
     6Stable tag: 5.0.1.16
    77License: GPLv2 or later
    88
     
    5353
    5454== Changelog ==
     55= 5.0.1.16 =
     56* Bug fixes and improvements.
     57* Added support for Localization.
     58
    5559= 5.0.1.15 =
    5660* Bug fixes and improvements.
     
    108112
    109113== Upgrade Notice ==
     114= 5.0.1.16 =
     115* Bug fixes and improvements.
     116* Added support for Localization.
     117
    110118= 5.0.1.15 =
    111119* Bug fixes and improvements.
  • tansa/trunk/settings.php

    r2235723 r2588981  
    11<div class="wrap">
    2 <h1>Configure Tansa Settings</h1>
     2<h1><?php _e(getUILanguageStringValue('connectionDialog.configureSettings')); ?></h1>
    33<?php settings_errors();?>
    44<form id="tansaSettingsForm" method="post" action="options.php">
  • tansa/trunk/tansa.php

    r2527878 r2588981  
    33 * Plugin Name: Tansa
    44 * Plugin URI: "https://wordpress.org/plugins/tansa/"
    5  * Version: 5.0.1.15
     5 * Version: 5.0.1.16
    66 * Author: Tansa Systems AS
    77 * Author URI: https://www.tansa.com
     
    1818$userNameOptionValue = 'username'; // user_login
    1919$showFloatingMenuSettingsFieldId = 'tansa_show_floating_menu';
    20 $tansaPluginVersion = '5.0.1.15';
     20$tansaPluginVersion = '5.0.1.16';
     21$shortSystemName = '';
     22$$uiLangaugeStringXML = array();
    2123
    2224/*
     
    2426*/
    2527function register_tansa_extension_info() {
    26     global $tansaPluginVersion, $serverUrlSettingsFieldId, $licenseKeySettingsFieldId, $readUserNameOptionSettingsFieldId, $tansaDevServerURL, $userNameOptionValue, $showFloatingMenuSettingsFieldId;
     28    global $tansaPluginVersion, $serverUrlSettingsFieldId, $licenseKeySettingsFieldId, $readUserNameOptionSettingsFieldId, $tansaDevServerURL, $userNameOptionValue, $showFloatingMenuSettingsFieldId, $uiLangaugeStringXML, $shortSystemName;
    2729
    2830    $tansaFolderName = 'Tansa';
     
    6062        'tansaServerURL' => $tansaServerURL,
    6163        'showFloatingTansaMenu' => $showFloatingTansaMenu,
     64        'uiLangaugeStrings' => $uiLangaugeStringXML,
     65        'shortSystemName' => "".$shortSystemName,
    6266        'pluginPath' => plugins_url('dist', __FILE__));
    6367    wp_localize_script('register_tansa_extension_info', 'tansaExtensionInfo', $variables);
     
    8993 */
    9094function load_tansa_gutenberg() {
    91 
    9295    if(check_user_access()){
    9396        $blockPath = '/dist/gutenberg/sidebar.js';
     
    115118*/
    116119function load_tansa_tinymce() {
    117 
    118120    if(check_user_access()){
    119121        register_tansa_extension_info();
     
    145147function tansa_plugin_create_menu() {
    146148    //create new top-level menu
    147     add_menu_page('Tansa Plugin Settings', 'Tansa Settings', 'manage_options', 'tansaSettingsPage', 'tansa_plugin_settings_page', plugins_url('dist/img/TS.png', __FILE__) );
     149    add_menu_page(getUILanguageStringValue('connectionDialog.pluginSetting'), getUILanguageStringValue('connectionDialog.settingMenu'), 'manage_options', 'tansaSettingsPage', 'tansa_plugin_settings_page', plugins_url('dist/img/TS.png', __FILE__) );
    148150    //call register settings function
    149151    add_action( 'admin_init', 'register_tansa_plugin_settings' );
    150152}
    151153
    152 if ( is_admin() ) {
     154function getLangCode($langCode){
     155
     156    $supportedLangCodes = array("en-US", "en-GB", "en-CA", "en-AU", "fr-FR", "fr-CA", "es-ES", "de-DE", "pt-BR", "sv-SE", "da-DK", "nn-NO", "nb-NO", "nl-NL", "nl-BE");
     157    $langCode = str_replace("_", "-", $langCode);
     158
     159    if(strlen($langCode) == 2){ // for backward compatibility of Tansa Client.
     160
     161        switch(strtoupper($langCode)){
     162
     163            case "EN" :
     164                $langCode = "en-US";
     165                break;
     166               
     167            case "FR" :
     168                $langCode = "fr-FR";
     169                break;
     170               
     171            case "ES" :
     172                $langCode = "es-ES";
     173                break;
     174               
     175            case "DE" :
     176                $langCode = "de-DE";
     177                break;
     178               
     179            case "SV" :
     180            case "SE" :
     181                $langCode = "sv-SE";
     182                break;
     183               
     184            case "NN" :
     185                $langCode = "nn-NO";
     186                break;
     187           
     188            // CLOUD-3086 : Tansa Web Admin - Bokmål is selected as the customer's GUI language, but Nynorsk is displayed when you run Tansa
     189            case "NO" :
     190            case "NB" :
     191                $langCode = "nb-NO";
     192                break;
     193               
     194            case "DK" :
     195                $langCode = "da-DK";
     196                break;
     197               
     198            case "PO" :
     199            case "PT" :
     200                $langCode = "pt-BR";
     201                break;
     202               
     203            case "NL" :
     204                $langCode = "nl-NL";
     205                break;
     206        }
     207    }
     208
     209    if(!in_array($langCode, $supportedLangCodes)){
     210        if(strlen($langCode) > 2)
     211            $langCode = getLangCode(substr($langCode, 0, 2));
     212        else
     213            $langCode = "en-US";
     214    }
     215    return $langCode;
     216}
     217
     218function getUILanguageStringsXML($langCode){
     219    global $shortSystemName;
     220   
     221    $langCode = getLangCode($langCode);
     222    $clientTextXmlData = simplexml_load_file(dirname( __FILE__ ) . "/ClientTexts.xml");
     223    $shortSystemName = $clientTextXmlData->general->shortSystemName['tansa'];
     224    $langaugeStringXML = ($clientTextXmlData->xpath("language[@code='$langCode']"))[0];
     225    return $langaugeStringXML;
     226}
     227
     228function isNullOrEmptyString($str){
     229    return (!isset($str) || trim($str) === '');
     230}
     231
     232function getUILanguageStringValue($key){
     233    global $uiLangaugeStringXML, $shortSystemName;
     234
     235    $key = "client/".str_replace(".", "/", $key); // replace . with / for xpath
     236    $node = ($uiLangaugeStringXML->xpath("".$key))[0];
     237    $text = $node['text'];
     238    if(isNullOrEmptyString($text)){
     239        $text = $node['tansa'];
     240    }
     241
     242    return str_replace("%SHORTSYSTEMNAME%", $shortSystemName, $text);
     243}
     244
     245if (is_admin()) {
     246    global $uiLangaugeStringXML;
     247    $wpLangCode = get_locale(); // WordPress locale.
     248    $uiLangaugeStringXML = getUILanguageStringsXML($wpLangCode);
     249
    153250    add_action('admin_menu', 'tansa_plugin_create_menu');
    154251    // Hook scripts function into block editor hook
     
    166263        array(
    167264            'uid' => $GLOBALS['serverUrlSettingsFieldId'],
    168             'label' => 'Server URL (required)',
     265            'label' => getUILanguageStringValue('connectionDialog.serverUrl'),
    169266            'section' => $settingsSectionId,
    170267            'type' => 'text',
    171268            'options' => false,
    172             'placeholder' => 'Tansa Server URL',
     269            'placeholder' => getUILanguageStringValue('connectionDialog.serverPlaceholderText'),
    173270            'helper' => '',
    174             'supplemental' => 'Please set the correct URL. This value is unique to each deployment environment.',
     271            'supplemental' => getUILanguageStringValue('connectionDialog.serverURLCommentText'),
    175272            // 'default' => $tansaDevServerURL
    176273            'default' => ''
     
    178275        array(
    179276            'uid' => $GLOBALS['readUserNameOptionSettingsFieldId'],
    180             'label' => 'Username',
     277            'label' => getUILanguageStringValue('connectionDialog.username'),
    181278            'section' => $settingsSectionId,
    182279            'type' => 'radio',
    183280            'options' => array(
    184                 'Email Address' => $emailOptionValue,
    185                 'Username' => $userNameOptionValue,
     281                getUILanguageStringValue('connectionDialog.emailAdd') => $emailOptionValue,
     282                getUILanguageStringValue('connectionDialog.username') => $userNameOptionValue,
    186283            ),
    187             'placeholder' => 'Select Email address or username',
    188284            'helper' => '',
    189             'supplemental' => 'Use logged in user email address or username.',
     285            'supplemental' => getUILanguageStringValue('connectionDialog.usernameCommentText'),
    190286            'default' => $emailOptionValue
    191287        ),
    192288        array(
    193289            'uid' => $GLOBALS['licenseKeySettingsFieldId'],
    194             'label' => 'License Key',
     290            'label' => getUILanguageStringValue('connectionDialog.licenseKey'),
    195291            'section' => $settingsSectionId,
    196292            'type' => 'text',
    197293            'options' => false,
    198             'placeholder' => 'License key provided by Tansa.',
     294            'placeholder' => getUILanguageStringValue('connectionDialog.licenseKeyPlaceholderText'),
    199295            'helper' => '',
    200             'supplemental' => 'Please set the correct licenseKey. This value is unique to each deployment environment.',
     296            'supplemental' => getUILanguageStringValue('connectionDialog.licenseKeyCommentText'),
    201297            'default' => ''
    202298        ),
    203299        array(
    204300            'uid' => $GLOBALS['showFloatingMenuSettingsFieldId'],
    205             'label' => 'Enable Drop-Down Menu',
     301            'label' => getUILanguageStringValue('connectionDialog.showFloatingMenu'),
    206302            'section' => $settingsSectionId,
    207303            'type' => 'checkbox',
     
    209305                '' => true,
    210306            ),
     307            'placeholder' => '',
    211308            'helper' => '',
    212             'supplemental' => 'This will replace the Tansa sidebar menu with a more traditional drop-down menu.',
     309            'supplemental' => getUILanguageStringValue('connectionDialog.showFloatingMenuCommentText'),
    213310            'default' => false
    214311        )
    215312    );
    216313
    217     foreach( $fields as $field ){
    218         global $settingsMenuSlugId;
    219         add_settings_field( $field['uid'], $field['label'], 'field_callback', $settingsMenuSlugId, $field['section'], $field );
    220         register_setting( $settingsMenuSlugId, 'tansa_server_url', 'validation_callback');
    221         register_setting( $settingsMenuSlugId, $field['uid'] );
    222     }
     314    foreach( $fields as $field ) {
     315        global $settingsMenuSlugId;
     316        add_settings_field( $field['uid'], $field['label'], 'field_callback', $settingsMenuSlugId, $field['section'], $field );
     317   
     318        if($_POST['tansa_server_url'] == '' || $_POST['tansa_server_url'] == NULL)
     319        {   
     320            register_setting( $settingsMenuSlugId, 'tansa_server_url', 'validation_callback');
     321        }
     322        else
     323        {
     324            register_setting( $settingsMenuSlugId, $field['uid']);
     325        }
     326    }
    223327}
    224328
    225329function validation_callback($input){
    226330    if ( empty( $input ) ) {
    227         add_settings_error( 'tansa_server_url', 'invalid_field_1', 'Server URL is required.' );
     331        add_settings_error( 'tansa_server_url', 'invalid_field_1', getUILanguageStringValue('connectionDialog.serverUrlValidation') );
    228332    }
    229333    return $input;
Note: See TracChangeset for help on using the changeset viewer.