Changeset 2588981
- Timestamp:
- 08/26/2021 06:04:34 AM (4 years ago)
- Location:
- tansa/trunk
- Files:
-
- 1 added
- 6 edited
-
ClientTexts.xml (added)
-
dist/gutenberg/sidebar.js (modified) (1 diff)
-
dist/javascriptapp/init.js (modified) (3 diffs)
-
dist/tinymce/plugin.min.js (modified) (1 diff)
-
readme.txt (modified) (3 diffs)
-
settings.php (modified) (1 diff)
-
tansa.php (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tansa/trunk/dist/gutenberg/sidebar.js
r2527878 r2588981 330 330 331 331 "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");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.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"); 333 333 334 334 /***/ }), -
tansa/trunk/dist/javascriptapp/init.js
r2527878 r2588981 1 1 window.tansa = {}; 2 2 window.tansa.settings = {}; 3 4 String.prototype.replaceAll = function (target, replacement) { 5 target = escapeRegExpPattern(target); 6 var regExp = new RegExp(target, "ig"); 7 return this.replace(regExp, replacement); 8 }; 9 10 function escapeRegExpPattern(str) { 11 return str.replace(/[-\/\\^$*+?.()|[\]{}!]/g, '\\$&'); 12 }; 3 13 4 14 window.initTansaObject = function(){ … … 76 86 left = tansaSubMenu.width() - 70; 77 87 } 78 if(window.wpTansaSidebarComponent.tansaCustomMenuLoaded ){88 if(window.wpTansaSidebarComponent.tansaCustomMenuLoaded || window.wpTansaSidebarComponent.loadingMenuLoaded){ 79 89 left = 72; 80 90 } … … 87 97 window.jQuery('#' + window.tansaCustomSubMenuElementId).toggle(); 88 98 } 99 100 function 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 7 7 (function ($) { 8 8 //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); 10 10 var loadingMenu = { text: loadingMenuTitle, title: loadingMenuTitle }; 11 11 -
tansa/trunk/readme.txt
r2527878 r2588981 4 4 Tested up to: 5.7 5 5 Requires PHP: 5.6.20 6 Stable tag: 5.0.1.1 56 Stable tag: 5.0.1.16 7 7 License: GPLv2 or later 8 8 … … 53 53 54 54 == Changelog == 55 = 5.0.1.16 = 56 * Bug fixes and improvements. 57 * Added support for Localization. 58 55 59 = 5.0.1.15 = 56 60 * Bug fixes and improvements. … … 108 112 109 113 == Upgrade Notice == 114 = 5.0.1.16 = 115 * Bug fixes and improvements. 116 * Added support for Localization. 117 110 118 = 5.0.1.15 = 111 119 * Bug fixes and improvements. -
tansa/trunk/settings.php
r2235723 r2588981 1 1 <div class="wrap"> 2 <h1> Configure Tansa Settings</h1>2 <h1><?php _e(getUILanguageStringValue('connectionDialog.configureSettings')); ?></h1> 3 3 <?php settings_errors();?> 4 4 <form id="tansaSettingsForm" method="post" action="options.php"> -
tansa/trunk/tansa.php
r2527878 r2588981 3 3 * Plugin Name: Tansa 4 4 * Plugin URI: "https://wordpress.org/plugins/tansa/" 5 * Version: 5.0.1.1 55 * Version: 5.0.1.16 6 6 * Author: Tansa Systems AS 7 7 * Author URI: https://www.tansa.com … … 18 18 $userNameOptionValue = 'username'; // user_login 19 19 $showFloatingMenuSettingsFieldId = 'tansa_show_floating_menu'; 20 $tansaPluginVersion = '5.0.1.15'; 20 $tansaPluginVersion = '5.0.1.16'; 21 $shortSystemName = ''; 22 $$uiLangaugeStringXML = array(); 21 23 22 24 /* … … 24 26 */ 25 27 function register_tansa_extension_info() { 26 global $tansaPluginVersion, $serverUrlSettingsFieldId, $licenseKeySettingsFieldId, $readUserNameOptionSettingsFieldId, $tansaDevServerURL, $userNameOptionValue, $showFloatingMenuSettingsFieldId ;28 global $tansaPluginVersion, $serverUrlSettingsFieldId, $licenseKeySettingsFieldId, $readUserNameOptionSettingsFieldId, $tansaDevServerURL, $userNameOptionValue, $showFloatingMenuSettingsFieldId, $uiLangaugeStringXML, $shortSystemName; 27 29 28 30 $tansaFolderName = 'Tansa'; … … 60 62 'tansaServerURL' => $tansaServerURL, 61 63 'showFloatingTansaMenu' => $showFloatingTansaMenu, 64 'uiLangaugeStrings' => $uiLangaugeStringXML, 65 'shortSystemName' => "".$shortSystemName, 62 66 'pluginPath' => plugins_url('dist', __FILE__)); 63 67 wp_localize_script('register_tansa_extension_info', 'tansaExtensionInfo', $variables); … … 89 93 */ 90 94 function load_tansa_gutenberg() { 91 92 95 if(check_user_access()){ 93 96 $blockPath = '/dist/gutenberg/sidebar.js'; … … 115 118 */ 116 119 function load_tansa_tinymce() { 117 118 120 if(check_user_access()){ 119 121 register_tansa_extension_info(); … … 145 147 function tansa_plugin_create_menu() { 146 148 //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__) ); 148 150 //call register settings function 149 151 add_action( 'admin_init', 'register_tansa_plugin_settings' ); 150 152 } 151 153 152 if ( is_admin() ) { 154 function 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 218 function 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 228 function isNullOrEmptyString($str){ 229 return (!isset($str) || trim($str) === ''); 230 } 231 232 function 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 245 if (is_admin()) { 246 global $uiLangaugeStringXML; 247 $wpLangCode = get_locale(); // WordPress locale. 248 $uiLangaugeStringXML = getUILanguageStringsXML($wpLangCode); 249 153 250 add_action('admin_menu', 'tansa_plugin_create_menu'); 154 251 // Hook scripts function into block editor hook … … 166 263 array( 167 264 'uid' => $GLOBALS['serverUrlSettingsFieldId'], 168 'label' => 'Server URL (required)',265 'label' => getUILanguageStringValue('connectionDialog.serverUrl'), 169 266 'section' => $settingsSectionId, 170 267 'type' => 'text', 171 268 'options' => false, 172 'placeholder' => 'Tansa Server URL',269 'placeholder' => getUILanguageStringValue('connectionDialog.serverPlaceholderText'), 173 270 'helper' => '', 174 'supplemental' => 'Please set the correct URL. This value is unique to each deployment environment.',271 'supplemental' => getUILanguageStringValue('connectionDialog.serverURLCommentText'), 175 272 // 'default' => $tansaDevServerURL 176 273 'default' => '' … … 178 275 array( 179 276 'uid' => $GLOBALS['readUserNameOptionSettingsFieldId'], 180 'label' => 'Username',277 'label' => getUILanguageStringValue('connectionDialog.username'), 181 278 'section' => $settingsSectionId, 182 279 'type' => 'radio', 183 280 'options' => array( 184 'Email Address'=> $emailOptionValue,185 'Username'=> $userNameOptionValue,281 getUILanguageStringValue('connectionDialog.emailAdd') => $emailOptionValue, 282 getUILanguageStringValue('connectionDialog.username') => $userNameOptionValue, 186 283 ), 187 'placeholder' => 'Select Email address or username',188 284 'helper' => '', 189 'supplemental' => 'Use logged in user email address or username.',285 'supplemental' => getUILanguageStringValue('connectionDialog.usernameCommentText'), 190 286 'default' => $emailOptionValue 191 287 ), 192 288 array( 193 289 'uid' => $GLOBALS['licenseKeySettingsFieldId'], 194 'label' => 'License Key',290 'label' => getUILanguageStringValue('connectionDialog.licenseKey'), 195 291 'section' => $settingsSectionId, 196 292 'type' => 'text', 197 293 'options' => false, 198 'placeholder' => 'License key provided by Tansa.',294 'placeholder' => getUILanguageStringValue('connectionDialog.licenseKeyPlaceholderText'), 199 295 'helper' => '', 200 'supplemental' => 'Please set the correct licenseKey. This value is unique to each deployment environment.',296 'supplemental' => getUILanguageStringValue('connectionDialog.licenseKeyCommentText'), 201 297 'default' => '' 202 298 ), 203 299 array( 204 300 'uid' => $GLOBALS['showFloatingMenuSettingsFieldId'], 205 'label' => 'Enable Drop-Down Menu',301 'label' => getUILanguageStringValue('connectionDialog.showFloatingMenu'), 206 302 'section' => $settingsSectionId, 207 303 'type' => 'checkbox', … … 209 305 '' => true, 210 306 ), 307 'placeholder' => '', 211 308 'helper' => '', 212 'supplemental' => 'This will replace the Tansa sidebar menu with a more traditional drop-down menu.',309 'supplemental' => getUILanguageStringValue('connectionDialog.showFloatingMenuCommentText'), 213 310 'default' => false 214 311 ) 215 312 ); 216 313 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 } 223 327 } 224 328 225 329 function validation_callback($input){ 226 330 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') ); 228 332 } 229 333 return $input;
Note: See TracChangeset
for help on using the changeset viewer.