').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');\n\n \t\tthis._controls.$absolute.on('click', 'button', $.proxy(function(e) {\n \t\t\tvar index = $(e.target).parent().is(this._controls.$absolute)\n \t\t\t\t? $(e.target).index() : $(e.target).parent().index();\n\n \t\t\te.preventDefault();\n\n \t\t\tthis.to(index, settings.dotsSpeed);\n \t\t}, this));\n\n \t\t/*$el.on('focusin', function() {\n \t\t\t$(document).off(\".carousel\");\n\n \t\t\t$(document).on('keydown.carousel', function(e) {\n \t\t\t\tif(e.keyCode == 37) {\n \t\t\t\t\t$el.trigger('prev.owl')\n \t\t\t\t}\n \t\t\t\tif(e.keyCode == 39) {\n \t\t\t\t\t$el.trigger('next.owl')\n \t\t\t\t}\n \t\t\t});\n \t\t});*/\n\n \t\t// override public methods of the carousel\n \t\tfor (override in this._overrides) {\n \t\t\tthis._core[override] = $.proxy(this[override], this);\n \t\t}\n \t};\n\n \t/**\n \t * Destroys the plugin.\n \t * @protected\n \t */\n \tNavigation.prototype.destroy = function() {\n \t\tvar handler, control, property, override, settings;\n \t\tsettings = this._core.settings;\n\n \t\tfor (handler in this._handlers) {\n \t\t\tthis.$element.off(handler, this._handlers[handler]);\n \t\t}\n \t\tfor (control in this._controls) {\n \t\t\tif (control === '$relative' && settings.navContainer) {\n \t\t\t\tthis._controls[control].html('');\n \t\t\t} else {\n \t\t\t\tthis._controls[control].remove();\n \t\t\t}\n \t\t}\n \t\tfor (override in this.overides) {\n \t\t\tthis._core[override] = this._overrides[override];\n \t\t}\n \t\tfor (property in Object.getOwnPropertyNames(this)) {\n \t\t\ttypeof this[property] != 'function' && (this[property] = null);\n \t\t}\n \t};\n\n \t/**\n \t * Updates the internal state.\n \t * @protected\n \t */\n \tNavigation.prototype.update = function() {\n \t\tvar i, j, k,\n \t\t\tlower = this._core.clones().length / 2,\n \t\t\tupper = lower + this._core.items().length,\n \t\t\tmaximum = this._core.maximum(true),\n \t\t\tsettings = this._core.settings,\n \t\t\tsize = settings.center || settings.autoWidth || settings.dotsData\n \t\t\t\t? 1 : settings.dotsEach || settings.items;\n\n \t\tif (settings.slideBy !== 'page') {\n \t\t\tsettings.slideBy = Math.min(settings.slideBy, settings.items);\n \t\t}\n\n \t\tif (settings.dots || settings.slideBy == 'page') {\n \t\t\tthis._pages = [];\n\n \t\t\tfor (i = lower, j = 0, k = 0; i < upper; i++) {\n \t\t\t\tif (j >= size || j === 0) {\n \t\t\t\t\tthis._pages.push({\n \t\t\t\t\t\tstart: Math.min(maximum, i - lower),\n \t\t\t\t\t\tend: i - lower + size - 1\n \t\t\t\t\t});\n \t\t\t\t\tif (Math.min(maximum, i - lower) === maximum) {\n \t\t\t\t\t\tbreak;\n \t\t\t\t\t}\n \t\t\t\t\tj = 0, ++k;\n \t\t\t\t}\n \t\t\t\tj += this._core.mergers(this._core.relative(i));\n \t\t\t}\n \t\t}\n \t};\n\n \t/**\n \t * Draws the user interface.\n \t * @todo The option `dotsData` wont work.\n \t * @protected\n \t */\n \tNavigation.prototype.draw = function() {\n \t\tvar difference,\n \t\t\tsettings = this._core.settings,\n \t\t\tdisabled = this._core.items().length <= settings.items,\n \t\t\tindex = this._core.relative(this._core.current()),\n \t\t\tloop = settings.loop || settings.rewind;\n\n \t\tthis._controls.$relative.toggleClass('disabled', !settings.nav || disabled);\n\n \t\tif (settings.nav) {\n \t\t\tthis._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(true));\n \t\t\tthis._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(true));\n \t\t}\n\n \t\tthis._controls.$absolute.toggleClass('disabled', !settings.dots || disabled);\n\n \t\tif (settings.dots) {\n \t\t\tdifference = this._pages.length - this._controls.$absolute.children().length;\n\n \t\t\tif (settings.dotsData && difference !== 0) {\n \t\t\t\tthis._controls.$absolute.html(this._templates.join(''));\n \t\t\t} else if (difference > 0) {\n \t\t\t\tthis._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));\n \t\t\t} else if (difference < 0) {\n \t\t\t\tthis._controls.$absolute.children().slice(difference).remove();\n \t\t\t}\n\n \t\t\tthis._controls.$absolute.find('.active').removeClass('active');\n \t\t\tthis._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');\n \t\t}\n \t};\n\n \t/**\n \t * Extends event data.\n \t * @protected\n \t * @param {Event} event - The event object which gets thrown.\n \t */\n \tNavigation.prototype.onTrigger = function(event) {\n \t\tvar settings = this._core.settings;\n\n \t\tevent.page = {\n \t\t\tindex: $.inArray(this.current(), this._pages),\n \t\t\tcount: this._pages.length,\n \t\t\tsize: settings && (settings.center || settings.autoWidth || settings.dotsData\n \t\t\t\t? 1 : settings.dotsEach || settings.items)\n \t\t};\n \t};\n\n \t/**\n \t * Gets the current page position of the carousel.\n \t * @protected\n \t * @returns {Number}\n \t */\n \tNavigation.prototype.current = function() {\n \t\tvar current = this._core.relative(this._core.current());\n \t\treturn $.grep(this._pages, $.proxy(function(page, index) {\n \t\t\treturn page.start <= current && page.end >= current;\n \t\t}, this)).pop();\n \t};\n\n \t/**\n \t * Gets the current succesor/predecessor position.\n \t * @protected\n \t * @returns {Number}\n \t */\n \tNavigation.prototype.getPosition = function(successor) {\n \t\tvar position, length,\n \t\t\tsettings = this._core.settings;\n\n \t\tif (settings.slideBy == 'page') {\n \t\t\tposition = $.inArray(this.current(), this._pages);\n \t\t\tlength = this._pages.length;\n \t\t\tsuccessor ? ++position : --position;\n \t\t\tposition = this._pages[((position % length) + length) % length].start;\n \t\t} else {\n \t\t\tposition = this._core.relative(this._core.current());\n \t\t\tlength = this._core.items().length;\n \t\t\tsuccessor ? position += settings.slideBy : position -= settings.slideBy;\n \t\t}\n\n \t\treturn position;\n \t};\n\n \t/**\n \t * Slides to the next item or page.\n \t * @public\n \t * @param {Number} [speed=false] - The time in milliseconds for the transition.\n \t */\n \tNavigation.prototype.next = function(speed) {\n \t\t$.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);\n \t};\n\n \t/**\n \t * Slides to the previous item or page.\n \t * @public\n \t * @param {Number} [speed=false] - The time in milliseconds for the transition.\n \t */\n \tNavigation.prototype.prev = function(speed) {\n \t\t$.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);\n \t};\n\n \t/**\n \t * Slides to the specified item or page.\n \t * @public\n \t * @param {Number} position - The position of the item or page.\n \t * @param {Number} [speed] - The time in milliseconds for the transition.\n \t * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.\n \t */\n \tNavigation.prototype.to = function(position, speed, standard) {\n \t\tvar length;\n\n \t\tif (!standard && this._pages.length) {\n \t\t\tlength = this._pages.length;\n \t\t\t$.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);\n \t\t} else {\n \t\t\t$.proxy(this._overrides.to, this._core)(position, speed);\n \t\t}\n \t};\n\n \t$.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;\n\n })(window.Zepto || window.jQuery, window, document);\n (function($, window, document, undefined) {\n\n \t/**\n \t * Creates the hash plugin.\n \t * @class The Hash Plugin\n \t * @param {Owl} carousel - The Owl Carousel\n \t */\n \tvar Hash = function(carousel) {\n \t\t/**\n \t\t * Reference to the core.\n \t\t * @protected\n \t\t * @type {Owl}\n \t\t */\n \t\tthis._core = carousel;\n\n \t\t/**\n \t\t * Hash index for the items.\n \t\t * @protected\n \t\t * @type {Object}\n \t\t */\n \t\tthis._hashes = {};\n\n \t\t/**\n \t\t * The carousel element.\n \t\t * @type {jQuery}\n \t\t */\n \t\tthis.$element = this._core.$element;\n\n \t\t/**\n \t\t * All event handlers.\n \t\t * @protected\n \t\t * @type {Object}\n \t\t */\n \t\tthis._handlers = {\n \t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n \t\t\t\tif (e.namespace && this._core.settings.startPosition === 'URLHash') {\n \t\t\t\t\t$(window).trigger('hashchange.owl.navigation');\n \t\t\t\t}\n \t\t\t}, this),\n \t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n \t\t\t\tif (e.namespace) {\n \t\t\t\t\tvar hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');\n\n \t\t\t\t\tif (!hash) {\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n\n \t\t\t\t\tthis._hashes[hash] = e.content;\n \t\t\t\t}\n \t\t\t}, this),\n \t\t\t'changed.owl.carousel': $.proxy(function(e) {\n \t\t\t\tif (e.namespace && e.property.name === 'position') {\n \t\t\t\t\tvar current = this._core.items(this._core.relative(this._core.current())),\n \t\t\t\t\t\thash = $.map(this._hashes, function(item, hash) {\n \t\t\t\t\t\t\treturn item === current ? hash : null;\n \t\t\t\t\t\t}).join();\n\n \t\t\t\t\tif (!hash || window.location.hash.slice(1) === hash) {\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n\n \t\t\t\t\twindow.location.hash = hash;\n \t\t\t\t}\n \t\t\t}, this)\n \t\t};\n\n \t\t// set default options\n \t\tthis._core.options = $.extend({}, Hash.Defaults, this._core.options);\n\n \t\t// register the event handlers\n \t\tthis.$element.on(this._handlers);\n\n \t\t// register event listener for hash navigation\n \t\t$(window).on('hashchange.owl.navigation', $.proxy(function(e) {\n \t\t\tvar hash = window.location.hash.substring(1),\n \t\t\t\titems = this._core.$stage.children(),\n \t\t\t\tposition = this._hashes[hash] && items.index(this._hashes[hash]);\n\n \t\t\tif (position === undefined || position === this._core.current()) {\n \t\t\t\treturn;\n \t\t\t}\n\n \t\t\tthis._core.to(this._core.relative(position), false, true);\n \t\t}, this));\n \t};\n\n \t/**\n \t * Default options.\n \t * @public\n \t */\n \tHash.Defaults = {\n \t\tURLhashListener: false\n \t};\n\n \t/**\n \t * Destroys the plugin.\n \t * @public\n \t */\n \tHash.prototype.destroy = function() {\n \t\tvar handler, property;\n\n \t\t$(window).off('hashchange.owl.navigation');\n\n \t\tfor (handler in this._handlers) {\n \t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n \t\t}\n \t\tfor (property in Object.getOwnPropertyNames(this)) {\n \t\t\ttypeof this[property] != 'function' && (this[property] = null);\n \t\t}\n \t};\n\n \t$.fn.owlCarousel.Constructor.Plugins.Hash = Hash;\n\n })(window.Zepto || window.jQuery, window, document);\n (function($, window, document, undefined) {\n\n \tvar style = $('
').get(0).style,\n \t\tprefixes = 'Webkit Moz O ms'.split(' '),\n \t\tevents = {\n \t\t\ttransition: {\n \t\t\t\tend: {\n \t\t\t\t\tWebkitTransition: 'webkitTransitionEnd',\n \t\t\t\t\tMozTransition: 'transitionend',\n \t\t\t\t\tOTransition: 'oTransitionEnd',\n \t\t\t\t\ttransition: 'transitionend'\n \t\t\t\t}\n \t\t\t},\n \t\t\tanimation: {\n \t\t\t\tend: {\n \t\t\t\t\tWebkitAnimation: 'webkitAnimationEnd',\n \t\t\t\t\tMozAnimation: 'animationend',\n \t\t\t\t\tOAnimation: 'oAnimationEnd',\n \t\t\t\t\tanimation: 'animationend'\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\ttests = {\n \t\t\tcsstransforms: function() {\n \t\t\t\treturn !!test('transform');\n \t\t\t},\n \t\t\tcsstransforms3d: function() {\n \t\t\t\treturn !!test('perspective');\n \t\t\t},\n \t\t\tcsstransitions: function() {\n \t\t\t\treturn !!test('transition');\n \t\t\t},\n \t\t\tcssanimations: function() {\n \t\t\t\treturn !!test('animation');\n \t\t\t}\n \t\t};\n\n \tfunction test(property, prefixed) {\n \t\tvar result = false,\n \t\t\tupper = property.charAt(0).toUpperCase() + property.slice(1);\n\n \t\t$.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) {\n \t\t\tif (style[property] !== undefined) {\n \t\t\t\tresult = prefixed ? property : true;\n \t\t\t\treturn false;\n \t\t\t}\n \t\t});\n\n \t\treturn result;\n \t}\n\n \tfunction prefixed(property) {\n \t\treturn test(property, true);\n \t}\n\n \tif (tests.csstransitions()) {\n \t\t/* jshint -W053 */\n \t\t$.support.transition = new String(prefixed('transition'));\n \t\t$.support.transition.end = events.transition.end[ $.support.transition ];\n \t}\n\n \tif (tests.cssanimations()) {\n \t\t/* jshint -W053 */\n \t\t$.support.animation = new String(prefixed('animation'));\n \t\t$.support.animation.end = events.animation.end[ $.support.animation ];\n \t}\n\n \tif (tests.csstransforms()) {\n \t\t/* jshint -W053 */\n \t\t$.support.transform = new String(prefixed('transform'));\n \t\t$.support.transform3d = tests.csstransforms3d();\n \t}\n\n })(window.Zepto || window.jQuery, window, document);\n\n var $ = window.jQuery;\r\n var ReactOwlCarousel = /** @class */ (function (_super) {\r\n __extends(ReactOwlCarousel, _super);\r\n function ReactOwlCarousel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.containerRef = function (inst) {\r\n _this.container = inst;\r\n };\r\n var _a = filterOptions(_this.props), options = _a[0], propsWithoutOptions = _a[1];\r\n _this.options = options;\r\n _this.propsWithoutOptions = propsWithoutOptions;\r\n return _this;\r\n }\r\n ReactOwlCarousel.prototype.componentDidMount = function () {\r\n this.$ele = $(this.container);\r\n this.create();\r\n };\r\n ReactOwlCarousel.prototype.componentWillReceiveProps = function () {\r\n this.destory();\r\n };\r\n ReactOwlCarousel.prototype.componentDidUpdate = function () {\r\n var _a = filterOptions(this.props), options = _a[0], propsWithoutOptions = _a[1];\r\n this.options = options;\r\n this.propsWithoutOptions = propsWithoutOptions;\r\n this.create();\r\n };\r\n ReactOwlCarousel.prototype.next = function (speed) {\r\n if (!this.$ele)\r\n throw new Error('OwlCarousel is not created');\r\n if (typeof speed === 'number') {\r\n this.$ele.trigger('next.owl.carousel', [speed]);\r\n }\r\n else {\r\n this.$ele.trigger('next.owl.carousel', speed);\r\n }\r\n };\r\n ReactOwlCarousel.prototype.prev = function (speed) {\r\n if (!this.$ele)\r\n throw new Error('OwlCarousel is not created');\r\n if (typeof speed === 'number') {\r\n this.$ele.trigger('prev.owl.carousel', [speed]);\r\n }\r\n else {\r\n this.$ele.trigger('prev.owl.carousel', speed);\r\n }\r\n };\r\n ReactOwlCarousel.prototype.to = function (position, speed) {\r\n if (!this.$ele)\r\n throw new Error('OwlCarousel is not created');\r\n if (typeof position === 'number' && typeof speed === 'number') {\r\n this.$ele.trigger('to.owl.carousel', [position, speed]);\r\n }\r\n else {\r\n this.$ele.trigger('to.owl.carousel');\r\n }\r\n };\r\n ReactOwlCarousel.prototype.create = function (options) {\r\n if (!this.$ele)\r\n throw new Error('OwlCarousel is not created');\r\n this.$ele.owlCarousel(options || this.options);\r\n };\r\n ReactOwlCarousel.prototype.destory = function () {\r\n if (!this.$ele)\r\n throw new Error('OwlCarousel is not created');\r\n this.$ele.trigger('destroy.owl.carousel');\r\n };\r\n ReactOwlCarousel.prototype.play = function (timeout, speed) {\r\n if (!this.$ele)\r\n throw new Error('OwlCarousel is not created');\r\n if (typeof timeout === 'number' && typeof speed === 'number') {\r\n this.$ele.trigger('play.owl.autoplay', [timeout, speed]);\r\n }\r\n else {\r\n this.$ele.trigger('play.owl.autoplay');\r\n }\r\n };\r\n ReactOwlCarousel.prototype.stop = function () {\r\n if (!this.$ele)\r\n throw new Error('OwlCarousel is not created');\r\n this.$ele.trigger('stop.owl.autoplay');\r\n };\r\n ReactOwlCarousel.prototype.render = function () {\r\n var _a = this.propsWithoutOptions, className = _a.className, props = __rest(_a, [\"className\"]);\r\n return (React__default.createElement(\"div\", __assign({ className: \"owl-carousel \" + className, ref: this.containerRef }, props)));\r\n };\r\n return ReactOwlCarousel;\r\n }(React.Component));\r\n var OPTIONS = new Set([\r\n 'items',\r\n 'margin',\r\n 'loop',\r\n 'center',\r\n 'mouseDrag',\r\n 'touchDrag',\r\n 'pullDrag',\r\n 'freeDrag',\r\n 'stagePadding',\r\n 'merge',\r\n 'mergeFit',\r\n 'autoWidth',\r\n 'startPosition',\r\n 'URLhashListener',\r\n 'nav',\r\n 'rewind',\r\n 'navText',\r\n 'navElement',\r\n 'slideBy',\r\n 'dots',\r\n 'dotsEach',\r\n 'dotData',\r\n 'lazyLoad',\r\n 'lazyContent',\r\n 'autoplay',\r\n 'autoplayTimeout',\r\n 'autoplayHoverPause',\r\n 'smartSpeed',\r\n 'fluidSpeed',\r\n 'autoplaySpeed',\r\n 'navSpeed',\r\n 'dotsSpeed',\r\n 'dragEndSpeed',\r\n 'callbacks',\r\n 'responsive',\r\n 'responsiveRefreshRate',\r\n 'responsiveBaseElement',\r\n 'video',\r\n 'videoHeight',\r\n 'videoWidth',\r\n 'animateOut',\r\n 'animateIn',\r\n 'fallbackEasing',\r\n 'info',\r\n 'nestedItemSelector',\r\n 'itemElement',\r\n 'stageElement',\r\n 'navContainer',\r\n 'dotsContainer',\r\n // 'CLASSES'\r\n 'refreshClass',\r\n 'loadingClass',\r\n 'loadedClass',\r\n 'rtlClass',\r\n 'dragClass',\r\n 'grabClass',\r\n 'stageClass',\r\n 'stageOuterClass',\r\n 'navContainerClass',\r\n 'navClass',\r\n 'controlsClass',\r\n 'dotClass',\r\n 'dotsClass',\r\n 'autoHeightClass',\r\n 'responsiveClass',\r\n // 'EVENTS'\r\n 'onInitialize',\r\n 'onInitialized',\r\n 'onResize',\r\n 'onResized',\r\n 'onRefresh',\r\n 'onRefreshed',\r\n 'onDrag',\r\n 'onDragged',\r\n 'onTranslate',\r\n 'onTranslated',\r\n 'onChange',\r\n 'onChanged',\r\n 'onLoadLazy',\r\n 'onLoadedLazy',\r\n 'onStopVideo',\r\n 'onPlayVideo',\r\n ]);\r\n function filterOptions(item) {\r\n var options = {};\r\n var propsWithoutOptions = {};\r\n Object.keys(item).forEach(function (key) {\r\n if (OPTIONS.has(key)) {\r\n options[key] = item[key];\r\n }\r\n else {\r\n propsWithoutOptions[key] = item[key];\r\n }\r\n });\r\n return [options, propsWithoutOptions];\r\n }\n\n return ReactOwlCarousel;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/umd/OwlCarousel.js\n// module id = 63\n// module chunks = 0","'use strict';\n\nmodule.exports = require('./lib/React');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/react.js\n// module id = 64\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactBaseClasses = require('./ReactBaseClasses');\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar createReactClass = require('./createClass');\nvar onlyChild = require('./onlyChild');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var lowPriorityWarning = require('./lowPriorityWarning');\n var canDefineProperty = require('./canDefineProperty');\n var ReactElementValidator = require('./ReactElementValidator');\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\nvar createMixin = function (mixin) {\n return mixin;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForSpread = false;\n var warnedForCreateMixin = false;\n __spread = function () {\n lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');\n warnedForSpread = true;\n return _assign.apply(null, arguments);\n };\n\n createMixin = function (mixin) {\n lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');\n warnedForCreateMixin = true;\n return mixin;\n };\n}\n\nvar React = {\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactBaseClasses.Component,\n PureComponent: ReactBaseClasses.PureComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: createReactClass,\n createFactory: createFactory,\n createMixin: createMixin,\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForCreateClass = false;\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function () {\n lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n\n Object.defineProperty(React, 'createClass', {\n get: function () {\n lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + \" Use a plain JavaScript class instead. If you're not yet \" + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');\n warnedForCreateClass = true;\n return createReactClass;\n }\n });\n }\n\n // React.DOM factories are deprecated. Wrap these methods so that\n // invocations of the React.DOM namespace and alert users to switch\n // to the `react-dom-factories` package.\n React.DOM = {};\n var warnedForFactories = false;\n Object.keys(ReactDOMFactories).forEach(function (factory) {\n React.DOM[factory] = function () {\n if (!warnedForFactories) {\n lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);\n warnedForFactories = true;\n }\n return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);\n };\n });\n}\n\nmodule.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/React.js\n// module id = 65\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = lowPriorityWarning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/lowPriorityWarning.js\n// module id = 66\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/ReactChildren.js\n// module id = 67\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar standardReleaser = function (instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler\n};\n\nmodule.exports = PooledClass;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/PooledClass.js\n// module id = 68\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = \" It looks like you're using an element created by a different \" + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/traverseAllChildren.js\n// module id = 69\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/getIteratorFn.js\n// module id = 70\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/KeyEscapeUtils.js\n// module id = 71\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n *\n * @public\n */\nvar ReactDOMFactories = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/ReactDOMFactories.js\n// module id = 72\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _require = require('./ReactElement'),\n isValidElement = _require.isValidElement;\n\nvar factory = require('prop-types/factory');\n\nmodule.exports = factory(isValidElement);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/ReactPropTypes.js\n// module id = 73\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\nvar factory = require('./factoryWithTypeCheckers');\nmodule.exports = function(isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factory.js\n// module id = 74\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 75\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 76\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nmodule.exports = '15.6.2';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/ReactVersion.js\n// module id = 77\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _require = require('./ReactBaseClasses'),\n Component = _require.Component;\n\nvar _require2 = require('./ReactElement'),\n isValidElement = _require2.isValidElement;\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\nvar factory = require('create-react-class/factory');\n\nmodule.exports = factory(Component, isValidElement, ReactNoopUpdateQueue);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/createClass.js\n// module id = 78\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar _invariant = require('fbjs/lib/invariant');\n\nif (process.env.NODE_ENV !== 'production') {\n var warning = require('fbjs/lib/warning');\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/create-react-class/factory.js\n// module id = 79\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-owl-carousel/node_modules/react/lib/onlyChild.js\n// module id = 80\n// module chunks = 0","import React, { Component } from 'react';\r\n\r\n//styles\r\nimport './GallerySection.scss';\r\n\r\nimport '../../static/fonts/opensanshebrew/stylesheet.css'\r\nimport '../../static/fonts/Rubik/stylesheet.css';\r\nimport galleryData from '../../data/galleryData.json'\r\nimport { GA_Event } from '../Analytics/Analytics'\r\nimport { scrollTo, scrollDown } from '../../static/scrollAnimation'\r\nimport { isMobile, isIos } from '../../static/helper'\r\n\r\nconst YouTubeSvg = (props) => {\r\n return (\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nclass GallerySection extends Component {\r\n constructor() {\r\n super();\r\n this.handleHover = this.handleHover.bind(this);\r\n this.handleLeave = this.handleLeave.bind(this);\r\n this.state = {\r\n hoverdIdx: 0,\r\n innerContainerPosition: 0\r\n }\r\n }\r\n\r\n handleHover(idx) {\r\n\r\n this.setState(prevState => ({\r\n hoverdIdx: idx,\r\n }));\r\n }\r\n\r\n handleLeave() {\r\n if (!this.props.isYouTubeModalOpen) {\r\n this.setState({\r\n hoverdIdx: 0\r\n });\r\n }\r\n }\r\n componentDidUpdate(prevProps, prevState) {\r\n if (isMobile() || isIos()) {\r\n if (this.state.hoverdIdx > 0 && prevState.hoverdIdx != this.state.hoverdIdx) {\r\n setTimeout(() => {\r\n let self = this.refs.active;\r\n if (typeof self != \"undefined\") {\r\n let offset = self.getBoundingClientRect();\r\n let scroll = offset.top + window.scrollY;\r\n // scrollTo(self.offsetTop, Math.abs(scroll - 60), 1250)\r\n\r\n scrollDown(self.className, -50);\r\n }\r\n }, 800)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n let images = [];\r\n for (let i = 0; i < galleryData.length; i++) {\r\n const isCurrentActive = this.state.hoverdIdx === galleryData[i].id;\r\n let divClass = isCurrentActive ? \"images image\" + galleryData[i].id + \" active\" : this.state.hoverdIdx > 0 ? \"images image\" + galleryData[i].id + \" not-active\" : \"images image\" + galleryData[i].id;\r\n let ref = isCurrentActive ? \"active\" : \"\"\r\n images.push(\r\n this.handleHover(galleryData[i].id)} onMouseLeave={this.handleLeave}>\r\n
{galleryData[i].title}
\r\n {\r\n isMobile() || isIos() ?\r\n
{isCurrentActive ? this.setState({hoverdIdx: 0}): this.handleHover} } className={`mobile-all-songs ${isCurrentActive ? \"open\" :\"\"}`}>{isCurrentActive ? \"סגור\" :\"לרשימת השירים\"}
\r\n : \"\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
שנה
\r\n
זמר/להקה
\r\n
שיר
\r\n
מקום
\r\n
\r\n {galleryData[i].years.map((item, index) => {\r\n return (\r\n
this.props.openYouTubeModal(item.videoId)} className={isCurrentActive ? `item year${item.id}` : \"item hidden\"}>\r\n
\r\n
{item.year} {isMobile() || isIos()? : \"\"}
\r\n
{item.singer}
\r\n
{item.song}
\r\n
{item.place !== \"1\" ? item.place : \"\"}
\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n\r\n }\r\n return (\r\n 0 ? \"gallery-section open\" : \"gallery-section\"}>\r\n
\r\n
\r\n
\r\n
ישראל באירוויזיון
\r\n
כל השירים והזמרים הישראלים שזכו לייצג אותנו במשך השנים
\r\n
\r\n\r\n
\r\n {images}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default GallerySection;\n\n\n// WEBPACK FOOTER //\n// ./src/Components/GallerySection/GallerySection.js","module.exports = [{\"id\":1,\"title\":\"70'\",\"years\":[{\"id\":1,\"year\":1973,\"singer\":\"אילנית\",\"song\":\"אי שם\",\"place\":\"4\",\"videoId\":\"rm64PXy5eck\"},{\"id\":2,\"year\":1974,\"singer\":\"כוורת\",\"song\":\"נתתי לה חיי\",\"place\":\"7\",\"videoId\":\"Pc0A5a-lZGo\"},{\"id\":3,\"year\":1975,\"singer\":\"שלמה ארצי\",\"song\":\"את ואני\",\"place\":\"11\",\"videoId\":\"uXkULDSYGCk\"},{\"id\":4,\"year\":1976,\"singer\":\"שוקולד מנטה מסטיק\",\"song\":\"אמור שלום\",\"place\":\"6\",\"videoId\":\"q38QbSY8IoI\"},{\"id\":5,\"year\":1977,\"singer\":\"אילנית\",\"song\":\"אהבה היא שיר לשניים\",\"place\":\"11\",\"videoId\":\"XlFYSKSkBw\"},{\"id\":6,\"year\":1978,\"singer\":\"יזהר כהן\",\"song\":\"אבניבי\",\"place\":\"1\",\"videoId\":\"pOH-sojmLJY\"},{\"id\":7,\"year\":1979,\"singer\":\"חלב ודבש\",\"song\":\"הללויה\",\"place\":\"1\",\"videoId\":\"C33kO3fvjkI\"}]},{\"id\":2,\"title\":\"80'\",\"years\":[{\"id\":1,\"year\":1981,\"singer\":\"הכל עובר חביבי\",\"song\":\"הלילה\",\"place\":\"7\",\"videoId\":\"AzbH4MLhqQE\"},{\"id\":2,\"year\":1982,\"singer\":\"אבי טולדנו\",\"song\":\"הורה\",\"place\":\"2\",\"videoId\":\"Vw46CEb8Tbg\"},{\"id\":3,\"year\":1983,\"singer\":\"עפרה חזה\",\"song\":\"חי\",\"place\":\"2\",\"videoId\":\"oGrQ9ulN268\"},{\"id\":4,\"year\":1985,\"singer\":\"יזהר כהן\",\"song\":\"עולה עולה\",\"place\":\"5\",\"videoId\":\"evRyT_4KcTQ\"},{\"id\":5,\"year\":1986,\"singer\":\"שרי צוריאל ומוטי גלעדי\",\"song\":\"יבוא יום\",\"place\":\"19\",\"videoId\":\"VewmsjcMF5Q\"},{\"id\":6,\"year\":1987,\"singer\":\"דטנר וקושניר\",\"song\":\"שיר הבטלנים\",\"place\":\"8\",\"videoId\":\"0TCA-LGlVYA\"},{\"id\":7,\"year\":1988,\"singer\":\"ירדנה ארזי\",\"song\":\"בן אדם\",\"place\":\"7\",\"videoId\":\"aCF07NS6P5I\"},{\"id\":8,\"year\":1989,\"singer\":\"גילי וגלית\",\"song\":\"דרך המלך\",\"place\":\"12\",\"videoId\":\"OnovnAMjdJw\"}]},{\"id\":3,\"title\":\"90'\",\"years\":[{\"id\":1,\"year\":1990,\"singer\":\"ריטה\",\"song\":\"שרה ברחובות\",\"place\":\"18\",\"videoId\":\"e1djiCFrqGE\"},{\"id\":2,\"year\":1991,\"singer\":\"אורנה ומשה דץ\",\"song\":\"כאן\",\"place\":\"3\",\"videoId\":\"yF4BDqbidrc\"},{\"id\":3,\"year\":1992,\"singer\":\"דפנה דקל\",\"song\":\"זה רק ספורט\",\"place\":\"6\",\"videoId\":\"Brcxkjdz1gM\"},{\"id\":4,\"year\":1993,\"singer\":\"להקת שירו\",\"song\":\"שירו\",\"place\":\"24\",\"videoId\":\"cEeDeY6NgfU\"},{\"id\":5,\"year\":1995,\"singer\":\"ליאורה\",\"song\":\"אמן\",\"place\":\"8\",\"videoId\":\"Gui9JWHsv-M\"},{\"id\":6,\"year\":1996,\"singer\":\"גלית בל\",\"song\":\"שלום עולם\",\"place\":\"לא העפיל לגמר\",\"videoId\":\"Zmn4KNyaCSQ\"},{\"id\":7,\"year\":1998,\"singer\":\"דנה אינטרנשיונל\",\"song\":\"דיווה\",\"place\":\"1\",\"videoId\":\"Fv83u7-mNWQ\"},{\"id\":8,\"year\":1999,\"singer\":\"עדן\",\"song\":\"יום הולדת\",\"place\":\"5\",\"videoId\":\"-Sx-8yyXFkI\"}]},{\"id\":4,\"title\":\"00'\",\"years\":[{\"id\":1,\"year\":2000,\"singer\":\"פינג פונג\",\"song\":\"שמח\",\"place\":\"22\",\"videoId\":\"3uNfhj66GOo\"},{\"id\":2,\"year\":2001,\"singer\":\"טל סונדק\",\"song\":\"אין דבר\",\"place\":\"16\",\"videoId\":\"IA7d3pBUoHU\"},{\"id\":3,\"year\":2002,\"singer\":\"שרית חדד\",\"song\":\"נדליק ביחד נר\",\"place\":\"12\",\"videoId\":\"KCc9yH3dPXM\"},{\"id\":4,\"year\":2003,\"singer\":\"ליאור נרקיס\",\"song\":\"מילים לאהבה\",\"place\":\"19\",\"videoId\":\"4FzOTlfV8-8\"},{\"id\":5,\"year\":2004,\"singer\":\"דוד ד'אור\",\"song\":\"להאמין\",\"place\":\"לא העפיל לגמר\",\"videoId\":\"5NrtXPjwLB4\"},{\"id\":6,\"year\":2005,\"singer\":\"שירי מימון\",\"song\":\"השקט שנשאר\",\"place\":\"4\",\"videoId\":\"MyChlzTADQY\"},{\"id\":7,\"year\":2006,\"singer\":\"אדי בטלר\",\"song\":\"זה הזמן/יחד אנחנו אחד\",\"place\":\"23\",\"videoId\":\"GzDgdDbHM6g\"},{\"id\":8,\"year\":2007,\"singer\":\"טיפקס\",\"song\":\"כפתור אדום\",\"place\":\"לא העפיל לגמר\",\"videoId\":\"5KhPzTLQBJE\"},{\"id\":9,\"year\":2008,\"singer\":\"בועז מעודה\",\"song\":\"כאילו כאן/האש בעינייך\",\"place\":\"9\",\"videoId\":\"rkTOM4ySrmM\"},{\"id\":10,\"year\":2009,\"singer\":\"אחינועם ניני ומירה עווד\",\"song\":\"עינייך/חייבת להיות דרך אחרת\",\"place\":\"16\",\"videoId\":\"bBTQFOkFZw8\"}]},{\"id\":5,\"title\":\"10'\",\"years\":[{\"id\":1,\"year\":2010,\"singer\":\"הראל סקעת\",\"song\":\"מילים\",\"place\":\"14\",\"videoId\":\"Tj0qaNnLk9M\"},{\"id\":2,\"year\":2011,\"singer\":\"דנה אינטרנשיונל\",\"song\":\"דינג דונג\",\"place\":\"לא העפיל לגמר\",\"videoId\":\"bWVuuvqEArE\"},{\"id\":3,\"year\":2012,\"singer\":\"איזבו\",\"song\":\"זמן\",\"place\":\"לא העפיל לגמר\",\"videoId\":\"-uy4ggnLzKI\"},{\"id\":4,\"year\":2013,\"singer\":\"מורן מזור\",\"song\":\"רק בשבילו\",\"place\":\"לא העפיל לגמר\",\"videoId\":\"BjbcD72OaI4\"},{\"id\":5,\"year\":2014,\"singer\":\"מיי פיינגולד\",\"song\":\"Same Heart\",\"place\":\"לא העפיל לגמר\",\"videoId\":\"acOZVEN5XjE\"},{\"id\":6,\"year\":2015,\"singer\":\"נדב גדג'\",\"song\":\"Golden Boy\",\"place\":\"9\",\"videoId\":\"-w-2K9U8UIs\"},{\"id\":7,\"year\":2016,\"singer\":\"חובי סטאר\",\"song\":\"Made of Stars\",\"place\":\"14\",\"videoId\":\"SS5TB2XUdgs\"},{\"id\":8,\"year\":2017,\"singer\":\"אימרי זיו\",\"song\":\"I Feel Alive\",\"place\":\"23\",\"videoId\":\"YapnW_zfWJk\"},{\"id\":9,\"year\":2018,\"singer\":\"נטע ברזילי\",\"song\":\"Toy\",\"place\":\"1\",\"videoId\":\"84LBjXaeKk4\"}]}]\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/data/galleryData.json\n// module id = 84\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _CSSTransition = require('react-transition-group/CSSTransition');\n\nvar _CSSTransition2 = _interopRequireDefault(_CSSTransition);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModalVideo = function (_React$Component) {\n _inherits(ModalVideo, _React$Component);\n\n function ModalVideo(props) {\n _classCallCheck(this, ModalVideo);\n\n var _this = _possibleConstructorReturn(this, (ModalVideo.__proto__ || Object.getPrototypeOf(ModalVideo)).call(this, props));\n\n _this.state = {\n isOpen: false\n };\n _this.closeModal = _this.closeModal.bind(_this);\n _this.updateFocus = _this.updateFocus.bind(_this);\n return _this;\n }\n\n _createClass(ModalVideo, [{\n key: 'openModal',\n value: function openModal() {\n this.setState({ isOpen: true });\n }\n }, {\n key: 'closeModal',\n value: function closeModal() {\n this.setState({ isOpen: false });\n if (typeof this.props.onClose === 'function') {\n this.props.onClose();\n }\n }\n }, {\n key: 'keydownHandler',\n value: function keydownHandler(e) {\n if (e.keyCode === 27) {\n this.closeModal();\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n document.addEventListener('keydown', this.keydownHandler.bind(this), false);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.keydownHandler);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({ isOpen: nextProps.isOpen });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.state.isOpen && this.modal) {\n this.modal.focus();\n }\n }\n }, {\n key: 'updateFocus',\n value: function updateFocus(e) {\n if (e.keyCode === 9) {\n e.preventDefault();\n e.stopPropagation();\n if (this.modal === document.activeElement) {\n this.modalbtn.focus();\n } else {\n this.modal.focus();\n }\n }\n }\n }, {\n key: 'getQueryString',\n value: function getQueryString(obj) {\n var url = '';\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] !== null) {\n url += key + '=' + obj[key] + '&';\n }\n }\n }\n return url.substr(0, url.length - 1);\n }\n }, {\n key: 'getYoutubeUrl',\n value: function getYoutubeUrl(youtube, videoId) {\n var query = this.getQueryString(youtube);\n return '//www.youtube.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVimeoUrl',\n value: function getVimeoUrl(vimeo, videoId) {\n var query = this.getQueryString(vimeo);\n return '//player.vimeo.com/video/' + videoId + '?' + query;\n }\n }, {\n key: 'getYoukuUrl',\n value: function getYoukuUrl(youku, videoId) {\n var query = this.getQueryString(youku);\n return '//player.youku.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVideoUrl',\n value: function getVideoUrl(opt, videoId) {\n if (opt.channel === 'youtube') {\n return this.getYoutubeUrl(opt.youtube, videoId);\n } else if (opt.channel === 'vimeo') {\n return this.getVimeoUrl(opt.vimeo, videoId);\n } else if (opt.channel === 'youku') {\n return this.getYoukuUrl(opt.youku, videoId);\n }\n }\n }, {\n key: 'getPadding',\n value: function getPadding(ratio) {\n var arr = ratio.split(':');\n var width = Number(arr[0]);\n var height = Number(arr[1]);\n var padding = height * 100 / width;\n return padding + '%';\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var style = {\n paddingBottom: this.getPadding(this.props.ratio)\n };\n\n return _react2.default.createElement(\n _CSSTransition2.default,\n {\n classNames: this.props.classNames.modalVideoEffect,\n timeout: this.props.animationSpeed\n },\n function () {\n if (!_this2.state.isOpen) {\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n { className: _this2.props.classNames.modalVideo, tabIndex: '-1', role: 'dialog',\n 'aria-label': _this2.props.aria.openMessage, onClick: _this2.closeModal, ref: function ref(node) {\n _this2.modal = node;\n }, onKeyDown: _this2.updateFocus },\n _react2.default.createElement(\n 'div',\n { className: _this2.props.classNames.modalVideoBody },\n _react2.default.createElement(\n 'div',\n { className: _this2.props.classNames.modalVideoInner },\n _react2.default.createElement(\n 'div',\n { className: _this2.props.classNames.modalVideoIframeWrap, style: style },\n _react2.default.createElement('button', { className: _this2.props.classNames.modalVideoCloseBtn, 'aria-label': _this2.props.aria.dismissBtnMessage, ref: function ref(node) {\n _this2.modalbtn = node;\n }, onKeyDown: _this2.updateFocus }),\n _react2.default.createElement('iframe', { width: '460', height: '230', src: _this2.getVideoUrl(_this2.props, _this2.props.videoId), frameBorder: '0', allowFullScreen: _this2.props.allowFullScreen, tabIndex: '-1' })\n )\n )\n )\n );\n }\n );\n }\n }]);\n\n return ModalVideo;\n}(_react2.default.Component);\n\nexports.default = ModalVideo;\n\n\nModalVideo.defaultProps = {\n channel: 'youtube',\n isOpen: false,\n youtube: {\n autoplay: 1,\n cc_load_policy: 1,\n color: null,\n controls: 1,\n disablekb: 0,\n enablejsapi: 0,\n end: null,\n fs: 1,\n h1: null,\n iv_load_policy: 1,\n list: null,\n listType: null,\n loop: 0,\n modestbranding: null,\n origin: null,\n playlist: null,\n playsinline: null,\n rel: 0,\n showinfo: 1,\n start: 0,\n wmode: 'transparent',\n theme: 'dark'\n },\n ratio: '16:9',\n vimeo: {\n api: false,\n autopause: true,\n autoplay: true,\n byline: true,\n callback: null,\n color: null,\n height: null,\n loop: false,\n maxheight: null,\n maxwidth: null,\n player_id: null,\n portrait: true,\n title: true,\n width: null,\n xhtml: false\n },\n youku: {\n autoplay: 1,\n show_related: 0\n },\n allowFullScreen: true,\n animationSpeed: 300,\n classNames: {\n modalVideoEffect: 'modal-video-effect',\n modalVideo: 'modal-video',\n modalVideoClose: 'modal-video-close',\n modalVideoBody: 'modal-video-body',\n modalVideoInner: 'modal-video-inner',\n modalVideoIframeWrap: 'modal-video-movie-wrap',\n modalVideoCloseBtn: 'modal-video-close-btn'\n },\n aria: {\n openMessage: 'You just openned the modal video',\n dismissBtnMessage: 'Close the modal by clicking here'\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-modal-video/lib/index.js\n// module id = 85\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A `Transition` component using CSS transitions and animations.\n * It's inspired by the excellent [ng-animate](http://www.nganimate.org/) library.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` stages of the transition. The first class is applied and then a\n * second \"active\" class in order to activate the css animation. After the animation,\n * matching `done` class names are applied to persist the animation state.\n *\n * When the `in` prop is toggled to `true` the Component will get\n * the `example-enter` CSS class and the `example-enter-active` CSS class\n * added in the next tick. This is a convention based on the `classNames` prop.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var _this$getClassNames3 = _this.getClassNames('enter'),\n doneClassName = _this$getClassNames3.doneClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n className = _this$getClassNames4.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames5.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames6 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames6.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var className = typeof classNames !== 'string' ? classNames[type] : classNames + '-' + type;\n var activeClassName = typeof classNames !== 'string' ? classNames[type + 'Active'] : className + '-active';\n var doneClassName = typeof classNames !== 'string' ? classNames[type + 'Done'] : className + '-done';\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames7 = this.getClassNames(type),\n className = _this$getClassNames7.className,\n activeClassName = _this$getClassNames7.activeClassName,\n doneClassName = _this$getClassNames7.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or has finished the transition.\n * A single name can be provided and it will be suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`, `fade-enter-done`,\n * `fade-exit`, `fade-exit-active`, `fade-exit-done`, `fade-appear`, and `fade-appear-active`.\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply spread\n * them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/CSSTransition.js\n// module id = 86\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 87\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 88\n// module chunks = 0","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/class/addClass.js\n// module id = 89\n// module chunks = 0","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n// module id = 90\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/class/hasClass.js\n// module id = 91\n// module chunks = 0","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/class/removeClass.js\n// module id = 92\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the components.\n * It's up to you to give meaning and effect to those states. For example we can\n * add styles to a component when it enters or exits:\n *\n * ```jsx\n * import Transition from 'react-transition-group/Transition';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {(state) => (\n * \n * I'm a fade Transition!\n *
\n * )}\n * \n * );\n * ```\n *\n * As noted the `Transition` component doesn't _do_ anything by itself to its child component.\n * What it does do is track transition states over time so you can update the\n * component (such as by adding styles or classes) when it changes states.\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component begins the\n * \"Enter\" stage. During this stage, the component will shift from its current transition state,\n * to `'entering'` for the duration of the transition and then to the `'entered'` stage once\n * it's complete. Let's take the following example:\n *\n * ```jsx\n * state = { in: false };\n *\n * toggleEnterState = () => {\n * this.setState({ in: true });\n * }\n *\n * render() {\n * return (\n * \n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state and\n * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`.\n *\n * ## Timing\n *\n * Timing is often the trickiest part of animation, mistakes can result in slight delays\n * that are hard to pin down. A common example is when you want to add an exit transition,\n * you should set the desired final styles when the state is `'exiting'`. That's when the\n * transition to those styles will start and, if you matched the `timeout` prop with the\n * CSS Transition duration, it will end exactly when the state changes to `'exited'`.\n *\n * > **Note**: For simpler transitions the `Transition` component might be enough, but\n * > take into account that it's platform-agnostic, while the `CSSTransition` component\n * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * > in order to make more complex transitions more predictable. For example, even though\n * > classes `example-enter` and `example-enter-active` are applied immediately one after\n * > another, you can still transition from one to the other because of the forced reflow\n * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171)\n * > for more info). Take this into account when choosing between `Transition` and\n * > `CSSTransition`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter;\n appear = timeout.appear;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts(); // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing); // FIXME: appear timeout?\n\n\n _this2.onTransitionEnd(node, timeouts.enter, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n\n if (node) {\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n } else {\n setTimeout(this.nextCallback, 0);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element.\n * This function is called with the current transition status\n * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used\n * to apply context specific props to a component.\n *\n * ```jsx\n * \n * {(status) => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided\n *\n * You may specify a single timeout for all transitions like: `timeout={500}`,\n * or individually like:\n *\n * ```jsx\n * timeout={{\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * @type {number | { enter?: number, exit?: number }}\n */\n timeout: function timeout(props) {\n var pt = process.env.NODE_ENV !== \"production\" ? _PropTypes.timeoutsShape : {};;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/Transition.js\n// module id = 93\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\n// module id = 94\n// module chunks = 0","import React, { Component } from \"react\";\r\n\r\nimport \"./PharseSection.scss\"\r\nclass PharseSection extends Component {\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n השורה המעוררת השראה הזאת מייצגת ומסמלת את האירוויזיון. זה על הכללה. זה על גיוון. זה על אחדות.\r\n
\r\n
יאן אולה סאנד - מפקח האירוויזיון
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PharseSection;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/Components/PhraseSection/PharseSection.js","import React, { Component } from \"react\";\r\nimport { get_data, post_data, isMobile, isIos } from '../../static/helper';\r\nimport Coverflow from 'reactjs-coverflow';\r\nimport styled from 'styled-components';\r\nimport { GA_Event } from '../Analytics/Analytics';\r\nimport { horizontalScroll, scrollDown } from '../../static/scrollAnimation';\r\nimport Loader from '../Loader/Loader';\r\nimport TrackVisibility from 'react-on-screen';\r\n\r\nimport \"./VideosSection.scss\"\r\nimport Popup from \"../Popup/Popup\";\r\n\r\nconst PlaySvg = () => (\r\n // \r\n \r\n);\r\n\r\n\r\nconst Flag = styled.div`\r\n bottom: -1.145vw;\r\n left: 0;\r\n margin: auto;\r\n right: 0;\r\n border: 0.104vw #b0b0b0 solid;\r\n border-radius: 50%;\r\n position:absolute;\r\n background-image: url(${props => props.image});\r\n background-repeat: no-repeat;\r\n background-size: 2.083vw;\r\n width: 2.083vw;\r\n height: 2.083vw;\r\n @media screen and (max-width: 750px) {\r\n bottom: -3.4375vw;\r\n border: 0.3125vw #b0b0b0 solid;\r\n background-size: 6.25vw;\r\n width: 6.25vw;\r\n height: 6.25vw;\r\n }\r\n`;\r\n\r\nconst VideoGallery = (props) => {\r\n return (\r\n { props.onCountryClick(event, props.index, props.VideoId); }}>\r\n

\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst VotesSection = (props) => {\r\n if (props.currentItem) {\r\n // const current = props.sliderData.filter(item => { return item.Id === props.position + 1 })[0]\r\n\r\n return (\r\n \r\n
הענק ניקוד ל- {props.currentItem.CountryName}
\r\n
\r\n {props.eight ?\r\n
\r\n
props.onScoreChange(8, true)}>
\r\n

\r\n
\r\n
\r\n :\r\n
props.onScoreChange(8)}>\r\n
+8
\r\n
נקודות
\r\n
\r\n }\r\n {props.ten ?\r\n
\r\n
props.onScoreChange(10, true)}>
\r\n

\r\n
\r\n
\r\n :\r\n
props.onScoreChange(10)}>\r\n
+10
\r\n
נקודות
\r\n
\r\n }\r\n {props.twelve ?\r\n
\r\n
props.onScoreChange(12, true)}>
\r\n

\r\n
\r\n
\r\n :\r\n
props.onScoreChange(12)}>\r\n
+12
\r\n
נקודות
\r\n
\r\n }\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n )\r\n }\r\n return \"\";\r\n}\r\n\r\nconst ScoresSection = (props) => {\r\n if (props.data && props.data.length > 0) {\r\n let items = [];\r\n let length = props.isFullList ? props.data.length : 5;\r\n let sortData = props.data.slice(0).sort(function (a, b) { return b.Score - a.Score })\r\n for (let index = 0; index < length; index++) {\r\n const item = sortData[index];\r\n items.push(\r\n \r\n
\r\n
\r\n
{item.CountryName}
\r\n
{`#${index + 1}`}
\r\n
\r\n
{item.SongName}
\r\n
{item.SingerName}
\r\n
\r\n
\r\n\r\n {item.Score + \" points\"}\r\n
\r\n
\r\n )\r\n\r\n }\r\n return (\r\n \r\n {items}\r\n\r\n
\r\n
\r\n
\r\n )\r\n }\r\n return \"\";\r\n}\r\n\r\nclass VideosSection extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n sliderData: [],\r\n active: 3,\r\n position: 0,\r\n currentItem: {},\r\n eight: null,\r\n ten: null,\r\n twelve: null,\r\n isFullList: false,\r\n popupTitle: \"\",\r\n popupDesc: \"\",\r\n loaderState: false,\r\n pupupShare: null,\r\n flagAnimationActive: false,\r\n animFlag: null\r\n }\r\n window.sentVotes = this.sentVotes;\r\n }\r\n componentDidMount = async (e) => {\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = 'https://www.google.com/recaptcha/api.js';\r\n\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n\r\n let songsData = await get_data(\"/api/home/GetSongs\");\r\n const { coverflow } = this.refs;\r\n let position = (coverflow && coverflow.getPosition()) || Math.round((songsData.length - 1) / 2);\r\n this.setState({\r\n sliderData: songsData,\r\n position,\r\n currentItem: songsData[position]\r\n });\r\n if (window.location.search && window.location.search.indexOf(\"c=\") > -1) {\r\n const value = this.getParameterByName(\"c\", window.location.search);\r\n if (value) {\r\n let currentIndex = 0;\r\n const current = songsData.map((item, index) => {\r\n if (item.Id == value) {\r\n currentIndex = index;\r\n return;\r\n }\r\n });\r\n this.setState({\r\n currentItem: songsData[currentIndex],\r\n position: currentIndex\r\n });\r\n this.goAt(currentIndex, e);\r\n this.props.openYouTubeModal(songsData[currentIndex].VideoId);\r\n }\r\n }\r\n }\r\n getParameterByName(name, url) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n openFullList = () => {\r\n if (!this.state.isFullList) {\r\n GA_Event(\"Voating\", \"full_list\");\r\n }\r\n document.querySelector(\".votes-arrows .left\").classList.add(\"disable\");\r\n document.querySelector(\".votes-arrows .right\").classList.remove(\"disable\");\r\n this.setState(prevState => ({ isFullList: !prevState.isFullList }));\r\n }\r\n onChange(position) {\r\n if (this.state.sliderData.length >= position + 1) {\r\n var currentItem = this.state.sliderData.filter((item, index) => { return index === position })[0]\r\n }\r\n this.setState({ position, currentItem });\r\n }\r\n onScoreChange = (point, isDeleted) => {\r\n const { currentItem } = this.state;\r\n if (this.checkVote(currentItem) || isDeleted) {\r\n switch (point) {\r\n case 8:\r\n this.setState({ eight: isDeleted ? null : currentItem })\r\n break;\r\n case 10:\r\n this.setState({ ten: isDeleted ? null : currentItem })\r\n break;\r\n case 12:\r\n this.setState({ twelve: isDeleted ? null : currentItem })\r\n break;\r\n }\r\n }\r\n else {\r\n this.showMessage(\"לא ניתן להצביע פעמיים לאותה מדינה\", \"\");\r\n }\r\n }\r\n\r\n sentVotes = async () => {\r\n window.grecaptcha.reset();\r\n let voteModel = [\r\n {\r\n CountryId: this.state.eight.Id,\r\n Score: 8\r\n },\r\n {\r\n CountryId: this.state.ten.Id,\r\n Score: 10\r\n },\r\n {\r\n CountryId: this.state.twelve.Id,\r\n Score: 12\r\n },\r\n ]\r\n this.toggleLoader(true);\r\n let res = await post_data(\"/api/home\", voteModel);\r\n // set_cookie(\"user-ip\", res.Ip)\r\n if (res.Title.indexOf(\"תודה\") > -1) {\r\n GA_Event(\"Voating\", \"vote_sent\");\r\n }\r\n this.toggleLoader(false);\r\n this.showMessage(res.Title, res.Message);\r\n this.emptyVotes();\r\n\r\n }\r\n\r\n closePopup = () => {\r\n let flagAnimationActive = false;\r\n if (this.state.popupTitle.indexOf(\"תודה\") > -1) {\r\n flagAnimationActive = true;\r\n if (isMobile() || isIos()) {\r\n scrollDown(\"top-videos-container\", -50, 400);\r\n }\r\n }\r\n this.setState({\r\n isPopupShow: false,\r\n flagAnimationActive\r\n });\r\n if (flagAnimationActive) {\r\n setTimeout(() => {\r\n this.setState({\r\n flagAnimationActive: false\r\n })\r\n }, 4000);\r\n }\r\n }\r\n\r\n showMessage = (popupTitle, popupDesc) => {\r\n let pupupShare = null;\r\n\r\n if (popupTitle.indexOf(\"תודה\") > -1) {\r\n pupupShare = {\r\n title: \"חביב הקהל באירוויזיון – ynet\",\r\n desc: `היי, בחרתי לתת דוז פואה ל - ${this.state.twelve.CountryName}, בואו לשמוע את השיר שלה!`,\r\n url: `https://z.ynet.co.il/mshort/content/Eurovision2019?c=${this.state.twelve.Id}#video-section`\r\n };\r\n }\r\n this.setState({\r\n isPopupShow: true,\r\n popupTitle,\r\n popupDesc,\r\n pupupShare\r\n })\r\n }\r\n\r\n emptyVotes = () => {\r\n this.setState(prevState => ({\r\n eight: null,\r\n ten: null,\r\n twelve: null,\r\n animFlag: {\r\n eight: prevState.eight.Country,\r\n ten: prevState.ten.Country,\r\n twelve: prevState.twelve.Country\r\n }\r\n }))\r\n }\r\n\r\n checkVote(currentItem) {\r\n if ((this.state.eight && this.state.eight.Id === currentItem.Id) ||\r\n (this.state.ten && this.state.ten.Id === currentItem.Id) ||\r\n (this.state.twelve && this.state.twelve.Id === currentItem.Id)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n next = (e) => {\r\n e.preventDefault();\r\n this.refs.coverflow.next();\r\n this.setState({});\r\n }\r\n getPosition = (e) => {\r\n e.preventDefault();\r\n return this.refs.coverflow.getPosition();\r\n }\r\n prev = (e) => {\r\n e.preventDefault();\r\n this.refs.coverflow.previous();\r\n }\r\n goAt = (num, e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.refs.coverflow.goAt(num);\r\n }\r\n\r\n search = (e) => {\r\n let index = 0;\r\n const searchWord = e.target.value.toLowerCase();\r\n if (searchWord.length >= 2) {\r\n let temp = this.state.sliderData.findIndex((item) => item.CountryName.indexOf(searchWord) === 0 || item.Country.indexOf(searchWord) === 0);\r\n if (temp > -1) {\r\n this.goAt(temp, e);\r\n }\r\n }\r\n }\r\n scrollRight() {\r\n const elem = document.querySelector(\".countries-score-container\");\r\n const maxScroll = elem.scrollWidth - elem.clientWidth;\r\n const to = elem.scrollLeft + 150;\r\n horizontalScroll(elem, to, 300);\r\n\r\n if (to <= maxScroll) {\r\n document.querySelector(\".votes-arrows .left\").classList.remove(\"disable\");\r\n }\r\n else {\r\n document.querySelector(\".votes-arrows .right\").classList.add(\"disable\");\r\n }\r\n // ele\r\n }\r\n\r\n scrollLeft() {\r\n const elem = document.querySelector(\".countries-score-container\");\r\n const maxScroll = 0;\r\n const to = elem.scrollLeft - 150;\r\n horizontalScroll(elem, elem.scrollLeft - 150, 300);\r\n if (to >= maxScroll) {\r\n document.querySelector(\".votes-arrows .right\").classList.remove(\"disable\");\r\n }\r\n else {\r\n document.querySelector(\".votes-arrows .left\").classList.add(\"disable\");\r\n }\r\n }\r\n\r\n onCountryClick = (event, index, videoId) => {\r\n if (index === this.state.position) {\r\n this.props.openYouTubeModal(videoId)\r\n }\r\n else {\r\n this.goAt(index, event)\r\n }\r\n }\r\n toggleLoader = (flag) => {\r\n this.setState({ loaderState: flag })\r\n }\r\n render() {\r\n let sliderData = [];\r\n this.state.sliderData.map((item, index) => {\r\n sliderData.push()\r\n })\r\n\r\n return (\r\n \r\n
\r\n {this.state.isPopupShow ?\r\n
\r\n : \"\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n גולשי ynet בוחרים את חביב הקהל של אירוויזיון 2019. בואו לבחור את הנציגים הנבחרים שלכם.\r\n
*מעודכן לפי השירים שפורסמו
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {sliderData.length > 0 ?\r\n
this.onChange(position)}>\r\n {sliderData}\r\n \r\n : \"\"\r\n }\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n {this.state.flagAnimationActive && this.state.animFlag ?\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n : \"\"\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
{this.state.isFullList ? \"הרשימה המלאה\" : \"TOP 5\"}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default VideosSection;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/Components/VideosSection/VideosSection.jsx","\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _class, _temp;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nmodule.exports = (_temp = _class = function (_Component) {\n\t_inherits(Coverflow, _Component);\n\n\tfunction Coverflow(props) {\n\t\t_classCallCheck(this, Coverflow);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Coverflow.__proto__ || Object.getPrototypeOf(Coverflow)).call(this, props));\n\n\t\tvar childrens = props.children && props.children.length;\n\t\t_this._handleWheel = _this._handleWheel.bind(_this);\n\t\t_this._handleTouchStart = _this._handleTouchStart.bind(_this);\n\t\t_this._handleTouchMove = _this._handleTouchMove.bind(_this);\n\t\t_this._handleResize = _this._handleResize.bind(_this);\n\t\t_this.previous = _this.previous.bind(_this);\n\t\t_this.next = _this.next.bind(_this);\n\t\t_this.goAt = _this.goAt.bind(_this);\n\t\t_this.getPosition = _this.getPosition.bind(_this);\n\t\t_this._animation = _this._animation.bind(_this);\n\t\t_this._loadCSS = _this._loadCSS.bind(_this);\n\n\t\t_this.state = {\n\t\t\tposition: props.startPosition > (childrens || 0) ? (childrens || 0) - 1 : props.startPosition,\n\t\t\tshouldUpdate: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(Coverflow, [{\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tthis._loadCSS();\n\t\t}\n\t}, {\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis._loadCSS();\n\t\t\tvar coverflow = (0, _reactDom.findDOMNode)(this.refs.coverflow);\n\t\t\tvar elements = coverflow.getElementsByClassName(\"reactjs-coverflow_Element\");\n\n\t\t\tvar offset = [];\n\n\t\t\tthis._forEach(elements, function (e) {\n\t\t\t\toffset.push(e.offsetLeft);\n\t\t\t});\n\n\t\t\tthis._forEach(elements, function (e, key) {\n\t\t\t\tvar rotateY = _this2.state.position > key ? \" rotateY(\" + _this2.props.rotate + \"deg)\" : _this2.state.position < key ? \" rotateY(-\" + _this2.props.rotate + \"deg)\" : \"\";\n\t\t\t\te.style.transform = rotateY;\n\t\t\t\tif (_this2.props.animationSpeed) {\n\t\t\t\t\te.style.transition = \"transform \" + (typeof _this2.props.animationSpeed == \"string\" ? _this2.props.animationSpeed : _this2.props.animationSpeed + \"s\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.setState({\n\t\t\t\toffset: offset,\n\t\t\t\telements: elements,\n\t\t\t\tcoverflow: coverflow\n\t\t\t});\n\t\t\twindow.addEventListener(\"resize\", this._handleResize);\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate() {\n\t\t\tif (!this.state.shouldUpdate) return;\n\t\t\tthis.setState({ shouldUpdate: false });\n\t\t\tthis._handleResize();\n\t\t}\n\t}, {\n\t\tkey: \"componentWillReceiveProps\",\n\t\tvalue: function componentWillReceiveProps(newProps) {\n\t\t\tif (newProps.margin != this.props.margin) this.setState({ shouldUpdate: true });\n\t\t\tif (newProps.children != this.props.children) {\n\t\t\t\tvar childrens = newProps.children && newProps.children.length;\n\t\t\t\tif (this.state.position > (childrens || 0)) this.setState({ position: (childrens || 0) - 1 });\n\t\t\t\tif (childrens && this.state.position < 0) this.setState({ position: 0 });\n\t\t\t\tthis.setState({ shouldUpdate: true });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar translateX = 0;\n\t\t\tif (this.state.offset && this.state.offset[this.state.position]) {\n\t\t\t\tvar activeElementWith = this.state.elements[this.state.position] && this.state.elements[this.state.position].offsetWidth / 2 || 0;\n\t\t\t\ttranslateX = !!this.props.translateX || this.props.translateX === 0 ? \"translateX(\" + (typeof this.props.translateX == \"string\" ? this.props.translateX : this.props.translateX + \"px\") + \") translateX(\" + -this.state.offset[this.state.position] + \"px)\" : \"translateX(\" + (this.state.coverflow.offsetWidth / 2 - activeElementWith - this.state.offset[this.state.position]) + \"px)\";\n\t\t\t}\n\t\t\tvar transition = this.props.animationSpeed ? typeof this.props.animationSpeed == \"string\" ? this.props.animationSpeed : this.props.animationSpeed + \"s\" : undefined;\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"div\",\n\t\t\t\t{\n\t\t\t\t\tref: \"coverflow\",\n\t\t\t\t\tid: this.props.id,\n\t\t\t\t\tclassName: \"reactjs-coverflow_Main\" + (this.props.className ? \" \" + this.props.className : \"\"),\n\t\t\t\t\tstyle: this.props.style,\n\t\t\t\t\tonWheel: this.props.enableScroll ? this._handleWheel : \"\",\n\t\t\t\t\tonTouchStart: this._handleTouchStart,\n\t\t\t\t\tonTouchMove: this._handleTouchMove\n\t\t\t\t},\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"div\",\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: \"reactjs-coverflow_Coverflow\",\n\t\t\t\t\t\tstyle: { transform: translateX, transition: transition }\n\t\t\t\t\t},\n\t\t\t\t\tthis.props.children && this.props.children.map(function (element, i) {\n\t\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t\t\"figure\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tkey: i,\n\t\t\t\t\t\t\t\tclassName: \"reactjs-coverflow_Element\" + (i == _this3.state.position ? \" active\" : \"\"),\n\t\t\t\t\t\t\t\tstyle: _this3.props.margin ? {\n\t\t\t\t\t\t\t\t\tmargin: \"auto \" + (typeof _this3.props.margin == \"string\" ? _this3.props.margin : _this3.props.margin + \"px\")\n\t\t\t\t\t\t\t\t} : {}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\telement\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"previous\",\n\t\tvalue: function previous() {\n\t\t\tif (this.state.position > 0) {\n\t\t\t\tvar position = this.state.position - 1;\n\t\t\t\tthis.setState({ position: position });\n\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\tthis.props.onChange(position);\n\t\t\t\t}\n\t\t\t\tthis._animation(position);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"next\",\n\t\tvalue: function next() {\n\t\t\tif (this.state.position < this.state.offset.length - 1) {\n\t\t\t\tvar position = this.state.position + 1;\n\t\t\t\tthis.setState({ position: position });\n\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\tthis.props.onChange(position);\n\t\t\t\t}\n\t\t\t\tthis._animation(position);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"goAt\",\n\t\tvalue: function goAt(position) {\n\t\t\tif (position < 0) position = 0;else if (position >= this.state.offset.length) position = this.state.offset.length - 1;\n\n\t\t\tthis.setState({ position: position });\n\t\t\tif (this.props.onChange) {\n\t\t\t\tthis.props.onChange(position);\n\t\t\t}\n\t\t\tthis._animation(position);\n\t\t}\n\t}, {\n\t\tkey: \"getPosition\",\n\t\tvalue: function getPosition() {\n\t\t\treturn this.state.position;\n\t\t}\n\t}, {\n\t\tkey: \"_handleWheel\",\n\t\tvalue: function _handleWheel(e) {\n\t\t\te.preventDefault();\n\n\t\t\tif (e.deltaY < 0) {\n\t\t\t\tthis.previous();\n\t\t\t} else if (e.deltaY > 0) {\n\t\t\t\tthis.next();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"_handleTouchStart\",\n\t\tvalue: function _handleTouchStart(e) {\n\t\t\te.preventDefault();\n\n\t\t\tthis.setState({\n\t\t\t\ttouchStart: e.nativeEvent.touches[0].clientX\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"_handleTouchMove\",\n\t\tvalue: function _handleTouchMove(e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar clientX = e.nativeEvent.touches[0].clientX;\n\t\t\tvar lastX = this.state.touchStart;\n\n\t\t\tvar move = clientX - lastX;\n\t\t\tvar width = this.state.elements[this.state.position].offsetWidth / 2;\n\n\t\t\tif (Math.abs(move) >= width) {\n\t\t\t\tthis.setState({\n\t\t\t\t\ttouchStart: e.nativeEvent.touches[0].clientX\n\t\t\t\t});\n\t\t\t\tif (move > 0) {\n\t\t\t\t\tthis.previous();\n\t\t\t\t} else if (move < 0) {\n\t\t\t\t\tthis.next();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"_handleResize\",\n\t\tvalue: function _handleResize() {\n\t\t\tvar offset = [];\n\n\t\t\tthis._forEach(this.state.elements, function (e) {\n\t\t\t\toffset.push(e.offsetLeft);\n\t\t\t});\n\n\t\t\tthis.setState({ offset: offset });\n\t\t\tthis._animation(this.state.position, offset);\n\t\t}\n\t}, {\n\t\tkey: \"_animation\",\n\t\tvalue: function _animation(position, o) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar offset = o ? o : this.state.offset;\n\t\t\tvar elementsNumber = this.state.elements.length;\n\n\t\t\tthis._forEach(this.state.elements, function (e, key) {\n\t\t\t\tvar rotateY = position > key ? \" rotateY(\" + _this4.props.rotate + \"deg)\" : position < key ? \" rotateY(-\" + _this4.props.rotate + \"deg)\" : \"\";\n\t\t\t\te.style.transform = rotateY;\n\t\t\t\te.style.zIndex = elementsNumber - Math.abs(position - key);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"_loadCSS\",\n\t\tvalue: function _loadCSS() {\n\t\t\tif (!this.constructor.cssLoaded && typeof document != \"undefined\") {\n\t\t\t\tthis.constructor.cssLoaded = true;\n\n\t\t\t\tvar css = \".reactjs-coverflow_Main { position: relative; margin: 0; padding: 0; background-color: rgba(0, 0, 0, 0.1); overflow: hidden; } .reactjs-coverflow_Coverflow { width: 100%; height: 100%; display: flex; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-perspective: 500px; perspective: 500px; align-items: center; transition: transform 0.7s; } .reactjs-coverflow_Element { position: relative; margin: auto 20px; transition: transform 0.7s; }\";\n\t\t\t\tvar head = document.head || document.getElementsByTagName(\"head\")[0];\n\t\t\t\tvar style = document.createElement(\"style\");\n\n\t\t\t\tstyle.type = \"text/css\";\n\t\t\t\tif (style.styleSheet) {\n\t\t\t\t\tstyle.styleSheet.cssText = css;\n\t\t\t\t} else {\n\t\t\t\t\tstyle.appendChild(document.createTextNode(css));\n\t\t\t\t}\n\t\t\t\thead.insertBefore(style, head.firstChild);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"_forEach\",\n\t\tvalue: function _forEach(array, cb) {\n\t\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\t\tcb(array[i], i);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\twindow.removeEventListener(\"resize\", this._handleResize);\n\t\t}\n\t}]);\n\n\treturn Coverflow;\n}(_react.Component), _class.defaultProps = {\n\tenableScroll: true,\n\tstartPosition: 0,\n\trotate: 40,\n\ttranslateX: null\n}, _class.propTypes = {\n\tstartPosition: _propTypes2.default.number,\n\tenableScroll: _propTypes2.default.bool,\n\trotate: _propTypes2.default.number,\n\tmargin: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n\tanimationSpeed: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n\ttranslateX: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n\tonChange: _propTypes2.default.func\n}, _temp);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactjs-coverflow/lib/reactjs-coverflow.js\n// module id = 98\n// module chunks = 0","import React from 'react'\r\nimport './loader.scss';\r\nconst Loader = (props) => {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default Loader;\n\n\n// WEBPACK FOOTER //\n// ./src/Components/Loader/Loader.js","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _TrackVisibility = _interopRequireDefault(require(\"./TrackVisibility\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n* This file seems a bit useless anyway\n* */\nvar _default = _TrackVisibility.default;\nexports.default = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-on-screen/lib/index.js\n// module id = 101\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.throttle\"));\n\nvar _shallowequal = _interopRequireDefault(require(\"shallowequal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar TrackVisibility =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inheritsLoose(TrackVisibility, _PureComponent);\n\n function TrackVisibility(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n\n _this.isVisible = function (_ref, windowWidth, windowHeight) {\n var top = _ref.top,\n left = _ref.left,\n bottom = _ref.bottom,\n right = _ref.right,\n width = _ref.width,\n height = _ref.height;\n var _this$props = _this.props,\n offset = _this$props.offset,\n partialVisibility = _this$props.partialVisibility;\n\n if (top + right + bottom + left === 0) {\n return false;\n }\n\n var topThreshold = 0 - offset;\n var leftThreshold = 0 - offset;\n var widthCheck = windowWidth + offset;\n var heightCheck = windowHeight + offset;\n return partialVisibility ? top + height >= topThreshold && left + width >= leftThreshold && bottom - height <= heightCheck && right - width <= widthCheck : top >= topThreshold && left >= leftThreshold && bottom <= heightCheck && right <= widthCheck;\n };\n\n _this.isComponentVisible = function () {\n setTimeout(function () {\n // isComponentVisible might be called from componentDidMount, before component ref is assigned\n if (!_this.nodeRef || !_this.nodeRef.getBoundingClientRect) return;\n var html = document.documentElement;\n var once = _this.props.once;\n\n var boundingClientRect = _this.nodeRef.getBoundingClientRect();\n\n var windowWidth = window.innerWidth || html.clientWidth;\n var windowHeight = window.innerHeight || html.clientHeight;\n\n var isVisible = _this.isVisible(boundingClientRect, windowWidth, windowHeight);\n\n if (isVisible && once) {\n _this.removeListener();\n }\n\n _this.setState({\n isVisible: isVisible\n });\n }, 0);\n };\n\n _this.setNodeRef = function (ref) {\n return _this.nodeRef = ref;\n };\n\n _this.ownProps = Object.keys(TrackVisibility.propTypes);\n _this.state = {\n isVisible: false\n };\n _this.throttleCb = (0, _lodash.default)(_this.isComponentVisible, _this.props.throttleInterval);\n props.nodeRef && _this.setNodeRef(props.nodeRef);\n return _this;\n }\n\n var _proto = TrackVisibility.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.attachListener();\n this.isComponentVisible();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (!(0, _shallowequal.default)(this.getChildProps(this.props), this.getChildProps(prevProps))) {\n this.isComponentVisible();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.removeListener();\n };\n\n _proto.attachListener = function attachListener() {\n window.addEventListener('scroll', this.throttleCb);\n window.addEventListener('resize', this.throttleCb);\n };\n\n _proto.removeListener = function removeListener() {\n window.removeEventListener('scroll', this.throttleCb);\n window.removeEventListener('resize', this.throttleCb);\n };\n\n _proto.getChildProps = function getChildProps(props) {\n var _this2 = this;\n\n if (props === void 0) {\n props = this.props;\n }\n\n var childProps = {};\n Object.keys(props).forEach(function (key) {\n if (_this2.ownProps.indexOf(key) === -1) {\n childProps[key] = props[key];\n }\n });\n return childProps;\n };\n\n _proto.getChildren = function getChildren() {\n var _this3 = this;\n\n if (typeof this.props.children === 'function') {\n return this.props.children(_extends({}, this.getChildProps(), {\n isVisible: this.state.isVisible\n }));\n }\n\n return _react.default.Children.map(this.props.children, function (child) {\n return _react.default.cloneElement(child, _extends({}, _this3.getChildProps(), {\n isVisible: _this3.state.isVisible\n }));\n });\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n style = _this$props2.style,\n nodeRef = _this$props2.nodeRef,\n Tag = _this$props2.tag;\n\n var props = _extends({}, className && {\n className: className\n }, style && {\n style: style\n });\n\n return _react.default.createElement(Tag, _extends({\n ref: !nodeRef && this.setNodeRef\n }, props), this.getChildren());\n };\n\n return TrackVisibility;\n}(_react.PureComponent);\n\nexports.default = TrackVisibility;\nTrackVisibility.propTypes = {\n /**\n * Define if the visibility need to be tracked once\n */\n once: _propTypes.default.bool,\n\n /**\n * Tweak the throttle interval\n * Check https://css-tricks.com/debouncing-throttling-explained-examples/ for more details\n */\n throttleInterval: function throttleInterval(props, propName, component) {\n var currentProp = props[propName];\n\n if (!Number.isInteger(currentProp) || currentProp < 0) {\n return new Error(\"The \" + propName + \" prop you provided to \" + component + \" is not a valid integer >= 0.\");\n }\n\n return null;\n },\n\n /**\n * Pass one or more children to track\n */\n children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.element, _propTypes.default.arrayOf(_propTypes.default.element)]),\n\n /**\n * Additional style to apply\n */\n style: _propTypes.default.object,\n\n /**\n * Additional className to apply\n */\n className: _propTypes.default.string,\n\n /**\n * Define an offset. Can be useful for lazy loading\n */\n offset: _propTypes.default.number,\n\n /**\n * Update the visibility state as soon as a part of the tracked component is visible\n */\n partialVisibility: _propTypes.default.bool,\n\n /**\n * Exposed for testing but allows node other than internal wrapping to be tracked\n * for visibility\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Define a custom tag\n */\n tag: _propTypes.default.string\n};\nTrackVisibility.defaultProps = {\n once: false,\n throttleInterval: 150,\n offset: 0,\n partialVisibility: false,\n tag: 'div'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-on-screen/lib/TrackVisibility.js\n// module id = 102\n// module chunks = 0","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash.throttle/index.js\n// module id = 103\n// module chunks = 0","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/shallowequal/index.js\n// module id = 104\n// module chunks = 0","import React, { Component } from 'react';\r\nimport \"./Popup.scss\"\r\nimport { isMobile, isIos } from '../../static/helper';\r\nimport { GA_Event } from '../Analytics/Analytics';\r\n\r\nconst FingerSvg = () => (\r\n \r\n)\r\n\r\n\r\nexport default class Popup extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n\r\n }\r\n }\r\n\r\n shareOverrideOGMeta(overrideLink, overrideTitle, overrideDescription) {\r\n window.FB.ui({\r\n method: 'share_open_graph',\r\n action_type: 'og.likes',\r\n action_properties: JSON.stringify({\r\n object: {\r\n 'og:url': overrideLink,\r\n 'og:title': overrideTitle,\r\n 'og:description': overrideDescription,\r\n 'og:image': `https://z.ynet.co.il/mshort/content/eurovision2019/fb2.png`,\r\n }\r\n })\r\n },\r\n function (response) {\r\n // Action after response\r\n });\r\n GA_Event(\"share_after_vote\", 'facebook');\r\n }\r\n shareWhatsapp = () => {\r\n let url = '';\r\n let description = `${this.props.pupupShare.desc} ${this.props.pupupShare.url.replace(\"=\", \"%3D\")}`\r\n if (isMobile() || isIos()) {\r\n url = `whatsapp://send?text=${description}`;\r\n window.open(url, \"_parent\");\r\n } else {\r\n url = `https://api.whatsapp.com/send?text=${description}`\r\n window.open(url, \"_blank\");\r\n }\r\n // let url = `whatsapp://send?text=${this.state.shareUrl}`;\r\n window.open(url, '_blank', \"width=500,height=300\");\r\n // this.props.sendGA(\"Share_Whatsapp\", url);\r\n GA_Event(\"share_after_vote\", 'whatsapp');\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n {this.props.title.indexOf(\"תודה\") <= -1 ?\r\n
\r\n : \"\"\r\n }\r\n
\r\n
{this.props.title}
\r\n
{this.props.desc}
\r\n {this.props.pupupShare ?\r\n
\r\n
בטוחים בבחירות שלכם?
שתפו אותן
\r\n\r\n
\r\n
this.shareOverrideOGMeta(this.props.pupupShare.url, this.props.pupupShare.title, this.props.pupupShare.desc)}>
\r\n
\r\n
\r\n
\r\n
\r\n : \"\"\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/Components/Popup/Popup.jsx","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (!isLocalhost) {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n } else {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/registerServiceWorker.js"],"sourceRoot":""}