{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Model/TemplateKind.ts","webpack:///./src/Model/FontFamilyKind.ts","webpack:///./src/Model/WidgetType.ts","webpack:///./src/Model/AppearanceType.ts","webpack:///./src/Template/Templater.ts","webpack:///./src/Util/DeviceUtil.ts","webpack:///./src/Model/SliderState.ts","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./src/Model/TemplateMode.ts","webpack:///./src/Analytics/ExperimentSegment.ts","webpack:///./src/Model/FontFamily.ts","webpack:///./src/Util/FontFamilyHelper.ts","webpack:///./src/Util/PascalCaseConverter.ts","webpack:///./src/Widget/WidgetContent.ts","webpack:///./src/Analytics/IbeTracker.ts","webpack:///./src/Analytics/MockTracker.ts","webpack:///./src/Factory/TrackerFactory.ts","webpack:///./src/Model/WidgetPosition.ts","webpack:///./src/Model/ImageType.ts","webpack:///./src/Model/IconKind.ts","webpack:///./src/Widget/RatePlanWidget/RatePlanWidgetContent.ts","webpack:///./src/Widget/SliderWidget/SliderWidgetContent.ts","webpack:///./src/Util/HtmlUtil.ts","webpack:///./src/Widget/RatePlanWidget/TemplateStatic/TemplateStatic.scss","webpack:///./src/Widget/RatePlanWidget/TemplateStatic/TemplateStatic.html","webpack:///./src/Widget/RatePlanWidget/TemplateModal/TemplateModal.scss","webpack:///./src/Widget/RatePlanWidget/TemplateModal/TemplateModal.html","webpack:///./src/Widget/RatePlanWidget/TemplateCompare/TemplateCompare.scss","webpack:///./src/Widget/RatePlanWidget/TemplateCompare/TemplateCompare.html","webpack:///./src/Widget/SliderWidget/Button/PriceCompareTemplateButton.scss","webpack:///./src/Widget/SliderWidget/Button/PriceCompareTemplateButton.html","webpack:///./src/Widget/SliderWidget/Button/TemplateButton.scss","webpack:///./src/Widget/SliderWidget/Button/TemplateButton.html","webpack:///./src/Widget/SliderWidget/TemplateSlider.scss","webpack:///./src/Widget/SliderWidget/TemplateSlider.html","webpack:///./src/Model/ConditionType.ts","webpack:///./src/Model/ConditionKind.ts","webpack:///./src/Condition/UrlMatchCondition.ts","webpack:///./src/Model/TriggerType.ts","webpack:///./src/Model/TriggerAction.ts","webpack:///./src/Util/DateUtil.ts","webpack:///./src/Condition/ShowFromDateCondition.ts","webpack:///./src/Condition/ShowUntilDateCondition.ts","webpack:///./src/Factory/ConditionFactory.ts","webpack:///./src/Appearance/AppearanceStatic.ts","webpack:///./src/Manager/StaticPaneManager.ts","webpack:///./src/Manager/WidgetManager.ts","webpack:///./src/Appearance/StaticPane/StaticPane.ts","webpack:///./src/Appearance/StaticPane/MockStaticPane.ts","webpack:///./src/Factory/StaticPaneFactory.ts","webpack:///./src/Appearance/AppearanceModal.ts","webpack:///./src/Manager/ModalManager.ts","webpack:///./src/Appearance/AppearanceButton.ts","webpack:///./src/Manager/MobileManager.ts","webpack:///./src/Appearance/Modal/Modal.ts","webpack:///./src/Appearance/Modal/MockModal.ts","webpack:///./src/Factory/ModalFactory.ts","webpack:///./src/Appearance/Button/Button.ts","webpack:///./src/Appearance/Button/MockButton.ts","webpack:///./src/Factory/MobileFactory.ts","webpack:///./src/Appearance/AppearanceSlider.ts","webpack:///./src/Manager/SliderManager.ts","webpack:///./src/Appearance/Slider/MockSlider.ts","webpack:///./src/Appearance/Slider/Slider.ts","webpack:///./src/Factory/SliderFactory.ts","webpack:///./src/Factory/AppearanceFactory.ts","webpack:///./src/Storage/PersistentStorage.ts","webpack:///./src/Trigger/TriggerWithTimeout.ts","webpack:///./src/Trigger/TriggerWithTimeout/TriggerPageOpenStrategy.ts","webpack:///./src/Trigger/TriggerWithTimeout/TriggerPageLeaveStrategy.ts","webpack:///./src/Factory/TriggerFactory.ts","webpack:///./src/Widget/Widget.ts","webpack:///./src/Resolver/WidgetHostResolver.ts","webpack:///./src/Factory/WidgetFactory.ts","webpack:///./src/Strategy/MobileStrategy.ts","webpack:///./src/Strategy/DesktopStrategy.ts","webpack:///./src/tl.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","TemplateKind","FontFamilyKind","WidgetType","AppearanceType","Templater","parse","view","params","parseEach","parseIf","substitute","createFontLink","font","baseUrl","Arial","FranklinGothicDemi","indexOf","kind","fontLink","document","createElement","setAttribute","replace","sanitizeCssVar","this","sanitize","substring","body","result","oldValue","push","join","traverse","parts","split","currentValue","undefined","part","input","whitelist","DeviceUtil","isMobile","test","navigator","userAgent","isIOS","isMobileSize","window","innerWidth","platform","maxTouchPoints","SliderState","useSourceMap","list","toString","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","TemplateMode","ExperimentSegment","experiment","segments","segmentString","segmentCache","localStorage","getItem","keyPrefix","generate","setItem","e","min","max","Math","floor","random","FontFamily","style","FontFamilyHelper","getFont","index","fonts","EBGaramond","Georgia","Helvetica","Lato","Lora","NotoSans","NotoSerif","OpenSans","PTSans","PTSerif","Roboto","RobotoSlab","Tahoma","TimesNewRoman","Ubuntu","Verdana","PascalCaseConverter","toKebabCase","string","x","y","toLowerCase","WidgetContent","_cacheIcons","getBaseUrl","hostUrl","TL","integration","baseHost","processTemplate","html","container","innerHTML","firstElementChild","insertAdjacentHTML","processStyles","styles","appendChild","createTextNode","processIcon","iconContainer","iconKind","_this","ajax","XMLHttpRequest","path","open","toLocaleLowerCase","send","onload","target","status","responseText","updateStyles","defaultStyles","keys","customStyles","name_1","regexp","RegExp","parseInt","processFonts","htmlLinks","name_2","htmlFontLink","IbeTracker","_metricService","_eventQueue","resolveTrackerManager","trackerManager","IbeMetric","forEach","event","type","callback","run","_require","ex","MockTracker","console","log","TrackerFactory","getTracker","WidgetPosition","ImageType","IconKind","extendStatics","__extends","b","setPrototypeOf","__proto__","Array","__","constructor","_super","RatePlanWidgetContent","widget","host","RatePlan","_isPresentational","_tracker","_widget","_host","sort","configurable","getProviderId","providerId","canShow","title","button","getSubmitUrl","location","href","trackEvent","eventName","action","provider","amount","number","widgetKey","isPriceCompareExperimentActivated","pcData","assign","segment","getOtaPriceCompareSegment","layout","bfPrice","widgetContent","minBookingFormPrice","otaPrice","minOtaPrice","priceDifference","render","templateKind","templateMode","submitCb","hideCb","resizeCb","isPresentational","template","Static","Modal","Comparer","behavior","processComparerTemplate","processRatePlanTemplate","imageType","Icon","querySelector","fontHtmlLinks","addEventListener","bookingFormUrl","hasRatePlans","hasPromoCode","ratePlans","selectedRatePlans","promoCode","urlParts","cashbackId","cashbackType","imageUrl","imageAbsoluteUrl","hasImage","File","hasIcon","text","description","image","imagePosition","modifiers","Cashback","sourceName","onSiteText","SlideDirection","HtmlUtil","toggleClass","element","className","forceValue","original","filter","transform","webkitTransform","SliderWidgetContent","_dynamicStyles","_lastSlideIndex","_currentSlideIndex","_sliderOpened","_needButtonAnimation","_isOtaPriceCompareSWActivated","_cashbackIndex","removedPriceCompareWidget","_behavior","_slides","slides","slice","self","isInOldSegment","display","splice","Slider","createSlider","setTimeout","setSliderHeight","Mobile","Button","_buttonElement","createButton","getCashbackWidgetIndex","_a","getSourceNameForPriceCompareButton","_b","_c","_d","_e","_f","stylesButton","templateButton","newPromoButtonActivated","priceCompareSegment","swPriceCompareVisible","processButtonTemplate","lang","SmartWidget","_config","language","labelText","sourceNameText","innerText","btnLabel","width","animationEndHandler_1","getBoundingClientRect","removeEventListener","toggleSlider","stylesSlider","templateSlider","processSliderTemplate","links","insertBefore","_sliderList","_sliderBar","widgetType","elements","children","element_1","nodeName","textContent","getAttribute","slide","point","_dynamicStyleElement","linkElement","setSlide","addSliderEventListeners","buttonLimitHeight","appearance","bottomIndent","slider","innerHeight","setStyle","toPrev","animateSlide","Right","toNext","Left","xTouchStart","hasAttribute","slideIndex","touches","clientX","diff","abs","updateBar","points","querySelectorAll","arrowLeft","arrowRight","direction","from","to","clearTimeout","_animationId","slideFrom","slideTo","updateSliderHeight","height","clientHeight","currentSliderHeight","onloadingdone","newSliderHeight","hasBar","align","position","___CSS_LOADER_API_IMPORT___","ConditionType","ConditionKind","TriggerType","TriggerAction","LocationMatchCondition","conditions","_conditions","check","condition","conditionA","conditionB","compare","UrlMatch","strength","matches","Number","MIN_VALUE","reduce","acc","match","matchUrl","strengthA","strengthB","urlLengthA","urlLengthB","BaseUrlMatchCondition","_condition","matchQueryParams","parameter","pathname","search","stringToRegexp","UrlMatchCondition","apply","arguments","UrlNotMatchCondition","UrlNotMatch","DateUtil","parseUtcTime","dateString","dateParts","tzOffset","Date","UTC","ShowFromDateCondition","utcNow","getTime","showFromDate","ShowUntilDateCondition","showUntilDate","ConditionFactory","build","models","factories","model","accepted","factory","accept","LocationMatchConditionAggregatedFactory","_models","WithParameter","ConditionWithParameterAggregatedFactory","ConditionWithParameterFactory","ShowFromDate","ShowUntilDate","AppearanceStatic","manager","_manager","_appearance","show","showCb","hide","destroy","hasEmptySlot","StaticPaneManager","pane","_pane","_slots","takeSlot","priority","freeSlot","findSlotIndex","slotIndex","emptySlotIndex","widgetSlotIndex","WidgetManager","resolveManager","widgetsManager","embed","resize","close","StaticPane","widgetManager","MockStaticPane","StaticPaneFactory","getStaticPane","AppearanceModal","ModalManager","modal","_modal","_shown","AppearanceButton","state","size","MobileManager","mobile","_mobile","MockModal","_elements","removeChild","ModalFactory","getModal","MockButton","MobileFactory","getButton","AppearanceSlider","SliderManager","_slider","_content","Desktop","MockSlider","SliderFactory","getSlider","AppearanceFactory","PersistentStorage","set","TriggerWithTimeout","trigger","strategy","_callback","_trigger","_strategy","register","calcTimeout","callbackOnExpire","reopenTimeoutEnabled","newExpireDate","reopenTimeout","getExpireTimeoutStorageKey","toISOString","NaN","expireTimeoutStorageKey","expireTime","nowDate","expireDate","timeout","TriggerPageOpenStrategy","_registerId","getRandomDelay","isNaN","TriggerPageLeaveStrategy","_canOpen","timeoutExpired","timer","ua","documentElement","clientY","TriggerFactory","Timeout","PageOpen","PageLeave","Widget","every","canBeCached","hideAction","url","WidgetHostResolver","resolve","hosts","group","providerHosts","__assign","WidgetFactory","comparerModel","widgetModel","appearanceType","sliderModel","buttonModel","MobileStrategy","config","isSame","pageOpenSetting","setting","pageOpen","pageOpenWidgets","groups","widgets","triggerAction","buildButtonWidget","a","DesktopStrategy","_pageLeaveWidgets","pageLeaveSetting","pageLeave","desktop","_pageOpenWidget","buildSliderWidget","TLSmartWidget","_windowWidth"],"mappings":"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","file":"tl.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 28);\n","export var TemplateKind;\r\n(function (TemplateKind) {\r\n TemplateKind[\"Static\"] = \"Static\";\r\n TemplateKind[\"Modal\"] = \"Modal\";\r\n TemplateKind[\"Slider\"] = \"Slider\";\r\n TemplateKind[\"Mobile\"] = \"Mobile\";\r\n TemplateKind[\"Comparer\"] = \"Comparer\";\r\n})(TemplateKind || (TemplateKind = {}));\r\n","export var FontFamilyKind;\r\n(function (FontFamilyKind) {\r\n // Sans Serif\r\n FontFamilyKind[FontFamilyKind[\"Arial\"] = 1] = \"Arial\";\r\n FontFamilyKind[FontFamilyKind[\"Tahoma\"] = 2] = \"Tahoma\";\r\n FontFamilyKind[FontFamilyKind[\"Verdana\"] = 3] = \"Verdana\";\r\n FontFamilyKind[FontFamilyKind[\"OpenSans\"] = 4] = \"OpenSans\";\r\n FontFamilyKind[FontFamilyKind[\"PTSans\"] = 5] = \"PTSans\";\r\n FontFamilyKind[FontFamilyKind[\"Ubuntu\"] = 6] = \"Ubuntu\";\r\n FontFamilyKind[FontFamilyKind[\"Roboto\"] = 7] = \"Roboto\";\r\n FontFamilyKind[FontFamilyKind[\"NotoSans\"] = 8] = \"NotoSans\";\r\n FontFamilyKind[FontFamilyKind[\"Lato\"] = 9] = \"Lato\";\r\n FontFamilyKind[FontFamilyKind[\"Helvetica\"] = 10] = \"Helvetica\";\r\n FontFamilyKind[FontFamilyKind[\"FranklinGothicDemi\"] = 11] = \"FranklinGothicDemi\";\r\n // Serif\r\n FontFamilyKind[FontFamilyKind[\"TimesNewRoman\"] = 12] = \"TimesNewRoman\";\r\n FontFamilyKind[FontFamilyKind[\"Georgia\"] = 13] = \"Georgia\";\r\n FontFamilyKind[FontFamilyKind[\"Lora\"] = 14] = \"Lora\";\r\n FontFamilyKind[FontFamilyKind[\"RobotoSlab\"] = 15] = \"RobotoSlab\";\r\n FontFamilyKind[FontFamilyKind[\"PTSerif\"] = 16] = \"PTSerif\";\r\n FontFamilyKind[FontFamilyKind[\"NotoSerif\"] = 17] = \"NotoSerif\";\r\n FontFamilyKind[FontFamilyKind[\"EBGaramond\"] = 18] = \"EBGaramond\";\r\n})(FontFamilyKind || (FontFamilyKind = {}));\r\n","export var WidgetType;\r\n(function (WidgetType) {\r\n WidgetType[\"Unknown\"] = \"Unknown\";\r\n WidgetType[\"RatePlan\"] = \"RatePlan\";\r\n WidgetType[\"Cashback\"] = \"Cashback\";\r\n WidgetType[\"Button\"] = \"Button\";\r\n WidgetType[\"Slider\"] = \"Slider\";\r\n WidgetType[\"Comparer\"] = \"Comparer\";\r\n})(WidgetType || (WidgetType = {}));\r\n","export var AppearanceType;\r\n(function (AppearanceType) {\r\n AppearanceType[\"Unknown\"] = \"Unknown\";\r\n AppearanceType[\"Static\"] = \"Static\";\r\n AppearanceType[\"Modal\"] = \"Modal\";\r\n AppearanceType[\"Button\"] = \"Button\";\r\n AppearanceType[\"Slider\"] = \"Slider\";\r\n AppearanceType[\"Comparer\"] = \"Comparer\"; // HYPONLINE-91\r\n})(AppearanceType || (AppearanceType = {}));\r\n","import { FontFamilyKind } from '../Model/FontFamilyKind';\r\nvar Templater = /** @class */ (function () {\r\n function Templater() {\r\n }\r\n Templater.parse = function (view, params) {\r\n view = Templater.parseEach(view, params);\r\n view = Templater.parseIf(view, params);\r\n view = Templater.substitute(view, params);\r\n return view;\r\n };\r\n Templater.createFontLink = function (font, baseUrl) {\r\n if ([FontFamilyKind.Arial, FontFamilyKind.FranklinGothicDemi].indexOf(font.kind) > -1) {\r\n return null;\r\n }\r\n var fontLink = document.createElement('link');\r\n fontLink.setAttribute('type', 'text/css');\r\n fontLink.setAttribute('rel', 'stylesheet');\r\n fontLink.setAttribute('href', baseUrl + '/gfonts/css?family='\r\n + font.name.replace(/ /g, '+')\r\n + ':300,400,600,700&subset=cyrillic-ext,latin');\r\n return fontLink;\r\n };\r\n Templater.sanitizeCssVar = function (value) {\r\n if (this.sanitize(value, []) === value && value.indexOf(';') === -1) {\r\n return value;\r\n }\r\n return '';\r\n };\r\n Templater.parseEach = function (view, params) {\r\n if (params === void 0) { params = {}; }\r\n view = view.replace(/{{each (\\w+) as (\\w+)}}([\\s\\S]*?){{\\/each}}/g, function (substring, key, value, body) {\r\n var result = [];\r\n if (params[key]) {\r\n for (var i in params[key]) {\r\n if (params[key].hasOwnProperty(i)) {\r\n var oldValue = params[value];\r\n params[value] = params[key][i];\r\n result.push(Templater.parse(body, params));\r\n params[value] = oldValue;\r\n }\r\n }\r\n }\r\n return result.join('');\r\n });\r\n return view;\r\n };\r\n Templater.parseIf = function (view, params) {\r\n if (params === void 0) { params = {}; }\r\n view = view.replace(/{{if ([\\w\\.]+)}}([\\s\\S]*?){{\\/if}}/g, function (substring, key, body) {\r\n if (Templater.traverse(key, params)) {\r\n return body;\r\n }\r\n return '';\r\n });\r\n return view;\r\n };\r\n Templater.traverse = function (key, params) {\r\n if (params === void 0) { params = {}; }\r\n var parts = key.split('.');\r\n var currentValue = undefined;\r\n for (var part in parts) {\r\n if (parts.hasOwnProperty(part)) {\r\n if (currentValue !== undefined) {\r\n currentValue = currentValue[parts[part]];\r\n }\r\n else {\r\n currentValue = params[parts[part]];\r\n }\r\n }\r\n }\r\n return currentValue;\r\n };\r\n Templater.substitute = function (view, params) {\r\n if (params === void 0) { params = {}; }\r\n view = view.replace(/{{([^}]+)}}/g, function (substring, key) {\r\n return Templater.sanitize(Templater.traverse(key, params), ['b', 'strong', 'i', 'em', 'u']);\r\n });\r\n return view;\r\n };\r\n Templater.sanitize = function (input, whitelist) {\r\n return (input || '').replace(/(<\\/?([^>]+)>)/ig, function (substring, key, body) {\r\n return whitelist.indexOf(body) !== -1 ? substring : '';\r\n });\r\n };\r\n return Templater;\r\n}());\r\nexport { Templater };\r\n","var DeviceUtil = /** @class */ (function () {\r\n function DeviceUtil() {\r\n }\r\n DeviceUtil.isMobile = function () {\r\n return /Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || DeviceUtil.isIOS() || DeviceUtil.isMobileSize();\r\n };\r\n DeviceUtil.isMobileSize = function () {\r\n return window.innerWidth <= 500;\r\n };\r\n DeviceUtil.isIOS = function () {\r\n return /iPad|iPhone|iPod/i.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);\r\n };\r\n return DeviceUtil;\r\n}());\r\nexport { DeviceUtil };\r\n","export var SliderState;\r\n(function (SliderState) {\r\n SliderState[\"Button\"] = \"Button\";\r\n SliderState[\"Slider\"] = \"Slider\";\r\n})(SliderState || (SliderState = {}));\r\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","export var TemplateMode;\r\n(function (TemplateMode) {\r\n TemplateMode[\"Desktop\"] = \"Desktop\";\r\n TemplateMode[\"Mobile\"] = \"Mobile\";\r\n})(TemplateMode || (TemplateMode = {}));\r\n","var ExperimentSegment = /** @class */ (function () {\r\n function ExperimentSegment() {\r\n }\r\n ExperimentSegment.get = function (experiment, segments) {\r\n try {\r\n var segmentString = ExperimentSegment.segmentCache[experiment] || localStorage.getItem(ExperimentSegment.keyPrefix + experiment);\r\n if (!segmentString) {\r\n segmentString = segments[ExperimentSegment.generate(1, segments.length) - 1];\r\n localStorage.setItem(ExperimentSegment.keyPrefix + experiment, segmentString);\r\n }\r\n ExperimentSegment.segmentCache[experiment] = segmentString;\r\n return segmentString;\r\n }\r\n catch (e) {\r\n if (!ExperimentSegment.segmentCache[experiment]) {\r\n ExperimentSegment.segmentCache[experiment] = segments[ExperimentSegment.generate(1, segments.length) - 1];\r\n }\r\n return ExperimentSegment.segmentCache[experiment];\r\n }\r\n };\r\n ExperimentSegment.generate = function (min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n };\r\n ExperimentSegment.keyPrefix = 'tl-sw-segment-';\r\n ExperimentSegment.segmentCache = {};\r\n return ExperimentSegment;\r\n}());\r\nexport { ExperimentSegment };\r\n","var FontFamily = /** @class */ (function () {\r\n function FontFamily(kind, name, style) {\r\n this.kind = kind;\r\n this.name = name;\r\n this.style = style;\r\n }\r\n return FontFamily;\r\n}());\r\nexport { FontFamily };\r\n","import { FontFamilyKind } from '../Model/FontFamilyKind';\r\nimport { FontFamily } from '../Model/FontFamily';\r\nvar FontFamilyHelper = /** @class */ (function () {\r\n function FontFamilyHelper() {\r\n }\r\n FontFamilyHelper.getFont = function (kind) {\r\n for (var index in this.fonts) {\r\n if (this.fonts[index].kind === kind) {\r\n return this.fonts[index];\r\n }\r\n }\r\n return this.fonts[0];\r\n };\r\n FontFamilyHelper.fonts = [\r\n new FontFamily(FontFamilyKind.Arial, 'Arial', 'Arial, Helvetica, Tahoma, \"Open Sans\", sans-serif'),\r\n new FontFamily(FontFamilyKind.EBGaramond, 'EB Garamond', '\"EB Garamond\", \"PT Serif\", Times, \"Times New Roman\", serif'),\r\n new FontFamily(FontFamilyKind.FranklinGothicDemi, 'Franklin Gothic Demi', '\"Franklin Gothic Demi\", Roboto, Verdana, \"Open Sans\", sans-serif'),\r\n new FontFamily(FontFamilyKind.Georgia, 'Georgia', 'Georgia, \"Times New Roman\", Lora, \"PT Serif\", serif'),\r\n new FontFamily(FontFamilyKind.Helvetica, 'Helvetica', 'Helvetica, Arial, \"PT Sans\", Lato, sans-serif'),\r\n new FontFamily(FontFamilyKind.Lato, 'Lato', 'Lato, \"PT Sans\", Arial, Helvetica, sans-Serif'),\r\n new FontFamily(FontFamilyKind.Lora, 'Lora', 'Lora, \"Roboto Slab\", Georgia, \"PT Serif\", serif'),\r\n new FontFamily(FontFamilyKind.NotoSans, 'Noto Sans', '\"Noto Sans\", Helvetica, Arial, \"PT Sans\", sans-serif'),\r\n new FontFamily(FontFamilyKind.NotoSerif, 'Noto Serif', '\"Noto Serif\", \"PT Serif\", Times, \"Times New Roman\", serif'),\r\n new FontFamily(FontFamilyKind.OpenSans, 'Open Sans', '\"Open Sans\", \"PT Sans\", Tahoma, Helvetica, sans-serif'),\r\n new FontFamily(FontFamilyKind.PTSans, 'PT Sans', '\"PT Sans\", \"Open Sans\", Arial, Tahoma, sans-serif'),\r\n new FontFamily(FontFamilyKind.PTSerif, 'PT Serif', '\"PT Serif\", \"Noto Serif\", Times, \"Times New Roman\", serif'),\r\n new FontFamily(FontFamilyKind.Roboto, 'Roboto', 'Roboto, Ubuntu, Arial, Tahoma, sans-serif'),\r\n new FontFamily(FontFamilyKind.RobotoSlab, 'Roboto Slab', '\"Roboto Slab\", Lora, Georgia, \"PT Serif\", serif'),\r\n new FontFamily(FontFamilyKind.Tahoma, 'Tahoma', 'Tahoma, \"PT Sans\", Ubuntu, Arial, sans-serif'),\r\n new FontFamily(FontFamilyKind.TimesNewRoman, 'Times New Roman', '\"Times New Roman\", Times, Georgia, \"PT Serif\", serif'),\r\n new FontFamily(FontFamilyKind.Ubuntu, 'Ubuntu', 'Ubuntu, Roboto, \"Open Sans\", Tahoma, sans-serif'),\r\n new FontFamily(FontFamilyKind.Verdana, 'Verdana', 'Verdana, Ubuntu, Roboto, Tahoma, sans-serif')\r\n ];\r\n return FontFamilyHelper;\r\n}());\r\nexport { FontFamilyHelper };\r\n","var PascalCaseConverter = /** @class */ (function () {\r\n function PascalCaseConverter() {\r\n }\r\n PascalCaseConverter.toKebabCase = function (string) {\r\n return string.replace(/(?:^|\\.?)([A-Z])/g, function (x, y) {\r\n return '-' + y.toLowerCase();\r\n }).replace(/^-/, '');\r\n };\r\n return PascalCaseConverter;\r\n}());\r\nexport { PascalCaseConverter };\r\n","import { Templater } from '../Template/Templater';\r\nimport { FontFamilyHelper } from '../Util/FontFamilyHelper';\r\nimport { PascalCaseConverter } from '../Util/PascalCaseConverter';\r\n/* tslint:enable:no-any */\r\nvar WidgetContent = /** @class */ (function () {\r\n function WidgetContent() {\r\n this._cacheIcons = {};\r\n }\r\n WidgetContent.prototype.getBaseUrl = function () {\r\n // Fix Firefox bug with unsupported base tag in iframe\r\n var hostUrl = TL && TL.integration && TL.integration.baseHost;\r\n return hostUrl ? 'https://' + hostUrl : '';\r\n };\r\n WidgetContent.prototype.processTemplate = function (html) {\r\n var container = document.createElement('template');\r\n if ('content' in document.createElement('template')) {\r\n container.innerHTML = html;\r\n return container.content.firstElementChild;\r\n }\r\n else {\r\n container.insertAdjacentHTML('beforeend', html);\r\n return container.firstElementChild;\r\n }\r\n };\r\n WidgetContent.prototype.processStyles = function (styles) {\r\n var style = document.createElement('style');\r\n style.appendChild(document.createTextNode(styles));\r\n return style;\r\n };\r\n WidgetContent.prototype.processIcon = function (iconContainer, iconKind) {\r\n var _this = this;\r\n if (!iconKind) {\r\n return;\r\n }\r\n if (this._cacheIcons[iconKind]) {\r\n iconContainer.innerHTML = this._cacheIcons[iconKind];\r\n return;\r\n }\r\n var ajax = new XMLHttpRequest(), path = this.getBaseUrl() ? this.getBaseUrl() + '/smartwidget/' : '';\r\n ajax.open('GET', path + \"icons/\" + iconKind.toLocaleLowerCase() + \".svg\", true);\r\n ajax.send();\r\n /* tslint:disable:no-any */\r\n ajax.onload = function (e) {\r\n if (e.target.status === 200) {\r\n iconContainer.innerHTML = _this._cacheIcons[iconKind] = ajax.responseText;\r\n }\r\n };\r\n /* tslint:enable:no-any */\r\n };\r\n WidgetContent.prototype.updateStyles = function (styles, defaultStyles) {\r\n if (!styles || Object.keys(styles).length === 0) {\r\n return defaultStyles;\r\n }\r\n var customStyles = defaultStyles;\r\n for (var key in styles) {\r\n if (styles.hasOwnProperty(key)) {\r\n var name_1 = PascalCaseConverter.toKebabCase(key);\r\n var value = styles[key];\r\n var regexp = new RegExp(\"--\" + name_1 + \":([^;}]+)(;|[^}])\");\r\n if (name_1.indexOf('font-size') > -1) {\r\n value += 'px';\r\n }\r\n if (name_1.indexOf('font-family') > -1) {\r\n value = FontFamilyHelper.getFont(parseInt(value, 10)).style;\r\n }\r\n customStyles = customStyles.replace(regexp, \"--\" + name_1 + \": \" + Templater.sanitizeCssVar(value.toString()) + \";\");\r\n }\r\n }\r\n return customStyles;\r\n };\r\n WidgetContent.prototype.processFonts = function (styles) {\r\n var htmlLinks = [];\r\n if (!styles || Object.keys(styles).length === 0) {\r\n return htmlLinks;\r\n }\r\n for (var key in styles) {\r\n if (styles.hasOwnProperty(key)) {\r\n var name_2 = PascalCaseConverter.toKebabCase(key);\r\n var value = styles[key];\r\n if (name_2.indexOf('font-family') > -1) {\r\n var font = FontFamilyHelper.getFont(parseInt(value, 10));\r\n var htmlFontLink = Templater.createFontLink(font, this.getBaseUrl());\r\n if (htmlFontLink) {\r\n htmlLinks.push(htmlFontLink);\r\n }\r\n }\r\n }\r\n }\r\n return htmlLinks;\r\n };\r\n return WidgetContent;\r\n}());\r\nexport { WidgetContent };\r\n","var IbeTracker = /** @class */ (function () {\r\n function IbeTracker() {\r\n var _this = this;\r\n this._metricService = null;\r\n this._eventQueue = [];\r\n this.resolveTrackerManager(function (trackerManager) {\r\n _this._metricService = trackerManager.IbeMetric\r\n && trackerManager.IbeMetric();\r\n _this._eventQueue.forEach(function (event) {\r\n _this.event(event.type, event.data);\r\n });\r\n });\r\n }\r\n IbeTracker.prototype.resolveTrackerManager = function (callback) {\r\n window.TL.modules.run(function (_require) {\r\n callback(_require('int/tracker'));\r\n });\r\n };\r\n IbeTracker.prototype.event = function (type, data) {\r\n try {\r\n if (this._metricService) {\r\n this._metricService.event(type, data);\r\n }\r\n else {\r\n this._eventQueue.push({\r\n type: type,\r\n data: data\r\n });\r\n }\r\n }\r\n catch (ex) {\r\n }\r\n };\r\n return IbeTracker;\r\n}());\r\nexport { IbeTracker };\r\n","/* tslint:disable:no-console */\r\nvar MockTracker = /** @class */ (function () {\r\n function MockTracker() {\r\n }\r\n MockTracker.prototype.event = function (type, data) {\r\n console.log(type, data);\r\n };\r\n return MockTracker;\r\n}());\r\nexport { MockTracker };\r\n","import { IbeTracker } from '../Analytics/IbeTracker';\r\nimport { MockTracker } from '../Analytics/MockTracker';\r\nvar TrackerFactory = /** @class */ (function () {\r\n function TrackerFactory() {\r\n }\r\n TrackerFactory.getTracker = function () {\r\n if (window.TL && window.TL.modules) {\r\n return new IbeTracker();\r\n }\r\n return new MockTracker();\r\n };\r\n return TrackerFactory;\r\n}());\r\nexport { TrackerFactory };\r\n","export var WidgetPosition;\r\n(function (WidgetPosition) {\r\n WidgetPosition[\"Unknown\"] = \"Unknown\";\r\n WidgetPosition[\"LeftBottom\"] = \"LeftBottom\";\r\n WidgetPosition[\"RightBottom\"] = \"RightBottom\";\r\n WidgetPosition[\"CenterBottom\"] = \"CenterBottom\";\r\n WidgetPosition[\"Modal\"] = \"Modal\";\r\n})(WidgetPosition || (WidgetPosition = {}));\r\n","export var ImageType;\r\n(function (ImageType) {\r\n ImageType[\"Unknown\"] = \"Unknown\";\r\n ImageType[\"None\"] = \"None\";\r\n ImageType[\"Icon\"] = \"Icon\";\r\n ImageType[\"File\"] = \"File\";\r\n})(ImageType || (ImageType = {}));\r\n","export var IconKind;\r\n(function (IconKind) {\r\n IconKind[\"Gift\"] = \"Gift\";\r\n IconKind[\"Mir\"] = \"Mir\";\r\n IconKind[\"Cashback\"] = \"Cashback\";\r\n IconKind[\"Diamond\"] = \"Diamond\";\r\n IconKind[\"Pam\"] = \"Pam\";\r\n IconKind[\"BedDouble\"] = \"BedDouble\";\r\n IconKind[\"Book\"] = \"Book\";\r\n IconKind[\"Info\"] = \"Info\";\r\n IconKind[\"Success\"] = \"Success\";\r\n IconKind[\"Service\"] = \"Service\";\r\n IconKind[\"Signature\"] = \"Signature\";\r\n IconKind[\"Discount\"] = \"Discount\";\r\n IconKind[\"House\"] = \"House\";\r\n IconKind[\"Doc\"] = \"Doc\";\r\n IconKind[\"Fire\"] = \"Fire\";\r\n IconKind[\"Journal\"] = \"Journal\";\r\n IconKind[\"News\"] = \"News\";\r\n IconKind[\"Crown\"] = \"Crown\";\r\n})(IconKind || (IconKind = {}));\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { WidgetContent } from '../WidgetContent';\r\nimport { TemplateKind } from '../../Model/TemplateKind';\r\nimport { Templater } from '../../Template/Templater';\r\nimport { ImageType } from '../../Model/ImageType';\r\nimport { WidgetType } from '../../Model/WidgetType';\r\nimport { TrackerFactory } from '../../Factory/TrackerFactory';\r\nimport { ExperimentSegment } from '../../Analytics/ExperimentSegment';\r\nimport { DeviceUtil } from '../../Util/DeviceUtil';\r\nimport { IconKind } from '../../Model/IconKind';\r\nvar RatePlanWidgetContent = /** @class */ (function (_super) {\r\n __extends(RatePlanWidgetContent, _super);\r\n function RatePlanWidgetContent(widget, host, type) {\r\n if (type === void 0) { type = WidgetType.RatePlan; }\r\n var _this = _super.call(this) || this;\r\n _this._isPresentational = false;\r\n _this._tracker = TrackerFactory.getTracker();\r\n _this._widget = widget;\r\n _this._host = host;\r\n _this.type = type;\r\n return _this;\r\n }\r\n Object.defineProperty(RatePlanWidgetContent.prototype, \"sort\", {\r\n get: function () {\r\n return this._widget.sort;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RatePlanWidgetContent.prototype, \"widgetType\", {\r\n get: function () {\r\n return this._widget.type;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RatePlanWidgetContent.prototype, \"widgetContent\", {\r\n get: function () {\r\n return this._widget.content;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RatePlanWidgetContent.prototype, \"widgetKey\", {\r\n get: function () {\r\n return this._widget.key;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RatePlanWidgetContent.prototype.getProviderId = function () {\r\n return this._host ? this._host.providerId.toString() : '';\r\n };\r\n RatePlanWidgetContent.prototype.canShow = function () {\r\n return !!this._widget.content.title\r\n && !!this._widget.content.button\r\n && this.getSubmitUrl() !== document.location.href;\r\n };\r\n RatePlanWidgetContent.prototype.trackEvent = function (eventName) {\r\n if (this._isPresentational) {\r\n return;\r\n }\r\n var data = {\r\n action: eventName,\r\n provider: this.getProviderId(),\r\n amount: 1,\r\n number: 1,\r\n widgetKey: this.widgetKey\r\n };\r\n // HYPONLINE-91\r\n if (this.isPriceCompareExperimentActivated()) {\r\n var pcData = Object.assign({}, data, {\r\n segment: this.getOtaPriceCompareSegment(),\r\n layout: DeviceUtil.isMobile() ? 'phone' : 'desktop'\r\n });\r\n var isInOldSegment = pcData.segment !== 'new';\r\n var needSkipEvents = isInOldSegment && ((DeviceUtil.isMobile() && eventName !== 'preview') || (!DeviceUtil.isMobile() && eventName !== 'show'));\r\n if (!needSkipEvents) {\r\n if (eventName === 'show') {\r\n var bfPrice = parseInt(this.widgetContent.minBookingFormPrice.replace(/\\D/g, ''), 10);\r\n var otaPrice = parseInt(this.widgetContent.minOtaPrice.replace(/\\D/g, ''), 10);\r\n pcData.priceDifference = otaPrice - bfPrice;\r\n }\r\n this._tracker.event('ota-price-compare', pcData);\r\n }\r\n }\r\n this._tracker.event('smart-widget', data);\r\n };\r\n RatePlanWidgetContent.prototype.isPriceCompareExperimentActivated = function () {\r\n return this.widgetKey === '25a6b616-dd8e-46d8-9fa1-5893dc343e42';\r\n };\r\n RatePlanWidgetContent.prototype.getOtaPriceCompareSegment = function () {\r\n return this.isPriceCompareExperimentActivated()\r\n ? ExperimentSegment.get('ota-price-compare', ['old-1', 'new', 'old-2', 'new'])\r\n : null;\r\n };\r\n RatePlanWidgetContent.prototype.render = function (templateKind, templateMode, submitCb, hideCb, resizeCb, isPresentational) {\r\n var _this = this;\r\n if (isPresentational === void 0) { isPresentational = false; }\r\n this._isPresentational = isPresentational;\r\n var container = document.createElement('template');\r\n var template = null;\r\n var styles = null;\r\n var segment = this.getOtaPriceCompareSegment();\r\n switch (templateKind) {\r\n case TemplateKind.Static:\r\n styles = require('./TemplateStatic/TemplateStatic.scss');\r\n template = require('./TemplateStatic/TemplateStatic.html');\r\n break;\r\n case TemplateKind.Modal:\r\n styles = require('./TemplateModal/TemplateModal.scss');\r\n template = require('./TemplateModal/TemplateModal.html');\r\n break;\r\n // HYPONLINE-91\r\n case TemplateKind.Comparer:\r\n if (!segment || segment !== 'new') {\r\n this.trackEvent('show');\r\n return container;\r\n }\r\n styles = require('./TemplateCompare/TemplateCompare.scss');\r\n template = require('./TemplateCompare/TemplateCompare.html');\r\n break;\r\n default:\r\n break;\r\n }\r\n if (this._widget) {\r\n styles = this.updateStyles(this._widget.behavior.styles, styles.toString());\r\n container.appendChild(this.processStyles(styles));\r\n }\r\n // HYPONLINE-91 Добавление было ранее, но условие добавилось позже\r\n if (templateKind === TemplateKind.Comparer) {\r\n container.appendChild(this.processComparerTemplate(template, templateMode));\r\n }\r\n else {\r\n container.appendChild(this.processRatePlanTemplate(template, templateMode));\r\n }\r\n var iconKind = this._widget.content.iconKind;\r\n if (this._widget.content.imageType === ImageType.Icon && iconKind) {\r\n this.processIcon(container.querySelector('[icon]'), iconKind);\r\n }\r\n var fontHtmlLinks = this.processFonts(this._widget.behavior.styles);\r\n for (var i = 0; i < fontHtmlLinks.length; i++) {\r\n container.appendChild(fontHtmlLinks[i]);\r\n }\r\n this.trackEvent('show');\r\n container.querySelector('[btn-close]').addEventListener('click', function () {\r\n _this.trackEvent('close');\r\n if (hideCb) {\r\n hideCb();\r\n }\r\n });\r\n container.querySelector('[btn-submit]').addEventListener('click', function () {\r\n _this.trackEvent('submit');\r\n if (submitCb) {\r\n submitCb(_this.getSubmitUrl());\r\n }\r\n });\r\n return container;\r\n };\r\n RatePlanWidgetContent.prototype.getSubmitUrl = function () {\r\n var bookingFormUrl = this._host.bookingFormUrl;\r\n var hasRatePlans = false;\r\n var hasPromoCode = false;\r\n var ratePlans = this._widget.ratePlans;\r\n if (this.type === WidgetType.RatePlan) {\r\n hasRatePlans = ratePlans && ratePlans.selectedRatePlans && Object.keys(ratePlans.selectedRatePlans).length > 0;\r\n hasPromoCode = ratePlans && !!ratePlans.promoCode;\r\n }\r\n var urlParts = [];\r\n if (hasRatePlans) {\r\n urlParts.push('special-offer=' + encodeURIComponent(Object.keys(ratePlans.selectedRatePlans).join(',')));\r\n }\r\n if (hasPromoCode) {\r\n urlParts.push('promo-code-plain=' + encodeURIComponent(ratePlans.promoCode));\r\n }\r\n var cashbackId = this._widget.cashbackId;\r\n var cashbackType = this._widget.cashbackType;\r\n if (cashbackId) {\r\n urlParts.push('cashback=' + cashbackId);\r\n urlParts.push('cashback-type=' + cashbackType);\r\n urlParts.push('utm_tlsource=TlWidget');\r\n }\r\n return [\r\n bookingFormUrl,\r\n urlParts.length ? bookingFormUrl.indexOf('?') >= 0 ? '&' : '?' : '',\r\n urlParts.join('&')\r\n ].join('');\r\n };\r\n RatePlanWidgetContent.prototype.processRatePlanTemplate = function (template, templateMode) {\r\n var imageUrl = this._widget.content.imageAbsoluteUrl\r\n ? this._widget.content.imageAbsoluteUrl\r\n : this._widget.content.imageUrl\r\n ? this.getBaseUrl() + this._widget.content.imageUrl\r\n : null;\r\n var hasImage = this._widget.content.imageType === ImageType.File && !!imageUrl;\r\n var hasIcon = this._widget.content.imageType === ImageType.Icon && !!this._widget.content.iconKind;\r\n var html = Templater.parse(template, {\r\n title: this._widget.content.title,\r\n text: this._widget.content.text,\r\n description: this._widget.content.description,\r\n button: this._widget.content.button,\r\n iconKind: hasIcon,\r\n image: hasImage ? imageUrl : false,\r\n imagePosition: hasImage ? this._widget.content.imagePosition || 'center' : false,\r\n templateMode: templateMode.toLocaleLowerCase(),\r\n modifiers: this._widget.content.iconKind === IconKind.Cashback ? '-blend-mode' : ''\r\n });\r\n return this.processTemplate(html);\r\n };\r\n // HYPONLINE-91\r\n RatePlanWidgetContent.prototype.processComparerTemplate = function (template, templateMode) {\r\n var hasImage = this._widget.content.imageType === ImageType.File && !!this._widget.content.imageUrl;\r\n var hasIcon = this._widget.content.imageType === ImageType.Icon && !!this._widget.content.iconKind;\r\n var html = Templater.parse(template, {\r\n title: this._widget.content.title,\r\n text: this._widget.content.text,\r\n description: this._widget.content.description,\r\n button: this._widget.content.button,\r\n iconKind: hasIcon,\r\n image: this._widget.content.imageUrl,\r\n imagePosition: hasImage ? this._widget.content.imagePosition || 'center' : false,\r\n templateMode: templateMode.toLocaleLowerCase(),\r\n minBookingFormPrice: this._widget.content.minBookingFormPrice,\r\n minOtaPrice: this._widget.content.minOtaPrice,\r\n sourceName: this._widget.content.sourceName,\r\n onSiteText: this._widget.content.onSiteText\r\n });\r\n return this.processTemplate(html);\r\n };\r\n return RatePlanWidgetContent;\r\n}(WidgetContent));\r\nexport { RatePlanWidgetContent };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { WidgetContent } from '../WidgetContent';\r\nimport { TemplateKind } from '../../Model/TemplateKind';\r\nimport { Templater } from '../../Template/Templater';\r\nimport { TemplateMode } from '../../Model/TemplateMode';\r\nimport { HtmlUtil } from '../../Util/HtmlUtil';\r\nimport { SliderState } from '../../Model/SliderState';\r\nimport { TrackerFactory } from '../../Factory/TrackerFactory';\r\nimport { WidgetType } from '../../Model/WidgetType';\r\nimport { ExperimentSegment } from '../../Analytics/ExperimentSegment';\r\nimport { DeviceUtil } from '../../Util/DeviceUtil';\r\nvar SlideDirection;\r\n(function (SlideDirection) {\r\n SlideDirection[\"Left\"] = \"left\";\r\n SlideDirection[\"Right\"] = \"right\";\r\n})(SlideDirection || (SlideDirection = {}));\r\nvar BUTTON_WIDTH = '80px';\r\nvar BUTTON_OPENED_WIDTH = '256px';\r\nvar SLIDER_WIDTH = 'calc(100% - 16px)';\r\nvar SliderWidgetContent = /** @class */ (function (_super) {\r\n __extends(SliderWidgetContent, _super);\r\n function SliderWidgetContent(widget, behavior) {\r\n var _this = _super.call(this) || this;\r\n _this._dynamicStyles = [];\r\n _this._lastSlideIndex = 0;\r\n _this._currentSlideIndex = 0;\r\n _this._sliderOpened = false;\r\n _this._needButtonAnimation = true;\r\n _this._tracker = TrackerFactory.getTracker();\r\n _this._isOtaPriceCompareSWActivated = false;\r\n _this._cashbackIndex = undefined;\r\n _this.removedPriceCompareWidget = null;\r\n _this._widget = widget;\r\n _this._behavior = behavior;\r\n _this._slides = (widget.slides || []).slice(0, 7);\r\n return _this;\r\n }\r\n Object.defineProperty(SliderWidgetContent.prototype, \"sort\", {\r\n get: function () {\r\n return 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SliderWidgetContent.prototype, \"widgetKey\", {\r\n get: function () {\r\n return this._slides[this._currentSlideIndex] && this._slides[this._currentSlideIndex].widgetKey || null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SliderWidgetContent.prototype.getProviderId = function () {\r\n return this._slides\r\n .map(function (widget) { return widget.getProviderId(); })\r\n .filter(function (value, index, self) { return self.indexOf(value) === index; })\r\n .join(',');\r\n };\r\n SliderWidgetContent.prototype.canShow = function () {\r\n return this._widget.content ? !!this._widget.content.text : true;\r\n };\r\n SliderWidgetContent.prototype.trackEvent = function (eventName) {\r\n var data = {\r\n action: eventName,\r\n provider: this.getProviderId()\r\n };\r\n if (eventName !== 'preview') {\r\n data = Object.assign(data, {\r\n amount: this._slides.length,\r\n number: this._currentSlideIndex + 1,\r\n widgetKey: this.widgetKey\r\n });\r\n }\r\n // HYPONLINE-91\r\n if (this._isOtaPriceCompareSWActivated) {\r\n var pcData = Object.assign({}, data, {\r\n segment: this.getOtaPriceCompareSegment(),\r\n layout: DeviceUtil.isMobile() ? 'phone' : 'desktop'\r\n });\r\n var isInOldSegment = pcData.segment !== 'new';\r\n pcData.amount = isInOldSegment ? this._slides.length + 1 : this._slides.length;\r\n if (isInOldSegment && eventName === 'preview' && !!this.removedPriceCompareWidget) {\r\n pcData.provider = this.removedPriceCompareWidget.getProviderId();\r\n }\r\n var needSkipEvents = isInOldSegment && ((DeviceUtil.isMobile() && eventName !== 'preview') || (!DeviceUtil.isMobile() && eventName !== 'show'));\r\n if (!needSkipEvents) {\r\n if (eventName === 'show') {\r\n var widgetContent = this.removedPriceCompareWidget === null\r\n ? this._slides[this._currentSlideIndex].widget.widgetContent\r\n : this.removedPriceCompareWidget.widget.widgetContent;\r\n var bfPrice = parseInt(widgetContent.minBookingFormPrice.replace(/\\D/g, ''), 10);\r\n var otaPrice = parseInt(widgetContent.minOtaPrice.replace(/\\D/g, ''), 10);\r\n pcData.priceDifference = otaPrice - bfPrice;\r\n }\r\n this._tracker.event('ota-price-compare', pcData);\r\n }\r\n }\r\n this._tracker.event('smart-widget', data);\r\n };\r\n SliderWidgetContent.prototype.render = function (templateKind, templateMode, submitCb, hideCb, resizeCb) {\r\n var _this = this;\r\n var template = document.createElement('template');\r\n var container = document.createElement('div');\r\n container.style.display = 'inline-block';\r\n template.appendChild(container);\r\n this._isOtaPriceCompareSWActivated = this._slides.length\r\n ? this._slides[0].widgetKey === '25a6b616-dd8e-46d8-9fa1-5893dc343e42'\r\n : false;\r\n var segment = this.getOtaPriceCompareSegment();\r\n if (this._isOtaPriceCompareSWActivated && segment !== 'new') {\r\n this.removedPriceCompareWidget = this._slides.splice(0, 1)[0];\r\n }\r\n if (templateKind === TemplateKind.Slider) {\r\n this.type = WidgetType.Slider;\r\n this.createSlider(container, templateMode, resizeCb, hideCb);\r\n // После добавления в DOM\r\n setTimeout(function () {\r\n _this.setSliderHeight();\r\n _this.trackEvent('show');\r\n });\r\n }\r\n else if (templateKind === TemplateKind.Mobile) {\r\n this.type = WidgetType.Button;\r\n this._buttonElement = this.createButton(container, resizeCb);\r\n }\r\n return template;\r\n };\r\n SliderWidgetContent.prototype.getCashbackWidgetIndex = function () {\r\n var _a;\r\n if (this._cashbackIndex !== undefined) {\r\n return this._cashbackIndex;\r\n }\r\n this._cashbackIndex = -1;\r\n if (this._slides && this._slides.length > 0) {\r\n for (var i = 0; i < this._slides.length; ++i) {\r\n if (((_a = this._slides[i].widget) === null || _a === void 0 ? void 0 : _a.type) === WidgetType.Cashback) {\r\n this._cashbackIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return this._cashbackIndex;\r\n };\r\n SliderWidgetContent.prototype.getSourceNameForPriceCompareButton = function () {\r\n return this._slides[0].widget.widgetContent.sourceName;\r\n };\r\n SliderWidgetContent.prototype.getOtaPriceCompareSegment = function () {\r\n return this._isOtaPriceCompareSWActivated\r\n ? ExperimentSegment.get('ota-price-compare', ['old-1', 'new', 'old-2', 'new'])\r\n : null;\r\n };\r\n SliderWidgetContent.prototype.createButton = function (container, resizeCb) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f;\r\n var stylesButton, templateButton;\r\n /* ВНИМАНИЕ! Если будут недовольные отели, которые не хотят кешбэчную мобильную кнопку,\r\n * то можно просто поменять условие на this.getPromoWidgetIndex() === 0;\r\n * Тогда кому виджет кэшбека важен и стоит на первом месте - будут видеть новую зеленую кнопку,\r\n * а кто намеренно его задвигает подальше - увидят старую кнопку \"Скидки\".\r\n * НО! Это ухудшит конверсионность, поэтому я бы этого не делал вопреки желаниям отелей.\r\n */\r\n var newPromoButtonActivated = this.getCashbackWidgetIndex() !== -1;\r\n var priceCompareSegment = this.getOtaPriceCompareSegment();\r\n var swPriceCompareVisible = priceCompareSegment !== null && priceCompareSegment === 'new';\r\n if (swPriceCompareVisible) {\r\n stylesButton = this.updateStyles(this._widget.behavior.styles, require('./Button/PriceCompareTemplateButton.scss').toString());\r\n templateButton = require('./Button/PriceCompareTemplateButton.html');\r\n }\r\n else {\r\n if (this._isOtaPriceCompareSWActivated && this._slides.length <= 1) {\r\n this.trackEvent('preview');\r\n return null;\r\n }\r\n stylesButton = this.updateStyles(this._widget.behavior.styles, require('./Button/TemplateButton.scss').toString());\r\n templateButton = require('./Button/TemplateButton.html');\r\n }\r\n var element = this.processButtonTemplate(templateButton);\r\n if (swPriceCompareVisible) {\r\n var lang = (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.TL) === null || _a === void 0 ? void 0 : _a.SmartWidget) === null || _b === void 0 ? void 0 : _b._config) === null || _c === void 0 ? void 0 : _c.language;\r\n var labelText = element.querySelector('#swPcLabelText');\r\n var sourceNameText = element.querySelector('#swPcLabelSourceName');\r\n if (lang) {\r\n var sourceName = this.getSourceNameForPriceCompareButton();\r\n if (lang.toLowerCase() === 'ru' || lang.toLowerCase() === 'ru-ru') {\r\n labelText.innerText = 'Дешевле, чем на';\r\n sourceNameText.innerText = sourceName;\r\n }\r\n else {\r\n labelText.innerText = 'Pay less, than on';\r\n sourceNameText.innerText = sourceName;\r\n }\r\n }\r\n }\r\n else if (newPromoButtonActivated) {\r\n var lang = (_f = (_e = (_d = window === null || window === void 0 ? void 0 : window.TL) === null || _d === void 0 ? void 0 : _d.SmartWidget) === null || _e === void 0 ? void 0 : _e._config) === null || _f === void 0 ? void 0 : _f.language;\r\n var btnLabel = element.querySelector('.sw-button__label');\r\n if (lang) {\r\n if (lang.toLowerCase() === 'ru' || lang.toLowerCase() === 'ru-ru') {\r\n btnLabel.innerText = 'КЕШБЭК';\r\n }\r\n else {\r\n btnLabel.innerText = 'CASHBACK';\r\n }\r\n }\r\n }\r\n container.appendChild(this.processStyles(stylesButton));\r\n container.appendChild(element);\r\n var iconKind = this._widget.content.iconKind;\r\n var button = container.querySelector('[button]');\r\n // Защитный IF от встроенных иконок, которые не надо запрашивать с бекенда в случае сравнения цен\r\n if (!swPriceCompareVisible) {\r\n this.processIcon(button.querySelector('[icon]'), iconKind);\r\n }\r\n // После добавления в DOM\r\n setTimeout(function () {\r\n if (resizeCb) {\r\n resizeCb(SliderState.Button, {\r\n width: BUTTON_WIDTH\r\n });\r\n }\r\n // Раскрываем кнопку\r\n setTimeout(function () {\r\n if (_this._needButtonAnimation) {\r\n HtmlUtil.toggleClass(button, '-open', true);\r\n if (resizeCb) {\r\n resizeCb(SliderState.Button, {\r\n width: BUTTON_OPENED_WIDTH\r\n });\r\n var animationEndHandler_1 = function () {\r\n resizeCb(SliderState.Button, {\r\n width: button.getBoundingClientRect().width + \"px\"\r\n });\r\n button.removeEventListener('animationend', animationEndHandler_1);\r\n };\r\n button.addEventListener('animationend', animationEndHandler_1);\r\n }\r\n }\r\n }, 2000);\r\n _this.trackEvent('preview');\r\n });\r\n button.querySelector('[opener]').addEventListener('click', function () {\r\n _this.toggleSlider(container, resizeCb);\r\n });\r\n return element;\r\n };\r\n SliderWidgetContent.prototype.createSlider = function (container, templateMode, resizeCb, hideCb) {\r\n var _this = this;\r\n var stylesSlider = require('./TemplateSlider.scss'), templateSlider = require('./TemplateSlider.html'), element = this.processSliderTemplate(templateSlider, templateMode), links = {};\r\n container.appendChild(this.processStyles(stylesSlider));\r\n container.insertBefore(element, this._buttonElement);\r\n this._sliderList = element.querySelector('[slider-list]');\r\n this._sliderBar = element.querySelector('[slider-bar]');\r\n var otaPriceCompareSegmentA = this.getOtaPriceCompareSegment();\r\n var pcNotVisible = otaPriceCompareSegmentA !== 'new';\r\n for (var i = 0; i < this._slides.length; i++) {\r\n var templateKind = this._slides[i].widget.widgetType === 'Comparer'\r\n ? TemplateKind.Comparer\r\n : TemplateKind.Static;\r\n var content = this._slides[i].render(templateKind, templateMode, function () {\r\n _this.trackEvent('submit');\r\n }, function () {\r\n if (hideCb) {\r\n hideCb();\r\n _this.trackEvent('close');\r\n }\r\n else {\r\n _this.toggleSlider(container, resizeCb);\r\n }\r\n }, true);\r\n var elements = Array.prototype.slice.call(content.children);\r\n for (var index in elements) {\r\n if (!elements.hasOwnProperty(index)) {\r\n continue;\r\n }\r\n var element_1 = elements[index];\r\n if (element_1.nodeName === 'STYLE') {\r\n this._dynamicStyles.push(element_1.textContent);\r\n }\r\n else if (element_1.nodeName === 'LINK') {\r\n var href = element_1.getAttribute('href');\r\n if (!links[href]) {\r\n links[href] = element_1;\r\n }\r\n }\r\n else {\r\n var slide = document.createElement('div');\r\n slide.className = 'sw-slider__slide';\r\n slide.setAttribute('slide', i.toString());\r\n slide.appendChild(element_1);\r\n this._sliderList.appendChild(slide);\r\n }\r\n }\r\n var point = document.createElement('div');\r\n point.className = 'sw-slider__point';\r\n point.setAttribute('slider-point', i.toString());\r\n if (this._sliderBar) {\r\n this._sliderBar.querySelector('[slider-points]').appendChild(point);\r\n }\r\n }\r\n this._dynamicStyleElement = document.createElement('style');\r\n container.appendChild(this._dynamicStyleElement);\r\n if (Object.keys(links).length) {\r\n var linkElement = document.createElement('div');\r\n for (var index in links) {\r\n if (links[index]) {\r\n linkElement.appendChild(links[index]);\r\n }\r\n }\r\n container.appendChild(linkElement);\r\n }\r\n this.setSlide();\r\n // После добавления в DOM\r\n setTimeout(function () {\r\n if (_this._sliderBar) {\r\n _this.addSliderEventListeners(templateMode);\r\n }\r\n });\r\n return element;\r\n };\r\n SliderWidgetContent.prototype.toggleSlider = function (container, resizeCb) {\r\n var button = container.querySelector('[button]');\r\n var bottomIndent = this._behavior.appearance.bottomIndent;\r\n var buttonLimitHeight = 500 + (bottomIndent || 0);\r\n this._sliderOpened = !this._sliderOpened;\r\n var slider = container.querySelector('.sw-slider');\r\n if (!slider) {\r\n slider = this.createSlider(container, TemplateMode.Mobile, resizeCb);\r\n }\r\n slider.style.display = this._sliderOpened ? 'block' : 'none';\r\n if (this._sliderOpened) {\r\n this.setSliderHeight();\r\n this._needButtonAnimation = false;\r\n if (window.innerHeight < buttonLimitHeight) {\r\n HtmlUtil.toggleClass(button, '-hide');\r\n }\r\n else {\r\n HtmlUtil.toggleClass(button, '-close');\r\n HtmlUtil.toggleClass(button, '-open', true);\r\n }\r\n this.setStyle();\r\n if (resizeCb) {\r\n resizeCb(SliderState.Slider, {\r\n width: SLIDER_WIDTH\r\n });\r\n }\r\n this.trackEvent('show');\r\n }\r\n else {\r\n HtmlUtil.toggleClass(button, '-hide', false);\r\n HtmlUtil.toggleClass(button, '-open', false);\r\n if (resizeCb) {\r\n resizeCb(SliderState.Button, {\r\n width: BUTTON_WIDTH\r\n });\r\n }\r\n this.trackEvent('close');\r\n }\r\n };\r\n SliderWidgetContent.prototype.addSliderEventListeners = function (templateMode) {\r\n var _this = this;\r\n var toPrev = function () {\r\n if (!_this._slides.length) {\r\n return;\r\n }\r\n _this._lastSlideIndex = _this._currentSlideIndex;\r\n _this._currentSlideIndex = _this._currentSlideIndex > 0 ? --_this._currentSlideIndex : _this._slides.length - 1;\r\n _this.animateSlide(SlideDirection.Right, _this._lastSlideIndex, _this._currentSlideIndex);\r\n _this.trackEvent('swipe');\r\n };\r\n var toNext = function () {\r\n if (!_this._slides.length) {\r\n return;\r\n }\r\n _this._lastSlideIndex = _this._currentSlideIndex;\r\n _this._currentSlideIndex = _this._currentSlideIndex < _this._slides.length - 1 ? ++_this._currentSlideIndex : 0;\r\n _this.animateSlide(SlideDirection.Left, _this._lastSlideIndex, _this._currentSlideIndex);\r\n _this.trackEvent('swipe');\r\n };\r\n var xTouchStart = null;\r\n this._sliderBar.addEventListener('click', function (e) {\r\n var target = e.target;\r\n if (!target) {\r\n return;\r\n }\r\n if (target.hasAttribute('slider-point')) {\r\n var slideIndex = parseInt(target.getAttribute('slider-point'), 10);\r\n _this.setSlide(slideIndex);\r\n _this.trackEvent('swipe');\r\n }\r\n if (target.hasAttribute('slider-arrow-left')) {\r\n toPrev();\r\n }\r\n if (target.hasAttribute('slider-arrow-right')) {\r\n toNext();\r\n }\r\n });\r\n this._sliderList.addEventListener('touchstart', function (e) {\r\n xTouchStart = e.touches[0].clientX;\r\n });\r\n this._sliderList.addEventListener('touchmove', function (e) {\r\n if (!xTouchStart) {\r\n return;\r\n }\r\n var diff = xTouchStart - e.touches[0].clientX;\r\n if (Math.abs(diff) < 30) {\r\n return;\r\n }\r\n if (diff > 0) {\r\n toNext();\r\n }\r\n else {\r\n toPrev();\r\n }\r\n xTouchStart = null;\r\n });\r\n };\r\n SliderWidgetContent.prototype.setSlide = function (index) {\r\n if (index === void 0) { index = this._currentSlideIndex; }\r\n this._lastSlideIndex = this._currentSlideIndex;\r\n this._currentSlideIndex = index;\r\n this.animateSlide(this._lastSlideIndex < this._currentSlideIndex ? SlideDirection.Left : SlideDirection.Right, this._lastSlideIndex, this._currentSlideIndex);\r\n };\r\n SliderWidgetContent.prototype.updateBar = function () {\r\n if (!this._sliderBar) {\r\n return;\r\n }\r\n var points = this._sliderBar.querySelectorAll('[slider-point]'), arrowLeft = this._sliderBar.querySelector('[slider-arrow-left]'), arrowRight = this._sliderBar.querySelector('[slider-arrow-right]');\r\n if (!points.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points.length; i++) {\r\n HtmlUtil.toggleClass(points[i], '-active', i === this._currentSlideIndex);\r\n }\r\n HtmlUtil.toggleClass(arrowLeft, '-hide', this._currentSlideIndex === 0);\r\n HtmlUtil.toggleClass(arrowRight, '-hide', points.length - 1 === this._currentSlideIndex);\r\n };\r\n SliderWidgetContent.prototype.animateSlide = function (direction, from, to) {\r\n var _this = this;\r\n clearTimeout(this._animationId);\r\n var slides = this._sliderList.querySelectorAll('[slide]');\r\n var slideFrom = slides[from], slideTo = slides[to];\r\n this.updateBar();\r\n if (from === to) {\r\n HtmlUtil.toggleClass(slideTo, '-active');\r\n HtmlUtil.toggleClass(slideTo, '-no-animate');\r\n HtmlUtil.transform(slideTo, 'translateX(0%)');\r\n this.setStyle();\r\n this._animationId = window.setTimeout(function () {\r\n HtmlUtil.toggleClass(slideTo, '-no-animate', false);\r\n });\r\n return;\r\n }\r\n HtmlUtil.transform(slideFrom, 'translateX(0%)');\r\n HtmlUtil.toggleClass(slideFrom, '-active', false);\r\n HtmlUtil.transform(slideTo, direction === 'left' ? 'translateX(100%)' : 'translateX(-100%)');\r\n this._animationId = window.setTimeout(function () {\r\n HtmlUtil.toggleClass(slideTo, '-active', true);\r\n HtmlUtil.transform(slideFrom, direction === 'left' ? 'translateX(-100%)' : 'translateX(100%)');\r\n HtmlUtil.transform(slideTo, 'translateX(0%)');\r\n _this.setStyle();\r\n }, 150);\r\n this.updateSliderHeight();\r\n };\r\n SliderWidgetContent.prototype.setSliderHeight = function () {\r\n var _this = this;\r\n var slides = this._sliderList.querySelectorAll('[slide]');\r\n var height;\r\n for (var i = 0; i < slides.length; i++) {\r\n if (this._dynamicStyles[i]) {\r\n this._dynamicStyleElement.innerHTML = this._dynamicStyles[i];\r\n }\r\n if (!height || height < slides[i].clientHeight) {\r\n height = slides[i].clientHeight;\r\n }\r\n }\r\n this._dynamicStyleElement.innerHTML = this._dynamicStyles[0];\r\n // Некоторые браузеры рендерят с задержкой, высота может быть нулевой\r\n if (height === 0) {\r\n setTimeout(function () { return _this.setSliderHeight(); }, 100);\r\n return;\r\n }\r\n this._sliderList.style.height = height + 'px';\r\n this.updateSliderHeight();\r\n };\r\n SliderWidgetContent.prototype.setStyle = function () {\r\n if (!this._dynamicStyles[this._currentSlideIndex]) {\r\n return;\r\n }\r\n this._dynamicStyleElement.innerHTML = this._dynamicStyles[this._currentSlideIndex];\r\n };\r\n SliderWidgetContent.prototype.updateSliderHeight = function () {\r\n var _this = this;\r\n if (!document.fonts) {\r\n return;\r\n }\r\n var slides = this._sliderList.querySelectorAll('[slide]');\r\n var currentSliderHeight = slides[this._currentSlideIndex].clientHeight;\r\n document.fonts.onloadingdone = function () {\r\n var newSliderHeight = slides[_this._currentSlideIndex].clientHeight;\r\n if (currentSliderHeight === newSliderHeight) {\r\n return;\r\n }\r\n _this._sliderList.style.height = newSliderHeight + 'px';\r\n };\r\n };\r\n SliderWidgetContent.prototype.processSliderTemplate = function (template, templateMode) {\r\n var html = Templater.parse(template, {\r\n hasBar: this._slides.length > 1,\r\n align: this._behavior.appearance.position.toLocaleLowerCase(),\r\n templateMode: templateMode.toLowerCase()\r\n });\r\n return this.processTemplate(html);\r\n };\r\n SliderWidgetContent.prototype.processButtonTemplate = function (template) {\r\n var html = Templater.parse(template, {\r\n text: this._widget.content.text,\r\n align: this._behavior.appearance.position.toLocaleLowerCase()\r\n });\r\n return this.processTemplate(html);\r\n };\r\n return SliderWidgetContent;\r\n}(WidgetContent));\r\nexport { SliderWidgetContent };\r\n","var HtmlUtil = /** @class */ (function () {\r\n function HtmlUtil() {\r\n }\r\n HtmlUtil.toggleClass = function (element, className, forceValue) {\r\n if (forceValue === void 0) { forceValue = null; }\r\n if (!element) {\r\n return;\r\n }\r\n var original = element.className.split(' ');\r\n if (forceValue == null) {\r\n forceValue = original.indexOf(className) === -1;\r\n }\r\n if (forceValue) {\r\n if (original.indexOf(className) === -1) {\r\n original.push(className);\r\n }\r\n }\r\n else {\r\n original = original.filter(function (name) {\r\n return name !== className;\r\n });\r\n }\r\n element.className = original.join(' ');\r\n };\r\n HtmlUtil.transform = function (element, transform) {\r\n element.style.transform = transform;\r\n element.style.webkitTransform = transform;\r\n };\r\n return HtmlUtil;\r\n}());\r\nexport { HtmlUtil };\r\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \":root{--widget-background-color: #FFF;--widget-background-opacity: 100;--widget-box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.25);--widget-border-radius: 4px;--widget-text-color: #3D3D3D;--motivator-background-color: #FD952C;--motivator-color: #FFF;--motivator-background-opacity: 100;--button-background-color: #FD952C;--button-text-color: #FFF;--button-font-size: 12px;--button-border-radius: 3px;--button-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--title-color: #3D3D3D;--title-font-size: 16px;--title-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--text-color: #3D3D3D;--text-font-size: 12px;--text-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--description-color: #3D3D3D;--description-font-size: 12px;--description-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif}*{-webkit-box-sizing:border-box;box-sizing:border-box}.sw-rpw-static{width:432px;position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;overflow:hidden;margin:12px;border-radius:4px;border-radius:var(--widget-border-radius);-webkit-box-shadow:0px 4px 12px rgba(0,0,0,.25);box-shadow:0px 4px 12px rgba(0,0,0,.25);-webkit-box-shadow:var(--widget-box-shadow);box-shadow:var(--widget-box-shadow)}[slider-list] .sw-rpw-static{margin:0;border-radius:6px 6px 0 0;-webkit-box-shadow:none;box-shadow:none;width:100%}.sw-rpw-static.-mobile{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:visible;margin-top:32px}.sw-rpw-static.-mobile:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--widget-background-opacity)/100);z-index:-1;border-radius:8px 8px 0 0;background-color:#fff;background-color:var(--widget-background-color)}.sw-rpw-static.-mobile .sw-rpw-static__icon,.sw-rpw-static.-mobile .sw-rpw-static__image{border-radius:4px;border-radius:var(--widget-border-radius);-webkit-box-shadow:0px 4px 12px rgba(0,0,0,.25);box-shadow:0px 4px 12px rgba(0,0,0,.25);-webkit-box-shadow:var(--widget-box-shadow);box-shadow:var(--widget-box-shadow);overflow:hidden;margin-top:-32px;width:136px;-webkit-box-flex:0;-ms-flex:0 0 136px;flex:0 0 136px}.sw-rpw-static.-mobile .sw-rpw-static__icon:before,.sw-rpw-static.-mobile .sw-rpw-static__image:before{opacity:1}.sw-rpw-static.-mobile .sw-rpw-static__icon svg,.sw-rpw-static.-mobile .sw-rpw-static__image svg{width:82.96px;height:82.96px}.sw-rpw-static.-mobile .sw-rpw-static__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;padding:24px 16px 16px}.sw-rpw-static.-mobile .sw-rpw-static__content:before{content:none}.sw-rpw-static.-mobile .sw-rpw-static__content-title{padding-right:0}.sw-rpw-static.-mobile .sw-rpw-static__content-button{width:100%;padding:12px}.sw-rpw-static.-blend-mode .sw-rpw-static__icon svg{mix-blend-mode:luminosity}@supports(mix-blend-mode: luminosity){.sw-rpw-static.-blend-mode .sw-rpw-static__icon svg .with-blend-mode{display:block}.sw-rpw-static.-blend-mode .sw-rpw-static__icon svg .without-blend-mode{display:none}}@supports not (mix-blend-mode: luminosity){.sw-rpw-static.-blend-mode .sw-rpw-static__icon svg .with-blend-mode{display:none}.sw-rpw-static.-blend-mode .sw-rpw-static__icon svg .without-blend-mode{display:block}}.sw-rpw-static__icon{-webkit-box-flex:0;-ms-flex:0 0 144px;flex:0 0 144px;width:144px;max-height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;z-index:1;color:#fff;color:var(--motivator-color)}.sw-rpw-static__icon:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--motivator-background-opacity)/100);background-color:#fd952c;background-color:var(--motivator-background-color)}.sw-rpw-static__icon svg{z-index:1}.sw-rpw-static__image{-webkit-box-flex:0;-ms-flex:0 0 144px;flex:0 0 144px;width:144px;background-repeat:no-repeat;background-position:center;background-size:cover}.sw-rpw-static__content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:16px 16px 16px 24px;position:relative;color:#3d3d3d;color:var(--widget-text-color);width:100%}.sw-rpw-static__content:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--widget-background-opacity)/100);z-index:-1;background-color:#fff;background-color:var(--widget-background-color)}.sw-rpw-static__content-title{font-weight:bold;line-height:20px;padding-right:20px;word-break:break-word;max-width:100%;font-size:16px;font-size:var(--title-font-size);font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--title-font-family);color:#3d3d3d;color:var(--title-color)}.sw-rpw-static__content-text{opacity:.8;line-height:18px;word-break:break-word;max-width:100%;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--text-font-family);font-size:12px;font-size:var(--text-font-size);color:#3d3d3d;color:var(--text-color)}.sw-rpw-static__content-description{opacity:.45;font-size:10.8px;line-height:12px;word-break:break-word;max-width:100%;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--description-font-family);font-size:10.8px;font-size:var(--description-font-size);color:#3d3d3d;color:var(--description-color)}.sw-rpw-static__content-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;line-height:18px;font-weight:bold;text-align:center;padding:8px;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--button-font-family);font-size:12px;font-size:var(--button-font-size);background-color:#fd952c;background-color:var(--button-background-color);color:#fff;color:var(--button-text-color);border-radius:3px;border-radius:var(--button-border-radius)}.sw-rpw-static__content-button:hover{opacity:.9}.sw-rpw-static__content>*:not(:last-child){margin-bottom:16px}.sw-rpw-static__content._with_description .sw-rpw-static__content-description{margin-top:-8px;margin-bottom:12px}.sw-rpw-static__close{cursor:pointer;position:absolute;right:0;top:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:32px;height:32px;padding:8px;opacity:.3;color:#3d3d3d;color:var(--text-color)}.sw-rpw-static__close:hover{opacity:.6}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","module.exports = \"
\\r\\n {{if iconKind}}\\r\\n
\\r\\n {{/if}}\\r\\n {{if image}}\\r\\n
\\r\\n {{/if}}\\r\\n
\\r\\n
{{title}}
\\r\\n {{if text}}\\r\\n
{{text}}
\\r\\n {{/if}}\\r\\n {{if description}}\\r\\n
{{description}}
\\r\\n {{/if}}\\r\\n
{{button}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \":root{--widget-background-color: #FFF;--widget-background-opacity: 100;--widget-box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.25);--widget-border-radius: 4px;--widget-text-color: #3D3D3D;--motivator-background-color: #FD952C;--motivator-color: #FFF;--motivator-background-opacity: 100;--button-background-color: #FD952C;--button-text-color: #FFF;--button-font-size: 12px;--button-border-radius: 3px;--button-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--title-color: #3D3D3D;--title-font-size: 16px;--title-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--text-color: #3D3D3D;--text-font-size: 12px;--text-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--description-color: #3D3D3D;--description-font-size: 12px;--description-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif}.sw-rpw-modal{-webkit-box-sizing:border-box;box-sizing:border-box;padding:12px;width:584px}.sw-rpw-modal__container{border-radius:4px;border-radius:var(--widget-border-radius);-webkit-box-shadow:none;box-shadow:none;-webkit-box-shadow:var(--widget-box-shadow);box-shadow:var(--widget-box-shadow);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;position:relative;overflow:hidden}.sw-rpw-modal__icon{-webkit-box-flex:0;-ms-flex:0 0 248px;flex:0 0 248px;width:248px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;color:#fff;color:var(--motivator-color)}.sw-rpw-modal__icon:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--motivator-background-opacity)/100);z-index:-1;background-color:#fd952c;background-color:var(--motivator-background-color)}.sw-rpw-modal__icon[icon] svg{width:96px;height:96px}.sw-rpw-modal__image{-webkit-box-flex:0;-ms-flex:0 0 248px;flex:0 0 248px;width:248px;background-repeat:no-repeat;background-position:center;background-size:cover}.sw-rpw-modal__content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:24px 24px 24px 36px;position:relative;color:#3d3d3d;color:var(--widget-text-color)}.sw-rpw-modal__content:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--widget-background-opacity)/100);z-index:-1;background-color:#fff;background-color:var(--widget-background-color)}.sw-rpw-modal__content-title{font-weight:bold;line-height:28px;padding-right:20px;word-break:break-word;font-size:24px;font-size:var(--title-font-size);font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--title-font-family);color:#3d3d3d;color:var(--title-color)}.sw-rpw-modal__content-text{opacity:.8;line-height:18px;word-break:break-word;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--text-font-family);font-size:13.5px;font-size:var(--text-font-size);color:#3d3d3d;color:var(--text-color)}.sw-rpw-modal__content-description{opacity:.45;line-height:12px;word-break:break-word;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--description-font-family);font-size:10.8px;font-size:var(--description-font-size);color:#3d3d3d;color:var(--description-color)}.sw-rpw-modal__content-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;line-height:18px;font-weight:bold;text-align:center;padding:8px;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--button-font-family);font-size:12px;font-size:var(--button-font-size);background-color:#fd952c;background-color:var(--button-background-color);color:#fff;color:var(--button-text-color);border-radius:3px;border-radius:var(--button-border-radius)}.sw-rpw-modal__content-button:hover{opacity:.9}.sw-rpw-modal__content>*:not(:last-child){margin-bottom:24px}.sw-rpw-modal__content._with_description .sw-rpw-modal__content-description{margin-top:-8px;margin-bottom:12px}.sw-rpw-modal__close{cursor:pointer;position:absolute;right:0;top:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:24px;height:24px;padding:12px;opacity:.3;color:#3d3d3d;color:var(--text-color)}.sw-rpw-modal__close:hover{opacity:.6}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","module.exports = \"
\\r\\n
\\r\\n {{if iconKind}}\\r\\n
\\r\\n {{/if}}\\r\\n {{if iconMir}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{/if}}\\r\\n {{if image}}\\r\\n
\\r\\n {{/if}}\\r\\n
\\r\\n
{{title}}
\\r\\n {{if text}}\\r\\n
{{text}}
\\r\\n {{/if}}\\r\\n {{if description}}\\r\\n
{{description}}
\\r\\n {{/if}}\\r\\n
{{button}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \":root{--widget-background-color: #FFF;--widget-background-opacity: 100;--widget-box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.25);--widget-border-radius: 4px;--widget-text-color: #3D3D3D;--motivator-background-color: #FD952C;--motivator-color: #FFF;--motivator-background-opacity: 100;--button-background-color: #FD952C;--button-text-color: #FFF;--button-font-size: 12px;--button-border-radius: 3px;--button-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--title-color: #3D3D3D;--title-font-size: 16px;--title-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--text-color: #3D3D3D;--text-font-size: 12px;--text-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;--description-color: #3D3D3D;--description-font-size: 12px;--description-font-family: Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif}*{-webkit-box-sizing:border-box;box-sizing:border-box}.sw-rpwс-static{width:432px;position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;overflow:hidden;margin:12px;background-color:#fff;border-radius:4px;border-radius:var(--widget-border-radius);-webkit-box-shadow:0px 4px 12px rgba(0,0,0,.25);box-shadow:0px 4px 12px rgba(0,0,0,.25);-webkit-box-shadow:var(--widget-box-shadow);box-shadow:var(--widget-box-shadow)}[slider-list] .sw-rpwс-static{margin:0;border-radius:6px 6px 0 0;-webkit-box-shadow:none;box-shadow:none;width:100%}.sw-rpwс-static.-mobile{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:visible;margin-top:32px}.sw-rpwс-static.-mobile:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--widget-background-opacity)/100);z-index:-1;border-radius:8px 8px 0 0;background-color:#fff;background-color:var(--widget-background-color)}.sw-rpwс-static.-mobile .sw-rpwс-static__icon,.sw-rpwс-static.-mobile .sw-rpwс-static__image{border-radius:4px;border-radius:var(--widget-border-radius);-webkit-box-shadow:0px 4px 12px rgba(0,0,0,.25);box-shadow:0px 4px 12px rgba(0,0,0,.25);-webkit-box-shadow:var(--widget-box-shadow);box-shadow:var(--widget-box-shadow);overflow:hidden;margin-top:-32px;width:136px;-webkit-box-flex:0;-ms-flex:0 0 136px;flex:0 0 136px}.sw-rpwс-static.-mobile .sw-rpwс-static__icon:before,.sw-rpwс-static.-mobile .sw-rpwс-static__image:before{opacity:1}.sw-rpwс-static.-mobile .sw-rpwс-static__icon svg,.sw-rpwс-static.-mobile .sw-rpwс-static__image svg{width:82.96px;height:82.96px}.sw-rpwс-static.-mobile .sw-rpwс-static__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;padding:24px 16px 16px}.sw-rpwс-static.-mobile .sw-rpwс-static__content:before{content:none}.sw-rpwс-static.-mobile .sw-rpwс-static__content-button{width:100%;padding:12px}.sw-rpwс-static__icon{-webkit-box-flex:0;-ms-flex:0 0 144px;flex:0 0 144px;width:144px;max-height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;color:#fff;color:var(--motivator-color)}.sw-rpwс-static__icon:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--motivator-background-opacity)/100);background-color:#fd952c;background-color:var(--motivator-background-color)}.sw-rpwс-static__icon svg{z-index:1}.sw-rpwс-static__image{-webkit-box-flex:0;-ms-flex:0 0 144px;flex:0 0 144px;width:144px;background-repeat:no-repeat;background-position:center;background-size:cover}.sw-rpwс-static__content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:16px 16px 16px 24px;position:relative;color:#3d3d3d;color:var(--widget-text-color);width:100%}.sw-rpwс-static__content:before{content:\\\"\\\";position:absolute;width:100%;height:100%;left:0;top:0;opacity:calc(100/100);opacity:calc(var(--widget-background-opacity)/100);z-index:-1;background-color:#fff;background-color:var(--widget-background-color)}.sw-rpwс-static__content-title{font-weight:bold;line-height:20px;padding-right:20px;word-break:break-word;max-width:100%;font-size:16px;font-size:var(--title-font-size);font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--title-font-family);color:#000}.sw-rpwс-static__content-text{opacity:.8;line-height:18px;word-break:break-word;max-width:100%;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--text-font-family);font-size:12px;font-size:var(--text-font-size);color:#3d3d3d;color:var(--text-color)}.sw-rpwс-static__content-description{opacity:.45;font-size:10.8px;line-height:12px;word-break:break-word;max-width:100%;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--description-font-family);font-size:10.8px;font-size:var(--description-font-size);color:#3d3d3d;color:var(--description-color)}.sw-rpwс-static__content-button{width:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;line-height:18px;font-weight:bold;text-align:center;padding:8px;text-transform:uppercase;font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--button-font-family);font-size:12px;font-size:var(--button-font-size);background-color:#fd952c;background-color:var(--button-background-color);color:#fff;color:var(--button-text-color);border-radius:3px;border-radius:var(--button-border-radius)}.sw-rpwс-static__content-button:hover{opacity:.9}.sw-rpwс-static__content>*:not(:last-child){margin-bottom:16px}.sw-rpwс-static__content._with_description .sw-rpwс-static__content-description{margin-top:-8px;margin-bottom:12px}.sw-rpwс-static__close{cursor:pointer;position:absolute;right:0;top:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:32px;height:32px;padding:8px;opacity:.3;color:#3d3d3d;color:var(--text-color)}.sw-rpwс-static__close:hover{opacity:.6}.sw-rpwс-static__content .sw-rpwс-static__content-description{font-size:14px}.sw-rpwс-compare__comparer-block .sw-rpwс-compare__column{display:-webkit-box;display:-ms-flexbox;display:flex}.sw-rpwс-compare__comparer-block .sw-rpwс-compare__column .sw-rpwс-compare__source,.sw-rpwс-compare__comparer-block .sw-rpwс-compare__column .sw-rpwс-compare__min-price{font-family:Arial, Helvetica, Tahoma, \\\"Open Sans\\\", sans-serif;font-family:var(--title-font-family);font-size:16px;font-size:var(--title-font-size)}.sw-rpwс-compare__comparer-block .sw-rpwс-compare__column .sw-rpwс-compare__min-price{padding:2px 5px}.sw-rpwс-compare__comparer-block .sw-rpwс-compare__column.sw-rpwc-booking-form{background-color:#d8e4d6;color:#3c763d;margin-top:5px}.sw-rpwс-compare__comparer-block .sw-rpwс-compare__column .sw-rpwс-compare__source{padding:2px 5px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
{{title}}
\\r\\n {{if description}}\\r\\n
{{description}}
\\r\\n {{/if}}\\r\\n
\\r\\n
\\r\\n
{{sourceName}}
\\r\\n
{{minOtaPrice}}
\\r\\n
\\r\\n
\\r\\n
{{onSiteText}}
\\r\\n
{{minBookingFormPrice}}
\\r\\n
\\r\\n
\\r\\n
{{button}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \":root{--widget-button-background-color: #FD952C;--widget-button-text-color: #FFF}*{-webkit-box-sizing:border-box;box-sizing:border-box}html,body{height:100%}body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.sw-button{padding:8px 12px 12px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.sw-button.-rightbottom{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;float:right}.sw-button.-open .sw-button__container{width:auto}.sw-button.-open .sw-button__label{margin-left:8px;padding-right:8px;-webkit-animation:button-open .5s ease-out 1 forwards;animation:button-open .5s ease-out 1 forwards}.sw-button.-open .sw-button__icon{margin-left:0}.sw-button.-hide{display:none}.sw-button.-completed .sw-button__label{opacity:1;max-width:160px;text-overflow:ellipsis;-webkit-animation:none;animation:none}.sw-button__container{border:3px solid #fff;background-color:#0f5de4 !important;-webkit-box-sizing:border-box;box-sizing:border-box;height:56px;width:56px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:28px;padding:12px;-webkit-box-shadow:0 0 16px rgba(0,0,0,.15);box-shadow:0 0 16px rgba(0,0,0,.15);cursor:pointer;font-family:\\\"Arial\\\",Helvetica,Tahoma,\\\"Open Sans\\\",sans-serif;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fd952c;background-color:var(--widget-button-background-color);color:#fff;color:var(--widget-button-text-color)}@media(hover: hover){.sw-button__container:hover{opacity:.9;-webkit-box-shadow:0 0 8px rgba(0,0,0,.25);box-shadow:0 0 8px rgba(0,0,0,.25)}}.sw-button__icon{position:relative;width:32px;min-width:32px;height:32px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25));filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25))}.sw-button__icon svg{width:100%;height:100%}.sw-button__label{max-width:0;opacity:0;overflow:hidden;font-weight:bold;font-size:13px;white-space:nowrap;-webkit-filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25));filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25))}@-webkit-keyframes button-open{33%{opacity:0}66%{max-width:160px}100%{opacity:1;max-width:160px;text-overflow:ellipsis}}@keyframes button-open{33%{opacity:0}66%{max-width:160px}100%{opacity:1;max-width:160px;text-overflow:ellipsis}}.sw-button__label.-source-kind{margin-top:3px;font-family:\\\"Arial Black\\\",Helvetica,Tahoma,\\\"Open Sans\\\",sans-serif}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Дешевле, чем на
\\r\\n
Ostrovok
\\r\\n
\\r\\n
\\r\\n
\";","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \":root{--widget-button-background-color: #FD952C;--widget-button-text-color: #FFF}*{-webkit-box-sizing:border-box;box-sizing:border-box}html,body{height:100%}body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.sw-button{padding:8px 12px 12px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.sw-button.-rightbottom{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;float:right}.sw-button.-open .sw-button__container{width:auto}.sw-button.-open .sw-button__label{margin-left:8px;padding-right:8px;-webkit-animation:button-open .5s ease-out 1 forwards;animation:button-open .5s ease-out 1 forwards}.sw-button.-hide{display:none}.sw-button.-completed .sw-button__label{opacity:1;max-width:160px;text-overflow:ellipsis;-webkit-animation:none;animation:none}.sw-button__container{-webkit-box-sizing:border-box;box-sizing:border-box;height:56px;width:56px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:28px;padding:12px;-webkit-box-shadow:0 0 16px rgba(0,0,0,.15);box-shadow:0 0 16px rgba(0,0,0,.15);cursor:pointer;font-family:Arial,Helvetica,Tahoma,\\\"Open Sans\\\",sans-serif;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fd952c;background-color:var(--widget-button-background-color);color:#fff;color:var(--widget-button-text-color)}@media(hover: hover){.sw-button__container:hover{opacity:.9;-webkit-box-shadow:0 0 8px rgba(0,0,0,.25);box-shadow:0 0 8px rgba(0,0,0,.25)}}.sw-button__icon{width:32px;min-width:32px;height:32px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25));filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25))}.sw-button__icon svg{width:100%;height:100%}.sw-button__label{max-width:0;opacity:0;overflow:hidden;text-transform:uppercase;font-weight:bold;font-size:13px;white-space:nowrap;-webkit-filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25));filter:drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25))}@-webkit-keyframes button-open{33%{opacity:0}66%{max-width:160px}100%{opacity:1;max-width:160px;text-overflow:ellipsis}}@keyframes button-open{33%{opacity:0}66%{max-width:160px}100%{opacity:1;max-width:160px;text-overflow:ellipsis}}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
{{text}}
\\r\\n
\\r\\n
\";","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".sw-slider{padding:12px}.sw-slider.-desktop{width:464px}.sw-slider.-mobile{width:100%;min-width:240px;max-width:480px;-webkit-animation:slider-open-left .3s ease-out 1 forwards;animation:slider-open-left .3s ease-out 1 forwards}.sw-slider.-rightbottom{-webkit-animation-name:slider-open-right;animation-name:slider-open-right}@-webkit-keyframes slider-open-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}66%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:1}}@keyframes slider-open-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}66%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:1}}@-webkit-keyframes slider-open-right{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}66%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:1}}@keyframes slider-open-right{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}66%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:1}}.sw-slider__container{-webkit-filter:drop-shadow(0px 0 8px rgba(0, 0, 0, 0.25));filter:drop-shadow(0px 0 8px rgba(0, 0, 0, 0.25))}.sw-slider__list{position:relative;overflow:hidden;border-radius:6px}.sw-slider__list.-with-bar{border-radius:6px 6px 0 0}.sw-slider__slide{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;left:0;bottom:0;-webkit-transform:none;transform:none;width:100%;-webkit-transition:all .15s;transition:all .15s;will-change:transform;opacity:0}.sw-slider__slide:not(:first-child){-webkit-transform:translateX(100%);transform:translateX(100%)}.sw-slider__slide.-active{opacity:1}.sw-slider__slide.-no-animate{-webkit-transition:none;transition:none}.sw-slider__bar{display:-webkit-box;display:-ms-flexbox;display:flex;background:#eee;border-radius:0 0 6px 6px;height:32px}.-desktop .sw-slider__bar{height:36px}.sw-slider__bar-points{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 12px}.sw-slider__bar-arrow{padding:0 16px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#4380c6;-webkit-transition:opacity .3s,background-color .3s;transition:opacity .3s,background-color .3s}.-mobile .sw-slider__bar-arrow{display:none}.sw-slider__bar-arrow.-right{-webkit-transform:scale(-1);transform:scale(-1)}.sw-slider__bar-arrow.-hide{opacity:0;pointer-events:none}.sw-slider__bar-arrow:hover{color:#075bba}.sw-slider__bar-arrow svg{pointer-events:none}.sw-slider__point{width:8px;height:8px;background:#c4c4c4;-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.sw-slider__point:not(.-active){cursor:pointer}.sw-slider__point.-active{pointer-events:none;background:#4380c6}.sw-slider__point:not(:last-child){margin-right:8px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{if hasBar}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n
\\r\\n
\\r\\n\";","export var ConditionType;\r\n(function (ConditionType) {\r\n ConditionType[\"Unknown\"] = \"Unknown\";\r\n ConditionType[\"WithParameter\"] = \"WithParameter\";\r\n})(ConditionType || (ConditionType = {}));\r\n","export var ConditionKind;\r\n(function (ConditionKind) {\r\n ConditionKind[\"Unknown\"] = \"Unknown\";\r\n ConditionKind[\"UrlMatch\"] = \"UrlMatch\";\r\n ConditionKind[\"UrlNotMatch\"] = \"UrlNotMatch\";\r\n ConditionKind[\"ShowFromDate\"] = \"ShowFromDate\";\r\n ConditionKind[\"ShowUntilDate\"] = \"ShowUntilDate\";\r\n})(ConditionKind || (ConditionKind = {}));\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { ConditionKind } from '../Model/ConditionKind';\r\nvar LocationMatchCondition = /** @class */ (function () {\r\n function LocationMatchCondition(conditions) {\r\n this._conditions = conditions;\r\n }\r\n Object.defineProperty(LocationMatchCondition.prototype, \"canBeCached\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LocationMatchCondition.prototype.check = function () {\r\n var _this = this;\r\n if (!this._conditions || !this._conditions.length) {\r\n return false;\r\n }\r\n var condition = this._conditions.filter(function (condition) {\r\n return condition.check();\r\n }).sort(function (conditionA, conditionB) {\r\n return _this.compare(conditionA, conditionB);\r\n })[0];\r\n return condition && condition.kind === ConditionKind.UrlMatch;\r\n };\r\n LocationMatchCondition.prototype.strength = function (condition) {\r\n var matches = condition.matches();\r\n if (matches === null) {\r\n return Number.MIN_VALUE;\r\n }\r\n return matches.reduce(function (acc, match) {\r\n return acc - match.length;\r\n }, condition.matchUrl().length);\r\n };\r\n LocationMatchCondition.prototype.compare = function (conditionA, conditionB) {\r\n var strengthA = this.strength(conditionA);\r\n var strengthB = this.strength(conditionB);\r\n if (strengthA === strengthB) {\r\n var urlLengthA = conditionA.matchUrl().length;\r\n var urlLengthB = conditionB.matchUrl().length;\r\n return urlLengthA === urlLengthB ? 0 : (urlLengthA > urlLengthB ? -1 : 1);\r\n }\r\n return strengthA > strengthB ? -1 : 1;\r\n };\r\n return LocationMatchCondition;\r\n}());\r\nexport { LocationMatchCondition };\r\nvar BaseUrlMatchCondition = /** @class */ (function () {\r\n function BaseUrlMatchCondition(condition) {\r\n this._condition = condition;\r\n }\r\n BaseUrlMatchCondition.prototype.matchUrl = function () {\r\n var matchQueryParams = this._condition.parameter.indexOf('?') >= 0;\r\n return window.location.pathname + (matchQueryParams ? window.location.search : '');\r\n };\r\n BaseUrlMatchCondition.prototype.matches = function () {\r\n var matches = this.matchUrl().match(this.stringToRegexp(this._condition.parameter));\r\n return matches ? matches.slice(1) : null;\r\n };\r\n BaseUrlMatchCondition.prototype.stringToRegexp = function (input) {\r\n return new RegExp('^' + input\r\n .replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\r\n .replace(/\\\\\\*/g, '(.*)') + '$');\r\n };\r\n return BaseUrlMatchCondition;\r\n}());\r\nvar UrlMatchCondition = /** @class */ (function (_super) {\r\n __extends(UrlMatchCondition, _super);\r\n function UrlMatchCondition() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(UrlMatchCondition.prototype, \"kind\", {\r\n get: function () {\r\n return ConditionKind.UrlMatch;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UrlMatchCondition.prototype, \"canBeCached\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n UrlMatchCondition.prototype.check = function () {\r\n return this.matches() !== null;\r\n };\r\n return UrlMatchCondition;\r\n}(BaseUrlMatchCondition));\r\nexport { UrlMatchCondition };\r\nvar UrlNotMatchCondition = /** @class */ (function (_super) {\r\n __extends(UrlNotMatchCondition, _super);\r\n function UrlNotMatchCondition() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(UrlNotMatchCondition.prototype, \"kind\", {\r\n get: function () {\r\n return ConditionKind.UrlNotMatch;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UrlNotMatchCondition.prototype, \"canBeCached\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n UrlNotMatchCondition.prototype.check = function () {\r\n return this.matches() !== null;\r\n };\r\n return UrlNotMatchCondition;\r\n}(BaseUrlMatchCondition));\r\nexport { UrlNotMatchCondition };\r\n","export var TriggerType;\r\n(function (TriggerType) {\r\n TriggerType[\"Unknown\"] = \"Unknown\";\r\n TriggerType[\"Timeout\"] = \"Timeout\";\r\n})(TriggerType || (TriggerType = {}));\r\n","export var TriggerAction;\r\n(function (TriggerAction) {\r\n TriggerAction[\"Unknown\"] = \"Unknown\";\r\n TriggerAction[\"PageOpen\"] = \"PageOpen\";\r\n TriggerAction[\"PageLeave\"] = \"PageLeave\";\r\n})(TriggerAction || (TriggerAction = {}));\r\n","var DateUtil = /** @class */ (function () {\r\n function DateUtil() {\r\n }\r\n DateUtil.parseUtcTime = function (dateString) {\r\n var dateParts = dateString.match(/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,10})?([-+])(\\d{2}):(\\d{2})$/);\r\n if (dateParts === null) {\r\n return -1;\r\n }\r\n // Short access to date parts\r\n var d = dateParts.map(function (part) { return parseInt(part, 10); });\r\n var tzOffset = (d[9] * 60 + d[10]) * 60000 * (dateParts[8] === '-' ? -1 : 1);\r\n var time = Date.UTC(d[1], d[2] - 1, d[3], d[4], d[5], d[6]) - tzOffset;\r\n return time;\r\n };\r\n return DateUtil;\r\n}());\r\nexport { DateUtil };\r\n","import { DateUtil } from '../Util/DateUtil';\r\nvar ShowFromDateCondition = /** @class */ (function () {\r\n function ShowFromDateCondition(condition) {\r\n this._condition = condition;\r\n }\r\n Object.defineProperty(ShowFromDateCondition.prototype, \"canBeCached\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ShowFromDateCondition.prototype.check = function () {\r\n var utcNow = new Date().getTime();\r\n var showFromDate = DateUtil.parseUtcTime(this._condition.parameter);\r\n return showFromDate > 0 && utcNow >= showFromDate;\r\n };\r\n return ShowFromDateCondition;\r\n}());\r\nexport { ShowFromDateCondition };\r\n","import { DateUtil } from '../Util/DateUtil';\r\nvar ShowUntilDateCondition = /** @class */ (function () {\r\n function ShowUntilDateCondition(condition) {\r\n this._condition = condition;\r\n }\r\n Object.defineProperty(ShowUntilDateCondition.prototype, \"canBeCached\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ShowUntilDateCondition.prototype.check = function () {\r\n var utcNow = new Date().getTime();\r\n var showUntilDate = DateUtil.parseUtcTime(this._condition.parameter);\r\n return showUntilDate > 0 && utcNow < showUntilDate;\r\n };\r\n return ShowUntilDateCondition;\r\n}());\r\nexport { ShowUntilDateCondition };\r\n","import { ConditionType } from '../Model/ConditionType';\r\nimport { ConditionKind } from '../Model/ConditionKind';\r\nimport { UrlMatchCondition, UrlNotMatchCondition, LocationMatchCondition } from '../Condition/UrlMatchCondition';\r\nimport { ShowFromDateCondition } from '../Condition/ShowFromDateCondition';\r\nimport { ShowUntilDateCondition } from '../Condition/ShowUntilDateCondition';\r\nvar ConditionFactory = /** @class */ (function () {\r\n function ConditionFactory() {\r\n }\r\n ConditionFactory.build = function (models) {\r\n var factories = [\r\n new LocationMatchConditionAggregatedFactory(),\r\n new ConditionWithParameterAggregatedFactory()\r\n ];\r\n models.forEach(function (model) {\r\n var accepted = false;\r\n factories.forEach(function (factory) {\r\n accepted = !accepted && factory.accept(model);\r\n });\r\n });\r\n var conditions = [];\r\n factories.forEach(function (factory) {\r\n conditions = conditions.concat(factory.build());\r\n });\r\n return conditions;\r\n };\r\n return ConditionFactory;\r\n}());\r\nexport { ConditionFactory };\r\nvar LocationMatchConditionAggregatedFactory = /** @class */ (function () {\r\n function LocationMatchConditionAggregatedFactory() {\r\n this._models = [];\r\n }\r\n LocationMatchConditionAggregatedFactory.prototype.accept = function (model) {\r\n if (model.type === ConditionType.WithParameter\r\n && (model.kind === ConditionKind.UrlMatch || model.kind === ConditionKind.UrlNotMatch)) {\r\n this._models.push(model);\r\n return true;\r\n }\r\n return false;\r\n };\r\n LocationMatchConditionAggregatedFactory.prototype.build = function () {\r\n var conditions = this._models.map(function (model) {\r\n return ConditionWithParameterFactory.build(model);\r\n }).filter(function (condition) {\r\n return condition !== null;\r\n });\r\n return [\r\n new LocationMatchCondition(conditions)\r\n ];\r\n };\r\n return LocationMatchConditionAggregatedFactory;\r\n}());\r\nvar ConditionWithParameterAggregatedFactory = /** @class */ (function () {\r\n function ConditionWithParameterAggregatedFactory() {\r\n this._models = [];\r\n }\r\n ConditionWithParameterAggregatedFactory.prototype.accept = function (model) {\r\n if (model.type === ConditionType.WithParameter) {\r\n this._models.push(model);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ConditionWithParameterAggregatedFactory.prototype.build = function () {\r\n return this._models.map(function (model) {\r\n return ConditionWithParameterFactory.build(model);\r\n }).filter(function (condition) {\r\n return condition !== null;\r\n });\r\n };\r\n return ConditionWithParameterAggregatedFactory;\r\n}());\r\nvar ConditionWithParameterFactory = /** @class */ (function () {\r\n function ConditionWithParameterFactory() {\r\n }\r\n ConditionWithParameterFactory.build = function (model) {\r\n switch (model.kind) {\r\n case ConditionKind.UrlMatch:\r\n return new UrlMatchCondition(model);\r\n case ConditionKind.UrlNotMatch:\r\n return new UrlNotMatchCondition(model);\r\n case ConditionKind.ShowFromDate:\r\n return new ShowFromDateCondition(model);\r\n case ConditionKind.ShowUntilDate:\r\n return new ShowUntilDateCondition(model);\r\n default:\r\n return null;\r\n }\r\n };\r\n return ConditionWithParameterFactory;\r\n}());\r\n","var AppearanceStatic = /** @class */ (function () {\r\n function AppearanceStatic(manager, appearance) {\r\n this._manager = manager;\r\n this._appearance = appearance;\r\n }\r\n AppearanceStatic.prototype.show = function (widget, showCb) {\r\n return this._manager.show(widget, this._appearance.position, showCb);\r\n };\r\n AppearanceStatic.prototype.hide = function (widget) {\r\n return this._manager.hide(widget, this._appearance.position);\r\n };\r\n AppearanceStatic.prototype.destroy = function (widget) {\r\n return this._manager.destroy(this._appearance.position);\r\n };\r\n AppearanceStatic.prototype.canShow = function () {\r\n return this._manager.hasEmptySlot(this._appearance.position);\r\n };\r\n return AppearanceStatic;\r\n}());\r\nexport { AppearanceStatic };\r\n","import { TemplateKind } from '../Model/TemplateKind';\r\nimport { WidgetType } from '../Model/WidgetType';\r\nvar StaticPaneManager = /** @class */ (function () {\r\n function StaticPaneManager(pane) {\r\n this._pane = null;\r\n this._slots = [];\r\n this._pane = pane;\r\n this._slots = [\r\n null\r\n ];\r\n }\r\n StaticPaneManager.prototype.show = function (widget, position, showCb) {\r\n // Get slot and render\r\n this.takeSlot(widget, position);\r\n var templateKind = TemplateKind.Static;\r\n // HYPONLINE-91\r\n if (widget.widget && widget.widget.type == WidgetType.RatePlan && widget.widget.widgetType == WidgetType.Comparer) {\r\n templateKind = TemplateKind.Comparer;\r\n }\r\n var content = widget.render(templateKind);\r\n var params = {\r\n kind: TemplateKind.Static,\r\n position: position,\r\n priority: 1\r\n };\r\n this._pane.show(params, content, showCb);\r\n };\r\n StaticPaneManager.prototype.hide = function (widget, position) {\r\n this.freeSlot(widget, position);\r\n var params = {\r\n kind: TemplateKind.Static,\r\n position: position\r\n };\r\n this._pane.hide(params);\r\n };\r\n StaticPaneManager.prototype.destroy = function (position) {\r\n this._slots = [\r\n null\r\n ];\r\n var params = {\r\n kind: TemplateKind.Static,\r\n position: position\r\n };\r\n this._pane.destroy(params);\r\n };\r\n StaticPaneManager.prototype.findSlotIndex = function (position, widget) {\r\n var slotIndex = this._slots.indexOf(widget);\r\n if (slotIndex > -1) {\r\n return slotIndex;\r\n }\r\n return null;\r\n };\r\n StaticPaneManager.prototype.takeSlot = function (widget, position) {\r\n var emptySlotIndex = this.findSlotIndex(position, null);\r\n if (emptySlotIndex !== null) {\r\n this._slots[emptySlotIndex] = widget;\r\n }\r\n };\r\n StaticPaneManager.prototype.freeSlot = function (widget, position) {\r\n var widgetSlotIndex = this.findSlotIndex(position, widget);\r\n if (widgetSlotIndex !== null) {\r\n this._slots[widgetSlotIndex] = null;\r\n }\r\n };\r\n StaticPaneManager.prototype.hasEmptySlot = function (position) {\r\n return this.findSlotIndex(position, null) !== null;\r\n };\r\n return StaticPaneManager;\r\n}());\r\nexport { StaticPaneManager };\r\n","var WidgetManager = /** @class */ (function () {\r\n function WidgetManager() {\r\n }\r\n WidgetManager.prototype.resolveManager = function (callback) {\r\n window.TL.modules.run(function (_require) {\r\n callback(_require('int/widgets-manager'));\r\n });\r\n };\r\n WidgetManager.prototype.show = function (params, element, showCb) {\r\n this.resolveManager(function (widgetsManager) {\r\n widgetsManager.embed(params.kind, params, element, showCb);\r\n });\r\n };\r\n WidgetManager.prototype.resize = function (params) {\r\n this.resolveManager(function (widgetsManager) {\r\n widgetsManager.resize(params.kind, params);\r\n });\r\n };\r\n WidgetManager.prototype.hide = function (params) {\r\n this.resolveManager(function (widgetsManager) {\r\n widgetsManager.close(params.kind, params);\r\n });\r\n };\r\n WidgetManager.prototype.destroy = function (params) {\r\n this.resolveManager(function (widgetsManager) {\r\n widgetsManager.destroy(params.kind, params);\r\n });\r\n };\r\n return WidgetManager;\r\n}());\r\nexport { WidgetManager };\r\n","import { WidgetManager } from '../../Manager/WidgetManager';\r\nvar StaticPane = /** @class */ (function () {\r\n function StaticPane() {\r\n this.widgetManager = new WidgetManager();\r\n }\r\n StaticPane.prototype.show = function (params, element, showCb) {\r\n this.widgetManager.show(params, element, showCb);\r\n };\r\n StaticPane.prototype.hide = function (params) {\r\n this.widgetManager.hide(params);\r\n };\r\n StaticPane.prototype.destroy = function (params) {\r\n this.widgetManager.destroy(params);\r\n };\r\n return StaticPane;\r\n}());\r\nexport { StaticPane };\r\n","/* tslint:disable:no-console */\r\nvar MockStaticPane = /** @class */ (function () {\r\n function MockStaticPane() {\r\n }\r\n MockStaticPane.prototype.show = function (params, element, showCb) {\r\n console.log('show', params);\r\n var elements = Array.prototype.slice.call(element.children);\r\n for (var index in elements) {\r\n if (elements.hasOwnProperty(index)) {\r\n document.body.appendChild(elements[index]);\r\n }\r\n }\r\n if (showCb) {\r\n showCb();\r\n }\r\n };\r\n MockStaticPane.prototype.hide = function (params) {\r\n console.log('hide', params);\r\n };\r\n MockStaticPane.prototype.destroy = function (params) {\r\n console.log('destroy', params);\r\n };\r\n return MockStaticPane;\r\n}());\r\nexport { MockStaticPane };\r\n","import { StaticPane } from '../Appearance/StaticPane/StaticPane';\r\nimport { MockStaticPane } from '../Appearance/StaticPane/MockStaticPane';\r\nvar StaticPaneFactory = /** @class */ (function () {\r\n function StaticPaneFactory() {\r\n }\r\n StaticPaneFactory.getStaticPane = function () {\r\n if (window.TL && window.TL.modules) {\r\n return new StaticPane();\r\n }\r\n return new MockStaticPane();\r\n };\r\n return StaticPaneFactory;\r\n}());\r\nexport { StaticPaneFactory };\r\n","var AppearanceModal = /** @class */ (function () {\r\n function AppearanceModal(manager) {\r\n this._manager = manager;\r\n }\r\n AppearanceModal.prototype.show = function (widget, showCb) {\r\n return this._manager.show(widget, showCb);\r\n };\r\n AppearanceModal.prototype.hide = function () {\r\n return this._manager.hide();\r\n };\r\n AppearanceModal.prototype.destroy = function () {\r\n return this._manager.destroy();\r\n };\r\n AppearanceModal.prototype.canShow = function () {\r\n return this._manager.canShow();\r\n };\r\n return AppearanceModal;\r\n}());\r\nexport { AppearanceModal };\r\n","import { TemplateKind } from '../Model/TemplateKind';\r\nimport { WidgetPosition } from '../Model/WidgetPosition';\r\nvar ModalManager = /** @class */ (function () {\r\n function ModalManager(modal) {\r\n this._modal = null;\r\n this._modal = modal;\r\n }\r\n ModalManager.prototype.show = function (widget, showCb) {\r\n var content = widget.render(TemplateKind.Modal);\r\n var params = {\r\n kind: TemplateKind.Modal,\r\n position: WidgetPosition.Modal\r\n };\r\n if (this.canShow()) {\r\n this._shown = true;\r\n this._modal.show(params, content, showCb);\r\n }\r\n };\r\n ModalManager.prototype.hide = function () {\r\n var params = {\r\n kind: TemplateKind.Modal,\r\n position: WidgetPosition.Modal\r\n };\r\n this._shown = false;\r\n this._modal.hide(params);\r\n };\r\n ModalManager.prototype.destroy = function () {\r\n var params = {\r\n kind: TemplateKind.Modal,\r\n position: WidgetPosition.Modal\r\n };\r\n this._shown = false;\r\n this._modal.destroy(params);\r\n };\r\n ModalManager.prototype.canShow = function () {\r\n return !this._shown;\r\n };\r\n return ModalManager;\r\n}());\r\nexport { ModalManager };\r\n","var AppearanceButton = /** @class */ (function () {\r\n function AppearanceButton(manager, appearance) {\r\n this._manager = manager;\r\n this._appearance = appearance;\r\n }\r\n AppearanceButton.prototype.show = function (widget, showCb) {\r\n return this._manager.show(widget, this._appearance, showCb);\r\n };\r\n AppearanceButton.prototype.resize = function (state, size) {\r\n return this._manager.resize(this._appearance, state, size);\r\n };\r\n AppearanceButton.prototype.hide = function () {\r\n return this._manager.hide();\r\n };\r\n AppearanceButton.prototype.destroy = function () {\r\n return this._manager.destroy(this._appearance);\r\n };\r\n AppearanceButton.prototype.canShow = function () {\r\n return this._manager.canShow();\r\n };\r\n return AppearanceButton;\r\n}());\r\nexport { AppearanceButton };\r\n","import { TemplateKind } from '../Model/TemplateKind';\r\nimport { TemplateMode } from '../Model/TemplateMode';\r\nimport { SliderState } from '../Model/SliderState';\r\nvar MobileManager = /** @class */ (function () {\r\n function MobileManager(mobile) {\r\n this._mobile = null;\r\n this._mobile = mobile;\r\n }\r\n MobileManager.prototype.show = function (widget, appearance, showCb) {\r\n var content = widget.render(TemplateKind.Mobile, TemplateMode.Mobile);\r\n var params = {\r\n kind: TemplateKind.Mobile,\r\n state: SliderState.Button,\r\n position: appearance.position,\r\n bottomIndent: appearance.bottomIndent,\r\n priority: 1\r\n };\r\n this._mobile.show(params, content, showCb);\r\n };\r\n MobileManager.prototype.resize = function (appearance, state, size) {\r\n var params = {\r\n kind: TemplateKind.Mobile,\r\n state: state,\r\n position: appearance.position,\r\n size: size,\r\n bottomIndent: appearance.bottomIndent\r\n };\r\n this._mobile.resize(params);\r\n };\r\n MobileManager.prototype.hide = function () {\r\n var params = {\r\n kind: TemplateKind.Mobile\r\n };\r\n this._mobile.hide(params);\r\n };\r\n MobileManager.prototype.destroy = function (appearance) {\r\n var params = {\r\n kind: TemplateKind.Mobile,\r\n position: appearance.position\r\n };\r\n this._mobile.destroy(params);\r\n };\r\n MobileManager.prototype.canShow = function () {\r\n return true;\r\n };\r\n return MobileManager;\r\n}());\r\nexport { MobileManager };\r\n","import { WidgetManager } from '../../Manager/WidgetManager';\r\nvar Modal = /** @class */ (function () {\r\n function Modal() {\r\n this.widgetManager = new WidgetManager();\r\n }\r\n Modal.prototype.show = function (params, element, showCb) {\r\n this.widgetManager.show(params, element, showCb);\r\n };\r\n Modal.prototype.hide = function (params) {\r\n this.widgetManager.hide(params);\r\n };\r\n Modal.prototype.destroy = function (params) {\r\n this.widgetManager.destroy(params);\r\n };\r\n return Modal;\r\n}());\r\nexport { Modal };\r\n","/* tslint:disable:no-console */\r\nvar MockModal = /** @class */ (function () {\r\n function MockModal() {\r\n this._elements = [];\r\n }\r\n MockModal.prototype.show = function (params, element, showCb) {\r\n console.log('show', params);\r\n var elements = Array.prototype.slice.call(element.children);\r\n for (var index in elements) {\r\n if (elements.hasOwnProperty(index)) {\r\n document.body.appendChild(elements[index]);\r\n this._elements.push(elements[index]);\r\n }\r\n }\r\n if (showCb) {\r\n showCb();\r\n }\r\n };\r\n MockModal.prototype.hide = function (params) {\r\n console.log('hide', params);\r\n for (var index in this._elements) {\r\n if (this._elements.hasOwnProperty(index)) {\r\n document.body.removeChild(this._elements[index]);\r\n }\r\n }\r\n this._elements = [];\r\n };\r\n MockModal.prototype.destroy = function (params) {\r\n console.log('destroy');\r\n };\r\n return MockModal;\r\n}());\r\nexport { MockModal };\r\n","import { Modal } from '../Appearance/Modal/Modal';\r\nimport { MockModal } from '../Appearance/Modal/MockModal';\r\nvar ModalFactory = /** @class */ (function () {\r\n function ModalFactory() {\r\n }\r\n ModalFactory.getModal = function () {\r\n if (window.TL && window.TL.modules) {\r\n return new Modal();\r\n }\r\n return new MockModal();\r\n };\r\n return ModalFactory;\r\n}());\r\nexport { ModalFactory };\r\n","import { WidgetManager } from '../../Manager/WidgetManager';\r\nvar Button = /** @class */ (function () {\r\n function Button() {\r\n this.widgetManager = new WidgetManager();\r\n }\r\n Button.prototype.show = function (params, element, showCb) {\r\n this.widgetManager.show(params, element, showCb);\r\n };\r\n Button.prototype.resize = function (params) {\r\n this.widgetManager.resize(params);\r\n };\r\n Button.prototype.hide = function (params) {\r\n this.widgetManager.hide(params);\r\n };\r\n Button.prototype.destroy = function (params) {\r\n this.widgetManager.destroy(params);\r\n };\r\n return Button;\r\n}());\r\nexport { Button };\r\n","/* tslint:disable:no-console */\r\nvar MockButton = /** @class */ (function () {\r\n function MockButton() {\r\n this._elements = [];\r\n }\r\n MockButton.prototype.show = function (params, element, showCb) {\r\n console.log('show', params, element);\r\n var elements = Array.prototype.slice.call(element.children);\r\n for (var index in elements) {\r\n if (elements.hasOwnProperty(index)) {\r\n document.body.appendChild(elements[index]);\r\n this._elements.push(elements[index]);\r\n }\r\n }\r\n if (showCb) {\r\n showCb();\r\n }\r\n };\r\n MockButton.prototype.resize = function (params) {\r\n console.log('resize', params);\r\n };\r\n MockButton.prototype.hide = function (params) {\r\n console.log('hide', params);\r\n };\r\n MockButton.prototype.destroy = function (params) {\r\n console.log('destroy');\r\n };\r\n return MockButton;\r\n}());\r\nexport { MockButton };\r\n","import { Button } from '../Appearance/Button/Button';\r\nimport { MockButton } from '../Appearance/Button/MockButton';\r\nvar MobileFactory = /** @class */ (function () {\r\n function MobileFactory() {\r\n }\r\n MobileFactory.getButton = function () {\r\n if (window.TL && window.TL.modules) {\r\n return new Button();\r\n }\r\n return new MockButton();\r\n };\r\n return MobileFactory;\r\n}());\r\nexport { MobileFactory };\r\n","var AppearanceSlider = /** @class */ (function () {\r\n function AppearanceSlider(manager, appearance) {\r\n this._manager = manager;\r\n this._appearance = appearance;\r\n }\r\n AppearanceSlider.prototype.show = function (widget, showCb) {\r\n return this._manager.show(widget, this._appearance, showCb);\r\n };\r\n AppearanceSlider.prototype.hide = function () {\r\n return this._manager.hide();\r\n };\r\n AppearanceSlider.prototype.destroy = function () {\r\n return this._manager.destroy(this._appearance);\r\n };\r\n AppearanceSlider.prototype.resize = function (state, size) {\r\n return this._manager.resize(this._appearance, size);\r\n };\r\n AppearanceSlider.prototype.canShow = function () {\r\n return this._manager.canShow();\r\n };\r\n return AppearanceSlider;\r\n}());\r\nexport { AppearanceSlider };\r\n","import { TemplateKind } from '../Model/TemplateKind';\r\nimport { TemplateMode } from '../Model/TemplateMode';\r\nvar SliderManager = /** @class */ (function () {\r\n function SliderManager(slider) {\r\n this._slider = null;\r\n this._content = null;\r\n this._slider = slider;\r\n }\r\n SliderManager.prototype.show = function (widget, appearance, showCb) {\r\n this._content = this._content || widget.render(TemplateKind.Slider, TemplateMode.Desktop);\r\n var params = {\r\n kind: TemplateKind.Slider,\r\n position: appearance.position\r\n };\r\n this._slider.show(params, this._content, showCb);\r\n };\r\n SliderManager.prototype.hide = function () {\r\n var params = {\r\n kind: TemplateKind.Slider\r\n };\r\n this._slider.hide(params);\r\n };\r\n SliderManager.prototype.resize = function (appearance, size) {\r\n var params = {\r\n kind: TemplateKind.Slider,\r\n position: appearance.position,\r\n size: size\r\n };\r\n this._slider.resize(params);\r\n };\r\n SliderManager.prototype.destroy = function (appearance) {\r\n var params = {\r\n kind: TemplateKind.Slider,\r\n position: appearance.position\r\n };\r\n this._slider.destroy(params);\r\n };\r\n SliderManager.prototype.canShow = function () {\r\n return true;\r\n };\r\n return SliderManager;\r\n}());\r\nexport { SliderManager };\r\n","/* tslint:disable:no-console */\r\nvar MockSlider = /** @class */ (function () {\r\n function MockSlider() {\r\n this._elements = [];\r\n }\r\n MockSlider.prototype.show = function (params, element, showCb) {\r\n console.log('show', params, element);\r\n var elements = Array.prototype.slice.call(element.children);\r\n for (var index in elements) {\r\n if (elements.hasOwnProperty(index)) {\r\n document.body.appendChild(elements[index]);\r\n this._elements.push(elements[index]);\r\n }\r\n }\r\n if (showCb) {\r\n showCb();\r\n }\r\n };\r\n MockSlider.prototype.resize = function (params) {\r\n console.log('resize', params);\r\n };\r\n MockSlider.prototype.hide = function (params) {\r\n console.log('hide', params);\r\n for (var index in this._elements) {\r\n if (this._elements.hasOwnProperty(index)) {\r\n document.body.removeChild(this._elements[index]);\r\n }\r\n }\r\n this._elements = [];\r\n };\r\n MockSlider.prototype.destroy = function (params) {\r\n console.log('destroy');\r\n for (var index in this._elements) {\r\n if (this._elements.hasOwnProperty(index)) {\r\n document.body.removeChild(this._elements[index]);\r\n }\r\n }\r\n this._elements = [];\r\n };\r\n return MockSlider;\r\n}());\r\nexport { MockSlider };\r\n","import { WidgetManager } from '../../Manager/WidgetManager';\r\nvar Slider = /** @class */ (function () {\r\n function Slider() {\r\n this.widgetManager = new WidgetManager();\r\n }\r\n Slider.prototype.show = function (params, element, showCb) {\r\n this.widgetManager.show(params, element, showCb);\r\n };\r\n Slider.prototype.resize = function (params) {\r\n this.widgetManager.resize(params);\r\n };\r\n Slider.prototype.hide = function (params) {\r\n this.widgetManager.hide(params);\r\n };\r\n Slider.prototype.destroy = function (params) {\r\n this.widgetManager.destroy(params);\r\n };\r\n return Slider;\r\n}());\r\nexport { Slider };\r\n","import { MockSlider } from '../Appearance/Slider/MockSlider';\r\nimport { Slider } from '../Appearance/Slider/Slider';\r\nvar SliderFactory = /** @class */ (function () {\r\n function SliderFactory() {\r\n }\r\n SliderFactory.getSlider = function () {\r\n if (window.TL && window.TL.modules) {\r\n return new Slider();\r\n }\r\n return new MockSlider();\r\n };\r\n return SliderFactory;\r\n}());\r\nexport { SliderFactory };\r\n","import { AppearanceStatic } from '../Appearance/AppearanceStatic';\r\nimport { AppearanceType } from '../Model/AppearanceType';\r\nimport { StaticPaneManager } from '../Manager/StaticPaneManager';\r\nimport { StaticPaneFactory } from './StaticPaneFactory';\r\nimport { AppearanceModal } from '../Appearance/AppearanceModal';\r\nimport { ModalManager } from '../Manager/ModalManager';\r\nimport { AppearanceButton } from '../Appearance/AppearanceButton';\r\nimport { MobileManager } from '../Manager/MobileManager';\r\nimport { ModalFactory } from './ModalFactory';\r\nimport { MobileFactory } from './MobileFactory';\r\nimport { AppearanceSlider } from '../Appearance/AppearanceSlider';\r\nimport { SliderManager } from '../Manager/SliderManager';\r\nimport { SliderFactory } from './SliderFactory';\r\nvar AppearanceFactory = /** @class */ (function () {\r\n function AppearanceFactory() {\r\n }\r\n AppearanceFactory.build = function (model) {\r\n switch (model.type) {\r\n case AppearanceType.Comparer:\r\n return new AppearanceStatic(new StaticPaneManager(StaticPaneFactory.getStaticPane()), model);\r\n case AppearanceType.Static:\r\n return new AppearanceStatic(new StaticPaneManager(StaticPaneFactory.getStaticPane()), model);\r\n case AppearanceType.Modal:\r\n return new AppearanceModal(new ModalManager(ModalFactory.getModal()));\r\n case AppearanceType.Button:\r\n return new AppearanceButton(new MobileManager(MobileFactory.getButton()), model);\r\n case AppearanceType.Slider:\r\n return new AppearanceSlider(new SliderManager(SliderFactory.getSlider()), model);\r\n default:\r\n return null;\r\n }\r\n };\r\n return AppearanceFactory;\r\n}());\r\nexport { AppearanceFactory };\r\n","var PersistentStorage = /** @class */ (function () {\r\n function PersistentStorage() {\r\n }\r\n PersistentStorage.get = function (key) {\r\n try {\r\n return localStorage.getItem(PersistentStorage.keyPrefix + key);\r\n }\r\n catch (_a) {\r\n return null;\r\n }\r\n };\r\n PersistentStorage.set = function (key, value) {\r\n try {\r\n localStorage.setItem(PersistentStorage.keyPrefix + key, value);\r\n return true;\r\n }\r\n catch (_a) {\r\n return false;\r\n }\r\n };\r\n PersistentStorage.keyPrefix = 'sw-';\r\n return PersistentStorage;\r\n}());\r\nexport { PersistentStorage };\r\n","import { PersistentStorage } from '../Storage/PersistentStorage';\r\nvar TriggerWithTimeout = /** @class */ (function () {\r\n function TriggerWithTimeout(widget, trigger, strategy) {\r\n this._callback = null;\r\n this._widget = widget;\r\n this._trigger = trigger;\r\n this._strategy = strategy;\r\n }\r\n TriggerWithTimeout.prototype.register = function (callback) {\r\n this._callback = callback;\r\n this._strategy.register(callback, this.calcTimeout());\r\n };\r\n TriggerWithTimeout.prototype.destroy = function (callbackOnExpire) {\r\n if (callbackOnExpire === void 0) { callbackOnExpire = true; }\r\n if (this._callback && this._trigger.reopenTimeoutEnabled) {\r\n var newExpireDate = new Date(new Date().getTime() + this._trigger.reopenTimeout * 1000);\r\n if (!callbackOnExpire || PersistentStorage.set(this.getExpireTimeoutStorageKey(), newExpireDate.toISOString())) {\r\n this._strategy.destroy(callbackOnExpire ? this.calcTimeout() : NaN);\r\n }\r\n }\r\n else {\r\n this._strategy.destroy();\r\n }\r\n };\r\n TriggerWithTimeout.prototype.getExpireTimeoutStorageKey = function () {\r\n var key = this._widget.key || this._widget.type;\r\n return TriggerWithTimeout.expireTimeoutStorageKey + '-' + key;\r\n };\r\n TriggerWithTimeout.prototype.calcTimeout = function () {\r\n var expireTime = Date.parse(PersistentStorage.get(this.getExpireTimeoutStorageKey()));\r\n if (expireTime) {\r\n var nowDate = new Date();\r\n var expireDate = new Date(expireTime);\r\n if (expireDate > nowDate) {\r\n return Math.max(expireDate.getTime() - nowDate.getTime(), this._trigger.timeout * 1000);\r\n }\r\n }\r\n return this._trigger.timeout * 1000;\r\n };\r\n TriggerWithTimeout.expireTimeoutStorageKey = 'TriggerWithTimeoutExpire';\r\n return TriggerWithTimeout;\r\n}());\r\nexport { TriggerWithTimeout };\r\n","var TriggerPageOpenStrategy = /** @class */ (function () {\r\n function TriggerPageOpenStrategy() {\r\n this._callback = null;\r\n this._registerId = null;\r\n }\r\n TriggerPageOpenStrategy.prototype.register = function (callback, timeout) {\r\n this._callback = callback;\r\n this._registerId = window.setTimeout(function () {\r\n callback();\r\n }, timeout + this.getRandomDelay());\r\n };\r\n TriggerPageOpenStrategy.prototype.destroy = function (timeout) {\r\n var _this = this;\r\n if (isNaN(timeout)) {\r\n clearTimeout(this._registerId);\r\n return;\r\n }\r\n setTimeout(function () {\r\n _this._callback();\r\n }, timeout + this.getRandomDelay());\r\n };\r\n TriggerPageOpenStrategy.prototype.getRandomDelay = function () {\r\n // Случайная задержка для псевдоротации виджетов с одинаковым таймаутом\r\n return Math.floor(Math.random() * 200);\r\n };\r\n return TriggerPageOpenStrategy;\r\n}());\r\nexport { TriggerPageOpenStrategy };\r\n","var TriggerPageLeaveStrategy = /** @class */ (function () {\r\n function TriggerPageLeaveStrategy() {\r\n this._canOpen = true;\r\n this._shown = false;\r\n }\r\n TriggerPageLeaveStrategy.prototype.register = function (callback, timeout) {\r\n var _this = this;\r\n var timeoutExpired = false;\r\n var timer = window.setTimeout(function () {\r\n timeoutExpired = true;\r\n }, timeout);\r\n var ua = navigator.userAgent;\r\n var triggerCallback = function () {\r\n if (!_this._shown && _this._canOpen && timeoutExpired) {\r\n callback();\r\n window.clearTimeout(timer);\r\n }\r\n };\r\n document.documentElement.addEventListener('mouseleave', function (e) {\r\n if ((ua.indexOf('MSIE ') > -1 || ua.indexOf('Trident/') > -1) || e.clientY <= 0) {\r\n triggerCallback();\r\n }\r\n });\r\n };\r\n TriggerPageLeaveStrategy.prototype.destroy = function (timeout) {\r\n var _this = this;\r\n this._shown = false;\r\n this._canOpen = false;\r\n if (isNaN(timeout)) {\r\n return;\r\n }\r\n setTimeout(function () {\r\n _this._canOpen = true;\r\n }, timeout);\r\n };\r\n return TriggerPageLeaveStrategy;\r\n}());\r\nexport { TriggerPageLeaveStrategy };\r\n","import { TriggerType } from '../Model/TriggerType';\r\nimport { TriggerAction } from '../Model/TriggerAction';\r\nimport { TriggerWithTimeout } from '../Trigger/TriggerWithTimeout';\r\nimport { TriggerPageOpenStrategy } from '../Trigger/TriggerWithTimeout/TriggerPageOpenStrategy';\r\nimport { TriggerPageLeaveStrategy } from '../Trigger/TriggerWithTimeout/TriggerPageLeaveStrategy';\r\nvar TriggerFactory = /** @class */ (function () {\r\n function TriggerFactory() {\r\n }\r\n TriggerFactory.build = function (widget, model) {\r\n switch (model.type) {\r\n case TriggerType.Timeout:\r\n switch (model.action) {\r\n case TriggerAction.PageOpen:\r\n return new TriggerWithTimeout(widget, model, new TriggerPageOpenStrategy());\r\n case TriggerAction.PageLeave:\r\n return new TriggerWithTimeout(widget, model, new TriggerPageLeaveStrategy());\r\n default:\r\n return null;\r\n }\r\n default:\r\n return null;\r\n }\r\n };\r\n return TriggerFactory;\r\n}());\r\nexport { TriggerFactory };\r\n","import { TemplateMode } from '../Model/TemplateMode';\r\nvar Widget = /** @class */ (function () {\r\n function Widget(appearance, trigger, conditions, widget) {\r\n this._appearance = appearance;\r\n this._trigger = trigger;\r\n this._conditions = conditions;\r\n this._widget = widget;\r\n }\r\n Object.defineProperty(Widget.prototype, \"sort\", {\r\n get: function () {\r\n return this._widget.sort;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Widget.prototype, \"widgetKey\", {\r\n get: function () {\r\n return this._widget.widgetKey;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Widget.prototype, \"widget\", {\r\n get: function () {\r\n return this._widget;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Widget.prototype.register = function () {\r\n var _this = this;\r\n if (this._conditions && !this._conditions.every(function (condition) {\r\n return !condition.canBeCached || condition.check();\r\n })) {\r\n return false;\r\n }\r\n this._trigger.register(function () {\r\n _this.show();\r\n });\r\n return true;\r\n };\r\n Widget.prototype.render = function (template, mode, submitCb, hideAction, isPresentational) {\r\n var _this = this;\r\n if (mode === void 0) { mode = TemplateMode.Desktop; }\r\n if (isPresentational === void 0) { isPresentational = false; }\r\n return this._widget.render(template, mode, function (url) {\r\n if (submitCb) {\r\n submitCb();\r\n }\r\n document.location.replace(url);\r\n }, function () {\r\n if (hideAction) {\r\n hideAction();\r\n }\r\n else {\r\n _this.hide();\r\n }\r\n }, this.resize.bind(this), isPresentational);\r\n };\r\n Widget.prototype.getProviderId = function () {\r\n return this._widget.getProviderId();\r\n };\r\n Widget.prototype.show = function () {\r\n if (this.canShow()) {\r\n this._appearance.show(this);\r\n }\r\n };\r\n Widget.prototype.resize = function (state, size) {\r\n this._appearance.resize(state, size);\r\n };\r\n Widget.prototype.hide = function () {\r\n this._appearance.hide(this);\r\n this._trigger.destroy();\r\n };\r\n Widget.prototype.destroy = function () {\r\n this._appearance.destroy(this);\r\n this._trigger.destroy(false);\r\n };\r\n Widget.prototype.canShow = function () {\r\n var canShow = true;\r\n if (this._conditions) {\r\n canShow = canShow && this._conditions.every(function (condition) {\r\n return condition.canBeCached || condition.check();\r\n });\r\n }\r\n canShow = canShow && this._widget.canShow();\r\n canShow = canShow && this._appearance.canShow();\r\n return canShow;\r\n };\r\n return Widget;\r\n}());\r\nexport { Widget };\r\n","var WidgetHostResolver = /** @class */ (function () {\r\n function WidgetHostResolver() {\r\n }\r\n WidgetHostResolver.resolve = function (hosts, group, language) {\r\n var providerHosts = hosts.filter(function (host) { return host.providerId === group.providerId; });\r\n var providerLanguageHosts = providerHosts.filter(function (host) { return host.language === language; });\r\n return providerLanguageHosts[0] || providerHosts[0] || hosts[0];\r\n };\r\n return WidgetHostResolver;\r\n}());\r\nexport { WidgetHostResolver };\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { WidgetType } from '../Model/WidgetType';\r\nimport { RatePlanWidgetContent } from '../Widget/RatePlanWidget/RatePlanWidgetContent';\r\nimport { AppearanceFactory } from './AppearanceFactory';\r\nimport { TriggerFactory } from './TriggerFactory';\r\nimport { ConditionFactory } from './ConditionFactory';\r\nimport { Widget } from '../Widget/Widget';\r\nimport { WidgetHostResolver } from '../Resolver/WidgetHostResolver';\r\nimport { SliderWidgetContent } from '../Widget/SliderWidget/SliderWidgetContent';\r\nimport { AppearanceType } from '../Model/AppearanceType';\r\nvar WidgetFactory = /** @class */ (function () {\r\n function WidgetFactory() {\r\n }\r\n WidgetFactory.build = function (model, behavior, hosts, language, group) {\r\n switch (model.type) {\r\n // HYPONLINE-91\r\n case WidgetType.Comparer:\r\n var comparerModel = model;\r\n return new Widget(AppearanceFactory.build(__assign(__assign({}, behavior.appearance), { type: AppearanceType.Comparer })), TriggerFactory.build(model, behavior.trigger), ConditionFactory.build(comparerModel.behavior.conditions), new RatePlanWidgetContent(comparerModel, WidgetHostResolver.resolve(hosts, group, language)));\r\n case WidgetType.RatePlan:\r\n case WidgetType.Cashback:\r\n var widgetModel = model;\r\n return new Widget(AppearanceFactory.build(__assign(__assign({}, behavior.appearance), { type: model.appearanceType })), TriggerFactory.build(model, behavior.trigger), ConditionFactory.build(widgetModel.behavior.conditions), new RatePlanWidgetContent(widgetModel, WidgetHostResolver.resolve(hosts, group, language), model.type));\r\n case WidgetType.Slider:\r\n var sliderModel = model;\r\n return new Widget(AppearanceFactory.build(__assign(__assign({}, behavior.appearance), { type: AppearanceType.Slider })), TriggerFactory.build(model, behavior.trigger), null, new SliderWidgetContent(sliderModel, behavior));\r\n case WidgetType.Button:\r\n var buttonModel = model;\r\n return new Widget(AppearanceFactory.build(__assign(__assign({}, behavior.appearance), { type: AppearanceType.Button })), TriggerFactory.build(model, behavior.trigger), null, new SliderWidgetContent(buttonModel, behavior));\r\n default:\r\n return null;\r\n }\r\n };\r\n return WidgetFactory;\r\n}());\r\nexport { WidgetFactory };\r\n","import { ConditionFactory } from '../Factory/ConditionFactory';\r\nimport { WidgetFactory } from '../Factory/WidgetFactory';\r\nimport { TriggerAction } from '../Model/TriggerAction';\r\nimport { WidgetType } from '../Model/WidgetType';\r\n/* tslint:disable:no-any */\r\nvar MobileStrategy = /** @class */ (function () {\r\n function MobileStrategy(config) {\r\n this.config = config;\r\n }\r\n MobileStrategy.prototype.isSame = function (strategy) {\r\n return strategy instanceof MobileStrategy;\r\n };\r\n MobileStrategy.prototype.build = function () {\r\n var _this = this;\r\n var pageOpenSetting = this.config.setting && this.config.setting.pageOpen && this.config.setting.pageOpen.mobile;\r\n if (!pageOpenSetting || !pageOpenSetting.widget) {\r\n return;\r\n }\r\n var pageOpenWidgets = [];\r\n this.config.groups.forEach(function (group) {\r\n if (group.widgets && group.widgets.length) {\r\n group.widgets.forEach(function (model) {\r\n var conditions = ConditionFactory.build(model.behavior.conditions);\r\n if (!conditions.every(function (condition) { return condition.canBeCached || condition.check(); })) {\r\n return;\r\n }\r\n if (model.triggerAction === TriggerAction.PageOpen) {\r\n pageOpenWidgets.push(WidgetFactory.build(model, pageOpenSetting.behavior, _this.config.hosts, _this.config.language, group));\r\n }\r\n });\r\n }\r\n });\r\n if (!pageOpenWidgets.length) {\r\n return;\r\n }\r\n this._widget = this.buildButtonWidget(pageOpenSetting, pageOpenWidgets);\r\n this._widget.register();\r\n };\r\n MobileStrategy.prototype.buildButtonWidget = function (setting, widgets) {\r\n var widgetModel = {\r\n type: WidgetType.Button,\r\n content: setting.widget.content,\r\n behavior: setting.widget.behavior,\r\n slides: widgets.sort(function (a, b) { return a.sort - b.sort; })\r\n };\r\n return WidgetFactory.build(widgetModel, setting.behavior, this.config.hosts, this.config.language);\r\n };\r\n MobileStrategy.prototype.destroy = function () {\r\n if (this._widget) {\r\n this._widget.destroy();\r\n }\r\n };\r\n return MobileStrategy;\r\n}());\r\nexport { MobileStrategy };\r\n","import { ConditionFactory } from '../Factory/ConditionFactory';\r\nimport { WidgetFactory } from '../Factory/WidgetFactory';\r\nimport { TriggerAction } from '../Model/TriggerAction';\r\nimport { WidgetType } from '../Model/WidgetType';\r\n/* tslint:disable:no-any */\r\nvar DesktopStrategy = /** @class */ (function () {\r\n function DesktopStrategy(config) {\r\n this._pageLeaveWidgets = [];\r\n this.config = config;\r\n }\r\n DesktopStrategy.prototype.isSame = function (strategy) {\r\n return strategy instanceof DesktopStrategy;\r\n };\r\n DesktopStrategy.prototype.build = function () {\r\n var _this = this;\r\n var pageLeaveSetting = this.config.setting && this.config.setting.pageLeave && this.config.setting.pageLeave.desktop;\r\n var pageOpenSetting = this.config.setting && this.config.setting.pageOpen && this.config.setting.pageOpen.desktop;\r\n if (!pageOpenSetting && !pageLeaveSetting) {\r\n return;\r\n }\r\n var pageOpenWidgets = [];\r\n this.config.groups.forEach(function (group) {\r\n if (group.widgets && group.widgets.length) {\r\n group.widgets.forEach(function (model) {\r\n var conditions = ConditionFactory.build(model.behavior.conditions);\r\n if (!conditions.every(function (condition) { return condition.canBeCached || condition.check(); })) {\r\n return;\r\n }\r\n switch (model.triggerAction) {\r\n case TriggerAction.PageOpen:\r\n pageOpenWidgets.push(WidgetFactory.build(model, pageOpenSetting.behavior, _this.config.hosts, _this.config.language, group));\r\n break;\r\n case TriggerAction.PageLeave:\r\n var widget = WidgetFactory.build(model, pageLeaveSetting.behavior, _this.config.hosts, _this.config.language, group);\r\n _this._pageLeaveWidgets.push(widget);\r\n widget.register();\r\n break;\r\n default:\r\n return;\r\n }\r\n });\r\n }\r\n });\r\n if (!pageOpenWidgets.length) {\r\n return;\r\n }\r\n this._pageOpenWidget = pageOpenWidgets.length > 1\r\n ? this.buildSliderWidget(pageOpenSetting, pageOpenWidgets)\r\n : pageOpenWidgets[0];\r\n this._pageOpenWidget.register();\r\n };\r\n DesktopStrategy.prototype.buildSliderWidget = function (setting, widgets) {\r\n var widgetModel = {\r\n type: WidgetType.Slider,\r\n slides: widgets.sort(function (a, b) { return a.sort - b.sort; })\r\n };\r\n return WidgetFactory.build(widgetModel, setting.behavior, this.config.hosts, this.config.language);\r\n };\r\n DesktopStrategy.prototype.destroy = function () {\r\n if (this._pageOpenWidget) {\r\n this._pageOpenWidget.destroy();\r\n }\r\n this._pageLeaveWidgets.forEach(function (widget) {\r\n widget.destroy();\r\n });\r\n };\r\n return DesktopStrategy;\r\n}());\r\nexport { DesktopStrategy };\r\n","/* tslint:disable */\r\nimport { DeviceUtil } from \"./Util/DeviceUtil\";\r\nimport { MobileStrategy } from \"./Strategy/MobileStrategy\";\r\nimport { DesktopStrategy } from \"./Strategy/DesktopStrategy\";\r\nvar TLSmartWidget = /** @class */ (function () {\r\n function TLSmartWidget() {\r\n this._strategy = null;\r\n }\r\n Object.defineProperty(TLSmartWidget.prototype, \"config\", {\r\n get: function () {\r\n return null;\r\n },\r\n set: function (config) {\r\n var _this = this;\r\n this._config = config;\r\n if (this._config) {\r\n this.build();\r\n window.addEventListener('resize', function () { return _this.build(); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TLSmartWidget.prototype.build = function () {\r\n if (!this._config.groups || this._windowWidth === window.innerWidth) {\r\n return;\r\n }\r\n var strategy = DeviceUtil.isMobile() ? new MobileStrategy(this._config) : new DesktopStrategy(this._config);\r\n // Виджеты не влезут по высоте, не билдим ничего\r\n if (window.innerHeight < 420) {\r\n if (this._strategy) {\r\n this._strategy.destroy();\r\n this._strategy = null;\r\n }\r\n }\r\n else {\r\n if (!this._strategy) {\r\n this._strategy = strategy;\r\n this._strategy.build();\r\n }\r\n else if (!this._strategy.isSame(strategy)) {\r\n this._strategy.destroy();\r\n this._strategy = strategy;\r\n this._strategy.build();\r\n }\r\n }\r\n this._windowWidth = window.innerWidth;\r\n };\r\n return TLSmartWidget;\r\n}());\r\nvar config = window.TL && window.TL.SmartWidget && window.TL.SmartWidget.config;\r\n(window.TL = window.TL || {}).SmartWidget = new TLSmartWidget();\r\nif (config) {\r\n window.TL.SmartWidget.config = config;\r\n}\r\n"],"sourceRoot":""}