{"version":3,"sources":["webpack:///./src/Frontend/app/components/icon-text-bar/icon-text-bar.tsx","webpack:///./src/Frontend/app/views/icon-text-bar/icon-text-bar-view.tsx","webpack:///./node_modules/classnames/index.js","webpack:///./src/Frontend/app/utils/breakpoint-utils.ts","webpack:///./src/Frontend/app/components/icon-editorial/icon-editorial.tsx"],"names":["state","config","numberSlides","configs","mediaQuery","defaultConfig","handleResize","setConfig","componentDidMount","window","addEventListener","this","bind","componentWillUnmount","removeEventListener","setState","getConfig","find","render","baseClass","props","iconTextList","bgColor","textColor","Math","min","length","listItems","map","listItem","index","svgCodeSmallIcon","svgCodeLargeIcon","richText","key","className","dangerouslySetInnerHTML","__html","shouldAutoPlay","params","autoplay","infinite","slidesToShow","slidesToScroll","arrows","speed","contextModel","hasOwn","hasOwnProperty","classNames","classes","i","arguments","arg","argType","push","Array","isArray","inner","apply","call","join","module","exports","default","breakpoints","rat","rabbit","cat","dog","wolf","lion","horse","rhino","elephant","mediaQueries","Object","keys","reduce","queryStrings","currentMediaQueries","handleMediaMatch","isMatching","forEach","matchMedia","matches","addListener","event"],"mappings":"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","file":"36.f9e304e634038591cb96.js","sourcesContent":["import * as React from \"react\";\r\nimport IconEditorial from \"../icon-editorial/icon-editorial\";\r\nimport Slider, { Settings } from \"react-slick\";\r\nimport { currentMediaQueries, Breakpoints } from \"../../utils/breakpoint-utils\";\r\nimport { debounce } from \"../../utils/function-utils\";\r\n\r\ninterface IIconTextBarItem {\r\n    svgCodeSmallIcon?: string;\r\n    svgCodeLargeIcon?: string;\r\n    richText: string;\r\n}\r\n\r\nexport interface IIconTextBarProps {\r\n    iconTextBarItems: IIconTextBarItem[];\r\n    bgColor?: string;\r\n    textColor?: string;\r\n}\r\n\r\ninterface IConfig {\r\n    numberSlides: number;\r\n    mediaQuery?: Breakpoints;\r\n}\r\n\r\ninterface IIconTextBarState {\r\n    config: IConfig;\r\n}\r\n\r\nclass IconTextBar extends React.Component<IIconTextBarProps, IIconTextBarState> {\r\n    public state = {\r\n        config: {\r\n            numberSlides: 1\r\n        }\r\n    };\r\n\r\n    private configs: IConfig[] = [\r\n        {\r\n            mediaQuery: \"dogMin\",\r\n            numberSlides: 3\r\n        },\r\n        {\r\n            mediaQuery: \"catMin\",\r\n            numberSlides: 2\r\n        },\r\n        {\r\n            mediaQuery: \"ratMin\",\r\n            numberSlides: 1\r\n        },\r\n        {\r\n            mediaQuery: \"ratMax\",\r\n            numberSlides: 1\r\n        }\r\n    ];\r\n\r\n    private defaultConfig = {\r\n        numberSlides: 1\r\n    };\r\n\r\n    public componentDidMount() {\r\n        window.addEventListener(\"resize\", this.handleResize.bind(this));\r\n        this.setConfig();\r\n    }\r\n\r\n    public componentWillUnmount() {\r\n        window.removeEventListener(\"resize\", this.handleResize.bind(this));\r\n    }\r\n\r\n    public handleResize = debounce(this.setConfig, 50);\r\n\r\n    public setConfig() {\r\n        this.setState({\r\n            config: this.getConfig()\r\n        });\r\n    }\r\n\r\n    public getConfig() {\r\n        const currentConfig = this.configs.find(config => {\r\n            return config.mediaQuery && currentMediaQueries[config.mediaQuery];\r\n        });\r\n\r\n        return currentConfig || this.defaultConfig;\r\n    }\r\n\r\n    public render() {\r\n        const baseClass = \"icon-text-bar\";\r\n        const { iconTextBarItems: iconTextList, bgColor, textColor } = this.props;\r\n        const numberSlides = Math.min(this.state.config.numberSlides, iconTextList.length);\r\n\r\n        const listItems = iconTextList.map((listItem, index) => {\r\n            const { svgCodeSmallIcon, svgCodeLargeIcon, richText } = listItem;\r\n            return (\r\n                <div key={index}>\r\n                    <div className={`${baseClass}__item-wrapper`}>\r\n                        {(svgCodeLargeIcon || svgCodeSmallIcon) && (\r\n                            <div className={`${baseClass}__icon`}>\r\n                                <IconEditorial svgCodeLargeIcon={svgCodeLargeIcon || svgCodeSmallIcon} />\r\n                            </div>\r\n                        )}\r\n                        <div\r\n                            className={`${baseClass}__rich-text content-rich-text`}\r\n                            dangerouslySetInnerHTML={{ __html: richText }}\r\n                        />\r\n                    </div>\r\n                </div>\r\n            );\r\n        });\r\n\r\n        const shouldAutoPlay = iconTextList.length > numberSlides;\r\n        const params: Settings = {\r\n            autoplay: shouldAutoPlay,\r\n            infinite: shouldAutoPlay,\r\n            slidesToShow: numberSlides,\r\n            slidesToScroll: numberSlides,\r\n            arrows: false,\r\n            speed: 750\r\n        };\r\n\r\n        return (\r\n            <section className={`${baseClass} theme-color-${textColor} theme-bg-${bgColor}`}>\r\n                <div className={`${baseClass}__inner`}>\r\n                    <Slider {...params} key={`${shouldAutoPlay}`}>\r\n                        {listItems}\r\n                    </Slider>\r\n                </div>\r\n            </section>\r\n        );\r\n    }\r\n}\r\n\r\nexport default IconTextBar;\r\n","import * as React from \"react\";\r\nimport IconTextBar, { IIconTextBarProps } from \"~/components/icon-text-bar/icon-text-bar\";\r\n\r\nexport interface IIconTextBarViewProps {\r\n    contextModel: IIconTextBarProps;\r\n}\r\n\r\nclass IconTextBarView extends React.PureComponent<IIconTextBarViewProps> {\r\n    public render() {\r\n        return <IconTextBar {...this.props.contextModel} />;\r\n    }\r\n}\r\n\r\nexport default IconTextBarView;\r\n","/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","interface IBreakpoints {\r\n    [key: string]: number;\r\n}\r\n\r\ninterface IMediaQueryStrings {\r\n    [key: string]: string;\r\n}\r\n\r\nexport type IMatchingQueries = { [key in Breakpoints]?: boolean };\r\n\r\nexport type Breakpoints =\r\n    | \"ratMin\"\r\n    | \"ratMax\"\r\n    | \"rabbitMin\"\r\n    | \"rabbitMax\"\r\n    | \"catMin\"\r\n    | \"catMax\"\r\n    | \"dogMin\"\r\n    | \"dogMax\"\r\n    | \"wolfMin\"\r\n    | \"wolfMax\"\r\n    | \"lionMin\"\r\n    | \"horseMin\"\r\n    | \"horseMax\"\r\n    | \"rhinoMin\"\r\n    | \"rhinoMax\"\r\n    | \"elephantMin\"\r\n    | \"elephantMax\";\r\n\r\nexport const breakpoints: IBreakpoints = {\r\n    rat: 360,\r\n    rabbit: 480,\r\n    cat: 640,\r\n    dog: 768,\r\n    wolf: 1024,\r\n    lion: 1100,\r\n    horse: 1400,\r\n    rhino: 1520,\r\n    elephant: 1670\r\n};\r\n\r\nconst mediaQueries: IMediaQueryStrings = Object.keys(breakpoints).reduce(\r\n    (queryStrings: IMediaQueryStrings, key) => {\r\n        queryStrings[`${key}Min`] = `(min-width: ${breakpoints[key]}px)`;\r\n        queryStrings[`${key}Max`] = `(max-width: ${breakpoints[key] - 1}px)`;\r\n        return queryStrings;\r\n    },\r\n    {}\r\n);\r\n\r\nconst setupMediaQueryListeners = () => {\r\n    Object.keys(mediaQueries).forEach((key: string) => {\r\n        const mediaQuery = matchMedia(mediaQueries[key]);\r\n\r\n        handleMediaMatch(mediaQuery.matches, key as Breakpoints); // Initial values\r\n        mediaQuery.addListener(event => handleMediaMatch(event.matches, key as Breakpoints));\r\n    });\r\n};\r\n\r\nconst currentMediaQueries: IMatchingQueries = {};\r\nconst handleMediaMatch = (isMatching: boolean, key: Breakpoints) => (currentMediaQueries[key] = isMatching);\r\n\r\nif (!__SERVER__) {\r\n    setupMediaQueryListeners();\r\n}\r\n\r\nexport { currentMediaQueries };\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\nexport interface IIconEditorialProps extends React.AnchorHTMLAttributes<HTMLElement> {\r\n    svgCodeSmallIcon?: string;\r\n    svgCodeLargeIcon?: string;\r\n    className?: string;\r\n}\r\n\r\nconst IconEditorial: React.FC<IIconEditorialProps> = props => {\r\n    return (\r\n        <span className={classNames(\"icon-editorial__wrapper\", props.className)}>\r\n            {props.svgCodeLargeIcon && (\r\n                <span\r\n                    className={classNames(\"icon-editorial\", \"icon-editorial__large\")}\r\n                    dangerouslySetInnerHTML={{ __html: props.svgCodeLargeIcon }}\r\n                />\r\n            )}\r\n            {props.svgCodeSmallIcon && (\r\n                <span\r\n                    className={classNames(\"icon-editorial\", \"icon-editorial__small\", props.className)}\r\n                    dangerouslySetInnerHTML={{ __html: props.svgCodeSmallIcon }}\r\n                />\r\n            )}\r\n        </span>\r\n    );\r\n};\r\n\r\nexport default IconEditorial;\r\n"],"sourceRoot":""}