{"version":3,"file":"static/chunks/6290.c0d6357e1949e62b.js","mappings":"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","sources":["webpack://host/../../node_modules/exenv/index.js","webpack://host/../../node_modules/d3-timer/src/timer.js","webpack://host/../../node_modules/d3-timer/src/timeout.js","webpack://host/../../node_modules/kapellmeister/es/utils.js","webpack://host/../../node_modules/kapellmeister/es/Events.js","webpack://host/../../node_modules/kapellmeister/es/BaseNode.js","webpack://host/../../node_modules/d3-timer/src/interval.js","webpack://host/../../node_modules/lodash/_basePickBy.js","webpack://host/../../node_modules/lodash/_baseSet.js","webpack://host/../../node_modules/lodash/first.js","webpack://host/../../node_modules/lodash/head.js","webpack://host/../../node_modules/lodash/pickBy.js","webpack://host/../../packages/ui-react/src/components/Channels/ChannelsFilters/styled.ts","webpack://host/../../packages/ui-react/src/components/Channels/ChannelsFilters/index.tsx","webpack://host/../../packages/ui-react/src/components/Channels/Channel/styled.ts","webpack://host/../../packages/ui-react/src/components/Channels/Channel/index.tsx","webpack://host/../../packages/ui-react/src/components/Channels/ChannelsList/styled.ts","webpack://host/../../packages/ui-react/src/components/Channels/ChannelsList/index.tsx","webpack://host/./src/store/selectors/bundles/getChannelThemesWithCounts.ts","webpack://host/./src/components/Bundles/ChannelListPopup/styled.ts","webpack://host/./src/components/Bundles/ChannelListPopup/index.tsx","webpack://host/./src/components/Bundles/helpers/index.js","webpack://host/./src/components/CheckboxFilters/styled.ts","webpack://host/./src/components/CheckboxFilters/index.tsx","webpack://host/./src/components/FilterMenu/index.tsx","webpack://host/./src/store/actions/filteredBundles.ts","webpack://host/./src/components/FiltersForTariffs/index.tsx","webpack://host/./src/components/FiltersForTariffs/styled.ts","webpack://host/./src/components/TariffCard/WithPromoLabel/helpers/gradient.ts","webpack://host/../../packages/shared/src/guards/isArrayOfTwoOrMore.ts","webpack://host/./src/components/TariffCard/WithPromoLabel/index.tsx","webpack://host/./src/components/TariffCard/internetBlock/advantagesList.tsx","webpack://host/./src/components/TariffCard/internetBlock/index.tsx","webpack://host/./src/components/TariffCard/tvBlock/includesList.tsx","webpack://host/./src/components/TariffCard/tvBlock/index.tsx","webpack://host/./src/components/TariffCard/index.tsx","webpack://host/./src/components/TariffCard/helpers/getButtonText.tsx","webpack://host/./src/components/TariffFilter/styled.ts","webpack://host/./src/components/TariffCard/styled.ts","webpack://host/./src/components/TariffCard/subscriptions/SubscriptionImage/styled.ts","webpack://host/./src/components/TariffCard/subscriptions/SubscriptionImage/index.tsx","webpack://host/./src/components/TariffCard/subscriptions/index.tsx","webpack://host/./src/components/TariffLine/index.tsx","webpack://host/./src/components/TariffLine/styled.ts","webpack://host/./src/components/TariffLineCarousel/index.tsx","webpack://host/./src/features/full-buy/helpers/ab/isFullBuyVillage.ts","webpack://host/./src/features/internet/internet-represent/styled.ts","webpack://host/./src/features/tariffLines/Card/styled.tsx","webpack://host/./src/features/tariffLines/Card/index.tsx","webpack://host/./src/features/tariffLines/CardSwiper/index.tsx","webpack://host/./src/features/tariffLines/header/styled.tsx","webpack://host/./src/features/tariffLines/header/index.tsx","webpack://host/./src/features/tariffLines/helpers.ts","webpack://host/./src/features/tariffLines/SameCard/styled.tsx","webpack://host/./src/features/tariffLines/SameCard/index.tsx","webpack://host/./src/features/tariffLines/Section/styled.ts","webpack://host/./src/features/tariffLines/Section/index.tsx","webpack://host/./src/features/tariffLines/index.tsx","webpack://host/./src/helpers/formatter.js","webpack://host/./src/helpers/object.js","webpack://host/./src/store/actions/bundles.js","webpack://host/./src/store/selectors/bundles/index.js","webpack://host/./src/store/selectors/filteredBundles.ts","webpack://host/../../packages/api-domru/src/api-epg/v1/channel-categories/index.ts","webpack://host/../../packages/api-domru/src/api-epg/v1/channels.ts","webpack://host/../../packages/shared/src/helpers/pluralize/index.ts","webpack://host/../../packages/shared/src/helpers/pluralize/predifined.ts","webpack://host/../../node_modules/d3-ease/src/circle.js","webpack://host/../../node_modules/d3-ease/src/linear.js","webpack://host/../../node_modules/d3-ease/src/quad.js","webpack://host/../../node_modules/d3-ease/src/cubic.js","webpack://host/../../node_modules/d3-ease/src/poly.js","webpack://host/../../node_modules/d3-ease/src/sin.js","webpack://host/../../node_modules/d3-ease/src/math.js","webpack://host/../../node_modules/d3-ease/src/exp.js","webpack://host/../../node_modules/d3-ease/src/bounce.js","webpack://host/../../node_modules/d3-ease/src/back.js","webpack://host/../../node_modules/d3-ease/src/elastic.js","webpack://host/../../node_modules/nuka-carousel/es/utilities/style-utilities.js","webpack://host/../../node_modules/nuka-carousel/es/default-controls.js","webpack://host/../../node_modules/nuka-carousel/es/utilities/utilities.js","webpack://host/../../node_modules/nuka-carousel/es/transitions/scroll-transition.js","webpack://host/../../node_modules/nuka-carousel/es/transitions/fade-transition.js","webpack://host/../../node_modules/nuka-carousel/es/transitions/3d-scroll-transition.js","webpack://host/../../node_modules/nuka-carousel/es/all-transitions.js","webpack://host/../../node_modules/nuka-carousel/es/announce-slide.js","webpack://host/../../node_modules/nuka-carousel/es/utilities/bootstrapping-utilities.js","webpack://host/../../node_modules/nuka-carousel/es/index.js","webpack://host/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/styled.tsx","webpack://host/../../packages/ui-react/src/components/NukaCarousel/DefaultDots/styled.tsx","webpack://host/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/index.tsx","webpack://host/../../packages/ui-react/src/components/NukaCarousel/DefaultDots/index.tsx","webpack://host/../../packages/ui-react/src/components/NukaCarousel/styled.tsx","webpack://host/../../packages/ui-react/src/components/NukaCarousel/index.tsx","webpack://host/../../packages/ui-react/src/components/controls/Toggle/styled.ts","webpack://host/../../packages/ui-react/src/components/controls/Toggle/index.tsx","webpack://host/../../packages/ui-react/src/components/controls/baseCheckbox/styled.ts","webpack://host/../../packages/ui-react/src/components/controls/baseCheckbox/index.tsx","webpack://host/../../packages/ui-react/src/components/controls/baseControlsData.ts","webpack://host/../../packages/ui-react/src/components/input/search/search-btn/styled.ts","webpack://host/../../packages/ui-react/src/components/input/search/search-btn/index.tsx","webpack://host/../../packages/ui-react/src/components/input/search/styled.ts","webpack://host/../../packages/ui-react/src/components/input/search/index.tsx","webpack://host/../../packages/ui-react/src/components/svg/search/SearchNormal.tsx","webpack://host/../../packages/ui-react/src/deprecated/Accordion/themes.js","webpack://host/../../packages/ui-react/src/deprecated/Accordion/index.js","webpack://host/../../packages/ui-react/src/experimental/purchase/cost/Cost/RubleSymbol.ts","webpack://host/../../packages/ui-react/src/experimental/purchase/cost/Cost/index.tsx","webpack://host/../../packages/ui-react/src/experimental/purchase/cost/Cost/styled.ts","webpack://host/../../node_modules/react-move/Animate/index.js","webpack://host/../../node_modules/react-move/NodeGroup/index.js","webpack://host/../../node_modules/react-move/core/mergeKeys.js","webpack://host/../../node_modules/react-move/core/types.js","webpack://host/../../node_modules/react-move/utils.js","webpack://host/./static/images/icons/arrow_right_white.svg","webpack://host/../../packages/ui-react/src/assets/img/check-promo.svg","webpack://host/../../packages/ui-react/src/assets/img/check-white.svg","webpack://host/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/arrow.svg","webpack://host/../../node_modules/wicg-inert/dist/inert.esm.js"],"sourcesContent":["/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar transitionId = 0;\nexport function getTransitionId() {\n return ++transitionId;\n}\nexport function extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }\n}\nexport function once(func) {\n var called = false;\n return function transitionEvent() {\n if (!called) {\n called = true;\n func.call(this);\n }\n };\n}\nexport function isNamespace(prop) {\n return _typeof(prop) === 'object' && Array.isArray(prop) === false;\n}\n\nvar linear = function linear(t) {\n return +t;\n};\n\nexport var timingDefaults = {\n delay: 0,\n duration: 250,\n ease: linear\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { once } from './utils';\nexport var Events = function Events(config) {\n var _this = this;\n\n _classCallCheck(this, Events);\n\n this.start = null;\n this.interrupt = null;\n this.end = null;\n\n if (config.events) {\n Object.keys(config.events).forEach(function (d) {\n if (typeof config.events[d] !== 'function') {\n throw new Error('Event handlers must be a function');\n } else {\n _this[d] = once(config.events[d]);\n }\n });\n }\n};\nexport default Events;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { now, timer, timeout } from 'd3-timer';\nimport { timingDefaults, extend, getTransitionId, isNamespace } from './utils';\nimport Events from './Events';\n\nvar BaseNode = function () {\n function BaseNode(state) {\n _classCallCheck(this, BaseNode);\n\n this.state = state || {};\n }\n\n _createClass(BaseNode, [{\n key: \"transition\",\n value: function transition(config) {\n if (Array.isArray(config)) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = config[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n this.parse(item);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n this.parse(config);\n }\n }\n }, {\n key: \"isTransitioning\",\n value: function isTransitioning() {\n return !!this.transitionData;\n }\n }, {\n key: \"stopTransitions\",\n value: function stopTransitions() {\n var transitions = this.transitionData;\n\n if (transitions) {\n Object.keys(transitions).forEach(function (t) {\n transitions[t].timer.stop();\n });\n }\n }\n }, {\n key: \"setState\",\n value: function setState(update) {\n if (typeof update === 'function') {\n extend(this.state, update(this.state));\n } else {\n extend(this.state, update);\n }\n }\n }, {\n key: \"parse\",\n value: function parse(config) {\n var _this = this;\n\n var clone = _objectSpread({}, config);\n\n var events = new Events(clone);\n\n if (clone.events) {\n delete clone.events;\n }\n\n var timing = _objectSpread({}, timingDefaults, clone.timing || {}, {\n time: now()\n });\n\n if (clone.timing) {\n delete clone.timing;\n }\n\n Object.keys(clone).forEach(function (stateKey) {\n var tweens = [];\n var next = clone[stateKey];\n\n if (isNamespace(next)) {\n Object.keys(next).forEach(function (attr) {\n var val = next[attr];\n\n if (Array.isArray(val)) {\n if (val.length === 1) {\n tweens.push(_this.getTween(attr, val[0], stateKey));\n } else {\n _this.setState(function (state) {\n var _objectSpread2, _ref;\n\n return _ref = {}, _ref[stateKey] = _objectSpread({}, state[stateKey], (_objectSpread2 = {}, _objectSpread2[attr] = val[0], _objectSpread2)), _ref;\n });\n\n tweens.push(_this.getTween(attr, val[1], stateKey));\n }\n } else if (typeof val === 'function') {\n var getNameSpacedCustomTween = function getNameSpacedCustomTween() {\n var kapellmeisterNamespacedTween = function kapellmeisterNamespacedTween(t) {\n _this.setState(function (state) {\n var _objectSpread3, _ref2;\n\n return _ref2 = {}, _ref2[stateKey] = _objectSpread({}, state[stateKey], (_objectSpread3 = {}, _objectSpread3[attr] = val(t), _objectSpread3)), _ref2;\n });\n };\n\n return kapellmeisterNamespacedTween;\n };\n\n tweens.push(getNameSpacedCustomTween);\n } else {\n _this.setState(function (state) {\n var _objectSpread4, _ref3;\n\n return _ref3 = {}, _ref3[stateKey] = _objectSpread({}, state[stateKey], (_objectSpread4 = {}, _objectSpread4[attr] = val, _objectSpread4)), _ref3;\n });\n\n tweens.push(_this.getTween(attr, val, stateKey));\n }\n });\n } else {\n if (Array.isArray(next)) {\n if (next.length === 1) {\n tweens.push(_this.getTween(stateKey, next[0], null));\n } else {\n var _this$setState;\n\n _this.setState((_this$setState = {}, _this$setState[stateKey] = next[0], _this$setState));\n\n tweens.push(_this.getTween(stateKey, next[1], null));\n }\n } else if (typeof next === 'function') {\n var getCustomTween = function getCustomTween() {\n var kapellmeisterTween = function kapellmeisterTween(t) {\n var _this$setState2;\n\n _this.setState((_this$setState2 = {}, _this$setState2[stateKey] = next(t), _this$setState2));\n };\n\n return kapellmeisterTween;\n };\n\n tweens.push(getCustomTween);\n } else {\n var _this$setState3;\n\n _this.setState((_this$setState3 = {}, _this$setState3[stateKey] = next, _this$setState3));\n\n tweens.push(_this.getTween(stateKey, next, null));\n }\n }\n\n _this.update({\n stateKey: stateKey,\n timing: timing,\n tweens: tweens,\n events: events,\n status: 0\n });\n });\n }\n }, {\n key: \"getTween\",\n value: function getTween(attr, endValue, nameSpace) {\n var _this2 = this;\n\n return function () {\n var begValue = nameSpace ? _this2.state[nameSpace][attr] : _this2.state[attr];\n\n if (begValue === endValue) {\n return null;\n }\n\n var i = _this2.getInterpolator(begValue, endValue, attr, nameSpace);\n\n var stateTween;\n\n if (nameSpace === null) {\n stateTween = function stateTween(t) {\n var _this2$setState;\n\n _this2.setState((_this2$setState = {}, _this2$setState[attr] = i(t), _this2$setState));\n };\n } else {\n stateTween = function stateTween(t) {\n _this2.setState(function (state) {\n var _objectSpread5, _ref4;\n\n return _ref4 = {}, _ref4[nameSpace] = _objectSpread({}, state[nameSpace], (_objectSpread5 = {}, _objectSpread5[attr] = i(t), _objectSpread5)), _ref4;\n });\n };\n }\n\n return stateTween;\n };\n }\n }, {\n key: \"update\",\n value: function update(transition) {\n if (!this.transitionData) {\n this.transitionData = {};\n }\n\n this.init(getTransitionId(), transition);\n }\n }, {\n key: \"init\",\n value: function init(id, transition) {\n var _this3 = this;\n\n var n = transition.tweens.length;\n var tweens = new Array(n);\n\n var queue = function queue(elapsed) {\n transition.status = 1;\n transition.timer.restart(start, transition.timing.delay, transition.timing.time);\n\n if (transition.timing.delay <= elapsed) {\n start(elapsed - transition.timing.delay);\n }\n };\n\n this.transitionData[id] = transition;\n transition.timer = timer(queue, 0, transition.timing.time);\n\n var start = function start(elapsed) {\n if (transition.status !== 1) return stop();\n\n for (var tid in _this3.transitionData) {\n var t = _this3.transitionData[tid];\n\n if (t.stateKey !== transition.stateKey) {\n continue;\n }\n\n if (t.status === 3) {\n return timeout(start);\n }\n\n if (t.status === 4) {\n t.status = 6;\n t.timer.stop();\n\n if (t.events.interrupt) {\n t.events.interrupt.call(_this3);\n }\n\n delete _this3.transitionData[tid];\n } else if (+tid < id) {\n t.status = 6;\n t.timer.stop();\n delete _this3.transitionData[tid];\n }\n }\n\n timeout(function () {\n if (transition.status === 3) {\n transition.status = 4;\n transition.timer.restart(tick, transition.timing.delay, transition.timing.time);\n tick(elapsed);\n }\n });\n transition.status = 2;\n\n if (transition.events.start) {\n transition.events.start.call(_this3);\n }\n\n if (transition.status !== 2) {\n return;\n }\n\n transition.status = 3;\n var j = -1;\n\n for (var i = 0; i < n; ++i) {\n var res = transition.tweens[i]();\n\n if (res) {\n tweens[++j] = res;\n }\n }\n\n tweens.length = j + 1;\n };\n\n var tick = function tick(elapsed) {\n var t = 1;\n\n if (elapsed < transition.timing.duration) {\n t = transition.timing.ease(elapsed / transition.timing.duration);\n } else {\n transition.timer.restart(stop);\n transition.status = 5;\n }\n\n var i = -1;\n\n while (++i < tweens.length) {\n tweens[i](t);\n }\n\n if (transition.status === 5) {\n if (transition.events.end) {\n transition.events.end.call(_this3);\n }\n\n stop();\n }\n };\n\n var stop = function stop() {\n transition.status = 6;\n transition.timer.stop();\n delete _this3.transitionData[id];\n\n for (var _ in _this3.transitionData) {\n return;\n }\n\n delete _this3.transitionData;\n };\n }\n }]);\n\n return BaseNode;\n}();\n\nexport default BaseNode;","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","module.exports = require('./head');\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\n\nexport const Wrapper = styled.div`\n display: flex;\n width: 100%;\n margin-top: 30px;\n\n @media (max-width: 1023px) {\n flex-direction: column;\n }\n`;\n\nexport const FiltersSearch = styled.div`\n width: 100%;\n min-height: 48px;\n`;\n\nexport const ChannelsSelector = styled.div`\n flex-wrap: nowrap;\n width: 100%;\n gap: 12px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n flex-wrap: wrap;\n\n button {\n width: 100%;\n }\n }\n`;\n","import { SyntheticEvent, useRef } from 'react';\nimport { CSSProperties } from 'styled-components';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { IChannel, IFormattedChannelTheme } from '@r1-frontend/ui-react/components/Channels/types';\nimport { SearchInput } from '@r1-frontend/ui-react/components/input/search';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport Select, { IOption } from '@r1-frontend/ui-react/components/select/select';\nimport { SearchNormal } from '@r1-frontend/ui-react/components/svg/search';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport * as ST from './styled';\n\nexport interface IChannelsFiltersProps {\n isShowSearch: boolean,\n channels: IChannel[],\n selectedFilter: IFormattedChannelTheme,\n preparedThemes: IFormattedChannelTheme[],\n onChangeChannelTheme: (value: IOption) => void,\n onShowSearchInput: (e: SyntheticEvent) => void,\n onClearSearch: () => void,\n onChangeSearch: (e: any) => void,\n value: string,\n}\n\nconst ChannelsFilters = ({\n isShowSearch,\n channels,\n selectedFilter,\n preparedThemes,\n onChangeChannelTheme,\n onShowSearchInput,\n onClearSearch,\n onChangeSearch,\n value,\n}: IChannelsFiltersProps): JSX.Element => {\n const isMobile = useMatchMedia(`(max-width: ${wideBreakpoints.mobile})`);\n const searchRef = useRef(null);\n\n return (\n \n {!isShowSearch\n ? \n ({\n ...provided,\n color: COLORS.Disabled,\n }),\n }}\n />\n }\n size={'large'}\n bType={'secondary'}\n disabled={!preparedThemes?.length}\n rounded={!isMobile}\n onClick={(e: SyntheticEvent) => onShowSearchInput(e)}\n data-test='channels-filters-open-search-button'\n >\n {isMobile ? 'Поиск' : null}\n \n \n : \n e.stopPropagation()}\n isClearBtnHide={!value}\n data-test='channels-filters-search-input'\n />\n \n }\n \n );\n};\n\nexport default ChannelsFilters;\n","import styled from 'styled-components';\n\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const ChannelLink = styled.a`\n width: 240px;\n max-width: 240px;\n display: flex;\n align-items: center;\n\n @media only screen and (max-width: 1023px) {\n flex-direction: column;\n align-items: flex-start;\n width: 140px;\n max-width: 140px;\n }\n\n @media only screen and (max-width: 374px) {\n width: 115px;\n max-width: 115px;\n }\n`;\n\nexport const ChannelImageBox = styled.div`\n position: relative;\n display: inline;\n width: 52px;\n height: 52px;\n overflow: hidden;\n background-color: white;\n border-radius: ${BorderRadius.labelRadius};\n\n img {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n margin: auto;\n width: 100%;\n z-index: 1;\n }\n\n &:before {\n display: block;\n position: absolute;\n top: -20px;\n left: -20px;\n content: \"\";\n width: 150%;\n height: 40px;\n transform: rotate(-10deg);\n background-color: #EEEEEE;\n z-index: 0;\n }\n`;\n\nexport const ChannelName = styled.p`\n ${FONTS.S};\n margin-left: 13px;\n color: ${COLORS.TextPrimary};\n max-width: 160px;\n\n @media only screen and (max-width: 1023px) {\n flex-direction: column;\n align-items: flex-start;\n margin-top: 10px;\n margin-left: 0;\n }\n`;\n","import { useCallback } from 'react';\n\nimport * as ST from './styled';\n\nexport interface IChannelProps {\n link: string,\n title: string,\n image: string,\n inactiveLink: boolean,\n className?: string,\n}\n\nconst Channel = ({ link, title, image, inactiveLink, className }: IChannelProps) => {\n\n const onClick = useCallback((e) => {\n e.stopPropagation();\n if (inactiveLink) {\n e.preventDefault();\n }\n }, [inactiveLink]);\n\n return (\n \n \n \n \n {title}\n \n );\n};\n\nexport default Channel;\n","import styled from 'styled-components';\n\nimport Channel from '@r1-frontend/ui-react/components/Channels/Channel';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const Wrapper = styled.div`\n flex-direction: column;\n flex-grow: 1;\n margin-top: 24px;\n height: 100%;\n`;\n\nexport const ChannelText = styled.p`\n ${FONTS.S};\n color: ${COLORS.TextPrimary};\n`;\n\nexport const List = styled.div`\n height: 100%;\n align-content: flex-start;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n display: block;\n }\n`;\n\nexport const ChannelWithMargin = styled(Channel)`\n margin-bottom: 16px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n flex-direction: row;\n width: 100%;\n max-width: 100%;\n margin-bottom: 14px;\n \n & > :first-child {\n margin-right: 14px;\n }\n }\n`;\n","import { IChannel } from '@r1-frontend/ui-react/components/Channels/types';\n\nimport * as ST from './styled';\n\nexport interface IChannelsListProps {\n channels: IChannel[],\n channelsFiltersIsApply: boolean,\n inactiveLink?: boolean,\n}\n\nconst ChannelsList = ({\n channels = [],\n channelsFiltersIsApply,\n inactiveLink = false,\n}: IChannelsListProps): JSX.Element => {\n return (\n \n {\n channelsFiltersIsApply && !channels.length && (\n \n Канал, который вы ищете, не входит в данный тариф\n \n )\n }\n \n {channels.map((channel) => {\n return ;\n })}\n \n \n );\n};\n\nexport default ChannelsList;\n","import { createSelector } from 'reselect';\n\nimport { IChannel } from '~/src/api/channel/types';\nimport { quantityHdChannels } from '~/src/components/Bundles/helpers';\n\nexport interface IFormattedChannelTheme {\n id: number,\n label: string,\n name: string,\n value: number,\n weight: number,\n channels: IChannel[],\n hasChannels?: boolean,\n}\n\n/**\n * Вычисление количества каналов и HD для каждой темы каналов\n * и добавление результата в label\n * @returns {IFormattedChannelTheme[]}\n */\nexport const getChannelThemesWithCounts = createSelector(\n [\n state => state.bundles.tariffChannels,\n state => state.bundles.channelThemes,\n ],\n (tariffChannels, channelThemes) => {\n const defaultChannelsTheme = {\n id: 0,\n label: 'Все каналы',\n name: 'Все каналы',\n value: 0,\n weight: -1,\n channels: [],\n };\n\n if (tariffChannels?.length) {\n return [defaultChannelsTheme, ...channelThemes].map((theme) => {\n const { id } = theme;\n const themeChannels = tariffChannels.filter((channel: any) => channel.categoryId === id);\n const hdCount = themeChannels.filter((channel: any) => channel.quality === 'HD').length;\n const sdCount = themeChannels.length - hdCount;\n\n const tmpTheme = { ...theme };\n const allLabel = `(${hdCount + sdCount})`;\n const hdLabel = hdCount ? `(${hdCount + sdCount} / ${hdCount}HD)` : null;\n\n if (id === 0) {\n tmpTheme.label = `${tmpTheme.label} ${tariffChannels.length} (${quantityHdChannels(tariffChannels)}HD)`;\n tmpTheme.hasChannels = true;\n } else {\n tmpTheme.label = `${theme.label} ${hdLabel ? hdLabel : allLabel}`;\n tmpTheme.hasChannels = !!(hdCount + sdCount);\n }\n\n return tmpTheme;\n }).filter(theme => theme.hasChannels);\n }\n\n return channelThemes;\n },\n);\n","import styled from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport Throbber from '@r1-frontend/ui-react/components/loaders/Throbber';\nimport BasePopup from '@r1-frontend/ui-react/components/popups/basePopup';\n\nexport const SBasePopup = styled(BasePopup)`\n padding-bottom: 12px !important;\n`;\n\nexport const HideSearchBtn = styled(BaseButton)`\n padding-left: 0;\n padding-top: 2px;\n padding-bottom: 3px;\n`;\n\nexport const SThrobber = styled(Throbber)`\n position: absolute;\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { btnSizes, btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport ChannelsFilters from '@r1-frontend/ui-react/components/Channels/ChannelsFilters';\nimport ChannelsList from '@r1-frontend/ui-react/components/Channels/ChannelsList';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { TState } from '~/src/store';\nimport {\n clearChannelsBundleId,\n clearChannelThemeSelection,\n clearSearchChannels,\n getAllChannels,\n getChannelPackages,\n getChannelThemes,\n getOfferChannelPackages,\n onChangeChannelThemeAction,\n searchChannels,\n setFilterForChannelsAction,\n} from '~/src/store/actions/bundles';\nimport { getTariffChannels, getTariffChannelsWithId } from '~/src/store/selectors/bundles';\nimport { getChannelThemesWithCounts } from '~/src/store/selectors/bundles/getChannelThemesWithCounts';\n\nimport * as ST from './styled';\n\ninterface IChannelListPopup {\n freePackets?: number | string | number[],\n onClose: () => void,\n isOpen: boolean,\n isOfferChannels?: boolean,\n}\n\nconst ChannelListPopup = ({ freePackets, isOpen, onClose, isOfferChannels }: IChannelListPopup): JSX.Element => {\n const dispatch = useDispatch();\n const {\n city,\n allChannels,\n channelThemes,\n providerId,\n channels,\n tariffChannels,\n preparedThemes,\n selectedFilter,\n channelsFiltersIsApply,\n } = useSelector((state: TState) => ({\n city: state.city.currentCity,\n providerId: state.city.provider?.providerId,\n allChannels: state.bundles.allChannels,\n channelThemes: state.bundles.channelThemes,\n channels: getTariffChannelsWithId(state),\n tariffChannels: getTariffChannels(state),\n preparedThemes: getChannelThemesWithCounts(state),\n channelsFiltersIsApply: state.bundles.channelsFiltersIsApply,\n selectedFilter: state.bundles.selectedFilter,\n }));\n\n const [isShowSearch, setIsShowSearch] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [value, setValue] = useState('');\n\n const isMobile = useMatchMedia(`(max-width: ${wideBreakpoints.mobile})`);\n const searchRef = useRef(null);\n\n const toogleShowSearchInput = (flag: boolean) => {\n setIsShowSearch(flag);\n };\n\n const onClickPopupWrapper = useCallback(() => {\n setIsShowSearch(false);\n dispatch(clearSearchChannels());\n }, [dispatch]);\n\n const onCloseHandler = useCallback(() => {\n // Сбрасываем фильтры и очищаем поиск\n dispatch(clearChannelThemeSelection());\n dispatch(clearSearchChannels());\n dispatch(clearChannelsBundleId());\n dispatch(setFilterForChannelsAction({\n value: 0,\n label: 'Все каналы',\n }));\n onClose();\n }, [dispatch, onClose]);\n\n const onApplySearch = useCallback((search = '') => {\n dispatch(searchChannels(search.toLowerCase().trim()));\n }, [dispatch]);\n\n const onClearSearch = useCallback(() => {\n setValue('');\n dispatch(clearSearchChannels());\n }, [dispatch]);\n\n const onChangeSearch = useCallback((e) => {\n setValue(e.target.value);\n onApplySearch(e.target.value);\n }, [onApplySearch]);\n\n const onShowSearchInput = useCallback((e) => {\n e.stopPropagation();\n toogleShowSearchInput(true);\n }, [toogleShowSearchInput]);\n\n const onChangeChannelTheme = useCallback((data) => {\n dispatch(onChangeChannelThemeAction(data, channelThemes));\n }, [dispatch, channelThemes]);\n\n useEffect(() => {\n if (isShowSearch) {\n searchRef.current?.focus();\n }\n }, [isShowSearch]);\n\n useEffect(() => {\n if (!channelThemes?.length && isOpen) {\n dispatch(getChannelThemes());\n }\n }, [dispatch, channelThemes?.length, isOpen]);\n\n useEffect(() => {\n if (isOpen && !allChannels?.length) {\n dispatch(getAllChannels(providerId));\n }\n if (isOpen && allChannels?.length) {\n setIsLoading(false);\n }\n if (freePackets) {\n isOfferChannels\n ? dispatch(getOfferChannelPackages(freePackets))\n : dispatch(getChannelPackages(freePackets));\n }\n }, [dispatch, isOpen, allChannels?.length, freePackets, city, providerId]);\n\n return (\n \n : 'Список телеканалов'\n }\n description={\n \n }\n onClose={onCloseHandler}\n onClick={onClickPopupWrapper}\n data-test='channel-list-popup'\n >\n {isLoading\n ? \n : \n }\n \n );\n};\n\nexport default ChannelListPopup;\n","import { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport uniqueId from 'lodash/uniqueId';\n\nimport { hasProp } from '~/src/helpers/object';\n\nexport const quantityHdChannels = channels => channels.reduce((quantityHd, channel) => {\n const currentHd = hasProp(channel, 'quality') && channel.quality === 'HD' ? 1 : 0;\n return quantityHd + currentHd;\n}, 0);\n\nexport const searchCategory = (themes, label) => {\n\n let category = { value: 0, label: 'Все каналы' };\n\n themes.forEach(item => {\n if (item.label === label) {\n category = item;\n}\n });\n\n return category;\n};\n\nexport const filteringTariffs = (tariffs, filteredTariffsId) => {\n if (filteredTariffsId && Array.isArray(filteredTariffsId) && filteredTariffsId.length) {\n return tariffs.reduce((acc, tariff) => {\n if (filteredTariffsId.find(id => tariff.id === id)) {\n acc.push(tariff);\n}\n return acc;\n }, []);\n } else {\n return tariffs;\n }\n};\n\nexport const createTariffBuilder = (price) => ({\n salePackage2in1: {\n is_cottage: 0,\n free_packets: '',\n price_final: price,\n promo_price_final: 0,\n promo_duration_final: 0,\n },\n description: {\n color: '',\n color_title_start: COLORS.TextPrimary,\n color_title_end: COLORS.TextPrimary,\n alias: 'constructor',\n color_text: COLORS.TextPrimary,\n description: 'Соберите тариф только из того, что нужно: онлайн-кинотеатры, подписки на полезные сервисы, пакеты каналов и многое другое',\n image_background: '/static/images/tariff-builder/constructor-card-background.png',\n image_background_webp: '/static/images/tariff-builder/constructor-card-background.webp',\n sort_on_bundles: 0,\n sort_on_internet: 0,\n sort_on_internet_lines: 0,\n tariffLine: {\n id: 1,\n title: '',\n body: '',\n sort: 1,\n title_short: '',\n url_landing: '',\n },\n title: 'Тариф Конструктор',\n weight: 0,\n available_on_main_page: 1,\n available_on_internet_page: 1,\n sort: 0,\n },\n additionalProducts: [],\n hasRequiredEquipment: 0,\n lineId: 0,\n location: '',\n offerContents: [],\n sale_package_id: uniqueId(),\n productType: 100,\n salePackageLinks: [],\n speed_int: 0,\n speed_bonus: 0,\n available_on_main_page: 1,\n available_on_internet_page: 1,\n is_cottage: 0,\n price_final: price,\n tariff_name_display: 'Тариф Конструктор',\n sort_on_bundles: 0,\n sort_on_internet: 0,\n sort_on_internet_lines: 0,\n});\n\n","import styled from 'styled-components';\n\nimport BaseCheckbox from '@r1-frontend/ui-react/components/controls/baseCheckbox';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakePoints } from '~/src/features/internet/internet-represent/styled';\n\nexport const CheckboxFilters = styled.div`\n display: flex;\n margin-left: 24px;\n\n @media (max-width: ${breakePoints.tablet}) {\n width: 100%;\n margin-top: 24px;\n margin-left: 0;\n }\n\n @media (max-width: ${breakePoints.mobile}) {\n flex-direction: column;\n }\n`;\n\nexport const CheckboxWrap = styled.div`\n margin-left: 24px;\n user-select: none;\n`;\n\nexport const SBaseCheckbox = styled(BaseCheckbox)`\n ${FONTS.MediumXS};\n`;\n","import { TCheckboxType } from '@r1-frontend/ui-react/components/controls/baseCheckbox';\n\nimport * as ST from './styled';\n\nexport interface ICheckboxItem {\n id: string,\n checked: boolean,\n checkType?: TCheckboxType,\n disabled: boolean,\n label: string,\n}\n\ninterface IPropsCheckboxFilters {\n items: ICheckboxItem[],\n onChange: (id: string) => void,\n className?: string,\n}\n\nexport const CheckboxFilters = ({ items, onChange, className }: IPropsCheckboxFilters): JSX.Element => {\n return (\n \n {items.map(item => {\n return (\n \n onChange(item.id)}\n >\n {item.label}\n \n \n );\n })}\n \n );\n};\n","import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport Toggle from '@r1-frontend/ui-react/components/controls/Toggle';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { setInitialGroupKey } from '~/src/store/actions/filteredBundles';\n\nexport type TMenuItem = {\n route?: string,\n text: string,\n action?: () => void,\n}\n\ninterface IProps {\n items: TMenuItem[],\n activeItem: number,\n disabled?: boolean,\n activeDefaultTabByTariffs?: TMenuItem,\n isDifferentColorText?: boolean,\n colorTab?: string,\n}\n\nconst FilterMenu: React.FC = ({\n items,\n activeItem,\n disabled = false,\n activeDefaultTabByTariffs,\n isDifferentColorText = true,\n colorTab,\n}): JSX.Element => {\n\n const dispatch = useDispatch();\n\n const tabFlat = 'Для квартиры';\n const toggleLabels = useMemo(() => ({ leftText: items[0]['text'], rightText: items[1]['text'] }), [items]);\n const labels = useMemo>(() => Object.values(toggleLabels), [toggleLabels]);\n\n const [label, setLabel] = useState(\n activeDefaultTabByTariffs\n ? activeDefaultTabByTariffs['text']\n : activeItem === 0\n ? labels[0]\n : labels[1],\n );\n\n const [itemMenu, setItem] = useState(items.filter(item => item['text'] === label)[0]);\n\n useEffect(() => {\n dispatch(setInitialGroupKey(activeItem ? 'village' : 'city'));\n\n const currentItem = items.filter((item: TMenuItem) => item['text'] !== label)[0];\n setItem(currentItem);\n\n if (activeDefaultTabByTariffs && activeDefaultTabByTariffs['text'] !== tabFlat && disabled) {\n activeDefaultTabByTariffs.action?.();\n }\n }, [label]);\n\n const onMenuItemClick = useCallback(() => {\n const [toggledLabel] = labels.filter(item => item !== label);\n setLabel(toggledLabel);\n\n if (itemMenu && itemMenu.action && !disabled) {\n itemMenu.action();\n }\n }, [disabled, itemMenu, label, labels]);\n\n return (\n onMenuItemClick()}\n fontSize={FONTS.S}\n activeTab={label}\n data-test='toggle-container'\n isDifferentColorText={isDifferentColorText}\n colorTab={colorTab}\n />\n );\n};\n\nexport default FilterMenu;\n","import cloneDeep from 'lodash/cloneDeep';\nimport pickBy from 'lodash/pickBy';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport {\n CampaignFilterLabels,\n CampaignFilterValues,\n filtersItemsInitial,\n FiltersName,\n IFilterItem,\n IFilterProp,\n ISelectedFilters,\n selectedFiltersInitial,\n SortByValues,\n sortedItemsInitial,\n TFilters,\n TypeFilterLabels,\n} from '~/src/entities/filteredBundles';\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport { TAppThunkDispatch, TGetState } from '~/src/store';\nimport { EFilteredBundlesTypes } from '~/src/store/reducers/filteredBundles';\nimport { selectAllTariffs, selectCheckedFilters, selectIsEmpty } from '~/src/store/selectors/filteredBundles';\n\ntype TFiltersMapped = Record;\n\nexport const setInitialGroupKey = (groupKey: string) => {\n return (dispatch: TAppThunkDispatch): void => {\n dispatch({\n type: EFilteredBundlesTypes.SET_GROUP_KEY,\n payload: {\n groupKey,\n },\n });\n };\n};\n\nexport const toggleFilterTabs = () => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const { filteredBundles: { groupKey } } = getState();\n const [result] = ['city', 'village'].filter(key => key !== groupKey);\n dispatch({\n type: EFilteredBundlesTypes.SET_GROUP_KEY,\n payload: {\n groupKey: result,\n },\n });\n };\n};\n\nexport const toggleSelected = (name: string, value: string) => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const { filteredBundles: { selected: selectedFilters, groupKey } } = getState();\n const typedValue = +value || value;\n\n let action = '';\n\n const selected = [...selectedFilters];\n const currentFilterIndex = selected.findIndex(\n filter => filter.group === groupKey && filter.name === name,\n );\n\n const isValueExists = selected[currentFilterIndex].values.includes(typedValue);\n if (isValueExists) {\n action = 'remove filter';\n selected[currentFilterIndex].values = selected[currentFilterIndex].values.filter(\n f => f !== typedValue,\n );\n } else {\n action = 'add filter';\n selected[currentFilterIndex].values.push(typedValue);\n }\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffCards,\n action,\n label: `${name} ${value}`,\n });\n dispatch({\n type: EFilteredBundlesTypes.SET_SELECTED,\n payload: {\n selected,\n },\n });\n };\n};\n\nexport const applyInitialFilters = (props: IFilterProp) => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const { filteredBundles: { selected: selectedFilters, groupKey } } = getState();\n const selected = [...selectedFilters];\n for (const name in props) {\n const currentFilterIndex = selected.findIndex(\n filter => filter.group === groupKey && filter.name === name,\n );\n if (props[name] !== undefined && currentFilterIndex !== -1) {\n if (typeof props[name] === 'object') {\n // @ts-ignore\n selected[currentFilterIndex].values = props[name].map(value => +value || value);\n } else {\n // @ts-ignore\n selected[currentFilterIndex].values.push(+props[name] || props[name]);\n }\n }\n }\n\n dispatch({\n type: EFilteredBundlesTypes.SET_SELECTED,\n payload: {\n selected,\n },\n });\n };\n};\n\nexport const sortBy = (by: SortByValues) => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const { filteredBundles: { sortedItems } } = getState();\n\n const _sortedItems = sortedItems && {\n ...sortedItems,\n items: [\n ...sortedItems?.items.map((item: IFilterItem) => ({\n ...item,\n checked: item.value === by,\n })),\n ],\n };\n\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffCards,\n action: 'sort',\n label: by,\n });\n dispatch({\n type: EFilteredBundlesTypes.SET_SORTBY,\n payload: {\n sortBy: by,\n sortedItems: _sortedItems,\n },\n });\n };\n};\n\nexport const reset = () => {\n return (dispatch: TAppThunkDispatch): void => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffCards,\n action: 'reset filter',\n label: '',\n });\n dispatch({\n type: EFilteredBundlesTypes.RESET_SELECTED,\n payload: {\n selected: cloneDeep(selectedFiltersInitial),\n sortBy: SortByValues.recommended,\n },\n });\n };\n};\n\nconst sortByLine = (tariffs: ITariff[]) => {\n return [...tariffs].sort((a, b) => a.tariffLine?.sort - b.tariffLine?.sort);\n};\n\nconst checkedForFilters = (selectedFilters: ISelectedFilters[], groupKey: string) => {\n return (\n items: IFilterItem[],\n name: string,\n value: string | number,\n label: string,\n ) => {\n const _items = [...items];\n\n _items.push({\n value,\n label,\n checked: !!selectedFilters.find(filter => (\n filter.group === groupKey &&\n filter.name === name &&\n filter.values.includes(value)\n )),\n });\n if (name === FiltersName.speed) {\n _items.sort((a, b) => +a.value - +b.value);\n }\n return _items;\n };\n};\n\nconst checkedForCampaign = (selectedFilters: ISelectedFilters[], groupKey: string) => {\n return (items: IFilterItem[], name: string, filterName: string) => {\n const _items = [...items];\n\n if (!_items.some(filter => filter.value === CampaignFilterValues[filterName])) {\n const itemValue = CampaignFilterValues[filterName];\n const itemLabel = CampaignFilterLabels[filterName];\n\n _items.push({\n value: itemValue,\n label: itemLabel,\n checked: !!selectedFilters.find(filter => (\n filter.group === groupKey &&\n filter.name === name &&\n filter.values.includes(itemValue)\n )),\n });\n }\n return _items;\n };\n};\n\nexport const getAllItems = () => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const state = getState();\n const { filteredBundles: { selected: selectedFilters, groupKey } } = state;\n const tariffs = selectAllTariffs(state);\n\n const filtersItems = cloneDeep(filtersItemsInitial);\n const sortedItems = cloneDeep(sortedItemsInitial);\n\n const checkVillageTabDisabling: (number | boolean)[] = [];\n\n const getCheckedForFilters = checkedForFilters(selectedFilters, groupKey);\n const getCheckedForCampaign = checkedForCampaign(selectedFilters, groupKey);\n\n const allItems = sortByLine(tariffs)\n .reduce((acc: TFilters, tariff) => {\n const { speed, tariffLine, type, isCottage } = tariff;\n const targetGroup = isCottage ? 'village' : 'city';\n\n acc[targetGroup].items.forEach(item => {\n checkVillageTabDisabling.push(isCottage);\n const { name } = item;\n\n if (name !== FiltersName.campaign) {\n if (!item.items.some(elem => {\n // @ts-ignore\n return elem.value === tariff[name];\n })) {\n const filtersMapped: TFiltersMapped = {\n [FiltersName.speed]: { name: speed, label: `${speed} Мбит/с` },\n [FiltersName.lineId]: { name: tariffLine?.id, label: tariffLine?.title },\n [FiltersName.type]: { name: type, label: TypeFilterLabels[type] },\n };\n const { name: mappedName, label } = filtersMapped[name];\n item.items = getCheckedForFilters(item.items, name, mappedName, label);\n }\n } else {\n ['priceAction', 'equipment'].forEach(filterName => {\n item.items = getCheckedForCampaign(item.items, name, filterName);\n });\n }\n });\n\n return acc;\n }, filtersItems);\n\n // TODO: необходим рефакторинг получения уникальных линеек\n allItems.city.items[1].items = [...new Map(allItems.city.items[1].items.map(item => [item.value, item])).values()];\n allItems.village.items[1].items = [...new Map(allItems.village.items[1].items.map(item => [item.value, item])).values()];\n\n const isVillageTabDisable = checkVillageTabDisabling.every(el => el == checkVillageTabDisabling[0]);\n\n dispatch({\n type: EFilteredBundlesTypes.SET_ITEMS,\n payload: {\n isVillageTabDisable,\n items: allItems,\n sortedItems,\n },\n });\n };\n};\n\nconst sortTariffs = (sortingTariffs: ITariff[], sortTarget: SortByValues) => {\n const buffer = [...sortingTariffs];\n\n switch (sortTarget) {\n case SortByValues.recommended:\n buffer.sort((a, b) => a.weight - b.weight);\n break;\n case SortByValues.cheap:\n buffer.sort((a, b) => (a.priceAction ?? a.price) - (b.priceAction ?? b.price));\n break;\n case SortByValues.expensive:\n buffer.sort((a, b) => (b.priceAction ?? b.price) - (a.priceAction ?? a.price));\n break;\n }\n\n return buffer;\n};\n\nconst getResultWithEmpty = (tariffs: ITariff[], sortBy: SortByValues) => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const { filteredBundles: { groupKey } } = getState();\n const isVillage = groupKey === 'village';\n const localizedTariffs = [...tariffs].filter(tariff => !!tariff.isCottage === isVillage);\n dispatch({\n type: EFilteredBundlesTypes.SET_TARRIFS,\n payload: {\n tariffs: sortTariffs(localizedTariffs, sortBy),\n },\n });\n };\n};\n\nconst getResultsWithFilters = (tariffs: ITariff[], sortBy: SortByValues) => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const state = getState();\n const activeSelectedFilters = selectCheckedFilters(state);\n\n const normalizeTariffs = tariffs.reduce((acc: Record, tariff) => {\n acc[tariff.productId] = tariff;\n return acc;\n }, {});\n\n const result = activeSelectedFilters.reduce((acc: Record, selectedFilter: ISelectedFilters) => {\n return pickBy(acc, (tariff) => {\n const isCity = selectedFilter.group === 'city';\n return !!tariff.isCottage === !isCity &&\n (selectedFilter.name === FiltersName.campaign\n // @ts-ignore\n ? selectedFilter.values.some(value => !!tariff[value])\n : selectedFilter.name === FiltersName.lineId\n ? selectedFilter.values.includes(tariff.tariffLine.id)\n // @ts-ignore\n : selectedFilter.values.includes(tariff[selectedFilter.name])\n );\n });\n }, normalizeTariffs);\n\n dispatch({\n type: EFilteredBundlesTypes.SET_TARRIFS,\n payload: {\n tariffs: sortTariffs(Object.values(result), sortBy),\n },\n });\n };\n};\n\nexport const getResults = () => {\n return (dispatch: TAppThunkDispatch, getState: TGetState): void => {\n const state = getState();\n const { filteredBundles: { sortBy } } = state;\n const isEmptyFilters = selectIsEmpty(state);\n const tariffs = selectAllTariffs(state);\n\n if (!isEmptyFilters) {\n dispatch(getResultsWithFilters(tariffs, sortBy));\n } else {\n dispatch(getResultWithEmpty(tariffs, sortBy));\n }\n };\n};\n","import { FC } from 'react';\n\nimport { ICheckboxItem } from '~/src/components/CheckboxFilters';\nimport { TMenuItem } from '~/src/components/FilterMenu';\nimport FilterMenu from '~/src/components/FilterMenu';\n\nimport * as ST from './styled';\n\ninterface IProps {\n activeItem: number,\n hasCityTariffs: boolean,\n hasVillageTariffs: boolean,\n tariffFiltersData: ICheckboxItem[],\n tariffSwitcherData: TMenuItem[],\n onToggleFilter: (id: string) => void,\n className?: string,\n}\n\nexport const FiltersForTariffs: FC = ({\n hasCityTariffs,\n hasVillageTariffs,\n tariffFiltersData,\n tariffSwitcherData,\n onToggleFilter,\n activeItem,\n className,\n}) => {\n const hasBothTariffs = hasCityTariffs && hasVillageTariffs;\n return (\n \n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\n\nimport { CheckboxFilters } from '~/src/components/CheckboxFilters';\n\nexport const FiltersForTariffs = styled.div`\n width: 100%;\n align-items: center;\n justify-content: space-beetwen;\n flex-direction: row;\n margin-bottom: 16px;\n gap: 24px;\n`;\n\nexport const TariffSwitcherWrap = styled.div<{isDisplay: boolean}>`\n display: ${p => p.isDisplay ? 'block' : 'none'};\n`;\n\nexport const SCheckboxFilters = styled(CheckboxFilters)`\n margin-top: 0;\n margin-left: 0;\n\n div:first-child {\n margin-left: 0;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n div {\n margin-left: 0;\n \n &:not(:last-child) {\n margin-bottom: 16px;\n }\n }\n }\n`;\n","import { isArrayOfTwoOrMore } from '@r1-frontend/shared/guards';\nimport { TArrayOneOrMore } from '@r1-frontend/shared/types/Array';\n\nconst linear = (colors: TArrayOneOrMore) => {\n return `linear-gradient(to right,${colors.join(',')})`;\n};\n\nexport const createGradient = (colors?: string[] | null) => {\n if (isArrayOfTwoOrMore(colors)) {\n return linear(colors);\n }\n\n const [start = 'transparent', end] = colors || new Array(2).fill('transparent');\n\n return linear([start, end || start]);\n};\n","import { TArrayTwoOrMore } from '@r1-frontend/shared/types/Array';\n\nexport default function isArrayOfTwoOrMore(array?: T[] | null): array is TArrayTwoOrMore {\n if (!array) {\n return false;\n }\n\n return array.length > 1;\n}\n","import { ReactNode } from 'react';\nimport { LazyLoadImage } from 'react-lazy-load-image-component';\nimport styled from 'styled-components';\n\nimport { Label } from '@r1-frontend/ui-react/components/label';\nimport { Label as LabelStyle } from '@r1-frontend/ui-react/components/label/styled';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { BlockContainer, NonStaticContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport { createGradient } from './helpers/gradient';\n\ninterface IImageSource {\n src?: string,\n webpSrc?: string,\n}\n\ntype TPromoLabel = {\n children: ReactNode,\n title: string,\n\n borderColors?: string[] | null,\n backgroundColors?: string[] | null,\n\n titleColor?: string,\n\n image?: IImageSource,\n\n className?: string,\n}\n\n/**\n * Добавляет компоненту обертку в виде промо-лейбла и обводки\n *\n * {@link https://www.figma.com/design/dZ9nsGKTEkHJJGcfuP8pRi/%F0%9F%8D%8FDS-WEB?node-id=14405-13534&t=mcVQofYjbetgq4lH-0 Figma}\n */\nconst WithPromoLabel = (\n {\n title,\n titleColor = COLORS.TextWhite,\n\n image,\n\n className,\n children,\n }: TPromoLabel,\n) => {\n const hasImg = !!(image?.src);\n\n return (\n \n \n \n \n {title}\n \n\n {hasImg && \n \n \n \n }\n \n\n \n {children}\n \n );\n};\n\nexport default styled(WithPromoLabel)<{ $radius?: BorderRadius }>`\n --border-width: 2px;\n\n border: var(--border-width) solid transparent;\n border-radius: ${({ $radius = BorderRadius.OuterBlockRadius }) => `calc(${$radius} + var(--border-width))`};\n \n background:\n linear-gradient(white, white) padding-box, \n ${props => createGradient(props.borderColors)} border-box;\n \n & > ${NonStaticContainer} {\n display: flex;\n width: 208px;\n \n left: 50%;\n transform: translateX(-50%);\n \n ${LabelStyle} {\n width: 100%;\n padding: 0;\n }\n \n ${BlockContainer} {\n background: ${props => createGradient(props.backgroundColors)};\n \n picture {\n width: 64px;\n height: 40px;\n }\n }\n }\n`;\n","import { ServiceIncludesItem, ServiceIncludesList } from '~/src/components/TariffCard/styled';\n\ninterface IAdvProps {\n advantages: Array,\n}\n\nconst AdvantagesList = ({ advantages }: IAdvProps): JSX.Element => {\n return (\n \n {advantages.map((advantage, index) => (\n \n ))}\n \n );\n};\n\nexport default AdvantagesList;\n","import AdvantagesList from './advantagesList';\n\nimport { AccServiceBlock, AccServiceTitle, ServiceBlock, ServiceTitle } from '~/src/components/TariffCard/styled';\n\ninterface IInternetProps {\n isAccordion: boolean,\n withBg: boolean,\n bgColor: string,\n colorText: string,\n isOpen?: boolean,\n onToggle?: () => void,\n speed: number,\n advantages: string[],\n}\n\nconst InternetBlock = ({ isAccordion, withBg, bgColor, colorText, isOpen, onToggle, speed, advantages }: IInternetProps): JSX.Element => {\n return (isAccordion && advantages.length\n ? \n {speed} Мбит/с\n \n }\n >\n \n \n : \n \n {speed} Мбит/с\n \n {!!advantages.length && }\n \n );\n};\n\nexport default InternetBlock;\n","import { ITvDescriptions } from '~/src/components/TariffCard';\n\nimport { ServiceIncludesItem, ServiceIncludesList, ServiceTvDetails } from '~/src/components/TariffCard/styled';\n\ninterface IIncludesProps {\n tvDescriptions: Array,\n openPopup: () => void,\n}\n\nconst IncludesList = ({ tvDescriptions, openPopup }: IIncludesProps): JSX.Element => {\n return (\n \n {tvDescriptions.map((desc, index) => (\n \n
\n {desc.details &&\n \n {desc.details}\n \n }\n \n ))}\n \n );\n};\n\nexport default IncludesList;\n","import { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\nimport { channelPluralize } from '@r1-frontend/shared/helpers/pluralize/predifined';\n\nimport { ITvDescriptions } from '~/src/components/TariffCard';\n\nimport IncludesList from './includesList';\n\nimport { AccServiceBlock, AccServiceTitle, ServiceBlock, ServiceTitle } from '~/src/components/TariffCard/styled';\n\ninterface ITvProps {\n isAccordion: boolean,\n withBg: boolean,\n bgColor: string,\n colorText: string,\n isOpen?: boolean,\n onToggle?: () => void,\n totalChannels: number,\n tvDescriptions: ITvDescriptions[],\n openPopup: () => void,\n}\n\nconst channelText = getPluralize(channelPluralize);\n\nconst TvBlock = ({ isAccordion, withBg, bgColor, colorText, isOpen, onToggle, totalChannels, tvDescriptions, openPopup }: ITvProps): JSX.Element => {\n return (isAccordion && tvDescriptions.length\n ? \n {totalChannels} {channelText(totalChannels)}\n \n }\n >\n \n \n : \n \n {totalChannels} {channelText(totalChannels)}\n \n {!!tvDescriptions.length && }\n \n );\n};\n\nexport default TvBlock;\n","import React, { Dispatch, memo, SetStateAction, useCallback, useMemo, useState } from 'react';\nimport { useRouter } from 'next/router';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { Cost } from '@r1-frontend/ui-react/experimental/purchase/cost';\nimport { ACTIONS, CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\nimport { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\nimport { channelPluralize, monthPluralize } from '@r1-frontend/shared/helpers/pluralize/predifined';\nimport { useWebp } from '@r1-frontend/shared/hooks/useWebp';\n\nimport { getButtonText } from '~/src/components/TariffCard/helpers/getButtonText';\nimport { ISubscriptionBody } from '~/src/components/TariffCard/subscriptions/types';\nimport WithPromoLabel from '~/src/components/TariffCard/WithPromoLabel';\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport isFullBuyVillage from '~/src/features/full-buy/helpers/ab/isFullBuyVillage';\n\nimport InternetBlock from './internetBlock';\nimport Subscriptions from './subscriptions';\nimport TvBlock from './tvBlock';\n\nimport * as ST from './styled';\n\nexport interface ITvDescriptions {\n desc: string,\n details?: string,\n}\n\ninterface IProps {\n tariff: ITariff,\n isAuth?: boolean,\n openModal?: (tariff: ITariff) => void,\n onClickConnect?: () => void,\n tiled?: boolean,\n setSalePackageId?: Dispatch>,\n setShowRequestFormPopup?: Dispatch>,\n textForButton?: string,\n}\n\nconst channelText = getPluralize(channelPluralize);\nconst monthText = getPluralize(monthPluralize);\n\nconst getLocalePrice = (price: number) => price.toLocaleString('ru-RU', { maximumFractionDigits: 0 });\n\nexport const MAX_ADV_QUANTITY = 2;\n\nconst TariffCard = ({\n tariff,\n isAuth = false,\n openModal = () => ({}),\n onClickConnect,\n tiled = false,\n setSalePackageId,\n setShowRequestFormPopup,\n textForButton,\n}: IProps): JSX.Element => {\n const {\n additionalProducts,\n alias,\n analog = 0,\n advantages,\n color,\n colorText,\n description,\n hdCount = 0,\n imageBackground,\n imageBackgroundWebp,\n includes,\n isCottage,\n location,\n offerContents,\n price,\n priceAction,\n priceActionPeriod,\n sdCount = 0,\n speed,\n title,\n titleColors = [],\n isNeedRequest,\n salePackageId,\n salePackageLinks,\n } = tariff;\n const isZasmotris = alias?.toString().includes('zasmotris');\n const isConstructor = alias === 'constructor';\n const isMega = alias?.toString().includes('mega');\n\n const router = useRouter();\n const { query } = router;\n\n const isWebpUsed = useWebp();\n\n const [isOpenInternet, setIsOpenInternet] = useState(true);\n\n const preparedSubscriptions = useMemo(() => {\n const _offerContents: ISubscriptionBody[] = offerContents.map(item => ({\n id: item.id,\n image: item.image,\n imageWebp: item.image_webp,\n width: item.width,\n alt: item.title,\n type: 'subscription',\n sort: item.sort,\n }));\n\n const _subscriptions: ISubscriptionBody[] = Object.values(salePackageLinks.reduce>((acc, spl) => {\n if ('subscriptions' in spl && spl.subscriptions) {\n spl.subscriptions.forEach(item => {\n acc[item.id] = {\n id: item.id,\n image: item.image,\n imageWebp: item.image_webp,\n width: item.image_width,\n alt: item.title,\n type: 'subscription',\n sort: item.sort,\n };\n });\n }\n\n return acc;\n }, {})).sort((a, b) => a.sort && b.sort ? a.sort - b.sort : -1);\n\n const _additionalProducts: ISubscriptionBody[] = additionalProducts\n ?.filter(({ product_type, required }) => product_type === 'tv' && required)\n .map(({ id, shopItem }) => ({\n id,\n image: shopItem?.image_for_tariff_card || '',\n imageWebp: shopItem?.image_for_tariff_card_webp || '',\n width: shopItem?.image_width,\n alt: shopItem?.title || '',\n type: 'equipment',\n }));\n\n return [...((_subscriptions && _subscriptions.length) ? _subscriptions : _offerContents), ...(_additionalProducts ?? [])];\n }, [offerContents, additionalProducts]);\n\n const hasUrlBackground = useMemo(\n () => !!(imageBackgroundWebp?.includes('url') || imageBackground?.includes('url')),\n [imageBackground, imageBackgroundWebp],\n );\n\n const resultBackground = useMemo(() => {\n const currentBg = (isWebpUsed && imageBackgroundWebp) ? imageBackgroundWebp : imageBackground;\n return hasUrlBackground ? currentBg.replace(/^url|[()]/g, '') : currentBg;\n }, [hasUrlBackground, imageBackground, imageBackgroundWebp, isWebpUsed]);\n\n const promoPeriod = useMemo(\n () => priceActionPeriod ? `${priceActionPeriod} ${monthText(priceActionPeriod)}` : '',\n [priceActionPeriod],\n );\n\n const totalChannels = useMemo(() => hdCount + sdCount + analog, [hdCount, sdCount, analog]);\n\n const withSubscriptions = useMemo(() => !!offerContents?.length, [offerContents?.length]);\n\n const internetData = useMemo(() => {\n return advantages?.length\n ? advantages\n .slice(0, MAX_ADV_QUANTITY)\n .map(advantage => advantage.description)\n : [];\n }, [advantages]);\n\n const tvData = useMemo(() => {\n const data = [];\n\n includes?.length && data.push({\n desc: includes[0].description,\n });\n (hdCount || sdCount) && data.push({\n desc: hdCount\n ? `${hdCount} HD ${channelText(hdCount)}. `\n : `${sdCount} ${channelText(sdCount)}. `,\n details: 'Подробнее',\n });\n\n return data;\n }, [hdCount, includes, sdCount]);\n\n const onToggleHandler = useCallback(() => setIsOpenInternet(!isOpenInternet), [isOpenInternet]);\n const isFullBuyVillageRedirect = useMemo(isFullBuyVillage, []);\n\n\n const onClickHandler = useCallback((e: React.SyntheticEvent) => {\n if (setSalePackageId) {\n setSalePackageId(+salePackageId);\n }\n e.preventDefault();\n\n if (typeof onClickConnect === 'function') {\n return onClickConnect();\n }\n\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffCards,\n action: ACTIONS.clickChooseTariff,\n label: `name:${title.toLowerCase()}|package:${title.split(' ')[0].toLowerCase()}|type:${tariff.type === 'bundles' ? 'complex' : 'mono'}`,\n });\n\n const code = query.code ? `&code=${query.code}` : '';\n\n const detailPath = !isAuth && location === '/internet'\n ? `/full-buy?tariffName=${alias}&monoTariff=true${code}`\n : `${location}/${alias}${code}`;\n\n\n if (isFullBuyVillageRedirect && !!isCottage) {\n const isMono = !isAuth && location === '/internet/mono-village';\n return router.push(`/full-buy?tariffName=${alias}&monoTariff=${isMono}&filters=cottage${code}`);\n }\n\n !!isCottage && setShowRequestFormPopup\n ? setShowRequestFormPopup(true)\n : router.push(detailPath);\n }, [alias, onClickConnect, isAuth, isCottage, location, router, title, salePackageId, tariff]);\n\n const typeAndTextForButton = useMemo(() => {\n const isPrivateSector = !isFullBuyVillageRedirect && !!isCottage;\n\n const text = textForButton ?? getButtonText(isNeedRequest, isConstructor, isPrivateSector);\n\n return {\n text,\n type: btnTypes.SECONDARY,\n\n };\n }, [isConstructor, isNeedRequest, textForButton]);\n\n\n return (\n <>\n \n \n \n {title}\n \n\n \n\n {withSubscriptions &&\n \n }\n\n \n {!!speed && (\n \n )}\n {!!totalChannels && (\n openModal(tariff)}\n />\n )}\n \n \n\n \n {priceAction\n ? <>\n \n \n \n {getLocalePrice(priceAction)}\n \n \n \n \n {getLocalePrice(price)}\n \n \n \n {promoPeriod && цена на {promoPeriod}}\n \n : <>\n \n \n \n {isConstructor ? `от ${getLocalePrice(price)}` : getLocalePrice(price)}\n \n \n \n {isConstructor && Больше услуг – меньше цена}\n \n }\n \n \n \n \n );\n};\n\nconst TariffCardWithPromo = (props: IProps) => {\n if (props.tariff.promoLabel) {\n const {\n title,\n backgroundColors,\n borderColors,\n imageIcon,\n imageIconWebp,\n } = props.tariff.promoLabel;\n\n return (\n \n \n \n );\n }\n\n return ;\n};\n\nexport default memo(TariffCardWithPromo);\n","export const getButtonText = (isNeedRequest?: boolean, isConstructor?: boolean, isPrivateSector?: boolean) => {\n switch (true) {\n case isNeedRequest:\n return 'Создать заявку';\n case isConstructor:\n return 'Собрать тариф';\n case isPrivateSector:\n return 'Подключить';\n default:\n return 'Подключить онлайн';\n }\n };\n","import styled from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const ACBreakpoints = {\n desktop: '1599px',\n sDesktop: '1375px',\n laptop: '1328px',\n tablet: '1100px',\n mobile: '767px',\n sMobile: '425px',\n};\n\nexport const FilterContainer = styled(GridContainer)`\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: baseline;\n margin-bottom: 32px;\n\n @media (max-width: ${ACBreakpoints.desktop}) {\n justify-content: flex-start;\n width: auto;\n max-width: 1424px;\n padding-left: 16px;\n padding-right: 16px;\n }\n\n @media (max-width: ${ACBreakpoints.mobile}) {\n position: relative;\n }\n`;\n\nexport const CardsContainer = styled.div`\n position: relative;\n flex-basis: 1008px;\n margin: 0 -16px;\n\n @media (max-width: ${ACBreakpoints.sDesktop}) {\n margin: 0 -8px;\n }\n\n @media (max-width: ${ACBreakpoints.laptop}) {\n margin: 0 -20px;\n }\n\n @media (max-width: ${ACBreakpoints.tablet}) {\n margin: 0 -8px;\n }\n\n @media (max-width: ${ACBreakpoints.mobile}) {\n z-index: 3;\n }\n`;\n\nexport const SelectedFilters = styled.div`\n display: none;\n\n @media (max-width: ${ACBreakpoints.mobile}) {\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 16px 24px;\n margin-bottom: 40px;\n background-color: ${COLORS.BgMain};\n }\n\n @media (max-width: ${ACBreakpoints.sMobile}) {\n padding-bottom: 8px;\n }\n`;\n\nexport const FiltersTitle = styled.h4`\n ${FONTS.H4};\n margin-bottom: 8px;\n`;\n\nexport const FiltersButton = styled(BaseButton)`\n &:not(:last-child) {\n margin-right: 8px;\n }\n\n @media (max-width: ${ACBreakpoints.sMobile}) {\n margin-bottom: 8px;\n }\n`;\n\nexport const FiltersBlock = styled.div`\n flex-direction: column;\n margin-bottom: 16px;\n`;\n\nexport const ControlRow = styled.div``;\n\nexport const FixedButton = styled(BaseButton)``;\n","import styled, { css } from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { Label } from '@r1-frontend/ui-react/components/label';\nimport AccordionInstance from '@r1-frontend/ui-react/deprecated/Accordion';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { BoxShadow } from '@r1-frontend/ui-react/tokens/boxShadow';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport { hex2rgb } from '@r1-frontend/shared/helpers/hex2rgb';\n\nimport { ACBreakpoints } from '~/src/components/TariffFilter/styled';\n\nconst getGradient = (colors: string[]): string => {\n const [leftColor, rightColor] = colors;\n return `linear-gradient(90deg, ${leftColor} 0%, ${rightColor} 100%)`;\n};\n\nexport const CardWrapper = styled.div<{ tiled: boolean }>`\n position: relative;\n color: ${COLORS.TextPrimary};\n max-width: 304px;\n height: 468px;\n flex-direction: column;\n flex-wrap: nowrap;\n white-space: pre-wrap;\n border-radius: ${BorderRadius.OuterBlockRadius};\n overflow: hidden;\n text-rendering: geometricPrecision;\n transition: all .3s ease;\n cursor: grab;\n ${({ tiled }) => tiled && css`\n margin: 0 16px 24px;\n cursor: default;\n\n @media (max-width: ${ACBreakpoints.sDesktop}) {\n margin: 0 8px 24px;\n }\n\n @media (max-width: ${ACBreakpoints.laptop}) {\n margin: 0 20px 24px;\n }\n\n @media (max-width: ${ACBreakpoints.tablet}) {\n margin: 0 8px 24px;\n }\n\n @media (max-width: ${ACBreakpoints.sMobile}) {\n margin: 0 0 24px;\n }\n `};\n\n &:hover {\n box-shadow: ${BoxShadow.M};\n }\n\n &:active {\n cursor: grabbing;\n }\n`;\n\nexport const ContentSection = styled.div<{ bg?: string, bgSize: string, colorText: string }>`\n height: 323px;\n flex-direction: column;\n flex-wrap: nowrap;\n padding: 32px 24px 16px;\n color: ${p => p.colorText ?? COLORS.TextPrimary};\n background: ${p => `url(${p.bg}) 0 0 / ${p.bgSize} repeat-y`};\n background: image-set(${p => `url(${p.bg}) 1x) 0 0 / ${p.bgSize} repeat-y`};\n background-color: ${COLORS.BgSurface};\n border-bottom: 1px solid ${COLORS.BgLight};\n background-size: cover;\n`;\n\nexport const TariffTitle = styled.h3<{ colors?: Array, withBg: boolean }>`\n display: block;\n ${FONTS.H3};\n background: ${({ colors }) => {\n if (colors?.length) {\n return colors[0] === colors[1]\n ? 'none'\n : getGradient(colors);\n }\n }};\n -webkit-background-clip: text;\n color: ${({ colors }) => {\n if (colors?.length) {\n return colors[0] === colors[1]\n ? colors[0]\n : 'transparent';\n }\n return 'inherit';\n }};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const TariffDescription = styled.p`\n height: 32px;\n ${FONTS.XXS};\n margin-top: 4px;\n`;\n\nexport const SubsriptionsBlock = styled.div<{ height: number }>`\n width: ${({ height }) => `calc(100% + ${height + 2}px)`};\n height: ${({ height }) => `${height}px`};\n margin: ${({ height }) => `8px -${(height + 2) / 2}px 4px`};\n flex-wrap: nowrap;\n`;\n\nexport const LeftArrow = styled(BaseButton)<{ isVisible: boolean, height: number }>`\n height: ${({ height }) => `${height}px`};\n width: ${({ isVisible, height }) => isVisible ? `${height}px` : 0};\n padding: ${({ isVisible }) => isVisible ? '8px' : 0};\n margin-right: ${({ isVisible }) => isVisible ? '4px' : 0};\n background-color: ${COLORS.BgSecondary};\n background-image: url('/static/images/icons/left-arrow.svg');\n background-position: center;\n background-repeat: no-repeat;\n border-radius: ${BorderRadius.labelRadius};\n overflow: ${({ isVisible }) => isVisible ? 'visible' : 'hidden'};\n transition: .2s;\n cursor: pointer;\n\n &:hover {\n background-color: ${COLORS.BgLight};\n }\n`;\n\nexport const Subscriptions = styled.div<{ withLeftBtn: boolean, withRightBtn: boolean, height: number }>`\n position: relative;\n flex: 1 1 auto;\n margin-left: ${({ withLeftBtn, height }) => withLeftBtn ? 0 : `${height / 2}px`};\n margin-right: ${({ withRightBtn, height }) => withRightBtn ? 0 : `${height / 2}px`};\n flex-wrap: nowrap;\n overflow: hidden;\n`;\n\nexport const InnerContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: auto;\n height: 100%;\n flex-wrap: nowrap;\n align-items: center;\n transition: all .2s ease;\n`;\n\nexport const RightArrow = styled.div<{ isVisible: boolean, height: number }>`\n height: ${({ height }) => `${height}px`};\n width: ${({ isVisible, height }) => isVisible ? `${height}px` : 0};\n padding: ${({ isVisible }) => isVisible ? '8px' : 0};\n margin-left: ${({ isVisible }) => isVisible ? '4px' : 0};\n background-color: ${COLORS.BgSecondary};\n background-image: url('/static/images/icons/right-arrow.svg');\n background-position: center;\n background-repeat: no-repeat;\n border-radius: ${BorderRadius.labelRadius};\n overflow: ${({ isVisible }) => isVisible ? 'visible' : 'hidden'};\n transition: .2s;\n cursor: pointer;\n\n &:hover {\n background-color: ${COLORS.BgLight};\n }\n`;\n\nexport const ServicesSection = styled.div<{ withSubs: boolean }>`\n height: ${({ withSubs }) => withSubs ? '144px' : '208px'};\n flex-direction: column;\n flex-wrap: nowrap;\n`;\n\nconst getBg = (bgColor: string, withBg: boolean, opacity?: number) => {\n if (opacity) {\n return `rgba(${hex2rgb(bgColor)}, ${opacity})` || (withBg ? `rgba(${hex2rgb(COLORS.BgMain)}, ${opacity})` : COLORS.BgMain);\n }\n\n return bgColor || (withBg ? `rgba(${hex2rgb(COLORS.BgMain)}, .2)` : COLORS.BgMain);\n};\n\nexport const AccServiceBlock = styled(AccordionInstance)<{ bgColor: string, withBg: boolean, isClosed: boolean, open: boolean }>`\n width: 100%;\n border: none;\n color: inherit;\n padding: 0;\n margin-top: 16px;\n background: none;\n\n & > *:first-child {\n width: calc(100% + 32px);\n margin-left: -16px;\n margin-right: -16px;\n padding: 8px 16px;\n border-radius: ${BorderRadius.OuterBlockRadius};\n background: ${({ bgColor, withBg }) => getBg(bgColor, withBg)};\n\n &:hover {\n background: ${({ bgColor, withBg }) => getBg(bgColor, withBg, 0.6)};\n }\n }\n\n & > *:last-child {\n max-height: unset;\n padding-top: 8px;\n height: ${({ open }) => open ? '48px' : 0};\n transition: all 0.2s ease;\n transition-delay: ${({ isClosed }) => isClosed ? '0s' : '0.1s'};\n }\n\n & > *:first-child > *:last-child {\n width: 40px;\n height: calc(100% + 16px);\n margin: -8px -8px -8px 4px;\n }\n\n & > *:last-child > *:first-child {\n height: 0;\n margin: 0;\n }\n\n & > *:first-child > *:last-child > svg > circle {\n stroke: none;\n fill: none;\n }\n\n & > *:first-child > *:last-child > svg > path {\n stroke: ${({ withBg }) => withBg ? COLORS.BgMain : COLORS.GRAY_DARK};\n }\n`;\n\nexport const AccServiceTitle = styled.h4`\n ${FONTS.H5};\n`;\n\nexport const ServiceBlock = styled.div`\n width: 100%;\n padding: 0;\n margin-top: 16px;\n`;\n\nexport const ServiceTitle = styled.p<{ withBg: boolean, bgColor: string, colorText: string }>`\n ${FONTS.H5};\n width: calc(100% + 32px);\n margin: 0 -16px 8px;\n padding: 8px 16px;\n border-radius: ${BorderRadius.OuterBlockRadius};\n background: ${({ bgColor, withBg }) => getBg(bgColor, withBg)};\n color: inherit;\n`;\n\nexport const ServiceIncludesList = styled.ul``;\n\nexport const ServiceIncludesItem = styled.li<{ withDetails?: boolean }>`\n position: relative;\n height: 16px;\n ${FONTS.XXS};\n display: flex;\n padding-left: 12px;\n\n &:before {\n position: absolute;\n content: '';\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 4px;\n height: 4px;\n border-radius: ${BorderRadius.labelRadius};\n background: ${COLORS.Outline_Dark};\n overflow: hidden;\n }\n\n &:not(:last-child) {\n margin-bottom: 8px;\n }\n\n p, div {\n width: ${({ withDetails }) => withDetails ? 'auto' : '244px'};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n\nexport const ServiceTvDetails = styled.span`\n position: relative;\n ${FONTS.MediumXXS};\n cursor: pointer;\n text-decoration: underline;\n color: inherit;\n`;\n\nexport const PriceSection = styled.div`\n height: 144px;\n ${FONTS.S};\n padding: 8px 24px 16px;\n display: flex;\n flex-direction: column;\n background: ${COLORS.BgSurface};\n`;\n\nexport const PricesBlock = styled.div`\n flex: 1 1 auto;\n display: flex;\n align-items: flex-start;\n min-width: 235px;\n min-height: 36px;\n`;\n\nexport const TariffPrice = styled.h3`\n ${FONTS.H3};\n`;\n\nexport const OldPrice = styled.div`\n position: relative;\n margin-left: 8px;\n\n ${FONTS.XS};\n color: ${COLORS.TextHint};\n\n &:after {\n position: absolute;\n content: '';\n width: 100%;\n height: 1px;\n left: 0;\n top: 11px;\n background: ${COLORS.GRAY_DARK};\n }\n`;\n\nexport const ActionLabel = styled(Label)`\n margin: 8px 0;\n border-radius: ${BorderRadius.labelRadius};\n`;\n\nexport const StyledBaseButton = styled(BaseButton)`\n max-width: unset;\n width: calc(100% + 16px);\n margin: 0 -8px;\n`;\n\nexport const SubscriptionLabel = styled.div`\n ${FONTS.H5};\n padding: 4px 12px;\n border-radius: ${BorderRadius.OuterBlockRadius};\n background: rgba(${hex2rgb(COLORS.BgMain)}, .2);\n margin-right: 4px;\n white-space: nowrap;\n`;\n","import styled from 'styled-components';\n\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\n\nexport const Wrapper = styled.div<{ height: number, hasBorderRadius: boolean }>`\n height: ${({ height }) => height ? `${height}px` : '30px'};\n align-items: center;\n &:not(:last-child) {\n margin-right: 4px;\n }\n\n img {\n height: ${({ height }) => height ? `${height}px` : '30px'};\n width: auto;\n border-radius: ${({ hasBorderRadius }) => hasBorderRadius ? BorderRadius.labelRadius : 'none' };\n }\n`;\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\n\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\n\nimport * as ST from './styled';\n\ninterface IProps {\n src: string,\n webpSrc: string,\n alt: string,\n height: number,\n width?: number,\n hasBorderRadius: boolean,\n}\n\nconst SubscriptionImage = ({\n src,\n webpSrc,\n alt,\n height,\n width,\n\n hasBorderRadius,\n} : IProps) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default SubscriptionImage;\n","import { SyntheticEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport first from 'lodash/first';\n\nimport { ISalePackageLinks } from '~/src/api/common-types/sale-package';\nimport SubscriptionImage from '~/src/components/TariffCard/subscriptions/SubscriptionImage';\nimport { ISubscriptionBody } from '~/src/components/TariffCard/subscriptions/types';\n\nimport * as ST from '~/src/components/TariffCard/styled';\n\n\nexport interface ISubscriptionsProps {\n items: ISubscriptionBody[],\n imageHeight?: number,\n hasBorderRadius?: boolean,\n cardInnerWidth?: number,\n parentWithOneBtn?: number,\n parentWithTwoBtn?: number,\n buttonWidth?: number,\n isZasmotris?: boolean,\n isMega?: boolean,\n salePackageLinks?: ISalePackageLinks[],\n isCottage?: number | boolean,\n className?: string,\n}\n\nconst Subscriptions = ({\n items = [],\n imageHeight = 30,\n hasBorderRadius = true,\n cardInnerWidth = 256,\n parentWithOneBtn = 252,\n parentWithTwoBtn = 216,\n buttonWidth = 16,\n isZasmotris,\n isMega = false,\n salePackageLinks,\n isCottage,\n className,\n}: ISubscriptionsProps): JSX.Element => {\n const innerBlock = useRef(null);\n\n const [isVisibleLeftArrow, setIsVisibleLeftArrow] = useState(false);\n const [isVisibleRightArrow, setIsVisibleRightArrow] = useState(false);\n const [subscriptionsBlockWidth, setSubsBlockWidth] = useState(0);\n const [subsParentWidth, setSubsParentWidth] = useState(0);\n const [slideIndex, setSlideIndex] = useState(0);\n\n const equipItems = useMemo(() => items.filter((item => item.type === 'equipment')), [items]);\n\n const subscriptionsSort = (a: ISubscriptionBody, b: ISubscriptionBody) => {\n return a.sort && b.sort ? a.sort - b.sort : 0;\n };\n\n const { uniqueItems, availableSubscriptionsLabel } = useMemo(() => {\n if (!isZasmotris || isCottage || !salePackageLinks?.length) {\n items.sort(subscriptionsSort);\n return {\n uniqueItems: null,\n };\n }\n\n // Уникальные подписки (напр. в тарифе Засмотрись)\n // @TODO Вынести на верхний уровень (принимать через проп 'items'). Проверить в принципе актуальность такого типа подписок.\n const _subscriptions: ISubscriptionBody[] = salePackageLinks\n .reduce((acc: ISubscriptionBody[], item) => {\n item.subscriptions?.length && item.subscriptions?.forEach(subscription => {\n const subsIndex = acc.findIndex(el => el.id === subscription.id);\n if (subsIndex === -1) {\n acc.push({\n id: subscription.id,\n image: subscription.image,\n imageWebp: subscription.image_webp,\n width: subscription.image_width,\n alt: subscription.title,\n type: 'subscription',\n sort: subscription.sort,\n });\n }\n });\n return acc.sort(subscriptionsSort);\n }, []);\n\n const subscriptionsLabel = `${first(salePackageLinks)?.subscriptions?.length || 0}/${_subscriptions.length}`;\n\n return {\n uniqueItems: [..._subscriptions, ...(!isMega ? equipItems : [])],\n availableSubscriptionsLabel: subscriptionsLabel,\n };\n }, [equipItems, isCottage, isMega, isZasmotris, salePackageLinks]);\n\n\n useEffect(() => {\n if ((items || uniqueItems) && innerBlock.current) {\n setSubsBlockWidth(innerBlock.current.clientWidth + buttonWidth);\n\n const parentWidth = (!!subscriptionsBlockWidth && subscriptionsBlockWidth > cardInnerWidth) ? parentWithOneBtn : cardInnerWidth;\n setSubsParentWidth(parentWidth);\n }\n }, [innerBlock.current?.clientWidth, subscriptionsBlockWidth, items, uniqueItems]);\n\n useEffect(() => {\n if (subscriptionsBlockWidth > subsParentWidth) {\n setIsVisibleRightArrow(true);\n }\n }, [subscriptionsBlockWidth, subsParentWidth]);\n\n const subscriptionsSlides = useMemo(() => {\n const slides = [0];\n if (subscriptionsBlockWidth && subscriptionsBlockWidth > cardInnerWidth) {\n let decreasingWidth = subscriptionsBlockWidth;\n let currIndex = 1;\n\n slides.push(parentWithOneBtn);\n decreasingWidth -= parentWithOneBtn;\n\n if (decreasingWidth > parentWithOneBtn) {\n while (decreasingWidth >= parentWithOneBtn) {\n slides.push(slides[currIndex] + parentWithTwoBtn);\n decreasingWidth -= parentWithTwoBtn;\n currIndex++;\n }\n }\n slides.splice(-1, 1, slides[slides.length - 1] - (parentWithOneBtn - decreasingWidth) + buttonWidth);\n }\n\n return slides;\n }, [subscriptionsBlockWidth]);\n\n const changeLeftPosition = useCallback((directionVector: -1 | 1, extremeSlideIndex: number, callback: () => void) => {\n if (subscriptionsSlides && innerBlock.current) {\n innerBlock.current.style.left = -subscriptionsSlides[slideIndex + directionVector] + 'px';\n\n if (slideIndex + directionVector === extremeSlideIndex) {\n callback();\n }\n\n setSlideIndex(slideIndex + directionVector);\n }\n }, [slideIndex, subscriptionsSlides]);\n\n const leftArrowHandler = (e: SyntheticEvent) => {\n e.stopPropagation();\n !isVisibleRightArrow && setIsVisibleRightArrow(true);\n\n changeLeftPosition(-1, 0, () => {\n setIsVisibleLeftArrow(false);\n });\n };\n\n const rightArrowHandler = (e: SyntheticEvent) => {\n e.stopPropagation();\n !isVisibleLeftArrow && setIsVisibleLeftArrow(true);\n\n changeLeftPosition(1, subscriptionsSlides.length - 1, () => {\n setIsVisibleRightArrow(false);\n });\n };\n\n return (\n \n \n\n \n \n\n {availableSubscriptionsLabel &&\n \n {availableSubscriptionsLabel}\n \n }\n {(uniqueItems ?? items).map(subscription => (\n \n ))}\n \n \n\n \n \n );\n};\n\nexport default Subscriptions;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport {\n ERequestStatus,\n requestByConnection,\n RequestDto,\n ResponseDto,\n} from '@r1-frontend/api-domru/api-request/v1/user/request-by-connection';\n\nimport PopupCallBack from '@r1-frontend/ui-react/components/popups/popupCallback';\nimport { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport { CATEGORIES } from '@r1-frontend/shared/constants/analytics';\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\n\nimport PopupResult from '~/src/components/Popups/PopupResult';\nimport { ISubmitParams } from '~/src/components/RequestFormPhone';\nimport TariffCard from '~/src/components/TariffCard';\nimport { TariffLineCarousel } from '~/src/components/TariffLineCarousel';\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport { selectCsrf } from '~/src/store/selectors/auth/selectCsrf';\n\nimport * as ST from './styled';\n\nexport enum ESortingKeys {\n WEIGHT = 'weight',\n INTERNET = 'sortOnInternet',\n INTERNET_LINES = 'sortOnInternetLines',\n BUNDLES = 'sortOnBundles',\n}\nexport interface ITariffLine {\n id: number,\n title: string,\n body: string,\n sort: number,\n tariffs: ITariff[],\n}\n\ninterface ITariffLineProps {\n isAuth?: boolean,\n line?: ITariffLine,\n baseTariffs?: ITariff[],\n sortField?: string,\n openPopup?: (tariff: ITariff) => void,\n className?: string,\n weight?: number | null,\n}\n\nconst TariffLine = ({\n line,\n isAuth = false,\n baseTariffs = [],\n sortField = ESortingKeys.WEIGHT,\n openPopup = () => ({}),\n className = '',\n}: ITariffLineProps): JSX.Element => {\n const [onClientSide, setOnClientSide] = useState(isClientSide());\n const csrf = useSelector(selectCsrf);\n\n useEffect(() => {\n setOnClientSide(isClientSide);\n }, []);\n\n const [showRequestFormPopup, setShowRequestFormPopup] = useState(false);\n const [salePackageId, setSalePackageId] = useState(0);\n\n const [popup, setPopup] = useState({\n isResultOpened: false,\n resultTitle: '',\n resultText: '',\n resultType: EResultPopupStatus.SUCCESS,\n });\n\n const openPopupResult = useCallback((ok: boolean, message: string) => {\n setPopup({\n isResultOpened: true,\n resultType: ok ? EResultPopupStatus.SUCCESS : EResultPopupStatus.ERROR,\n resultTitle: ok\n ? 'Заявка на подключение отправлена'\n : 'Произошла ошибка',\n resultText: ok ? 'Мы свяжемся с вами в ближайшее время' : message,\n });\n setShowRequestFormPopup(false);\n }, []);\n\n const submitRequest = useCallback(async(params: ISubmitParams) => {\n const dataParams: RequestDto = {\n fio: params.fio as string,\n phone: params.phone,\n product_id: [0],\n check_call_type: window && window.location.href,\n plan: salePackageId ? +salePackageId : undefined,\n csrf,\n };\n\n const resp = await doRequest.apiRequest(\n requestByConnection(dataParams),\n );\n\n if (resp.isSuccess) {\n const { status, message } = resp.payload;\n const ok = !!status;\n\n openPopupResult(ok, message);\n\n return { ok, message, status };\n } else {\n return {\n ok: false,\n message: 'Не удалось отправить заявку.',\n status: ERequestStatus.error,\n };\n }\n }, [salePackageId]);\n\n const closePopup = useCallback(() => {\n setPopup(state => ({\n ...state,\n isResultOpened: false,\n }));\n setShowRequestFormPopup(false);\n }, []);\n\n interface tariffSortingKeyAccessors {\n weight: string,\n sortOnInternet: string,\n sortOnInternetLines: string,\n sortOnBundles: string,\n }\n\n const sortedTariffsByKey = (receivedTariffs: ITariff[], keyToSort: keyof tariffSortingKeyAccessors) => {\n return [...receivedTariffs]\n .sort((a, b) => {\n const currObj = a[keyToSort];\n const nextObj = b[keyToSort];\n if (currObj !== 0 && nextObj === 0) {\n return 1;\n }\n if (currObj === 0 && nextObj !== 0) {\n return -1;\n }\n return currObj - nextObj;\n });\n };\n\n const preparedTariffs = useMemo(() => {\n const result = line ? line.tariffs : baseTariffs;\n switch (sortField) {\n case ESortingKeys.BUNDLES:\n return sortedTariffsByKey(result, ESortingKeys.BUNDLES);\n case ESortingKeys.INTERNET:\n return sortedTariffsByKey(result, ESortingKeys.INTERNET);\n case ESortingKeys.INTERNET_LINES:\n return sortedTariffsByKey(result, ESortingKeys.INTERNET_LINES);\n case ESortingKeys.WEIGHT:\n default:\n return sortedTariffsByKey(result, ESortingKeys.WEIGHT);\n }\n }, [baseTariffs, line, sortField]);\n\n const renderTariffCards = () => preparedTariffs.map((tariff) => (\n \n ));\n\n return (\n \n {(line && !!preparedTariffs.length) && (\n <>\n {line.title}\n \n \n )}\n {onClientSide\n ? \n {renderTariffCards()}\n \n : \n {renderTariffCards()}\n \n }\n setShowRequestFormPopup(false)}\n title={'Заявка на подключение'}\n buttonText={'Подключить'}\n submitRequest={(params) => submitRequest(params)}\n option={'popup'}\n category={CATEGORIES.applicationForm}\n />\n \n \n );\n};\n\nexport default TariffLine;\n","import styled from 'styled-components';\n\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nconst breakpoints = {\n tablet: '1023px',\n mobile: '767px',\n};\n\nexport const LineContainer = styled(GridContainer)`\n flex-direction: column;\n padding-left: 0;\n padding-right: 0;\n width: 100%;\n`;\n\nexport const LineTitle = styled.h2`\n margin-bottom: 8px;\n ${FONTS.H2};\n color: ${COLORS.TextPrimary};\n\n @media (max-width: ${breakpoints.tablet}) {\n ${FONTS.H3};\n }\n\n @media (max-width: ${breakpoints.mobile}) {\n ${FONTS.H5}\n}\n`;\n\nexport const LineBody = styled.div`\n max-width: 530px;\n ${FONTS.XS};\n color: ${COLORS.TextSecondary};\n\n a {\n ${FONTS.MediumXS};\n color: ${COLORS.Link};\n transition: 0.3s;\n\n &:hover {\n color: ${COLORS.Brand_Blue};\n }\n }\n`;\n\nexport const CustomSwiper = styled(NukaCarousel)`\n padding-left: 0 !important;\n padding-right: 0 !important;\n\n & section,\n & div {\n outline: none;\n }\n\n & > section > div.slider-frame {\n padding: 24px 0 !important;\n }\n`;\n\nexport const NoSwiperContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n\n & > div {\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n`;\n\nexport const NotFoundTitle = styled.p`\n ${FONTS.S};\n color: ${COLORS.GRAY_DARK};\n margin: 16px 0;\n`;\n","import { ReactNode, useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\nimport { useMatchMediaByWidth } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nenum EVisibleSlides {\n desktop = 4,\n sDesktop = 3,\n laptop = 2,\n}\n\ninterface IProps {\n children: ReactNode[],\n mobileSlideWidth: number,\n desktopSlideWidth: number,\n}\n\nconst TariffLineCarousel = styled(({ children, desktopSlideWidth, mobileSlideWidth, ...props }: IProps) => {\n const [hideArrows, setHideArrows] = useState(false);\n const [slideWidth, setSlideWidth] = useState(`${desktopSlideWidth}px`);\n const [slideIndex, setSlideIndex] = useState(0);\n\n const isDesktop = useMatchMediaByWidth(wideBreakpoints.sDesktop, true);\n const isSDesktop = useMatchMediaByWidth(wideBreakpoints.sDesktop);\n const isLaptop = useMatchMediaByWidth(wideBreakpoints.laptop);\n const isMobile = useMatchMediaByWidth(wideBreakpoints.mobile);\n\n useEffect(() => {\n setSlideIndex(0);\n\n if (isMobile) {\n setSlideWidth(`${mobileSlideWidth}px`);\n setHideArrows(true);\n } else {\n setSlideWidth(`${desktopSlideWidth}px`);\n\n if ((isLaptop && children.length > EVisibleSlides.laptop) ||\n (isSDesktop && children.length > EVisibleSlides.sDesktop) ||\n (isDesktop && children.length > EVisibleSlides.desktop)) {\n setHideArrows(false);\n } else {\n setHideArrows(true);\n }\n }\n }, [isDesktop, isSDesktop, isLaptop, isMobile, desktopSlideWidth, mobileSlideWidth]);\n\n return (\n \n {children}\n \n );\n})`\n padding-left: 0 !important;\n padding-right: 0 !important;\n\n & section,\n & div {\n outline: none;\n }\n\n & > section > div.slider-frame {\n padding: 24px 0 !important;\n }\n`;\n\nTariffLineCarousel.displayName = 'TariffLineCarousel';\n\nexport { TariffLineCarousel };\n","import { getABNVariant } from '~/src/helpers/abn-tests';\n\nconst isFullBuyVillage = (): boolean => {\n return getABNVariant('fullbuy_village') === 'fullbuy_village_enable';\n};\n\nexport default isFullBuyVillage;\n","import styled from 'styled-components';\n\n// @ts-ignore\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\n\nexport const breakePoints = {\n lDesktop: '1600px',\n desktop: '1599px',\n sDesktop: '1365px',\n laptop: '1279px',\n tablet: '1023px',\n mobile: '767px',\n sMobile: '479px',\n};\n\nexport const InternetRepresent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width: 100%;\n`;\n\nexport const StyledGridContainer = styled(GridContainer)`\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n\n @media (max-width: ${breakePoints.desktop}) {\n padding-left: 0;\n padding-right: 0;\n }\n\n @media (max-width: ${breakePoints.mobile}) {\n padding-left: 16px;\n padding-right: 16px;\n }\n`;\n\nexport const PlankFormWrap = styled.div`\n position: fixed;\n z-index: 100;\n bottom: 0;\n width: 100%;\n\n @media (max-width: ${breakePoints.mobile}) {\n display: none;\n }\n`;\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport styled, { css } from 'styled-components';\n\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport arrowRight from '~/static/images/icons/arrow_right_white.svg';\n\nimport { breakpoints } from '~/src/features/tariffLines/styled';\n\nexport const CardWrapper = styled.div<{ bgColor?: string, withCellSpacing: boolean }>`\n display: flex;\n cursor: pointer;\n justify-content: space-around;\n position: relative;\n flex-wrap: nowrap;\n flex-direction: column;\n padding: 8px 8px 16px 8px;\n border-radius: ${BorderRadius.OuterBlockRadius};\n background: ${({ bgColor }) => bgColor || COLORS.BgSurface};\n width: 380px;\n min-height: 253px;\n transition: box-shadow .3s;\n ${({ withCellSpacing }) => withCellSpacing && css`\n margin-right: 24px;\n margin-bottom: 24px;\n \n @media (max-width: 480px) {\n margin-right: 12px;\n }\n `};\n \n @media (max-width: ${breakpoints.tablet}) {\n max-width: 360px;\n margin-right: 16px;\n }\n \n @media (max-width: ${breakpoints.mobile}) {\n max-width: 304px;\n }\n \n :hover {\n box-shadow: 0 12px 24px rgba(26, 26, 26, 0.06);\n }\n`;\n\nexport const ImageBlock = styled(LazyLoadImage)<{ src: string }>`\n width: 100%;\n background-size: cover;\n margin-bottom: 24px;\n border-radius: ${BorderRadius.InnerBlockRadius};\n`;\n\nexport const Bottom = styled.div`\n display: flex;\n position: relative;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const Text = styled.div`\n ${FONTS.H4};\n padding-left: 16px;\n max-width: 250px;\n @media (max-width: ${breakpoints.mobile}) {\n max-width: 240px;\n }\n`;\n\nexport const Button = styled.div`\n position: relative;\n height: 40px;\n width: 40px;\n right: 16px;\n cursor: pointer;\n background-image: url('${arrowRight}');\n`;\n\nexport const Header = styled.div`\n position: absolute;\n top: 26px;\n left: 34px;\n background: rgba(255, 255, 255, 0.3);\n color: #fff;\n padding: 4px 12px;\n border-radius: ${BorderRadius.labelRadius};\n`;\n","import React, { memo } from 'react';\n\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\n\nimport * as ST from './styled';\n\n// @todo Следует брать из api-domru/src/api-content/v1/tariff-lines\ninterface ILabel {\n id: number,\n title: string,\n}\n\n// @todo Следует брать из api-domru/src/api-content/v1/tariff-lines\nexport interface IContentsItem {\n id: number,\n title: string,\n image: string,\n image_webp: string,\n body: string,\n sort: number,\n labels?: ILabel[],\n}\n\ninterface ITariffLineCard {\n onBtnClick?: () => void,\n item: IContentsItem,\n}\n\nconst TariffLineCard = ({ onBtnClick, item }: ITariffLineCard) => {\n return (\n \n {item.labels?.map(label =>\n {label.title})}\n \n \n \n \n \n {item.title}\n \n \n \n \n );\n};\n\nexport default memo(TariffLineCard);\n","import React from 'react';\n\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { CustomSwiper } from '~/src/components/TariffLine/styled';\n\ninterface IProps {\n slideWidth: string,\n children: React.ReactNode,\n\n}\n\nconst CardSwiper = ({ slideWidth, children }: IProps) => {\n const isMobile = useMatchMedia('(max-width: 767px)');\n\n return isMobile\n ? \n {children}\n \n: <>{children};\n};\n\nexport default CardSwiper;\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport styled from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nconst breakpoints = {\n desktop: '1920px',\n tablet: '1121px',\n mobile: '767px',\n};\n\nexport const Wrapper = styled.div<{ webpUrl: string }>`\n width: 100%;\n ${({ webpUrl }) => `background-image: image-set(url(${webpUrl}) 1x)`};\n min-height: 447px;\n margin-bottom: 64px;\n padding: 0 90px;\n position: relative;\n\n @media (min-width: ${breakpoints.desktop}) {\n background-size: cover;\n }\n \n @media (max-width: ${breakpoints.tablet}) {\n padding: 0 0 0 16px;\n height: auto;\n }\n\n @media (max-width: ${breakpoints.mobile}) {\n margin-bottom: 32px;\n padding: 0;\n }\n`;\n\nexport const Container = styled(GridContainer)`\n @media (max-width: 1599px) {\n width: 100%;\n max-width: 1360px;\n padding: 0;\n }\n\n @media (max-width: ${breakpoints.mobile}) {\n padding: 0 16px;\n width:100%;\n }\n`;\n\nexport const Col = styled.div`\n display: flex;\n flex-direction: column;\n width: 50%;\n flex-basis: 50%;\n align-content: flex-start;\n \n @media (max-width: ${breakpoints.mobile}) {\n width: 100%;\n flex-basis: 100%;\n }\n`;\n\nexport const ImageCol = styled(Col)`\n @media (max-width: ${breakpoints.mobile}) {\n order: -1;\n }\n`;\n\nexport const Header = styled.h1`\n margin-top: 50px;\n margin-bottom: 8px;\n ${FONTS.H1};\n color: #fff;\n \n @media (max-width: 1365px) {\n ${FONTS.H3};\n }\n @media (max-width: ${breakpoints.mobile}) {\n ${FONTS.H4};\n }\n`;\n\nexport const Text = styled.div`\n ${FONTS.M}\n color: #fff;\n margin-bottom: 16px;\n \n & ul{\n list-style: disc;\n margin-left: 25px;\n }\n \n @media (max-width: ${breakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const Image = styled.div`\n object-fit: contain;\n width: 100%;\n height: 100%;\n align-content: center;\n @media (max-width: ${breakpoints.mobile}) {\n width: 100%;\n height: auto;\n }\n`;\n\nexport const ImageBlock = styled(LazyLoadImage)<{ src: string }>`\n background-size: cover;\n width: 100%;\n`;\n\nexport const Button = styled(BaseButton)`\n width: 165px;\n margin-bottom: 32px;\n @media (max-width: ${breakpoints.mobile}) {\n margin-bottom: 35px;\n }\n \n @media (max-width: ${breakpoints.tablet}) {\n margin-bottom: 50px;\n }\n`;\n","import React from 'react';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { NonStaticContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { AdvertisingLabelWithTooltip } from '@r1-frontend/ui-react/organisms/AdvertisingLabelWithTooltip';\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport * as ST from './styled';\n\ninterface IProps {\n scrollRef: React.RefObject,\n tariffLine: Record,\n}\n\nconst TariffLineHeader = ({ scrollRef, tariffLine }: IProps): JSX.Element => {\n const handleCLick = () => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffLines,\n action: 'click details line',\n label: '',\n });\n scrollRef?.current?.scrollIntoView();\n };\n\n return (\n \n {tariffLine.advertising && (\n \n \n \n )}\n \n \n \n \n \n {tariffLine.button_text || 'Что входит?'}\n \n \n {tariffLine.image_promo &&\n \n \n \n \n \n \n \n }\n \n \n );\n};\n\nexport default TariffLineHeader;\n","import reduce from 'lodash/reduce';\n\nimport { IBundlePackage } from '@r1-frontend/shared/types/tariff/bundle/IBundlePackage';\nimport { IInternetPackage } from '@r1-frontend/shared/types/tariff/mono/IInternetPackage';\n\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport { ITariffs } from '~/src/entities/tariff-lines';\nimport { formattingBundleForCard, formattingTariffForCard } from '~/src/helpers/formatter';\n\ninterface ITariffsReduceByIsCottage{\n cottage: {\n bundles: ITariff[],\n mono: ITariff[],\n common: ITariff[],\n },\n notCottage: {\n bundles: ITariff[],\n mono: ITariff[],\n common: ITariff[],\n },\n hasBundles: boolean,\n}\n\n\nconst reduceByIsCottage = (\n list: (IBundlePackage | IInternetPackage)[],\n formatter: (tariff: (IBundlePackage | IInternetPackage)) => ITariff,\n) => {\n return reduce(list, (acc: { cottage: ITariff[], notCottage: ITariff[] }, item) => {\n const formattedTariff = formatter(item);\n formattedTariff.isCottage\n ? acc.cottage.push(formattedTariff)\n : acc.notCottage.push(formattedTariff);\n return acc;\n }, { cottage: [], notCottage: [] });\n};\n\nconst NO_TARIFFS = {\n cottage: {\n bundles: [],\n mono: [],\n common: [],\n },\n notCottage: {\n bundles: [],\n mono: [],\n common: [],\n },\n hasBundles: false,\n};\n\nexport const getTariffsReduceByIsCottage = (tariffs?: ITariffs): ITariffsReduceByIsCottage => {\n if (!tariffs) {\n return NO_TARIFFS;\n }\n\n const bundles = Object.values(tariffs.bundles);\n\n const {\n cottage: cottageBundles,\n notCottage: notCottageBundles,\n } = reduceByIsCottage(bundles, formattingBundleForCard);\n\n const {\n cottage: cottageMono,\n notCottage: notCottageMono,\n } = reduceByIsCottage(Object.values(tariffs.mono), formattingTariffForCard);\n\n return {\n cottage: {\n bundles: cottageBundles,\n mono: cottageMono,\n common: [...cottageBundles, ...cottageMono],\n },\n notCottage: {\n bundles: notCottageBundles,\n mono: notCottageMono,\n common: [...notCottageBundles, ...notCottageMono],\n },\n hasBundles: !!bundles.length,\n };\n};\n","import styled, { css } from 'styled-components';\n\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakpoints } from '~/src/features/tariffLines/styled';\n\nexport const CardWrapper = styled.div<{ bgColor?: string, withCellSpacing: boolean }>`\n display: flex;\n justify-content: space-around;\n position: relative;\n cursor: pointer;\n flex-wrap: nowrap;\n flex-direction: column;\n padding: 8px 8px 16px 8px;\n border-radius: ${BorderRadius.OuterBlockRadius};\n background: ${({ bgColor }) => bgColor || COLORS.BgSurface};\n width: 380px;\n transition: box-shadow .3s;\n ${({ withCellSpacing }) => withCellSpacing && css`\n margin-right: 24px;\n margin-bottom: 24px;\n \n @media (max-width: 480px) {\n margin-right: 12px;\n }\n `};\n \n @media (max-width: ${breakpoints.tablet}) {\n max-width: 360px;\n margin-right: 16px;\n }\n \n @media (max-width: ${breakpoints.mobile}) {\n max-width: 328px;\n }\n \n &:hover {\n box-shadow: 0 12px 24px rgba(26, 26, 26, 0.06);\n }\n`;\n\nexport const Bottom = styled.div`\n margin-top: 4px;\n display: flex;\n position: relative;\n min-height: 40px;\n align-content: center;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const Text = styled.div`\n ${FONTS.H4};\n padding-left: 16px;\n`;\n\nexport const Button = styled.div`\n position: relative;\n height: 40px;\n width: 40px;\n right: 16px;\n cursor: pointer;\n background-image: url('${require('~/static/images/icons/arrow_right_white.svg')}');\n`;\n\nexport const Header = styled.div<{ backgroundColor?: string }>`\n position: relative;\n height: 80px;\n border-radius: ${BorderRadius.InnerBlockRadius};\n background-color: ${p => p.backgroundColor ?? '#250900'};\n`;\n\nexport const HeaderText = styled.div<{ color?: string }>`\n ${FONTS.S};\n color: ${p => p.color ?? '#fff'};\n margin: 16px 0 0 16px;\n max-width: 60%;\n \n @media (max-width: ${breakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const HeaderImage = styled.div`\n position: absolute;\n right: 0;\n bottom: -2px;\n max-width: 40%;\n \n & img{\n width: 100%;\n }\n`;\n","import React from 'react';\nimport { useRouter } from 'next/router';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport * as ST from './styled';\n\nexport interface IRecommendedTariff {\n id: number,\n title?: string,\n body?: string,\n sort?: number,\n url_landing?: string,\n title_short?: string,\n title_same?: string,\n title_body?: string,\n title_color_same?: string,\n desc_same?: string,\n body_full?: string,\n alias?: string,\n body_for_line_page?: string,\n image_background?: string,\n image_background_webp?: string,\n background_same?: string,\n image_promo?: string,\n image_promo_webp?: string,\n button_text?: string,\n}\n\nexport interface IProps {\n tariff: IRecommendedTariff,\n}\n\nconst SameTariffLineCard = ({ tariff }: IProps) => {\n const router = useRouter();\n\n const handleClick = () => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffLines,\n action: 'click choose lines',\n label: '',\n });\n router.push(`/internet/${tariff.alias}`);\n };\n return (\n \n \n \n \n \n {tariff.title}/\n \n \n \n \n \n \n \n );\n};\n\nexport default SameTariffLineCard;\n","import styled from 'styled-components';\n\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakpoints } from '~/src/features/tariffLines/styled';\n\nexport const Block = styled.div`\n margin-bottom: 60px;\n flex-direction: column;\n \n @media (max-width: ${breakpoints.mobile}) {\n width: 100%;\n margin-bottom: 32px;\n }\n`;\n\nexport const BlockInfo = styled.div`\n flex-direction: column;\n gap: 16px;\n\n &:not(:last-child) {\n margin-bottom: 24px;\n }\n\n @media (max-width: ${breakpoints.mobile}) {\n gap: 8px;\n\n &:not(:last-child) {\n margin-bottom: 16px;\n }\n }\n`;\n\n// @todo use @r1-frontend/ui-react/typography\nexport const Title = styled.h2`\n ${FONTS.H2};\n \n @media (max-width: ${breakpoints.mobile}) {\n ${FONTS.H4};\n }\n`;\n\n// @todo use @r1-frontend/ui-react/typography\nexport const Text = styled.div`\n ${FONTS.L};\n \n @media (max-width: ${breakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n","import * as ST from './styled';\n\ninterface IProps {\n sectionRef?: React.RefObject,\n title?: string,\n description?: string,\n children?: JSX.Element | JSX.Element[],\n}\n\nconst PageSection = ({ sectionRef, title, description, children }: IProps): JSX.Element => {\n return (\n \n {title &&\n \n \n {description &&\n \n }\n \n }\n {children}\n \n );\n};\n\nexport default PageSection;\n","import { FC, memo, useMemo, useRef, useState } from 'react';\nimport { useRouter } from 'next/router';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport ChannelListPopup from '~/src/components/Bundles/ChannelListPopup';\nimport { FiltersForTariffs } from '~/src/components/FiltersForTariffs';\nimport TariffLine, { ESortingKeys } from '~/src/components/TariffLine';\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport { ITariffLine } from '~/src/entities/tariff-lines';\nimport TariffLineCard, { IContentsItem } from '~/src/features/tariffLines/Card';\nimport CardSwiper from '~/src/features/tariffLines/CardSwiper';\nimport TariffLineHeader from '~/src/features/tariffLines/header';\nimport { getTariffsReduceByIsCottage } from '~/src/features/tariffLines/helpers';\nimport SameTariffLineCard, { IRecommendedTariff } from '~/src/features/tariffLines/SameCard';\n\nimport PageSection from './Section';\n\nimport * as ST from './styled';\n\ninterface IProps {\n tariffLine: ITariffLine,\n}\n\nconst filterItems = [\n {\n id: 'bundles',\n checked: true,\n disabled: false,\n label: 'С телевидением',\n },\n {\n id: 'internet',\n checked: false,\n disabled: false,\n label: 'Только интернет',\n },\n];\n\ntype TariffQuery = Partial<{\n filtersCottage: string,\n monoTariff: string,\n}>\n\nconst TariffLines: FC = ({ tariffLine }): JSX.Element => {\n const { query: { filtersCottage, monoTariff } } = useRouter();\n\n const {\n initialSwitcherState,\n initialFiltersState,\n initialActiveFilter,\n } = useMemo(() => {\n const initialIsInternetActive = monoTariff === 'true';\n const filtersState = initialIsInternetActive\n ? filterItems.map(({ checked, ...filter }) => ({\n ...filter,\n checked: !checked,\n }))\n : filterItems;\n\n return {\n initialFiltersState: filtersState,\n initialSwitcherState: filtersCottage === 'true' ? 1 : 0,\n initialActiveFilter: initialIsInternetActive ? 'internet' : 'bundles',\n };\n }, [filtersCottage, monoTariff]);\n\n const [activeSwitcher, setActiveSwitcher] = useState(initialSwitcherState);\n const [filters, setFilters] = useState(initialFiltersState);\n const [activeFilter, setActiveFilter] = useState(initialActiveFilter);\n\n const [isIncludesPopupOpen, setIsIncludesPopupOpen] = useState(false);\n const [activePopupContent, setActivePopupContent] = useState();\n const [isChannelPopupOpen, setIsChannelPopupOpen] = useState(false);\n const [selectedTariff, setSelectedTariff] = useState(null);\n\n const tariffRef = useRef(null);\n\n const menuItems = [\n {\n text: 'Для квартиры',\n action: () => {\n setActiveSwitcher(0);\n },\n },\n {\n text: 'Для частного дома',\n action: () => {\n setActiveSwitcher(1);\n },\n },\n ];\n\n const tariffs = useMemo(() => getTariffsReduceByIsCottage(tariffLine.tariffs), [tariffLine]);\n\n const handleIncludesPopupClose = () => {\n setIsIncludesPopupOpen(false);\n };\n\n const handleTariffClick = () => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffLines,\n action: 'click choose tariff',\n label: '',\n });\n tariffRef?.current?.scrollIntoView();\n setIsIncludesPopupOpen(false);\n };\n\n const handleIncludesClick = (id: number) => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffLines,\n action: 'click details additionally',\n label: '',\n });\n setIsIncludesPopupOpen(true);\n setActivePopupContent(tariffLine.contents?.find((el: IContentsItem) => el.id === id));\n };\n\n const filteredTariffs = (() => {\n const currentTariffs = activeSwitcher ? tariffs.cottage : tariffs.notCottage;\n\n if (activeFilter === null) {\n return currentTariffs.common;\n }\n\n return activeFilter === 'bundles' && tariffs.hasBundles ? currentTariffs.bundles : currentTariffs.mono;\n })();\n\n const toggleFilter = (filterId: string) => {\n setActiveFilter(currentActive => currentActive === filterId ? null : filterId);\n\n setFilters(currentFilters => currentFilters.map(filter => {\n let stateCheckedForFilter = filter.checked;\n\n if (filter.checked && filter.id !== filterId) {\n stateCheckedForFilter = false;\n dataLayerPush({\n event: 'UAevent',\n category: CATEGORIES.tariffCards,\n action: `remove filter ${filter.id}`,\n label: filter.label,\n });\n }\n\n if (filter.id === filterId) {\n stateCheckedForFilter = !filter.checked;\n dataLayerPush({\n event: 'UAevent',\n category: CATEGORIES.tariffCards,\n action: `${stateCheckedForFilter ? 'add' : 'remove'} filter ${filter.id}`,\n label: filter.label,\n });\n }\n\n return { ...filter, checked: stateCheckedForFilter };\n }));\n };\n\n const onChannelsClickHandler = (tariff: ITariff) => {\n setIsChannelPopupOpen(true);\n setSelectedTariff(tariff);\n dataLayerPush({\n event: 'UAevent',\n category: 'Click Bundles on the channel',\n action: 'view channels',\n label: '',\n });\n };\n\n const onCloseChannelsPopup = () => {\n setIsChannelPopupOpen(false);\n setSelectedTariff(null);\n };\n\n return (\n <>\n \n \n \n {tariffLine.title_body &&\n \n }\n \n \n {filteredTariffs.length > 0\n ? \n : \n }\n \n {!!tariffLine.recommendedTariffLines?.length &&\n \n \n \n {tariffLine.recommendedTariffLines.map((tariff: IRecommendedTariff) =>\n )\n }\n \n \n \n }\n {!!tariffLine.contents?.length &&\n \n \n \n {tariffLine.contents.map((item: IContentsItem) =>\n handleIncludesClick(item.id)}\n item={item}\n />)\n }\n \n \n \n }\n \n {activePopupContent &&\n \n
\n \n \n \n
\n \n {activePopupContent.title}\n
\n \n
\n \n \n \n
\n \n }\n
\n \n \n );\n};\n\nexport default memo(TariffLines);\n","/* eslint-disable complexity */\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\n\nconst MONO_VILLAGE_URL_PART = '/mono-village';\nconst BUNDLES_VILLAGE_URL_PART = '/village';\n\nexport const replaceCityVars = (data, cityObject) => {\n if (!data) {\n return data;\n }\n\n if ('string' === typeof data) {\n return data.replace('%cityIn%', cityObject.cityIn);\n }\n\n let result = data;\n if (Array.isArray(data)) {\n result = [];\n data.forEach(prop => {\n result.push(replaceCityVars(prop, cityObject));\n });\n return result;\n } else if ('object' === typeof data) {\n result = { ...data };\n Object.keys(result).forEach(key => {\n const prop = result[key];\n result[key] = replaceCityVars(prop, cityObject);\n });\n }\n\n return result;\n};\n\n// TODO требуется типизация по коду используется как { ITariff } from '~/src/models/formattedTariff'\nexport const formattingTariffForCard = (tariff) => {\n const isCottage = tariff.is_cottage;\n const defaultColor = '#000';\n const freePackets = tariff.salePackage2in1 ? tariff.salePackage2in1.free_packets : 0;\n const reserveColor = tariff.description?.color_text || COLORS.black;\n const titleColors = [\n tariff.description?.color_title_start || reserveColor,\n tariff.description?.color_title_end || reserveColor,\n ];\n\n return ({\n alias: tariff.description ? tariff.description.alias : '',\n additionalProducts: tariff.additionalProducts || [],\n advantages: tariff.advantages,\n availableClient: Boolean(tariff.available_client ? tariff.available_client : 0),\n availableGuest: Boolean(tariff.available_guest ? tariff.available_guest : 0),\n availableOnMainPage: !!tariff.available_on_main_page,\n availableOnInternetPage: !!tariff.available_on_internet_page,\n color: tariff.description?.color || '',\n colorText: tariff.description?.color_text || '',\n description: tariff.description ? tariff.description.description : '',\n freePackets: freePackets,\n fullSaleId: tariff.full_sale_id ?? tariff.salePackage3in1?.full_sale_id ??\n tariff.salePackage2in1?.full_sale_id ?? undefined,\n hasRequiredEquipment: tariff.hasRequiredEquipment,\n headingColor: tariff.description?.color ?? defaultColor,\n imageBackground: tariff.description?.image_background ? `url(${tariff.description.image_background})` : COLORS.white,\n imageBackgroundWebp: tariff.description?.image_background_webp ? `url(${tariff.description.image_background_webp})` : null,\n imageInHead: true,\n includes: tariff.includes,\n isCottage: isCottage,\n isSelfOrder: tariff.is_self_order ?? tariff.salePackage3in1?.is_self_order ??\n tariff.salePackage2in1?.is_self_order,\n lineId: tariff.description?.line_id,\n location: tariff.location === undefined ? ('/internet' + (isCottage ? MONO_VILLAGE_URL_PART : '')) : tariff.location,\n offerContents: tariff.offerContents || [],\n price: tariff.price_final,\n priceAction: tariff.promo_price_final ? tariff.promo_price_final : null,\n priceActionPeriod: tariff.promo_duration_final ? tariff.promo_duration_final : null,\n priceConnect: tariff.connect_price,\n priceIncludedVas: tariff.price_included_vas ? Number(tariff.price_included_vas) : null,\n productId: tariff.tariff_id,\n productIdForBilling: 5,\n productType: 40,\n promoDuration: tariff.promo_duration,\n promoDurationType: tariff.promo_dur_type,\n promoted: tariff.promote,\n salePackageId: tariff.sale_package_id,\n salePackageLinks: tariff.salePackageLinks,\n sortOnBundles: Number(tariff.sort_on_bundles),\n sortOnInternet: Number(tariff.sort_on_internet),\n sortOnInternetLines: Number(tariff.sort_on_internet_lines),\n speed: tariff.speed,\n speedAction: tariff.speed_bonus,\n speedActionPeriod: tariff.speed_bonus_duration,\n subscriptionsSummary: tariff.subscriptionsSummary,\n tariffLine: tariff.description?.tariffLine,\n title: tariff.description?.title || tariff.tariff_name_display || '',\n titleColors: titleColors,\n type: 'internet',\n weight: tariff.description?.sort,\n promoLabel: tariff.description?.promoLabel,\n });\n};\n\nexport const formattingBundleForCard = (tariff) => {\n const isCottage = tariff.salePackage2in1.is_cottage;\n const defaultColor = '#34c270';\n const reserveColor = tariff.description?.color_text || COLORS.black;\n const titleColors = [\n tariff.description?.color_title_start || reserveColor,\n tariff.description?.color_title_end || reserveColor,\n ];\n\n return ({\n alias: tariff.description ? tariff.description.alias : '',\n additionalProducts: tariff.additionalProducts || [],\n advantages: tariff.advantages,\n analogCount: Number(tariff.salePackage2in1.analog_count),\n availableClient: Boolean(tariff.description.available_client),\n availableGuest: Boolean(tariff.description.available_guest),\n availableOnMainPage: !!tariff.description.available_on_main_page,\n availableOnInternetPage: !!tariff.description.available_on_internet_page,\n color: tariff.description?.color || '',\n colorText: tariff.description?.color_text || '',\n description: tariff.description ? tariff.description.description : '',\n descriptionFull: tariff.description_full ? tariff.description_full : '',\n freePackets: tariff.salePackage2in1.free_packets,\n fullSaleId: tariff.full_sale_id ?? tariff.salePackage3in1?.full_sale_id ??\n tariff.salePackage2in1?.full_sale_id ?? undefined,\n hasRequiredEquipment: tariff.hasRequiredEquipment,\n hdCount: Number(tariff.salePackage2in1.hd_count),\n headingColor: tariff.description?.color ?? defaultColor,\n imageBackground: tariff.description?.image_background ? `url(${tariff.description.image_background})` : COLORS.white,\n imageBackgroundWebp: tariff.description?.image_background_webp ? `url(${tariff.description.image_background_webp})` : null,\n imageInHead: false,\n includes: tariff.includes,\n isCottage: isCottage,\n isSelfOrder: tariff.is_self_order ?? tariff.salePackage3in1?.is_self_order ??\n tariff.salePackage2in1?.is_self_order,\n lineId: tariff.description?.line_id,\n location: tariff.location === undefined ? ('/bundles' + (isCottage ? BUNDLES_VILLAGE_URL_PART : '')) : tariff.location,\n offerContents: tariff.offerContents,\n price: tariff.salePackage2in1.price_final,\n priceAction: tariff.salePackage2in1.promo_price_final ? tariff.salePackage2in1.promo_price_final : null,\n priceActionPeriod: tariff.salePackage2in1.promo_duration_final\n ? tariff.salePackage2in1.promo_duration_final\n : null,\n priceConnect: Number(tariff.price_connect_internet) + Number(tariff.price_connect_tv),\n priceIncludedVas: Number(tariff.price_included_vas),\n productId: tariff.sale_package_id,\n productIdForBilling: 0,\n productType: 100,\n promoDuration: tariff.salePackage2in1.promo_duration,\n promoDurationType: tariff.salePackage2in1.promo_dur_type,\n promoted: tariff.description?.promoted,\n salePackageId: tariff.sale_package_id,\n salePackageLinks: tariff.salePackageLinks,\n sdCount: Number(tariff.salePackage2in1.sd_count),\n sortOnBundles: Number(tariff.description.sort_on_bundles),\n sortOnInternet: Number(tariff.description.sort_on_internet),\n sortOnInternetLines: Number(tariff.description.sort_on_internet_lines),\n speed: tariff.speed_int,\n speedAction: tariff.speed_bonus,\n speedActionPeriod: tariff.speed_bonus_duration,\n subscriptionsSummary: tariff.subscriptionsSummary,\n tariffLine: tariff.description?.tariffLine,\n title: tariff.description ? (tariff.description.title || tariff.description.tariff_name) : '',\n titleColors: titleColors,\n type: 'bundles',\n weight: tariff.description?.weight,\n promoLabel: tariff.description?.promoLabel,\n });\n};\n","/**\n * Shorthand for .hasOwnProperty\n * @param {object} object or class\n * @param {string} property\n * @return {boolean} true\\false\n */\n\nexport const hasProp = (obj, prop) => {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n};\n","import { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\nimport { getCategories } from '@r1-frontend/api-domru/api-epg/v1/channel-categories';\nimport { getChannels as getAllChannelsRequest } from '@r1-frontend/api-domru/api-epg/v1/channels';\nimport { doRequest } from '@r1-frontend/do-request';\nimport { EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport { searchCategory } from '~/src/components/Bundles/helpers';\nimport {\n APPLY_CHANNELS_FILTERS,\n CHANNELS_PACKAGE_ID,\n CLEAR_CHANNELS_PACKAGE_ID,\n CLEAR_SEARCH_CHANNELS_FILTER,\n CLEAR_THEME_CHANNELS_FILTER,\n GET_ALL_CHANNELS,\n GET_BUNDLES_BANNER,\n GET_BUNDLES_TARIFFS,\n GET_BUNDLES_TARIFFS_SELF_ORDER,\n GET_CHANNEL_THEMES,\n GET_TARIFF_LINES,\n SET_FILTER_FOR_CHANNELS,\n SET_FILTERED_TARIFFS_ID,\n SET_SEARCH_CHANNELS_FILTER,\n SET_SELECTED_TARIFF_ID,\n SET_TARIFF_CHANNELS,\n SET_THEME_CHANNELS_FILTER,\n} from '~/src/store/actionTypes/bundles';\nexport const saveBanner = banner => ({\n type: GET_BUNDLES_BANNER,\n payload: banner,\n});\n\nexport const changeChannelsBundleId = (id) => ({\n type: CHANNELS_PACKAGE_ID,\n payload: id,\n});\n\nexport const clearChannelsBundleId = () => ({\n type: CLEAR_CHANNELS_PACKAGE_ID,\n});\n\nexport const saveTariffs = (tariffs, selfOrder = false) => ({\n type: selfOrder ? GET_BUNDLES_TARIFFS_SELF_ORDER : GET_BUNDLES_TARIFFS,\n payload: tariffs,\n});\n\nexport const saveTariffLinesAvailableOnBundles = (lines) => ({\n type: GET_TARIFF_LINES,\n payload: lines,\n});\n\nconst saveAllChannels = (channels) => ({\n type: GET_ALL_CHANNELS,\n payload: channels,\n});\n\n/**\n * Получение списка всех каналов\n * @param providerId\n * @returns {Function}\n */\nexport function getAllChannels(providerId) {\n\n return async(dispatch) => {\n const response = await doRequest.apiEPG(\n getAllChannelsRequest(providerId, { with: 'category,channelInfo,packets' }),\n );\n if (response.isSuccess) {\n const data = response.payload.map(channel => {\n return ({\n ...channel,\n button: channel.lcn,\n logo: channel?.channelInfo?.logo,\n chid: channel.channelId,\n xvid: channel.epgId,\n display: channel.display.toString(),\n bids: channel.packets.map(({ billing_id }) => (billing_id || '').toString()),\n thid: (channel?.category?.id || '').toString(),\n });\n });\n\n dispatch(saveAllChannels(data));\n }\n };\n}\n\nconst applyChannelsFilters = () => ({\n type: APPLY_CHANNELS_FILTERS,\n});\n\nconst setSearchChannelFilter = (searchValue) => ({\n type: SET_SEARCH_CHANNELS_FILTER,\n payload: searchValue,\n});\n\n/**\n * Поиск каналов\n * @param searchValue поисковое слово\n * @returns {Function}\n */\nexport function searchChannels(searchValue) {\n return async(dispatch) => {\n try {\n if (!searchValue) {\n return;\n }\n\n dispatch(setSearchChannelFilter(searchValue));\n dispatch(applyChannelsFilters());\n dataLayerPush({\n event: EVENTS.UAevent,\n category: 'Click Bundles on the channel', 'action': 'search',\n });\n } catch (error) {\n console.info('Action: searchChannels error', error.message || error);\n }\n };\n}\n\n/**\n * Очищение поискового фильтра\n * @returns {{type: string}}\n */\nexport function clearSearchChannels() {\n return async(dispatch) => {\n try {\n dispatch(clearSearchChannelFilter());\n dispatch(applyChannelsFilters());\n } catch (error) {\n console.info('Action: clearSearchChannels error', error.message || error);\n }\n };\n}\n\nconst setChannelsThemeFilter = (themeId) => ({\n type: SET_THEME_CHANNELS_FILTER,\n payload: themeId,\n});\n\n/**\n * Фильтруем каналы по теме\n * @param themeId\n * @returns {Function}\n */\nexport function filterChannelsByTheme(themeId) {\n return async(dispatch) => {\n try {\n dispatch(setChannelsThemeFilter(themeId));\n dispatch(applyChannelsFilters());\n } catch (error) {\n console.info('Action: filterChannelsByTheme error', error.message || error);\n }\n };\n}\n\nconst clearChannelThemeFilter = () => ({\n type: CLEAR_THEME_CHANNELS_FILTER,\n});\n\n/**\n * Очищаем фильтр по теме\n * @returns {Function}\n */\nexport function clearChannelThemeSelection() {\n return async(dispatch) => {\n try {\n dispatch(clearChannelThemeFilter());\n dispatch(applyChannelsFilters());\n } catch (error) {\n console.info('Action: clearChannelThemeFilter error', error.message || error);\n }\n };\n}\n\nexport const clearSearchChannelFilter = () => ({\n type: CLEAR_SEARCH_CHANNELS_FILTER,\n});\n\nconst saveChannelThemes = (themes) => ({\n type: GET_CHANNEL_THEMES,\n payload: themes,\n});\n\n/**\n * Получение список тематик для каналов\n * @returns {Function}\n */\nexport function getChannelThemes() {\n return async(dispatch, getState) => {\n const channelThemes = getState().bundles.channelThemes;\n const providerId = getState().city.provider.providerId;\n if (channelThemes && channelThemes.length) {\n return;\n }\n\n const response = await doRequest.apiEPG(\n getCategories(providerId, { order: '+weight', with: 'channels' }),\n );\n if (response.isSuccess) {\n const formattedThemes = response.payload.map(theme => ({\n value: theme.rndId,\n id: theme.rndId,\n label: theme.name,\n name: theme.name,\n weight: theme.weight,\n channels: (theme.channels || []).map(channel => ({\n ...channel,\n isHd: channel.quality === 'HD',\n id: channel.epgId,\n logo: channel?.channelInfo?.logo,\n })),\n }));\n\n dispatch(saveChannelThemes(formattedThemes));\n }\n };\n}\n\nconst saveTariffChannels = (packages) => ({\n type: SET_TARIFF_CHANNELS,\n payload: packages,\n});\n\n/**\n * Получение пакетов телеканалов, по нему сможем опеределить\n * какие каналы входят в определенный пакет\n * @param {number | string | number[] | string[]} freePackets Пакеты каналов\n * @returns {Function}\n */\nexport function getChannelPackages(freePackets) {\n return async(dispatch) => {\n try {\n const packagesIds = Array.isArray(freePackets)\n ? freePackets.map(String)\n : String(freePackets).split(',');\n\n dispatch(saveTariffChannels(\n {\n packages: [...new Set(packagesIds)],\n isOfferChannels: false,\n },\n ));\n } catch (error) {\n console.info('Action: getChannelPackages error', error.message || error);\n }\n };\n}\n\n/**\n * Получение пакетов телеканалов для определённго СП (оффера)\n * @param {string, string[], number[] | undefined} freePackets Пакеты каналов\n * @returns {Function}\n */\nexport function getOfferChannelPackages(freePackets) {\n return async(dispatch) => {\n try {\n dispatch(saveTariffChannels(\n {\n packages: [...new Set(freePackets)],\n isOfferChannels: true,\n },\n ));\n } catch (error) {\n console.info('Action: getOfferChannelPackages error', error.message || error);\n }\n };\n}\n\nexport const setSelectedTariffIdAction = selectedTariffId => ({\n type: SET_SELECTED_TARIFF_ID,\n payload: selectedTariffId,\n});\n\nexport const setFilterForChannelsAction = selectedFilter => ({\n type: SET_FILTER_FOR_CHANNELS,\n payload: selectedFilter,\n});\n\nexport function setFilteredTariffsIdActions(filteredTariffsId) {\n return ({\n type: SET_FILTERED_TARIFFS_ID,\n payload: filteredTariffsId,\n });\n}\n\n/**\n * Смена темы каналов и фильтрация каналов в зависимости от выбранной темы\n * @returns {Function}\n */\n\nexport const onChangeChannelThemeAction = (data, channelThemes) => {\n return async(dispatch) => {\n try {\n const theme = typeof data === 'string' ? searchCategory(channelThemes, data) : data;\n\n if (theme.value === 0) {\n dispatch(clearChannelThemeSelection());\n dispatch(changeChannelsBundleId(theme.value));\n } else {\n dispatch(filterChannelsByTheme(theme.value));\n dispatch(changeChannelsBundleId(theme.value));\n }\n\n dispatch(setFilterForChannelsAction(theme));\n\n dataLayerPush({\n event: EVENTS.UAevent,\n category: 'Click Bundles on the channel',\n action: 'Filter_сhannel',\n label: theme.label,\n });\n } catch (error) {\n console.info('Action: onChangeChannelThemeAction error', error.message || error);\n }\n };\n};\n","import get from 'lodash/get';\nimport { createSelector } from 'reselect';\n\n/**\n *\n * @param {import('../../index').TState} state\n */\nconst getTariffs = ({ bundles }) => get(bundles, 'tariffs.byId');\nexport const getTariffsSelector = createSelector(\n [getTariffs],\n tariffs => [...Object.values(tariffs)],\n);\n\nexport const getTariffChannels = (state) => {\n const isActiveFilter = state.bundles.channelsFiltersIsApply;\n return isActiveFilter ? state.bundles.filteredChannels : state.bundles.tariffChannels;\n};\n\nexport const getTariffChannelsWithId = createSelector(\n state => getTariffChannels(state),\n channels => channels.map(channel => ({\n ...channel,\n id: channel.xvid,\n })),\n);\n\n","import { createSelector } from 'reselect';\n\nimport { IInternetPackage } from '@r1-frontend/api-domru/api-content/v1/internet-tariffs/dto/ResponseDto';\n\nimport { ISelectedFilters } from '~/src/entities/filteredBundles';\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport { formattingBundleForCard, formattingTariffForCard } from '~/src/helpers/formatter';\nimport { TState } from '~/src/store';\nimport { getTariffsSelector } from '~/src/store/selectors/bundles';\n\nexport const selectAllTariffs = createSelector(\n [\n getTariffsSelector,\n (state: TState) => state.internet.tariffs,\n ],\n (bundles, internet) => {\n // возвращаемый функциями форматирования объект не согласован с ITariff - но повсеместно в коде используется как ITariff, требуется доработка ITariff.\n const formatBundles: ITariff[] = bundles.map(formattingBundleForCard);\n const formatInternets: ITariff[] = internet.map(formattingTariffForCard);\n\n return [\n ...formatBundles,\n ...formatInternets,\n ].sort((a, b) => a.weight - b.weight);\n },\n);\n\nexport const selectInternetTariffByAlias = createSelector(\n [\n (state: TState) => state.internet.tariffs,\n (_: TState, alias: string | number) => alias,\n ],\n (tariffs, alias) => {\n const tariff = tariffs.find(\n ({ description }: IInternetPackage) => description?.alias === alias,\n );\n\n return tariff ? formattingTariffForCard(tariff) : null;\n },\n);\n\n\nexport const selectCheckedFilters = createSelector(\n [\n (state: TState): ISelectedFilters[] => state?.filteredBundles?.selected,\n (state: TState): string => state?.filteredBundles?.groupKey,\n ],\n (selectedFilters, actualGroupKey) => selectedFilters.filter(\n filter => filter.group === actualGroupKey && !!filter.values.length,\n ),\n);\n\nexport const selectIsEmpty = (state: TState): boolean => !selectCheckedFilters(state).length;\n\ninterface ITariffsByType {\n cityBundles: ITariff[],\n villageBundles: ITariff[],\n cityInternet: ITariff[],\n villageInternet: ITariff[],\n}\n\nexport const selectTariffsByType = createSelector(\n selectAllTariffs,\n tariffs => {\n return tariffs.reduce((acc: ITariffsByType, tariff) => {\n tariff.isCottage === 0 && acc.cityBundles.push(tariff);\n tariff.type === 'bundles' && tariff.isCottage !== 0 && acc.villageBundles.push(tariff);\n tariff.type === 'internet' && tariff.isCottage === 0 && acc.cityInternet.push(tariff);\n tariff.type === 'internet' && tariff.isCottage !== 0 && acc.villageInternet.push(tariff);\n return acc;\n }, {\n cityBundles: [],\n villageBundles: [],\n cityInternet: [],\n villageInternet: [],\n });\n },\n);\n\n\nconst getPrice = (tariff: ITariff) => tariff['priceAction'] || tariff['price'] || 0;\n\ninterface IMinCostedTariff {\n description: string,\n price: string,\n url: string,\n}\nexport const selectMinCostedTariff = (filter: (tariff: ITariff) => void) => createSelector(\n selectAllTariffs,\n (tariffs): IMinCostedTariff | null => {\n const filteredTariffs = tariffs.filter(filter);\n\n if (filteredTariffs.length) {\n const sortedTariffs = [...filteredTariffs].sort((a, b) => getPrice(a) - getPrice(b));\n const minCostedTariff = sortedTariffs[0];\n\n return ({\n description: minCostedTariff?.seo_description || minCostedTariff?.description || '',\n price: getPrice(minCostedTariff).toString(),\n url: minCostedTariff?.alias && `full-buy?tariffName=${minCostedTariff?.alias}&monoTariff=true` || '',\n });\n }\n\n return null;\n },\n);\n\nexport const selectAvailableOnInternetPageTariffs = ({ isCottage }: {\n isCottage?: boolean,\n}) => createSelector(\n selectAllTariffs,\n (allTariffs: ITariff[]): ITariff[] =>\n allTariffs\n .filter((tariff: ITariff) =>\n tariff.availableOnInternetPage && isCottage === Boolean(tariff.isCottage)),\n);\n\nexport const selectAndSortAvailableOnInternetPageTariffs = ({ isCottage }: {\n isCottage?: boolean,\n}) => createSelector(\n selectAvailableOnInternetPageTariffs({ isCottage }),\n (tariffsAvailableOnInternetPage: ITariff[]): ITariff[] =>\n tariffsAvailableOnInternetPage\n .sort((tariffA, tariffB) => {\n const speedDiff = tariffB['speed'] - tariffA['speed'];\n if (speedDiff !== 0) {\n return speedDiff;\n }\n\n const priceDiff = getPrice(tariffA) - getPrice(tariffB);\n if (priceDiff !== 0) {\n return priceDiff;\n }\n\n return tariffA.type === 'internet' ? -1 : 1;\n }),\n);\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\n/*\n* Информация о категориях каналов\n* https://master.api-epg.sandbox.d2c.r-one.io/docs/#/v1/ChannelCategoryController_getChannelCategoriesByProviderId\n*/\n\ninterface IParams {\n order?: string,\n with?: string,\n}\nexport const getCategories = (providerId: number, params?: IParams): IRequest => ({\n uri: `/api/v1/${providerId}/channel-categories`,\n method: 'GET',\n queryParams: {\n ...params,\n },\n headers: {\n providerId: `${providerId}`,\n },\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\ninterface IGetChannels {\n includeDeleted?: 0 | 1,\n display?: 0 | 1,\n analog?: 0 | 1,\n digital?: 0 | 1,\n packetIds?: number[],\n channelId?: number,\n categoryId?: number,\n quality?: 'HD' | 'SD',\n with?: string,\n}\n\n/*\n* Список каналов в разрезе провайдеров\n* https://master.api-epg.sandbox.d2c.r-one.io/docs/#/v1/ChannelController_getChannelsByProviderId\n*/\nexport const getChannels = (providerId: number, params: IGetChannels): IRequest => ({\n uri: `/api/v1/${providerId}/channels`,\n method: 'GET',\n queryParams: {\n ...params,\n },\n headers: {\n providerId: `${providerId}`,\n },\n});\n","export type TArrayOfThree = [string, string, string];\n\n/**\n * @link https://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html\n */\nconst getVariant = (value: number, variants: TArrayOfThree) => {\n const abs = Math.abs(value);\n\n return variants[\n abs % 10 == 1 && abs % 100 != 11\n ? 0\n : abs % 10 >= 2 && abs % 10 <= 4 && (abs % 100 < 10 || abs % 100 >= 20)\n ? 1\n : 2\n ];\n};\n\n/**\n * Cклоняет число\n * @param value Число\n * @param variants Варианты слов для склонения\n * @returns Один из вариантов в зависимости от переданного значения {value}\n * @example\n * pluralize(3, ['идея', 'идеи', 'идей']); // идеи\n */\nexport const pluralize = (value: number, variants: TArrayOfThree) =>\n getVariant(value, variants);\n\n/**\n * Получает функцию для склонения числа\n * @param variants Варианты слов для склонения\n * @example\n * const pluralize = getPluralize(['идея', 'идеи', 'идей']);\n */\nexport const getPluralize = (variants: TArrayOfThree) => (value: number) =>\n pluralize(value, variants);\n","import { TArrayOfThree } from '.';\n\n/**\n * Склонения для месяца\n *\n * @return ['месяц', 'месяца', 'месяцев']\n */\nexport const monthPluralize: TArrayOfThree = ['месяц', 'месяца', 'месяцев'];\n\n/**\n * Склонения для канала\n *\n * @return ['канал', 'канала', 'каналов']\n */\nexport const channelPluralize: TArrayOfThree = ['канал', 'канала', 'каналов'];\n\n/**\n * Склонения для дня\n *\n * @return ['день', 'дня', 'дней']\n */\nexport const dayPluralize: TArrayOfThree = ['день', 'дня', 'дней'];\n\n/**\n * Склонения для бонуса\n *\n * @return ['бонус', 'бонуса', 'бонусов']\n */\nexport const bonusPluralize: TArrayOfThree = ['бонус', 'бонуса', 'бонусов'];\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","export function linear(t) {\n return +t;\n}\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import React from 'react';\nexport var getImgTagStyles = function getImgTagStyles() {\n return \".slider-slide > img { width: 100%; display: block; }\\n .slider-slide > img:focus { margin: auto; }\";\n};\nexport var getSlideHeight = function getSlideHeight(props) {\n var childCount = React.Children.count(props.children);\n var listWidth = props.slideWidth * childCount;\n var spacingOffset = props.cellSpacing * childCount;\n var calculatedHeight = props.vertical ? listWidth + spacingOffset : props.slideHeight;\n return calculatedHeight > 0 && props.heightMode !== 'current' ? calculatedHeight : 'auto';\n};\nexport var getAlignmentOffset = function getAlignmentOffset(slideIndex, config) {\n var offset = 0;\n\n switch (config.cellAlign) {\n case 'left':\n {\n offset = 0;\n offset -= config.cellSpacing * slideIndex;\n break;\n }\n\n case 'center':\n {\n offset = (config.frameWidth - config.slideWidth) / 2;\n offset -= config.cellSpacing * slideIndex;\n break;\n }\n\n case 'right':\n {\n offset = config.frameWidth - config.slideWidth;\n offset -= config.cellSpacing * slideIndex;\n break;\n }\n }\n\n return offset;\n};\nexport var getDecoratorStyles = function getDecoratorStyles(position) {\n switch (position) {\n case 'TopLeft':\n {\n return {\n position: 'absolute',\n top: 0,\n left: 0\n };\n }\n\n case 'TopCenter':\n {\n return {\n position: 'absolute',\n top: 0,\n left: '50%',\n transform: 'translateX(-50%)',\n WebkitTransform: 'translateX(-50%)',\n msTransform: 'translateX(-50%)'\n };\n }\n\n case 'TopRight':\n {\n return {\n position: 'absolute',\n top: 0,\n right: 0\n };\n }\n\n case 'CenterLeft':\n {\n return {\n position: 'absolute',\n top: '50%',\n left: 0,\n transform: 'translateY(-50%)',\n WebkitTransform: 'translateY(-50%)',\n msTransform: 'translateY(-50%)'\n };\n }\n\n case 'CenterCenter':\n {\n return {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%,-50%)',\n WebkitTransform: 'translate(-50%, -50%)',\n msTransform: 'translate(-50%, -50%)'\n };\n }\n\n case 'CenterRight':\n {\n return {\n position: 'absolute',\n top: '50%',\n right: 0,\n transform: 'translateY(-50%)',\n WebkitTransform: 'translateY(-50%)',\n msTransform: 'translateY(-50%)'\n };\n }\n\n case 'BottomLeft':\n {\n return {\n position: 'absolute',\n bottom: 0,\n left: 0\n };\n }\n\n case 'BottomCenter':\n {\n return {\n position: 'absolute',\n bottom: 0,\n left: '50%',\n transform: 'translateX(-50%)',\n WebkitTransform: 'translateX(-50%)',\n msTransform: 'translateX(-50%)'\n };\n }\n\n case 'BottomRight':\n {\n return {\n position: 'absolute',\n bottom: 0,\n right: 0\n };\n }\n\n default:\n {\n return {\n position: 'absolute',\n top: 0,\n left: 0\n };\n }\n }\n};\nexport var getSliderStyles = function getSliderStyles(propWidth, propHeight) {\n return {\n boxSizing: 'border-box',\n display: 'block',\n height: propHeight,\n MozBoxSizing: 'border-box',\n position: 'relative',\n width: propWidth\n };\n};\nexport var getFrameStyles = function getFrameStyles(propFrameOverFlow, propVertical, propFramePadding, stateFrameWidth) {\n return {\n boxSizing: 'border-box',\n display: 'block',\n height: propVertical ? stateFrameWidth || 'initial' : '100%',\n margin: propFramePadding,\n MozBoxSizing: 'border-box',\n msTransform: 'translate(0, 0)',\n overflow: propFrameOverFlow,\n padding: 0,\n position: 'relative',\n touchAction: \"pinch-zoom \".concat(propVertical ? 'pan-x' : 'pan-y'),\n transform: 'translate3d(0, 0, 0)',\n WebkitTransform: 'translate3d(0, 0, 0)'\n };\n};\nexport var getTransitionProps = function getTransitionProps(props, state) {\n return {\n animation: props.animation,\n cellAlign: props.cellAlign,\n cellSpacing: props.cellSpacing,\n currentSlide: state.currentSlide,\n dragging: props.dragging,\n frameWidth: parseInt(state.frameWidth),\n hasInteraction: state.hasInteraction,\n heightMode: props.heightMode,\n isWrappingAround: state.isWrappingAround,\n left: state.left,\n opacityScale: props.opacityScale,\n slideCount: state.slideCount,\n slideHeight: state.slideHeight,\n slideListMargin: props.slideListMargin,\n slideOffset: props.slideOffset,\n slidesToScroll: props.scrollMode === 'page' ? state.slidesToShow : props.slidesToScroll,\n slidesToShow: state.slidesToShow,\n slideWidth: state.slideWidth,\n top: state.top,\n vertical: props.vertical,\n wrapAround: props.wrapAround,\n zoomScale: props.zoomScale\n };\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable complexity */\nimport React from 'react';\nimport { getAlignmentOffset } from './utilities/style-utilities';\n\nvar defaultButtonStyles = function defaultButtonStyles(disabled) {\n return {\n border: 0,\n background: 'rgba(0,0,0,0.4)',\n color: 'white',\n padding: 10,\n textTransform: 'uppercase',\n opacity: disabled && 0.3,\n cursor: disabled ? 'not-allowed' : 'pointer'\n };\n};\n\nexport var PreviousButton = function PreviousButton(props) {\n var handleClick = function handleClick(event) {\n event.preventDefault();\n props.previousSlide();\n };\n\n var _props$defaultControl = props.defaultControlsConfig,\n prevButtonClassName = _props$defaultControl.prevButtonClassName,\n _props$defaultControl2 = _props$defaultControl.prevButtonStyle,\n prevButtonStyle = _props$defaultControl2 === void 0 ? {} : _props$defaultControl2,\n prevButtonText = _props$defaultControl.prevButtonText;\n var disabled = props.currentSlide === 0 && !props.wrapAround || props.slideCount === 0;\n return /*#__PURE__*/React.createElement(\"button\", {\n className: prevButtonClassName,\n style: _objectSpread(_objectSpread({}, defaultButtonStyles(disabled)), prevButtonStyle),\n disabled: disabled,\n onClick: handleClick,\n \"aria-label\": \"previous\",\n type: \"button\"\n }, prevButtonText || 'Prev');\n};\nexport var nextButtonDisabled = function nextButtonDisabled(_ref) {\n var cellAlign = _ref.cellAlign,\n cellSpacing = _ref.cellSpacing,\n currentSlide = _ref.currentSlide,\n frameWidth = _ref.frameWidth,\n positionValue = _ref.positionValue,\n slideCount = _ref.slideCount,\n slidesToShow = _ref.slidesToShow,\n slideWidth = _ref.slideWidth,\n wrapAround = _ref.wrapAround,\n scrollMode = _ref.scrollMode,\n slidesToScroll = _ref.slidesToScroll;\n var buttonDisabled = false;\n\n if (!wrapAround) {\n var alignmentOffset = getAlignmentOffset(currentSlide, {\n cellAlign: cellAlign,\n cellSpacing: cellSpacing,\n frameWidth: frameWidth,\n slideWidth: slideWidth\n });\n var relativePosition = positionValue - alignmentOffset;\n var width = slideWidth + cellSpacing;\n var endOffset = cellAlign === 'center' ? 2 * alignmentOffset : alignmentOffset;\n var endPosition = -width * slideCount + width * slidesToShow - endOffset;\n buttonDisabled = relativePosition < endPosition || Math.abs(relativePosition - endPosition) < 0.01;\n } // return true if its last slide or slideCount =0\n\n\n var lastSlide = currentSlide > 0 && currentSlide + slidesToScroll >= slideCount;\n\n if (lastSlide && !wrapAround && scrollMode === 'remainder' || slideCount === 0) {\n return buttonDisabled = true;\n }\n\n return buttonDisabled;\n};\nexport var NextButton = function NextButton(props) {\n var handleClick = function handleClick(event) {\n event.preventDefault();\n props.nextSlide();\n };\n\n var cellAlign = props.cellAlign,\n cellSpacing = props.cellSpacing,\n currentSlide = props.currentSlide,\n defaultControlsConfig = props.defaultControlsConfig,\n frameWidth = props.frameWidth,\n left = props.left,\n slideCount = props.slideCount,\n slidesToShow = props.slidesToShow,\n slideWidth = props.slideWidth,\n top = props.top,\n vertical = props.vertical,\n wrapAround = props.wrapAround,\n scrollMode = props.scrollMode,\n slidesToScroll = props.slidesToScroll;\n var nextButtonClassName = defaultControlsConfig.nextButtonClassName,\n _defaultControlsConfi = defaultControlsConfig.nextButtonStyle,\n nextButtonStyle = _defaultControlsConfi === void 0 ? {} : _defaultControlsConfi,\n nextButtonText = defaultControlsConfig.nextButtonText;\n var disabled = nextButtonDisabled({\n cellAlign: cellAlign,\n cellSpacing: cellSpacing,\n currentSlide: currentSlide,\n frameWidth: frameWidth,\n positionValue: vertical ? top : left,\n slideCount: slideCount,\n slidesToShow: slidesToShow,\n slideWidth: slideWidth,\n wrapAround: wrapAround,\n scrollMode: scrollMode,\n slidesToScroll: slidesToScroll\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n className: nextButtonClassName,\n style: _objectSpread(_objectSpread({}, defaultButtonStyles(disabled)), nextButtonStyle),\n disabled: disabled,\n onClick: handleClick,\n \"aria-label\": \"next\",\n type: \"button\"\n }, nextButtonText || 'Next');\n};\nexport var getDotIndexes = function getDotIndexes(slideCount, slidesToScroll, slidesToShow, cellAlign) {\n var dotIndexes = [];\n var lastDotIndex = slideCount - slidesToShow;\n var slidesToShowIsDecimal = slidesToShow % 1 !== 0;\n\n switch (cellAlign) {\n case 'center':\n case 'right':\n lastDotIndex += slidesToShow - 1;\n break;\n } // the below condition includes the last index if slidesToShow is decimal\n\n\n if (cellAlign === 'left' && slidesToShowIsDecimal) {\n lastDotIndex += slidesToShow - 1;\n }\n\n if (lastDotIndex < 0) {\n return [0];\n }\n\n for (var i = 0; i < lastDotIndex; i += slidesToScroll) {\n dotIndexes.push(i);\n } // the below condition includes the last index if slidesToShow is not decimal and cellAlign = left\n\n\n if (cellAlign === 'left' && !slidesToShowIsDecimal) {\n lastDotIndex = slideCount - (slideCount % slidesToShow || slidesToShow);\n }\n\n if (!dotIndexes.includes(lastDotIndex)) {\n dotIndexes.push(lastDotIndex);\n }\n\n return dotIndexes;\n};\nexport var PagingDots = function PagingDots(props) {\n var getListStyles = function getListStyles() {\n return {\n position: 'relative',\n top: -10,\n display: 'flex',\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n };\n };\n\n var getButtonStyles = function getButtonStyles(active) {\n return {\n cursor: 'pointer',\n opacity: active ? 1 : 0.5,\n background: 'transparent',\n border: 'none',\n fill: 'black'\n };\n };\n\n var indexes = getDotIndexes(props.slideCount, props.slidesToScroll, props.slidesToShow, props.cellAlign);\n var _props$defaultControl3 = props.defaultControlsConfig,\n pagingDotsContainerClassName = _props$defaultControl3.pagingDotsContainerClassName,\n pagingDotsClassName = _props$defaultControl3.pagingDotsClassName,\n _props$defaultControl4 = _props$defaultControl3.pagingDotsStyle,\n pagingDotsStyle = _props$defaultControl4 === void 0 ? {} : _props$defaultControl4;\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: pagingDotsContainerClassName,\n style: getListStyles()\n }, indexes.map(function (index, i) {\n var isActive = props.currentSlide === index; // the below condition checks and sets navigation dots active if the current slide falls in the current index range\n\n if (props.currentSlide < index && props.currentSlide > indexes[i - 1]) {\n isActive = true;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n className: isActive ? 'paging-item active' : 'paging-item'\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: pagingDotsClassName,\n type: \"button\",\n style: _objectSpread(_objectSpread({}, getButtonStyles(isActive)), pagingDotsStyle),\n onClick: props.goToSlide.bind(null, index),\n \"aria-label\": \"slide \".concat(index + 1, \" bullet\"),\n \"aria-selected\": isActive\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"paging-dot\",\n width: \"6\",\n height: \"6\",\n \"aria-hidden\": \"true\",\n focusable: \"false\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"3\",\n cy: \"3\",\n r: \"3\"\n }))));\n }));\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React from 'react';\nimport { getAlignmentOffset } from './style-utilities';\nexport var addEvent = function addEvent(elem, type, eventHandle) {\n if (elem === null || typeof elem === 'undefined') {\n return;\n }\n\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n } else if (elem.attachEvent) {\n elem.attachEvent(\"on\".concat(type), eventHandle);\n } else {\n elem[\"on\".concat(type)] = eventHandle;\n }\n};\nexport var removeEvent = function removeEvent(elem, type, eventHandle) {\n if (elem === null || typeof elem === 'undefined') {\n return;\n }\n\n if (elem.removeEventListener) {\n elem.removeEventListener(type, eventHandle, false);\n } else if (elem.detachEvent) {\n elem.detachEvent(\"on\".concat(type), eventHandle);\n } else {\n elem[\"on\".concat(type)] = null;\n }\n};\nexport var addAccessibility = function addAccessibility(children, slidesToShow, currentSlide) {\n var needsTabIndex;\n\n if (slidesToShow > 1) {\n return React.Children.map(children, function (child, index) {\n var firstVisibleSlide = index >= currentSlide;\n var lastVisibleSlide = index < slidesToShow + currentSlide;\n needsTabIndex = firstVisibleSlide && lastVisibleSlide;\n var ariaProps = needsTabIndex ? {\n 'aria-hidden': 'false',\n tabIndex: 0\n } : {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, ariaProps), child.props));\n });\n } else {\n return React.Children.map(children, function (child, index) {\n needsTabIndex = index !== currentSlide;\n var ariaProps = needsTabIndex ? {\n 'aria-hidden': 'true'\n } : {\n 'aria-hidden': 'false',\n tabIndex: 0\n };\n return /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, ariaProps), child.props));\n });\n }\n};\nexport var getSlideClassName = function getSlideClassName(index, currentSlide, slidesToShow) {\n var className = '';\n var visible = index >= currentSlide && index < currentSlide + slidesToShow;\n var current = index === currentSlide;\n\n if (visible) {\n className = ' slide-visible';\n\n if (current) {\n className = className.concat(' slide-current');\n }\n }\n\n return className;\n};\nexport var getPropsByTransitionMode = function getPropsByTransitionMode(props, keys) {\n var slidesToShow = props.slidesToShow,\n transitionMode = props.transitionMode;\n var updatedDefaults = {};\n\n if (transitionMode === 'fade') {\n keys.forEach(function (key) {\n switch (key) {\n case 'slidesToShow':\n updatedDefaults[key] = Math.max(parseInt(slidesToShow), 1);\n break;\n\n case 'slidesToScroll':\n updatedDefaults[key] = Math.max(parseInt(slidesToShow), 1);\n break;\n\n case 'cellAlign':\n updatedDefaults[key] = 'left';\n break;\n\n default:\n updatedDefaults[key] = props[key];\n break;\n }\n });\n } else {\n keys.forEach(function (key) {\n updatedDefaults[key] = props[key];\n });\n }\n\n return updatedDefaults;\n};\nexport var swipeDirection = function swipeDirection(x1, x2, y1, y2, vertical) {\n var xDist = x1 - x2;\n var yDist = y1 - y2;\n var r = Math.atan2(yDist, xDist);\n var swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0) {\n return 1;\n }\n\n if (swipeAngle <= 360 && swipeAngle >= 315) {\n return 1;\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return -1;\n }\n\n if (vertical === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return 1;\n } else {\n return -1;\n }\n }\n\n return 0;\n};\nexport var getSlideDirection = function getSlideDirection(start, end, isWrapping) {\n var direction = 0;\n if (start === end) return direction;\n\n if (isWrapping) {\n direction = start < end ? -1 : 1;\n } else {\n direction = start < end ? 1 : -1;\n }\n\n return direction;\n};\nexport var shouldUpdate = function shouldUpdate(curr, next, keys) {\n var update = false;\n\n for (var i = 0; i < keys.length; i++) {\n if (curr[keys[i]] !== next[keys[i]]) {\n update = true;\n break;\n }\n }\n\n return update;\n};\nexport var calcSomeInitialState = function calcSomeInitialState(props) {\n var _getPropsByTransition = getPropsByTransitionMode(props, ['slidesToScroll', 'slidesToShow', 'cellAlign']),\n slidesToScroll = _getPropsByTransition.slidesToScroll,\n slidesToShow = _getPropsByTransition.slidesToShow,\n cellAlign = _getPropsByTransition.cellAlign;\n\n var slideWidth = props.vertical ? props.initialSlideHeight || 0 : props.initialSlideWidth || 0;\n var slideHeight = props.vertical ? (props.initialSlideHeight || 0) * props.slidesToShow : props.initialSlideHeight || 0;\n var frameHeight = slideHeight + props.cellSpacing * (slidesToShow - 1);\n var frameWidth = props.vertical ? frameHeight : null;\n return {\n slideWidth: slideWidth,\n slideHeight: slideHeight,\n frameWidth: frameWidth,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n cellAlign: cellAlign\n };\n};\nexport var handleSelfFocus = function handleSelfFocus(e) {\n if (e && e.currentTarget) {\n e.currentTarget.focus();\n }\n};\nexport var isFullyVisible = function isFullyVisible(slideIndex, config) {\n var currentSlide = config.currentSlide,\n cellSpacing = config.cellSpacing,\n slideCount = config.slideCount,\n slideWidth = config.slideWidth,\n frameWidth = config.frameWidth,\n wrapAround = config.wrapAround,\n cellAlign = config.cellAlign; // Slide width can't be 0\n\n var fullSlideWidth = slideWidth || 1; // Calculate offset without cellSpacing\n\n var offsetWidth = getAlignmentOffset(currentSlide, config) + cellSpacing * currentSlide;\n var remainingWidth = frameWidth - offsetWidth;\n var fullSlidesBefore = 0;\n\n if (cellAlign !== 'left') {\n fullSlidesBefore = Math.max(Math.floor(offsetWidth / fullSlideWidth) + 1, 0);\n } else {\n fullSlidesBefore = Math.max(Math.floor(offsetWidth / fullSlideWidth), 0);\n }\n\n var fullSlidesAfter = Math.max(Math.floor(remainingWidth / fullSlideWidth), 0); // when slidesToScroll is auto enable clicking of all fully visible slides\n\n if (fullSlidesAfter + fullSlidesBefore + currentSlide >= slideCount && !wrapAround) {\n var fullSlidesAuto = fullSlidesBefore + fullSlidesAfter;\n fullSlidesAfter = fullSlidesAuto;\n fullSlidesBefore = fullSlidesAuto;\n }\n\n var currentSlideIndex = Math.ceil(currentSlide);\n var fullyVisibleSlides = [];\n\n for (var i = currentSlideIndex - fullSlidesBefore; i < currentSlideIndex + fullSlidesAfter + 1; i++) {\n if (i < 0) {\n // -1 won't match a slide index\n fullyVisibleSlides.push(wrapAround ? slideCount + i : -1);\n } else {\n fullyVisibleSlides.push(i > slideCount - 1 ? i - slideCount : i);\n }\n }\n\n return fullyVisibleSlides.includes(slideIndex);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getSlideHeight, getAlignmentOffset } from '../utilities/style-utilities';\nimport { getSlideDirection, handleSelfFocus, getSlideClassName, isFullyVisible } from '../utilities/utilities';\nvar MIN_ZOOM_SCALE = 0;\nvar MAX_ZOOM_SCALE = 1;\n\nvar ScrollTransition = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollTransition, _React$Component);\n\n var _super = _createSuper(ScrollTransition);\n\n function ScrollTransition(props) {\n var _this;\n\n _classCallCheck(this, ScrollTransition);\n\n _this = _super.call(this, props);\n _this.getListStyles = _this.getListStyles.bind(_assertThisInitialized(_this));\n return _this;\n }\n /* eslint-disable complexity */\n\n\n _createClass(ScrollTransition, [{\n key: \"getSlideTargetPosition\",\n value: function getSlideTargetPosition(currentSlideIndex, positionValue) {\n var offset = 0; // Below lines help to display peeking slides when number of slides is less than 3.\n\n var peekSlide = true;\n\n switch (this.props.cellAlign) {\n case 'left':\n peekSlide = this.props.children.length <= 2 && currentSlideIndex !== 0 ? false : true;\n break;\n\n case 'center':\n peekSlide = this.props.children.length > 2 || this.props.currentSlide !== currentSlideIndex - 1 ? true : false;\n break;\n }\n\n if (this.props.animation === 'zoom' && peekSlide && (this.props.currentSlide === currentSlideIndex + 1 || this.props.currentSlide === 0 && currentSlideIndex === this.props.children.length - 1)) {\n offset = this.props.slideOffset;\n } else if (this.props.animation === 'zoom' && (this.props.currentSlide === currentSlideIndex - 1 || this.props.currentSlide === this.props.children.length - 1 && currentSlideIndex === 0)) {\n offset = -this.props.slideOffset;\n }\n\n var targetPosition = (this.props.slideWidth + this.props.cellSpacing) * currentSlideIndex;\n var alignmentOffset = getAlignmentOffset(currentSlideIndex, this.props);\n var relativePosition = positionValue - alignmentOffset;\n var startSlideIndex = Math.min(Math.abs(Math.floor(relativePosition / this.props.slideWidth)), this.props.slideCount - 1);\n\n if (this.props.wrapAround && currentSlideIndex !== startSlideIndex) {\n var slidesOutOfView = Math.max(this.props.slideCount - Math.ceil(this.props.frameWidth / this.props.slideWidth), // Total slides in view\n 0);\n var slidesOutOfViewBefore = Math.floor(slidesOutOfView / 2);\n var slidesOutOfViewAfter = slidesOutOfView - slidesOutOfViewBefore;\n var direction = getSlideDirection(startSlideIndex, this.props.currentSlide, this.props.isWrappingAround);\n\n if (direction < 0) {\n var temp = slidesOutOfViewBefore;\n slidesOutOfViewBefore = slidesOutOfViewAfter;\n slidesOutOfViewAfter = temp;\n }\n\n var slidesInViewBefore = Math.ceil(alignmentOffset / this.props.slideWidth);\n var slidesBefore = slidesInViewBefore + slidesOutOfViewBefore;\n var slidesInViewAfter = Math.ceil((this.props.frameWidth - alignmentOffset) / this.props.slideWidth) - 1;\n var slidesAfter = slidesInViewAfter + slidesOutOfViewAfter;\n var distanceFromStart = Math.abs(startSlideIndex - currentSlideIndex);\n\n if (currentSlideIndex < startSlideIndex) {\n if (distanceFromStart > slidesBefore) {\n targetPosition = (this.props.slideWidth + this.props.cellSpacing) * (this.props.slideCount + currentSlideIndex);\n }\n } else if (distanceFromStart > slidesAfter) {\n targetPosition = (this.props.slideWidth + this.props.cellSpacing) * (this.props.slideCount - currentSlideIndex) * -1;\n }\n }\n\n return targetPosition + offset || 0;\n }\n /* eslint-enable complexity */\n\n }, {\n key: \"formatChildren\",\n value: function formatChildren(children) {\n var _this2 = this;\n\n var _this$props = this.props,\n top = _this$props.top,\n left = _this$props.left,\n currentSlide = _this$props.currentSlide,\n slidesToShow = _this$props.slidesToShow,\n vertical = _this$props.vertical;\n var positionValue = vertical ? top : left;\n return React.Children.map(children, function (child, index) {\n var isVisible = isFullyVisible(index, _this2.props);\n var inert = isVisible ? {} : {\n inert: 'true'\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"slider-slide\".concat(getSlideClassName(index, currentSlide, slidesToShow)),\n \"aria-label\": \"slide \".concat(index + 1, \" of \").concat(children.length),\n role: \"group\",\n style: _this2.getSlideStyles(index, positionValue),\n key: index,\n onClick: handleSelfFocus,\n tabIndex: -1\n }, inert), child);\n });\n }\n }, {\n key: \"getSlideStyles\",\n value: function getSlideStyles(index, positionValue) {\n var targetPosition = this.getSlideTargetPosition(index, positionValue);\n var transformScale = this.props.animation === 'zoom' && this.props.currentSlide !== index ? Math.max(Math.min(this.props.zoomScale, MAX_ZOOM_SCALE), MIN_ZOOM_SCALE) : 1.0;\n return {\n boxSizing: 'border-box',\n display: this.props.vertical ? 'block' : 'inline-block',\n height: getSlideHeight(this.props),\n left: this.props.vertical ? 0 : targetPosition,\n listStyleType: 'none',\n marginBottom: this.props.vertical ? this.props.cellSpacing / 2 : 'auto',\n marginLeft: this.props.vertical ? 'auto' : this.props.cellSpacing / 2,\n marginRight: this.props.vertical ? 'auto' : this.props.cellSpacing / 2,\n marginTop: this.props.vertical ? this.props.cellSpacing / 2 : 'auto',\n MozBoxSizing: 'border-box',\n position: 'absolute',\n top: this.props.vertical ? targetPosition : 0,\n transform: \"scale(\".concat(transformScale, \")\"),\n transition: 'transform .4s linear',\n verticalAlign: 'top',\n width: this.props.vertical ? '100%' : this.props.slideWidth\n };\n }\n }, {\n key: \"getListStyles\",\n value: function getListStyles(styles) {\n var deltaX = styles.deltaX,\n deltaY = styles.deltaY;\n var listWidth = this.props.slideWidth * React.Children.count(this.props.children);\n var spacingOffset = this.props.cellSpacing * React.Children.count(this.props.children);\n var transform = \"translate3d(\".concat(deltaX, \"px, \").concat(deltaY, \"px, 0)\");\n var transition = this.props.heightMode === 'current' && this.props.hasInteraction ? 'height 0.2s ease-out' : '0s';\n return {\n boxSizing: 'border-box',\n cursor: this.props.dragging === true ? 'pointer' : 'inherit',\n display: 'block',\n height: this.props.vertical ? listWidth + spacingOffset : this.props.slideHeight,\n margin: this.props.vertical ? \"\".concat(this.props.cellSpacing / 2 * -1, \"px 0px\") : \"0px \".concat(this.props.cellSpacing / 2 * -1, \"px\"),\n padding: 0,\n position: 'relative',\n MozBoxSizing: 'border-box',\n msTransform: \"translate(\".concat(deltaX, \"px, \").concat(deltaY, \"px)\"),\n touchAction: \"pinch-zoom \".concat(this.props.vertical ? 'pan-x' : 'pan-y'),\n transform: transform,\n WebkitTransform: transform,\n width: 'auto',\n transition: transition\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.formatChildren(this.props.children);\n var deltaX = this.props.deltaX;\n var deltaY = this.props.deltaY;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-list\",\n style: this.getListStyles({\n deltaX: deltaX,\n deltaY: deltaY\n })\n }, children);\n }\n }]);\n\n return ScrollTransition;\n}(React.Component);\n\nexport { ScrollTransition as default };\nScrollTransition.propTypes = {\n animation: PropTypes.oneOf(['zoom']),\n cellAlign: PropTypes.string,\n cellSpacing: PropTypes.number,\n currentSlide: PropTypes.number,\n deltaX: PropTypes.number,\n deltaY: PropTypes.number,\n dragging: PropTypes.bool,\n frameWidth: PropTypes.number,\n hasInteraction: PropTypes.bool,\n heightMode: PropTypes.oneOf(['first', 'current', 'max']),\n isWrappingAround: PropTypes.bool,\n left: PropTypes.number,\n slideCount: PropTypes.number,\n slideHeight: PropTypes.number,\n slideOffset: PropTypes.number,\n slidesToScroll: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n slideWidth: PropTypes.number,\n top: PropTypes.number,\n vertical: PropTypes.bool,\n wrapAround: PropTypes.bool,\n zoomScale: PropTypes.number\n};\nScrollTransition.defaultProps = {\n cellAlign: 'left',\n cellSpacing: 0,\n currentSlide: 0,\n deltaX: 0,\n deltaY: 0,\n dragging: false,\n frameWidth: 0,\n heightMode: 'max',\n isWrappingAround: false,\n left: 0,\n slideCount: 0,\n slideHeight: 0,\n slidesToScroll: 1,\n slideWidth: 0,\n top: 0,\n vertical: false,\n wrapAround: false,\n zoomScale: 0.85\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getSlideHeight } from '../utilities/style-utilities';\nimport { handleSelfFocus, getSlideClassName } from '../utilities/utilities';\n\nvar FadeTransition = /*#__PURE__*/function (_React$Component) {\n _inherits(FadeTransition, _React$Component);\n\n var _super = _createSuper(FadeTransition);\n\n function FadeTransition(props) {\n var _this;\n\n _classCallCheck(this, FadeTransition);\n\n _this = _super.call(this, props);\n _this.fadeFromSlide = props.currentSlide;\n return _this;\n }\n\n _createClass(FadeTransition, [{\n key: \"formatChildren\",\n value: function formatChildren(children, opacity) {\n var _this2 = this;\n\n var _this$props = this.props,\n currentSlide = _this$props.currentSlide,\n slidesToShow = _this$props.slidesToShow;\n return React.Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-slide\".concat(getSlideClassName(index, currentSlide, slidesToShow)),\n style: _this2.getSlideStyles(index, opacity),\n key: index,\n \"aria-label\": \"slide \".concat(index + 1, \" of \").concat(children.length),\n role: \"group\",\n onClick: handleSelfFocus,\n tabIndex: -1\n }, child);\n });\n }\n }, {\n key: \"getSlideOpacityAndLeftMap\",\n value: function getSlideOpacityAndLeftMap(fadeFrom, fadeTo, fade) {\n // Figure out which position to fade to\n var fadeToPosition = fadeTo;\n\n if (fadeFrom > fade && fadeFrom === 0) {\n fadeToPosition = fadeFrom - this.props.slidesToShow;\n } else if (fadeFrom < fade && fadeFrom + this.props.slidesToShow > this.props.slideCount - 1) {\n fadeToPosition = fadeFrom + this.props.slidesToShow;\n } // Calculate opacity for active slides\n\n\n var opacity = {};\n\n if (fadeFrom === fadeTo) {\n opacity[fadeFrom] = 1;\n } else {\n var distance = fadeFrom - fadeToPosition;\n opacity[fadeFrom] = (fade - fadeToPosition) / distance;\n opacity[fadeTo] = (fadeFrom - fade) / distance;\n } // Calculate left for slides and merge in opacity\n\n\n var map = {};\n\n for (var i = 0; i < this.props.slidesToShow; i++) {\n map[fadeFrom + i] = {\n opacity: opacity[fadeFrom],\n left: this.props.slideWidth * i\n };\n map[fadeTo + i] = {\n opacity: opacity[fadeTo],\n left: this.props.slideWidth * i\n };\n }\n\n return map;\n }\n }, {\n key: \"getSlideStyles\",\n value: function getSlideStyles(index, data) {\n return {\n boxSizing: 'border-box',\n display: 'block',\n height: getSlideHeight(this.props),\n left: data[index] ? data[index].left : 0,\n listStyleType: 'none',\n marginBottom: 'auto',\n marginLeft: this.props.cellSpacing / 2,\n marginRight: this.props.cellSpacing / 2,\n marginTop: 'auto',\n MozBoxSizing: 'border-box',\n opacity: data[index] ? data[index].opacity : 0,\n position: 'absolute',\n top: 0,\n verticalAlign: 'top',\n visibility: data[index] ? 'inherit' : 'hidden',\n width: this.props.slideWidth\n };\n }\n }, {\n key: \"getContainerStyles\",\n value: function getContainerStyles() {\n var width = this.props.slideWidth * this.props.slidesToShow;\n return {\n boxSizing: 'border-box',\n cursor: this.props.dragging === true ? 'pointer' : 'inherit',\n display: 'block',\n height: this.props.slideHeight,\n margin: this.props.vertical ? \"\".concat(this.props.cellSpacing / 2 * -1, \"px 0px\") : \"0px \".concat(this.props.cellSpacing / 2 * -1, \"px\"),\n MozBoxSizing: 'border-box',\n padding: 0,\n touchAction: \"pinch-zoom \".concat(this.props.vertical ? 'pan-x' : 'pan-y'),\n width: width\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var fade = -(this.props.deltaX || this.props.deltaY) / this.props.slideWidth % this.props.slideCount;\n\n if (parseInt(fade) === fade) {\n this.fadeFromSlide = fade;\n }\n\n var opacityAndLeftMap = this.getSlideOpacityAndLeftMap(this.fadeFromSlide, this.props.currentSlide, fade);\n var children = this.formatChildren(this.props.children, opacityAndLeftMap);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-list\",\n style: this.getContainerStyles()\n }, children);\n }\n }]);\n\n return FadeTransition;\n}(React.Component);\n\nexport { FadeTransition as default };\nFadeTransition.propTypes = {\n cellSpacing: PropTypes.number,\n currentSlide: PropTypes.number,\n deltaX: PropTypes.number,\n deltaY: PropTypes.number,\n dragging: PropTypes.bool,\n heightMode: PropTypes.oneOf(['first', 'current', 'max']),\n isWrappingAround: PropTypes.bool,\n left: PropTypes.number,\n slideCount: PropTypes.number,\n slideHeight: PropTypes.number,\n slidesToShow: PropTypes.number,\n slideWidth: PropTypes.number,\n top: PropTypes.number,\n vertical: PropTypes.bool,\n wrapAround: PropTypes.bool\n};\nFadeTransition.defaultProps = {\n cellSpacing: 0,\n currentSlide: 0,\n deltaX: 0,\n deltaY: 0,\n dragging: false,\n heightMode: 'max',\n isWrappingAround: false,\n left: 0,\n slideCount: 0,\n slideHeight: 0,\n slidesToShow: 1,\n slideWidth: 0,\n top: 0,\n vertical: false,\n wrapAround: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getSlideHeight } from '../utilities/style-utilities';\nimport { handleSelfFocus } from '../utilities/utilities';\nvar MIN_ZOOM_SCALE = 0;\nvar MAX_ZOOM_SCALE = 1;\n\nvar ScrollTransition3D = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollTransition3D, _React$Component);\n\n var _super = _createSuper(ScrollTransition3D);\n\n function ScrollTransition3D(props) {\n var _this;\n\n _classCallCheck(this, ScrollTransition3D);\n\n _this = _super.call(this, props);\n _this.getListStyles = _this.getListStyles.bind(_assertThisInitialized(_this));\n return _this;\n }\n /* eslint-disable complexity */\n\n\n _createClass(ScrollTransition3D, [{\n key: \"getSlideTargetPosition\",\n value: function getSlideTargetPosition(index) {\n var targetPosition = 0;\n var offset = 0;\n\n if (index !== this.props.currentSlide) {\n var relativeDistanceToCurrentSlide = this.getRelativeDistanceToCurrentSlide(index);\n targetPosition = (this.props.slideWidth + this.props.cellSpacing) * relativeDistanceToCurrentSlide - this.getZoomOffsetFor(relativeDistanceToCurrentSlide);\n offset = 0;\n\n if (this.props.animation === 'zoom' && (this.props.currentSlide === index + 1 || this.props.currentSlide === 0 && index === this.props.children.length - 1)) {\n offset = this.props.slideOffset;\n } else if (this.props.animation === 'zoom' && (this.props.currentSlide === index - 1 || this.props.currentSlide === this.props.children.length - 1 && index === 0)) {\n offset = -this.props.slideOffset;\n }\n }\n\n return targetPosition + offset;\n }\n /* eslint-enable complexity */\n\n }, {\n key: \"formatChildren\",\n value: function formatChildren(children) {\n var _this2 = this;\n\n var _this$props = this.props,\n top = _this$props.top,\n left = _this$props.left,\n currentSlide = _this$props.currentSlide,\n slidesToShow = _this$props.slidesToShow,\n vertical = _this$props.vertical;\n var positionValue = vertical ? top : left;\n return React.Children.map(children, function (child, index) {\n var visible = _this2.getDistanceToCurrentSlide(index) <= slidesToShow / 2;\n var current = currentSlide === index;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-slide\".concat(visible ? ' slide-visible' : '').concat(current ? ' slide-current' : ''),\n style: _this2.getSlideStyles(index, positionValue),\n key: index,\n \"aria-label\": \"slide \".concat(index + 1, \" of \").concat(children.length),\n role: \"group\",\n onClick: handleSelfFocus,\n tabIndex: -1\n }, child);\n });\n }\n }, {\n key: \"getZoomOffsetFor\",\n value: function getZoomOffsetFor(relativeDistanceToCurrent) {\n if (relativeDistanceToCurrent === 0) {\n return 0;\n }\n\n var marginGeneratedByZoom = (1 - Math.pow(this.props.zoomScale, Math.abs(relativeDistanceToCurrent))) * this.props.slideWidth;\n var direction = relativeDistanceToCurrent < 0 ? -1 : 1;\n var result = marginGeneratedByZoom * direction + this.getZoomOffsetFor(relativeDistanceToCurrent < 0 ? relativeDistanceToCurrent + 1 : relativeDistanceToCurrent - 1);\n return result;\n }\n }, {\n key: \"getDistance\",\n value: function getDistance(index, referenceIndex) {\n return Math.abs(index - referenceIndex);\n }\n }, {\n key: \"getDistanceToCurrentSlide\",\n value: function getDistanceToCurrentSlide(index) {\n var _this$props2 = this.props,\n wrapAround = _this$props2.wrapAround,\n currentSlide = _this$props2.currentSlide,\n slideCount = _this$props2.slideCount;\n return wrapAround ? Math.min(Math.min(this.getDistance(index, 0) + this.getDistance(currentSlide, slideCount), this.getDistance(index, slideCount) + this.getDistance(currentSlide, 0)), this.getDistance(index, currentSlide)) : this.getDistance(index, currentSlide);\n }\n }, {\n key: \"getRelativeDistanceToCurrentSlide\",\n value: function getRelativeDistanceToCurrentSlide(index) {\n var _this$props3 = this.props,\n wrapAround = _this$props3.wrapAround,\n currentSlide = _this$props3.currentSlide,\n slideCount = _this$props3.slideCount;\n\n if (wrapAround) {\n var distanceByLeftEge = this.getDistance(index, 0) + this.getDistance(currentSlide, slideCount);\n var distanceByRightEdge = this.getDistance(index, slideCount) + this.getDistance(currentSlide, 0);\n var absoluteDirectDistance = this.getDistance(index, currentSlide);\n var minimumDistance = Math.min(Math.min(distanceByLeftEge, distanceByRightEdge), absoluteDirectDistance);\n\n switch (minimumDistance) {\n case absoluteDirectDistance:\n return index - currentSlide;\n\n case distanceByLeftEge:\n return distanceByLeftEge;\n\n case distanceByRightEdge:\n return -distanceByRightEdge;\n\n default:\n return 0;\n }\n } else {\n return index - currentSlide;\n }\n }\n }, {\n key: \"getTransformScale\",\n value: function getTransformScale(index) {\n return this.props.currentSlide !== index ? Math.max(Math.min(Math.pow(this.props.zoomScale, this.getDistanceToCurrentSlide(index)), MAX_ZOOM_SCALE), MIN_ZOOM_SCALE) : 1.0;\n }\n }, {\n key: \"getOpacityScale\",\n value: function getOpacityScale(index) {\n return this.props.currentSlide !== index ? Math.max(Math.min(Math.pow(this.props.opacityScale, this.getDistanceToCurrentSlide(index)), MAX_ZOOM_SCALE), MIN_ZOOM_SCALE) : 1.0;\n }\n }, {\n key: \"getSlideStyles\",\n value: function getSlideStyles(index, positionValue) {\n var _this$props4 = this.props,\n vertical = _this$props4.vertical,\n slideCount = _this$props4.slideCount,\n cellSpacing = _this$props4.cellSpacing,\n slideWidth = _this$props4.slideWidth;\n var targetPosition = this.getSlideTargetPosition(index, positionValue);\n var transformScale = this.getTransformScale(index);\n return {\n boxSizing: 'border-box',\n display: vertical ? 'block' : 'inline-block',\n height: getSlideHeight(this.props),\n left: vertical ? 0 : targetPosition,\n listStyleType: 'none',\n marginBottom: vertical ? cellSpacing / 2 : 'auto',\n marginLeft: vertical ? 'auto' : cellSpacing / 2,\n marginRight: vertical ? 'auto' : cellSpacing / 2,\n marginTop: vertical ? cellSpacing / 2 : 'auto',\n MozBoxSizing: 'border-box',\n opacity: this.getOpacityScale(index),\n position: 'absolute',\n top: vertical ? targetPosition : 0,\n transform: \"scale(\".concat(transformScale, \")\"),\n transition: 'left 0.4s ease-out, transform 0.4s ease-out, opacity 0.4s ease-out',\n verticalAlign: 'top',\n width: vertical ? '100%' : slideWidth,\n zIndex: slideCount - this.getDistanceToCurrentSlide(index)\n };\n }\n }, {\n key: \"getListStyles\",\n value: function getListStyles() {\n var listWidth = this.props.slideWidth * React.Children.count(this.props.children);\n var spacingOffset = this.props.cellSpacing * React.Children.count(this.props.children);\n return {\n boxSizing: 'border-box',\n cursor: this.props.dragging === true ? 'pointer' : 'inherit',\n height: this.props.vertical ? listWidth + spacingOffset : this.props.slideHeight,\n left: \"calc(50% - (\".concat(this.props.slideWidth, \"px / 2))\"),\n margin: this.props.vertical ? \"\".concat(this.props.cellSpacing / 2 * -1, \"px 0px\") : \"\".concat(this.props.slideListMargin, \"px \").concat(this.props.cellSpacing / 2 * -1, \"px\"),\n MozBoxSizing: 'border-box',\n padding: 0,\n position: 'relative',\n touchAction: \"pinch-zoom \".concat(this.props.vertical ? 'pan-x' : 'pan-y'),\n width: this.props.vertical ? 'auto' : '100%'\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.formatChildren(this.props.children);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-list\",\n style: this.getListStyles()\n }, children);\n }\n }]);\n\n return ScrollTransition3D;\n}(React.Component);\n\nexport { ScrollTransition3D as default };\nScrollTransition3D.propTypes = {\n cellSpacing: PropTypes.number,\n currentSlide: PropTypes.number,\n dragging: PropTypes.bool,\n heightMode: PropTypes.oneOf(['first', 'current', 'max']),\n isWrappingAround: PropTypes.bool,\n left: PropTypes.number,\n opacityScale: PropTypes.number,\n slideCount: PropTypes.number,\n slideHeight: PropTypes.number,\n slideListMargin: PropTypes.number,\n slideOffset: PropTypes.number,\n slidesToShow: PropTypes.number,\n slideWidth: PropTypes.number,\n top: PropTypes.number,\n vertical: PropTypes.bool,\n wrapAround: PropTypes.bool,\n zoomScale: PropTypes.number\n};\nScrollTransition3D.defaultProps = {\n cellSpacing: 0,\n currentSlide: 0,\n dragging: false,\n heightMode: 'max',\n isWrappingAround: false,\n left: 0,\n opacityScale: 0.65,\n slideCount: 0,\n slideHeight: 0,\n slideListMargin: 0,\n slidesToShow: 3,\n slideWidth: 0,\n top: 0,\n vertical: false,\n wrapAround: true,\n zoomScale: 0.75\n};","import ScrollTransition from './transitions/scroll-transition';\nimport FadeTransition from './transitions/fade-transition';\nimport ScrollTransition3D from './transitions/3d-scroll-transition';\nexport default {\n fade: FadeTransition,\n scroll: ScrollTransition,\n scroll3d: ScrollTransition3D\n};","import React from 'react';\n\nvar AnnounceSlide = function AnnounceSlide(_ref) {\n var message = _ref.message;\n var styles = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n padding: 0,\n margin: '-1px',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n border: 0\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\",\n style: styles,\n tabIndex: -1\n }, message);\n};\n\nexport var defaultRenderAnnounceSlideMessage = function defaultRenderAnnounceSlideMessage(_ref2) {\n var currentSlide = _ref2.currentSlide,\n slideCount = _ref2.slideCount;\n return \"Slide \".concat(currentSlide + 1, \" of \").concat(slideCount);\n};\nexport default AnnounceSlide;","import React from 'react';\nexport var getValidChildren = function getValidChildren(children) {\n // .toArray automatically removes invalid React children\n return React.Children.toArray(children);\n};\n\nvar getMax = function getMax(a, b) {\n return a > b ? a : b;\n};\n\nvar getHeightOfSlide = function getHeightOfSlide(slide) {\n if (!slide) {\n return 0;\n }\n\n if (slide.children && slide.children.length > 0) {\n var totalHeight = 0;\n\n for (var i = 0; i < slide.children.length; ++i) {\n totalHeight += slide.children[i].offsetHeight;\n }\n\n return totalHeight;\n } else {\n return slide.offsetHeight;\n }\n}; // end - is exclusive\n\n\nexport var findMaxHeightSlideInRange = function findMaxHeightSlideInRange(slides, start, end) {\n var maxHeight = 0;\n\n if (slides.length === 0 || start < 0 || end < 0 || start > slides.length - 1 || end > slides.length) {\n return maxHeight;\n }\n\n if (start < end) {\n for (var i = start; i < end; i++) {\n maxHeight = getMax(getHeightOfSlide(slides[i]), maxHeight);\n }\n } else if (start > end) {\n // Finding max in a wrap around\n for (var _i = start; _i < slides.length; _i++) {\n maxHeight = getMax(getHeightOfSlide(slides[_i]), maxHeight);\n }\n\n for (var _i2 = 0; _i2 < end; _i2++) {\n maxHeight = getMax(getHeightOfSlide(slides[_i2]), maxHeight);\n }\n } else {\n // start === end\n maxHeight = getHeightOfSlide(slides[start]);\n }\n\n return maxHeight;\n};\n\nvar ensureIndexInBounds = function ensureIndexInBounds(index, slideCount) {\n var newIndex = index;\n\n while (newIndex < 0) {\n newIndex += slideCount;\n }\n\n while (newIndex > slideCount) {\n newIndex -= slideCount;\n }\n\n return newIndex;\n};\n\nexport var findCurrentHeightSlide = function findCurrentHeightSlide(currentSlide, slidesToShow, alignment, wrapAround, slides) {\n if (slidesToShow > 1) {\n var startIndex = currentSlide;\n var lastIndex = Math.min(Math.ceil(slidesToShow) + currentSlide, slides.length);\n var offset = alignment === 'center' ? (slidesToShow - 1) / 2 : slidesToShow - 1;\n\n switch (alignment) {\n case 'center':\n startIndex = Math.floor(currentSlide - offset);\n lastIndex = Math.ceil(currentSlide + offset) + 1;\n break;\n\n case 'right':\n startIndex = Math.floor(currentSlide - offset);\n lastIndex = currentSlide + 1;\n break;\n\n case 'left':\n startIndex = currentSlide;\n lastIndex = Math.ceil(currentSlide + offset) + 1;\n break;\n } // inclusive\n\n\n startIndex = wrapAround ? ensureIndexInBounds(startIndex, slides.length) : Math.max(startIndex, 0); // exclusive\n\n lastIndex = wrapAround ? ensureIndexInBounds(lastIndex, slides.length) : Math.min(lastIndex, slides.length);\n return findMaxHeightSlideInRange(slides, startIndex, lastIndex);\n } else {\n return getHeightOfSlide(slides[currentSlide]);\n }\n};\nexport var calculateSlideHeight = function calculateSlideHeight(props, state) {\n var childNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var heightMode = props.heightMode,\n vertical = props.vertical,\n initialSlideHeight = props.initialSlideHeight,\n wrapAround = props.wrapAround;\n var slidesToShow = state.slidesToShow,\n currentSlide = state.currentSlide,\n cellAlign = state.cellAlign;\n var firstSlide = childNodes[0];\n\n if (firstSlide && heightMode === 'first') {\n return vertical ? getHeightOfSlide(firstSlide) * slidesToShow : getHeightOfSlide(firstSlide);\n }\n\n if (heightMode === 'max') {\n return findMaxHeightSlideInRange(childNodes, 0, childNodes.length);\n }\n\n if (heightMode === 'current') {\n return findCurrentHeightSlide(currentSlide, slidesToShow, cellAlign, wrapAround, childNodes);\n }\n\n return initialSlideHeight || 100;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport 'wicg-inert';\nimport PropTypes from 'prop-types';\nimport ExecutionEnvironment from 'exenv';\nimport Animate from 'react-move/Animate';\nimport * as easing from 'd3-ease';\nimport { PagingDots, PreviousButton, NextButton } from './default-controls';\nimport Transitions from './all-transitions';\nimport AnnounceSlide, { defaultRenderAnnounceSlideMessage } from './announce-slide';\nimport { addAccessibility, addEvent, removeEvent, getPropsByTransitionMode, swipeDirection, shouldUpdate, calcSomeInitialState } from './utilities/utilities';\nimport { getAlignmentOffset, getImgTagStyles, getDecoratorStyles, getSliderStyles, getFrameStyles, getTransitionProps } from './utilities/style-utilities';\nimport { getValidChildren, calculateSlideHeight } from './utilities/bootstrapping-utilities';\n\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n var _super = _createSuper(Carousel);\n\n function Carousel() {\n var _this;\n\n _classCallCheck(this, Carousel);\n\n _this = _super.apply(this, arguments);\n _this.displayName = 'Carousel';\n _this.clickDisabled = false;\n _this.latestTransitioningIndex = null;\n _this.timers = [];\n _this.touchObject = {};\n _this.controlsMap = [{\n funcName: 'renderTopLeftControls',\n key: 'TopLeft'\n }, {\n funcName: 'renderTopCenterControls',\n key: 'TopCenter'\n }, {\n funcName: 'renderTopRightControls',\n key: 'TopRight'\n }, {\n funcName: 'renderCenterLeftControls',\n key: 'CenterLeft'\n }, {\n funcName: 'renderCenterCenterControls',\n key: 'CenterCenter'\n }, {\n funcName: 'renderCenterRightControls',\n key: 'CenterRight'\n }, {\n funcName: 'renderBottomLeftControls',\n key: 'BottomLeft'\n }, {\n funcName: 'renderBottomCenterControls',\n key: 'BottomCenter'\n }, {\n funcName: 'renderBottomRightControls',\n key: 'BottomRight'\n }];\n _this.keyCodeConfig = {\n nextSlide: [39, 68, 38, 87],\n previousSlide: [37, 65, 40, 83],\n firstSlide: [81],\n lastSlide: [69],\n pause: [32]\n };\n _this.childNodesMutationObs = null;\n _this.state = _objectSpread({\n currentSlide: _this.props.slideIndex,\n dragging: false,\n easing: _this.props.disableAnimation ? '' : easing.easeCircleOut,\n hasInteraction: false,\n // to remove animation from the initial slide on the page load when non-default slideIndex is used\n isWrappingAround: false,\n left: 0,\n resetWrapAroundPosition: false,\n slideCount: getValidChildren(_this.props.children).length,\n top: 0,\n wrapToIndex: null,\n hasFocus: false\n }, calcSomeInitialState(_this.props));\n _this.autoplayIterator = _this.autoplayIterator.bind(_assertThisInitialized(_this));\n _this.calcSlideHeightAndWidth = _this.calcSlideHeightAndWidth.bind(_assertThisInitialized(_this));\n _this.getChildNodes = _this.getChildNodes.bind(_assertThisInitialized(_this));\n _this.getMouseEvents = _this.getMouseEvents.bind(_assertThisInitialized(_this));\n _this.getOffsetDeltas = _this.getOffsetDeltas.bind(_assertThisInitialized(_this));\n _this.getTargetLeft = _this.getTargetLeft.bind(_assertThisInitialized(_this));\n _this.getTouchEvents = _this.getTouchEvents.bind(_assertThisInitialized(_this));\n _this.blockEvent = _this.blockEvent.bind(_assertThisInitialized(_this));\n _this.goToSlide = _this.goToSlide.bind(_assertThisInitialized(_this));\n _this.handleFocus = _this.handleFocus.bind(_assertThisInitialized(_this));\n _this.handleBlur = _this.handleBlur.bind(_assertThisInitialized(_this));\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind(_assertThisInitialized(_this));\n _this.handleMouseOut = _this.handleMouseOut.bind(_assertThisInitialized(_this));\n _this.handleMouseOver = _this.handleMouseOver.bind(_assertThisInitialized(_this));\n _this.handleSwipe = _this.handleSwipe.bind(_assertThisInitialized(_this));\n _this.nextSlide = _this.nextSlide.bind(_assertThisInitialized(_this));\n _this.onResize = _this.onResize.bind(_assertThisInitialized(_this));\n _this.onVisibilityChange = _this.onVisibilityChange.bind(_assertThisInitialized(_this));\n _this.previousSlide = _this.previousSlide.bind(_assertThisInitialized(_this));\n _this.renderControls = _this.renderControls.bind(_assertThisInitialized(_this));\n _this.resetAutoplay = _this.resetAutoplay.bind(_assertThisInitialized(_this));\n _this.setDimensions = _this.setDimensions.bind(_assertThisInitialized(_this));\n _this.setLeft = _this.setLeft.bind(_assertThisInitialized(_this));\n _this.setSlideHeightAndWidth = _this.setSlideHeightAndWidth.bind(_assertThisInitialized(_this));\n _this.startAutoplay = _this.startAutoplay.bind(_assertThisInitialized(_this));\n _this.stopAutoplay = _this.stopAutoplay.bind(_assertThisInitialized(_this));\n _this.establishChildNodesMutationObserver = _this.establishChildNodesMutationObserver.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Carousel, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // see https://github.com/facebook/react/issues/3417#issuecomment-121649937\n this.mounted = true;\n this.setLeft();\n this.setDimensions();\n this.bindEvents();\n this.establishChildNodesMutationObserver();\n\n if (this.props.autoplay) {\n this.startAutoplay();\n }\n\n var keyCodeConfig = _extends({}, this.keyCodeConfig, this.props.keyCodeConfig);\n\n this.keyCodeMap = this.getKeyCodeMap(keyCodeConfig);\n this.getLockScrollEvents().lockTouchScroll();\n this.initializeCarouselHeight();\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var slideChanged = prevState.currentSlide !== this.state.currentSlide;\n var heightModeChanged = prevProps.heightMode !== this.props.heightMode;\n var axisChanged = prevProps.vertical !== this.props.vertical;\n var childrenChanged = prevProps.children !== this.props.children;\n\n if (axisChanged) {\n this.onResize();\n } else if (slideChanged || heightModeChanged) {\n var image = this.getCurrentChildNodeImg();\n\n if (image) {\n image.addEventListener('load', this.setSlideHeightAndWidth);\n image.removeEventListener('load', this.setSlideHeightAndWidth);\n } else {\n this.setSlideHeightAndWidth();\n }\n }\n\n if (this.state.isWrappingAround) {\n this.isWrapped = true;\n }\n\n var prevSlideCount = getValidChildren(prevProps.children).length;\n var slideCount = getValidChildren(this.props.children).length;\n var slideCountChanged = prevSlideCount !== slideCount;\n\n if (slideCountChanged) {\n this.setState({\n slideCount: slideCount,\n currentSlide: this.props.slideIndex\n });\n }\n\n var _this$calcSlideHeight = this.calcSlideHeightAndWidth(),\n slideHeight = _this$calcSlideHeight.slideHeight;\n\n var heightMismatches = slideHeight !== prevState.slideHeight;\n\n if (this.mounted && heightMismatches) {\n this.setDimensions();\n } else {\n var updateDimensions = slideCountChanged || shouldUpdate(prevProps, this.props, ['cellSpacing', 'vertical', 'slideWidth', 'slideHeight', 'heightMode', 'slidesToScroll', 'slidesToShow', 'transitionMode', 'cellAlign']);\n\n if (updateDimensions) {\n this.setDimensions(this.props);\n }\n }\n\n if (childrenChanged) {\n this.initializeCarouselHeight();\n }\n\n if (slideCountChanged && slideCount <= this.state.currentSlide) {\n this.goToSlide(Math.max(slideCount - 1, 0), this.props);\n } else if (prevProps.slideIndex !== this.props.slideIndex && this.props.slideIndex !== this.state.currentSlide && !this.state.isWrappingAround) {\n this.goToSlide(this.props.slideIndex, this.props);\n }\n\n if (prevProps.autoplay !== this.props.autoplay) {\n if (this.props.autoplay) {\n this.startAutoplay();\n } else {\n this.stopAutoplay();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEvents();\n this.disconnectChildNodesMutationObserver();\n this.stopAutoplay(); // see https://github.com/facebook/react/issues/3417#issuecomment-121649937\n\n this.mounted = false;\n\n for (var i = 0; i < this.timers.length; i++) {\n clearTimeout(this.timers[i]);\n }\n\n this.getLockScrollEvents().unlockTouchScroll();\n }\n }, {\n key: \"initializeCarouselHeight\",\n value: function initializeCarouselHeight() {\n var _this2 = this;\n\n var heightCheckDelay = 200;\n\n var initializeHeight = function initializeHeight(delay) {\n _this2.timers.push(setTimeout(function () {\n // If slideHeight is greater than zero and matches calculated slideHeight,\n // assume the app has been initialized. If not,\n // keep trying to set dimensions until things work.\n var _this2$calcSlideHeigh = _this2.calcSlideHeightAndWidth(),\n slideHeight = _this2$calcSlideHeigh.slideHeight;\n\n if (_this2.state.slideHeight > 0 && _this2.state.slideHeight === slideHeight) {\n return;\n }\n\n _this2.setDimensions(); // Increase delay per attempt so the checks\n // slowly decrease if content is taking forever to load.\n\n\n initializeHeight(delay + heightCheckDelay);\n }, delay));\n };\n\n initializeHeight(heightCheckDelay);\n }\n }, {\n key: \"establishChildNodesMutationObserver\",\n value: function establishChildNodesMutationObserver() {\n var _this3 = this;\n\n var childNodes = this.getChildNodes();\n\n if (childNodes.length && 'MutationObserver' in window) {\n this.childNodesMutationObs = new MutationObserver(function () {\n _this3.setSlideHeightAndWidth();\n });\n\n var observeChildNodeMutation = function observeChildNodeMutation(node) {\n _this3.childNodesMutationObs.observe(node, {\n attributeFilter: ['style'],\n attributeOldValue: false,\n attributes: true,\n characterData: false,\n characterDataOldValue: false,\n childList: false,\n subtree: false\n });\n };\n\n var childNodesArray = Array.from(childNodes);\n\n for (var _i = 0, _childNodesArray = childNodesArray; _i < _childNodesArray.length; _i++) {\n var childNode = _childNodesArray[_i];\n observeChildNodeMutation(childNode);\n }\n }\n }\n }, {\n key: \"disconnectChildNodesMutationObserver\",\n value: function disconnectChildNodesMutationObserver() {\n if (this.childNodesMutationObs instanceof MutationObserver) {\n this.childNodesMutationObs.disconnect();\n }\n }\n }, {\n key: \"blockEvent\",\n value: function blockEvent(e) {\n if (this.state.dragging) {\n var direction = swipeDirection(this.touchObject.startX, e.touches[0].pageX, this.touchObject.startY, e.touches[0].pageY, this.props.vertical);\n\n if (direction !== 0) {\n e.preventDefault();\n }\n }\n }\n }, {\n key: \"getLockScrollEvents\",\n value: function getLockScrollEvents() {\n var _this4 = this;\n\n var lockTouchScroll = function lockTouchScroll() {\n document.addEventListener('touchmove', _this4.blockEvent, {\n passive: false\n });\n };\n\n var unlockTouchScroll = function unlockTouchScroll() {\n document.removeEventListener('touchmove', _this4.blockEvent, {\n passive: false\n });\n };\n\n return {\n lockTouchScroll: lockTouchScroll,\n unlockTouchScroll: unlockTouchScroll\n };\n }\n }, {\n key: \"getTouchEvents\",\n value: function getTouchEvents() {\n var _this5 = this;\n\n if (this.props.swiping === false) {\n return {\n onTouchStart: this.handleMouseOver,\n onTouchEnd: this.handleMouseOut\n };\n }\n\n return {\n onTouchStart: function onTouchStart(e) {\n _this5.touchObject = {\n startX: e.touches[0].pageX,\n startY: e.touches[0].pageY\n };\n\n _this5.handleMouseOver();\n\n _this5.setState({\n dragging: true\n });\n },\n onTouchMove: function onTouchMove(e) {\n var direction = swipeDirection(_this5.touchObject.startX, e.touches[0].pageX, _this5.touchObject.startY, e.touches[0].pageY, _this5.props.vertical);\n var length = _this5.props.vertical ? Math.round(Math.sqrt(Math.pow(e.touches[0].pageY - _this5.touchObject.startY, 2))) : Math.round(Math.sqrt(Math.pow(e.touches[0].pageX - _this5.touchObject.startX, 2)));\n\n if (length >= 10) {\n if (_this5.clickDisabled === false) _this5.props.onDragStart(e);\n _this5.clickDisabled = true;\n }\n\n _this5.touchObject = {\n startX: _this5.touchObject.startX,\n startY: _this5.touchObject.startY,\n endX: e.touches[0].pageX,\n endY: e.touches[0].pageY,\n length: length,\n direction: direction\n };\n\n _this5.setState({\n left: _this5.props.vertical ? 0 : _this5.getTargetLeft(_this5.touchObject.length * _this5.touchObject.direction),\n top: _this5.props.vertical ? _this5.getTargetLeft(_this5.touchObject.length * _this5.touchObject.direction) : 0\n });\n },\n onTouchEnd: function onTouchEnd(e) {\n _this5.handleSwipe(e);\n\n _this5.handleMouseOut();\n },\n onTouchCancel: function onTouchCancel(e) {\n _this5.handleSwipe(e);\n }\n };\n }\n }, {\n key: \"getMouseEvents\",\n value: function getMouseEvents() {\n var _this6 = this;\n\n if (this.props.dragging === false) {\n return {\n onMouseOver: this.handleMouseOver,\n onMouseOut: this.handleMouseOut\n };\n }\n\n return {\n onMouseOver: this.handleMouseOver,\n onMouseOut: this.handleMouseOut,\n onMouseDown: function onMouseDown(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n _this6.touchObject = {\n startX: e.clientX,\n startY: e.clientY\n };\n\n _this6.setState({\n dragging: true\n });\n },\n onMouseMove: function onMouseMove(e) {\n if (!_this6.state.dragging) {\n return;\n }\n\n var direction = swipeDirection(_this6.touchObject.startX, e.clientX, _this6.touchObject.startY, e.clientY, _this6.props.vertical);\n\n if (direction !== 0) {\n e.preventDefault();\n }\n\n var length = _this6.props.vertical ? Math.round(Math.sqrt(Math.pow(e.clientY - _this6.touchObject.startY, 2))) : Math.round(Math.sqrt(Math.pow(e.clientX - _this6.touchObject.startX, 2))); // prevents disabling click just because mouse moves a fraction of a pixel\n\n if (length >= 10) {\n if (_this6.clickDisabled === false) _this6.props.onDragStart(e);\n _this6.clickDisabled = true;\n }\n\n _this6.touchObject = {\n startX: _this6.touchObject.startX,\n startY: _this6.touchObject.startY,\n endX: e.clientX,\n endY: e.clientY,\n length: length,\n direction: direction\n };\n\n _this6.setState({\n left: _this6.props.vertical ? 0 : _this6.getTargetLeft(_this6.touchObject.length * _this6.touchObject.direction),\n top: _this6.props.vertical ? _this6.getTargetLeft(_this6.touchObject.length * _this6.touchObject.direction) : 0\n });\n },\n onMouseUp: function onMouseUp(e) {\n if (_this6.touchObject.length === 0 || _this6.touchObject.length === undefined) {\n _this6.setState({\n dragging: false\n });\n\n return;\n }\n\n _this6.handleSwipe(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n if (!_this6.state.dragging) {\n return;\n }\n\n _this6.handleSwipe(e);\n }\n };\n }\n }, {\n key: \"pauseAutoplay\",\n value: function pauseAutoplay() {\n if (this.props.autoplay) {\n this.autoplayPaused = true;\n this.stopAutoplay();\n }\n }\n }, {\n key: \"unpauseAutoplay\",\n value: function unpauseAutoplay() {\n if (this.props.autoplay && this.autoplayPaused) {\n this.startAutoplay();\n this.autoplayPaused = null;\n }\n }\n }, {\n key: \"handleMouseOver\",\n value: function handleMouseOver() {\n if (this.props.pauseOnHover) {\n this.pauseAutoplay();\n }\n }\n }, {\n key: \"handleMouseOut\",\n value: function handleMouseOut() {\n if (this.autoplayPaused) {\n this.unpauseAutoplay();\n }\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.setState({\n hasFocus: true\n });\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n hasFocus: false\n });\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n if (this.clickDisabled === true) {\n if (event.metaKey || event.shiftKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (event.nativeEvent) {\n event.nativeEvent.stopPropagation();\n }\n }\n }\n }, {\n key: \"handleSwipe\",\n value: function handleSwipe() {\n var _this7 = this;\n\n var slidesToShow = this.state.slidesToShow;\n\n if (this.props.slidesToScroll === 'auto') {\n slidesToShow = this.state.slidesToScroll;\n }\n\n var touchLength = this.touchObject.length || 0; // touchLength must be longer than 1/5 the slideWidth / slidesToShow\n // for swiping to be initiated\n\n if (touchLength > this.state.slideWidth / slidesToShow / 5) {\n if (this.touchObject.direction === 1) {\n if (this.state.currentSlide + 1 >= this.state.slideCount && !this.props.wrapAround) {\n this.setState({\n easing: easing[this.props.edgeEasing]\n });\n } else {\n this.nextSlide();\n }\n } else if (this.touchObject.direction === -1) {\n if (this.state.currentSlide <= 0 && !this.props.wrapAround) {\n this.setState({\n easing: easing[this.props.edgeEasing]\n });\n } else {\n this.previousSlide();\n }\n }\n } else if (touchLength > 0) {\n this.goToSlide(this.state.currentSlide);\n } // wait for `handleClick` event before resetting clickDisabled\n\n\n this.timers.push(setTimeout(function () {\n _this7.clickDisabled = false;\n }, 0));\n this.touchObject = {};\n this.setState({\n dragging: false\n });\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(e) {\n if (this.state.hasFocus && this.props.enableKeyboardControls) {\n var actionName = this.keyCodeMap[e.keyCode];\n\n switch (actionName) {\n case 'nextSlide':\n this.nextSlide();\n break;\n\n case 'previousSlide':\n this.previousSlide();\n break;\n\n case 'firstSlide':\n this.goToSlide(0, this.props);\n break;\n\n case 'lastSlide':\n this.goToSlide(this.state.slideCount - 1, this.props);\n break;\n\n case 'pause':\n if (this.state.pauseOnHover && this.props.autoplay) {\n this.setState({\n pauseOnHover: false\n });\n this.pauseAutoplay();\n break;\n } else {\n this.setState({\n pauseOnHover: true\n });\n this.unpauseAutoplay();\n break;\n }\n\n }\n }\n }\n }, {\n key: \"getKeyCodeMap\",\n value: function getKeyCodeMap(keyCodeConfig) {\n var keyCodeMap = {};\n Object.keys(keyCodeConfig).forEach(function (actionName) {\n keyCodeConfig[actionName].forEach(function (keyCode) {\n return keyCodeMap[keyCode] = actionName;\n });\n });\n return keyCodeMap;\n }\n }, {\n key: \"autoplayIterator\",\n value: function autoplayIterator() {\n if (this.props.wrapAround) {\n if (this.props.autoplayReverse) {\n this.previousSlide();\n } else {\n this.nextSlide();\n }\n\n return;\n }\n\n if (this.props.autoplayReverse) {\n if (this.state.currentSlide !== 0) {\n this.previousSlide();\n } else {\n this.stopAutoplay();\n }\n } else if (this.state.currentSlide !== this.state.slideCount - this.state.slidesToShow) {\n this.nextSlide();\n } else {\n this.stopAutoplay();\n }\n }\n }, {\n key: \"startAutoplay\",\n value: function startAutoplay() {\n this.autoplayID = setInterval(this.autoplayIterator, this.props.autoplayInterval);\n }\n }, {\n key: \"resetAutoplay\",\n value: function resetAutoplay() {\n if (this.props.autoplay && !this.autoplayPaused) {\n this.stopAutoplay();\n this.startAutoplay();\n }\n }\n }, {\n key: \"stopAutoplay\",\n value: function stopAutoplay() {\n if (this.autoplayID) {\n clearInterval(this.autoplayID);\n }\n } // Animation Method\n\n }, {\n key: \"getTargetLeft\",\n value: function getTargetLeft(touchOffset, slide) {\n var target = slide || this.state.currentSlide;\n var offset = getAlignmentOffset(target, _objectSpread(_objectSpread({}, this.props), this.state));\n var left = this.state.slideWidth * target;\n var lastSlide = this.state.currentSlide > 0 && target + this.state.slidesToScroll >= this.state.slideCount;\n\n if (lastSlide && !this.props.wrapAround && this.props.scrollMode === 'remainder') {\n left = this.state.slideWidth * this.state.slideCount - this.state.frameWidth;\n offset = 0;\n offset -= this.props.cellSpacing * (this.state.slideCount - 1);\n }\n\n if (!isNaN(touchOffset)) {\n offset -= touchOffset;\n } else {\n offset -= 0;\n }\n\n return (left - offset) * -1;\n }\n }, {\n key: \"getOffsetDeltas\",\n value: function getOffsetDeltas() {\n var offset = 0;\n\n if (this.state.isWrappingAround) {\n offset = this.getTargetLeft(null, this.state.wrapToIndex);\n } else {\n offset = this.getTargetLeft(this.touchObject.length * this.touchObject.direction);\n }\n\n return {\n tx: [this.props.vertical ? 0 : offset],\n ty: [this.props.vertical ? offset : 0]\n };\n }\n }, {\n key: \"isEdgeSwiping\",\n value: function isEdgeSwiping() {\n var _this$state = this.state,\n currentSlide = _this$state.currentSlide,\n slideCount = _this$state.slideCount,\n slideWidth = _this$state.slideWidth,\n slideHeight = _this$state.slideHeight,\n slidesToShow = _this$state.slidesToShow;\n\n var _this$getOffsetDeltas = this.getOffsetDeltas(),\n tx = _this$getOffsetDeltas.tx,\n ty = _this$getOffsetDeltas.ty;\n\n var offset = getAlignmentOffset(currentSlide, _objectSpread(_objectSpread({}, this.props), this.state));\n\n if (this.props.vertical) {\n var rowHeight = slideHeight / slidesToShow;\n var slidesLeftToShow = slideCount - slidesToShow;\n var lastSlideLimit = rowHeight * slidesLeftToShow;\n var offsetTy = ty[0] - offset; // returns true if ty offset is outside first or last slide\n\n return offsetTy > 0 || -offsetTy > lastSlideLimit;\n }\n\n var offsetTx = tx[0] - offset; // returns true if tx offset is outside first or last slide\n\n return offsetTx > 0 || -offsetTx > slideWidth * (slideCount - 1);\n } // Action Methods\n\n }, {\n key: \"goToSlide\",\n value: function goToSlide(index, props) {\n var _this8 = this;\n\n if (props === undefined) {\n props = this.props;\n }\n\n this.latestTransitioningIndex = index;\n this.setState({\n hasInteraction: true,\n easing: easing[props.easing]\n });\n var previousSlide = this.state.currentSlide;\n\n if (index >= this.state.slideCount || index < 0) {\n if (!props.wrapAround) {\n return;\n }\n\n if (index >= this.state.slideCount) {\n props.beforeSlide(this.state.currentSlide, 0);\n this.setState(function (prevState) {\n return {\n left: props.vertical ? 0 : _this8.getTargetLeft(_this8.state.slideWidth, prevState.currentSlide),\n top: props.vertical ? _this8.getTargetLeft(_this8.state.slideWidth, prevState.currentSlide) : 0,\n currentSlide: 0,\n isWrappingAround: true,\n wrapToIndex: _this8.state.slideCount\n };\n }, function () {\n _this8.timers.push(setTimeout(function () {\n if (index === _this8.latestTransitioningIndex) {\n _this8.resetAutoplay();\n\n if (index !== previousSlide) {\n _this8.props.afterSlide(0);\n }\n }\n }, props.speed));\n });\n return;\n } else {\n var endSlide = index < 0 ? this.state.slideCount + index : this.state.slideCount - this.state.slidesToScroll;\n props.beforeSlide(this.state.currentSlide, endSlide);\n this.setState(function (prevState) {\n return {\n left: props.vertical ? 0 : _this8.getTargetLeft(0, prevState.currentSlide),\n top: props.vertical ? _this8.getTargetLeft(0, prevState.currentSlide) : 0,\n currentSlide: endSlide,\n isWrappingAround: true,\n wrapToIndex: index\n };\n }, function () {\n _this8.timers.push(setTimeout(function () {\n if (index === _this8.latestTransitioningIndex) {\n _this8.resetAutoplay();\n\n if (index !== previousSlide) {\n _this8.props.afterSlide(_this8.state.slideCount - 1);\n }\n }\n }, props.speed));\n });\n return;\n }\n }\n\n this.props.beforeSlide(this.state.currentSlide, index);\n this.setState({\n currentSlide: index\n }, function () {\n _this8.timers.push(setTimeout(function () {\n if (index === _this8.latestTransitioningIndex) {\n _this8.resetAutoplay();\n\n if (index !== previousSlide) {\n _this8.props.afterSlide(index);\n }\n }\n }, props.speed));\n });\n }\n }, {\n key: \"nextSlide\",\n value: function nextSlide() {\n var _this$state2 = this.state,\n slidesToScroll = _this$state2.slidesToScroll,\n currentSlide = _this$state2.currentSlide,\n slideWidth = _this$state2.slideWidth,\n slideCount = _this$state2.slideCount;\n var targetSlideIndex = currentSlide + slidesToScroll;\n var slidesToShow = this.state.slidesToShow;\n\n if (this.props.slidesToScroll === 'auto') {\n var swipeDistance = this.touchObject.length;\n\n if (swipeDistance > 0) {\n targetSlideIndex = Math.round(swipeDistance / slideWidth) + currentSlide;\n } else {\n slidesToShow = slidesToScroll;\n }\n }\n\n if (currentSlide >= slideCount - slidesToShow && !this.props.wrapAround && this.props.cellAlign === 'left') {\n return;\n }\n\n if (this.props.wrapAround) {\n this.goToSlide(targetSlideIndex);\n } else {\n if (this.props.slideWidth !== 1) {\n this.goToSlide(targetSlideIndex);\n return;\n }\n\n var offset = targetSlideIndex;\n var leftAlignSlideIndex = this.props.scrollMode === 'page' ? offset : Math.min(offset, slideCount - Math.floor(slidesToShow));\n var nextSlideIndex = this.props.cellAlign !== 'left' ? offset : leftAlignSlideIndex; // If nextSlideIndex is larger than last index, then\n // just navigate to last index\n\n this.goToSlide(Math.min(nextSlideIndex, slideCount - 1));\n }\n }\n }, {\n key: \"previousSlide\",\n value: function previousSlide() {\n var _this$state3 = this.state,\n slidesToScroll = _this$state3.slidesToScroll,\n slideWidth = _this$state3.slideWidth,\n currentSlide = _this$state3.currentSlide;\n var targetSlideIndex = currentSlide - slidesToScroll;\n var swipeDistance = this.touchObject.length;\n\n if (this.props.slidesToScroll === 'auto' && swipeDistance > 0) {\n targetSlideIndex = currentSlide - Math.round(swipeDistance / slideWidth);\n }\n\n if (currentSlide <= 0 && !this.props.wrapAround) {\n return;\n }\n\n if (this.props.wrapAround) {\n this.goToSlide(targetSlideIndex);\n } else {\n this.goToSlide(Math.max(0, targetSlideIndex));\n }\n } // Bootstrapping\n\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n if (ExecutionEnvironment.canUseDOM) {\n addEvent(window, 'resize', this.onResize);\n addEvent(document, 'visibilitychange', this.onVisibilityChange);\n addEvent(document, 'keydown', this.handleKeyPress);\n }\n }\n }, {\n key: \"onResize\",\n value: function onResize() {\n this.setDimensions(null, this.props.onResize);\n }\n }, {\n key: \"onVisibilityChange\",\n value: function onVisibilityChange() {\n if (document.hidden) {\n this.pauseAutoplay();\n } else {\n this.unpauseAutoplay();\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n if (ExecutionEnvironment.canUseDOM) {\n removeEvent(window, 'resize', this.onResize);\n removeEvent(document, 'visibilitychange', this.onVisibilityChange);\n removeEvent(document, 'keydown', this.handleKeyPress);\n }\n }\n }, {\n key: \"calcSlideHeightAndWidth\",\n value: function calcSlideHeightAndWidth(props) {\n // slide height\n props = props || this.props;\n var childNodes = this.getChildNodes();\n var slideHeight = calculateSlideHeight(props, this.state, childNodes); //slide width\n\n var _getPropsByTransition = getPropsByTransitionMode(props, ['slidesToShow']),\n slidesToShow = _getPropsByTransition.slidesToShow;\n\n var frame = this.frame;\n var slideWidth;\n\n if (this.props.animation === 'zoom') {\n slideWidth = frame.offsetWidth - frame.offsetWidth * 15 / 100;\n } else if (typeof props.slideWidth !== 'number') {\n slideWidth = parseInt(props.slideWidth);\n } else if (props.vertical) {\n slideWidth = slideHeight / slidesToShow * props.slideWidth;\n } else {\n slideWidth = frame.offsetWidth / slidesToShow * props.slideWidth;\n }\n\n if (!props.vertical) {\n slideWidth -= props.cellSpacing * ((100 - 100 / slidesToShow) / 100);\n }\n\n return {\n slideHeight: slideHeight,\n slideWidth: slideWidth\n };\n }\n }, {\n key: \"setSlideHeightAndWidth\",\n value: function setSlideHeightAndWidth() {\n var _this$calcSlideHeight2 = this.calcSlideHeightAndWidth(),\n slideHeight = _this$calcSlideHeight2.slideHeight,\n slideWidth = _this$calcSlideHeight2.slideWidth;\n\n if (slideHeight !== this.state.slideHeight || slideWidth !== this.state.slideWidth || this.isWrapped) {\n this.isWrapped = false;\n this.setState({\n slideHeight: slideHeight,\n slideWidth: slideWidth\n });\n }\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"setDimensions\",\n value: function setDimensions(props) {\n var stateCb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n props = props || this.props;\n\n var _getPropsByTransition2 = getPropsByTransitionMode(props, ['slidesToShow', 'cellAlign', 'scrollMode']),\n slidesToShow = _getPropsByTransition2.slidesToShow,\n cellAlign = _getPropsByTransition2.cellAlign,\n scrollMode = _getPropsByTransition2.scrollMode;\n\n var frame = this.frame;\n\n var _this$calcSlideHeight3 = this.calcSlideHeightAndWidth(props),\n slideHeight = _this$calcSlideHeight3.slideHeight,\n slideWidth = _this$calcSlideHeight3.slideWidth;\n\n var frameHeight = slideHeight + props.cellSpacing * (slidesToShow - 1);\n var frameWidth = props.vertical ? frameHeight : frame.offsetWidth;\n\n var _getPropsByTransition3 = getPropsByTransitionMode(props, ['slidesToScroll']),\n slidesToScroll = _getPropsByTransition3.slidesToScroll;\n\n if (slidesToScroll === 'auto' || scrollMode === 'page') {\n slidesToScroll = Math.floor(frameWidth / (slideWidth + props.cellSpacing));\n }\n\n if ((props.slideWidth !== 1 || props.cellSpacing > 0) && scrollMode === 'page' && cellAlign === 'left') {\n slidesToShow = slidesToScroll;\n }\n\n this.setState({\n frameWidth: frameWidth,\n slideHeight: slideHeight,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n slideWidth: slideWidth,\n cellAlign: cellAlign\n }, function () {\n stateCb();\n });\n }\n }, {\n key: \"getChildNodes\",\n value: function getChildNodes() {\n return this.frame.childNodes[0].childNodes;\n }\n }, {\n key: \"getCurrentChildNodeImg\",\n value: function getCurrentChildNodeImg() {\n var childNodes = this.getChildNodes();\n var currentChildNode = childNodes[this.props.slideIndex];\n return currentChildNode ? currentChildNode.getElementsByTagName('img')[0] : null;\n }\n }, {\n key: \"setLeft\",\n value: function setLeft() {\n var newLeft = this.props.vertical ? 0 : this.getTargetLeft();\n var newTop = this.props.vertical ? this.getTargetLeft() : 0;\n\n if (newLeft !== this.state.left || newTop !== this.state.top) {\n this.setState({\n left: newLeft,\n top: newTop\n });\n }\n }\n }, {\n key: \"renderControls\",\n value: function renderControls() {\n var _this9 = this;\n\n if (this.props.withoutControls) {\n return this.controlsMap.map(function () {\n return null;\n });\n } else {\n return this.controlsMap.map(function (_ref) {\n var funcName = _ref.funcName,\n key = _ref.key;\n var func = _this9.props[funcName];\n var controlChildren = func && typeof func === 'function' && func({\n cellAlign: _this9.props.cellAlign,\n cellSpacing: _this9.props.cellSpacing,\n currentSlide: _this9.state.currentSlide,\n defaultControlsConfig: _this9.props.defaultControlsConfig,\n frameWidth: _this9.state.frameWidth,\n goToSlide: function goToSlide(index) {\n return _this9.goToSlide(index);\n },\n left: _this9.state.left,\n nextSlide: function nextSlide() {\n return _this9.nextSlide();\n },\n previousSlide: function previousSlide() {\n return _this9.previousSlide();\n },\n scrollMode: _this9.props.scrollMode,\n slideCount: _this9.state.slideCount,\n slidesToScroll: _this9.state.slidesToScroll,\n slidesToShow: _this9.state.slidesToShow,\n slideWidth: _this9.state.slideWidth,\n top: _this9.state.top,\n vertical: _this9.props.vertical,\n wrapAround: _this9.props.wrapAround\n });\n return controlChildren && /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: [\"slider-control-\".concat(key.toLowerCase()), _this9.props.defaultControlsConfig.containerClassName || ''].join(' ').trim(),\n style: _objectSpread(_objectSpread({}, getDecoratorStyles(key)), _this9.props.getControlsContainerStyles(key))\n }, controlChildren);\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n var _this$state4 = this.state,\n currentSlide = _this$state4.currentSlide,\n slideCount = _this$state4.slideCount,\n frameWidth = _this$state4.frameWidth,\n hasInteraction = _this$state4.hasInteraction;\n var _this$props = this.props,\n disableAnimation = _this$props.disableAnimation,\n frameOverflow = _this$props.frameOverflow,\n framePadding = _this$props.framePadding,\n renderAnnounceSlideMessage = _this$props.renderAnnounceSlideMessage,\n slidesToShow = _this$props.slidesToShow,\n vertical = _this$props.vertical;\n var duration = this.state.dragging || !this.state.dragging && this.state.resetWrapAroundPosition && this.props.wrapAround || disableAnimation || !hasInteraction ? 0 : this.props.speed;\n var frameStyles = getFrameStyles(frameOverflow, vertical, framePadding, frameWidth);\n var touchEvents = this.getTouchEvents();\n var mouseEvents = this.getMouseEvents();\n var TransitionControl = Transitions[this.props.transitionMode];\n var validChildren = getValidChildren(this.props.children);\n\n var _this$getOffsetDeltas2 = this.getOffsetDeltas(),\n _this$getOffsetDeltas3 = _slicedToArray(_this$getOffsetDeltas2.tx, 1),\n startTx = _this$getOffsetDeltas3[0],\n _this$getOffsetDeltas4 = _slicedToArray(_this$getOffsetDeltas2.ty, 1),\n startTy = _this$getOffsetDeltas4[0];\n\n return /*#__PURE__*/React.createElement(\"section\", {\n className: ['slider', this.props.className || ''].join(' ').trim(),\n onFocus: this.handleFocus,\n \"aria-label\": \"carousel-slider\",\n role: \"region\",\n onBlur: this.handleBlur,\n ref: this.props.innerRef,\n tabIndex: 0,\n style: _extends({}, getSliderStyles(this.props.width, this.props.height), this.props.style)\n }, !this.props.autoplay && /*#__PURE__*/React.createElement(AnnounceSlide, {\n message: renderAnnounceSlideMessage({\n currentSlide: currentSlide,\n slideCount: slideCount\n })\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"slider-frame\",\n ref: function ref(frame) {\n return _this10.frame = frame;\n },\n style: frameStyles\n }, touchEvents, mouseEvents, {\n onClickCapture: this.handleClick\n }), /*#__PURE__*/React.createElement(Animate, {\n show: true,\n start: {\n tx: startTx,\n ty: startTy\n },\n update: function update() {\n var _this10$getOffsetDelt = _this10.getOffsetDeltas(),\n tx = _this10$getOffsetDelt.tx,\n ty = _this10$getOffsetDelt.ty;\n\n if (_this10.props.disableEdgeSwiping && !_this10.props.wrapAround && _this10.isEdgeSwiping()) {\n return {};\n } else {\n return {\n tx: tx,\n ty: ty,\n timing: {\n duration: duration,\n ease: _this10.state.easing\n },\n events: {\n end: function end() {\n var newLeft = _this10.props.vertical ? 0 : _this10.getTargetLeft();\n var newTop = _this10.props.vertical ? _this10.getTargetLeft() : 0;\n\n if (newLeft !== _this10.state.left || newTop !== _this10.state.top) {\n _this10.setState({\n left: newLeft,\n top: newTop,\n isWrappingAround: false,\n resetWrapAroundPosition: true\n }, function () {\n _this10.setState({\n resetWrapAroundPosition: false\n });\n });\n }\n }\n }\n };\n }\n }\n }, function (_ref2) {\n var tx = _ref2.tx,\n ty = _ref2.ty;\n return /*#__PURE__*/React.createElement(TransitionControl, _extends({}, getTransitionProps(_this10.props, _this10.state), {\n deltaX: tx,\n deltaY: ty\n }), addAccessibility(validChildren, slidesToShow, currentSlide));\n })), this.renderControls(), this.props.autoGenerateStyleTag && /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\",\n dangerouslySetInnerHTML: {\n __html: getImgTagStyles()\n }\n }));\n }\n }]);\n\n return Carousel;\n}(React.Component);\n\nexport { Carousel as default };\nCarousel.propTypes = {\n afterSlide: PropTypes.func,\n animation: PropTypes.oneOf(['zoom']),\n autoGenerateStyleTag: PropTypes.bool,\n autoplay: PropTypes.bool,\n autoplayInterval: PropTypes.number,\n autoplayReverse: PropTypes.bool,\n beforeSlide: PropTypes.func,\n cellAlign: PropTypes.oneOf(['left', 'center', 'right']),\n cellSpacing: PropTypes.number,\n getControlsContainerStyles: PropTypes.func,\n defaultControlsConfig: PropTypes.shape({\n containerClassName: PropTypes.string,\n nextButtonClassName: PropTypes.string,\n nextButtonStyle: PropTypes.object,\n nextButtonText: PropTypes.string,\n prevButtonClassName: PropTypes.string,\n prevButtonStyle: PropTypes.object,\n prevButtonText: PropTypes.string,\n pagingDotsContainerClassName: PropTypes.string,\n pagingDotsClassName: PropTypes.string,\n pagingDotsStyle: PropTypes.object\n }),\n disableAnimation: PropTypes.bool,\n disableEdgeSwiping: PropTypes.bool,\n dragging: PropTypes.bool,\n easing: PropTypes.string,\n edgeEasing: PropTypes.string,\n enableKeyboardControls: PropTypes.bool,\n frameOverflow: PropTypes.string,\n framePadding: PropTypes.string,\n height: PropTypes.string,\n heightMode: PropTypes.oneOf(['first', 'current', 'max']),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.elementType\n })]),\n initialSlideHeight: PropTypes.number,\n initialSlideWidth: PropTypes.number,\n keyCodeConfig: PropTypes.exact({\n previousSlide: PropTypes.arrayOf(PropTypes.number),\n nextSlide: PropTypes.arrayOf(PropTypes.number),\n firstSlide: PropTypes.arrayOf(PropTypes.number),\n lastSlide: PropTypes.arrayOf(PropTypes.number),\n pause: PropTypes.arrayOf(PropTypes.number)\n }),\n onDragStart: PropTypes.func,\n onResize: PropTypes.func,\n opacityScale: PropTypes.number,\n pauseOnHover: PropTypes.bool,\n renderAnnounceSlideMessage: PropTypes.func,\n renderBottomCenterControls: PropTypes.func,\n renderBottomLeftControls: PropTypes.func,\n renderBottomRightControls: PropTypes.func,\n renderCenterCenterControls: PropTypes.func,\n renderCenterLeftControls: PropTypes.func,\n renderCenterRightControls: PropTypes.func,\n renderTopCenterControls: PropTypes.func,\n renderTopLeftControls: PropTypes.func,\n renderTopRightControls: PropTypes.func,\n scrollMode: PropTypes.oneOf(['page', 'remainder']),\n slideIndex: PropTypes.number,\n slideListMargin: PropTypes.number,\n slideOffset: PropTypes.number,\n slidesToScroll: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\n slidesToShow: PropTypes.number,\n slideWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n speed: PropTypes.number,\n swiping: PropTypes.bool,\n transitionMode: PropTypes.oneOf(['scroll', 'fade', 'scroll3d']),\n vertical: PropTypes.bool,\n width: PropTypes.string,\n withoutControls: PropTypes.bool,\n wrapAround: PropTypes.bool\n};\nCarousel.defaultProps = {\n afterSlide: function afterSlide() {},\n autoGenerateStyleTag: true,\n autoplay: false,\n autoplayInterval: 3000,\n autoplayReverse: false,\n beforeSlide: function beforeSlide() {},\n cellAlign: 'left',\n cellSpacing: 0,\n getControlsContainerStyles: function getControlsContainerStyles() {},\n defaultControlsConfig: {},\n disableAnimation: false,\n disableEdgeSwiping: false,\n dragging: true,\n easing: 'easeCircleOut',\n edgeEasing: 'easeElasticOut',\n enableKeyboardControls: false,\n frameOverflow: 'hidden',\n framePadding: '0px',\n height: 'inherit',\n heightMode: 'max',\n keyCodeConfig: {},\n onDragStart: function onDragStart() {},\n onResize: function onResize() {},\n pauseOnHover: true,\n renderAnnounceSlideMessage: defaultRenderAnnounceSlideMessage,\n renderBottomCenterControls: function renderBottomCenterControls(props) {\n return /*#__PURE__*/React.createElement(PagingDots, props);\n },\n renderCenterLeftControls: function renderCenterLeftControls(props) {\n return /*#__PURE__*/React.createElement(PreviousButton, props);\n },\n renderCenterRightControls: function renderCenterRightControls(props) {\n return /*#__PURE__*/React.createElement(NextButton, props);\n },\n scrollMode: 'remainder',\n slideIndex: 0,\n slideListMargin: 10,\n slideOffset: 25,\n slidesToScroll: 1,\n slidesToShow: 1,\n slideWidth: 1,\n speed: 500,\n style: {},\n swiping: true,\n transitionMode: 'scroll',\n vertical: false,\n width: '100%',\n withoutControls: false,\n wrapAround: false\n};\nexport { NextButton, PreviousButton, PagingDots };","import styled, { css } from 'styled-components';\n\n// @ts-ignore\nimport svg from './arrow.svg';\n\nexport const Wrapper = styled.div`\n width: fit-content;\n height: 30px;\n opacity: 0.2;\n transition: opacity 0.2s ease-in;\n cursor: pointer;\n \n :hover {\n opacity: 1;\n }\n`;\n\nexport const ArrowSvg = styled.img.attrs({\n src: svg,\n})<{ type?: 'left' | 'right' }>`\n height: 100%;\n ${({ type }) => type === 'right' && css`transform: rotate(180deg);`}\n`;\n","import styled, { CSSObject, keyframes } from 'styled-components';\n\nimport { COLORS } from '../../../assets/js/constants';\n\nexport interface ICustomDotsStyles {\n dotsContainer?: CSSObject,\n dot?: CSSObject,\n dotContainer?: CSSObject,\n activeDot?: CSSObject,\n}\n\nexport const Dot = styled.div<{ active?: boolean, customStyles?: ICustomDotsStyles }>`\n height: 100%;\n width: 100%;\n border-radius: 2px;\n background: ${COLORS.black};\n opacity: 0.1;\n transition: opacity .3s ease;\n ${p => p.customStyles?.dot ?? ''};\n\n &:hover {\n opacity: ${({ active }) => active ? 1 : 0.45};\n }\n`;\n\nexport const DotContainer = styled.div<{ active?: boolean, customStyles?: ICustomDotsStyles }>`\n position: relative;\n width: ${({ active }) => active ? '48px' : '24px'};\n height: 4px;\n margin: 0 4px;\n cursor: pointer;\n transition: width .3s ease;\n ${p => p.customStyles?.dotContainer ?? ''};\n`;\n\nconst activeLineAnimation = keyframes`\n 0% { width: 0; }\n 100% { width: 100%; }\n`;\n\nexport const ActiveLine = styled.div<{ active?: boolean, time?: number, customStyles?: ICustomDotsStyles }>`\n display: ${({ active }) => active ? 'initial' : 'none'};\n position: absolute;\n top: 0;\n left: 0;\n background: ${COLORS.black};\n width: ${({ active }) => active ? '100%' : '0%'};\n height: 100%;\n border-radius: 2px;\n animation-name: ${activeLineAnimation};\n animation-duration: ${({ time }) => time || 0}s;\n animation-iteration-count: 1;\n ${p => p.customStyles?.activeDot ?? ''};\n`;\n\nexport const DotsContainer = styled.div< {customStyles?: ICustomDotsStyles }>`\n justify-content: center;\n width: 100%;\n margin-top: 10px;\n bottom: 26px;\n z-index: 10;\n flex-wrap: nowrap;\n ${p => p.customStyles?.dotsContainer ?? ''};\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\nexport interface IArrowProps {\n previousSlide?: () => void,\n nextSlide?: () => void,\n}\n\nconst DefaultArrow = ({ previousSlide, nextSlide }: IArrowProps) => {\n return (\n \n \n \n );\n};\n\nexport default DefaultArrow;\n","import React, { FC } from 'react';\n\nimport * as ST from './styled';\n\nexport interface IDotsProps {\n goToSlide: (i: number) => void,\n slideCount: number,\n currentSlide: number,\n autoplayInterval: number,\n autoplay: boolean,\n customDotsStyles?: ST.ICustomDotsStyles,\n}\n\nconst DefaultDots: FC = ({\n goToSlide,\n slideCount,\n currentSlide,\n autoplayInterval,\n autoplay,\n customDotsStyles,\n}) => {\n return (\n \n {Array(slideCount).fill(null).map((_, index) => (\n goToSlide(index)}\n customStyles={customDotsStyles}\n >\n \n \n \n ))}\n \n );\n};\n\nexport default DefaultDots;\n","import styled from 'styled-components';\n\nexport const Container = styled.div<{ withoutDots?: boolean, withoutArrows?: boolean }>`\n display: flex;\n justify-content: center;\n width: 100%;\n height: fit-content;\n margin: 0 auto;\n padding-bottom: ${({ withoutDots }) => withoutDots ? 0 : 32}px;\n padding-right: ${({ withoutArrows }) => withoutArrows ? 0 : 32}px;\n padding-left: ${({ withoutArrows }) => withoutArrows ? 0 : 32}px;\n \n div:focus-visible {\n outline: none !important;\n }\n`;\n","import React, { FC, RefObject, useEffect, useRef, useState } from 'react';\nimport NukaSwiper, {\n CarouselControlContainerProp,\n CarouselProps,\n} from 'nuka-carousel';\n\nimport { ICustomDotsStyles } from './DefaultDots/styled';\nimport DefaultArrow, { IArrowProps } from './DefaultArrow';\nimport DefaultDots, { IDotsProps } from './DefaultDots';\n\nimport * as ST from './styled';\n\nexport interface ICarouselProps extends CarouselProps {\n withoutArrows?: boolean,\n withoutDots?: boolean,\n customArrow?: FC,\n customDots?: FC,\n customDotsStyles?: ICustomDotsStyles,\n}\n\ninterface INukaSwiperMethods {\n setDimensions: () => void,\n}\n\nconst DEFAULT_AUTOPLAY_INTERVAL = 3000;\nconst DOTS_PADDING = -20;\nconst ARROWS_PADDING = -32;\n\nconst getDefaultControlsContainerStyles = (key: CarouselControlContainerProp) => {\n switch (key) {\n case 'BottomCenter':\n return {\n bottom: DOTS_PADDING,\n };\n case 'CenterRight':\n return {\n right: `${ARROWS_PADDING}px`,\n };\n case 'CenterLeft':\n return {\n left: `${ARROWS_PADDING}px`,\n };\n default: return;\n }\n};\n\nconst NukaCarousel: FC = ({\n customArrow: CustomArrow,\n customDots: CustomDots,\n children,\n withoutArrows,\n withoutControls,\n withoutDots,\n autoplayInterval = DEFAULT_AUTOPLAY_INTERVAL,\n autoplay,\n className,\n customDotsStyles,\n ...props\n}) => {\n const [pausedAutoplay, setPausedAutoplay] = useState(false);\n const Arrow = CustomArrow || DefaultArrow;\n const Dots = CustomDots || DefaultDots;\n const swiperRef = useRef();\n\n useEffect(() => {\n swiperRef?.current?.setDimensions();\n }, [withoutArrows, withoutControls]);\n\n const handleMouseOver = () => {\n if (autoplay) {\n setPausedAutoplay(true);\n }\n };\n\n const handleMouseOut = () => {\n if (autoplay) {\n setPausedAutoplay(false);\n }\n };\n\n return (\n \n }\n // @ts-ignore\n getControlsContainerStyles={getDefaultControlsContainerStyles}\n renderCenterLeftControls={({ previousSlide }) => withoutArrows || }\n renderCenterRightControls={({ nextSlide }) => withoutArrows || }\n renderBottomCenterControls={(props) => withoutDots || (\n \n )}\n autoplayInterval={autoplayInterval}\n autoplay={autoplay}\n withoutControls={withoutControls}\n {...props}\n >\n {children}\n \n \n );\n};\n\nexport default NukaCarousel;\n","import styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nconst StylesTab = css`\n position: relative;\n padding: 6px 24px;\n border-style: solid;\n border-color: transparent;\n background: transparent;\n overflow: hidden;\n font: inherit;\n cursor: pointer;\n`;\n\nexport const Container = styled.div<{isDisabled : boolean, fontSize?: FONTS}>`\n width: fit-content;\n min-width: max-content;\n max-width: 600px;\n display: flex;\n position: relative;\n box-sizing: content-box;\n ${p => p.fontSize || FONTS.MediumXS};\n background-color: transparent;\n border-radius: 100px;\n border: 2px solid ${COLORS.Outline_Light};\n pointer-events: ${p => p.isDisabled ? 'none' : 'auto' };\n user-select: none;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n max-width: 300px;\n }\n`;\n\nexport const TabLeft = styled.button`\n ${StylesTab};\n border-width: 2px 0 2px 2px;\n border-radius: 100px 0 0 100px;\n`;\n\nexport const TabRight = styled.button`\n ${StylesTab};\n border-width: 2px 2px 2px 0;\n border-radius: 0 100px 100px 0;\n`;\n\nexport const LayoutLeft = styled.span<{translateValue: number, colorTab: string}>`\n position: absolute;\n top: 0;\n height: 100%;\n border-radius: 100px;\n transition: transform 100ms ease-in-out;\n width: 100%;\n right: 0;\n background-color: ${p => p.colorTab};\n transform: ${p => `translateX(${p.translateValue}%)`};\n`;\n\nexport const LayoutRight = styled(LayoutLeft)`\n right: 100%;\n`;\n\nexport const Text = styled.span<{ isActive: boolean, isDifferentColorText: boolean }>`\n position: relative;\n z-index: 1;\n color: ${(p) => p.isDifferentColorText && !p.isActive ? COLORS.TextPrimary : COLORS.TextWhite};\n white-space: pre;\n`;\n","import React, { FC } from 'react';\n\nimport * as ST from '@r1-frontend/ui-react/components/controls/Toggle/styled';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\ninterface IProps {\n textsValues: { leftText: string, rightText: string },\n isDisabled?: boolean,\n colorTab?: string,\n onChangeCallback: (activeTab: string) => void,\n activeTab: string,\n fontSize?: FONTS,\n isDifferentColorText?: boolean,\n}\n\nconst Toggle: FC = ({\n textsValues,\n isDisabled = false,\n colorTab = COLORS.ButtonPrimary,\n onChangeCallback,\n activeTab,\n fontSize,\n isDifferentColorText = true,\n ...args\n}) => {\n const translateData = { max: 100, min: 0 };\n const { leftText, rightText } = textsValues;\n const isRightTabActive = activeTab === rightText;\n\n const onClickHandler = () => {\n const activeText = isRightTabActive ? leftText : rightText;\n onChangeCallback(activeText);\n };\n\n return (\n \n \n \n \n {leftText}\n \n \n \n \n \n {rightText}\n \n \n \n );\n};\n\nexport default Toggle;\n","import styled, { css } from 'styled-components';\n\n// @ts-ignore\nimport promoMark from '../../../assets/img/check-promo.svg';\n// @ts-ignore\nimport checkMark from '../../../assets/img/check-white.svg';\nimport { COLORS } from '../../../tokens/colors';\nimport { checkboxSizes, getSizes, TControlSize } from '../baseControlsData';\n\nimport { TCheckboxType } from './index';\n\nconst BORDER_WIDTH = 2;\n\nconst getCheckboxSizes = (size: TControlSize) => getSizes(size, checkboxSizes);\n\ntype IStyleProps = {\n size: TControlSize,\n checkType: TCheckboxType,\n invertColor?: boolean,\n disabled: boolean,\n withLabel: boolean,\n}\n\nexport const Label = styled.label`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n margin: 0;\n padding: 0;\n ${p => getCheckboxSizes(p.size).font};\n color: ${({ disabled, invertColor }) =>\n disabled\n ? COLORS.TextDisabled\n : invertColor\n ? COLORS.TextWhite\n : COLORS.TextPrimary };\n user-select: none;\n cursor: ${p => p.disabled ? 'initial' : 'pointer'};\n\n input[type=\"checkbox\"] {\n appearance: none;\n position: relative;\n flex: 0 0 auto;\n width: ${p => getCheckboxSizes(p.size).inputSize}px;\n height: ${p => getCheckboxSizes(p.size).inputSize}px;\n margin: 0;\n margin-right: ${p => p.withLabel ? getCheckboxSizes(p.size).rMargin + 'px' : 0 };\n padding: 0;\n background-color: ${COLORS.BgMain};\n border-width: ${BORDER_WIDTH}px;\n border-style: solid;\n border-color: ${COLORS.Brand_Blue};\n border-radius: 6px;\n transition: .3s;\n outline: none;\n box-sizing: border-box;\n cursor: inherit;\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.Link};\n }\n }\n\n &:required:invalid {\n border-color: ${COLORS.Error};\n background-color: ${COLORS.BgError};\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.Link};\n background-color: ${COLORS.BgMain};\n }\n }\n }\n\n &:disabled {\n border-color: ${COLORS.GRAY_LIGHT};\n background-color: ${COLORS.GRAY_LIGHT};\n cursor: default;\n pointer-events: none;\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.GRAY_LIGHT};\n }\n }\n }\n\n &:checked {\n border-color: ${ ({ invertColor }) => invertColor ? COLORS.BgSurface : COLORS.Control};\n background-color: ${ ({ invertColor }) => invertColor ? COLORS.BgSurface : COLORS.Control};\n\n &:after {\n content: '';\n position: absolute;\n top: -1px;\n left: -1px;\n width: calc(100% + ${BORDER_WIDTH}px);\n height: calc(100% + ${BORDER_WIDTH}px);\n background-color: ${ ({ invertColor }) => invertColor ? COLORS.Control : COLORS.BgMain};\n mask-image: url(${checkMark});\n mask-size: ${p => `${getCheckboxSizes(p.size).iconWidth}px ${getCheckboxSizes(p.size).iconHeight}px`};\n mask-position: center;\n mask-repeat: no-repeat;\n }\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.Link};\n background-color: ${COLORS.Outline_Dark};\n }\n }\n\n &:disabled {\n border-color: ${COLORS.GRAY_LIGHT};\n background-color: ${COLORS.GRAY_LIGHT};\n pointer-events: none;\n\n &:after {\n background-color: ${COLORS.GRAY_DARK};\n }\n }\n }\n\n ${({ size, checkType }) => checkType === 'promo' && css`\n border-color: ${COLORS.Brand_Blue};\n\n &:before {\n content: '';\n position: absolute;\n top: -1px;\n left: -1px;\n width: calc(100% + ${BORDER_WIDTH}px);\n height: calc(100% + ${BORDER_WIDTH}px);\n background-color: ${COLORS.Brand_Blue};\n mask-image: url(${promoMark});\n mask-size: ${getCheckboxSizes(size).promoIconSize}px;\n mask-position: center;\n mask-repeat: no-repeat;\n }\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.Link};\n background-color: ${COLORS.Outline_Dark};\n\n &:before {\n background-color: ${COLORS.BgMain};\n }\n }\n }\n\n &:required:invalid {\n &:before {\n background-color: ${COLORS.Error};\n }\n }\n\n &:focus-visible {\n border-color: ${COLORS.Link};\n background-color: ${COLORS.Outline_Dark};\n\n &:before {\n background-color: ${COLORS.BgMain};\n }\n }\n\n &:checked:before,\n &:required:invalid:hover:before {\n display: none;\n }\n\n &:disabled {\n border-color: ${COLORS.GRAY_LIGHT};\n background-color: ${COLORS.GRAY_LIGHT};\n pointer-events: none;\n\n &:before {\n display: none;\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${COLORS.GRAY_DARK};\n }\n }\n }\n `};\n }\n`;\n","import React, { FC, useCallback } from 'react';\n\nimport { TControlSize } from '../baseControlsData';\n\nimport { Label } from './styled';\n\nexport type TCheckboxType = 'default' | 'promo';\n\nexport interface ICheckboxProps {\n size?: TControlSize,\n checkType?: TCheckboxType,\n invertColor?: boolean,\n id?: string,\n name?: string,\n value?: string,\n checked?: boolean,\n disabled?: boolean,\n required?: boolean,\n onChange?: (event?: React.ChangeEvent) => void,\n className?: string,\n [key: string]: unknown,\n}\n\nconst BaseCheckbox: FC = ({\n size = 'XS',\n checkType = 'default',\n id,\n name = '',\n value = '',\n checked,\n disabled = false,\n required,\n children,\n onChange,\n className,\n ...props\n}) => {\n const onChangeHandler = useCallback((event: React.ChangeEvent) => {\n if (!disabled) {\n onChange && onChange(event);\n }\n }, [disabled, onChange]);\n\n return (\n \n \n {children}\n \n );\n};\n\nexport default BaseCheckbox;\n","import { FONTS } from '../../tokens/fonts';\n\nexport type TControlSize = 'S' | 'XS' | 'XXS';\nexport type TControlDirection = 'left' | 'right';\n\ninterface ISizeProps {\n inputSize: number,\n radioCheckSize: number,\n font: string,\n rMargin: number,\n}\n\ninterface ICheckboxSizeProps extends ISizeProps {\n iconWidth: number,\n iconHeight: number,\n promoIconSize: number,\n}\n\ntype ICheckboxSizes = {\n [key in TControlSize]: Partial;\n}\n\nexport const getSizes = (size: TControlSize, data: ICheckboxSizes): Partial => data[size];\n\nexport const checkboxSizes: ICheckboxSizes = {\n S: {\n inputSize: 24,\n font: FONTS.MediumS,\n rMargin: 12,\n iconWidth: 13,\n iconHeight: 9,\n promoIconSize: 11,\n },\n XS: {\n inputSize: 20,\n font: FONTS.MediumXS,\n rMargin: 8,\n iconWidth: 11,\n iconHeight: 7,\n promoIconSize: 9,\n },\n XXS: {\n inputSize: 16,\n font: FONTS.MediumXXS,\n rMargin: 8,\n iconWidth: 9,\n iconHeight: 6,\n promoIconSize: 7,\n },\n};\n\nexport const radioSizes: ICheckboxSizes = {\n S: {\n inputSize: 24,\n radioCheckSize: 10,\n font: FONTS.MediumS,\n rMargin: 12,\n },\n XS: {\n inputSize: 20,\n radioCheckSize: 8,\n font: FONTS.MediumXS,\n rMargin: 8,\n },\n XXS: {\n inputSize: 16,\n radioCheckSize: 6,\n font: FONTS.MediumXXS,\n rMargin: 8,\n },\n};\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\n\nexport const SearchBtnWrap = styled.button<{ isInactive: boolean }>`\n width: 22px;\n height: 22px;\n padding: 0;\n background-color: transparent;\n border: none;\n cursor: ${p => p.isInactive ? 'auto' : 'pointer'};\n\n &:focus {\n outline: none;\n }\n`;\n\nexport const SearchIcon = styled.svg<{ isInactive: boolean }>`\n & > path {\n stroke: ${COLORS.GRAY_DARK};\n }\n`;\n","import React from 'react';\n\nimport { SearchBtnWrap, SearchIcon } from './styled';\n\n\ninterface IProps {\n isInactive?: boolean,\n onClick: () => void,\n}\n\nexport const SearchBtn: React.FC = ({ isInactive, onClick }) => {\n return (\n \n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport InputSimple, { IPropsInput } from '@r1-frontend/ui-react/components/inputSimple';\n\nexport const SearchWrapper = styled.div`\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n width: 100%;\n`;\n\nexport const Input = styled(InputSimple)`\n margin-bottom: 0;\n\n & > input {\n padding-right: 60px;\n\n &:focus {\n padding-right: 60px;\n }\n }\n`;\n\nexport const BtnWrap = styled.div`\n position: absolute;\n top: 12px;\n right: 10px;\n bottom: 0;\n`;\n\nconst Btn = styled.button`\n border: none;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n`;\n\nexport const ClearBtn = styled(Btn)`\n margin-right: 7px;\n width: 22px;\n height: 22px;\n background-color: transparent;\n opacity: 0.5;\n\n &:hover {\n opacity: 1;\n }\n\n &:before, &:after {\n content: '';\n position: absolute;\n top: 0;\n height: 22px;\n width: 1px;\n background-color: #333;\n transform-origin: center;\n }\n\n &:before {\n transform: rotate(45deg);\n }\n\n &:after {\n transform: rotate(-45deg);\n }\n`;\n","import React, { forwardRef, SyntheticEvent } from 'react';\n\nimport { SearchBtn } from './search-btn';\n\nimport * as ST from './styled';\n\nexport interface InputValue {\n onClear: () => void,\n onSearch: () => void,\n}\n\ninterface IProps {\n onClear: () => void,\n onSearch?: () => void,\n isClearBtnHide?: boolean,\n isSearchBtnHide?: boolean,\n isSearchBtnInactive?: boolean,\n [key: string]: any,\n}\n\n// eslint-disable-next-line react/display-name\nexport const SearchInput: React.FC = forwardRef((props, ref) => {\n const { onClear, onSearch, isClearBtnHide, isSearchBtnHide, isSearchBtnInactive } = props;\n\n const clearHandler = (e: SyntheticEvent) => {\n e.stopPropagation();\n if (onClear) {\n onClear();\n }\n };\n\n const searchHandler = (e: SyntheticEvent) => {\n e.stopPropagation();\n if (onSearch) {\n onSearch();\n }\n };\n\n return (\n \n \n \n {!isClearBtnHide &&\n \n }\n {!isSearchBtnHide &&\n searchHandler(e)}\n isInactive={isSearchBtnInactive}\n />\n }\n \n \n );\n});\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst SearchNormal = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return (\n \n \n \n \n );\n};\n\nexport default createSvg(\n SearchNormal,\n 'search-normal',\n);\n","import { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nconst themes = {\n bordered: {\n background: COLORS.BgMain,\n borderWidth: '1px',\n radius: '4px',\n padding: '20px',\n mobilePadding: '15px',\n color: COLORS.TextPrimary,\n },\n simple: {\n background: 'transparent',\n borderWidth: '1px 0',\n radius: '0px',\n padding: '20px 0',\n mobilePadding: '15px 0',\n color: COLORS.TextPrimary,\n },\n light: {\n border: COLORS.BgLight,\n background: COLORS.BgLight,\n color: COLORS.TextPrimary,\n colorArrow: COLORS.GRAY_DARK,\n backgroundIcon: COLORS.BgSecondary,\n borderIcon: COLORS.BgSecondary,\n colorArrowIsOpen: COLORS.GRAY_DARK,\n backgroundIconIsOpen: COLORS.Outline_Light,\n borderIconIsOpen: COLORS.Outline_Light,\n radius: BorderRadius.componentRadius,\n padding: '20px 24px',\n mobilePadding: '15px',\n storyColor: COLORS.BgMain,\n },\n dark: {\n border: COLORS.Control,\n background: COLORS.Control,\n color: COLORS.TextWhite,\n colorArrow: COLORS.Control,\n backgroundIcon: COLORS.GRAY_DARK,\n borderIcon: COLORS.GRAY_DARK,\n colorArrowIsOpen: COLORS.Control,\n backgroundIconIsOpen: COLORS.TextWhite,\n borderIconIsOpen: COLORS.TextWhite,\n radius: BorderRadius.componentRadius,\n padding: '20px 24px',\n mobilePadding: '15px',\n storyColor: '#3D3D3D',\n },\n};\n\nexport default themes;\n","import { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\n\nimport themes from './themes.js';\n\nconst Wrapper = styled.div`\n flex-direction: column;\n width: 100%;\n background: ${props => props.theme.background};\n border: 1px solid ${({ theme }) => theme.border ? theme.border : COLORS.GRAY_LIGHT};\n border-width: ${props => props.theme.borderWidth};\n border-radius: ${props => props.theme.radius};\n padding: ${props => props.theme.padding};\n color: ${({ theme }) => theme.color ? theme.color : COLORS.TextPrimary};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding: ${props => props.theme.mobilePadding};\n }\n`;\n\nconst AccordionTitle = styled.div`\n ${FONTS.L};\n width: 100%;\n justify-content: space-between;\n align-items: center;\n flex-wrap: nowrap;\n cursor: pointer;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.S};\n }\n`;\n\nconst Title = styled.div`\n flex-grow: 1;\n width: calc(100% - 53px); \n ${props => props.theme.desktopFont || ''};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: calc(100% - 39px);\n ${props => props.theme.mobileFont || ''};\n }\n`;\n\nconst Icon = styled.span`\n position:relative;\n margin-left: 20px;\n flex: 0 0 36px;\n height: 36px;\n border-radius: 50%;\n transform: ${props => props.open ? 'none' : 'scaleY(-1)'};\n transition: all 0.2s ease-in;\n svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n circle {\n stroke: ${({ borderIcon }) => borderIcon ? borderIcon : COLORS.GRAY_DARK};\n fill: ${({ backgroundIcon }) => backgroundIcon ? backgroundIcon : COLORS.GRAY_LIGHT};\n }\n path {\n stroke: ${({ colorArrow }) => colorArrow ? colorArrow : COLORS.GRAY_DARK};\n }\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-left: 15px;\n background-size: contain;\n }\n`;\n\nconst Border = styled.div`\n height: 1px;\n width: 100%;\n background: transparent;\n margin: 8px 0;\n`;\n\nconst AccordionBody = styled.div`\n width: 100%;\n max-height: ${props => props.open ? '100%' : '0'};\n ${FONTS.S};\n overflow: hidden;\n transition: max-height 0.2s ${props => props.open ? 'ease-in' : 'ease-out'};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nconst DEFAULT_THEME = 'light';\n\n/**\n * @deprecated\n * use instead @r1-frontend/ui-react/src/components/accordions/Accordion\n */\nexport default class Accordion extends React.Component {\n static propTypes = {\n defaultOpen: PropTypes.bool,\n open: PropTypes.bool,\n withDividingBorder: PropTypes.bool,\n toggle: PropTypes.func,\n customTheme: PropTypes.object,\n };\n\n static defaultProps = {\n defaultOpen: false,\n withDividingBorder: true,\n theme: DEFAULT_THEME,\n customTheme: {},\n toggle: () => {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n open: props.defaultOpen,\n };\n }\n\n toggle = () => {\n this.props.toggle();\n this.setState(state => ({\n open: !state.open,\n }));\n }\n\n render() {\n const { children, title, open = this.state.open, onOpen = this.toggle, theme, customTheme, withDividingBorder, ...rest } = this.props;\n let colors = themes[theme] || themes[DEFAULT_THEME];\n if (customTheme) {\n colors = { ...colors, ...customTheme };\n }\n return (\n \n \n \n {title}\n \n \n \n \n \n \n \n \n {withDividingBorder && }\n {children}\n \n \n \n );\n }\n}\n","export const RubleSymbol = String.fromCharCode(8381);\n","import { RubleSymbol } from '@r1-frontend/ui-react/experimental/purchase/cost/Cost/RubleSymbol';\n\nimport * as S from './styled';\n\n// @todo for the children we should to receiving only the \"number\" type for formatting and displaying cost by human view here. For example: incoming 10000.0, displaying 10 000.00\n// on the other hand children may be a ReactNode or a JSX.Element. By my opinion the type \"number\" is enough\n//\n// We have to think about it ;-)\nexport type TCostProps = {\n children: string | number,\n isMonthly?: boolean,\n previousCost?: string | number,\n};\n\n/**\n * @deprecated\n * use @r1-frontend/ui-react/components/costs\n */\nconst Cost = ({ children, isMonthly = false, previousCost, ...props }: TCostProps): JSX.Element => {\n return \n {previousCost ? <>{previousCost} {RubleSymbol}{isMonthly && '/мес'}  : null}\n {children} {RubleSymbol}{isMonthly && '/мес'}\n ;\n};\n\nexport default Cost;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const CostWrapper = styled.div`\n display: inline-block;\n color: inherit;\n white-space: nowrap;\n`;\n\nexport const PreviousCost = styled.s`\n text-decoration-color: ${COLORS.TextInfo};\n color: ${COLORS.TextInfo};\n`;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _NodeGroup = _interopRequireDefault(require(\"../NodeGroup\"));\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar keyAccessor = function keyAccessor() {\n return '$$key$$';\n};\n\nvar Animate = function (_Component) {\n _inherits(Animate, _Component);\n\n var _super = _createSuper(Animate);\n\n function Animate() {\n _classCallCheck(this, Animate);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Animate, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n show = _this$props.show,\n start = _this$props.start,\n enter = _this$props.enter,\n update = _this$props.update,\n leave = _this$props.leave,\n interpolation = _this$props.interpolation,\n children = _this$props.children;\n var data = typeof start === 'function' ? start() : start;\n return _react[\"default\"].createElement(_NodeGroup[\"default\"], {\n data: show ? [data] : [],\n start: function start() {\n return data;\n },\n keyAccessor: keyAccessor,\n interpolation: interpolation,\n enter: typeof enter === 'function' ? enter : function () {\n return enter;\n },\n update: typeof update === 'function' ? update : function () {\n return update;\n },\n leave: typeof leave === 'function' ? leave : function () {\n return leave;\n }\n }, function (nodes) {\n if (!nodes[0]) {\n return null;\n }\n\n var renderedChildren = children(nodes[0].state);\n return renderedChildren && _react[\"default\"].Children.only(renderedChildren);\n });\n }\n }]);\n\n return Animate;\n}(_react.Component);\n\nAnimate.propTypes = process.env.NODE_ENV !== \"production\" ? {\n show: _propTypes[\"default\"].bool,\n interpolation: _propTypes[\"default\"].func,\n start: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].object]),\n enter: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n update: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n leave: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n children: _propTypes[\"default\"].func.isRequired\n} : {};\nAnimate.defaultProps = {\n show: true,\n interpolation: _utils.numeric\n};\nvar _default = Animate;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _kapellmeister = require(\"kapellmeister\");\n\nvar _mergeKeys = _interopRequireDefault(require(\"../core/mergeKeys\"));\n\nvar _types = require(\"../core/types\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar NodeGroup = function (_Component) {\n _inherits(NodeGroup, _Component);\n\n var _super = _createSuper(NodeGroup);\n\n function NodeGroup(props) {\n var _this;\n\n _classCallCheck(this, NodeGroup);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"animate\", function () {\n var _this$state = _this.state,\n nodeKeys = _this$state.nodeKeys,\n nodeHash = _this$state.nodeHash;\n\n if (_this.unmounting) {\n return;\n }\n\n var pending = false;\n var nextNodeKeys = [];\n var length = nodeKeys.length;\n\n for (var i = 0; i < length; i++) {\n var k = nodeKeys[i];\n var n = nodeHash[k];\n var isTransitioning = n.isTransitioning();\n\n if (isTransitioning) {\n pending = true;\n }\n\n if (n.type === _types.LEAVE && !isTransitioning) {\n delete nodeHash[k];\n } else {\n nextNodeKeys.push(k);\n }\n }\n\n if (!pending) {\n _this.interval.stop();\n }\n\n _this.setState(function () {\n return {\n nodeKeys: nextNodeKeys,\n nodes: nextNodeKeys.map(function (key) {\n return nodeHash[key];\n })\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"interval\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"unmounting\", false);\n\n var interpolation = props.interpolation;\n\n var Node = function (_BaseNode) {\n _inherits(Node, _BaseNode);\n\n var _super2 = _createSuper(Node);\n\n function Node(key, data) {\n var _this2;\n\n _classCallCheck(this, Node);\n\n _this2 = _super2.call(this);\n\n _defineProperty(_assertThisInitialized(_this2), \"getInterpolator\", interpolation);\n\n _this2.key = key;\n _this2.data = data;\n _this2.type = _types.ENTER;\n return _this2;\n }\n\n return Node;\n }(_kapellmeister.BaseNode);\n\n _this.state = {\n Node: Node,\n nodeKeys: [],\n nodeHash: {},\n nodes: [],\n data: null\n };\n return _this;\n }\n\n _createClass(NodeGroup, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startInterval();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data && !this.unmounting) {\n this.startInterval();\n }\n }\n }, {\n key: \"startInterval\",\n value: function startInterval() {\n if (!this.interval) {\n this.interval = (0, _kapellmeister.interval)(this.animate);\n } else {\n this.interval.restart(this.animate);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this$state2 = this.state,\n nodeKeys = _this$state2.nodeKeys,\n nodeHash = _this$state2.nodeHash;\n this.unmounting = true;\n\n if (this.interval) {\n this.interval.stop();\n }\n\n nodeKeys.forEach(function (key) {\n nodeHash[key].stopTransitions();\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var renderedChildren = this.props.children(this.state.nodes);\n return renderedChildren && _react[\"default\"].Children.only(renderedChildren);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.data !== prevState.data) {\n var data = nextProps.data,\n keyAccessor = nextProps.keyAccessor,\n start = nextProps.start,\n enter = nextProps.enter,\n update = nextProps.update,\n leave = nextProps.leave;\n var Node = prevState.Node,\n nodeKeys = prevState.nodeKeys,\n nodeHash = prevState.nodeHash;\n var keyIndex = {};\n\n for (var i = 0; i < nodeKeys.length; i++) {\n keyIndex[nodeKeys[i]] = i;\n }\n\n var nextKeyIndex = {};\n var nextNodeKeys = [];\n\n for (var _i = 0; _i < data.length; _i++) {\n var d = data[_i];\n var k = keyAccessor(d, _i);\n nextKeyIndex[k] = _i;\n nextNodeKeys.push(k);\n\n if (keyIndex[k] === undefined) {\n var node = new Node();\n node.key = k;\n node.data = d;\n node.type = _types.ENTER;\n nodeHash[k] = node;\n }\n }\n\n for (var _i2 = 0; _i2 < nodeKeys.length; _i2++) {\n var _k = nodeKeys[_i2];\n var n = nodeHash[_k];\n\n if (nextKeyIndex[_k] !== undefined) {\n n.data = data[nextKeyIndex[_k]];\n n.type = _types.UPDATE;\n } else {\n n.type = _types.LEAVE;\n }\n }\n\n var mergedNodeKeys = (0, _mergeKeys[\"default\"])(nodeKeys, keyIndex, nextNodeKeys, nextKeyIndex);\n\n for (var _i3 = 0; _i3 < mergedNodeKeys.length; _i3++) {\n var _k2 = mergedNodeKeys[_i3];\n var _n = nodeHash[_k2];\n var _d = _n.data;\n\n if (_n.type === _types.ENTER) {\n _n.setState(start(_d, nextKeyIndex[_k2]));\n\n _n.transition(enter(_d, nextKeyIndex[_k2]));\n } else if (_n.type === _types.LEAVE) {\n _n.transition(leave(_d, keyIndex[_k2]));\n } else {\n _n.transition(update(_d, nextKeyIndex[_k2]));\n }\n }\n\n return {\n data: data,\n nodes: mergedNodeKeys.map(function (key) {\n return nodeHash[key];\n }),\n nodeHash: nodeHash,\n nodeKeys: mergedNodeKeys\n };\n }\n\n return null;\n }\n }]);\n\n return NodeGroup;\n}(_react.Component);\n\nNodeGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n data: _propTypes[\"default\"].array.isRequired,\n keyAccessor: _propTypes[\"default\"].func.isRequired,\n interpolation: _propTypes[\"default\"].func,\n start: _propTypes[\"default\"].func.isRequired,\n enter: _propTypes[\"default\"].func,\n update: _propTypes[\"default\"].func,\n leave: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].func.isRequired\n} : {};\nNodeGroup.defaultProps = {\n enter: function enter() {},\n update: function update() {},\n leave: function leave() {},\n interpolation: _utils.numeric\n};\nvar _default = NodeGroup;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction mergeKeys(currNodeKeys, currKeyIndex, nextNodeKeys, nextKeyIndex) {\n var allKeys = [];\n\n for (var i = 0; i < nextNodeKeys.length; i++) {\n allKeys[i] = nextNodeKeys[i];\n }\n\n for (var _i = 0; _i < currNodeKeys.length; _i++) {\n if (nextKeyIndex[currNodeKeys[_i]] === undefined) {\n allKeys.push(currNodeKeys[_i]);\n }\n }\n\n return allKeys.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a];\n var nextOrderB = nextKeyIndex[b];\n var currOrderA = currKeyIndex[a];\n var currOrderB = currKeyIndex[b];\n\n if (nextOrderA != null && nextOrderB != null) {\n return nextKeyIndex[a] - nextKeyIndex[b];\n } else if (currOrderA != null && currOrderB != null) {\n return currKeyIndex[a] - currKeyIndex[b];\n } else if (nextOrderA != null) {\n for (var _i2 = 0; _i2 < nextNodeKeys.length; _i2++) {\n var pivot = nextNodeKeys[_i2];\n\n if (!currKeyIndex[pivot]) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && currOrderB > currKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && currOrderB < currKeyIndex[pivot]) {\n return 1;\n }\n }\n\n return 1;\n }\n\n for (var _i3 = 0; _i3 < nextNodeKeys.length; _i3++) {\n var _pivot = nextNodeKeys[_i3];\n\n if (!currKeyIndex[_pivot]) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[_pivot] && currOrderA > currKeyIndex[_pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[_pivot] && currOrderA < currKeyIndex[_pivot]) {\n return -1;\n }\n }\n\n return -1;\n });\n}\n\nvar _default = mergeKeys;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEAVE = exports.UPDATE = exports.ENTER = void 0;\nvar ENTER = 'ENTER';\nexports.ENTER = ENTER;\nvar UPDATE = 'UPDATE';\nexports.UPDATE = UPDATE;\nvar LEAVE = 'LEAVE';\nexports.LEAVE = LEAVE;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.numeric = numeric;\n\nfunction numeric(beg, end) {\n var a = +beg;\n var b = +end - a;\n return function (t) {\n return a + b * t;\n };\n}","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDEiIHZpZXdCb3g9IjAgMCA0MCA0MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMjAiIGN5PSIyMC41IiByPSIyMCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi4yNSAyMC41QzEyLjI1IDIwLjA4NTggMTIuNTg1OCAxOS43NSAxMyAxOS43NUgyNS4xODkzTDIwLjQ2OTcgMTUuMDMwM0MyMC4xNzY4IDE0LjczNzQgMjAuMTc2OCAxNC4yNjI2IDIwLjQ2OTcgMTMuOTY5N0MyMC43NjI2IDEzLjY3NjggMjEuMjM3NCAxMy42NzY4IDIxLjUzMDMgMTMuOTY5N0wyNy41MzAzIDE5Ljk2OTdDMjcuODIzMiAyMC4yNjI2IDI3LjgyMzIgMjAuNzM3NCAyNy41MzAzIDIxLjAzMDNMMjEuNTMwMyAyNy4wMzAzQzIxLjIzNzQgMjcuMzIzMiAyMC43NjI2IDI3LjMyMzIgMjAuNDY5NyAyNy4wMzAzQzIwLjE3NjggMjYuNzM3NCAyMC4xNzY4IDI2LjI2MjYgMjAuNDY5NyAyNS45Njk3TDI1LjE4OTMgMjEuMjVIMTNDMTIuNTg1OCAyMS4yNSAxMi4yNSAyMC45MTQyIDEyLjI1IDIwLjVaIiBmaWxsPSIjMTgxQjIxIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuNzQ2MjE2IDYuMDM2ODhDMC43NDYyMTYgNS42MjI2NyAxLjA4MiA1LjI4Njg4IDEuNDk2MjIgNS4yODY4OEgxMC43MTYyQzExLjEzMDQgNS4yODY4OCAxMS40NjYyIDUuNjIyNjcgMTEuNDY2MiA2LjAzNjg4QzExLjQ2NjIgNi40NTEwOSAxMS4xMzA0IDYuNzg2ODggMTAuNzE2MiA2Ljc4Njg4SDEuNDk2MjJDMS4wODIgNi43ODY4OCAwLjc0NjIxNiA2LjQ1MTA5IDAuNzQ2MjE2IDYuMDM2ODhaIiBmaWxsPSIjRTMwODEzIi8+CjxwYXRoIGQ9Ik02LjEwNjIyIDExLjM5NjlDNS42OTIgMTEuMzk2OSA1LjM1NjIyIDExLjA2MTEgNS4zNTYyMiAxMC42NDY5TDUuMzU2MjIgMS40MjY4OEM1LjM1NjIyIDEuMDEyNjcgNS42OTIgMC42NzY4OCA2LjEwNjIyIDAuNjc2ODhDNi41MjA0MyAwLjY3Njg4IDYuODU2MjIgMS4wMTI2NyA2Ljg1NjIyIDEuNDI2ODhMNi44NTYyMiAxMC42NDY5QzYuODU2MjIgMTEuMDYxMSA2LjUyMDQzIDExLjM5NjkgNi4xMDYyMiAxMS4zOTY5WiIgZmlsbD0iI0UzMDgxMyIvPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxNCAxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy41NjA3IDFDMTMuODUzNiAxLjI5Mjg5IDEzLjg1MzYgMS43Njc3NyAxMy41NjA3IDIuMDYwNjZMNi4yNDYyNyA5LjA2MzdDNS45NTM0MiA5LjM1NjU1IDUuNDc4NjMgOS4zNTY2IDUuMTg1NzIgOS4wNjM4MUwwLjg0MTU5MiA0LjcyMTA2QzAuNTQ4NjM4IDQuNDI4MjMgMC41NDg1MzggMy45NTMzNSAwLjg0MTM2OSAzLjY2MDRDMS4xMzQyIDMuMzY3NDQgMS42MDkwNyAzLjM2NzM0IDEuOTAyMDMgMy42NjAxOEw1LjcxNTgzIDcuNDcyODNMMTIuNSAxQzEyLjc5MjkgMC43MDcxMDcgMTMuMjY3OCAwLjcwNzEwNyAxMy41NjA3IDFaIiBmaWxsPSIjRkFGQUZBIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAxNSAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjE0MjYgMjUuMTk5N0wxLjE0MjU4IDEzLjE5OTdMMTMuMTQyNiAxLjE5OTcxIiBzdHJva2U9IiMxYTFhMWEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPg==\"","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * This work is licensed under the W3C Software and Document License\n * (http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document).\n */\n\n(function () {\n // Return early if we're not running inside of the browser.\n if (typeof window === 'undefined') {\n return;\n }\n\n // Convenience function for converting NodeLists.\n /** @type {typeof Array.prototype.slice} */\n var slice = Array.prototype.slice;\n\n /**\n * IE has a non-standard name for \"matches\".\n * @type {typeof Element.prototype.matches}\n */\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n\n /** @type {string} */\n var _focusableElementsString = ['a[href]', 'area[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'details', 'summary', 'iframe', 'object', 'embed', '[contenteditable]'].join(',');\n\n /**\n * `InertRoot` manages a single inert subtree, i.e. a DOM subtree whose root element has an `inert`\n * attribute.\n *\n * Its main functions are:\n *\n * - to create and maintain a set of managed `InertNode`s, including when mutations occur in the\n * subtree. The `makeSubtreeUnfocusable()` method handles collecting `InertNode`s via registering\n * each focusable node in the subtree with the singleton `InertManager` which manages all known\n * focusable nodes within inert subtrees. `InertManager` ensures that a single `InertNode`\n * instance exists for each focusable node which has at least one inert root as an ancestor.\n *\n * - to notify all managed `InertNode`s when this subtree stops being inert (i.e. when the `inert`\n * attribute is removed from the root node). This is handled in the destructor, which calls the\n * `deregister` method on `InertManager` for each managed inert node.\n */\n\n var InertRoot = function () {\n /**\n * @param {!Element} rootElement The Element at the root of the inert subtree.\n * @param {!InertManager} inertManager The global singleton InertManager object.\n */\n function InertRoot(rootElement, inertManager) {\n _classCallCheck(this, InertRoot);\n\n /** @type {!InertManager} */\n this._inertManager = inertManager;\n\n /** @type {!Element} */\n this._rootElement = rootElement;\n\n /**\n * @type {!Set}\n * All managed focusable nodes in this InertRoot's subtree.\n */\n this._managedNodes = new Set();\n\n // Make the subtree hidden from assistive technology\n if (this._rootElement.hasAttribute('aria-hidden')) {\n /** @type {?string} */\n this._savedAriaHidden = this._rootElement.getAttribute('aria-hidden');\n } else {\n this._savedAriaHidden = null;\n }\n this._rootElement.setAttribute('aria-hidden', 'true');\n\n // Make all focusable elements in the subtree unfocusable and add them to _managedNodes\n this._makeSubtreeUnfocusable(this._rootElement);\n\n // Watch for:\n // - any additions in the subtree: make them unfocusable too\n // - any removals from the subtree: remove them from this inert root's managed nodes\n // - attribute changes: if `tabindex` is added, or removed from an intrinsically focusable\n // element, make that node a managed node.\n this._observer = new MutationObserver(this._onMutation.bind(this));\n this._observer.observe(this._rootElement, { attributes: true, childList: true, subtree: true });\n }\n\n /**\n * Call this whenever this object is about to become obsolete. This unwinds all of the state\n * stored in this object and updates the state of all of the managed nodes.\n */\n\n\n _createClass(InertRoot, [{\n key: 'destructor',\n value: function destructor() {\n this._observer.disconnect();\n\n if (this._rootElement) {\n if (this._savedAriaHidden !== null) {\n this._rootElement.setAttribute('aria-hidden', this._savedAriaHidden);\n } else {\n this._rootElement.removeAttribute('aria-hidden');\n }\n }\n\n this._managedNodes.forEach(function (inertNode) {\n this._unmanageNode(inertNode.node);\n }, this);\n\n // Note we cast the nulls to the ANY type here because:\n // 1) We want the class properties to be declared as non-null, or else we\n // need even more casts throughout this code. All bets are off if an\n // instance has been destroyed and a method is called.\n // 2) We don't want to cast \"this\", because we want type-aware optimizations\n // to know which properties we're setting.\n this._observer = /** @type {?} */null;\n this._rootElement = /** @type {?} */null;\n this._managedNodes = /** @type {?} */null;\n this._inertManager = /** @type {?} */null;\n }\n\n /**\n * @return {!Set} A copy of this InertRoot's managed nodes set.\n */\n\n }, {\n key: '_makeSubtreeUnfocusable',\n\n\n /**\n * @param {!Node} startNode\n */\n value: function _makeSubtreeUnfocusable(startNode) {\n var _this2 = this;\n\n composedTreeWalk(startNode, function (node) {\n return _this2._visitNode(node);\n });\n\n var activeElement = document.activeElement;\n\n if (!document.body.contains(startNode)) {\n // startNode may be in shadow DOM, so find its nearest shadowRoot to get the activeElement.\n var node = startNode;\n /** @type {!ShadowRoot|undefined} */\n var root = undefined;\n while (node) {\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n root = /** @type {!ShadowRoot} */node;\n break;\n }\n node = node.parentNode;\n }\n if (root) {\n activeElement = root.activeElement;\n }\n }\n if (startNode.contains(activeElement)) {\n activeElement.blur();\n // In IE11, if an element is already focused, and then set to tabindex=-1\n // calling blur() will not actually move the focus.\n // To work around this we call focus() on the body instead.\n if (activeElement === document.activeElement) {\n document.body.focus();\n }\n }\n }\n\n /**\n * @param {!Node} node\n */\n\n }, {\n key: '_visitNode',\n value: function _visitNode(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n var element = /** @type {!Element} */node;\n\n // If a descendant inert root becomes un-inert, its descendants will still be inert because of\n // this inert root, so all of its managed nodes need to be adopted by this InertRoot.\n if (element !== this._rootElement && element.hasAttribute('inert')) {\n this._adoptInertRoot(element);\n }\n\n if (matches.call(element, _focusableElementsString) || element.hasAttribute('tabindex')) {\n this._manageNode(element);\n }\n }\n\n /**\n * Register the given node with this InertRoot and with InertManager.\n * @param {!Node} node\n */\n\n }, {\n key: '_manageNode',\n value: function _manageNode(node) {\n var inertNode = this._inertManager.register(node, this);\n this._managedNodes.add(inertNode);\n }\n\n /**\n * Unregister the given node with this InertRoot and with InertManager.\n * @param {!Node} node\n */\n\n }, {\n key: '_unmanageNode',\n value: function _unmanageNode(node) {\n var inertNode = this._inertManager.deregister(node, this);\n if (inertNode) {\n this._managedNodes['delete'](inertNode);\n }\n }\n\n /**\n * Unregister the entire subtree starting at `startNode`.\n * @param {!Node} startNode\n */\n\n }, {\n key: '_unmanageSubtree',\n value: function _unmanageSubtree(startNode) {\n var _this3 = this;\n\n composedTreeWalk(startNode, function (node) {\n return _this3._unmanageNode(node);\n });\n }\n\n /**\n * If a descendant node is found with an `inert` attribute, adopt its managed nodes.\n * @param {!Element} node\n */\n\n }, {\n key: '_adoptInertRoot',\n value: function _adoptInertRoot(node) {\n var inertSubroot = this._inertManager.getInertRoot(node);\n\n // During initialisation this inert root may not have been registered yet,\n // so register it now if need be.\n if (!inertSubroot) {\n this._inertManager.setInert(node, true);\n inertSubroot = this._inertManager.getInertRoot(node);\n }\n\n inertSubroot.managedNodes.forEach(function (savedInertNode) {\n this._manageNode(savedInertNode.node);\n }, this);\n }\n\n /**\n * Callback used when mutation observer detects subtree additions, removals, or attribute changes.\n * @param {!Array} records\n * @param {!MutationObserver} self\n */\n\n }, {\n key: '_onMutation',\n value: function _onMutation(records, self) {\n records.forEach(function (record) {\n var target = /** @type {!Element} */record.target;\n if (record.type === 'childList') {\n // Manage added nodes\n slice.call(record.addedNodes).forEach(function (node) {\n this._makeSubtreeUnfocusable(node);\n }, this);\n\n // Un-manage removed nodes\n slice.call(record.removedNodes).forEach(function (node) {\n this._unmanageSubtree(node);\n }, this);\n } else if (record.type === 'attributes') {\n if (record.attributeName === 'tabindex') {\n // Re-initialise inert node if tabindex changes\n this._manageNode(target);\n } else if (target !== this._rootElement && record.attributeName === 'inert' && target.hasAttribute('inert')) {\n // If a new inert root is added, adopt its managed nodes and make sure it knows about the\n // already managed nodes from this inert subroot.\n this._adoptInertRoot(target);\n var inertSubroot = this._inertManager.getInertRoot(target);\n this._managedNodes.forEach(function (managedNode) {\n if (target.contains(managedNode.node)) {\n inertSubroot._manageNode(managedNode.node);\n }\n });\n }\n }\n }, this);\n }\n }, {\n key: 'managedNodes',\n get: function get() {\n return new Set(this._managedNodes);\n }\n\n /** @return {boolean} */\n\n }, {\n key: 'hasSavedAriaHidden',\n get: function get() {\n return this._savedAriaHidden !== null;\n }\n\n /** @param {?string} ariaHidden */\n\n }, {\n key: 'savedAriaHidden',\n set: function set(ariaHidden) {\n this._savedAriaHidden = ariaHidden;\n }\n\n /** @return {?string} */\n ,\n get: function get() {\n return this._savedAriaHidden;\n }\n }]);\n\n return InertRoot;\n }();\n\n /**\n * `InertNode` initialises and manages a single inert node.\n * A node is inert if it is a descendant of one or more inert root elements.\n *\n * On construction, `InertNode` saves the existing `tabindex` value for the node, if any, and\n * either removes the `tabindex` attribute or sets it to `-1`, depending on whether the element\n * is intrinsically focusable or not.\n *\n * `InertNode` maintains a set of `InertRoot`s which are descendants of this `InertNode`. When an\n * `InertRoot` is destroyed, and calls `InertManager.deregister()`, the `InertManager` notifies the\n * `InertNode` via `removeInertRoot()`, which in turn destroys the `InertNode` if no `InertRoot`s\n * remain in the set. On destruction, `InertNode` reinstates the stored `tabindex` if one exists,\n * or removes the `tabindex` attribute if the element is intrinsically focusable.\n */\n\n\n var InertNode = function () {\n /**\n * @param {!Node} node A focusable element to be made inert.\n * @param {!InertRoot} inertRoot The inert root element associated with this inert node.\n */\n function InertNode(node, inertRoot) {\n _classCallCheck(this, InertNode);\n\n /** @type {!Node} */\n this._node = node;\n\n /** @type {boolean} */\n this._overrodeFocusMethod = false;\n\n /**\n * @type {!Set} The set of descendant inert roots.\n * If and only if this set becomes empty, this node is no longer inert.\n */\n this._inertRoots = new Set([inertRoot]);\n\n /** @type {?number} */\n this._savedTabIndex = null;\n\n /** @type {boolean} */\n this._destroyed = false;\n\n // Save any prior tabindex info and make this node untabbable\n this.ensureUntabbable();\n }\n\n /**\n * Call this whenever this object is about to become obsolete.\n * This makes the managed node focusable again and deletes all of the previously stored state.\n */\n\n\n _createClass(InertNode, [{\n key: 'destructor',\n value: function destructor() {\n this._throwIfDestroyed();\n\n if (this._node && this._node.nodeType === Node.ELEMENT_NODE) {\n var element = /** @type {!Element} */this._node;\n if (this._savedTabIndex !== null) {\n element.setAttribute('tabindex', this._savedTabIndex);\n } else {\n element.removeAttribute('tabindex');\n }\n\n // Use `delete` to restore native focus method.\n if (this._overrodeFocusMethod) {\n delete element.focus;\n }\n }\n\n // See note in InertRoot.destructor for why we cast these nulls to ANY.\n this._node = /** @type {?} */null;\n this._inertRoots = /** @type {?} */null;\n this._destroyed = true;\n }\n\n /**\n * @type {boolean} Whether this object is obsolete because the managed node is no longer inert.\n * If the object has been destroyed, any attempt to access it will cause an exception.\n */\n\n }, {\n key: '_throwIfDestroyed',\n\n\n /**\n * Throw if user tries to access destroyed InertNode.\n */\n value: function _throwIfDestroyed() {\n if (this.destroyed) {\n throw new Error('Trying to access destroyed InertNode');\n }\n }\n\n /** @return {boolean} */\n\n }, {\n key: 'ensureUntabbable',\n\n\n /** Save the existing tabindex value and make the node untabbable and unfocusable */\n value: function ensureUntabbable() {\n if (this.node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n var element = /** @type {!Element} */this.node;\n if (matches.call(element, _focusableElementsString)) {\n if ( /** @type {!HTMLElement} */element.tabIndex === -1 && this.hasSavedTabIndex) {\n return;\n }\n\n if (element.hasAttribute('tabindex')) {\n this._savedTabIndex = /** @type {!HTMLElement} */element.tabIndex;\n }\n element.setAttribute('tabindex', '-1');\n if (element.nodeType === Node.ELEMENT_NODE) {\n element.focus = function () {};\n this._overrodeFocusMethod = true;\n }\n } else if (element.hasAttribute('tabindex')) {\n this._savedTabIndex = /** @type {!HTMLElement} */element.tabIndex;\n element.removeAttribute('tabindex');\n }\n }\n\n /**\n * Add another inert root to this inert node's set of managing inert roots.\n * @param {!InertRoot} inertRoot\n */\n\n }, {\n key: 'addInertRoot',\n value: function addInertRoot(inertRoot) {\n this._throwIfDestroyed();\n this._inertRoots.add(inertRoot);\n }\n\n /**\n * Remove the given inert root from this inert node's set of managing inert roots.\n * If the set of managing inert roots becomes empty, this node is no longer inert,\n * so the object should be destroyed.\n * @param {!InertRoot} inertRoot\n */\n\n }, {\n key: 'removeInertRoot',\n value: function removeInertRoot(inertRoot) {\n this._throwIfDestroyed();\n this._inertRoots['delete'](inertRoot);\n if (this._inertRoots.size === 0) {\n this.destructor();\n }\n }\n }, {\n key: 'destroyed',\n get: function get() {\n return (/** @type {!InertNode} */this._destroyed\n );\n }\n }, {\n key: 'hasSavedTabIndex',\n get: function get() {\n return this._savedTabIndex !== null;\n }\n\n /** @return {!Node} */\n\n }, {\n key: 'node',\n get: function get() {\n this._throwIfDestroyed();\n return this._node;\n }\n\n /** @param {?number} tabIndex */\n\n }, {\n key: 'savedTabIndex',\n set: function set(tabIndex) {\n this._throwIfDestroyed();\n this._savedTabIndex = tabIndex;\n }\n\n /** @return {?number} */\n ,\n get: function get() {\n this._throwIfDestroyed();\n return this._savedTabIndex;\n }\n }]);\n\n return InertNode;\n }();\n\n /**\n * InertManager is a per-document singleton object which manages all inert roots and nodes.\n *\n * When an element becomes an inert root by having an `inert` attribute set and/or its `inert`\n * property set to `true`, the `setInert` method creates an `InertRoot` object for the element.\n * The `InertRoot` in turn registers itself as managing all of the element's focusable descendant\n * nodes via the `register()` method. The `InertManager` ensures that a single `InertNode` instance\n * is created for each such node, via the `_managedNodes` map.\n */\n\n\n var InertManager = function () {\n /**\n * @param {!Document} document\n */\n function InertManager(document) {\n _classCallCheck(this, InertManager);\n\n if (!document) {\n throw new Error('Missing required argument; InertManager needs to wrap a document.');\n }\n\n /** @type {!Document} */\n this._document = document;\n\n /**\n * All managed nodes known to this InertManager. In a map to allow looking up by Node.\n * @type {!Map}\n */\n this._managedNodes = new Map();\n\n /**\n * All inert roots known to this InertManager. In a map to allow looking up by Node.\n * @type {!Map}\n */\n this._inertRoots = new Map();\n\n /**\n * Observer for mutations on `document.body`.\n * @type {!MutationObserver}\n */\n this._observer = new MutationObserver(this._watchForInert.bind(this));\n\n // Add inert style.\n addInertStyle(document.head || document.body || document.documentElement);\n\n // Wait for document to be loaded.\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', this._onDocumentLoaded.bind(this));\n } else {\n this._onDocumentLoaded();\n }\n }\n\n /**\n * Set whether the given element should be an inert root or not.\n * @param {!Element} root\n * @param {boolean} inert\n */\n\n\n _createClass(InertManager, [{\n key: 'setInert',\n value: function setInert(root, inert) {\n if (inert) {\n if (this._inertRoots.has(root)) {\n // element is already inert\n return;\n }\n\n var inertRoot = new InertRoot(root, this);\n root.setAttribute('inert', '');\n this._inertRoots.set(root, inertRoot);\n // If not contained in the document, it must be in a shadowRoot.\n // Ensure inert styles are added there.\n if (!this._document.body.contains(root)) {\n var parent = root.parentNode;\n while (parent) {\n if (parent.nodeType === 11) {\n addInertStyle(parent);\n }\n parent = parent.parentNode;\n }\n }\n } else {\n if (!this._inertRoots.has(root)) {\n // element is already non-inert\n return;\n }\n\n var _inertRoot = this._inertRoots.get(root);\n _inertRoot.destructor();\n this._inertRoots['delete'](root);\n root.removeAttribute('inert');\n }\n }\n\n /**\n * Get the InertRoot object corresponding to the given inert root element, if any.\n * @param {!Node} element\n * @return {!InertRoot|undefined}\n */\n\n }, {\n key: 'getInertRoot',\n value: function getInertRoot(element) {\n return this._inertRoots.get(element);\n }\n\n /**\n * Register the given InertRoot as managing the given node.\n * In the case where the node has a previously existing inert root, this inert root will\n * be added to its set of inert roots.\n * @param {!Node} node\n * @param {!InertRoot} inertRoot\n * @return {!InertNode} inertNode\n */\n\n }, {\n key: 'register',\n value: function register(node, inertRoot) {\n var inertNode = this._managedNodes.get(node);\n if (inertNode !== undefined) {\n // node was already in an inert subtree\n inertNode.addInertRoot(inertRoot);\n } else {\n inertNode = new InertNode(node, inertRoot);\n }\n\n this._managedNodes.set(node, inertNode);\n\n return inertNode;\n }\n\n /**\n * De-register the given InertRoot as managing the given inert node.\n * Removes the inert root from the InertNode's set of managing inert roots, and remove the inert\n * node from the InertManager's set of managed nodes if it is destroyed.\n * If the node is not currently managed, this is essentially a no-op.\n * @param {!Node} node\n * @param {!InertRoot} inertRoot\n * @return {?InertNode} The potentially destroyed InertNode associated with this node, if any.\n */\n\n }, {\n key: 'deregister',\n value: function deregister(node, inertRoot) {\n var inertNode = this._managedNodes.get(node);\n if (!inertNode) {\n return null;\n }\n\n inertNode.removeInertRoot(inertRoot);\n if (inertNode.destroyed) {\n this._managedNodes['delete'](node);\n }\n\n return inertNode;\n }\n\n /**\n * Callback used when document has finished loading.\n */\n\n }, {\n key: '_onDocumentLoaded',\n value: function _onDocumentLoaded() {\n // Find all inert roots in document and make them actually inert.\n var inertElements = slice.call(this._document.querySelectorAll('[inert]'));\n inertElements.forEach(function (inertElement) {\n this.setInert(inertElement, true);\n }, this);\n\n // Comment this out to use programmatic API only.\n this._observer.observe(this._document.body || this._document.documentElement, { attributes: true, subtree: true, childList: true });\n }\n\n /**\n * Callback used when mutation observer detects attribute changes.\n * @param {!Array} records\n * @param {!MutationObserver} self\n */\n\n }, {\n key: '_watchForInert',\n value: function _watchForInert(records, self) {\n var _this = this;\n records.forEach(function (record) {\n switch (record.type) {\n case 'childList':\n slice.call(record.addedNodes).forEach(function (node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n var inertElements = slice.call(node.querySelectorAll('[inert]'));\n if (matches.call(node, '[inert]')) {\n inertElements.unshift(node);\n }\n inertElements.forEach(function (inertElement) {\n this.setInert(inertElement, true);\n }, _this);\n }, _this);\n break;\n case 'attributes':\n if (record.attributeName !== 'inert') {\n return;\n }\n var target = /** @type {!Element} */record.target;\n var inert = target.hasAttribute('inert');\n _this.setInert(target, inert);\n break;\n }\n }, this);\n }\n }]);\n\n return InertManager;\n }();\n\n /**\n * Recursively walk the composed tree from |node|.\n * @param {!Node} node\n * @param {(function (!Element))=} callback Callback to be called for each element traversed,\n * before descending into child nodes.\n * @param {?ShadowRoot=} shadowRootAncestor The nearest ShadowRoot ancestor, if any.\n */\n\n\n function composedTreeWalk(node, callback, shadowRootAncestor) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n var element = /** @type {!Element} */node;\n if (callback) {\n callback(element);\n }\n\n // Descend into node:\n // If it has a ShadowRoot, ignore all child elements - these will be picked\n // up by the or elements. Descend straight into the\n // ShadowRoot.\n var shadowRoot = /** @type {!HTMLElement} */element.shadowRoot;\n if (shadowRoot) {\n composedTreeWalk(shadowRoot, callback, shadowRoot);\n return;\n }\n\n // If it is a element, descend into distributed elements - these\n // are elements from outside the shadow root which are rendered inside the\n // shadow DOM.\n if (element.localName == 'content') {\n var content = /** @type {!HTMLContentElement} */element;\n // Verifies if ShadowDom v0 is supported.\n var distributedNodes = content.getDistributedNodes ? content.getDistributedNodes() : [];\n for (var i = 0; i < distributedNodes.length; i++) {\n composedTreeWalk(distributedNodes[i], callback, shadowRootAncestor);\n }\n return;\n }\n\n // If it is a element, descend into assigned nodes - these\n // are elements from outside the shadow root which are rendered inside the\n // shadow DOM.\n if (element.localName == 'slot') {\n var slot = /** @type {!HTMLSlotElement} */element;\n // Verify if ShadowDom v1 is supported.\n var _distributedNodes = slot.assignedNodes ? slot.assignedNodes({ flatten: true }) : [];\n for (var _i = 0; _i < _distributedNodes.length; _i++) {\n composedTreeWalk(_distributedNodes[_i], callback, shadowRootAncestor);\n }\n return;\n }\n }\n\n // If it is neither the parent of a ShadowRoot, a element, a \n // element, nor a element recurse normally.\n var child = node.firstChild;\n while (child != null) {\n composedTreeWalk(child, callback, shadowRootAncestor);\n child = child.nextSibling;\n }\n }\n\n /**\n * Adds a style element to the node containing the inert specific styles\n * @param {!Node} node\n */\n function addInertStyle(node) {\n if (node.querySelector('style#inert-style, link#inert-style')) {\n return;\n }\n var style = document.createElement('style');\n style.setAttribute('id', 'inert-style');\n style.textContent = '\\n' + '[inert] {\\n' + ' pointer-events: none;\\n' + ' cursor: default;\\n' + '}\\n' + '\\n' + '[inert], [inert] * {\\n' + ' -webkit-user-select: none;\\n' + ' -moz-user-select: none;\\n' + ' -ms-user-select: none;\\n' + ' user-select: none;\\n' + '}\\n';\n node.appendChild(style);\n }\n\n if (!Element.prototype.hasOwnProperty('inert')) {\n /** @type {!InertManager} */\n var inertManager = new InertManager(document);\n\n Object.defineProperty(Element.prototype, 'inert', {\n enumerable: true,\n /** @this {!Element} */\n get: function get() {\n return this.hasAttribute('inert');\n },\n /** @this {!Element} */\n set: function set(inert) {\n inertManager.setInert(this, inert);\n }\n });\n }\n})();\n"],"names":["canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","bind","f","setTimeout","clearNow","Timer","this","_call","_time","_next","timer","callback","delay","time","t","restart","wake","e","call","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","stop","_typeof","obj","Symbol","iterator","constructor","prototype","TypeError","transitionId","extend","props","i","timingDefaults","duration","ease","Events","config","_this","instance","Constructor","_classCallCheck","start","interrupt","end","events","Object","keys","forEach","d","Error","func","called","once","_objectSpread","target","arguments","length","source","ownKeys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","enumerable","key","_defineProperty","value","defineProperty","configurable","writable","_defineProperties","descriptor","BaseNode","state","protoProps","staticProps","Array","isArray","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","next","done","item","parse","err","return","transitionData","transitions","update","clone","timing","stateKey","_this$setState","prop","tweens","attr","val","push","getTween","setState","_objectSpread2","_ref","_objectSpread3","_ref2","_objectSpread4","_ref3","_this$setState2","_this$setState3","status","endValue","nameSpace","_this2","begValue","getInterpolator","_this2$setState","_objectSpread5","_ref4","transition","init","id","_this3","n","tid","tick","j","res","_","total","baseGet","baseSet","castPath","module","exports","object","paths","predicate","index","result","path","assignValue","isIndex","isObject","toKey","customizer","lastIndex","nested","newValue","objValue","array","arrayMap","baseIteratee","basePickBy","getAllKeysIn","Wrapper","styled","FiltersSearch","ChannelsSelector","wideBreakpoints","mobile","isShowSearch","channels","selectedFilter","preparedThemes","onChangeChannelTheme","onShowSearchInput","onClearSearch","onChangeSearch","isMobile","useMatchMedia","searchRef","useRef","ST","data-test","SearchInput","ref","placeholder","items","onClear","onChange","onClick","stopPropagation","isClearBtnHide","Select","options","width","maxMenuHeight","noOptionsMessage","isDisabled","styles","singleValue","provided","color","COLORS","Disabled","Button","Icon","SearchNormal","size","bType","disabled","rounded","ChannelLink","ChannelImageBox","BorderRadius","labelRadius","ChannelName","FONTS","S","TextPrimary","link","title","image","inactiveLink","className","useCallback","preventDefault","href","img","src","alt","ChannelText","List","ChannelWithMargin","Channel","channelsFiltersIsApply","map","channel","channelInfo","url","logo","channelId","getChannelThemesWithCounts","createSelector","bundles","tariffChannels","channelThemes","label","name","weight","theme","themeChannels","categoryId","hdCount","quality","sdCount","tmpTheme","allLabel","hdLabel","quantityHdChannels","hasChannels","SBasePopup","BasePopup","HideSearchBtn","BaseButton","SThrobber","Throbber","freePackets","isOpen","onClose","isOfferChannels","dispatch","useDispatch","useSelector","city","currentCity","providerId","provider","allChannels","getTariffChannelsWithId","getTariffChannels","useState","setIsShowSearch","isLoading","setIsLoading","setValue","toogleShowSearchInput","flag","onClickPopupWrapper","clearSearchChannels","onCloseHandler","clearChannelThemeSelection","clearChannelsBundleId","setFilterForChannelsAction","onApplySearch","search","searchChannels","toLowerCase","trim","data","onChangeChannelThemeAction","useEffect","current","focus","getChannelThemes","getAllChannels","getOfferChannelPackages","getChannelPackages","height","text","type","btnTypes","GHOST","btnSizes","MIDDLE","iconsSprite","symbolId","description","ChannelsFilters","ChannelsList","reduce","quantityHd","hasProp","searchCategory","themes","category","createTariffBuilder","price","salePackage2in1","is_cottage","free_packets","price_final","promo_price_final","promo_duration_final","color_title_start","color_title_end","alias","color_text","image_background","image_background_webp","sort_on_bundles","sort_on_internet","sort_on_internet_lines","tariffLine","body","sort","title_short","url_landing","available_on_main_page","available_on_internet_page","additionalProducts","hasRequiredEquipment","lineId","location","offerContents","sale_package_id","uniqueId","productType","salePackageLinks","speed_int","speed_bonus","tariff_name_display","CheckboxFilters","breakePoints","tablet","CheckboxWrap","SBaseCheckbox","BaseCheckbox","MediumXS","checkType","checked","activeItem","activeDefaultTabByTariffs","isDifferentColorText","colorTab","toggleLabels","useMemo","leftText","rightText","labels","values","setLabel","itemMenu","setItem","groupKey","EFilteredBundlesTypes","SET_GROUP_KEY","payload","currentItem","action","onMenuItemClick","toggledLabel","Toggle","textsValues","onChangeCallback","fontSize","activeTab","FiltersForTariffs","hasCityTariffs","hasVillageTariffs","tariffFiltersData","tariffSwitcherData","onToggleFilter","hasBothTariffs","isDisplay","FilterMenu","TariffSwitcherWrap","p","SCheckboxFilters","linear","colors","join","createGradient","fill","titleColor","TextWhite","children","hasImg","NonStaticContainer","$united","$position","$top","BlockContainer","rounder","$radius","indent","Label","textColor","bgColor","$right","$bottom","WebpImage","urlWebp","webpSrc","LazyLoadImage","OuterBlockRadius","borderColors","LabelStyle","backgroundColors","advantages","ServiceIncludesList","advantage","ServiceIncludesItem","dangerouslySetInnerHTML","__html","isAccordion","withBg","colorText","onToggle","speed","AccServiceBlock","isClosed","defaultOpen","open","toggle","AccServiceTitle","AdvantagesList","ServiceBlock","ServiceTitle","tvDescriptions","openPopup","desc","withDetails","details","div","ServiceTvDetails","channelText","getPluralize","channelPluralize","totalChannels","IncludesList","monthText","monthPluralize","getLocalePrice","toLocaleString","maximumFractionDigits","TariffCard","tariff","isAuth","openModal","onClickConnect","tiled","setSalePackageId","setShowRequestFormPopup","textForButton","analog","imageBackground","imageBackgroundWebp","includes","isCottage","priceAction","priceActionPeriod","titleColors","isNeedRequest","salePackageId","isZasmotris","toString","isConstructor","isMega","router","useRouter","query","isWebpUsed","useWebp","isOpenInternet","setIsOpenInternet","preparedSubscriptions","_offerContents","imageWebp","image_webp","_subscriptions","acc","spl","subscriptions","image_width","a","b","_additionalProducts","product_type","required","shopItem","image_for_tariff_card","image_for_tariff_card_webp","hasUrlBackground","resultBackground","currentBg","replace","promoPeriod","withSubscriptions","internetData","slice","tvData","onToggleHandler","isFullBuyVillageRedirect","isFullBuyVillage","onClickHandler","dataLayerPush","event","EVENTS","UAevent","CATEGORIES","tariffCards","ACTIONS","clickChooseTariff","split","code","detailPath","isMono","typeAndTextForButton","isPrivateSector","getButtonText","SECONDARY","bg","bgSize","Subscriptions","withSubs","InternetBlock","TvBlock","Cost","isMonthly","TariffCardWithPromo","promoLabel","imageIcon","imageIconWebp","WithPromoLabel","memo","ACBreakpoints","GridContainer","BgMain","H4","CardWrapper","css","BoxShadow","M","ContentSection","BgSurface","BgLight","TariffTitle","H3","leftColor","rightColor","getGradient","TariffDescription","XXS","SubsriptionsBlock","LeftArrow","isVisible","BgSecondary","withLeftBtn","withRightBtn","InnerContainer","RightArrow","ServicesSection","getBg","opacity","hex2rgb","AccordionInstance","GRAY_DARK","H5","Outline_Dark","MediumXXS","PriceSection","PricesBlock","TariffPrice","OldPrice","XS","TextHint","ActionLabel","StyledBaseButton","SubscriptionLabel","hasBorderRadius","visibleByDefault","innerBlock","imageHeight","cardInnerWidth","parentWithOneBtn","parentWithTwoBtn","buttonWidth","isVisibleLeftArrow","setIsVisibleLeftArrow","isVisibleRightArrow","setIsVisibleRightArrow","subscriptionsBlockWidth","setSubsBlockWidth","subsParentWidth","setSubsParentWidth","slideIndex","setSlideIndex","equipItems","subscriptionsSort","first","uniqueItems","subscription","findIndex","el","subscriptionsLabel","availableSubscriptionsLabel","clientWidth","subscriptionsSlides","slides","decreasingWidth","currIndex","splice","changeLeftPosition","directionVector","extremeSlideIndex","style","left","SubscriptionImage","ESortingKeys","line","baseTariffs","sortField","WEIGHT","isClientSide","onClientSide","setOnClientSide","csrf","selectCsrf","showRequestFormPopup","isResultOpened","resultTitle","resultText","resultType","EResultPopupStatus","SUCCESS","popup","setPopup","openPopupResult","ok","message","ERROR","submitRequest","params","dataParams","resp","fio","phone","product_id","check_call_type","plan","doRequest","apiRequest","requestByConnection","isSuccess","ERequestStatus","error","closePopup","sortedTariffsByKey","receivedTariffs","keyToSort","currObj","nextObj","preparedTariffs","tariffs","BUNDLES","INTERNET","INTERNET_LINES","renderTariffCards","productId","TariffLineCarousel","desktopSlideWidth","mobileSlideWidth","PopupCallBack","buttonText","option","applicationForm","PopupResult","breakpoints","LineContainer","LineTitle","H2","LineBody","TextSecondary","Link","Brand_Blue","CustomSwiper","NukaCarousel","NoSwiperContainer","EVisibleSlides","desktop","sDesktop","laptop","hideArrows","setHideArrows","slideWidth","setSlideWidth","isDesktop","useMatchMediaByWidth","isSDesktop","isLaptop","afterSlide","withoutDots","withoutArrows","framePadding","cellSpacing","slidesToScroll","disableEdgeSwiping","easing","edgeEasing","displayName","getABNVariant","lDesktop","sMobile","InternetRepresent","StyledGridContainer","withCellSpacing","ImageBlock","InnerBlockRadius","Bottom","Text","arrowRight","Header","TariffLineCard","onBtnClick","webpUrl","Container","Col","ImageCol","H1","Image","scrollRef","advertising","$desktop","$mobile","AdvertisingLabelWithTooltip","companyName","erid","tooltip","position","title_header","body_for_line_page","button_css_type","PRIMARY","tariffLines","scrollIntoView","button_text","image_promo","image_promo_webp","reduceByIsCottage","list","formatter","formattedTariff","cottage","notCottage","NO_TARIFFS","mono","common","hasBundles","require","backgroundColor","HeaderText","HeaderImage","background_same","title_color_same","desc_same","title_same","Block","BlockInfo","Title","L","sectionRef","filterItems","TariffLines","filtersCottage","monoTariff","initialIsInternetActive","initialFiltersState","initialSwitcherState","initialActiveFilter","activeSwitcher","setActiveSwitcher","filters","setFilters","activeFilter","setActiveFilter","isIncludesPopupOpen","setIsIncludesPopupOpen","activePopupContent","setActivePopupContent","isChannelPopupOpen","setIsChannelPopupOpen","selectedTariff","setSelectedTariff","tariffRef","menuItems","formattingBundleForCard","formattingTariffForCard","cottageBundles","cottageMono","notCottageBundles","notCottageMono","getTariffsReduceByIsCottage","filteredTariffs","currentTariffs","TariffLineHeader","title_body","PageSection","body_full","title_tariffs","body_tariffs","filterId","currentActive","currentFilters","stateCheckedForFilter","TariffLine","recommendedTariffLines","CardSwiper","SameTariffLineCard","contents","title_includes","body_includes","find","handleIncludesClick","fullWidth","ChannelListPopup","reserveColor","black","availableClient","Boolean","available_client","availableGuest","available_guest","availableOnMainPage","availableOnInternetPage","fullSaleId","full_sale_id","salePackage3in1","headingColor","white","imageInHead","isSelfOrder","is_self_order","line_id","priceConnect","connect_price","priceIncludedVas","price_included_vas","Number","tariff_id","productIdForBilling","promoDuration","promo_duration","promoDurationType","promo_dur_type","promoted","promote","sortOnBundles","sortOnInternet","sortOnInternetLines","speedAction","speedActionPeriod","speed_bonus_duration","subscriptionsSummary","analogCount","analog_count","descriptionFull","description_full","hd_count","price_connect_internet","price_connect_tv","sd_count","tariff_name","hasOwnProperty","saveBanner","banner","GET_BUNDLES_BANNER","changeChannelsBundleId","CHANNELS_PACKAGE_ID","CLEAR_CHANNELS_PACKAGE_ID","saveTariffs","selfOrder","GET_BUNDLES_TARIFFS_SELF_ORDER","GET_BUNDLES_TARIFFS","saveTariffLinesAvailableOnBundles","lines","GET_TARIFF_LINES","response","apiEPG","getAllChannelsRequest","with","button","lcn","chid","xvid","epgId","display","bids","packets","billing_id","thid","GET_ALL_CHANNELS","applyChannelsFilters","APPLY_CHANNELS_FILTERS","searchValue","SET_SEARCH_CHANNELS_FILTER","setSearchChannelFilter","console","info","clearSearchChannelFilter","filterChannelsByTheme","themeId","SET_THEME_CHANNELS_FILTER","setChannelsThemeFilter","CLEAR_THEME_CHANNELS_FILTER","CLEAR_SEARCH_CHANNELS_FILTER","getState","formattedThemes","getCategories","order","rndId","isHd","GET_CHANNEL_THEMES","saveTariffChannels","packages","SET_TARIFF_CHANNELS","packagesIds","String","Set","SET_FILTER_FOR_CHANNELS","getTariffsSelector","get","filteredChannels","selectAllTariffs","internet","formatBundles","formatInternets","selectInternetTariffByAlias","selectTariffsByType","filteredBundles","selected","selectedFilters","actualGroupKey","group","cityBundles","villageBundles","cityInternet","villageInternet","getPrice","selectMinCostedTariff","minCostedTariff","seo_description","selectAvailableOnInternetPageTariffs","allTariffs","selectAndSortAvailableOnInternetPageTariffs","tariffsAvailableOnInternetPage","tariffA","tariffB","speedDiff","priceDiff","uri","method","queryParams","headers","getChannels","pluralize","variants","abs","Math","getVariant","dayPluralize","bonusPluralize","circleIn","sqrt","circleOut","circleInOut","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","custom","pow","exponent","polyOut","polyInOut","pi","PI","halfPi","sinIn","cos","sinOut","sin","sinInOut","tpmt","x","expIn","expOut","expInOut","b1","b0","bounceIn","bounceOut","bounceInOut","overshoot","backIn","s","backOut","backInOut","tau","elasticIn","asin","max","amplitude","period","elasticOut","elasticInOut","getSlideHeight","childCount","count","listWidth","spacingOffset","calculatedHeight","vertical","slideHeight","heightMode","getAlignmentOffset","offset","cellAlign","frameWidth","getDecoratorStyles","top","transform","WebkitTransform","msTransform","right","bottom","enumerableOnly","symbols","apply","getOwnPropertyDescriptors","defineProperties","defaultButtonStyles","border","background","padding","textTransform","cursor","PreviousButton","_props$defaultControl","defaultControlsConfig","prevButtonClassName","_props$defaultControl2","prevButtonStyle","prevButtonText","currentSlide","wrapAround","slideCount","previousSlide","NextButton","slidesToShow","scrollMode","nextButtonClassName","_defaultControlsConfi","nextButtonStyle","nextButtonText","positionValue","buttonDisabled","alignmentOffset","relativePosition","endPosition","nextButtonDisabled","nextSlide","PagingDots","indexes","dotIndexes","lastDotIndex","slidesToShowIsDecimal","getDotIndexes","_props$defaultControl3","pagingDotsContainerClassName","pagingDotsClassName","_props$defaultControl4","pagingDotsStyle","margin","listStyleType","active","isActive","goToSlide","focusable","cx","cy","r","addEvent","elem","eventHandle","removeEvent","removeEventListener","detachEvent","getSlideClassName","getPropsByTransitionMode","transitionMode","updatedDefaults","parseInt","swipeDirection","x1","x2","y1","y2","xDist","yDist","atan2","swipeAngle","round","calcSomeInitialState","_getPropsByTransition","initialSlideHeight","initialSlideWidth","frameHeight","handleSelfFocus","currentTarget","_extends","assign","_setPrototypeOf","o","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","ScrollTransition","_React$Component","subClass","superClass","create","_inherits","_super","getListStyles","currentSlideIndex","peekSlide","animation","slideOffset","targetPosition","startSlideIndex","min","floor","slidesOutOfView","ceil","slidesOutOfViewBefore","slidesOutOfViewAfter","isWrapping","direction","getSlideDirection","isWrappingAround","temp","slidesBefore","slidesAfter","distanceFromStart","_this$props","child","fullSlideWidth","offsetWidth","remainingWidth","fullSlidesBefore","fullSlidesAfter","fullSlidesAuto","fullyVisibleSlides","isFullyVisible","inert","role","getSlideStyles","tabIndex","getSlideTargetPosition","transformScale","zoomScale","boxSizing","marginBottom","marginLeft","marginRight","marginTop","MozBoxSizing","verticalAlign","deltaX","deltaY","hasInteraction","dragging","touchAction","formatChildren","propTypes","defaultProps","FadeTransition","fadeFromSlide","fadeFrom","fadeTo","fade","fadeToPosition","distance","visibility","opacityAndLeftMap","getSlideOpacityAndLeftMap","getContainerStyles","ScrollTransition3D","relativeDistanceToCurrentSlide","getRelativeDistanceToCurrentSlide","getZoomOffsetFor","visible","getDistanceToCurrentSlide","relativeDistanceToCurrent","referenceIndex","_this$props2","getDistance","_this$props3","distanceByLeftEge","distanceByRightEdge","absoluteDirectDistance","opacityScale","_this$props4","getTransformScale","getOpacityScale","zIndex","slideListMargin","scroll","scroll3d","overflow","clip","whiteSpace","getValidChildren","toArray","getMax","getHeightOfSlide","slide","totalHeight","offsetHeight","findMaxHeightSlideInRange","maxHeight","_i","_i2","ensureIndexInBounds","newIndex","findCurrentHeightSlide","alignment","startIndex","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","Carousel","clickDisabled","latestTransitioningIndex","timers","touchObject","controlsMap","funcName","keyCodeConfig","firstSlide","lastSlide","pause","childNodesMutationObs","disableAnimation","resetWrapAroundPosition","wrapToIndex","hasFocus","autoplayIterator","calcSlideHeightAndWidth","getChildNodes","getMouseEvents","getOffsetDeltas","getTargetLeft","getTouchEvents","blockEvent","handleFocus","handleBlur","handleClick","handleKeyPress","handleMouseOut","handleMouseOver","handleSwipe","onResize","onVisibilityChange","renderControls","resetAutoplay","setDimensions","setLeft","setSlideHeightAndWidth","startAutoplay","stopAutoplay","establishChildNodesMutationObserver","mounted","bindEvents","autoplay","keyCodeMap","getKeyCodeMap","getLockScrollEvents","lockTouchScroll","initializeCarouselHeight","prevProps","prevState","slideChanged","heightModeChanged","axisChanged","childrenChanged","getCurrentChildNodeImg","isWrapped","prevSlideCount","slideCountChanged","heightMismatches","curr","shouldUpdate","unbindEvents","disconnectChildNodesMutationObserver","unlockTouchScroll","initializeHeight","node","childNodes","MutationObserver","_childNodesArray","childNode","observe","attributeFilter","attributeOldValue","attributes","characterData","characterDataOldValue","childList","subtree","disconnect","startX","touches","pageX","startY","pageY","_this4","passive","_this5","swiping","onTouchStart","onTouchEnd","onTouchMove","onDragStart","endX","endY","onTouchCancel","_this6","onMouseOver","onMouseOut","onMouseDown","clientX","clientY","onMouseMove","onMouseUp","onMouseLeave","autoplayPaused","pauseOnHover","pauseAutoplay","unpauseAutoplay","metaKey","shiftKey","altKey","ctrlKey","nativeEvent","_this7","touchLength","enableKeyboardControls","keyCode","actionName","autoplayReverse","autoplayID","autoplayInterval","touchOffset","isNaN","tx","ty","_this$state","_this$getOffsetDeltas","lastSlideLimit","offsetTy","offsetTx","_this8","beforeSlide","endSlide","_this$state2","targetSlideIndex","swipeDistance","leftAlignSlideIndex","nextSlideIndex","_this$state3","hidden","calculateSlideHeight","frame","_this$calcSlideHeight2","stateCb","_getPropsByTransition2","_this$calcSlideHeight3","_getPropsByTransition3","currentChildNode","getElementsByTagName","newLeft","newTop","_this9","withoutControls","controlChildren","containerClassName","getControlsContainerStyles","propVertical","stateFrameWidth","propWidth","propHeight","_this10","_this$state4","frameOverflow","renderAnnounceSlideMessage","frameStyles","touchEvents","mouseEvents","TransitionControl","validChildren","_this$getOffsetDeltas2","startTx","startTy","onFocus","onBlur","innerRef","onClickCapture","Animate","A","show","_this10$getOffsetDelt","isEdgeSwiping","ariaProps","addAccessibility","autoGenerateStyleTag","renderBottomCenterControls","renderBottomLeftControls","renderBottomRightControls","renderCenterCenterControls","renderCenterLeftControls","renderCenterRightControls","renderTopCenterControls","renderTopLeftControls","renderTopRightControls","ArrowSvg","attrs","svg","Dot","customStyles","dot","DotContainer","dotContainer","activeLineAnimation","keyframes","ActiveLine","activeDot","DotsContainer","dotsContainer","customDotsStyles","getDefaultControlsContainerStyles","customArrow","customDots","pausedAutoplay","setPausedAutoplay","Arrow","CustomArrow","DefaultArrow","Dots","CustomDots","DefaultDots","swiperRef","NukaSwiper","StylesTab","Outline_Light","TabLeft","TabRight","LayoutLeft","translateValue","LayoutRight","ButtonPrimary","args","translateData","isRightTabActive","GRAY_LIGHT","getCheckboxSizes","getSizes","checkboxSizes","font","invertColor","TextDisabled","inputSize","withLabel","rMargin","BgError","Control","checkMark","iconWidth","iconHeight","promoMark","promoIconSize","onChangeHandler","input","MediumS","radioSizes","radioCheckSize","SearchBtnWrap","isInactive","SearchIcon","SearchBtn","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin","SearchWrapper","Input","InputSimple","BtnWrap","Btn","ClearBtn","forwardRef","onSearch","isSearchBtnHide","isSearchBtnInactive","searchHandler","createSvg","g","bordered","borderWidth","radius","mobilePadding","simple","light","colorArrow","backgroundIcon","borderIcon","colorArrowIsOpen","backgroundIconIsOpen","borderIconIsOpen","componentRadius","storyColor","dark","AccordionTitle","desktopFont","mobileFont","Border","AccordionBody","DEFAULT_THEME","Accordion","render","onOpen","customTheme","withDividingBorder","rest","ThemeProvider","itemProp","xmlns","circle","strokeMiterlimit","itemScope","itemType","React","PropTypes","RubleSymbol","fromCharCode","previousCost","CostWrapper","PreviousCost","TextInfo","_react","nodeInterop","__esModule","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","set","_interopRequireWildcard","_NodeGroup","_interopRequireDefault","_utils","WeakMap","cacheBabelInterop","cacheNodeInterop","valueOf","keyAccessor","_Component","enter","leave","interpolation","nodes","renderedChildren","Children","only","Component","numeric","_default","_kapellmeister","_mergeKeys","_types","NodeGroup","nodeKeys","nodeHash","unmounting","pending","nextNodeKeys","k","isTransitioning","LEAVE","Node","_BaseNode","_super2","ENTER","nextProps","keyIndex","nextKeyIndex","_k","UPDATE","mergedNodeKeys","_i3","_k2","startInterval","animate","stopTransitions","currNodeKeys","currKeyIndex","allKeys","nextOrderA","nextOrderB","currOrderA","currOrderB","pivot","_pivot","beg","_createClass","matches","Element","msMatchesSelector","_focusableElementsString","InertRoot","rootElement","inertManager","_inertManager","_rootElement","_managedNodes","hasAttribute","_savedAriaHidden","getAttribute","setAttribute","_makeSubtreeUnfocusable","_observer","_onMutation","removeAttribute","inertNode","_unmanageNode","startNode","composedTreeWalk","_visitNode","activeElement","contains","root","nodeType","DOCUMENT_FRAGMENT_NODE","parentNode","blur","ELEMENT_NODE","element","_adoptInertRoot","_manageNode","register","add","deregister","inertSubroot","getInertRoot","setInert","managedNodes","savedInertNode","records","record","addedNodes","removedNodes","_unmanageSubtree","attributeName","managedNode","ariaHidden","InertNode","inertRoot","_node","_overrodeFocusMethod","_inertRoots","_savedTabIndex","_destroyed","ensureUntabbable","_throwIfDestroyed","destroyed","hasSavedTabIndex","destructor","InertManager","_document","Map","_watchForInert","addInertStyle","head","documentElement","readyState","_onDocumentLoaded","parent","addInertRoot","removeInertRoot","querySelectorAll","inertElement","inertElements","unshift","shadowRootAncestor","shadowRoot","localName","content","distributedNodes","getDistributedNodes","slot","_distributedNodes","assignedNodes","flatten","firstChild","nextSibling","querySelector","textContent","appendChild"],"sourceRoot":""}