UNPKG

surveyjs-widgets

Version:

Custom widgets for the SurveyJS library

182 lines (171 loc) 15.2 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define("widgets/easy-autocomplete", [], factory); else if(typeof exports === 'object') exports["widgets/easy-autocomplete"] = factory(); else root["widgets/easy-autocomplete"] = factory(); })(self, () => { return /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; /*!**********************************!*\ !*** ./src/easy-autocomplete.js ***! \**********************************/ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); function init(Survey, $) { $ = $ || window.$; var widget = { name: "autocomplete", widgetIsLoaded: function () { return typeof $ == "function" && !!$.fn.easyAutocomplete; }, isFit: function (question) { return question.getType() === "text"; }, isDefaultRender: true, activatedByChanged: function (activatedBy) { if (!!Survey.Serializer.findProperty("text", "choices") || !!Survey.Serializer.findProperty("text", "choicesByUrl")) return; Survey.Serializer.addProperty("text", { name: "choices:itemvalues", category: "choices", categoryIndex: 1, }); Survey.Serializer.addProperty("text", { name: "choicesByUrl:restfull", className: "ChoicesRestfull", category: "choicesByUrl", visible: false, categoryIndex: 2, }); Survey.Serializer.addProperty("text", { name: "config", category: "general", visible: false, }); }, afterRender: function (question, el) { var $el = $(el).is("input") ? $(el) : $(el).find("input"); var getCssSelectorFromClassesString = function (classesString) { if (!classesString) return ""; var cssSelector = classesString.replace(/(^\s*)|(\s+)/g, "."); // replace whitespaces with '.' return cssSelector; }; var questionRootClasses = getCssSelectorFromClassesString( question.cssRoot ); var questionRoot = $el.parents(questionRootClasses)[0]; if (!!questionRootClasses && !!questionRoot) { questionRoot.style.overflow = "visible"; } var config = question.config; var options = config && typeof config == "string" ? JSON.parse(config) : config; if (!options) options = {}; options.data = (question.choices || []).map(function (item) { return item.text; }); if (options.adjustWidth === undefined) { options.adjustWidth = false; } if (!options.list) { options.list = { sort: { enabled: true, method: (aStr, bStr) => { const inputStr = $el.val().toLowerCase(); const aIndex = aStr.toLowerCase().indexOf(inputStr); const bIndex = bStr.toLowerCase().indexOf(inputStr); return aIndex - bIndex; } }, match: { enabled: true, }, onChooseEvent: function () { var selectedData = $el.getSelectedItemData(); if(!!selectedData && typeof selectedData === "object" && !!question.choicesByUrl && !!question.choicesByUrl.valueName) { selectedData = selectedData[question.choicesByUrl.valueName]; } question.value = selectedData; }, }; } if (!options.placeholder) { options.placeholder = question.placeholder; } if (!!question.choicesByUrl) { options.url = function (phrase) { return question.choicesByUrl.url; }; options.getValue = question.choicesByUrl.valueName; // options.ajaxSettings = { // dataType: "jsonp" // }; } $el.easyAutocomplete(options); $el[0].oninput = function () { question.customWidgetData.isNeedRender = true; }; var updateHandler = function () { $el[0].value = typeof question.value === "undefined" ? "" : question.value; }; question.valueChangedCallback = updateHandler; updateHandler(); }, willUnmount: function (question, el) { // var $el = $(el).find("input"); // $el.autocomplete("destroy"); }, }; Survey.CustomWidgetCollection.Instance.addCustomWidget(widget); } if (typeof Survey !== "undefined") { init(Survey, window.jQuery); } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (init); /******/ return __webpack_exports__; /******/ })() ; }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy9lYXN5LWF1dG9jb21wbGV0ZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsTzs7VUNWQTtVQUNBOzs7OztXQ0RBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVFQUF1RTtBQUN2RTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGlFQUFlLElBQUksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL3N1cnZleWpzLXdpZGdldHMvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL3N1cnZleWpzLXdpZGdldHMvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc3VydmV5anMtd2lkZ2V0cy93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc3VydmV5anMtd2lkZ2V0cy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3N1cnZleWpzLXdpZGdldHMvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9zdXJ2ZXlqcy13aWRnZXRzLy4vc3JjL2Vhc3ktYXV0b2NvbXBsZXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwid2lkZ2V0cy9lYXN5LWF1dG9jb21wbGV0ZVwiLCBbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJ3aWRnZXRzL2Vhc3ktYXV0b2NvbXBsZXRlXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIndpZGdldHMvZWFzeS1hdXRvY29tcGxldGVcIl0gPSBmYWN0b3J5KCk7XG59KShzZWxmLCAoKSA9PiB7XG5yZXR1cm4gIiwiLy8gVGhlIHJlcXVpcmUgc2NvcGVcbnZhciBfX3dlYnBhY2tfcmVxdWlyZV9fID0ge307XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJmdW5jdGlvbiBpbml0KFN1cnZleSwgJCkge1xuICAkID0gJCB8fCB3aW5kb3cuJDtcbiAgdmFyIHdpZGdldCA9IHtcbiAgICBuYW1lOiBcImF1dG9jb21wbGV0ZVwiLFxuICAgIHdpZGdldElzTG9hZGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdHlwZW9mICQgPT0gXCJmdW5jdGlvblwiICYmICEhJC5mbi5lYXN5QXV0b2NvbXBsZXRlO1xuICAgIH0sXG4gICAgaXNGaXQ6IGZ1bmN0aW9uIChxdWVzdGlvbikge1xuICAgICAgcmV0dXJuIHF1ZXN0aW9uLmdldFR5cGUoKSA9PT0gXCJ0ZXh0XCI7XG4gICAgfSxcbiAgICBpc0RlZmF1bHRSZW5kZXI6IHRydWUsXG4gICAgYWN0aXZhdGVkQnlDaGFuZ2VkOiBmdW5jdGlvbiAoYWN0aXZhdGVkQnkpIHtcbiAgICAgIGlmICghIVN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcInRleHRcIiwgXCJjaG9pY2VzXCIpIHx8ICEhU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFwidGV4dFwiLCBcImNob2ljZXNCeVVybFwiKSkgcmV0dXJuO1xuICAgICAgU3VydmV5LlNlcmlhbGl6ZXIuYWRkUHJvcGVydHkoXCJ0ZXh0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjaG9pY2VzOml0ZW12YWx1ZXNcIixcbiAgICAgICAgY2F0ZWdvcnk6IFwiY2hvaWNlc1wiLFxuICAgICAgICBjYXRlZ29yeUluZGV4OiAxLFxuICAgICAgfSk7XG4gICAgICBTdXJ2ZXkuU2VyaWFsaXplci5hZGRQcm9wZXJ0eShcInRleHRcIiwge1xuICAgICAgICBuYW1lOiBcImNob2ljZXNCeVVybDpyZXN0ZnVsbFwiLFxuICAgICAgICBjbGFzc05hbWU6IFwiQ2hvaWNlc1Jlc3RmdWxsXCIsXG4gICAgICAgIGNhdGVnb3J5OiBcImNob2ljZXNCeVVybFwiLFxuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgY2F0ZWdvcnlJbmRleDogMixcbiAgICAgIH0pO1xuICAgICAgU3VydmV5LlNlcmlhbGl6ZXIuYWRkUHJvcGVydHkoXCJ0ZXh0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb25maWdcIixcbiAgICAgICAgY2F0ZWdvcnk6IFwiZ2VuZXJhbFwiLFxuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgYWZ0ZXJSZW5kZXI6IGZ1bmN0aW9uIChxdWVzdGlvbiwgZWwpIHtcbiAgICAgIHZhciAkZWwgPSAkKGVsKS5pcyhcImlucHV0XCIpID8gJChlbCkgOiAkKGVsKS5maW5kKFwiaW5wdXRcIik7XG5cbiAgICAgIHZhciBnZXRDc3NTZWxlY3RvckZyb21DbGFzc2VzU3RyaW5nID0gZnVuY3Rpb24gKGNsYXNzZXNTdHJpbmcpIHtcbiAgICAgICAgaWYgKCFjbGFzc2VzU3RyaW5nKSByZXR1cm4gXCJcIjtcbiAgICAgICAgdmFyIGNzc1NlbGVjdG9yID0gY2xhc3Nlc1N0cmluZy5yZXBsYWNlKC8oXlxccyopfChcXHMrKS9nLCBcIi5cIik7IC8vIHJlcGxhY2Ugd2hpdGVzcGFjZXMgd2l0aCAnLidcbiAgICAgICAgcmV0dXJuIGNzc1NlbGVjdG9yO1xuICAgICAgfTtcblxuICAgICAgdmFyIHF1ZXN0aW9uUm9vdENsYXNzZXMgPSBnZXRDc3NTZWxlY3RvckZyb21DbGFzc2VzU3RyaW5nKFxuICAgICAgICBxdWVzdGlvbi5jc3NSb290XG4gICAgICApO1xuXG4gICAgICB2YXIgcXVlc3Rpb25Sb290ID0gJGVsLnBhcmVudHMocXVlc3Rpb25Sb290Q2xhc3NlcylbMF07XG4gICAgICBpZiAoISFxdWVzdGlvblJvb3RDbGFzc2VzICYmICEhcXVlc3Rpb25Sb290KSB7XG4gICAgICAgIHF1ZXN0aW9uUm9vdC5zdHlsZS5vdmVyZmxvdyA9IFwidmlzaWJsZVwiO1xuICAgICAgfVxuXG4gICAgICB2YXIgY29uZmlnID0gcXVlc3Rpb24uY29uZmlnO1xuICAgICAgdmFyIG9wdGlvbnMgPVxuICAgICAgICBjb25maWcgJiYgdHlwZW9mIGNvbmZpZyA9PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShjb25maWcpIDogY29uZmlnO1xuICAgICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IChxdWVzdGlvbi5jaG9pY2VzIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGV4dDtcbiAgICAgIH0pO1xuICAgICAgaWYgKG9wdGlvbnMuYWRqdXN0V2lkdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBvcHRpb25zLmFkanVzdFdpZHRoID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoIW9wdGlvbnMubGlzdCkge1xuICAgICAgICBvcHRpb25zLmxpc3QgPSB7XG4gICAgICAgICAgc29ydDoge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1ldGhvZDogKGFTdHIsIGJTdHIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaW5wdXRTdHIgPSAkZWwudmFsKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgY29uc3QgYUluZGV4ID0gYVN0ci50b0xvd2VyQ2FzZSgpLmluZGV4T2YoaW5wdXRTdHIpO1xuICAgICAgICAgICAgICBjb25zdCBiSW5kZXggPSBiU3RyLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpbnB1dFN0cik7XG4gICAgICAgICAgICAgIHJldHVybiBhSW5kZXggLSBiSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtYXRjaDoge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uQ2hvb3NlRXZlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBzZWxlY3RlZERhdGEgPSAkZWwuZ2V0U2VsZWN0ZWRJdGVtRGF0YSgpO1xuICAgICAgICAgICAgaWYoISFzZWxlY3RlZERhdGEgJiYgdHlwZW9mIHNlbGVjdGVkRGF0YSA9PT0gXCJvYmplY3RcIiBcbiAgICAgICAgICAgICAgJiYgISFxdWVzdGlvbi5jaG9pY2VzQnlVcmwgJiYgISFxdWVzdGlvbi5jaG9pY2VzQnlVcmwudmFsdWVOYW1lKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkRGF0YSA9IHNlbGVjdGVkRGF0YVtxdWVzdGlvbi5jaG9pY2VzQnlVcmwudmFsdWVOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHF1ZXN0aW9uLnZhbHVlID0gc2VsZWN0ZWREYXRhO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoIW9wdGlvbnMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgb3B0aW9ucy5wbGFjZWhvbGRlciA9IHF1ZXN0aW9uLnBsYWNlaG9sZGVyO1xuICAgICAgfVxuXG4gICAgICBpZiAoISFxdWVzdGlvbi5jaG9pY2VzQnlVcmwpIHtcbiAgICAgICAgb3B0aW9ucy51cmwgPSBmdW5jdGlvbiAocGhyYXNlKSB7XG4gICAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLmNob2ljZXNCeVVybC51cmw7XG4gICAgICAgIH07XG4gICAgICAgIG9wdGlvbnMuZ2V0VmFsdWUgPSBxdWVzdGlvbi5jaG9pY2VzQnlVcmwudmFsdWVOYW1lO1xuICAgICAgICAvLyBvcHRpb25zLmFqYXhTZXR0aW5ncyA9IHtcbiAgICAgICAgLy8gICBkYXRhVHlwZTogXCJqc29ucFwiXG4gICAgICAgIC8vIH07XG4gICAgICB9XG4gICAgICAkZWwuZWFzeUF1dG9jb21wbGV0ZShvcHRpb25zKTtcblxuICAgICAgJGVsWzBdLm9uaW5wdXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHF1ZXN0aW9uLmN1c3RvbVdpZGdldERhdGEuaXNOZWVkUmVuZGVyID0gdHJ1ZTtcbiAgICAgIH07XG4gICAgICB2YXIgdXBkYXRlSGFuZGxlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJGVsWzBdLnZhbHVlID1cbiAgICAgICAgICB0eXBlb2YgcXVlc3Rpb24udmFsdWUgPT09IFwidW5kZWZpbmVkXCIgPyBcIlwiIDogcXVlc3Rpb24udmFsdWU7XG4gICAgICB9O1xuICAgICAgcXVlc3Rpb24udmFsdWVDaGFuZ2VkQ2FsbGJhY2sgPSB1cGRhdGVIYW5kbGVyO1xuICAgICAgdXBkYXRlSGFuZGxlcigpO1xuICAgIH0sXG4gICAgd2lsbFVubW91bnQ6IGZ1bmN0aW9uIChxdWVzdGlvbiwgZWwpIHtcbiAgICAgIC8vIHZhciAkZWwgPSAkKGVsKS5maW5kKFwiaW5wdXRcIik7XG4gICAgICAvLyAkZWwuYXV0b2NvbXBsZXRlKFwiZGVzdHJveVwiKTtcbiAgICB9LFxuICB9O1xuXG4gIFN1cnZleS5DdXN0b21XaWRnZXRDb2xsZWN0aW9uLkluc3RhbmNlLmFkZEN1c3RvbVdpZGdldCh3aWRnZXQpO1xufVxuXG5pZiAodHlwZW9mIFN1cnZleSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICBpbml0KFN1cnZleSwgd2luZG93LmpRdWVyeSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGluaXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=