{"version":3,"sources":["webpack:///auth.min.js","webpack:///external \"jQuery\"","webpack:///./core/widgets/notifier.js","webpack:///./core/utils/logger.js","webpack:///external \"ko\"","webpack:///./core/utils/url.js","webpack:///./core/utils/lang.js","webpack:///./core/utils/globals.js","webpack:///external \"_\"","webpack:///./core/utils/location.js","webpack:///./core/utils/utils.js","webpack:///./core/widgets/popup.js","webpack:///./core/utils/var.js","webpack:///./core/widgets/dialog.js","webpack:///./core/widgets/loading.js","webpack:///external \"toastr\"","webpack:///../../node_modules/smart-plurals/dist/Smart.Plurals.node/Smart.Plurals.node-all.js","webpack:///./modules/auth/signup/templates/popup-bad-email.html","webpack:///../../node_modules/jquery-mask-plugin/dist/jquery.mask.js","webpack:///./modules/auth/signup/index.js"],"names":["zde","webpackJsonpzde_modules__name_","0iPh","module","exports","jQuery","18","__webpack_require__","2uje","__webpack_exports__","_classCallCheck","instance","Constructor","TypeError","d","Notifier","__WEBPACK_IMPORTED_MODULE_0_lib_toastr__","__WEBPACK_IMPORTED_MODULE_0_lib_toastr___default","n","__WEBPACK_IMPORTED_MODULE_1__utils_utils__","__WEBPACK_IMPORTED_MODULE_2__utils_var__","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","t","window","top","toastr","a","this","value","message","undefined","title","options","timeOut","error","jqXHR","textStatus","errorThrown","info","success","warning","5wqq","newLogger","name","MyLogger","defaultLevel","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","push","err","Array","isArray","LEVELS","IS_PRODUCTION","level","_name","_level","_dummy","setLevel","_this","Number","isInteger","indexOf","bind","condition","methodName","console","bindSimple","forEach","method","lvl","args","label","callable","time","result","timeEnd","profile","profileEnd","7fPx","ko","FYi7","siteUrl","url","_len","more","_key","isAbsoluteUrlRegex","test","joinPath","apply","concat","BASE_URL","_len2","values","_key2","query","queryString","fragment","components","processValue","v","__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default","isObject","__WEBPACK_IMPORTED_MODULE_2__var__","trim","substr","replace","join","isEmpty","q","buildQuery","isAbsolute","queryData","__WEBPACK_IMPORTED_MODULE_1__location__","highlightUrls","text","maxlength","s","st","slice","prefix","val","startsWith","postfix","endsWith","UrlParser","UrlBuilder","__WEBPACK_IMPORTED_MODULE_0_lib_underscore__","_typeof","obj","constructor","base_url","_a","document","createElement","href","get","origin","protocol","host","hostname","port","pathname","search","hash","path","_protocol","_host","_port","_path","_query","_hash","set","Q4Fy","RaK1","lang","data","asHtml","phrase","__WEBPACK_IMPORTED_MODULE_2__globals__","tmpl","template","keyParam","escapeRegExp","pluralRegex","RegExp","m","exec","pluralize","replacement","split","count","varName","varValue","parts","pluralRule","__WEBPACK_IMPORTED_MODULE_1_smart_plurals___default","Plurals","getRule","LANG","part","string","__WEBPACK_IMPORTED_MODULE_0_lib_knockout__","__WEBPACK_IMPORTED_MODULE_0_lib_knockout___default","__WEBPACK_IMPORTED_MODULE_1_smart_plurals__","bindingHandlers","init","controlsDescendantBindings","update","element","valueAccessor","params","unwrap","o","html","$","isPlainObject","extend","utils","setHtml","TkzU","TxBK","globals","defaultValue","g","_globals","__WEBPACK_IMPORTED_MODULE_0__var__","phrases","_phrases","X0GP","_","XRua","buildUrl","numeric_prefix","tmp","isNaN","String","http_build_query_helper","urlencode","addQuery","appendQuery","str","processQuery","hashQuery","type","decodeQueryString","location","substring","isObj","k","toString","newData","each","glue1","glue2","array","array2","j","chr","bracket","keys","evalStr","fixStr","decodeURIComponent","charAt","eval","encodeURIComponent","arg_separator","start","sk","num","Error","YnTO","checkIsIframe","isMobile","_isMobile","isTouchScreen","_isTouchScreen","isWebpFeatureSupported","feature","Promise","resolve","reject","WEBP_FEATURES","includes","kTestImages","lossy","lossless","alpha","animation","img","Image","onload","width","height","onerror","src","navigator","userAgent","msMaxTouchPoints","LOSSY","LOSSLESS","ALPHA","ANIMATION","ZuML","openPopup","content","__WEBPACK_IMPORTED_MODULE_1__dialog__","__WEBPACK_IMPORTED_MODULE_0__popup_less__","dRrt","__WEBPACK_IMPORTED_MODULE_0__signup__","dTkA","isset","isUndefined","isNull","object","has","elementOrDefault","elementOrDash","orDefault","asNumber","asBoolean","isBoolean","asString","asArray","delimiter","fokk","createIframeDialog","newDialog","__width","createHtmlDialog","showCloseButton","openHtmlDialog","autoOpen","createWindowDialog","getScrollBarWidth","$outer","css","visibility","overflow","appendTo","widthWithScroll","outerWidth","remove","hasScrollBar","el","$el","scrollHeight","dialogManager","__WEBPACK_IMPORTED_MODULE_0__dialog_less__","__WEBPACK_IMPORTED_MODULE_1_lib_underscore__","__WEBPACK_IMPORTED_MODULE_1_lib_underscore___default","__WEBPACK_IMPORTED_MODULE_2_lib_knockout__","__WEBPACK_IMPORTED_MODULE_2_lib_knockout___default","__WEBPACK_IMPORTED_MODULE_3__utils_logger__","__WEBPACK_IMPORTED_MODULE_4__utils_utils__","__WEBPACK_IMPORTED_MODULE_5__utils_var__","logger","fn","zdialog","$placeholder","insertAfter","isInDom","closest","documentElement","isVisible","detach","show","dialog","onBeforeClose","onClose","hide","open","zdialogInstance","ZDialog","_width","observable","_height","_isModal","_isCloseBtnVisible","_isLoading","_isOpened","_isClosed","_isHidden","_contentHeight","_iframeHeight","_opened","_onOpen","Callbacks","_onClose","_onBeforeClose","_result","defaults","_o","modal","onOpen","add","isOpened","_wnd","addEventListener","_handleWindowReady","onbeforeunload","isClosed","close","isRegistered","isFullScreen","isAutoHeight","setTimeout","fireWith","register","_this2","focus","_heightWatcher","off","unregister","iframeHeight","item","e","_this3","log","HeightWatcher","newHeight","contentHeight","contentWindow","dialogInstance","body","toggleClass","isModal","trigger","_this4","addClass","$target","is","isTopmost","callback","minWidth","maxWidth","fullscreen","custom","cssClass","buttons","DialogManager","_this5","_counter","_dialogs","observableArray","_isClosing","_initialized","_wrapper","WindowWrapper","_$html","_$body","pureComputed","any","dialogs","isLoading","_visibleDialogs","filter","isHidden","_checkMarkupAfterOpen","_checkMarkupAfterClose","clearTimeout","_timeout","visibleDialogs","on","_$el","applyBindings","_this6","cleanNode","contains","node","last","getTopmostDialog","$iframe","_this7","_currHeight","_event","_ibody","updateHeight","_interval","setInterval","getHeight","fire","find","iHeight","clearInterval","empty","_$wnd","_$head","_scrollTop","_scrollLeft","_$scrollBarStyle","_$positionStyle","_useFixedLayout","scrollTop","scrollLeft","_applyPositionStyle","_applyScrollbarStyle","_hasScrollBar","removeClass","scrollBarWidth","iOFR","l4Yc","__WEBPACK_IMPORTED_MODULE_0__loading_less__","counter","iframeOverride","loading","$element","og09","tXil","Smart","rules","defaultCode","defaultRule","languageCode","toLowerCase","languageCodes","isExactMatch","dash","twoLetterCode","setDefaultRule","defineRule","normalizedRule","choices","singular","zero","few","two","uM7G","vBks","xClS","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","Zepto","Mask","mask","p","invalid","getCaret","sel","pos","ctrl","dSel","selection","cSelStart","selectionStart","appVersion","createRange","moveStart","setCaret","range","setSelectionRange","createTextRange","collapse","moveEnd","select","events","keyCode","which","maskDigitPosMapOld","maskDigitPosMap","jMaskGlobals","useInput","behaviour","keydown","keyup","oldValue","selectOnFocus","clearIfNotMatch","regexMask","getRegexMask","translation","pattern","optional","recursive","oRecursive","r","maskChunks","jMask","digit","destroyEvents","isInput","calculateCaretPosition","oldVal","newVal","getMasked","caretPosNew","caretPosOld","newValL","oldValL","maskDigitsBeforeCaret","maskDigitsAfterCaret","maskDigitsBeforeCaretAll","maskDigitsBeforeCaretAllOld","caretPos","event","inArray","byPassKeys","callbacks","skipMaskChars","lastMaskChar","check","buf","maskLen","valLen","offset","addMethod","resetPos","maskDigitCount","maskDigitPosArr","reverse","lastUntranslatedMaskChar","maskDigit","valDigit","match","fallback","lastMaskCharDigit","mapMaskdigitPositions","maskDiff","changed","defaultArgs","criteria","caret","getCleanVal","getMaskedVal","onlyMask","placeholder","attr","maskWatchers","HTMLAttributes","input","notSameMaskObject","field","maskObject","stringify","JSON","selector","interval","watchInterval","watchInputs","maskFunction","masked","unmask","dataMask","removeData","cleanVal","applyDataMask","maskElements","dataMaskAttr","eventName","isSupported","setAttribute","watchDataMask","0","9","#","A","S","xyBK","autoplayVideo","recaptchaEnabled","isProcessing","initForm","$form","checkBadEmail","then","doSubmit","response","redirect","__WEBPACK_IMPORTED_MODULE_1__core_utils_url__","always","resetRecaptcha","chosen","initPlayer","recaptchaCallback","submit","submitHandler","validate","ignore","invalidHandler","highlight","errorClass","validClass","unhighlight","autoplay","$regVideo","player","volume","paused","play","click","pause","def","Deferred","$emailField","email","domain","badDomains","__WEBPACK_IMPORTED_MODULE_6__core_utils_lang__","domains_list","map","toUpperCase","__WEBPACK_IMPORTED_MODULE_5__core_widgets_popup__","promise","__WEBPACK_IMPORTED_MODULE_3__core_widgets_loading__","post","serialize","fail","__WEBPACK_IMPORTED_MODULE_4__core_widgets_notifier__","errorXHR","ga","eventCategory","eventAction","errors","showErrors","grecaptcha","reset","__WEBPACK_IMPORTED_MODULE_0__styles_index_less__","__WEBPACK_IMPORTED_MODULE_2_jquery_mask_plugin__","$wrap","validator","messages","tel","methods"],"mappings":"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","file":"auth.min.js","sourcesContent":["var zde = zde || {}; zde[\"modules\"] = zde[\"modules\"] || {}; zde[\"modules\"][\"auth\"] =\nwebpackJsonpzde_modules__name_([21],{\n\n/***/ \"0iPh\":\n/***/ (function(module, exports) {\n\nmodule.exports = jQuery;\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"dRrt\");\n\n\n/***/ }),\n\n/***/ \"2uje\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Notifier; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_toastr__ = __webpack_require__(\"og09\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_toastr___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lib_toastr__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_utils__ = __webpack_require__(\"YnTO\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_var__ = __webpack_require__(\"dTkA\");\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\nvar t = Object(__WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"b\" /* checkIsIframe */])() ? window.top.toastr : __WEBPACK_IMPORTED_MODULE_0_lib_toastr___default.a;\n\nvar MSG_ERROR = 'Ошибка';\nvar MSG_ERROR_XHR = 'Не удалось выполнить запрос';\n\nvar Notifier = function () {\n\tfunction Notifier() {\n\t\t_classCallCheck(this, Notifier);\n\t}\n\n\t_createClass(Notifier, null, [{\n\t\tkey: \"error\",\n\t\tvalue: function error() {\n\t\t\tvar message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\t\tvar title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\t\tvar options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\t\t\t// Extend timeout for errors to 10 seconds by default\n\t\t\tvar timeOut = options ? Object(__WEBPACK_IMPORTED_MODULE_2__utils_var__[\"g\" /* orDefault */])(options.timeOut, 10000) : 10000;\n\t\t\tt.error(Object(__WEBPACK_IMPORTED_MODULE_2__utils_var__[\"g\" /* orDefault */])(message, MSG_ERROR), title, _extends({ timeOut: timeOut }, options));\n\t\t}\n\t}, {\n\t\tkey: \"errorXHR\",\n\t\tvalue: function errorXHR(jqXHR, textStatus, errorThrown) {\n\t\t\tif (textStatus != 'abort') {\n\t\t\t\tNotifier.error(MSG_ERROR_XHR);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"info\",\n\t\tvalue: function info(message) {\n\t\t\tvar title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\t\tvar options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\t\t\tt.info(message, title, _extends({}, options));\n\t\t}\n\t}, {\n\t\tkey: \"success\",\n\t\tvalue: function success(message) {\n\t\t\tvar title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\t\tvar options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\t\t\tt.success(message, title, _extends({}, options));\n\t\t}\n\t}, {\n\t\tkey: \"warning\",\n\t\tvalue: function warning(message) {\n\t\t\tvar title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\t\tvar options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\t\t\tt.warning(message, title, _extends({}, options));\n\t\t}\n\t}]);\n\n\treturn Notifier;\n}();\n\n/***/ }),\n\n/***/ \"5wqq\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = newLogger;\n/* unused harmony export setDefaultLevel */\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LEVEL_DEBUG = 0;\nvar LEVEL_INFO = 1;\nvar LEVEL_WARN = 2;\nvar LEVEL_ERROR = 3;\n\nvar LEVELS = ['debug', 'info', 'warn', 'error'];\n\nvar defaultLevel = window.IS_PRODUCTION ? LEVEL_WARN : LEVEL_DEBUG;\n\n/**\n * Creates new logger instance with default level.\n * @param {string|null} name\n * @return {MyLogger}\n */\nfunction newLogger() {\n\tvar name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n\treturn new MyLogger(name, defaultLevel);\n}\n\n/**\n * Sets level for new loggers.\n * @param {number} level\n */\nfunction setDefaultLevel(level) {\n\tdefaultLevel = level;\n}\n\nvar MyLogger = function () {\n\tfunction MyLogger(name, level) {\n\t\t_classCallCheck(this, MyLogger);\n\n\t\tthis._name = '';\n\t\tthis._level = -1;\n\n\t\tthis._dummy = function () {};\n\n\t\tthis._name = name;\n\t\tthis.setLevel(level);\n\t}\n\n\t_createClass(MyLogger, [{\n\t\tkey: 'setLevel',\n\t\tvalue: function setLevel(level) {\n\t\t\tvar _this = this;\n\n\t\t\tlevel = Number.isInteger(level) ? level : LEVELS.indexOf(level);\n\t\t\tthis._level = level;\n\n\t\t\tvar name = this._name ? '[' + this._name + ']' : null;\n\t\t\tvar bind = function bind(condition, methodName) {\n\t\t\t\tif (!condition || !console[methodName]) return _this._dummy;\n\t\t\t\treturn name ? console[methodName].bind(console, name) : console[methodName].bind(console);\n\t\t\t};\n\t\t\tvar bindSimple = function bindSimple(condition, methodName) {\n\t\t\t\treturn condition && console[methodName] ? console[methodName].bind(console) : _this._dummy;\n\t\t\t};\n\n\t\t\t[['log', LEVEL_DEBUG], ['info', LEVEL_INFO], ['warn', LEVEL_WARN], ['error', LEVEL_ERROR]].forEach(function (i) {\n\t\t\t\tvar _i = _slicedToArray(i, 2),\n\t\t\t\t method = _i[0],\n\t\t\t\t lvl = _i[1];\n\n\t\t\t\t_this[method] = bind(level <= lvl, method);\n\t\t\t});\n\n\t\t\t['time', 'timeEnd', 'profile', 'profileEnd'].forEach(function (method) {\n\t\t\t\t_this[method] = bindSimple(level <= LEVEL_DEBUG, method);\n\t\t\t});\n\t\t}\n\n\t\t/** The same as {@link Console.log} */\n\n\t}, {\n\t\tkey: 'log',\n\t\tvalue: function log(args) {}\n\n\t\t/** The same as {@link Console.info} */\n\n\t}, {\n\t\tkey: 'info',\n\t\tvalue: function info(args) {}\n\n\t\t/** The same as {@link Console.warn} */\n\n\t}, {\n\t\tkey: 'warn',\n\t\tvalue: function warn(args) {}\n\n\t\t/** The same as {@link Console.error} */\n\n\t}, {\n\t\tkey: 'error',\n\t\tvalue: function error(args) {}\n\n\t\t/** The same as {@link Console.time} */\n\n\t}, {\n\t\tkey: 'time',\n\t\tvalue: function time(label) {}\n\n\t\t/** The same as {@link Console.timeEnd} */\n\n\t}, {\n\t\tkey: 'timeEnd',\n\t\tvalue: function timeEnd(label) {}\n\n\t\t/** The same as {@link Console.profile} */\n\n\t}, {\n\t\tkey: 'profile',\n\t\tvalue: function profile(label) {}\n\n\t\t/** The same as {@link Console.profileEnd} */\n\n\t}, {\n\t\tkey: 'profileEnd',\n\t\tvalue: function profileEnd(label) {}\n\t}, {\n\t\tkey: 'measureTime',\n\t\tvalue: function measureTime(label, callable) {\n\t\t\tthis.time(label);\n\t\t\tvar result = callable();\n\t\t\tthis.timeEnd(label);\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: 'doProfile',\n\t\tvalue: function doProfile(label, callable) {\n\t\t\tthis.profile(label);\n\t\t\tvar result = callable();\n\t\t\tthis.profileEnd(label);\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: 'setLevelDebug',\n\t\tvalue: function setLevelDebug() {\n\t\t\tthis.setLevel(LEVEL_DEBUG);\n\t\t}\n\t}, {\n\t\tkey: 'setLevelInfo',\n\t\tvalue: function setLevelInfo() {\n\t\t\tthis.setLevel(LEVEL_INFO);\n\t\t}\n\t}, {\n\t\tkey: 'setLevelWarn',\n\t\tvalue: function setLevelWarn() {\n\t\t\tthis.setLevel(LEVEL_WARN);\n\t\t}\n\t}, {\n\t\tkey: 'setLevelError',\n\t\tvalue: function setLevelError() {\n\t\t\tthis.setLevel(LEVEL_ERROR);\n\t\t}\n\t}]);\n\n\treturn MyLogger;\n}();\n\n/* unused harmony default export */ var _unused_webpack_default_export = (newLogger());\n\n/***/ }),\n\n/***/ \"7fPx\":\n/***/ (function(module, exports) {\n\nmodule.exports = ko;\n\n/***/ }),\n\n/***/ \"FYi7\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BASE_URL; });\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = siteUrl;\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = joinPath;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = isAbsolute;\n/* unused harmony export buildQuery */\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = highlightUrls;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return UrlParser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return UrlBuilder; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_underscore__ = __webpack_require__(\"X0GP\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_underscore___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lib_underscore__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__location__ = __webpack_require__(\"XRua\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__var__ = __webpack_require__(\"dTkA\");\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\nvar BASE_URL = (window.base_url || '/').replace(/(.*)\\/\\/$|([^/])$/, '$1/');\n\nvar isAbsoluteUrlRegex = /^https?:\\/\\//i;\n\n/**\n * @param {string|object} url Url path\n * @param {string|object} more Additional parts\n * @return {string}\n */\nfunction siteUrl(url) {\n\tfor (var _len = arguments.length, more = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t\tmore[_key - 1] = arguments[_key];\n\t}\n\n\tif (isAbsoluteUrlRegex.test(url)) {\n\t\tif (more.length === 0) {\n\t\t\treturn url;\n\t\t} else {\n\t\t\treturn joinPath.apply(null, [url].concat(more));\n\t\t}\n\t} else {\n\t\treturn joinPath.apply(null, [BASE_URL, url].concat(more));\n\t}\n}\n\n/**\n * Joins given values with slash.\n * If last value is an object - it will be formatted as query data.\n * @param {string|object} values\n * @return {string}\n */\nfunction joinPath() {\n\tfor (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t\tvalues[_key2] = arguments[_key2];\n\t}\n\n\tif (values.length == 0) return '';\n\tvar query = {};\n\tvar queryString = '';\n\tvar fragment = '';\n\tvar components = [];\n\tvar processValue = function processValue(v) {\n\t\tif (__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isObject(v)) {\n\t\t\tquery = _extends({}, query, v);\n\t\t} else {\n\t\t\tv = Object(__WEBPACK_IMPORTED_MODULE_2__var__[\"d\" /* asString */])(v).trim();\n\t\t\tvar i = void 0;\n\t\t\tif ((i = v.indexOf('#')) >= 0) {\n\t\t\t\tfragment = v.substr(i + 1);\n\t\t\t\tv = v.substr(0, i);\n\t\t\t} else if ((i = v.indexOf('?')) >= 0) {\n\t\t\t\tqueryString = v.substr(i + 1);\n\t\t\t\tv = v.substr(0, i);\n\t\t\t}\n\t\t\tif (v) {\n\t\t\t\tif (components.length == 0) {\n\t\t\t\t\tv = v.replace(/\\/$/g, '');\n\t\t\t\t} else {\n\t\t\t\t\tv = v.replace(/^\\/|\\/$/g, '');\n\t\t\t\t}\n\t\t\t\tcomponents.push(v);\n\t\t\t}\n\t\t}\n\t};\n\tvalues.forEach(function (v) {\n\t\tif (__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isArray(v)) {\n\t\t\tv.forEach(processValue);\n\t\t} else {\n\t\t\tprocessValue(v);\n\t\t}\n\t});\n\tvar url = components.join('/');\n\tif (!__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isEmpty(query)) {\n\t\tvar q = buildQuery(query);\n\t\tif (queryString) {\n\t\t\tqueryString += '&';\n\t\t}\n\t\tqueryString += q;\n\t}\n\tif (queryString) {\n\t\turl += '?' + queryString;\n\t}\n\tif (fragment) {\n\t\turl += '#' + fragment;\n\t}\n\treturn url;\n}\n\n/**\n *\n * @param {string} url\n * @return {boolean}\n */\nfunction isAbsolute(url) {\n\treturn isAbsoluteUrlRegex.test(url);\n}\n\n/**\n * Builds query string from given object\n * @param {object} queryData\n * @return {string}\n */\nfunction buildQuery(queryData) {\n\treturn __WEBPACK_IMPORTED_MODULE_1__location__[\"c\" /* buildQuery */](queryData);\n}\n\nfunction highlightUrls(text) {\n\tvar maxlength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 30;\n\n\treturn text.replace(/(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\?+=&%#\\/\\wА-Яа-яёЁ\\.;-]*)*\\/?/g, function (s) {\n\t\tvar st = s;\n\n\t\tif (s.length > maxlength) {\n\t\t\tst = s.slice(0, maxlength) + \"...\";\n\t\t}\n\n\t\tif (!/^(https?:\\/\\/)/.test(s)) {\n\t\t\ts = \"http://\" + s;\n\t\t}\n\n\t\treturn \"\" + st + \"\";\n\t});\n}\n\nvar UrlParser = function () {\n\t/**\n * @param {string} url\n */\n\tfunction UrlParser(url) {\n\t\t_classCallCheck(this, UrlParser);\n\n\t\tthis._a = document.createElement('a');\n\t\tthis._a.href = url;\n\t}\n\n\t/** @return {string} */\n\n\n\t_createClass(UrlParser, [{\n\t\tkey: 'origin',\n\t\tget: function get() {\n\t\t\treturn this._a.origin;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: 'protocol',\n\t\tget: function get() {\n\t\t\treturn this._a.protocol;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: 'host',\n\t\tget: function get() {\n\t\t\treturn this._a.host;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: 'hostname',\n\t\tget: function get() {\n\t\t\treturn this._a.hostname;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: 'port',\n\t\tget: function get() {\n\t\t\treturn this._a.port;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: 'pathname',\n\t\tget: function get() {\n\t\t\treturn this._a.pathname;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: 'search',\n\t\tget: function get() {\n\t\t\treturn this._a.search;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: 'hash',\n\t\tget: function get() {\n\t\t\treturn this._a.hash;\n\t\t}\n\t}]);\n\n\treturn UrlParser;\n}();\n\nvar UrlBuilder = function () {\n\tfunction UrlBuilder() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tvar host = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\tvar port = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\t\tvar path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\t\tvar query = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n\t\tvar hash = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n\n\t\t_classCallCheck(this, UrlBuilder);\n\n\t\tthis._protocol = protocol;\n\t\tthis._host = host;\n\t\tthis._port = port;\n\t\tthis._path = path;\n\t\tthis._query = query;\n\t\tthis._hash = hash;\n\t}\n\n\t/**\n * @param {string|null} value\n */\n\n\n\t_createClass(UrlBuilder, [{\n\t\tkey: 'build',\n\n\n\t\t/**\n * @return {string}\n */\n\t\tvalue: function build() {\n\t\t\tvar origin = (this._protocol ? this._protocol + '//' : '') + (this._host ? this._host + (this._port ? ':' + this._port : '') : '');\n\t\t\tvar query = _typeof(this._query) === 'object' ? prefix(buildQuery(this._query), '?') : this._query;\n\t\t\treturn joinPath(origin, this._path, query, this._hash);\n\t\t}\n\t}, {\n\t\tkey: 'protocol',\n\t\tset: function set(value) {\n\t\t\tthis._protocol = postfix(value, ':');\n\t\t}\n\n\t\t/** @return {string|null} */\n\t\t,\n\t\tget: function get() {\n\t\t\treturn this._protocol;\n\t\t}\n\n\t\t/**\n * @param {string|null} value\n */\n\n\t}, {\n\t\tkey: 'host',\n\t\tset: function set(value) {\n\t\t\tthis._host = value;\n\t\t}\n\n\t\t/** @return {string|null} */\n\t\t,\n\t\tget: function get() {\n\t\t\treturn this._host;\n\t\t}\n\n\t\t/**\n * @param {string|number|null} value\n */\n\n\t}, {\n\t\tkey: 'port',\n\t\tset: function set(value) {\n\t\t\tthis._port = value;\n\t\t}\n\n\t\t/** @return {string|number|null} */\n\t\t,\n\t\tget: function get() {\n\t\t\treturn this._port;\n\t\t}\n\n\t\t/**\n * @param {string|null} value\n */\n\n\t}, {\n\t\tkey: 'path',\n\t\tset: function set(value) {\n\t\t\tthis._path = value;\n\t\t}\n\n\t\t/** @return {string|null} */\n\t\t,\n\t\tget: function get() {\n\t\t\treturn this._path;\n\t\t}\n\n\t\t/**\n * @param {string|object|null} value\n */\n\n\t}, {\n\t\tkey: 'query',\n\t\tset: function set(value) {\n\t\t\tthis._query = prefix(value, '?');\n\t\t}\n\n\t\t/** @return {string|object|null} */\n\t\t,\n\t\tget: function get() {\n\t\t\treturn this._query;\n\t\t}\n\n\t\t/**\n * @param {string|null} value\n */\n\n\t}, {\n\t\tkey: 'hash',\n\t\tset: function set(value) {\n\t\t\tthis._hash = prefix(value, '#');\n\t\t}\n\n\t\t/** @return {string|null} */\n\t\t,\n\t\tget: function get() {\n\t\t\treturn this._hash;\n\t\t}\n\t}]);\n\n\treturn UrlBuilder;\n}();\n\nfunction prefix(val, prefix) {\n\tif (val && typeof val === 'string' && !val.startsWith(prefix)) {\n\t\treturn prefix + val;\n\t}\n\treturn val;\n}\n\nfunction postfix(val, postfix) {\n\tif (val && typeof val === 'string' && !val.endsWith(postfix)) {\n\t\treturn val + postfix;\n\t}\n\treturn val;\n}\n\n/***/ }),\n\n/***/ \"Q4Fy\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"RaK1\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = lang;\n/* unused harmony export tmpl */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = pluralize;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_knockout__ = __webpack_require__(\"7fPx\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_knockout___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lib_knockout__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_smart_plurals__ = __webpack_require__(\"tXil\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_smart_plurals___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_smart_plurals__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__globals__ = __webpack_require__(\"TxBK\");\n\n\n\n\n/**\n * Renders phrase\n * @param {string} lang Phrase name\n * @param {object|null} [data]\n * @param {boolean} [asHtml] Whether to render variables decorated with span tag. Default is FALSE\n * @returns {string} Rendered phrase\n */\nfunction lang(lang) {\n\tvar data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\tvar asHtml = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n\tvar phrase = Object(__WEBPACK_IMPORTED_MODULE_2__globals__[\"b\" /* phrases */])()[lang];\n\tif (!phrase) return lang;\n\treturn tmpl(phrase, data, asHtml);\n}\n\n/**\n *\n * @param {string} template\n * @param {object|null} [data]\n * @param {boolean} [asHtml] Whether to render variables decorated with span tag. Default is TRUE\n * @returns {string}\n */\nfunction tmpl(template) {\n\tvar data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\tvar asHtml = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n\tif (!data) return template;\n\ttemplate = '' + template;\n\n\tvar result = template;\n\tfor (var key in data) {\n\t\tif (!data.hasOwnProperty(key)) continue;\n\t\tvar val = data[key];\n\n\t\t// unwrap value\n\t\tif (typeof val === 'function') {\n\t\t\tval = val();\n\t\t}\n\n\t\tvar keyParam = escapeRegExp(key);\n\t\tvar pluralRegex = new RegExp(\"\\\\[([^\\\\]]+{\" + keyParam + \"}[^\\\\]]+)\\\\]\");\n\t\tvar m = pluralRegex.exec(template);\n\t\tif (m) {\n\t\t\tresult = result.replace(pluralRegex, pluralize(val, m[1], key));\n\t\t}\n\n\t\tvar replacement = asHtml ? '' + val + '' : val;\n\t\tresult = result.split('{' + key + '}').join(replacement);\n\t}\n\treturn result;\n}\n\n/**\n *\n * @param {number} count\n * @param {string} text\n * @param {string} varName\n * @param {string|number|null} varValue\n */\nfunction pluralize(count, text) {\n\tvar varName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'n';\n\tvar varValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n\tvar parts = text.split('|');\n\tvar pluralRule = __WEBPACK_IMPORTED_MODULE_1_smart_plurals___default.a.Plurals.getRule(LANG);\n\tvar part = pluralRule(count, parts);\n\tif (part === undefined) {\n\t\tpart = parts[0];\n\t}\n\tvar replacement = varValue !== undefined && varValue !== null ? varValue : count;\n\treturn part.split('{' + varName + '}').join(replacement);\n}\n\nfunction escapeRegExp(string) {\n\treturn string.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n}\n\n__WEBPACK_IMPORTED_MODULE_0_lib_knockout___default.a.bindingHandlers['lang'] = {\n\tinit: function init() {\n\t\treturn { 'controlsDescendantBindings': true };\n\t},\n\tupdate: function update(element, valueAccessor) {\n\t\tvar params = __WEBPACK_IMPORTED_MODULE_0_lib_knockout___default.a.unwrap(valueAccessor());\n\t\tvar o = {\n\t\t\tname: '',\n\t\t\tdata: undefined,\n\t\t\thtml: undefined\n\t\t};\n\t\tif (!$.isPlainObject(params)) {\n\t\t\to.name = params;\n\t\t} else {\n\t\t\t$.extend(o, params);\n\t\t}\n\t\tvar args = [o.name, o.data, o.html];\n\t\tvar val = lang.apply(this, args);\n\t\t__WEBPACK_IMPORTED_MODULE_0_lib_knockout___default.a.utils.setHtml(element, val);\n\t}\n};\n\n/***/ }),\n\n/***/ \"TkzU\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"TxBK\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = globals;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = phrases;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__var__ = __webpack_require__(\"dTkA\");\n\n\nvar _globals = {};\nvar _phrases = {};\n\n/**\n * Returns Globals object\n * @param {string|null} key Optional key to return\n * @param {*} defaultValue Default value for key\n * @return {object|*} Globals object if no key is provided, otherwise associated value\n */\nfunction globals() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var g = window.globals || _globals;\n return key !== null ? Object(__WEBPACK_IMPORTED_MODULE_0__var__[\"e\" /* element */])(g, key, defaultValue) : g;\n}\n\n/**\n * Returns global Phrases object\n * @param {string|null} key Optional key to return\n * @param {*} defaultValue Default value for key\n * @return {object} Phrases object if no key is provided, otherwise associated value\n */\nfunction phrases() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var g = globals('phrases') || _phrases;\n return key !== null ? Object(__WEBPACK_IMPORTED_MODULE_0__var__[\"e\" /* element */])(g, key, defaultValue) : g;\n}\n\n/***/ }),\n\n/***/ \"X0GP\":\n/***/ (function(module, exports) {\n\nmodule.exports = _;\n\n/***/ }),\n\n/***/ \"XRua\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export buildUrl */\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = buildQuery;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addQuery;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = appendQuery;\n/* unused harmony export query */\n/* unused harmony export hashQuery */\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = decodeQueryString;\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\r\n * This script adds some additional methods to window.location\r\n * buildQuery Helper method for constricting query strings\r\n * query location.query manipulator\r\n * hashQuery location.hash manipulator\r\n */\n\nvar location = window.location;\n\nfunction buildUrl(pathname, queryString) {\n\tif (!queryString) {\n\t\treturn pathname;\n\t}\n\tqueryString = '' + queryString;\n\tif (!queryString.startsWith('?')) {\n\t\tqueryString = '?' + queryString;\n\t}\n\treturn pathname + queryString;\n}\n\n/**\r\n * Builds query string from given object\r\n * @param {object} queryData\r\n * @param {boolean} [numeric_prefix]\r\n * @return {string}\r\n */\nfunction buildQuery(queryData, numeric_prefix) {\n\tvar value = void 0,\n\t key = void 0,\n\t tmp = [];\n\tvar arg_separator = \"&\";\n\n\tfor (key in queryData) {\n\t\tif (!queryData.hasOwnProperty(key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tvalue = queryData[key];\n\t\tif (numeric_prefix && !isNaN(key)) {\n\t\t\tkey = String(numeric_prefix) + key;\n\t\t}\n\t\tvar _query = http_build_query_helper(urlencode(key), value, arg_separator);\n\t\tif (_query !== '') {\n\t\t\ttmp.push(_query);\n\t\t}\n\t}\n\n\treturn tmp.join(arg_separator);\n}\n\n/**\r\n * Appends given query data to given URL\r\n * @param {string} url\r\n * @param {object} queryData\r\n * @return {string} New url\r\n */\nfunction addQuery(url, queryData) {\n\tvar q = buildQuery(queryData);\n\turl = '' + url;\n\tvar m = /^([^?#]*)(\\?[^#]+)?(#.+)?$/.exec(url);\n\tif (!m) {\n\t\treturn url + '?' + q;\n\t}\n\treturn (m[1] || '') + (m[2] ? m[2] + '&' + q : '?' + q) + (m[3] || '');\n}\n\n/**\r\n * Appends given query data to given query string\r\n * @param {string} queryString\r\n * @param {object} queryData\r\n * @return {string} New query string\r\n */\nfunction appendQuery(queryString, queryData) {\n\tvar q = buildQuery(queryData);\n\tif (!q) {\n\t\treturn queryString;\n\t}\n\tvar str = '' + queryString;\n\treturn str.length > 0 ? str + '&' + q : q;\n}\n\n/**\r\n * Manipulates location.search as an object.
\r\n * With no arguments - returns the whole location.search object.
\r\n * With only key argument - returns value for this key.
\r\n * With key and value arguments (or only key as object) - updates location.search with new value\r\n * @param [key] The key to set. Can be an object, so the value is not needed\r\n * @param [value] The value to set\r\n * @param [extend] TRUE to extend current location.search object, or FALSE to replace it. Default is TRUE\r\n * @returns {Object|String}\r\n */\nfunction query(key, value, extend) {\n\treturn processQuery('search', key, value, extend);\n}\n\n/**\r\n * Manipulates location.hash as an object.
\r\n * With no arguments - returns the whole location.hash object.
\r\n * With only key argument - returns value for this key.
\r\n * With key and value arguments (or only key as object) - updates location.hash with new value\r\n * @param [key] The key to set. Can be an object, so the value is not needed\r\n * @param [value] The value to set\r\n * @param [extend] TRUE to extend current location.hash object, or FALSE to replace it. Default is TRUE\r\n * @returns {Object|String}\r\n */\nfunction hashQuery(key, value, extend) {\n\treturn processQuery('hash', key, value, extend);\n}\n\nfunction processQuery(type, key, value, extend) {\n\tvar queryData = decodeQueryString(location[type].substring(1));\n\tif (key !== undefined) {\n\t\tvar isObj = (typeof key === 'undefined' ? 'undefined' : _typeof(key)) === 'object';\n\n\t\tif (value === undefined && !isObj) {\n\t\t\t// return value\n\t\t\treturn queryData[key] === undefined ? null : queryData[key];\n\t\t} else if (!isObj) {\n\t\t\tif (extend === undefined) extend = true;\n\n\t\t\t// set value to key\n\t\t\tvar k = key.toString();\n\t\t\tkey = {};\n\t\t\tkey[k] = value;\n\t\t}\n\n\t\tif (extend) {\n\t\t\t$.extend(queryData, key);\n\t\t} else {\n\t\t\tqueryData = key;\n\t\t}\n\n\t\t// clear data\n\t\tvar newData = {};\n\t\t$.each(queryData, function (key, value) {\n\t\t\tif (value) newData[key] = value;\n\t\t});\n\t\tqueryData = newData;\n\n\t\tlocation[type] = buildQuery(queryData);\n\t}\n\treturn queryData;\n}\n\n/**\r\n * Decodes query string like 'a=one&b=two&c[]=three' and returns an object\r\n * @param string\r\n * @return {Object}\r\n */\nfunction decodeQueryString(string) {\n\tvar glue1 = '=',\n\t glue2 = '&',\n\t array = {},\n\t // holds result\n\tarray2 = String(string).replace(/^&?([\\s\\S]*?)&?$/, '$1').split(glue2),\n\t i = void 0,\n\t j = void 0,\n\t chr = void 0,\n\t tmp = void 0,\n\t key = void 0,\n\t value = void 0,\n\t bracket = void 0,\n\t keys = void 0,\n\t evalStr = void 0,\n\t fixStr = function fixStr(str) {\n\t\treturn decodeURIComponent(str).replace(/([\\\\\"'])/g, '\\\\$1').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\+/g, ' ');\n\t};\n\n\tfor (i = 0; i < array2.length; i++) {\n\t\ttmp = array2[i].split(glue1);\n\t\tif (tmp.length < 2) {\n\t\t\ttmp = [tmp, ''];\n\t\t}\n\t\tkey = fixStr(tmp[0]);\n\t\tvalue = fixStr(tmp[1]);\n\t\twhile (key.charAt(0) === ' ') {\n\t\t\tkey = key.substr(1);\n\t\t}\n\t\tif (key.indexOf('\\0') !== -1) {\n\t\t\tkey = key.substr(0, key.indexOf('\\0'));\n\t\t}\n\t\tif (key && key.charAt(0) !== '[') {\n\t\t\tkeys = [];\n\t\t\tbracket = 0;\n\t\t\tfor (j = 0; j < key.length; j++) {\n\t\t\t\tif (key.charAt(j) === '[' && !bracket) {\n\t\t\t\t\tbracket = j + 1;\n\t\t\t\t} else if (key.charAt(j) === ']') {\n\t\t\t\t\tif (bracket) {\n\t\t\t\t\t\tif (!keys.length) {\n\t\t\t\t\t\t\tkeys.push(key.substr(0, bracket - 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tkeys.push(key.substr(bracket, j - bracket));\n\t\t\t\t\t\tbracket = 0;\n\t\t\t\t\t\tif (key.charAt(j + 1) !== '[') {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!keys.length) {\n\t\t\t\tkeys = [key];\n\t\t\t}\n\t\t\tfor (j = 0; j < keys[0].length; j++) {\n\t\t\t\tchr = keys[0].charAt(j);\n\t\t\t\tif (chr === ' ' || chr === '.' || chr === '[') {\n\t\t\t\t\tkeys[0] = keys[0].substr(0, j) + '_' + keys[0].substr(j + 1);\n\t\t\t\t}\n\t\t\t\tif (chr === '[') {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tevalStr = 'array';\n\t\t\tfor (j = 0; j < keys.length; j++) {\n\t\t\t\tkey = keys[j];\n\t\t\t\tif (key !== '' && key !== ' ' || j === 0) {\n\t\t\t\t\tkey = \"'\" + key + \"'\";\n\t\t\t\t} else {\n\t\t\t\t\tkey = eval(evalStr + '.push([]);') - 1;\n\t\t\t\t}\n\t\t\t\tevalStr += '[' + key + ']';\n\t\t\t\tif (j !== keys.length - 1 && eval('typeof ' + evalStr) === 'undefined') {\n\t\t\t\t\teval(evalStr + ' = [];');\n\t\t\t\t}\n\t\t\t}\n\t\t\tevalStr += \" = '\" + value + \"';\\n\";\n\t\t\teval(evalStr);\n\t\t}\n\t}\n\n\treturn array;\n}\n\nfunction urlencode(str) {\n\tstr = (str + '').toString();\n\treturn encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/\\*/g, '%2A').replace(/%20/g, '+');\n}\n\nfunction http_build_query_helper(key, val, arg_separator) {\n\tvar k = void 0,\n\t tmp = [];\n\tif (val === true) {\n\t\tval = \"1\";\n\t} else if (val === false) {\n\t\tval = \"0\";\n\t}\n\tif (val !== null && val !== undefined && val !== '') {\n\t\tif ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === \"object\") {\n\t\t\tvar start = 0;\n\t\t\tfor (k in val) {\n\t\t\t\tif (!val.hasOwnProperty(k)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (val[k] !== null) {\n\t\t\t\t\tvar sk = void 0,\n\t\t\t\t\t num = Number(k);\n\t\t\t\t\tif (!isNaN(num) && num - start === 0) {\n\t\t\t\t\t\tif (_typeof(val[k]) === \"object\") {\n\t\t\t\t\t\t\tsk = num;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsk = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstart++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsk = urlencode(k);\n\t\t\t\t\t}\n\t\t\t\t\tvar part = http_build_query_helper(key + \"[\" + sk + \"]\", val[k], arg_separator);\n\t\t\t\t\tif (part) {\n\t\t\t\t\t\ttmp.push(part);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn tmp.join(arg_separator);\n\t\t} else if (typeof val !== \"function\") {\n\t\t\treturn key + \"=\" + urlencode(val);\n\t\t} else {\n\t\t\tthrow new Error('There was an error processing for http_build_query().');\n\t\t}\n\t} else {\n\t\treturn '';\n\t}\n}\n\n/***/ }),\n\n/***/ \"YnTO\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = checkIsIframe;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = isMobile;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = isTouchScreen;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return WEBP_FEATURES; });\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = isWebpFeatureSupported;\n/**\n * @return {boolean} TRUE if current window is an iframe window\n */\nfunction checkIsIframe() {\n\treturn window !== window.top;\n}\n\nvar _isMobile = 'orientation' in window || navigator.userAgent.indexOf('IEMobile') !== -1;\nvar _isTouchScreen = 'ontouchstart' in window || navigator.msMaxTouchPoints;\n\nfunction isMobile() {\n\treturn _isMobile;\n}\n\nfunction isTouchScreen() {\n\treturn _isTouchScreen;\n}\n\nvar WEBP_FEATURES = {\n\tLOSSY: 'lossy',\n\tLOSSLESS: 'lossless',\n\tALPHA: 'alpha',\n\tANIMATION: 'animation'\n};\n\nfunction isWebpFeatureSupported(feature) {\n\treturn new Promise(function (resolve, reject) {\n\t\tif (!Object.values(WEBP_FEATURES).includes(feature)) {\n\t\t\treject('Invalid feature name');\n\t\t\treturn;\n\t\t}\n\n\t\tvar kTestImages = {\n\t\t\tlossy: \"UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA\",\n\t\t\tlossless: \"UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==\",\n\t\t\talpha: \"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==\",\n\t\t\tanimation: \"UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA\"\n\t\t};\n\t\tvar img = new Image();\n\t\timg.onload = function () {\n\t\t\tvar result = img.width > 0 && img.height > 0;\n\t\t\tresolve(result);\n\t\t};\n\t\timg.onerror = function () {\n\t\t\tresolve(false);\n\t\t};\n\t\timg.src = \"data:image/webp;base64,\" + kTestImages[feature];\n\t});\n}\n\n/*export class MobileDetect {\n\tstatic Android = navigator.userAgent.match(/Android/i);\n\tstatic BlackBerry = navigator.userAgent.match(/BlackBerry/i);\n\tstatic iOS = navigator.userAgent.match(/iPhone|iPad|iPod/i);\n\tstatic Opera = navigator.userAgent.match(/Opera Mini/i);\n\tstatic Windows = navigator.userAgent.match(/IEMobile/i);\n\tstatic Any = MobileDetect.Android || MobileDetect.BlackBerry || MobileDetect.iOS || MobileDetect.Opera || MobileDetect.Windows;\n}*/\n\n/***/ }),\n\n/***/ \"ZuML\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = openPopup;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popup_less__ = __webpack_require__(\"Q4Fy\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popup_less___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__popup_less__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dialog__ = __webpack_require__(\"fokk\");\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n/**\n * The same as {@link openHtmlDialog()} but with name='popup' enabled\n * @param {*} content HTML content\n * @param {object} options ZDialog options\n * @return {ZDialog} Dialog instance\n */\nfunction openPopup(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return Object(__WEBPACK_IMPORTED_MODULE_1__dialog__[\"openHtmlDialog\"])(content, _extends({ name: 'popup' }, options));\n}\n\n/***/ }),\n\n/***/ \"dRrt\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__signup__ = __webpack_require__(\"xyBK\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"signup\", function() { return __WEBPACK_IMPORTED_MODULE_0__signup__; });\n\n\n\n\n/***/ }),\n\n/***/ \"dTkA\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export isset */\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = element;\n/* unused harmony export elementOrDefault */\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = elementOrDash;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = orDefault;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = asNumber;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = asBoolean;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = asString;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = trim;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = asArray;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_underscore__ = __webpack_require__(\"X0GP\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_underscore___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lib_underscore__);\n\n\n/**\n * Is a given variable defined and has value?\n * @param {*} val\n * @return {boolean} false if given value is undefined or null, otherwise true\n */\nfunction isset(val) {\n return !__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isUndefined(val) && !__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isNull(val);\n}\n\n/**\n * Returns object's property or array's index if exists and default value otherwise\n * @param {object|array} object Inspected object or array\n * @param {string|number} key Property name for objects, numeric index for arrays\n * @param {*} defaultValue\n * @return {*}\n */\nfunction element(object, key) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n return __WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.has(object, key) ? object[key] : defaultValue;\n}\n\n/**\n * Returns object's property or array's index if exists and is not null or default value otherwise\n * @param {object|array} object Inspected object or array\n * @param {string|number} key Property name for objects, numeric index for arrays\n * @param {*} defaultValue\n * @return {*}\n */\nfunction elementOrDefault(object, key) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n return __WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.has(object, key) && object[key] !== null ? object[key] : defaultValue;\n}\n\n/**\n * Returns object's property or array's index if exists and is not null or \"—\" value otherwise\n * @param {object|array} object Inspected object or array\n * @param {string|number} key Property name for objects, numeric index for arrays\n * @param {*} defaultValue\n * @return {*}\n */\nfunction elementOrDash(object, key) {\n return elementOrDefault(object, key, '—');\n}\n\n/**\n * Returns value if it's not undefined or null, otherwise defaultValue\n * @param {*} value\n * @param {*} defaultValue\n * @return {*}\n */\nfunction orDefault(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return isset(value) ? value : defaultValue;\n}\n\n/**\n * Converts given value to number using standard javascript converter: +value\n * @param {*} value Input value\n * @param {number} defaultValue\n * @return {number} Either converted value if it's not NaN and default value otherwise\n */\nfunction asNumber(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n value = +value;\n return !isNaN(value) ? value : 0;\n}\n\n/**\n * Converts given value to boolean using such algo:\n * - string \"0\" results in false;\n * - string \"false\" results in false;\n * - string \"null\" results in false;\n * - empty object results in false;\n * - empty array results in false;\n * - other values go through standard javascript converter: !!value\n * @param {*} value Input value\n * @return {boolean} Converted value\n */\nfunction asBoolean(value) {\n if (__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isBoolean(value)) return value;\n if (value === '0') return false;\n if (value === 'false') return false;\n if (value === 'null') return false;\n if (__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isObject(value) && __WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isEmpty(value)) return false;\n if (__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isArray(value) && __WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isEmpty(value)) return false;\n return !!value;\n}\n\n/**\n * Converts given value to string using standard javascript converter: ''+value\n * except that null and undefined values will be converted to empty string.\n * @param {*} value Input value\n * @return {string} Converted value\n */\nfunction asString(value) {\n if (value === null || __WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isUndefined(value)) return '';\n return '' + value;\n}\n\n/**\n * Converts given value to string using {@link asString()} and trims whitespace characters.\n * @param {string|*} value\n * @return {string} Converted and trimmed value\n */\nfunction trim(value) {\n return asString(value).trim();\n}\n\n/**\n * If input value is an array - it will be returned as is.\n * In other cases input value will be converted to string and either split with given delimiter\n * or just returned as a single array element.\n * @param {array|string} value\n * @param {string} delimiter\n * @return {array}\n */\nfunction asArray(value) {\n var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n if (!value) return [];\n if (__WEBPACK_IMPORTED_MODULE_0_lib_underscore___default.a.isArray(value)) return value;\n value = asString(value);\n return delimiter ? value.split(delimiter) : [value];\n}\n\n/***/ }),\n\n/***/ \"fokk\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (immutable) */ __webpack_exports__[\"createIframeDialog\"] = createIframeDialog;\n/* harmony export (immutable) */ __webpack_exports__[\"createHtmlDialog\"] = createHtmlDialog;\n/* harmony export (immutable) */ __webpack_exports__[\"openHtmlDialog\"] = openHtmlDialog;\n/* harmony export (immutable) */ __webpack_exports__[\"createWindowDialog\"] = createWindowDialog;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dialogManager\", function() { return dialogManager; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__dialog_less__ = __webpack_require__(\"vBks\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__dialog_less___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__dialog_less__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_underscore__ = __webpack_require__(\"X0GP\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_underscore___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lib_underscore__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lib_knockout__ = __webpack_require__(\"7fPx\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lib_knockout__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_logger__ = __webpack_require__(\"5wqq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_utils__ = __webpack_require__(\"YnTO\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_var__ = __webpack_require__(\"dTkA\");\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\n\n\nvar logger = Object(__WEBPACK_IMPORTED_MODULE_3__utils_logger__[\"a\" /* newLogger */])('ZDialog');\n\n/**\n * Creates new dialog with IFrame with given url\n * @param {string} url IFrame url\n * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n * @return {ZDialog}\n */\nfunction createIframeDialog(url) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\treturn newDialog(_extends({ content: url, type: 'iframe', __width: 800 }, options));\n}\n\n/**\n * Creates new dialog instance.\n * autoOpen option is false by default, so you should either call open() method\n * or override autoOpen option\n * @param {*} content HTML content. Can be either valid HTML string, or DOM node, or jQuery object\n * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n * @return {ZDialog} Dialog instance\n */\nfunction createHtmlDialog(content) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\treturn newDialog(_extends({ content: content, type: 'html', showCloseButton: true }, options));\n}\n\n/**\n * The same as {@link createHtmlDialog()} but with autoOpen enabled\n * @param {*} content HTML content\n * @param {object} options ZDialog options\n * @return {ZDialog} Dialog instance\n */\nfunction openHtmlDialog(content) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\treturn createHtmlDialog(content, _extends({ autoOpen: true }, options));\n}\n\n/**\n * Creates new dialog as new window with given url\n * @param {string} url IFrame url\n * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n * @return {ZDialog}\n */\nfunction createWindowDialog(url) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\treturn newDialog(_extends({ content: url, type: 'window' }, options));\n}\n\n// add some helper functions to jQuery\n$.extend($.fn, {\n\t/**\n * Calls {@link openHtmlDialog()} with source element as content\n * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n */\n\tzdialog: function zdialog() {\n\t\tvar options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n\t\tvar $el = $(this);\n\t\tvar $placeholder = $('
').insertAfter($el);\n\t\tvar isInDom = $el.closest(document.documentElement);\n\t\tvar isVisible = $el.css('display') != 'none';\n\t\tif (isInDom) {\n\t\t\t$el.detach();\n\t\t}\n\t\tif (!isVisible) {\n\t\t\t$el.show();\n\t\t}\n\t\tvar dialog = createHtmlDialog($el, options);\n\t\tdialog.onBeforeClose(function () {\n\t\t\t$el.detach();\n\t\t});\n\t\tdialog.onClose(function () {\n\t\t\tif (isInDom) {\n\t\t\t\t$el.insertAfter($placeholder);\n\t\t\t}\n\t\t\tif (!isVisible) {\n\t\t\t\t$el.hide();\n\t\t\t}\n\t\t\t$placeholder.remove();\n\t\t});\n\t\tdialog.open();\n\t\t$el.data('zdialogInstance', dialog);\n\t\treturn this;\n\t},\n\n\t/**\n * Returns ZDialog instance for given element (if the dialog was created with {@link jQuery.fn.zdialog} function)\n * @return {ZDialog}\n */\n\tzdialogInstance: function zdialogInstance() {\n\t\treturn this.data('zdialogInstance');\n\t}\n});\n\n// FOR TESTING\n/*import {MODAL_ASK_REDIRECT, MODAL_CRITICAL_NEWS, MODAL_LOGIN, MODAL_PACKAGE_INFO, MODAL_REVIEW} from \"../modals\";\n$('.logo').click(function(e) {\n\te.preventDefault();\n\tconst queue = [];\n\tconst showNext = () => {\n\t\tif (queue.length > 0) {\n\t\t\tqueue.shift()();\n\t\t}\n\t};\n\tconst onOpen = () => {};\n\t// queue.push(() => MODAL_REVIEW.show(104625).onOpen(showNext));\n\t// queue.push(() => MODAL_LOGIN.show().onOpen(showNext));\n\t// queue.push(() => MODAL_PACKAGE_INFO.show(1803110691).onOpen(showNext));\n\t// queue.push(() => MODAL_ASK_REDIRECT.show().onOpen(showNext));\n\t// queue.push(() => MODAL_CRITICAL_NEWS.show(312).onOpen(showNext));\n\tqueue.push(() => openHtmlDialog('
').onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
').onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
').onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
', {fullscreen: true}).onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
', {fullscreen: true}).onOpen(onOpen));\n\tshowNext();\n\n\t$(document).on('click', '.zdialog-html > div', showNext);\n});*/\n\n/**\n * @param {object} options\n * @return {ZDialog}\n */\nvar newDialog = function newDialog(options) {\n\treturn new ZDialog(options);\n};\n\n// force use newDialog function from top window\nvar key = '__zdialog_newDialog';\nif (Object(__WEBPACK_IMPORTED_MODULE_4__utils_utils__[\"b\" /* checkIsIframe */])()) {\n\tnewDialog = window.top[key];\n} else {\n\twindow.top[key] = newDialog;\n}\n\n/**\n * Dialog class\n */\n\nvar ZDialog = function () {\n\t/** @type {JQuery.Callbacks} */\n\n\t/** @type {JQuery.Callbacks} */\n\n\t/** @type {HeightWatcher} */\n\tfunction ZDialog(options) {\n\t\t_classCallCheck(this, ZDialog);\n\n\t\tthis._width = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable();\n\t\tthis._height = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable();\n\t\tthis._isModal = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(false);\n\t\tthis._isCloseBtnVisible = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(false);\n\t\tthis._isLoading = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(false);\n\t\tthis._isOpened = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(false);\n\t\tthis._isClosed = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(false);\n\t\tthis._isHidden = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(false);\n\t\tthis._contentHeight = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(0);\n\t\tthis._iframeHeight = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(0);\n\t\tthis._opened = false;\n\t\tthis._onOpen = $.Callbacks();\n\t\tthis._onClose = $.Callbacks();\n\t\tthis._onBeforeClose = $.Callbacks();\n\t\tthis._result = null;\n\n\t\tvar o = _extends({}, ZDialog.defaults, options);\n\n\t\tthis._name = o.name;\n\t\tthis._o = o;\n\t\tthis._isModal(!!o.modal);\n\t\tthis._isCloseBtnVisible(!!o.showCloseButton);\n\t\tthis._width(o.width);\n\t\tthis._height(o.height);\n\n\t\tif (o.onOpen) {\n\t\t\tthis._onOpen.add(o.onOpen);\n\t\t}\n\t\tif (o.onClose) {\n\t\t\tthis._onClose.add(o.onClose);\n\t\t}\n\n\t\tif (o.autoOpen) {\n\t\t\tthis.open();\n\t\t}\n\t}\n\t/** @type {JQuery.Callbacks} */\n\n\n\t// options\n\n\n\t_createClass(ZDialog, [{\n\t\tkey: \"open\",\n\t\tvalue: function open() {\n\t\t\tvar _this = this;\n\n\t\t\tif (this.isOpened) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._isClosed(false);\n\t\t\tthis._isHidden(false);\n\t\t\tthis._result = null;\n\t\t\tif (this.type === 'window') {\n\t\t\t\tthis._wnd = window.open(this.content);\n\t\t\t\tthis._wnd.addEventListener('DOMContentLoaded', function () {\n\t\t\t\t\treturn _this._handleWindowReady();\n\t\t\t\t});\n\t\t\t\tthis._wnd.onbeforeunload = function () {\n\t\t\t\t\tif (!_this.isClosed) {\n\t\t\t\t\t\t_this.close();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis._isLoading(true);\n\t\t\t} else if (!dialogManager.isRegistered(this)) {\n\t\t\t\tif (this.isFullScreen) {\n\t\t\t\t\tthis._width('');\n\t\t\t\t\tthis._height('');\n\t\t\t\t\tthis._contentHeight('');\n\t\t\t\t\tthis._iframeHeight('');\n\t\t\t\t}\n\t\t\t\tif (this.type === 'iframe') {\n\t\t\t\t\tthis._isLoading(true);\n\t\t\t\t\tif (!this.isAutoHeight) {\n\t\t\t\t\t\tthis._contentHeight(this.height);\n\t\t\t\t\t\tthis._iframeHeight(this.height);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._contentHeight('');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._contentHeight(this.height);\n\t\t\t\t\tthis._isOpened(true);\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\treturn _this._onOpen.fireWith(_this);\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t\tdialogManager.register(this);\n\t\t\t} else if (this._isHidden()) {\n\t\t\t\tdialogManager.show(this);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"close\",\n\t\tvalue: function close() {\n\t\t\tvar _this2 = this;\n\n\t\t\tif (this.isClosed) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._onBeforeClose.fireWith(this, [this._result]);\n\t\t\tthis._isOpened(false);\n\t\t\tthis._isHidden(false);\n\t\t\tthis._isClosed(true);\n\t\t\tif (this.type === 'window') {\n\t\t\t\tif (this._wnd) {\n\t\t\t\t\tthis._wnd.close();\n\t\t\t\t\twindow.top.focus();\n\t\t\t\t\tthis._wnd = null;\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\treturn _this2._onClose.fireWith(_this2, [_this2._result]);\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t} else if (dialogManager.isRegistered(this)) {\n\t\t\t\tif (this._heightWatcher) {\n\t\t\t\t\tthis._heightWatcher.off();\n\t\t\t\t}\n\t\t\t\tdialogManager.unregister(this);\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\treturn _this2._onClose.fireWith(_this2, [_this2._result]);\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"hide\",\n\t\tvalue: function hide() {\n\t\t\tif (this.type === 'window') {\n\t\t\t\tlogger.error('Method is not supported for current dialog type');\n\t\t\t} else if (dialogManager.isRegistered(this)) {\n\t\t\t\tthis._isOpened(false);\n\t\t\t\tthis._isHidden(true);\n\t\t\t\tdialogManager.hide(this);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"closeWithResult\",\n\t\tvalue: function closeWithResult(result) {\n\t\t\tthis.result = result;\n\t\t\tthis.close();\n\t\t}\n\t}, {\n\t\tkey: \"updatePosition\",\n\t\tvalue: function updatePosition() {\n\t\t\tif (this.type === 'iframe') {\n\t\t\t\tthis._contentHeight(this.iframeHeight);\n\t\t\t}\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: \"handleIframeLoad\",\n\t\tvalue: function handleIframeLoad(item, e) {\n\t\t\tvar _this3 = this;\n\n\t\t\tlogger.log('loaded', e);\n\t\t\tthis._isLoading(false);\n\n\t\t\tif (!this.isFullScreen && this.isAutoHeight) {\n\t\t\t\tthis._heightWatcher = new HeightWatcher(e.target, function (newHeight) {\n\t\t\t\t\tlogger.log(\"new height = \" + newHeight);\n\t\t\t\t\t_this3._iframeHeight(newHeight);\n\t\t\t\t\tif (!_this3.contentHeight) {\n\t\t\t\t\t\t_this3._contentHeight(newHeight);\n\t\t\t\t\t}\n\t\t\t\t\t_this3._isOpened(true);\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\treturn _this3._onOpen.fireWith(_this3);\n\t\t\t\t\t}, 0);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis._isOpened(true);\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\treturn _this3._onOpen.fireWith(_this3);\n\t\t\t\t}, 0);\n\t\t\t}\n\n\t\t\t// inject this instance to iframe\n\t\t\te.target.contentWindow.dialogInstance = this;\n\n\t\t\t// apply special classes\n\t\t\t$(e.target.contentWindow.document.body).toggleClass('zdialog-layout-modal', this.isModal).toggleClass('zdialog-layout-autoheight', this.isAutoHeight).toggleClass('zdialog-layout-fullscreen', this.isFullScreen);\n\n\t\t\t// triger event inside iframe\n\t\t\te.target.contentWindow.$(e.target.contentWindow.document).trigger('zdialog-shown');\n\t\t}\n\t}, {\n\t\tkey: \"_handleWindowReady\",\n\t\tvalue: function _handleWindowReady(e) {\n\t\t\tvar _this4 = this;\n\n\t\t\tlogger.log('loaded', e);\n\t\t\tthis._isLoading(false);\n\t\t\tthis._isOpened(true);\n\n\t\t\t// inject this instance to iframe\n\t\t\tthis._wnd.dialogInstance = this;\n\t\t\t$(this._wnd.document.body).addClass('zdialog-layout-window');\n\n\t\t\tsetTimeout(function () {\n\t\t\t\treturn _this4._onOpen.fireWith(_this4);\n\t\t\t}, 0);\n\t\t}\n\t}, {\n\t\tkey: \"handleCloseClick\",\n\t\tvalue: function handleCloseClick(item, e) {\n\t\t\tvar $target = $(e.target);\n\t\t\tif ($target.is('[data-dialog-result]')) {\n\t\t\t\tthis.result = $target.data('dialogResult');\n\t\t\t}\n\t\t\tthis.close();\n\t\t}\n\t}, {\n\t\tkey: \"handleBackdropClick\",\n\t\tvalue: function handleBackdropClick() {\n\t\t\tif (dialogManager.isTopmost(this) && !this.isModal) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"onOpen\",\n\t\tvalue: function onOpen(callback) {\n\t\t\tthis._onOpen.add(callback);\n\t\t}\n\t}, {\n\t\tkey: \"offOpen\",\n\t\tvalue: function offOpen(callback) {\n\t\t\tthis._onOpen.remove(callback);\n\t\t}\n\t}, {\n\t\tkey: \"onClose\",\n\t\tvalue: function onClose(callback) {\n\t\t\tthis._onClose.add(callback);\n\t\t}\n\t}, {\n\t\tkey: \"offClose\",\n\t\tvalue: function offClose(callback) {\n\t\t\tthis._onClose.remove(callback);\n\t\t}\n\t}, {\n\t\tkey: \"onBeforeClose\",\n\t\tvalue: function onBeforeClose(callback) {\n\t\t\tthis._onBeforeClose.add(callback);\n\t\t}\n\t}, {\n\t\tkey: \"offBeforeClose\",\n\t\tvalue: function offBeforeClose(callback) {\n\t\t\tthis._onBeforeClose.remove(callback);\n\t\t}\n\t}, {\n\t\tkey: \"name\",\n\t\tget: function get() {\n\t\t\treturn this._name;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: \"type\",\n\t\tget: function get() {\n\t\t\treturn this._o.type;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: \"content\",\n\t\tget: function get() {\n\t\t\treturn this._o.content;\n\t\t}\n\n\t\t/** @return {string} */\n\n\t}, {\n\t\tkey: \"title\",\n\t\tget: function get() {\n\t\t\treturn this._o.title;\n\t\t}\n\n\t\t/** @return {number} */\n\n\t}, {\n\t\tkey: \"width\",\n\t\tget: function get() {\n\t\t\treturn this._width();\n\t\t}\n\n\t\t/** @return {number|string} */\n\n\t}, {\n\t\tkey: \"height\",\n\t\tget: function get() {\n\t\t\treturn this._height();\n\t\t}\n\n\t\t/** @return {number|string} */\n\n\t}, {\n\t\tkey: \"minWidth\",\n\t\tget: function get() {\n\t\t\treturn this._o.minWidth;\n\t\t}\n\n\t\t/** @return {number|string} */\n\n\t}, {\n\t\tkey: \"maxWidth\",\n\t\tget: function get() {\n\t\t\treturn this._o.maxWidth;\n\t\t}\n\n\t\t/** @return {number|string} */\n\n\t}, {\n\t\tkey: \"contentWidth\",\n\t\tget: function get() {\n\t\t\treturn this._width();\n\t\t}\n\n\t\t/** @return {number|string} */\n\n\t}, {\n\t\tkey: \"contentHeight\",\n\t\tget: function get() {\n\t\t\treturn this._contentHeight();\n\t\t}\n\n\t\t/** @return {number} */\n\n\t}, {\n\t\tkey: \"iframeHeight\",\n\t\tget: function get() {\n\t\t\treturn this._iframeHeight();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isLoading\",\n\t\tget: function get() {\n\t\t\treturn this._isLoading();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isOpened\",\n\t\tget: function get() {\n\t\t\treturn this._isOpened();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isClosed\",\n\t\tget: function get() {\n\t\t\treturn this._isClosed();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isHidden\",\n\t\tget: function get() {\n\t\t\treturn this._isHidden();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isModal\",\n\t\tget: function get() {\n\t\t\treturn this._isModal();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isCloseBtnVisible\",\n\t\tget: function get() {\n\t\t\treturn this._isCloseBtnVisible();\n\t\t}\n\n\t\t/** @type {boolean} */\n\n\t}, {\n\t\tkey: \"isFullScreen\",\n\t\tget: function get() {\n\t\t\treturn this._o.fullscreen;\n\t\t}\n\n\t\t/** @type {boolean} */\n\n\t}, {\n\t\tkey: \"isAutoHeight\",\n\t\tget: function get() {\n\t\t\treturn Object(__WEBPACK_IMPORTED_MODULE_5__utils_var__[\"d\" /* asString */])(this.height) === '' || this.height === 'auto';\n\t\t}\n\n\t\t/** @return {*} */\n\n\t}, {\n\t\tkey: \"result\",\n\t\tget: function get() {\n\t\t\treturn this._result;\n\t\t}\n\n\t\t/**\n * @param {*} value\n */\n\t\t,\n\t\tset: function set(value) {\n\t\t\tthis._result = value;\n\t\t}\n\n\t\t/**\n * @return {*}\n */\n\n\t}, {\n\t\tkey: \"customData\",\n\t\tget: function get() {\n\t\t\treturn this._o.custom;\n\t\t}\n\n\t\t/**\n * @return {string}\n */\n\n\t}, {\n\t\tkey: \"cssClass\",\n\t\tget: function get() {\n\t\t\treturn Object(__WEBPACK_IMPORTED_MODULE_5__utils_var__[\"d\" /* asString */])(this._o.cssClass);\n\t\t}\n\t}]);\n\n\treturn ZDialog;\n}();\n\nZDialog.defaults = {\n\tname: '',\n\ttype: 'iframe', // iframe, html\n\tcontent: '',\n\ttitle: '',\n\tbuttons: [],\n\tmodal: false,\n\tautoOpen: false,\n\tshowCloseButton: false,\n\n\twidth: '',\n\theight: '',\n\tfullscreen: false,\n\tcssClass: '',\n\n\tcustom: null,\n\n\t//events\n\tonOpen: null,\n\tonClose: null\n};\n\nvar DialogManager = function () {\n\t/** @type {KnockoutObservableArray} */\n\tfunction DialogManager() {\n\t\tvar _this5 = this;\n\n\t\t_classCallCheck(this, DialogManager);\n\n\t\tthis._counter = 0;\n\t\tthis._dialogs = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observableArray([]);\n\t\tthis._isClosing = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.observable(false);\n\t\tthis._initialized = false;\n\t\tthis._wrapper = new WindowWrapper();\n\n\t\tthis._$html = $('html');\n\t\tthis._$body = $('body');\n\n\t\tthis._isLoading = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.pureComputed(function () {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_1_lib_underscore___default.a.any(_this5.dialogs, function (d) {\n\t\t\t\treturn d.isLoading;\n\t\t\t});\n\t\t});\n\n\t\tthis._visibleDialogs = __WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.pureComputed(function () {\n\t\t\treturn _this5.dialogs.filter(function (d) {\n\t\t\t\treturn !d.isHidden;\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n * @param {ZDialog} dialog\n */\n\n\n\t_createClass(DialogManager, [{\n\t\tkey: \"register\",\n\t\tvalue: function register(dialog) {\n\t\t\tif (this.isRegistered(dialog)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._dialogs.push(dialog);\n\t\t\tthis._checkMarkupAfterOpen();\n\t\t}\n\n\t\t/**\n * @param {ZDialog} dialog\n */\n\n\t}, {\n\t\tkey: \"unregister\",\n\t\tvalue: function unregister(dialog) {\n\t\t\tif (this._dialogs.remove(dialog).length === 0) {\n\t\t\t\t// nothing has been removed\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._checkMarkupAfterClose();\n\t\t}\n\n\t\t/**\n * @param {ZDialog} dialog\n */\n\n\t}, {\n\t\tkey: \"hide\",\n\t\tvalue: function hide(dialog) {\n\t\t\tif (this.isRegistered(dialog)) {\n\t\t\t\tthis._checkMarkupAfterClose();\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @param {ZDialog} dialog\n */\n\n\t}, {\n\t\tkey: \"show\",\n\t\tvalue: function show(dialog) {\n\t\t\tif (this.isRegistered(dialog)) {\n\t\t\t\tthis._checkMarkupAfterOpen();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"_checkMarkupAfterOpen\",\n\t\tvalue: function _checkMarkupAfterOpen() {\n\t\t\tif (this._isClosing()) {\n\t\t\t\tclearTimeout(this._timeout);\n\t\t\t\tthis._timeout = null;\n\t\t\t\tthis._isClosing(false);\n\t\t\t} else if (this.visibleDialogs.length === 1 && !this._initialized) {\n\t\t\t\tthis._wrapper.on();\n\n\t\t\t\tif (!this._$el) {\n\t\t\t\t\tthis._$el = $(\"
\");\n\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.applyBindings(this, this._$el[0]);\n\t\t\t\t\tthis._$el.appendTo('body');\n\t\t\t\t} else {\n\t\t\t\t\tthis._$el.show();\n\t\t\t\t}\n\t\t\t\tthis._initialized = true;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"_checkMarkupAfterClose\",\n\t\tvalue: function _checkMarkupAfterClose() {\n\t\t\tvar _this6 = this;\n\n\t\t\tif (!this._isClosing() && this.visibleDialogs.length === 0 && this._initialized) {\n\t\t\t\t// no dialogs left\n\t\t\t\tthis._isClosing(true);\n\t\t\t\tthis._timeout = setTimeout(function () {\n\t\t\t\t\t_this6._wrapper.off();\n\t\t\t\t\t// logger.log('remove container');\n\t\t\t\t\t_this6._$el.remove();\n\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.cleanNode(_this6._$el[0]);\n\t\t\t\t\t_this6._$el = null;\n\t\t\t\t\t_this6._initialized = false;\n\t\t\t\t\t_this6._isClosing(false);\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @param {ZDialog} dialog\n * @return {boolean}\n */\n\n\t}, {\n\t\tkey: \"isRegistered\",\n\t\tvalue: function isRegistered(dialog) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_1_lib_underscore___default.a.contains(this.dialogs, dialog);\n\t\t}\n\t}, {\n\t\tkey: \"handleBeforeRemove\",\n\t\tvalue: function handleBeforeRemove(node) {\n\t\t\tvar $node = $(node);\n\t\t\t$node.remove();\n\t\t\t/*if (node.nodeType === 3) {\n \t$node.remove();\n \treturn;\n }\n $node.addClass('zdialog-closing');\n setTimeout(() => $node.remove(), 300);*/\n\t\t}\n\n\t\t/** @return {ZDialog[]} */\n\n\t}, {\n\t\tkey: \"getTopmostDialog\",\n\t\tvalue: function getTopmostDialog() {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_1_lib_underscore___default.a.last(this.visibleDialogs.filter(function (d) {\n\t\t\t\treturn !d.isLoading;\n\t\t\t}));\n\t\t}\n\t}, {\n\t\tkey: \"isTopmost\",\n\t\tvalue: function isTopmost(dialog) {\n\t\t\treturn dialog === this.getTopmostDialog();\n\t\t}\n\n\t\t/**\n * @param {ZDialog} dialog\n */\n\n\t}, {\n\t\tkey: \"getDialogClass\",\n\t\tvalue: function getDialogClass(dialog) {\n\t\t\tvar css = [];\n\t\t\tif (dialog.isModal) {\n\t\t\t\tcss.push('zdialog-modal');\n\t\t\t}\n\t\t\tif (dialog.isFullScreen) {\n\t\t\t\tcss.push('zdialog-fullscreen');\n\t\t\t}\n\t\t\tif (this.isTopmost(dialog)) {\n\t\t\t\tcss.push('zdialog-topmost');\n\t\t\t} else if (this.visibleDialogs.length > 1) {\n\t\t\t\tcss.push('zdialog-overlapped');\n\t\t\t}\n\t\t\tif (dialog.isLoading) {\n\t\t\t\tcss.push('zdialog-loading');\n\t\t\t}\n\t\t\tif (dialog.isOpened) {\n\t\t\t\tcss.push('zdialog-opened');\n\t\t\t}\n\t\t\tif (dialog.isHidden) {\n\t\t\t\tcss.push('zdialog-hidden');\n\t\t\t}\n\t\t\tif (dialog.name) {\n\t\t\t\tcss.push('zdialog-instance-' + dialog.name);\n\t\t\t}\n\t\t\tif (dialog.cssClass) {\n\t\t\t\tcss.push(dialog.cssClass);\n\t\t\t}\n\t\t\treturn css.join(' ');\n\t\t}\n\t}, {\n\t\tkey: \"dialogs\",\n\t\tget: function get() {\n\t\t\treturn this._dialogs();\n\t\t}\n\n\t\t/** @return {ZDialog[]} */\n\n\t}, {\n\t\tkey: \"visibleDialogs\",\n\t\tget: function get() {\n\t\t\treturn this._visibleDialogs();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isLoading\",\n\t\tget: function get() {\n\t\t\treturn this._isLoading();\n\t\t}\n\n\t\t/** @return {boolean} */\n\n\t}, {\n\t\tkey: \"isClosing\",\n\t\tget: function get() {\n\t\t\treturn this._isClosing();\n\t\t}\n\t}]);\n\n\treturn DialogManager;\n}();\n\nvar HeightWatcher = function () {\n\tfunction HeightWatcher($iframe, callback) {\n\t\tvar _this7 = this;\n\n\t\t_classCallCheck(this, HeightWatcher);\n\n\t\tthis._currHeight = 0;\n\t\tthis._event = $.Callbacks();\n\n\t\tthis._event.add(callback);\n\t\tthis._ibody = $($iframe)[0].contentWindow.document.body;\n\t\t// this.updateHeight();\n\t\tsetTimeout(function () {\n\t\t\t_this7.updateHeight();\n\t\t\t_this7._interval = setInterval(function () {\n\t\t\t\treturn _this7.updateHeight();\n\t\t\t}, 50);\n\t\t}, 0);\n\t}\n\n\t_createClass(HeightWatcher, [{\n\t\tkey: \"updateHeight\",\n\t\tvalue: function updateHeight() {\n\t\t\t// const newHeight = this._ibody.offsetHeight;\n\t\t\tvar newHeight = this.getHeight();\n\t\t\tif (newHeight !== this._currHeight) {\n\t\t\t\tthis._currHeight = newHeight;\n\t\t\t\tthis._event.fire(newHeight);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"getHeight\",\n\t\tvalue: function getHeight() {\n\t\t\tvar height = this._ibody.scrollHeight;\n\t\t\t$(this._ibody).find('iframe:visible').filter(function () {\n\t\t\t\treturn $(this).css('visibility') !== 'hidden';\n\t\t\t}).each(function () {\n\t\t\t\tvar iHeight = $(this).height();\n\t\t\t\tif (iHeight > height) {\n\t\t\t\t\theight = iHeight;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn height;\n\t\t}\n\t}, {\n\t\tkey: \"off\",\n\t\tvalue: function off() {\n\t\t\tclearInterval(this._interval);\n\t\t\tthis._event.empty();\n\t\t}\n\t}]);\n\n\treturn HeightWatcher;\n}();\n\nvar WindowWrapper = function () {\n\tfunction WindowWrapper() {\n\t\t_classCallCheck(this, WindowWrapper);\n\n\t\tthis._$wnd = $(window);\n\t\tthis._$html = $('html');\n\t\tthis._$head = $('head');\n\t\tthis._scrollTop = 0;\n\t\tthis._scrollLeft = 0;\n\n\t\tthis._$scrollBarStyle = $(\"\").appendTo(this._$head);\n\t\tthis._$positionStyle = $(\"\").appendTo(this._$head);\n\t\t// this._useFixedLayout = /(iPod|iPhone|iPad)/.test(navigator.userAgent);\n\t\tthis._useFixedLayout = Object(__WEBPACK_IMPORTED_MODULE_4__utils_utils__[\"c\" /* isMobile */])(); ///(iPod|iPhone|iPad)/.test(navigator.userAgent);\n\t}\n\n\t_createClass(WindowWrapper, [{\n\t\tkey: \"on\",\n\t\tvalue: function on() {\n\t\t\tif (this._useFixedLayout) {\n\t\t\t\tthis._scrollTop = this._$wnd.scrollTop();\n\t\t\t\tthis._scrollLeft = this._$wnd.scrollLeft();\n\t\t\t\tthis._applyPositionStyle();\n\t\t\t\tthis._$wnd.scrollTop(0).scrollLeft(0);\n\t\t\t}\n\t\t\tthis._applyScrollbarStyle();\n\n\t\t\tthis._$html.toggleClass('zdialog-scrollbar-fix', this._hasScrollBar()).toggleClass('zdialog-position-fix', this._useFixedLayout).addClass('zdialog-open');\n\t\t}\n\t}, {\n\t\tkey: \"off\",\n\t\tvalue: function off() {\n\t\t\tthis._$html.removeClass('zdialog-scrollbar-fix').removeClass('zdialog-position-fix').removeClass('zdialog-open');\n\t\t\tif (this._useFixedLayout) {\n\t\t\t\tthis._$wnd.scrollTop(this._scrollTop).scrollLeft(this._scrollLeft);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"_applyScrollbarStyle\",\n\t\tvalue: function _applyScrollbarStyle() {\n\t\t\tvar scrollBarWidth = getScrollBarWidth();\n\t\t\t// language=CSS\n\t\t\tthis._$scrollBarStyle.html(\"\\n.zdialog-scrollbar-fix {\\n\\tpadding-right: \" + scrollBarWidth + \"px;\\n}\\n\");\n\t\t}\n\t}, {\n\t\tkey: \"_applyPositionStyle\",\n\t\tvalue: function _applyPositionStyle() {\n\t\t\t// language=CSS\n\t\t\tthis._$positionStyle.html(\"\\n.zdialog-position-fix {\\n\\tposition: fixed;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\ttop: -\" + this._scrollTop + \"px;\\n\\tleft: -\" + this._scrollLeft + \"px;\\n}\\n\");\n\t\t}\n\t}, {\n\t\tkey: \"_hasScrollBar\",\n\t\tvalue: function _hasScrollBar() {\n\t\t\treturn hasScrollBar(this._$html);\n\t\t}\n\t}]);\n\n\treturn WindowWrapper;\n}();\n\nfunction getScrollBarWidth() {\n\tvar $outer = $('
').css({ visibility: 'hidden', width: 100, overflow: 'scroll' }).appendTo('body'),\n\t widthWithScroll = $('
').css({ width: '100%' }).appendTo($outer).outerWidth();\n\t$outer.remove();\n\treturn 100 - widthWithScroll;\n}\n\nfunction hasScrollBar(el) {\n\tvar $el = $(el);\n\treturn $el.length > 0 ? $el[0].scrollHeight > $(window).height() : false;\n}\n\nvar dialogManager = new DialogManager();\n\n__WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.components.register('zdialog-wrapper', {\n\ttemplate: \"\\n
\\n
\\n
\\n\\t
\\n\\t\\t
\\n\\t
\\n
\\n\".trim()\n});\n__WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.components.register('zdialog', {\n\ttemplate: \"\\n
\\n
\\n\".trim()\n});\n__WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.components.register('zdialog-content-iframe', {\n\ttemplate: \"\\n
\\n\\n\".trim()\n});\n__WEBPACK_IMPORTED_MODULE_2_lib_knockout___default.a.components.register('zdialog-content-html', {\n\ttemplate: \"\\n\\n

\\n\\t\\n\\t
\\n

\\n\\n\\n
\\n\\n
\\n\".trim()\n});\n\n/***/ }),\n\n/***/ \"iOFR\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"l4Yc\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loading_less__ = __webpack_require__(\"iOFR\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loading_less___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__loading_less__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_utils__ = __webpack_require__(\"YnTO\");\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\nvar $el = void 0;\nvar counter = 0;\nvar iframeOverride = Object(__WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"b\" /* checkIsIframe */])() ? window.top.zde.loading : {};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (_extends({\n\t/**\n * Shows loading spinner\n */\n\tshow: function show() {\n\t\tif (!$el) {\n\t\t\t$el = $('
').appendTo('body');\n\t\t\t/*$el = $(`
\n
\n
\n
\n
`).appendTo('body');*/\n\t\t}\n\t\tcounter++;\n\t},\n\n\t/**\n * Shows loading spinner\n */\n\thide: function hide() {\n\t\tif ($el && --counter <= 0) {\n\t\t\t$el.addClass('zloader-closing');\n\t\t\t// let animation finish and remove the element\n\t\t\tvar $element = $el;\n\t\t\tsetTimeout(function () {\n\t\t\t\t$element.remove();\n\t\t\t}, 1000);\n\t\t\t$el = null;\n\t\t\tcounter = 0;\n\t\t}\n\t}\n\n}, iframeOverride));\n\n/***/ }),\n\n/***/ \"og09\":\n/***/ (function(module, exports) {\n\nmodule.exports = toastr;\n\n/***/ }),\n\n/***/ \"tXil\":\n/***/ (function(module, exports) {\n\nvar Smart = {};\r\n\r\n// Embed the Smart.Plurals source: \r\n\r\n\r\n// Create namespace:\r\nif (typeof Smart !== 'object')\r\n\tSmart = {};\r\n\r\n(function() {\r\n\r\n\tvar rules = {} // Map of language codes to rules\r\n\t\t, defaultCode = null\r\n\t\t, defaultRule = null;\r\n\r\n\tSmart.Plurals = {\r\n\t\t/**\r\n\t\t * Retrieves a plural rule, based on the supplied language code.\r\n\t\t * If no languageCode is specified, the default rule will be returned.\r\n\t\t *\r\n\t\t * A plural rule is a function that takes in a value\r\n\t\t * and determines whether it should be singular form, plural form,\r\n\t\t * or even other forms, depending on the number of choices.\r\n\t\t *\r\n\t\t * @param {String} [languageCode] - Optional - a 2-letter or 4-letter language code, or the full ruleName.\r\n\t\t * @returns {function({Number} value, {Number|Array} choices)}\r\n\t\t */\r\n\t\tgetRule: function(languageCode) {\r\n\t\t\t// Calling this with no parameters will return the default:\r\n\t\t\tif (!languageCode) {\r\n\t\t\t\treturn defaultRule || (defaultRule = this.getRule(defaultCode));\r\n\t\t\t}\r\n\r\n\t\t\t// Normalize:\r\n\t\t\tlanguageCode = ',' + languageCode.toLowerCase() + ',';\r\n\r\n\t\t\t// Search for an \"exact match\":\r\n\t\t\tfor (var languageCodes in rules) {\r\n\t\t\t\tif (!rules.hasOwnProperty(languageCodes)) continue;\r\n\r\n\t\t\t\tvar isExactMatch = (languageCodes.indexOf(languageCode) !== -1);\r\n\t\t\t\tif (isExactMatch) {\r\n\t\t\t\t\treturn rules[languageCodes];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// If we've got a 4-letter code, search for a \"generic match\" (2-letter code):\r\n\t\t\tvar dash = languageCode.indexOf('-');\r\n\t\t\tif (dash !== -1) {\r\n\t\t\t\tvar twoLetterCode = languageCode.substring(1, dash);\r\n\t\t\t\treturn this.getRule(twoLetterCode);\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\t,\r\n\t\t/**\r\n\t\t * Sets the default language rule.\r\n\t\t *\r\n\t\t * @param {String} languageCode - 2-letter or 4-letter language code\r\n\t\t */\r\n\t\tsetDefaultRule: function(languageCode) {\r\n\t\t\tdefaultCode = languageCode.toLowerCase();\r\n\t\t\tdefaultRule = null; // it's lazy loaded\r\n\t\t}\r\n\t\t,\r\n\t\t/**\r\n\t\t * Defines a language rule.\r\n\t\t *\r\n\t\t * @param {String} languageCodes - A comma-separated list of 2-letter or 4-letter language codes\r\n\t\t * @param {function({Number} value, {Number} choices)|String} pluralRule - The rule; see getRule for a description.\r\n\t\t */\r\n\t\tdefineRule: function(languageCodes, pluralRule) {\r\n\t\t\t// Normalize:\r\n\t\t\tlanguageCodes = ',' + languageCodes.toLowerCase() + ',';\r\n\r\n\t\t\tvar normalizedRule;\r\n\t\t\tif (typeof pluralRule === 'string') {\r\n\t\t\t\t// Allows for aliases\r\n\t\t\t\tnormalizedRule = this.getRule(pluralRule);\r\n\t\t\t} else {\r\n\t\t\t\tnormalizedRule = function (value, choices) {\r\n\t\t\t\t\tif (typeof choices === 'number') {\r\n\t\t\t\t\t\treturn pluralRule(value, choices);\r\n\t\t\t\t\t} else if (typeof choices.length === 'number') {\r\n\t\t\t\t\t\treturn choices[pluralRule(value, choices.length)];\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\trules[languageCodes] = normalizedRule;\r\n\r\n\t\t\tif (!defaultCode) {\r\n\t\t\t\tthis.setDefaultRule(languageCodes.split(',')[1]);\r\n\t\t\t}\r\n\r\n\t\t\treturn normalizedRule;\r\n\t\t}\r\n\t};\r\n\r\n})();\r\n\r\n/**\r\n * Germanic family\r\n * English, German, Dutch, Swedish, Danish, Norwegian, Faroese\r\n * Romanic family\r\n * Spanish, Portuguese, Italian, Bulgarian\r\n * Latin/Greek family\r\n * Greek\r\n * Finno-Ugric family\r\n * Finnish, Estonian\r\n * Semitic family\r\n * Hebrew\r\n * Artificial\r\n * Esperanto\r\n * Finno-Ugric family\r\n * Hungarian\r\n * Turkic/Altaic family\r\n * Turkish\r\n */\r\nSmart.Plurals.defineRule('english,en,de,nl,sv,da,no,nn,nb,fo,es,pt,it,bg,el,fi,et,he,eo,hu,tr',\r\n\tfunction pluralRule_english(value, choices) {\r\n\t\t// singular used for 1\r\n\t\t// special cases for 0 and negative\r\n\t\tvar singular = (value === 1);\r\n\t\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\t\tvar zero = (value === 0);\r\n\t\tif (choices === 3) return (zero ? 0 : singular ? 1 : 2);\r\n\r\n\t\tvar negative = (value < 0);\r\n\t\treturn (negative ? 0 : zero ? 1 : singular ? 2 : 3);\r\n\t}\r\n);\r\n\r\n/**\r\n * Slavic family\r\n * Czech, Slovak\r\n */\r\nSmart.Plurals.defineRule('czech,cs,sk', function pluralRule_czech(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for 2-4\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value >= 2 && value <= 4);\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Romanic family\r\n * French, Brazilian Portuguese\r\n */\r\nSmart.Plurals.defineRule('french,fr,pt-br', function pluralRule_french(value, choices) {\r\n\t// singular used for 0 and 1\r\n\tvar singular = (value === 0 || value === 1);\r\n\treturn (singular ? 0 : 1);\r\n});\r\n\r\n/**\r\n * Celtic\r\n * Gaeilge (Irish)\r\n */\r\nSmart.Plurals.defineRule('irish,ga', function pluralRule_irish(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for 2\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\tvar two = (value === 2);\r\n\treturn (singular ? 0 : two ? 1 : 2);\r\n});\r\n\r\n/**\r\n * Baltic family\r\n * Latvian\r\n */\r\nSmart.Plurals.defineRule('latvian,lv', function pluralRule_latvian(value, choices) {\r\n\t// singular used for 1, 21, 31, 41... -- but not 11, 111, 211, 311, 411...\r\n\t// special case for 0\r\n\tvar singular = (value % 10 === 1 && value % 100 != 11);\r\n\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\tvar zero = (value === 0);\r\n\treturn (zero ? 0 : singular ? 1 : 2);\r\n});\r\n\r\n/**\r\n * Baltic family\r\n * Lithuanian\r\n */\r\nSmart.Plurals.defineRule('lithuanian,lt', function pluralRule_lithuanian(value, choices) {\r\n\t// singular used for numbers ending in 1 (1, 21, 31, 41...)\r\n\t// special case for numbers ending in 12-19 (12-19, 112-119, 212-219...)\r\n\tvar singular = (value % 10 === 1 && value % 100 != 11);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value % 100 >= 12 && value % 100 <= 19);\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Slavic family\r\n * Polish\r\n */\r\nSmart.Plurals.defineRule('polish,pl', function pluralRule_polish(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for numbers ending in 2-4, except for 12-14 (2-4, 22-24, 32-34...)\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value % 10 >= 2 && value % 10 <= 4 && (value % 100 < 10 || value % 100 >= 20));\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Romanic family\r\n * Romanian\r\n */\r\nSmart.Plurals.defineRule('romanian,ro', function pluralRule_romanian(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for 0 and numbers ending in 01-19 (0, 2-19, 101-119, 201-219...)\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\tvar few = (value === 0 || (value % 100 >= 1 && value % 100 <= 19));\r\n\treturn (singular ? 0 : few ? 1 : 2);\r\n});\r\n\r\n/**\r\n * Slavic family\r\n * Russian, Ukrainian, Serbian, Croatian\r\n */\r\nSmart.Plurals.defineRule('russian,ru,uk,sr,hr', function pluralRule_russian(value, choices) {\r\n\t// singular used for numbers ending in 1, except 11 (1, 21, 31...)\r\n\t// special case for numbers ending in 2-4, except 12-14 (2-4, 22-24, 32-34...)\r\n\t// numbers ending in 11-14 use plural (11-14, 111-114, 211-214...)\r\n\tvar singular = (value % 10 === 1 && value % 100 != 11);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value % 10 >= 2 && value % 10 <= 4 && (value % 100 < 10 || value % 100 >= 20));\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Slavic family\r\n * Slovenian\r\n */\r\nSmart.Plurals.defineRule('slovenian,sl', function pluralRule_slovenian(value, choices) {\r\n\t// singular used for numbers ending in 01 (1, 101, 201...)\r\n\t// special case for numbers ending in 02 (2, 102, 202...)\r\n\t// special case for numbers ending in 03-04 (3-4, 103-104, 203-204...)\r\n\tvar singular = (value % 100 === 1);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar two = (value % 100 === 2);\r\n\tif (choices === 3) return singular ? 0 : two ? 1 : 2;\r\n\r\n\tvar few = (value % 100 === 3 || value % 100 === 4);\r\n\treturn singular ? 0 : two ? 1 : few ? 2 : 3;\r\n});\r\n\r\n\r\nmodule.exports = Smart;\r\n\n\n/***/ }),\n\n/***/ \"uM7G\":\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n\\t
\\n\\t\\tУважаемые клиенты!\\n\\t
\\n
\\n
{{html text}}
\\n
\\n\\t\\n\\t\\n
\"\n\n/***/ }),\n\n/***/ \"vBks\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"xClS\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * jquery.mask.js\n * @version: v1.14.13\n * @author: Igor Escobar\n *\n * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin\n *\n * Copyright (c) 2012 Igor Escobar http://igorescobar.com\n *\n * The MIT License (http://www.opensource.org/licenses/mit-license.php)\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* jshint laxbreak: true */\n/* jshint maxcomplexity:17 */\n/* global define */\n\n// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere.\n// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js\n(function (factory, jQuery, Zepto) {\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(\"0iPh\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports === 'object') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery || Zepto);\n }\n\n}(function ($) {\n 'use strict';\n\n var Mask = function (el, mask, options) {\n\n var p = {\n invalid: [],\n getCaret: function () {\n try {\n var sel,\n pos = 0,\n ctrl = el.get(0),\n dSel = document.selection,\n cSelStart = ctrl.selectionStart;\n\n // IE Support\n if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) {\n sel = dSel.createRange();\n sel.moveStart('character', -p.val().length);\n pos = sel.text.length;\n }\n // Firefox support\n else if (cSelStart || cSelStart === '0') {\n pos = cSelStart;\n }\n\n return pos;\n } catch (e) {}\n },\n setCaret: function(pos) {\n try {\n if (el.is(':focus')) {\n var range, ctrl = el.get(0);\n\n // Firefox, WebKit, etc..\n if (ctrl.setSelectionRange) {\n ctrl.setSelectionRange(pos, pos);\n } else { // IE\n range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n } catch (e) {}\n },\n events: function() {\n el\n .on('keydown.mask', function(e) {\n el.data('mask-keycode', e.keyCode || e.which);\n el.data('mask-previus-value', el.val());\n el.data('mask-previus-caret-pos', p.getCaret());\n p.maskDigitPosMapOld = p.maskDigitPosMap;\n })\n .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour)\n .on('paste.mask drop.mask', function() {\n setTimeout(function() {\n el.keydown().keyup();\n }, 100);\n })\n .on('change.mask', function(){\n el.data('changed', true);\n })\n .on('blur.mask', function(){\n if (oldValue !== p.val() && !el.data('changed')) {\n el.trigger('change');\n }\n el.data('changed', false);\n })\n // it's very important that this callback remains in this position\n // otherwhise oldValue it's going to work buggy\n .on('blur.mask', function() {\n oldValue = p.val();\n })\n // select all text on focus\n .on('focus.mask', function (e) {\n if (options.selectOnFocus === true) {\n $(e.target).select();\n }\n })\n // clear the value if it not complete the mask\n .on('focusout.mask', function() {\n if (options.clearIfNotMatch && !regexMask.test(p.val())) {\n p.val('');\n }\n });\n },\n getRegexMask: function() {\n var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r;\n\n for (var i = 0; i < mask.length; i++) {\n translation = jMask.translation[mask.charAt(i)];\n\n if (translation) {\n\n pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, '');\n optional = translation.optional;\n recursive = translation.recursive;\n\n if (recursive) {\n maskChunks.push(mask.charAt(i));\n oRecursive = {digit: mask.charAt(i), pattern: pattern};\n } else {\n maskChunks.push(!optional && !recursive ? pattern : (pattern + '?'));\n }\n\n } else {\n maskChunks.push(mask.charAt(i).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n }\n }\n\n r = maskChunks.join('');\n\n if (oRecursive) {\n r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?')\n .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern);\n }\n\n return new RegExp(r);\n },\n destroyEvents: function() {\n el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask '));\n },\n val: function(v) {\n var isInput = el.is('input'),\n method = isInput ? 'val' : 'text',\n r;\n\n if (arguments.length > 0) {\n if (el[method]() !== v) {\n el[method](v);\n }\n r = el;\n } else {\n r = el[method]();\n }\n\n return r;\n },\n calculateCaretPosition: function() {\n var oldVal = el.data('mask-previus-value') || '',\n newVal = p.getMasked(),\n caretPosNew = p.getCaret();\n if (oldVal !== newVal) {\n var caretPosOld = el.data('mask-previus-caret-pos') || 0,\n newValL = newVal.length,\n oldValL = oldVal.length,\n maskDigitsBeforeCaret = 0,\n maskDigitsAfterCaret = 0,\n maskDigitsBeforeCaretAll = 0,\n maskDigitsBeforeCaretAllOld = 0,\n i = 0;\n\n for (i = caretPosNew; i < newValL; i++) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsAfterCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsBeforeCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (p.maskDigitPosMap[i]) {\n maskDigitsBeforeCaretAll++;\n }\n }\n\n for (i = caretPosOld - 1; i >= 0; i--) {\n if (p.maskDigitPosMapOld[i]) {\n maskDigitsBeforeCaretAllOld++;\n }\n }\n\n // if the cursor is at the end keep it there\n if (caretPosNew > oldValL) {\n caretPosNew = newValL * 10;\n } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) {\n if (!p.maskDigitPosMapOld[caretPosNew]) {\n var caretPos = caretPosNew;\n caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll;\n caretPosNew -= maskDigitsBeforeCaret;\n if (p.maskDigitPosMap[caretPosNew]) {\n caretPosNew = caretPos;\n }\n }\n }\n else if (caretPosNew > caretPosOld) {\n caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld;\n caretPosNew += maskDigitsAfterCaret;\n }\n }\n return caretPosNew;\n },\n behaviour: function(e) {\n e = e || window.event;\n p.invalid = [];\n\n var keyCode = el.data('mask-keycode');\n\n if ($.inArray(keyCode, jMask.byPassKeys) === -1) {\n var newVal = p.getMasked(),\n caretPos = p.getCaret();\n\n // this is a compensation to devices/browsers that don't compensate\n // caret positioning the right way\n setTimeout(function() {\n p.setCaret(p.calculateCaretPosition());\n }, 10);\n\n p.val(newVal);\n p.setCaret(caretPos);\n return p.callbacks(e);\n }\n },\n getMasked: function(skipMaskChars, val) {\n var buf = [],\n value = val === undefined ? p.val() : val + '',\n m = 0, maskLen = mask.length,\n v = 0, valLen = value.length,\n offset = 1, addMethod = 'push',\n resetPos = -1,\n maskDigitCount = 0,\n maskDigitPosArr = [],\n lastMaskChar,\n check;\n\n if (options.reverse) {\n addMethod = 'unshift';\n offset = -1;\n lastMaskChar = 0;\n m = maskLen - 1;\n v = valLen - 1;\n check = function () {\n return m > -1 && v > -1;\n };\n } else {\n lastMaskChar = maskLen - 1;\n check = function () {\n return m < maskLen && v < valLen;\n };\n }\n\n var lastUntranslatedMaskChar;\n while (check()) {\n var maskDigit = mask.charAt(m),\n valDigit = value.charAt(v),\n translation = jMask.translation[maskDigit];\n\n if (translation) {\n if (valDigit.match(translation.pattern)) {\n buf[addMethod](valDigit);\n if (translation.recursive) {\n if (resetPos === -1) {\n resetPos = m;\n } else if (m === lastMaskChar && m !== resetPos) {\n m = resetPos - offset;\n }\n\n if (lastMaskChar === resetPos) {\n m -= offset;\n }\n }\n m += offset;\n } else if (valDigit === lastUntranslatedMaskChar) {\n // matched the last untranslated (raw) mask character that we encountered\n // likely an insert offset the mask character from the last entry; fall\n // through and only increment v\n maskDigitCount--;\n lastUntranslatedMaskChar = undefined;\n } else if (translation.optional) {\n m += offset;\n v -= offset;\n } else if (translation.fallback) {\n buf[addMethod](translation.fallback);\n m += offset;\n v -= offset;\n } else {\n p.invalid.push({p: v, v: valDigit, e: translation.pattern});\n }\n v += offset;\n } else {\n if (!skipMaskChars) {\n buf[addMethod](maskDigit);\n }\n\n if (valDigit === maskDigit) {\n maskDigitPosArr.push(v);\n v += offset;\n } else {\n lastUntranslatedMaskChar = maskDigit;\n maskDigitPosArr.push(v + maskDigitCount);\n maskDigitCount++;\n }\n\n m += offset;\n }\n }\n\n var lastMaskCharDigit = mask.charAt(lastMaskChar);\n if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) {\n buf.push(lastMaskCharDigit);\n }\n\n var newVal = buf.join('');\n p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen);\n return newVal;\n },\n mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) {\n var maskDiff = options.reverse ? newVal.length - valLen : 0;\n p.maskDigitPosMap = {};\n for (var i = 0; i < maskDigitPosArr.length; i++) {\n p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1;\n }\n },\n callbacks: function (e) {\n var val = p.val(),\n changed = val !== oldValue,\n defaultArgs = [val, e, el, options],\n callback = function(name, criteria, args) {\n if (typeof options[name] === 'function' && criteria) {\n options[name].apply(this, args);\n }\n };\n\n callback('onChange', changed === true, defaultArgs);\n callback('onKeyPress', changed === true, defaultArgs);\n callback('onComplete', val.length === mask.length, defaultArgs);\n callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]);\n }\n };\n\n el = $(el);\n var jMask = this, oldValue = p.val(), regexMask;\n\n mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask;\n\n // public methods\n jMask.mask = mask;\n jMask.options = options;\n jMask.remove = function() {\n var caret = p.getCaret();\n p.destroyEvents();\n p.val(jMask.getCleanVal());\n p.setCaret(caret);\n return el;\n };\n\n // get value without mask\n jMask.getCleanVal = function() {\n return p.getMasked(true);\n };\n\n // get masked value without the value being in the input or element\n jMask.getMaskedVal = function(val) {\n return p.getMasked(false, val);\n };\n\n jMask.init = function(onlyMask) {\n onlyMask = onlyMask || false;\n options = options || {};\n\n jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch;\n jMask.byPassKeys = $.jMaskGlobals.byPassKeys;\n jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation);\n\n jMask = $.extend(true, {}, jMask, options);\n\n regexMask = p.getRegexMask();\n\n if (onlyMask) {\n p.events();\n p.val(p.getMasked());\n } else {\n if (options.placeholder) {\n el.attr('placeholder' , options.placeholder);\n }\n\n // this is necessary, otherwise if the user submit the form\n // and then press the \"back\" button, the autocomplete will erase\n // the data. Works fine on IE9+, FF, Opera, Safari.\n if (el.data('mask')) {\n el.attr('autocomplete', 'off');\n }\n\n // detect if is necessary let the user type freely.\n // for is a lot faster than forEach.\n for (var i = 0, maxlength = true; i < mask.length; i++) {\n var translation = jMask.translation[mask.charAt(i)];\n if (translation && translation.recursive) {\n maxlength = false;\n break;\n }\n }\n\n if (maxlength) {\n el.attr('maxlength', mask.length);\n }\n\n p.destroyEvents();\n p.events();\n\n var caret = p.getCaret();\n p.val(p.getMasked());\n p.setCaret(caret);\n }\n };\n\n jMask.init(!el.is('input'));\n };\n\n $.maskWatchers = {};\n var HTMLAttributes = function () {\n var input = $(this),\n options = {},\n prefix = 'data-mask-',\n mask = input.attr('data-mask');\n\n if (input.attr(prefix + 'reverse')) {\n options.reverse = true;\n }\n\n if (input.attr(prefix + 'clearifnotmatch')) {\n options.clearIfNotMatch = true;\n }\n\n if (input.attr(prefix + 'selectonfocus') === 'true') {\n options.selectOnFocus = true;\n }\n\n if (notSameMaskObject(input, mask, options)) {\n return input.data('mask', new Mask(this, mask, options));\n }\n },\n notSameMaskObject = function(field, mask, options) {\n options = options || {};\n var maskObject = $(field).data('mask'),\n stringify = JSON.stringify,\n value = $(field).val() || $(field).text();\n try {\n if (typeof mask === 'function') {\n mask = mask(value);\n }\n return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask;\n } catch (e) {}\n },\n eventSupported = function(eventName) {\n var el = document.createElement('div'), isSupported;\n\n eventName = 'on' + eventName;\n isSupported = (eventName in el);\n\n if ( !isSupported ) {\n el.setAttribute(eventName, 'return;');\n isSupported = typeof el[eventName] === 'function';\n }\n el = null;\n\n return isSupported;\n };\n\n $.fn.mask = function(mask, options) {\n options = options || {};\n var selector = this.selector,\n globals = $.jMaskGlobals,\n interval = globals.watchInterval,\n watchInputs = options.watchInputs || globals.watchInputs,\n maskFunction = function() {\n if (notSameMaskObject(this, mask, options)) {\n return $(this).data('mask', new Mask(this, mask, options));\n }\n };\n\n $(this).each(maskFunction);\n\n if (selector && selector !== '' && watchInputs) {\n clearInterval($.maskWatchers[selector]);\n $.maskWatchers[selector] = setInterval(function(){\n $(document).find(selector).each(maskFunction);\n }, interval);\n }\n return this;\n };\n\n $.fn.masked = function(val) {\n return this.data('mask').getMaskedVal(val);\n };\n\n $.fn.unmask = function() {\n clearInterval($.maskWatchers[this.selector]);\n delete $.maskWatchers[this.selector];\n return this.each(function() {\n var dataMask = $(this).data('mask');\n if (dataMask) {\n dataMask.remove().removeData('mask');\n }\n });\n };\n\n $.fn.cleanVal = function() {\n return this.data('mask').getCleanVal();\n };\n\n $.applyDataMask = function(selector) {\n selector = selector || $.jMaskGlobals.maskElements;\n var $selector = (selector instanceof $) ? selector : $(selector);\n $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes);\n };\n\n var globals = {\n maskElements: 'input,td,span,div',\n dataMaskAttr: '*[data-mask]',\n dataMask: true,\n watchInterval: 300,\n watchInputs: true,\n // old versions of chrome dont work great with input event\n useInput: !/Chrome\\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'),\n watchDataMask: false,\n byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],\n translation: {\n '0': {pattern: /\\d/},\n '9': {pattern: /\\d/, optional: true},\n '#': {pattern: /\\d/, recursive: true},\n 'A': {pattern: /[a-zA-Z0-9]/},\n 'S': {pattern: /[a-zA-Z]/}\n }\n };\n\n $.jMaskGlobals = $.jMaskGlobals || {};\n globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals);\n\n // looking for inputs with data-mask attribute\n if (globals.dataMask) {\n $.applyDataMask();\n }\n\n setInterval(function() {\n if ($.jMaskGlobals.watchDataMask) {\n $.applyDataMask();\n }\n }, globals.watchInterval);\n}, window.jQuery, window.Zepto));\n\n\n/***/ }),\n\n/***/ \"xyBK\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (immutable) */ __webpack_exports__[\"init\"] = init;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__styles_index_less__ = __webpack_require__(\"TkzU\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__styles_index_less___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__styles_index_less__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__core_utils_url__ = __webpack_require__(\"FYi7\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_jquery_mask_plugin__ = __webpack_require__(\"xClS\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_jquery_mask_plugin___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_jquery_mask_plugin__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__core_widgets_loading__ = __webpack_require__(\"l4Yc\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_widgets_notifier__ = __webpack_require__(\"2uje\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_widgets_popup__ = __webpack_require__(\"ZuML\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_utils_lang__ = __webpack_require__(\"RaK1\");\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\n\n\n\nvar badDomains = ['mail.ru', 'list.ru', 'bk.ru', 'inbox.ru', 'mail.ua'];\nvar $wrap = $('#wrapSignup');\nvar $form = $wrap.find('form');\nvar recaptchaEnabled = false;\n\nfunction init(options) {\n\tvar o = _extends({\n\t\tautoplayVideo: false,\n\t\trecaptchaEnabled: false\n\t}, options);\n\n\trecaptchaEnabled = o.recaptchaEnabled;\n\n\tvar isProcessing = false;\n\tinitForm($form, function () {\n\t\tif (isProcessing) {\n\t\t\treturn;\n\t\t}\n\t\tisProcessing = true;\n\t\tcheckBadEmail($form).then(function () {\n\t\t\treturn doSubmit($form);\n\t\t}).then(function (response) {\n\t\t\tlocation.href = response.redirect || Object(__WEBPACK_IMPORTED_MODULE_1__core_utils_url__[\"g\" /* siteUrl */])('');\n\t\t}).always(function () {\n\t\t\tisProcessing = false;\n\t\t\tresetRecaptcha();\n\t\t});\n\t});\n\n\t$form.find('select[rel=chosen]').chosen();\n\n\t$(function () {\n\t\tinitPlayer(o.autoplayVideo);\n\t});\n\n\twindow.recaptchaCallback = function () {\n\t\t$form.submit();\n\t};\n}\n\nfunction initForm($form, submitHandler) {\n\t$form.validate({\n\t\tignore: '[type=hidden]',\n\t\tsubmitHandler: submitHandler,\n\t\tinvalidHandler: function invalidHandler() {\n\t\t\tresetRecaptcha();\n\t\t},\n\t\thighlight: function highlight(element, errorClass, validClass) {\n\t\t\t$(element).closest('.form-row').removeClass('error valid').addClass(errorClass).removeClass(validClass);\n\t\t},\n\t\tunhighlight: function unhighlight(element, errorClass, validClass) {\n\t\t\t$(element).closest('.form-row').removeClass('error valid').removeClass(errorClass).addClass(validClass);\n\t\t}\n\t});\n}\n\nfunction initPlayer() {\n\tvar autoplay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\tvar $regVideo = $('#reg_video');\n\tvar player = $regVideo[0];\n\tplayer.volume = 0.5;\n\tvar paused = !autoplay;\n\tif (autoplay) {\n\t\tplayer.play();\n\t}\n\t$regVideo.click(function () {\n\t\tif (paused) {\n\t\t\tplayer.play();\n\t\t} else {\n\t\t\tplayer.pause();\n\t\t}\n\t\tpaused = !paused;\n\t});\n}\n\n/** @return {JQuery.Promise} */\nfunction checkBadEmail($form) {\n\t/** @type {JQuery.Deferred} */\n\tvar def = $.Deferred();\n\tvar $emailField = $form.find('[name=reg_email]');\n\tvar email = $emailField.val();\n\tvar domain = email.toLowerCase().split('@', 2)[1].replace(/\\s/g, '');\n\tif (badDomains.indexOf(domain) == -1) {\n\t\tdef.resolve();\n\t} else {\n\t\tvar text = Object(__WEBPACK_IMPORTED_MODULE_6__core_utils_lang__[\"a\" /* lang */])('txt_email_popup', {\n\t\t\tdomains_list: badDomains.map(function (d) {\n\t\t\t\treturn d.toUpperCase();\n\t\t\t}).join(', '),\n\t\t\tdomain: domain.toUpperCase()\n\t\t});\n\t\tvar template = __webpack_require__(\"uM7G\");\n\t\tvar content = $.tmpl(template, { text: text });\n\t\tObject(__WEBPACK_IMPORTED_MODULE_5__core_widgets_popup__[\"a\" /* openPopup */])(content, {\n\t\t\tcssClass: 'bad-email-popup',\n\t\t\tonClose: function onClose(result) {\n\t\t\t\tif (result == 'ok') {\n\t\t\t\t\tdef.resolve();\n\t\t\t\t} else if (result == 'cancel') {\n\t\t\t\t\t$emailField.val('').focus();\n\t\t\t\t\t$form.validate().element($emailField);\n\t\t\t\t\tdef.reject();\n\t\t\t\t} else {\n\t\t\t\t\tdef.reject();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn def.promise();\n}\n\n/** @return {JQuery.Promise} */\nfunction doSubmit($form) {\n\t__WEBPACK_IMPORTED_MODULE_3__core_widgets_loading__[\"a\" /* default */].show();\n\treturn $.post($form.attr('action'), $form.serialize(), null, 'json').always(__WEBPACK_IMPORTED_MODULE_3__core_widgets_loading__[\"a\" /* default */].hide).fail(__WEBPACK_IMPORTED_MODULE_4__core_widgets_notifier__[\"a\" /* Notifier */].errorXHR).then(function (response) {\n\t\tresponse = response || {};\n\t\tvar def = $.Deferred();\n\t\tif (!response.success) {\n\t\t\tif (response.errors) {\n\t\t\t\t$form.validate().showErrors(response.errors);\n\t\t\t} else {\n\t\t\t\t__WEBPACK_IMPORTED_MODULE_4__core_widgets_notifier__[\"a\" /* Notifier */].error(response.message);\n\t\t\t}\n\t\t\tdef.reject();\n\t\t} else {\n\t\t\tif (window.ga) {\n\t\t\t\tga('send', 'event', {\n\t\t\t\t\teventCategory: 'registration',\n\t\t\t\t\teventAction: 'send_info'\n\t\t\t\t});\n\t\t\t}\n\t\t\tdef.resolve(response);\n\t\t}\n\t\treturn def.promise();\n\t});\n}\n\nfunction resetRecaptcha() {\n\tif (recaptchaEnabled) {\n\t\tgrecaptcha.reset();\n\t}\n}\n\n$.validator.messages.tel = 'Пожалуйста, введите корректный номер телефона.';\n$.validator.methods.tel = function (value, element) {\n\t// a bit hacky validation method:\n\t// grab unmasked value from input using cleanVal() and count digits,\n\t// must be 10 for ukrainian and russian phone numbers (without country code)\n\treturn this.optional(element) || $(element).cleanVal().length == 10;\n};\n\n/***/ })\n\n},[18]);\n\n\n// WEBPACK FOOTER //\n// auth.min.js","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 0iPh\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 21 24 25 26 30 31","import toastr from 'lib/toastr';\nimport {checkIsIframe} from \"../utils/utils\";\nimport {orDefault} from \"../utils/var\";\n\nconst t = checkIsIframe() ? window.top.toastr : toastr;\n\nconst MSG_ERROR = 'Ошибка';\nconst MSG_ERROR_XHR = 'Не удалось выполнить запрос';\n\nexport class Notifier {\n\tstatic error(message = null, title = null, options = null) {\n\t\t// Extend timeout for errors to 10 seconds by default\n\t\tconst timeOut = options ? orDefault(options.timeOut, 10000) : 10000;\n\t\tt.error(orDefault(message, MSG_ERROR), title, { timeOut, ...options });\n\t}\n\n\tstatic errorXHR(jqXHR, textStatus, errorThrown) {\n\t\tif(textStatus != 'abort') {\n\t\t\tNotifier.error(MSG_ERROR_XHR);\n\t\t}\n\t}\n\n\tstatic info(message, title = null, options = null) {\n\t\tt.info(message, title, {...options});\n\t}\n\n\tstatic success(message, title = null, options = null) {\n\t\tt.success(message, title, {...options});\n\t}\n\n\tstatic warning(message, title = null, options = null) {\n\t\tt.warning(message, title, {...options});\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./core/widgets/notifier.js","const LEVEL_DEBUG = 0;\nconst LEVEL_INFO = 1;\nconst LEVEL_WARN = 2;\nconst LEVEL_ERROR = 3;\n\nconst LEVELS = ['debug', 'info', 'warn', 'error'];\n\nlet defaultLevel = window.IS_PRODUCTION ? LEVEL_WARN : LEVEL_DEBUG;\n\n/**\n * Creates new logger instance with default level.\n * @param {string|null} name\n * @return {MyLogger}\n */\nexport function newLogger(name = null) {\n\treturn new MyLogger(name, defaultLevel);\n}\n\n/**\n * Sets level for new loggers.\n * @param {number} level\n */\nexport function setDefaultLevel(level) {\n\tdefaultLevel = level;\n}\n\nclass MyLogger {\n\t_name = '';\n\t_level = -1;\n\t_dummy = () => {\n\t};\n\n\tconstructor(name, level) {\n\t\tthis._name = name;\n\t\tthis.setLevel(level);\n\t}\n\n\tsetLevel(level) {\n\t\tlevel = Number.isInteger(level) ? level : LEVELS.indexOf(level);\n\t\tthis._level = level;\n\n\t\tconst name = this._name ? '[' + this._name + ']' : null;\n\t\tconst bind = (condition, methodName) => {\n\t\t\tif (!condition || !console[methodName]) return this._dummy;\n\t\t\treturn name ? console[methodName].bind(console, name) : console[methodName].bind(console);\n\t\t};\n\t\tconst bindSimple = (condition, methodName) => {\n\t\t\treturn condition && console[methodName] ? console[methodName].bind(console) : this._dummy;\n\t\t};\n\n\t\t[\n\t\t\t['log', LEVEL_DEBUG],\n\t\t\t['info', LEVEL_INFO],\n\t\t\t['warn', LEVEL_WARN],\n\t\t\t['error', LEVEL_ERROR],\n\t\t].forEach(i => {\n\t\t\tconst [method, lvl] = i;\n\t\t\tthis[method] = bind(level <= lvl, method);\n\t\t});\n\n\t\t[\n\t\t\t'time',\n\t\t\t'timeEnd',\n\t\t\t'profile',\n\t\t\t'profileEnd',\n\t\t].forEach(method => {\n\t\t\tthis[method] = bindSimple(level <= LEVEL_DEBUG, method);\n\t\t});\n\t}\n\n\t/** The same as {@link Console.log} */\n\tlog(args) {\n\t}\n\n\t/** The same as {@link Console.info} */\n\tinfo(args) {\n\t}\n\n\t/** The same as {@link Console.warn} */\n\twarn(args) {\n\t}\n\n\t/** The same as {@link Console.error} */\n\terror(args) {\n\t}\n\n\t/** The same as {@link Console.time} */\n\ttime(label) {\n\t}\n\n\t/** The same as {@link Console.timeEnd} */\n\ttimeEnd(label) {\n\t}\n\n\t/** The same as {@link Console.profile} */\n\tprofile(label) {\n\t}\n\n\t/** The same as {@link Console.profileEnd} */\n\tprofileEnd(label) {\n\t}\n\n\tmeasureTime(label, callable) {\n\t\tthis.time(label);\n\t\tconst result = callable();\n\t\tthis.timeEnd(label);\n\t\treturn result;\n\t}\n\n\tdoProfile(label, callable) {\n\t\tthis.profile(label);\n\t\tconst result = callable();\n\t\tthis.profileEnd(label);\n\t\treturn result;\n\t}\n\n\tsetLevelDebug() {\n\t\tthis.setLevel(LEVEL_DEBUG);\n\t}\n\n\tsetLevelInfo() {\n\t\tthis.setLevel(LEVEL_INFO);\n\t}\n\n\tsetLevelWarn() {\n\t\tthis.setLevel(LEVEL_WARN);\n\t}\n\n\tsetLevelError() {\n\t\tthis.setLevel(LEVEL_ERROR);\n\t}\n}\n\nexport default newLogger();\n\n\n\n// WEBPACK FOOTER //\n// ./core/utils/logger.js","module.exports = ko;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ko\"\n// module id = 7fPx\n// module chunks = 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26","import _ from 'lib/underscore';\nimport * as location from './location';\nimport {asString} from \"./var\";\n\nexport const BASE_URL = (window.base_url || '/').replace(/(.*)\\/\\/$|([^/])$/, '$1/');\n\nconst isAbsoluteUrlRegex = /^https?:\\/\\//i;\n\n/**\n * @param {string|object} url Url path\n * @param {string|object} more Additional parts\n * @return {string}\n */\nexport function siteUrl(url, ...more) {\n\tif (isAbsoluteUrlRegex.test(url)) {\n\t\tif (more.length === 0) {\n\t\t\treturn url;\n\t\t} else {\n\t\t\treturn joinPath.apply(null, [url, ...more]);\n\t\t}\n\t} else {\n\t\treturn joinPath.apply(null, [BASE_URL, url, ...more]);\n\t}\n}\n\n/**\n * Joins given values with slash.\n * If last value is an object - it will be formatted as query data.\n * @param {string|object} values\n * @return {string}\n */\nexport function joinPath(...values) {\n\tif (values.length == 0) return '';\n\tlet query = {};\n\tlet queryString = '';\n\tlet fragment = '';\n\tlet components = [];\n\tconst processValue = (v) => {\n\t\tif (_.isObject(v)) {\n\t\t\tquery = {...query, ...v};\n\t\t} else {\n\t\t\tv = asString(v).trim();\n\t\t\tlet i;\n\t\t\tif ((i = v.indexOf('#')) >= 0) {\n\t\t\t\tfragment = v.substr(i + 1);\n\t\t\t\tv = v.substr(0, i);\n\t\t\t} else if ((i = v.indexOf('?')) >= 0) {\n\t\t\t\tqueryString = v.substr(i + 1);\n\t\t\t\tv = v.substr(0, i);\n\t\t\t}\n\t\t\tif (v) {\n\t\t\t\tif (components.length == 0) {\n\t\t\t\t\tv = v.replace(/\\/$/g, '');\n\t\t\t\t} else {\n\t\t\t\t\tv = v.replace(/^\\/|\\/$/g, '');\n\t\t\t\t}\n\t\t\t\tcomponents.push(v);\n\t\t\t}\n\t\t}\n\t};\n\tvalues.forEach(v => {\n\t\tif (_.isArray(v)) {\n\t\t\tv.forEach(processValue);\n\t\t} else {\n\t\t\tprocessValue(v);\n\t\t}\n\t});\n\tlet url = components.join('/');\n\tif (!_.isEmpty(query)) {\n\t\tconst q = buildQuery(query);\n\t\tif (queryString) {\n\t\t\tqueryString += '&';\n\t\t}\n\t\tqueryString += q;\n\t}\n\tif (queryString) {\n\t\turl += '?' + queryString;\n\t}\n\tif (fragment) {\n\t\turl += '#' + fragment;\n\t}\n\treturn url;\n}\n\n/**\n *\n * @param {string} url\n * @return {boolean}\n */\nexport function isAbsolute(url) {\n\treturn isAbsoluteUrlRegex.test(url);\n}\n\n/**\n * Builds query string from given object\n * @param {object} queryData\n * @return {string}\n */\nexport function buildQuery(queryData) {\n\treturn location.buildQuery(queryData);\n}\n\nexport function highlightUrls(text, maxlength = 30) {\n\treturn text.replace(/(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\?+=&%#\\/\\wА-Яа-яёЁ\\.;-]*)*\\/?/g, function (s) {\n var st = s;\n\n if (s.length > maxlength) {\n st = s.slice(0, maxlength) + \"...\";\n }\n\n if (!/^(https?:\\/\\/)/.test(s)) {\n s = \"http://\" + s;\n }\n\n return \"\" + st + \"\";\n })\n}\n\nexport class UrlParser {\n\t/**\n\t * @param {string} url\n\t */\n\tconstructor(url) {\n\t\tthis._a = document.createElement('a');\n\t\tthis._a.href = url;\n\t}\n\n\t/** @return {string} */\n\tget origin() {\n\t\treturn this._a.origin;\n\t}\n\n\t/** @return {string} */\n\tget protocol() {\n\t\treturn this._a.protocol;\n\t}\n\n\t/** @return {string} */\n\tget host() {\n\t\treturn this._a.host;\n\t}\n\n\t/** @return {string} */\n\tget hostname() {\n\t\treturn this._a.hostname;\n\t}\n\n\t/** @return {string} */\n\tget port() {\n\t\treturn this._a.port;\n\t}\n\n\t/** @return {string} */\n\tget pathname() {\n\t\treturn this._a.pathname;\n\t}\n\n\t/** @return {string} */\n\tget search() {\n\t\treturn this._a.search;\n\t}\n\n\t/** @return {string} */\n\tget hash() {\n\t\treturn this._a.hash;\n\t}\n}\n\nexport class UrlBuilder {\n\tconstructor(protocol = null, host = null, port = null, path = null, query = null, hash = null) {\n\t\tthis._protocol = protocol;\n\t\tthis._host = host;\n\t\tthis._port = port;\n\t\tthis._path = path;\n\t\tthis._query = query;\n\t\tthis._hash = hash;\n\t}\n\n\t/**\n\t * @param {string|null} value\n\t */\n\tset protocol(value) {\n\t\tthis._protocol = postfix(value, ':');\n\t}\n\n\t/** @return {string|null} */\n\tget protocol() {\n\t\treturn this._protocol;\n\t}\n\n\t/**\n\t * @param {string|null} value\n\t */\n\tset host(value) {\n\t\tthis._host = value;\n\t}\n\n\t/** @return {string|null} */\n\tget host() {\n\t\treturn this._host;\n\t}\n\n\t/**\n\t * @param {string|number|null} value\n\t */\n\tset port(value) {\n\t\tthis._port = value;\n\t}\n\n\t/** @return {string|number|null} */\n\tget port() {\n\t\treturn this._port;\n\t}\n\n\t/**\n\t * @param {string|null} value\n\t */\n\tset path(value) {\n\t\tthis._path = value;\n\t}\n\n\t/** @return {string|null} */\n\tget path() {\n\t\treturn this._path;\n\t}\n\n\t/**\n\t * @param {string|object|null} value\n\t */\n\tset query(value) {\n\t\tthis._query = prefix(value, '?');\n\t}\n\n\t/** @return {string|object|null} */\n\tget query() {\n\t\treturn this._query;\n\t}\n\n\t/**\n\t * @param {string|null} value\n\t */\n\tset hash(value) {\n\t\tthis._hash = prefix(value, '#');\n\t}\n\n\t/** @return {string|null} */\n\tget hash() {\n\t\treturn this._hash;\n\t}\n\n\t/**\n\t * @return {string}\n\t */\n\tbuild() {\n\t\tconst origin = (this._protocol ? this._protocol + '//' : '') +\n\t\t\t(this._host ? this._host + (this._port ? ':' + this._port : '') : '');\n\t\tconst query = typeof(this._query) === 'object' ? prefix(buildQuery(this._query), '?') : this._query;\n\t\treturn joinPath(origin, this._path, query, this._hash);\n\t}\n}\n\nfunction prefix(val, prefix) {\n\tif (val && typeof(val) === 'string' && !val.startsWith(prefix)) {\n\t\treturn prefix + val;\n\t}\n\treturn val;\n}\n\nfunction postfix(val, postfix) {\n\tif (val && typeof(val) === 'string' && !val.endsWith(postfix)) {\n\t\treturn val + postfix;\n\t}\n\treturn val;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./core/utils/url.js","import ko from \"lib/knockout\";\nimport Smart from \"smart-plurals\";\nimport {phrases} from './globals';\n\n/**\n * Renders phrase\n * @param {string} lang Phrase name\n * @param {object|null} [data]\n * @param {boolean} [asHtml] Whether to render variables decorated with span tag. Default is FALSE\n * @returns {string} Rendered phrase\n */\nexport function lang(lang, data = null, asHtml = false) {\n\tconst phrase = phrases()[lang];\n\tif (!phrase) return lang;\n\treturn tmpl(phrase, data, asHtml);\n}\n\n/**\n *\n * @param {string} template\n * @param {object|null} [data]\n * @param {boolean} [asHtml] Whether to render variables decorated with span tag. Default is TRUE\n * @returns {string}\n */\nexport function tmpl(template, data = null, asHtml = false) {\n\tif (!data) return template;\n\ttemplate = '' + template;\n\n\tlet result = template;\n\tfor (let key in data) {\n\t\tif (!data.hasOwnProperty(key)) continue;\n\t\tlet val = data[key];\n\n\t\t// unwrap value\n\t\tif (typeof val === 'function') {\n\t\t\tval = val();\n\t\t}\n\n\t\tconst keyParam = escapeRegExp(key);\n\t\tconst pluralRegex = new RegExp(`\\\\[([^\\\\]]+{${keyParam}}[^\\\\]]+)\\\\]`);\n\t\tconst m = pluralRegex.exec(template);\n\t\tif (m) {\n\t\t\tresult = result.replace(pluralRegex, pluralize(val, m[1], key));\n\t\t}\n\n\t\tconst replacement = asHtml ? '' + val + '' : val;\n\t\tresult = result.split('{' + key + '}').join(replacement);\n\t}\n\treturn result;\n}\n\n/**\n *\n * @param {number} count\n * @param {string} text\n * @param {string} varName\n * @param {string|number|null} varValue\n */\nexport function pluralize(count, text, varName = 'n', varValue = null) {\n\tconst parts = text.split('|');\n\tconst pluralRule = Smart.Plurals.getRule(LANG);\n\tlet part = pluralRule(count, parts);\n\tif (part === undefined) {\n\t\tpart = parts[0];\n\t}\n\tconst replacement = varValue !== undefined && varValue !== null ? varValue : count;\n\treturn part.split('{' + varName + '}').join(replacement);\n}\n\nfunction escapeRegExp(string) {\n\treturn string.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n}\n\nko.bindingHandlers['lang'] = {\n\tinit: function() {\n\t\treturn {'controlsDescendantBindings': true};\n\t},\n\tupdate: function(element, valueAccessor) {\n\t\tconst params = ko.unwrap(valueAccessor());\n\t\tconst o = {\n\t\t\tname: '',\n\t\t\tdata: undefined,\n\t\t\thtml: undefined\n\t\t};\n\t\tif (!$.isPlainObject(params)) {\n\t\t\to.name = params;\n\t\t} else {\n\t\t\t$.extend(o, params);\n\t\t}\n\t\tconst args = [o.name, o.data, o.html];\n\t\tconst val = lang.apply(this, args);\n\t\tko.utils.setHtml(element, val);\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./core/utils/lang.js","import {element} from \"./var\";\n\nconst _globals = {};\nconst _phrases = {};\n\n/**\n * Returns Globals object\n * @param {string|null} key Optional key to return\n * @param {*} defaultValue Default value for key\n * @return {object|*} Globals object if no key is provided, otherwise associated value\n */\nexport function globals(key = null, defaultValue = null) {\n\tconst g = window.globals || _globals;\n\treturn key !== null ? element(g, key, defaultValue) : g;\n}\n\n/**\n * Returns global Phrases object\n * @param {string|null} key Optional key to return\n * @param {*} defaultValue Default value for key\n * @return {object} Phrases object if no key is provided, otherwise associated value\n */\nexport function phrases(key = null, defaultValue = null) {\n\tconst g = globals('phrases') || _phrases;\n\treturn key !== null ? element(g, key, defaultValue) : g;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./core/utils/globals.js","module.exports = _;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"_\"\n// module id = X0GP\n// module chunks = 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28","/**\r\n * This script adds some additional methods to window.location\r\n * buildQuery Helper method for constricting query strings\r\n * query location.query manipulator\r\n * hashQuery location.hash manipulator\r\n */\r\n\r\nconst location = window.location;\r\n\r\nexport function buildUrl(pathname, queryString) {\r\n\tif (!queryString) {\r\n\t\treturn pathname;\r\n\t}\r\n\tqueryString = '' + queryString;\r\n\tif (!queryString.startsWith('?')) {\r\n\t\tqueryString = '?' + queryString;\r\n\t}\r\n\treturn pathname + queryString;\r\n}\r\n\r\n/**\r\n * Builds query string from given object\r\n * @param {object} queryData\r\n * @param {boolean} [numeric_prefix]\r\n * @return {string}\r\n */\r\nexport function buildQuery(queryData, numeric_prefix) {\r\n\tlet value, key, tmp = [];\r\n\tconst arg_separator = \"&\";\r\n\r\n\tfor (key in queryData) {\r\n\t\tif (!queryData.hasOwnProperty(key)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\tvalue = queryData[key];\r\n\t\tif (numeric_prefix && !isNaN(key)) {\r\n\t\t\tkey = String(numeric_prefix) + key;\r\n\t\t}\r\n\t\tconst query = http_build_query_helper(urlencode(key), value, arg_separator);\r\n\t\tif (query !== '') {\r\n\t\t\ttmp.push(query);\r\n\t\t}\r\n\t}\r\n\r\n\treturn tmp.join(arg_separator);\r\n}\r\n\r\n/**\r\n * Appends given query data to given URL\r\n * @param {string} url\r\n * @param {object} queryData\r\n * @return {string} New url\r\n */\r\nexport function addQuery(url, queryData) {\r\n\tconst q = buildQuery(queryData);\r\n\turl = '' + url;\r\n\tconst m = /^([^?#]*)(\\?[^#]+)?(#.+)?$/.exec(url);\r\n\tif (!m) {\r\n\t\treturn url + '?' + q;\r\n\t}\r\n\treturn (m[1] || '') + (m[2] ? m[2] + '&' + q : '?' + q) + (m[3] || '');\r\n}\r\n\r\n/**\r\n * Appends given query data to given query string\r\n * @param {string} queryString\r\n * @param {object} queryData\r\n * @return {string} New query string\r\n */\r\nexport function appendQuery(queryString, queryData) {\r\n\tconst q = buildQuery(queryData);\r\n\tif (!q) {\r\n\t\treturn queryString;\r\n\t}\r\n\tconst str = '' + queryString;\r\n\treturn str.length > 0 ? str + '&' + q : q;\r\n}\r\n\r\n/**\r\n * Manipulates location.search as an object.
\r\n * With no arguments - returns the whole location.search object.
\r\n * With only key argument - returns value for this key.
\r\n * With key and value arguments (or only key as object) - updates location.search with new value\r\n * @param [key] The key to set. Can be an object, so the value is not needed\r\n * @param [value] The value to set\r\n * @param [extend] TRUE to extend current location.search object, or FALSE to replace it. Default is TRUE\r\n * @returns {Object|String}\r\n */\r\nexport function query(key, value, extend) {\r\n\treturn processQuery('search', key, value, extend);\r\n}\r\n\r\n/**\r\n * Manipulates location.hash as an object.
\r\n * With no arguments - returns the whole location.hash object.
\r\n * With only key argument - returns value for this key.
\r\n * With key and value arguments (or only key as object) - updates location.hash with new value\r\n * @param [key] The key to set. Can be an object, so the value is not needed\r\n * @param [value] The value to set\r\n * @param [extend] TRUE to extend current location.hash object, or FALSE to replace it. Default is TRUE\r\n * @returns {Object|String}\r\n */\r\nexport function hashQuery(key, value, extend) {\r\n\treturn processQuery('hash', key, value, extend);\r\n}\r\n\r\nfunction processQuery(type, key, value, extend) {\r\n\tlet queryData = decodeQueryString(location[type].substring(1));\r\n\tif (key !== undefined) {\r\n\t\tconst isObj = typeof key === 'object';\r\n\r\n\t\tif (value === undefined && !isObj) {\r\n\t\t\t// return value\r\n\t\t\treturn queryData[key] === undefined ? null : queryData[key];\r\n\t\t} else if (!isObj) {\r\n\t\t\tif (extend === undefined) extend = true;\r\n\r\n\t\t\t// set value to key\r\n\t\t\tconst k = key.toString();\r\n\t\t\tkey = {};\r\n\t\t\tkey[k] = value;\r\n\t\t}\r\n\r\n\t\tif (extend) {\r\n\t\t\t$.extend(queryData, key);\r\n\t\t} else {\r\n\t\t\tqueryData = key;\r\n\t\t}\r\n\r\n\t\t// clear data\r\n\t\tconst newData = {};\r\n\t\t$.each(queryData, function (key, value) {\r\n\t\t\tif (value) newData[key] = value;\r\n\t\t});\r\n\t\tqueryData = newData;\r\n\r\n\t\tlocation[type] = buildQuery(queryData);\r\n\t}\r\n\treturn queryData;\r\n}\r\n\r\n/**\r\n * Decodes query string like 'a=one&b=two&c[]=three' and returns an object\r\n * @param string\r\n * @return {Object}\r\n */\r\nexport function decodeQueryString(string) {\r\n\tlet glue1 = '=',\r\n\t\tglue2 = '&',\r\n\t\tarray = {}, // holds result\r\n\t\tarray2 = String(string).replace(/^&?([\\s\\S]*?)&?$/, '$1').split(glue2),\r\n\t\ti, j, chr, tmp, key, value, bracket, keys, evalStr,\r\n\t\tfixStr = function (str) {\r\n\t\t\treturn decodeURIComponent(str).replace(/([\\\\\"'])/g, '\\\\$1').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\+/g, ' ');\r\n\t\t};\r\n\r\n\tfor (i = 0; i < array2.length; i++) {\r\n\t\ttmp = array2[i].split(glue1);\r\n\t\tif (tmp.length < 2) {\r\n\t\t\ttmp = [tmp, ''];\r\n\t\t}\r\n\t\tkey = fixStr(tmp[0]);\r\n\t\tvalue = fixStr(tmp[1]);\r\n\t\twhile (key.charAt(0) === ' ') {\r\n\t\t\tkey = key.substr(1);\r\n\t\t}\r\n\t\tif (key.indexOf('\\0') !== -1) {\r\n\t\t\tkey = key.substr(0, key.indexOf('\\0'));\r\n\t\t}\r\n\t\tif (key && key.charAt(0) !== '[') {\r\n\t\t\tkeys = [];\r\n\t\t\tbracket = 0;\r\n\t\t\tfor (j = 0; j < key.length; j++) {\r\n\t\t\t\tif (key.charAt(j) === '[' && !bracket) {\r\n\t\t\t\t\tbracket = j + 1;\r\n\t\t\t\t} else if (key.charAt(j) === ']') {\r\n\t\t\t\t\tif (bracket) {\r\n\t\t\t\t\t\tif (!keys.length) {\r\n\t\t\t\t\t\t\tkeys.push(key.substr(0, bracket - 1));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tkeys.push(key.substr(bracket, j - bracket));\r\n\t\t\t\t\t\tbracket = 0;\r\n\t\t\t\t\t\tif (key.charAt(j + 1) !== '[') {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!keys.length) {\r\n\t\t\t\tkeys = [key];\r\n\t\t\t}\r\n\t\t\tfor (j = 0; j < keys[0].length; j++) {\r\n\t\t\t\tchr = keys[0].charAt(j);\r\n\t\t\t\tif (chr === ' ' || chr === '.' || chr === '[') {\r\n\t\t\t\t\tkeys[0] = keys[0].substr(0, j) + '_' + keys[0].substr(j + 1);\r\n\t\t\t\t}\r\n\t\t\t\tif (chr === '[') {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tevalStr = 'array';\r\n\t\t\tfor (j = 0; j < keys.length; j++) {\r\n\t\t\t\tkey = keys[j];\r\n\t\t\t\tif ((key !== '' && key !== ' ') || j === 0) {\r\n\t\t\t\t\tkey = \"'\" + key + \"'\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tkey = eval(evalStr + '.push([]);') - 1;\r\n\t\t\t\t}\r\n\t\t\t\tevalStr += '[' + key + ']';\r\n\t\t\t\tif (j !== keys.length - 1 && eval('typeof ' + evalStr) === 'undefined') {\r\n\t\t\t\t\teval(evalStr + ' = [];');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tevalStr += \" = '\" + value + \"';\\n\";\r\n\t\t\teval(evalStr);\r\n\t\t}\r\n\t}\r\n\r\n\treturn array;\r\n}\r\n\r\nfunction urlencode(str) {\r\n\tstr = (str + '').toString();\r\n\treturn encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/\\*/g, '%2A').replace(/%20/g, '+');\r\n}\r\n\r\nfunction http_build_query_helper(key, val, arg_separator) {\r\n\tlet k, tmp = [];\r\n\tif (val === true) {\r\n\t\tval = \"1\";\r\n\t} else if (val === false) {\r\n\t\tval = \"0\";\r\n\t}\r\n\tif (val !== null && val !== undefined && val !== '') {\r\n\t\tif (typeof(val) === \"object\") {\r\n\t\t\tlet start = 0;\r\n\t\t\tfor (k in val) {\r\n\t\t\t\tif (!val.hasOwnProperty(k)) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (val[k] !== null) {\r\n\t\t\t\t\tlet sk, num = Number(k);\r\n\t\t\t\t\tif (!isNaN(num) && num - start === 0) {\r\n\t\t\t\t\t\tif (typeof(val[k]) === \"object\") {\r\n\t\t\t\t\t\t\tsk = num;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsk = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstart++;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsk = urlencode(k);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst part = http_build_query_helper(key + \"[\" + sk + \"]\", val[k], arg_separator);\r\n\t\t\t\t\tif (part) {\r\n\t\t\t\t\t\ttmp.push(part);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn tmp.join(arg_separator);\r\n\t\t} else if (typeof(val) !== \"function\") {\r\n\t\t\treturn key + \"=\" + urlencode(val);\r\n\t\t} else {\r\n\t\t\tthrow new Error('There was an error processing for http_build_query().');\r\n\t\t}\r\n\t} else {\r\n\t\treturn '';\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./core/utils/location.js","/**\n * @return {boolean} TRUE if current window is an iframe window\n */\nexport function checkIsIframe() {\n\treturn window !== window.top;\n}\n\nconst _isMobile = ('orientation' in window) || (navigator.userAgent.indexOf('IEMobile') !== -1);\nconst _isTouchScreen = ('ontouchstart' in window || navigator.msMaxTouchPoints);\n\nexport function isMobile() {\n\treturn _isMobile;\n}\n\nexport function isTouchScreen() {\n\treturn _isTouchScreen;\n}\n\nexport const WEBP_FEATURES = {\n\tLOSSY: 'lossy',\n\tLOSSLESS: 'lossless',\n\tALPHA: 'alpha',\n\tANIMATION: 'animation'\n};\n\nexport function isWebpFeatureSupported(feature) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!Object.values(WEBP_FEATURES).includes(feature)) {\n\t\t\treject('Invalid feature name');\n\t\t\treturn;\n\t\t}\n\n\t\tconst kTestImages = {\n\t\t\tlossy: \"UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA\",\n\t\t\tlossless: \"UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==\",\n\t\t\talpha: \"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==\",\n\t\t\tanimation: \"UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA\"\n\t\t};\n\t\tconst img = new Image();\n\t\timg.onload = () => {\n\t\t\tconst result = (img.width > 0) && (img.height > 0);\n\t\t\tresolve(result);\n\t\t};\n\t\timg.onerror = function () {\n\t\t\tresolve(false);\n\t\t};\n\t\timg.src = \"data:image/webp;base64,\" + kTestImages[feature];\n\t});\n}\n\n/*export class MobileDetect {\n\tstatic Android = navigator.userAgent.match(/Android/i);\n\tstatic BlackBerry = navigator.userAgent.match(/BlackBerry/i);\n\tstatic iOS = navigator.userAgent.match(/iPhone|iPad|iPod/i);\n\tstatic Opera = navigator.userAgent.match(/Opera Mini/i);\n\tstatic Windows = navigator.userAgent.match(/IEMobile/i);\n\tstatic Any = MobileDetect.Android || MobileDetect.BlackBerry || MobileDetect.iOS || MobileDetect.Opera || MobileDetect.Windows;\n}*/\n\n\n\n// WEBPACK FOOTER //\n// ./core/utils/utils.js","import './popup.less';\nimport {openHtmlDialog} from \"./dialog\";\n\n/**\n * The same as {@link openHtmlDialog()} but with name='popup' enabled\n * @param {*} content HTML content\n * @param {object} options ZDialog options\n * @return {ZDialog} Dialog instance\n */\nexport function openPopup(content, options = null) {\n\treturn openHtmlDialog(content, {name: 'popup', ...options});\n}\n\n\n\n// WEBPACK FOOTER //\n// ./core/widgets/popup.js","import _ from \"lib/underscore\";\n\n/**\n * Is a given variable defined and has value?\n * @param {*} val\n * @return {boolean} false if given value is undefined or null, otherwise true\n */\nexport function isset(val) {\n\treturn !_.isUndefined(val) && !_.isNull(val);\n}\n\n/**\n * Returns object's property or array's index if exists and default value otherwise\n * @param {object|array} object Inspected object or array\n * @param {string|number} key Property name for objects, numeric index for arrays\n * @param {*} defaultValue\n * @return {*}\n */\nexport function element(object, key, defaultValue = null) {\n\treturn _.has(object, key) ? object[key] : defaultValue;\n}\n\n/**\n * Returns object's property or array's index if exists and is not null or default value otherwise\n * @param {object|array} object Inspected object or array\n * @param {string|number} key Property name for objects, numeric index for arrays\n * @param {*} defaultValue\n * @return {*}\n */\nexport function elementOrDefault(object, key, defaultValue = null) {\n\treturn _.has(object, key) && object[key] !== null ? object[key] : defaultValue;\n}\n\n/**\n * Returns object's property or array's index if exists and is not null or \"—\" value otherwise\n * @param {object|array} object Inspected object or array\n * @param {string|number} key Property name for objects, numeric index for arrays\n * @param {*} defaultValue\n * @return {*}\n */\nexport function elementOrDash(object, key) {\n\treturn elementOrDefault(object, key, '—');\n}\n\n/**\n * Returns value if it's not undefined or null, otherwise defaultValue\n * @param {*} value\n * @param {*} defaultValue\n * @return {*}\n */\nexport function orDefault(value, defaultValue = null) {\n\treturn isset(value) ? value : defaultValue;\n}\n\n/**\n * Converts given value to number using standard javascript converter: +value\n * @param {*} value Input value\n * @param {number} defaultValue\n * @return {number} Either converted value if it's not NaN and default value otherwise\n */\nexport function asNumber(value, defaultValue = 0) {\n\tvalue = +value;\n\treturn !isNaN(value) ? value : 0;\n}\n\n/**\n * Converts given value to boolean using such algo:\n * - string \"0\" results in false;\n * - string \"false\" results in false;\n * - string \"null\" results in false;\n * - empty object results in false;\n * - empty array results in false;\n * - other values go through standard javascript converter: !!value\n * @param {*} value Input value\n * @return {boolean} Converted value\n */\nexport function asBoolean(value) {\n\tif (_.isBoolean(value)) return value;\n\tif (value === '0') return false;\n\tif (value === 'false') return false;\n\tif (value === 'null') return false;\n\tif (_.isObject(value) && _.isEmpty(value)) return false;\n\tif (_.isArray(value) && _.isEmpty(value)) return false;\n\treturn !!value;\n}\n\n/**\n * Converts given value to string using standard javascript converter: ''+value\n * except that null and undefined values will be converted to empty string.\n * @param {*} value Input value\n * @return {string} Converted value\n */\nexport function asString(value) {\n\tif (value === null || _.isUndefined(value)) return '';\n\treturn '' + value;\n}\n\n/**\n * Converts given value to string using {@link asString()} and trims whitespace characters.\n * @param {string|*} value\n * @return {string} Converted and trimmed value\n */\nexport function trim(value) {\n\treturn asString(value).trim();\n}\n\n/**\n * If input value is an array - it will be returned as is.\n * In other cases input value will be converted to string and either split with given delimiter\n * or just returned as a single array element.\n * @param {array|string} value\n * @param {string} delimiter\n * @return {array}\n */\nexport function asArray(value, delimiter = '') {\n\tif (!value) return [];\n\tif (_.isArray(value)) return value;\n\tvalue = asString(value);\n\treturn delimiter ? value.split(delimiter) : [value];\n}\n\n\n// WEBPACK FOOTER //\n// ./core/utils/var.js","import './dialog.less'\nimport _ from \"lib/underscore\";\nimport ko from \"lib/knockout\";\nimport {newLogger} from \"../utils/logger\";\nimport {checkIsIframe, isMobile} from \"../utils/utils\";\nimport {asString} from \"../utils/var\";\n\nconst logger = newLogger('ZDialog');\n\n/**\n * Creates new dialog with IFrame with given url\n * @param {string} url IFrame url\n * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n * @return {ZDialog}\n */\nexport function createIframeDialog(url, options = null) {\n\treturn newDialog({content: url, type: 'iframe', __width: 800, ...options});\n}\n\n/**\n * Creates new dialog instance.\n * autoOpen option is false by default, so you should either call open() method\n * or override autoOpen option\n * @param {*} content HTML content. Can be either valid HTML string, or DOM node, or jQuery object\n * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n * @return {ZDialog} Dialog instance\n */\nexport function createHtmlDialog(content, options = null) {\n\treturn newDialog({content, type: 'html', showCloseButton: true, ...options});\n}\n\n/**\n * The same as {@link createHtmlDialog()} but with autoOpen enabled\n * @param {*} content HTML content\n * @param {object} options ZDialog options\n * @return {ZDialog} Dialog instance\n */\nexport function openHtmlDialog(content, options = null) {\n\treturn createHtmlDialog(content, {autoOpen: true, ...options});\n}\n\n/**\n * Creates new dialog as new window with given url\n * @param {string} url IFrame url\n * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n * @return {ZDialog}\n */\nexport function createWindowDialog(url, options = null) {\n\treturn newDialog({content: url, type: 'window', ...options});\n}\n\n// add some helper functions to jQuery\n$.extend($.fn, {\n\t/**\n\t * Calls {@link openHtmlDialog()} with source element as content\n\t * @param {object} options ZDialog Options. See {@link ZDialog.defaults}\n\t */\n\tzdialog: function (options = null) {\n\t\tconst $el = $(this);\n\t\tconst $placeholder = $('
').insertAfter($el);\n\t\tconst isInDom = $el.closest(document.documentElement);\n\t\tconst isVisible = $el.css('display') != 'none';\n\t\tif (isInDom) {\n\t\t\t$el.detach();\n\t\t}\n\t\tif (!isVisible) {\n\t\t\t$el.show();\n\t\t}\n\t\tconst dialog = createHtmlDialog($el, options);\n\t\tdialog.onBeforeClose(() => {\n\t\t\t$el.detach();\n\t\t});\n\t\tdialog.onClose(() => {\n\t\t\tif (isInDom) {\n\t\t\t\t$el.insertAfter($placeholder);\n\t\t\t}\n\t\t\tif (!isVisible) {\n\t\t\t\t$el.hide();\n\t\t\t}\n\t\t\t$placeholder.remove();\n\t\t});\n\t\tdialog.open();\n\t\t$el.data('zdialogInstance', dialog);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Returns ZDialog instance for given element (if the dialog was created with {@link jQuery.fn.zdialog} function)\n\t * @return {ZDialog}\n\t */\n\tzdialogInstance: function () {\n\t\treturn this.data('zdialogInstance');\n\t}\n});\n\n// FOR TESTING\n/*import {MODAL_ASK_REDIRECT, MODAL_CRITICAL_NEWS, MODAL_LOGIN, MODAL_PACKAGE_INFO, MODAL_REVIEW} from \"../modals\";\n$('.logo').click(function(e) {\n\te.preventDefault();\n\tconst queue = [];\n\tconst showNext = () => {\n\t\tif (queue.length > 0) {\n\t\t\tqueue.shift()();\n\t\t}\n\t};\n\tconst onOpen = () => {};\n\t// queue.push(() => MODAL_REVIEW.show(104625).onOpen(showNext));\n\t// queue.push(() => MODAL_LOGIN.show().onOpen(showNext));\n\t// queue.push(() => MODAL_PACKAGE_INFO.show(1803110691).onOpen(showNext));\n\t// queue.push(() => MODAL_ASK_REDIRECT.show().onOpen(showNext));\n\t// queue.push(() => MODAL_CRITICAL_NEWS.show(312).onOpen(showNext));\n\tqueue.push(() => openHtmlDialog('
').onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
').onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
').onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
', {fullscreen: true}).onOpen(onOpen));\n\tqueue.push(() => openHtmlDialog('
', {fullscreen: true}).onOpen(onOpen));\n\tshowNext();\n\n\t$(document).on('click', '.zdialog-html > div', showNext);\n});*/\n\n/**\n * @param {object} options\n * @return {ZDialog}\n */\nlet newDialog = function (options) {\n\treturn new ZDialog(options);\n};\n\n// force use newDialog function from top window\nconst key = '__zdialog_newDialog';\nif (checkIsIframe()) {\n\tnewDialog = window.top[key];\n} else {\n\twindow.top[key] = newDialog;\n}\n\n/**\n * Dialog class\n */\nclass ZDialog {\n\tstatic defaults = {\n\t\tname: '',\n\t\ttype: 'iframe', // iframe, html\n\t\tcontent: '',\n\t\ttitle: '',\n\t\tbuttons: [],\n\t\tmodal: false,\n\t\tautoOpen: false,\n\t\tshowCloseButton: false,\n\n\t\twidth: '',\n\t\theight: '',\n\t\tfullscreen: false,\n\t\tcssClass: '',\n\n\t\tcustom: null,\n\n\t\t//events\n\t\tonOpen: null,\n\t\tonClose: null\n\t};\n\n\t// options\n\t_width = ko.observable();\n\t_height = ko.observable();\n\t_isModal = ko.observable(false);\n\t_isCloseBtnVisible = ko.observable(false);\n\n\t_$el;\n\t_$iframe;\n\t_wnd;\n\t_isLoading = ko.observable(false);\n\t_isOpened = ko.observable(false);\n\t_isClosed = ko.observable(false);\n\t_isHidden = ko.observable(false);\n\t_contentHeight = ko.observable(0);\n\t_iframeHeight = ko.observable(0);\n\t/** @type {HeightWatcher} */\n\t_heightWatcher;\n\t_opened = false;\n\t/** @type {JQuery.Callbacks} */\n\t_onOpen = $.Callbacks();\n\t/** @type {JQuery.Callbacks} */\n\t_onClose = $.Callbacks();\n\t/** @type {JQuery.Callbacks} */\n\t_onBeforeClose = $.Callbacks();\n\t_result = null;\n\n\tconstructor(options) {\n\t\tconst o = {\n\t\t\t...ZDialog.defaults,\n\t\t\t...options\n\t\t};\n\n\t\tthis._name = o.name;\n\t\tthis._o = o;\n\t\tthis._isModal(!!o.modal);\n\t\tthis._isCloseBtnVisible(!!o.showCloseButton);\n\t\tthis._width(o.width);\n\t\tthis._height(o.height);\n\n\t\tif (o.onOpen) {\n\t\t\tthis._onOpen.add(o.onOpen);\n\t\t}\n\t\tif (o.onClose) {\n\t\t\tthis._onClose.add(o.onClose);\n\t\t}\n\n\t\tif (o.autoOpen) {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\topen() {\n\t\tif (this.isOpened) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isClosed(false);\n\t\tthis._isHidden(false);\n\t\tthis._result = null;\n\t\tif (this.type === 'window') {\n\t\t\tthis._wnd = window.open(this.content);\n\t\t\tthis._wnd.addEventListener('DOMContentLoaded', () => this._handleWindowReady());\n\t\t\tthis._wnd.onbeforeunload = () => {\n\t\t\t\tif (!this.isClosed) {\n\t\t\t\t\tthis.close();\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis._isLoading(true);\n\t\t} else if (!dialogManager.isRegistered(this)) {\n\t\t\tif (this.isFullScreen) {\n\t\t\t\tthis._width('');\n\t\t\t\tthis._height('');\n\t\t\t\tthis._contentHeight('');\n\t\t\t\tthis._iframeHeight('');\n\t\t\t}\n\t\t\tif (this.type === 'iframe') {\n\t\t\t\tthis._isLoading(true);\n\t\t\t\tif (!this.isAutoHeight) {\n\t\t\t\t\tthis._contentHeight(this.height);\n\t\t\t\t\tthis._iframeHeight(this.height);\n\t\t\t\t} else {\n\t\t\t\t\tthis._contentHeight('');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._contentHeight(this.height);\n\t\t\t\tthis._isOpened(true);\n\t\t\t\tsetTimeout(() => this._onOpen.fireWith(this), 0);\n\t\t\t}\n\t\t\tdialogManager.register(this);\n\t\t} else if (this._isHidden()) {\n\t\t\tdialogManager.show(this);\n\t\t}\n\t}\n\n\tclose() {\n\t\tif (this.isClosed) {\n\t\t\treturn;\n\t\t}\n\t\tthis._onBeforeClose.fireWith(this, [this._result]);\n\t\tthis._isOpened(false);\n\t\tthis._isHidden(false);\n\t\tthis._isClosed(true);\n\t\tif (this.type === 'window') {\n\t\t\tif (this._wnd) {\n\t\t\t\tthis._wnd.close();\n\t\t\t\twindow.top.focus();\n\t\t\t\tthis._wnd = null;\n\t\t\t\tsetTimeout(() => this._onClose.fireWith(this, [this._result]), 0);\n\t\t\t}\n\t\t} else if (dialogManager.isRegistered(this)) {\n\t\t\tif (this._heightWatcher) {\n\t\t\t\tthis._heightWatcher.off();\n\t\t\t}\n\t\t\tdialogManager.unregister(this);\n\t\t\tsetTimeout(() => this._onClose.fireWith(this, [this._result]), 0);\n\t\t}\n\t}\n\n\thide() {\n\t\tif (this.type === 'window') {\n\t\t\tlogger.error('Method is not supported for current dialog type');\n\t\t} else if (dialogManager.isRegistered(this)) {\n\t\t\tthis._isOpened(false);\n\t\t\tthis._isHidden(true);\n\t\t\tdialogManager.hide(this);\n\t\t}\n\t}\n\n\tcloseWithResult(result) {\n\t\tthis.result = result;\n\t\tthis.close();\n\t}\n\n\tupdatePosition() {\n\t\tif (this.type === 'iframe') {\n\t\t\tthis._contentHeight(this.iframeHeight);\n\t\t}\n\t}\n\n\t/** @return {string} */\n\tget name() {\n\t\treturn this._name;\n\t}\n\n\t/** @return {string} */\n\tget type() {\n\t\treturn this._o.type;\n\t}\n\n\t/** @return {string} */\n\tget content() {\n\t\treturn this._o.content;\n\t}\n\n\t/** @return {string} */\n\tget title() {\n\t\treturn this._o.title;\n\t}\n\n\t/** @return {number} */\n\tget width() {\n\t\treturn this._width();\n\t}\n\n\t/** @return {number|string} */\n\tget height() {\n\t\treturn this._height();\n\t}\n\n\t/** @return {number|string} */\n\tget minWidth() {\n\t\treturn this._o.minWidth;\n\t}\n\n\t/** @return {number|string} */\n\tget maxWidth() {\n\t\treturn this._o.maxWidth;\n\t}\n\n\t/** @return {number|string} */\n\tget contentWidth() {\n\t\treturn this._width();\n\t}\n\n\t/** @return {number|string} */\n\tget contentHeight() {\n\t\treturn this._contentHeight();\n\t}\n\n\t/** @return {number} */\n\tget iframeHeight() {\n\t\treturn this._iframeHeight();\n\t}\n\n\t/** @return {boolean} */\n\tget isLoading() {\n\t\treturn this._isLoading();\n\t}\n\n\t/** @return {boolean} */\n\tget isOpened() {\n\t\treturn this._isOpened();\n\t}\n\n\t/** @return {boolean} */\n\tget isClosed() {\n\t\treturn this._isClosed();\n\t}\n\n\t/** @return {boolean} */\n\tget isHidden() {\n\t\treturn this._isHidden();\n\t}\n\n\t/** @return {boolean} */\n\tget isModal() {\n\t\treturn this._isModal();\n\t}\n\n\t/** @return {boolean} */\n\tget isCloseBtnVisible() {\n\t\treturn this._isCloseBtnVisible();\n\t}\n\n\t/** @type {boolean} */\n\tget isFullScreen() {\n\t\treturn this._o.fullscreen;\n\t}\n\n\t/** @type {boolean} */\n\tget isAutoHeight() {\n\t\treturn asString(this.height) === '' || this.height === 'auto';\n\t}\n\n\t/** @return {*} */\n\tget result() {\n\t\treturn this._result;\n\t}\n\n\t/**\n\t * @param {*} value\n\t */\n\tset result(value) {\n\t\tthis._result = value;\n\t}\n\n\t/**\n\t * @return {*}\n\t */\n\tget customData() {\n\t\treturn this._o.custom;\n\t}\n\n\t/**\n\t * @return {string}\n\t */\n\tget cssClass() {\n\t\treturn asString(this._o.cssClass);\n\t}\n\n\thandleIframeLoad(item, e) {\n\t\tlogger.log('loaded', e);\n\t\tthis._isLoading(false);\n\n\t\tif (!this.isFullScreen && this.isAutoHeight) {\n\t\t\tthis._heightWatcher = new HeightWatcher(e.target, (newHeight) => {\n\t\t\t\tlogger.log(`new height = ${newHeight}`);\n\t\t\t\tthis._iframeHeight(newHeight);\n\t\t\t\tif (!this.contentHeight) {\n\t\t\t\t\tthis._contentHeight(newHeight);\n\t\t\t\t}\n\t\t\t\tthis._isOpened(true);\n\t\t\t\tsetTimeout(() => this._onOpen.fireWith(this), 0);\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._isOpened(true);\n\t\t\tsetTimeout(() => this._onOpen.fireWith(this), 0);\n\t\t}\n\n\t\t// inject this instance to iframe\n\t\te.target.contentWindow.dialogInstance = this;\n\n\t\t// apply special classes\n\t\t$(e.target.contentWindow.document.body)\n\t\t\t.toggleClass('zdialog-layout-modal', this.isModal)\n\t\t\t.toggleClass('zdialog-layout-autoheight', this.isAutoHeight)\n\t\t\t.toggleClass('zdialog-layout-fullscreen', this.isFullScreen);\n\n\t\t// triger event inside iframe\n e.target.contentWindow.$(e.target.contentWindow.document).trigger('zdialog-shown');\n\t}\n\n\t_handleWindowReady(e) {\n\t\tlogger.log('loaded', e);\n\t\tthis._isLoading(false);\n\t\tthis._isOpened(true);\n\n\t\t// inject this instance to iframe\n\t\tthis._wnd.dialogInstance = this;\n\t\t$(this._wnd.document.body).addClass('zdialog-layout-window');\n\n\t\tsetTimeout(() => this._onOpen.fireWith(this), 0);\n\t}\n\n\thandleCloseClick(item, e) {\n\t\tconst $target = $(e.target);\n\t\tif ($target.is('[data-dialog-result]')) {\n\t\t\tthis.result = $target.data('dialogResult');\n\t\t}\n\t\tthis.close();\n\t}\n\n\thandleBackdropClick() {\n\t\tif (dialogManager.isTopmost(this) && !this.isModal) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tonOpen(callback) {\n\t\tthis._onOpen.add(callback);\n\t}\n\n\toffOpen(callback) {\n\t\tthis._onOpen.remove(callback);\n\t}\n\n\tonClose(callback) {\n\t\tthis._onClose.add(callback);\n\t}\n\n\toffClose(callback) {\n\t\tthis._onClose.remove(callback);\n\t}\n\n\tonBeforeClose(callback) {\n\t\tthis._onBeforeClose.add(callback);\n\t}\n\n\toffBeforeClose(callback) {\n\t\tthis._onBeforeClose.remove(callback);\n\t}\n}\n\nclass DialogManager {\n\t_counter = 0;\n\t/** @type {KnockoutObservableArray} */\n\t_dialogs = ko.observableArray([]);\n\t_$el;\n\t_isClosing = ko.observable(false);\n\t_initialized = false;\n\t_timeout;\n\n\t_wrapper = new WindowWrapper();\n\n\tconstructor() {\n\t\tthis._$html = $('html');\n\t\tthis._$body = $('body');\n\n\t\tthis._isLoading = ko.pureComputed(() => {\n\t\t return _.any(this.dialogs, d => d.isLoading);\n\t\t});\n\n\t\tthis._visibleDialogs = ko.pureComputed(() => {\n\t\t return this.dialogs.filter(d => !d.isHidden);\n\t\t});\n\t}\n\n\t/**\n\t * @param {ZDialog} dialog\n\t */\n\tregister(dialog) {\n\t\tif (this.isRegistered(dialog)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._dialogs.push(dialog);\n\t\tthis._checkMarkupAfterOpen();\n\t}\n\n\t/**\n\t * @param {ZDialog} dialog\n\t */\n\tunregister(dialog) {\n\t\tif (this._dialogs.remove(dialog).length === 0) {\n\t\t\t// nothing has been removed\n\t\t\treturn;\n\t\t}\n\t\tthis._checkMarkupAfterClose();\n\t}\n\n\t/**\n\t * @param {ZDialog} dialog\n\t */\n\thide(dialog) {\n\t\tif (this.isRegistered(dialog)) {\n\t\t\tthis._checkMarkupAfterClose();\n\t\t}\n\t}\n\n\t/**\n\t * @param {ZDialog} dialog\n\t */\n\tshow(dialog) {\n\t\tif (this.isRegistered(dialog)) {\n\t\t\tthis._checkMarkupAfterOpen();\n\t\t}\n\t}\n\n\t_checkMarkupAfterOpen() {\n\t\tif (this._isClosing()) {\n\t\t\tclearTimeout(this._timeout);\n\t\t\tthis._timeout = null;\n\t\t\tthis._isClosing(false);\n\t\t} else if (this.visibleDialogs.length === 1 && !this._initialized) {\n\t\t\tthis._wrapper.on();\n\n\t\t\tif (!this._$el) {\n\t\t\t\tthis._$el = $(`
`);\n\t\t\t\tko.applyBindings(this, this._$el[0]);\n\t\t\t\tthis._$el.appendTo('body');\n\t\t\t} else {\n\t\t\t\tthis._$el.show();\n\t\t\t}\n\t\t\tthis._initialized = true;\n\t\t}\n\t}\n\n\t_checkMarkupAfterClose() {\n\t\tif (!this._isClosing() && this.visibleDialogs.length === 0 && this._initialized) {\n\t\t\t// no dialogs left\n\t\t\tthis._isClosing(true);\n\t\t\tthis._timeout = setTimeout(() => {\n\t\t\t\tthis._wrapper.off();\n\t\t\t\t// logger.log('remove container');\n\t\t\t\tthis._$el.remove();\n\t\t\t\tko.cleanNode(this._$el[0]);\n this._$el = null;\n\t\t\t\tthis._initialized = false;\n\t\t\t\tthis._isClosing(false);\n\t\t\t}, 300);\n\t\t}\n\t}\n\n\t/**\n\t * @param {ZDialog} dialog\n\t * @return {boolean}\n\t */\n\tisRegistered(dialog) {\n\t\treturn _.contains(this.dialogs, dialog);\n\t}\n\n\thandleBeforeRemove(node) {\n\t\tconst $node = $(node);\n\t\t$node.remove();\n\t\t/*if (node.nodeType === 3) {\n\t\t\t$node.remove();\n\t\t\treturn;\n\t\t}\n\t\t$node.addClass('zdialog-closing');\n\t\tsetTimeout(() => $node.remove(), 300);*/\n\t}\n\n\t/** @return {ZDialog[]} */\n\tget dialogs() {\n\t\treturn this._dialogs();\n\t}\n\n\t/** @return {ZDialog[]} */\n\tget visibleDialogs() {\n\t\treturn this._visibleDialogs();\n\t}\n\n\t/** @return {boolean} */\n\tget isLoading() {\n\t\treturn this._isLoading();\n\t}\n\n\t/** @return {boolean} */\n\tget isClosing() {\n\t\treturn this._isClosing();\n\t}\n\n\tgetTopmostDialog() {\n\t\treturn _.last(this.visibleDialogs.filter(d => !d.isLoading));\n\t}\n\n\tisTopmost(dialog) {\n\t\treturn dialog === this.getTopmostDialog();\n\t}\n\n\t/**\n\t * @param {ZDialog} dialog\n\t */\n\tgetDialogClass(dialog) {\n\t\tconst css = [];\n\t\tif (dialog.isModal) {\n\t\t\tcss.push('zdialog-modal');\n\t\t}\n\t\tif (dialog.isFullScreen) {\n\t\t\tcss.push('zdialog-fullscreen');\n\t\t}\n\t\tif (this.isTopmost(dialog)) {\n\t\t\tcss.push('zdialog-topmost');\n\t\t} else if (this.visibleDialogs.length > 1) {\n\t\t\tcss.push('zdialog-overlapped');\n\t\t}\n\t\tif (dialog.isLoading) {\n\t\t\tcss.push('zdialog-loading');\n\t\t}\n\t\tif (dialog.isOpened) {\n\t\t\tcss.push('zdialog-opened');\n\t\t}\n\t\tif (dialog.isHidden) {\n\t\t\tcss.push('zdialog-hidden');\n\t\t}\n\t\tif (dialog.name) {\n\t\t\tcss.push('zdialog-instance-' + dialog.name);\n\t\t}\n\t\tif (dialog.cssClass) {\n\t\t\tcss.push(dialog.cssClass);\n\t\t}\n\t\treturn css.join(' ');\n\t}\n}\n\nclass HeightWatcher {\n\t_currHeight = 0;\n\t_event = $.Callbacks();\n\n\tconstructor($iframe, callback) {\n\t\tthis._event.add(callback);\n\t\tthis._ibody = $($iframe)[0].contentWindow.document.body;\n // this.updateHeight();\n\t\tsetTimeout(() => {\n\t\t\tthis.updateHeight();\n\t\t\tthis._interval = setInterval(() => this.updateHeight(), 50);\n\t\t}, 0);\n\t}\n\n\tupdateHeight() {\n\t\t// const newHeight = this._ibody.offsetHeight;\n\t\tconst newHeight = this.getHeight();\n\t\tif (newHeight !== this._currHeight) {\n\t\t\tthis._currHeight = newHeight;\n\t\t\tthis._event.fire(newHeight);\n\t\t}\n\t}\n\n\tgetHeight() {\n\t\tlet height = this._ibody.scrollHeight;\n\t\t$(this._ibody).find('iframe:visible').filter(function () {\n\t\t\treturn $(this).css('visibility') !== 'hidden';\n\t\t}).each(function() {\n\t\t\tlet iHeight = $(this).height();\n\t\t\tif (iHeight > height) {\n\t\t\t\theight = iHeight;\n\t\t\t}\n\t\t});\n\t\treturn height;\n\t}\n\n\toff() {\n\t\tclearInterval(this._interval);\n\t\tthis._event.empty();\n\t}\n}\n\nclass WindowWrapper {\n\t_$wnd = $(window);\n\t_$html = $('html');\n\t_$head = $('head');\n\t_scrollTop = 0;\n\t_scrollLeft = 0;\n\n\tconstructor() {\n\t\tthis._$scrollBarStyle = $(``).appendTo(this._$head);\n\t\tthis._$positionStyle = $(``).appendTo(this._$head);\n\t\t// this._useFixedLayout = /(iPod|iPhone|iPad)/.test(navigator.userAgent);\n\t\tthis._useFixedLayout = isMobile();///(iPod|iPhone|iPad)/.test(navigator.userAgent);\n\t}\n\n\ton() {\n\t\tif (this._useFixedLayout) {\n\t\t\tthis._scrollTop = this._$wnd.scrollTop();\n\t\t\tthis._scrollLeft = this._$wnd.scrollLeft();\n\t\t\tthis._applyPositionStyle();\n\t\t\tthis._$wnd.scrollTop(0).scrollLeft(0);\n\t\t}\n\t\tthis._applyScrollbarStyle();\n\n\t\tthis._$html\n\t\t\t.toggleClass('zdialog-scrollbar-fix', this._hasScrollBar())\n\t\t\t.toggleClass('zdialog-position-fix', this._useFixedLayout)\n\t\t\t.addClass('zdialog-open');\n\t}\n\n\toff() {\n\t\tthis._$html\n\t\t\t.removeClass('zdialog-scrollbar-fix')\n\t\t\t.removeClass('zdialog-position-fix')\n\t\t\t.removeClass('zdialog-open');\n\t\tif (this._useFixedLayout) {\n\t\t\tthis._$wnd.scrollTop(this._scrollTop).scrollLeft(this._scrollLeft);\n\t\t}\n\t}\n\n\t_applyScrollbarStyle() {\n\t\tconst scrollBarWidth = getScrollBarWidth();\n\t\t// language=CSS\n\t\tthis._$scrollBarStyle.html(`\n.zdialog-scrollbar-fix {\n\tpadding-right: ${scrollBarWidth}px;\n}\n`);\n\t}\n\n\t_applyPositionStyle() {\n\t\t// language=CSS\n\t\tthis._$positionStyle.html(`\n.zdialog-position-fix {\n\tposition: fixed;\n\twidth: 100%;\n\theight: 100%;\n\ttop: -${this._scrollTop}px;\n\tleft: -${this._scrollLeft}px;\n}\n`);\n\t}\n\n\t_hasScrollBar() {\n\t\treturn hasScrollBar(this._$html);\n\t}\n}\n\nfunction getScrollBarWidth() {\n\tconst $outer = $('
').css({visibility: 'hidden', width: 100, overflow: 'scroll'}).appendTo('body'),\n\t\twidthWithScroll = $('
').css({width: '100%'}).appendTo($outer).outerWidth();\n\t$outer.remove();\n\treturn 100 - widthWithScroll;\n}\n\nfunction hasScrollBar(el) {\n\tconst $el = $(el);\n\treturn $el.length > 0 ? $el[0].scrollHeight > $(window).height() : false;\n}\n\nexport const dialogManager = new DialogManager();\n\nko.components.register('zdialog-wrapper', {\n\ttemplate: `\n
\n
\n
\n\t
\n\t\t
\n\t
\n
\n`.trim()\n});\nko.components.register('zdialog', {\n\ttemplate: `\n
\n
\n`.trim()\n});\nko.components.register('zdialog-content-iframe', {\n\ttemplate: `\n
\n\n`.trim()\n});\nko.components.register('zdialog-content-html', {\n\ttemplate: `\n\n

\n\t\n\t
\n

\n\n\n
\n\n
\n`.trim()\n});\n\n\n\n// WEBPACK FOOTER //\n// ./core/widgets/dialog.js","import \"./loading.less\";\nimport {checkIsIframe} from \"../utils/utils\";\n\nlet $el;\nlet counter = 0;\nconst iframeOverride = checkIsIframe() ? window.top.zde.loading : {};\n\nexport default {\n\t/**\n\t * Shows loading spinner\n\t */\n\tshow: function() {\n\t\tif (!$el) {\n\t\t\t$el = $('
').appendTo('body');\n\t\t\t/*$el = $(`
\n\t
\n\t
\n\t
\n\t
`).appendTo('body');*/\n\t\t}\n\t\tcounter++;\n\t},\n\n\t/**\n\t * Shows loading spinner\n\t */\n\thide: function() {\n\t\tif ($el && --counter <= 0) {\n\t\t\t$el.addClass('zloader-closing');\n\t\t\t// let animation finish and remove the element\n\t\t\tconst $element = $el;\n\t\t\tsetTimeout(() => {\n\t\t\t\t$element.remove();\n\t\t\t}, 1000);\n\t\t\t$el = null;\n\t\t\tcounter = 0;\n\t\t}\n\t},\n\n\t...iframeOverride\n}\n\n\n\n// WEBPACK FOOTER //\n// ./core/widgets/loading.js","module.exports = toastr;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"toastr\"\n// module id = og09\n// module chunks = 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 28","var Smart = {};\r\n\r\n// Embed the Smart.Plurals source: \r\n\r\n\r\n// Create namespace:\r\nif (typeof Smart !== 'object')\r\n\tSmart = {};\r\n\r\n(function() {\r\n\r\n\tvar rules = {} // Map of language codes to rules\r\n\t\t, defaultCode = null\r\n\t\t, defaultRule = null;\r\n\r\n\tSmart.Plurals = {\r\n\t\t/**\r\n\t\t * Retrieves a plural rule, based on the supplied language code.\r\n\t\t * If no languageCode is specified, the default rule will be returned.\r\n\t\t *\r\n\t\t * A plural rule is a function that takes in a value\r\n\t\t * and determines whether it should be singular form, plural form,\r\n\t\t * or even other forms, depending on the number of choices.\r\n\t\t *\r\n\t\t * @param {String} [languageCode] - Optional - a 2-letter or 4-letter language code, or the full ruleName.\r\n\t\t * @returns {function({Number} value, {Number|Array} choices)}\r\n\t\t */\r\n\t\tgetRule: function(languageCode) {\r\n\t\t\t// Calling this with no parameters will return the default:\r\n\t\t\tif (!languageCode) {\r\n\t\t\t\treturn defaultRule || (defaultRule = this.getRule(defaultCode));\r\n\t\t\t}\r\n\r\n\t\t\t// Normalize:\r\n\t\t\tlanguageCode = ',' + languageCode.toLowerCase() + ',';\r\n\r\n\t\t\t// Search for an \"exact match\":\r\n\t\t\tfor (var languageCodes in rules) {\r\n\t\t\t\tif (!rules.hasOwnProperty(languageCodes)) continue;\r\n\r\n\t\t\t\tvar isExactMatch = (languageCodes.indexOf(languageCode) !== -1);\r\n\t\t\t\tif (isExactMatch) {\r\n\t\t\t\t\treturn rules[languageCodes];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// If we've got a 4-letter code, search for a \"generic match\" (2-letter code):\r\n\t\t\tvar dash = languageCode.indexOf('-');\r\n\t\t\tif (dash !== -1) {\r\n\t\t\t\tvar twoLetterCode = languageCode.substring(1, dash);\r\n\t\t\t\treturn this.getRule(twoLetterCode);\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\t,\r\n\t\t/**\r\n\t\t * Sets the default language rule.\r\n\t\t *\r\n\t\t * @param {String} languageCode - 2-letter or 4-letter language code\r\n\t\t */\r\n\t\tsetDefaultRule: function(languageCode) {\r\n\t\t\tdefaultCode = languageCode.toLowerCase();\r\n\t\t\tdefaultRule = null; // it's lazy loaded\r\n\t\t}\r\n\t\t,\r\n\t\t/**\r\n\t\t * Defines a language rule.\r\n\t\t *\r\n\t\t * @param {String} languageCodes - A comma-separated list of 2-letter or 4-letter language codes\r\n\t\t * @param {function({Number} value, {Number} choices)|String} pluralRule - The rule; see getRule for a description.\r\n\t\t */\r\n\t\tdefineRule: function(languageCodes, pluralRule) {\r\n\t\t\t// Normalize:\r\n\t\t\tlanguageCodes = ',' + languageCodes.toLowerCase() + ',';\r\n\r\n\t\t\tvar normalizedRule;\r\n\t\t\tif (typeof pluralRule === 'string') {\r\n\t\t\t\t// Allows for aliases\r\n\t\t\t\tnormalizedRule = this.getRule(pluralRule);\r\n\t\t\t} else {\r\n\t\t\t\tnormalizedRule = function (value, choices) {\r\n\t\t\t\t\tif (typeof choices === 'number') {\r\n\t\t\t\t\t\treturn pluralRule(value, choices);\r\n\t\t\t\t\t} else if (typeof choices.length === 'number') {\r\n\t\t\t\t\t\treturn choices[pluralRule(value, choices.length)];\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\trules[languageCodes] = normalizedRule;\r\n\r\n\t\t\tif (!defaultCode) {\r\n\t\t\t\tthis.setDefaultRule(languageCodes.split(',')[1]);\r\n\t\t\t}\r\n\r\n\t\t\treturn normalizedRule;\r\n\t\t}\r\n\t};\r\n\r\n})();\r\n\r\n/**\r\n * Germanic family\r\n * English, German, Dutch, Swedish, Danish, Norwegian, Faroese\r\n * Romanic family\r\n * Spanish, Portuguese, Italian, Bulgarian\r\n * Latin/Greek family\r\n * Greek\r\n * Finno-Ugric family\r\n * Finnish, Estonian\r\n * Semitic family\r\n * Hebrew\r\n * Artificial\r\n * Esperanto\r\n * Finno-Ugric family\r\n * Hungarian\r\n * Turkic/Altaic family\r\n * Turkish\r\n */\r\nSmart.Plurals.defineRule('english,en,de,nl,sv,da,no,nn,nb,fo,es,pt,it,bg,el,fi,et,he,eo,hu,tr',\r\n\tfunction pluralRule_english(value, choices) {\r\n\t\t// singular used for 1\r\n\t\t// special cases for 0 and negative\r\n\t\tvar singular = (value === 1);\r\n\t\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\t\tvar zero = (value === 0);\r\n\t\tif (choices === 3) return (zero ? 0 : singular ? 1 : 2);\r\n\r\n\t\tvar negative = (value < 0);\r\n\t\treturn (negative ? 0 : zero ? 1 : singular ? 2 : 3);\r\n\t}\r\n);\r\n\r\n/**\r\n * Slavic family\r\n * Czech, Slovak\r\n */\r\nSmart.Plurals.defineRule('czech,cs,sk', function pluralRule_czech(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for 2-4\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value >= 2 && value <= 4);\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Romanic family\r\n * French, Brazilian Portuguese\r\n */\r\nSmart.Plurals.defineRule('french,fr,pt-br', function pluralRule_french(value, choices) {\r\n\t// singular used for 0 and 1\r\n\tvar singular = (value === 0 || value === 1);\r\n\treturn (singular ? 0 : 1);\r\n});\r\n\r\n/**\r\n * Celtic\r\n * Gaeilge (Irish)\r\n */\r\nSmart.Plurals.defineRule('irish,ga', function pluralRule_irish(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for 2\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\tvar two = (value === 2);\r\n\treturn (singular ? 0 : two ? 1 : 2);\r\n});\r\n\r\n/**\r\n * Baltic family\r\n * Latvian\r\n */\r\nSmart.Plurals.defineRule('latvian,lv', function pluralRule_latvian(value, choices) {\r\n\t// singular used for 1, 21, 31, 41... -- but not 11, 111, 211, 311, 411...\r\n\t// special case for 0\r\n\tvar singular = (value % 10 === 1 && value % 100 != 11);\r\n\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\tvar zero = (value === 0);\r\n\treturn (zero ? 0 : singular ? 1 : 2);\r\n});\r\n\r\n/**\r\n * Baltic family\r\n * Lithuanian\r\n */\r\nSmart.Plurals.defineRule('lithuanian,lt', function pluralRule_lithuanian(value, choices) {\r\n\t// singular used for numbers ending in 1 (1, 21, 31, 41...)\r\n\t// special case for numbers ending in 12-19 (12-19, 112-119, 212-219...)\r\n\tvar singular = (value % 10 === 1 && value % 100 != 11);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value % 100 >= 12 && value % 100 <= 19);\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Slavic family\r\n * Polish\r\n */\r\nSmart.Plurals.defineRule('polish,pl', function pluralRule_polish(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for numbers ending in 2-4, except for 12-14 (2-4, 22-24, 32-34...)\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value % 10 >= 2 && value % 10 <= 4 && (value % 100 < 10 || value % 100 >= 20));\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Romanic family\r\n * Romanian\r\n */\r\nSmart.Plurals.defineRule('romanian,ro', function pluralRule_romanian(value, choices) {\r\n\t// singular used for 1\r\n\t// special case for 0 and numbers ending in 01-19 (0, 2-19, 101-119, 201-219...)\r\n\tvar singular = (value === 1);\r\n\tif (choices === 2) return (singular ? 0 : 1);\r\n\r\n\tvar few = (value === 0 || (value % 100 >= 1 && value % 100 <= 19));\r\n\treturn (singular ? 0 : few ? 1 : 2);\r\n});\r\n\r\n/**\r\n * Slavic family\r\n * Russian, Ukrainian, Serbian, Croatian\r\n */\r\nSmart.Plurals.defineRule('russian,ru,uk,sr,hr', function pluralRule_russian(value, choices) {\r\n\t// singular used for numbers ending in 1, except 11 (1, 21, 31...)\r\n\t// special case for numbers ending in 2-4, except 12-14 (2-4, 22-24, 32-34...)\r\n\t// numbers ending in 11-14 use plural (11-14, 111-114, 211-214...)\r\n\tvar singular = (value % 10 === 1 && value % 100 != 11);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar few = (value % 10 >= 2 && value % 10 <= 4 && (value % 100 < 10 || value % 100 >= 20));\r\n\treturn singular ? 0 : few ? 1 : 2;\r\n});\r\n\r\n/**\r\n * Slavic family\r\n * Slovenian\r\n */\r\nSmart.Plurals.defineRule('slovenian,sl', function pluralRule_slovenian(value, choices) {\r\n\t// singular used for numbers ending in 01 (1, 101, 201...)\r\n\t// special case for numbers ending in 02 (2, 102, 202...)\r\n\t// special case for numbers ending in 03-04 (3-4, 103-104, 203-204...)\r\n\tvar singular = (value % 100 === 1);\r\n\tif (choices === 2) return singular ? 0 : 1;\r\n\r\n\tvar two = (value % 100 === 2);\r\n\tif (choices === 3) return singular ? 0 : two ? 1 : 2;\r\n\r\n\tvar few = (value % 100 === 3 || value % 100 === 4);\r\n\treturn singular ? 0 : two ? 1 : few ? 2 : 3;\r\n});\r\n\r\n\r\nmodule.exports = Smart;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Vadim/Projects/Php/zakupki/node_modules/smart-plurals/dist/Smart.Plurals.node/Smart.Plurals.node-all.js\n// module id = tXil\n// module chunks = 2 3 4 5 6 8 9 10 11 12 13 14 16 20 21 26","module.exports = \"
\\n\\t
\\n\\t\\tУважаемые клиенты!\\n\\t
\\n
\\n
{{html text}}
\\n
\\n\\t\\n\\t\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./modules/auth/signup/templates/popup-bad-email.html\n// module id = uM7G\n// module chunks = 21","/**\n * jquery.mask.js\n * @version: v1.14.13\n * @author: Igor Escobar\n *\n * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin\n *\n * Copyright (c) 2012 Igor Escobar http://igorescobar.com\n *\n * The MIT License (http://www.opensource.org/licenses/mit-license.php)\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* jshint laxbreak: true */\n/* jshint maxcomplexity:17 */\n/* global define */\n\n// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere.\n// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js\n(function (factory, jQuery, Zepto) {\n\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery || Zepto);\n }\n\n}(function ($) {\n 'use strict';\n\n var Mask = function (el, mask, options) {\n\n var p = {\n invalid: [],\n getCaret: function () {\n try {\n var sel,\n pos = 0,\n ctrl = el.get(0),\n dSel = document.selection,\n cSelStart = ctrl.selectionStart;\n\n // IE Support\n if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) {\n sel = dSel.createRange();\n sel.moveStart('character', -p.val().length);\n pos = sel.text.length;\n }\n // Firefox support\n else if (cSelStart || cSelStart === '0') {\n pos = cSelStart;\n }\n\n return pos;\n } catch (e) {}\n },\n setCaret: function(pos) {\n try {\n if (el.is(':focus')) {\n var range, ctrl = el.get(0);\n\n // Firefox, WebKit, etc..\n if (ctrl.setSelectionRange) {\n ctrl.setSelectionRange(pos, pos);\n } else { // IE\n range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n } catch (e) {}\n },\n events: function() {\n el\n .on('keydown.mask', function(e) {\n el.data('mask-keycode', e.keyCode || e.which);\n el.data('mask-previus-value', el.val());\n el.data('mask-previus-caret-pos', p.getCaret());\n p.maskDigitPosMapOld = p.maskDigitPosMap;\n })\n .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour)\n .on('paste.mask drop.mask', function() {\n setTimeout(function() {\n el.keydown().keyup();\n }, 100);\n })\n .on('change.mask', function(){\n el.data('changed', true);\n })\n .on('blur.mask', function(){\n if (oldValue !== p.val() && !el.data('changed')) {\n el.trigger('change');\n }\n el.data('changed', false);\n })\n // it's very important that this callback remains in this position\n // otherwhise oldValue it's going to work buggy\n .on('blur.mask', function() {\n oldValue = p.val();\n })\n // select all text on focus\n .on('focus.mask', function (e) {\n if (options.selectOnFocus === true) {\n $(e.target).select();\n }\n })\n // clear the value if it not complete the mask\n .on('focusout.mask', function() {\n if (options.clearIfNotMatch && !regexMask.test(p.val())) {\n p.val('');\n }\n });\n },\n getRegexMask: function() {\n var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r;\n\n for (var i = 0; i < mask.length; i++) {\n translation = jMask.translation[mask.charAt(i)];\n\n if (translation) {\n\n pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, '');\n optional = translation.optional;\n recursive = translation.recursive;\n\n if (recursive) {\n maskChunks.push(mask.charAt(i));\n oRecursive = {digit: mask.charAt(i), pattern: pattern};\n } else {\n maskChunks.push(!optional && !recursive ? pattern : (pattern + '?'));\n }\n\n } else {\n maskChunks.push(mask.charAt(i).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n }\n }\n\n r = maskChunks.join('');\n\n if (oRecursive) {\n r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?')\n .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern);\n }\n\n return new RegExp(r);\n },\n destroyEvents: function() {\n el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask '));\n },\n val: function(v) {\n var isInput = el.is('input'),\n method = isInput ? 'val' : 'text',\n r;\n\n if (arguments.length > 0) {\n if (el[method]() !== v) {\n el[method](v);\n }\n r = el;\n } else {\n r = el[method]();\n }\n\n return r;\n },\n calculateCaretPosition: function() {\n var oldVal = el.data('mask-previus-value') || '',\n newVal = p.getMasked(),\n caretPosNew = p.getCaret();\n if (oldVal !== newVal) {\n var caretPosOld = el.data('mask-previus-caret-pos') || 0,\n newValL = newVal.length,\n oldValL = oldVal.length,\n maskDigitsBeforeCaret = 0,\n maskDigitsAfterCaret = 0,\n maskDigitsBeforeCaretAll = 0,\n maskDigitsBeforeCaretAllOld = 0,\n i = 0;\n\n for (i = caretPosNew; i < newValL; i++) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsAfterCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (!p.maskDigitPosMap[i]) {\n break;\n }\n maskDigitsBeforeCaret++;\n }\n\n for (i = caretPosNew - 1; i >= 0; i--) {\n if (p.maskDigitPosMap[i]) {\n maskDigitsBeforeCaretAll++;\n }\n }\n\n for (i = caretPosOld - 1; i >= 0; i--) {\n if (p.maskDigitPosMapOld[i]) {\n maskDigitsBeforeCaretAllOld++;\n }\n }\n\n // if the cursor is at the end keep it there\n if (caretPosNew > oldValL) {\n caretPosNew = newValL * 10;\n } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) {\n if (!p.maskDigitPosMapOld[caretPosNew]) {\n var caretPos = caretPosNew;\n caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll;\n caretPosNew -= maskDigitsBeforeCaret;\n if (p.maskDigitPosMap[caretPosNew]) {\n caretPosNew = caretPos;\n }\n }\n }\n else if (caretPosNew > caretPosOld) {\n caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld;\n caretPosNew += maskDigitsAfterCaret;\n }\n }\n return caretPosNew;\n },\n behaviour: function(e) {\n e = e || window.event;\n p.invalid = [];\n\n var keyCode = el.data('mask-keycode');\n\n if ($.inArray(keyCode, jMask.byPassKeys) === -1) {\n var newVal = p.getMasked(),\n caretPos = p.getCaret();\n\n // this is a compensation to devices/browsers that don't compensate\n // caret positioning the right way\n setTimeout(function() {\n p.setCaret(p.calculateCaretPosition());\n }, 10);\n\n p.val(newVal);\n p.setCaret(caretPos);\n return p.callbacks(e);\n }\n },\n getMasked: function(skipMaskChars, val) {\n var buf = [],\n value = val === undefined ? p.val() : val + '',\n m = 0, maskLen = mask.length,\n v = 0, valLen = value.length,\n offset = 1, addMethod = 'push',\n resetPos = -1,\n maskDigitCount = 0,\n maskDigitPosArr = [],\n lastMaskChar,\n check;\n\n if (options.reverse) {\n addMethod = 'unshift';\n offset = -1;\n lastMaskChar = 0;\n m = maskLen - 1;\n v = valLen - 1;\n check = function () {\n return m > -1 && v > -1;\n };\n } else {\n lastMaskChar = maskLen - 1;\n check = function () {\n return m < maskLen && v < valLen;\n };\n }\n\n var lastUntranslatedMaskChar;\n while (check()) {\n var maskDigit = mask.charAt(m),\n valDigit = value.charAt(v),\n translation = jMask.translation[maskDigit];\n\n if (translation) {\n if (valDigit.match(translation.pattern)) {\n buf[addMethod](valDigit);\n if (translation.recursive) {\n if (resetPos === -1) {\n resetPos = m;\n } else if (m === lastMaskChar && m !== resetPos) {\n m = resetPos - offset;\n }\n\n if (lastMaskChar === resetPos) {\n m -= offset;\n }\n }\n m += offset;\n } else if (valDigit === lastUntranslatedMaskChar) {\n // matched the last untranslated (raw) mask character that we encountered\n // likely an insert offset the mask character from the last entry; fall\n // through and only increment v\n maskDigitCount--;\n lastUntranslatedMaskChar = undefined;\n } else if (translation.optional) {\n m += offset;\n v -= offset;\n } else if (translation.fallback) {\n buf[addMethod](translation.fallback);\n m += offset;\n v -= offset;\n } else {\n p.invalid.push({p: v, v: valDigit, e: translation.pattern});\n }\n v += offset;\n } else {\n if (!skipMaskChars) {\n buf[addMethod](maskDigit);\n }\n\n if (valDigit === maskDigit) {\n maskDigitPosArr.push(v);\n v += offset;\n } else {\n lastUntranslatedMaskChar = maskDigit;\n maskDigitPosArr.push(v + maskDigitCount);\n maskDigitCount++;\n }\n\n m += offset;\n }\n }\n\n var lastMaskCharDigit = mask.charAt(lastMaskChar);\n if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) {\n buf.push(lastMaskCharDigit);\n }\n\n var newVal = buf.join('');\n p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen);\n return newVal;\n },\n mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) {\n var maskDiff = options.reverse ? newVal.length - valLen : 0;\n p.maskDigitPosMap = {};\n for (var i = 0; i < maskDigitPosArr.length; i++) {\n p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1;\n }\n },\n callbacks: function (e) {\n var val = p.val(),\n changed = val !== oldValue,\n defaultArgs = [val, e, el, options],\n callback = function(name, criteria, args) {\n if (typeof options[name] === 'function' && criteria) {\n options[name].apply(this, args);\n }\n };\n\n callback('onChange', changed === true, defaultArgs);\n callback('onKeyPress', changed === true, defaultArgs);\n callback('onComplete', val.length === mask.length, defaultArgs);\n callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]);\n }\n };\n\n el = $(el);\n var jMask = this, oldValue = p.val(), regexMask;\n\n mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask;\n\n // public methods\n jMask.mask = mask;\n jMask.options = options;\n jMask.remove = function() {\n var caret = p.getCaret();\n p.destroyEvents();\n p.val(jMask.getCleanVal());\n p.setCaret(caret);\n return el;\n };\n\n // get value without mask\n jMask.getCleanVal = function() {\n return p.getMasked(true);\n };\n\n // get masked value without the value being in the input or element\n jMask.getMaskedVal = function(val) {\n return p.getMasked(false, val);\n };\n\n jMask.init = function(onlyMask) {\n onlyMask = onlyMask || false;\n options = options || {};\n\n jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch;\n jMask.byPassKeys = $.jMaskGlobals.byPassKeys;\n jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation);\n\n jMask = $.extend(true, {}, jMask, options);\n\n regexMask = p.getRegexMask();\n\n if (onlyMask) {\n p.events();\n p.val(p.getMasked());\n } else {\n if (options.placeholder) {\n el.attr('placeholder' , options.placeholder);\n }\n\n // this is necessary, otherwise if the user submit the form\n // and then press the \"back\" button, the autocomplete will erase\n // the data. Works fine on IE9+, FF, Opera, Safari.\n if (el.data('mask')) {\n el.attr('autocomplete', 'off');\n }\n\n // detect if is necessary let the user type freely.\n // for is a lot faster than forEach.\n for (var i = 0, maxlength = true; i < mask.length; i++) {\n var translation = jMask.translation[mask.charAt(i)];\n if (translation && translation.recursive) {\n maxlength = false;\n break;\n }\n }\n\n if (maxlength) {\n el.attr('maxlength', mask.length);\n }\n\n p.destroyEvents();\n p.events();\n\n var caret = p.getCaret();\n p.val(p.getMasked());\n p.setCaret(caret);\n }\n };\n\n jMask.init(!el.is('input'));\n };\n\n $.maskWatchers = {};\n var HTMLAttributes = function () {\n var input = $(this),\n options = {},\n prefix = 'data-mask-',\n mask = input.attr('data-mask');\n\n if (input.attr(prefix + 'reverse')) {\n options.reverse = true;\n }\n\n if (input.attr(prefix + 'clearifnotmatch')) {\n options.clearIfNotMatch = true;\n }\n\n if (input.attr(prefix + 'selectonfocus') === 'true') {\n options.selectOnFocus = true;\n }\n\n if (notSameMaskObject(input, mask, options)) {\n return input.data('mask', new Mask(this, mask, options));\n }\n },\n notSameMaskObject = function(field, mask, options) {\n options = options || {};\n var maskObject = $(field).data('mask'),\n stringify = JSON.stringify,\n value = $(field).val() || $(field).text();\n try {\n if (typeof mask === 'function') {\n mask = mask(value);\n }\n return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask;\n } catch (e) {}\n },\n eventSupported = function(eventName) {\n var el = document.createElement('div'), isSupported;\n\n eventName = 'on' + eventName;\n isSupported = (eventName in el);\n\n if ( !isSupported ) {\n el.setAttribute(eventName, 'return;');\n isSupported = typeof el[eventName] === 'function';\n }\n el = null;\n\n return isSupported;\n };\n\n $.fn.mask = function(mask, options) {\n options = options || {};\n var selector = this.selector,\n globals = $.jMaskGlobals,\n interval = globals.watchInterval,\n watchInputs = options.watchInputs || globals.watchInputs,\n maskFunction = function() {\n if (notSameMaskObject(this, mask, options)) {\n return $(this).data('mask', new Mask(this, mask, options));\n }\n };\n\n $(this).each(maskFunction);\n\n if (selector && selector !== '' && watchInputs) {\n clearInterval($.maskWatchers[selector]);\n $.maskWatchers[selector] = setInterval(function(){\n $(document).find(selector).each(maskFunction);\n }, interval);\n }\n return this;\n };\n\n $.fn.masked = function(val) {\n return this.data('mask').getMaskedVal(val);\n };\n\n $.fn.unmask = function() {\n clearInterval($.maskWatchers[this.selector]);\n delete $.maskWatchers[this.selector];\n return this.each(function() {\n var dataMask = $(this).data('mask');\n if (dataMask) {\n dataMask.remove().removeData('mask');\n }\n });\n };\n\n $.fn.cleanVal = function() {\n return this.data('mask').getCleanVal();\n };\n\n $.applyDataMask = function(selector) {\n selector = selector || $.jMaskGlobals.maskElements;\n var $selector = (selector instanceof $) ? selector : $(selector);\n $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes);\n };\n\n var globals = {\n maskElements: 'input,td,span,div',\n dataMaskAttr: '*[data-mask]',\n dataMask: true,\n watchInterval: 300,\n watchInputs: true,\n // old versions of chrome dont work great with input event\n useInput: !/Chrome\\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'),\n watchDataMask: false,\n byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],\n translation: {\n '0': {pattern: /\\d/},\n '9': {pattern: /\\d/, optional: true},\n '#': {pattern: /\\d/, recursive: true},\n 'A': {pattern: /[a-zA-Z0-9]/},\n 'S': {pattern: /[a-zA-Z]/}\n }\n };\n\n $.jMaskGlobals = $.jMaskGlobals || {};\n globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals);\n\n // looking for inputs with data-mask attribute\n if (globals.dataMask) {\n $.applyDataMask();\n }\n\n setInterval(function() {\n if ($.jMaskGlobals.watchDataMask) {\n $.applyDataMask();\n }\n }, globals.watchInterval);\n}, window.jQuery, window.Zepto));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Vadim/Projects/Php/zakupki/node_modules/jquery-mask-plugin/dist/jquery.mask.js\n// module id = xClS\n// module chunks = 2 16 17 21 26","import './styles/index.less';\nimport {siteUrl} from \"../../../core/utils/url\";\nimport 'jquery-mask-plugin';\nimport loading from \"../../../core/widgets/loading\";\nimport {Notifier} from \"../../../core/widgets/notifier\";\nimport {openPopup} from \"../../../core/widgets/popup\";\nimport {lang} from \"../../../core/utils/lang\";\n\nconst badDomains = ['mail.ru', 'list.ru', 'bk.ru', 'inbox.ru', 'mail.ua'];\nconst $wrap = $('#wrapSignup');\nconst $form = $wrap.find('form');\nlet recaptchaEnabled = false;\n\nexport function init(options) {\n\tconst o = {\n\t\tautoplayVideo: false,\n recaptchaEnabled: false,\n\t\t...options\n\t};\n\n\trecaptchaEnabled = o.recaptchaEnabled;\n\n\tlet isProcessing = false;\n\tinitForm($form, () => {\n\t\tif (isProcessing) {\n\t\t\treturn;\n\t\t}\n\t\tisProcessing = true;\n\t\tcheckBadEmail($form)\n\t\t\t.then(() => doSubmit($form))\n\t\t\t.then((response) => {\n\t\t\t\tlocation.href = response.redirect || siteUrl('');\n\t\t\t})\n\t\t\t.always(() => {\n\t\t\t\tisProcessing = false;\n\t\t\t\tresetRecaptcha();\n\t\t\t})\n\t});\n\n\t$form.find('select[rel=chosen]').chosen();\n\n $(() => {\n\t initPlayer(o.autoplayVideo);\n });\n\n window.recaptchaCallback = () => {\n $form.submit();\n };\n}\n\nfunction initForm($form, submitHandler) {\n\t$form.validate({\n\t\tignore: '[type=hidden]',\n\t\tsubmitHandler: submitHandler,\n invalidHandler: () => { resetRecaptcha(); },\n\t\thighlight: (element, errorClass, validClass) => {\n\t\t\t$(element).closest('.form-row')\n\t\t\t\t.removeClass('error valid')\n\t\t\t\t.addClass(errorClass).removeClass(validClass);\n\t\t},\n\t\tunhighlight: (element, errorClass, validClass) => {\n\t\t\t$(element).closest('.form-row')\n\t\t\t\t.removeClass('error valid')\n\t\t\t\t.removeClass(errorClass).addClass(validClass);\n\t\t}\n\t});\n}\n\nfunction initPlayer(autoplay = false) {\n\tconst $regVideo = $('#reg_video');\n\tconst player = $regVideo[0];\n\tplayer.volume = 0.5;\n\tlet paused = !autoplay;\n\tif (autoplay) {\n\t\tplayer.play();\n\t}\n\t$regVideo.click(() => {\n\t\tif (paused) {\n\t\t\tplayer.play();\n\t\t}\n\t\telse {\n\t\t\tplayer.pause();\n\t\t}\n\t\tpaused = !paused;\n\t});\n}\n\n/** @return {JQuery.Promise} */\nfunction checkBadEmail($form) {\n\t/** @type {JQuery.Deferred} */\n\tconst def = $.Deferred();\n\tconst $emailField = $form.find('[name=reg_email]');\n\tconst email = $emailField.val();\n\tconst domain = email.toLowerCase().split('@', 2)[1].replace(/\\s/g, '');\n\tif (badDomains.indexOf(domain) == -1) {\n\t\tdef.resolve();\n\t}\n\telse {\n\t\tconst text = lang('txt_email_popup', {\n\t\t\tdomains_list: badDomains.map(d => d.toUpperCase()).join(', '),\n\t\t\tdomain: domain.toUpperCase()\n\t\t});\n\t\tconst template = require('./templates/popup-bad-email.html');\n\t\tconst content = $.tmpl(template, {text});\n\t\topenPopup(content, {\n\t\t\tcssClass: 'bad-email-popup',\n\t\t\tonClose: (result) => {\n\t\t\t\tif (result == 'ok') {\n\t\t\t\t\tdef.resolve();\n\t\t\t\t}\n\t\t\t\telse if (result == 'cancel') {\n\t\t\t\t\t$emailField.val('').focus();\n\t\t\t\t\t$form.validate().element($emailField);\n\t\t\t\t\tdef.reject();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdef.reject();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn def.promise();\n}\n\n/** @return {JQuery.Promise} */\nfunction doSubmit($form) {\n\tloading.show();\n\treturn $.post($form.attr('action'), $form.serialize(), null, 'json')\n\t\t.always(loading.hide)\n\t\t.fail(Notifier.errorXHR)\n\t\t.then((response) => {\n\t\t\tresponse = response || {};\n\t\t\tconst def = $.Deferred();\n\t\t\tif (!response.success) {\n\t\t\t\tif (response.errors) {\n\t\t\t\t\t$form.validate().showErrors(response.errors);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tNotifier.error(response.message);\n\t\t\t\t}\n\t\t\t\tdef.reject();\n\t\t\t}\n\t\t\telse {\n if(window.ga) {\n \tga('send', 'event', {\n eventCategory: 'registration',\n eventAction: 'send_info',\n });\n }\n\t\t\t\tdef.resolve(response);\n\t\t\t}\n\t\t\treturn def.promise();\n\t\t});\n}\n\nfunction resetRecaptcha() {\n\tif(recaptchaEnabled) {\n grecaptcha.reset();\n }\n}\n\n$.validator.messages.tel = 'Пожалуйста, введите корректный номер телефона.';\n$.validator.methods.tel = function (value, element) {\n\t// a bit hacky validation method:\n\t// grab unmasked value from input using cleanVal() and count digits,\n\t// must be 10 for ukrainian and russian phone numbers (without country code)\n\treturn this.optional(element) || $(element).cleanVal().length == 10;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./modules/auth/signup/index.js"],"sourceRoot":""}