{"version":3,"sources":["img/index.js","dooh-react-utils/Tap.js","dooh-react-utils/Screen.js","dooh-react-utils/Touch.js","dooh-react-utils/FitToWindow.js","dooh-react-utils/debounce.js","dooh-react-utils/NonReact.js","dooh-react-utils/state.js","dooh-react-utils/GlobalStyle.js","dooh-react-utils/preload/Logo.js","dooh-react-utils/preload/LoadingScreen.js","dooh-react-utils/renderScreens.js","dooh-react-utils/form/Keyboard.js","dooh-react-utils/form/Terms.js","dooh-react-utils/form/Form.js","dooh-react-utils/index.js","img/01.resized-fs8.png","img/02.resized-fs8.png","img/03.resized-fs8.png","img/04.resized-fs8.png","img/05.resized-fs8.png","img/06.resized-fs8.png","img/07.resized-fs8.png","img/08.resized-fs8.png","img/09.resized-fs8.png","img/digital.woff","img/outline.woff","img/boldfont.woff","img/boldcondfont.woff","img/regularfont.woff","screens/Intro.js","screens/Game.js","screens/Result.js","screens/Thanks.js","fitToWindow.js","random.js","canister.js","game.js","index.js","screens/Form.js","screens/terms.js","img/bg2.png","dooh-react-utils/preload/db.js","dooh-react-utils/preload/Preloader.js","img/footer.png","img/bg.png","img/cta.png","img/cta-button.png","img/header.png","img/retry.png","img/submit.png"],"names":["__webpack_require__","d","__webpack_exports__","items","preloader","_dooh_react_utils_preload_Preloader__WEBPACK_IMPORTED_MODULE_0__","require","Preloader","concat","name","url","Tap","_React$Component","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","handleTouchStart","bind","assertThisInitialized","state","tapped","inherits","createClass","key","value","refs","wrapper","addEventListener","removeEventListener","react_default","a","createElement","ref","className","classNames","style","children","e","preventDefault","preventDoubleTap","setState","activity","onTap","React","Component","defaultProps","HiddenBack","styled","_templateObject","ScreenRouter","handleGotoScreen","screen","update","s","objectSpread","console","info","handleGotoFirstScreen","getScreenName","screens","handleGotoNextScreen","i","findIndex","length","warning","window","gotoScreen","_this2","CurrentScreen","getScreen","Fragment","web","keys","from","opacity","enter","leave","ShowScreen","assign","screenProps","gotoFirstScreen","gotoNextScreen","hiddenBack","screenName","Error","_this3","find","ScreenWrap","div","_templateObject2","p","width","height","Screen","arguments","undefined","NamedScreen","_React$Component2","_getPrototypeOf2","_this4","_len","args","Array","_key","apply","checkActivity","isActive","timeout","track","meta","timeoutInterval","setInterval","clearInterval","_this$props","displayName","getViewportDimensions","windowWidth","Math","max","document","documentElement","clientWidth","innerWidth","windowHeight","clientHeight","innerHeight","FitToWindow","checkViewportDimensions","viewport","oldViewport","handleWindowResize","getUpdatedState","maxWidth","min","minWidth","maxHeight","minHeight","scale","scaleX","scaleY","fitWidth","_this$props2","centerVertical","centerHorizontal","top","round","left","onChange","func","wait","immediate","context","callNow","clearTimeout","setTimeout","debounce","interval","prevProps","fit","_this$state","_this$props3","transform","transformOrigin","NonReact","delegate","el","element","appendChild","innerElement","create","destroy","nextProps","nextState","cls","Store","initState","convertState","f","prevScreen","nextScreen","payload","session","setHeartbeatState","subscribers","forEach","ss","store","push","indexOf","splice","createGlobalStyle","GlobalStyle_templateObject","Logo","xmlns","viewBox","fill","Wrap","LoadingScreen_templateObject","LoadingScreen","progress","check","getProgress","onDone","ErrorBoundary","error","err","message","type","JSON","stringify","log","location","renderScreens","convertHearbeatState","getAppInfo","tracking","body","setAttribute","resolvePromise","promise","Promise","resolve","reject","App","_getPrototypeOf3","_len2","_key2","loaded","doneLoading","subscribe","unsubscribe","renderScreens_ErrorBoundary","init","fitToWindow","Screen_ScreenRouter","LoadingScreen_LoadingScreen","GlobalStyle","getFontStyle","elem","FitToWindow_FitToWindow","ReactDOM","render","getElementById","KeyWrapper","Keyboard_templateObject","_ref","theme","keyboardBackgroundColor","_ref2","keyboardTextColor","_ref3","inputFont","Key","handlePress","enabled","onKey","pressed","label","Tap_Tap","RowWrapper","Keyboard_templateObject2","Row","row","groupName","map","k","Keyboard_Key","isKeyEnabled","KeyboardWrapper","_templateObject3","Keyboard","handleKeyDown","code","handleKeyPress","charCode","ch","String","fromCharCode","layout","Keyboard_Row","HR_LAYOUT","split","EMAIL_LAYOUT","NAME_LAYOUT","NUM_LAYOUT","BIRTH_LAYOUT","RawHTML","innerHTML","html","Wrapper","Terms_templateObject","termsTop","termsBackground","buttonBackground","_ref4","buttonTextColor","_ref5","font","_ref6","buttonUppercase","Terms","_ref7","terms","onClose","NonReact_NonReact","Form_templateObject","ReviewWrapper","Form_templateObject2","InputWrapper","Form_templateObject3","Input","_templateObject4","Marker","_templateObject5","Suffix","_templateObject6","Button","_templateObject7","disabled","TermsLine","_templateObject8","termsLineColor","Disclaimer","_templateObject9","Checkbox","_templateObject10","selected","Checkmark","InputTermsWrap","_templateObject11","Over18","_templateObject12","Form","isOver18","fieldValue","date","Date","todayDay","getDate","todayMonth","getMonth","todayYear","getFullYear","birthDay","parseInt","substr","birthMonth","birthYear","getOver18Message","keyValue","over18","getFieldOptions","focus","val","values","len","last","match","isFieldValid","getReviewField","field","review","fieldName","trim","validator","isEmail","isValid","acceptTerms","fields","every","altTerms","t","isRequired","handleBirthKey","index","defineProperty","handleKey","handleSubmit","onSubmit","toggleAcceptTerms","toggleAltTerms","toConsumableArray","showTerms","hideTerms","_ref8","checked","Form_Wrapper","getShowValue","getSuffix","getTerms","form_Keyboard","getKeyboardLayout","form_Terms","reviewHeader","disclaimer","Form_Checkmark","customTerms","_ref9","text","splitName","firstName","lastName","specKeys","_this$getFieldOptions6","Screen_screen","Form_Form","dist","module","exports","Intro","onStart","canPlay","throttle","react__WEBPACK_IMPORTED_MODULE_1___default","src","get","alt","Game","handleEnd","score","_home_hrvoje_work_go2digital_reebok_padalica_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","game","react__WEBPACK_IMPORTED_MODULE_7___default","_dooh_react_utils__WEBPACK_IMPORTED_MODULE_10__","options","onEnd","Result","countdown","react__WEBPACK_IMPORTED_MODULE_6___default","toString","padStart","bg","Thanks","topList","current","first","onResize","dim","randomInt","floor","random","int","pick","arr","SPRITES","imgs","Canister","getSprite","variant","rnd","points","sprite","anchor","set","dt","y","speed","rotation","rotationSpeed","visible","isVisible","x","direction","h","pad","getGame","totalTime","numberOfCanisters","PIXI","DEBUG","search","includes","gameEl","timeEl","litreEl","start","litre","loader","add","load","stage","Container","renderer","autoDetectRenderer","transparent","view","canisters","canister","addChild","keyCode","item","rect","getBounds","graphics","Graphics","lineStyle","drawRect","beginFill","ticker","stop","time","handleTouch","touches","clientX","clientY","r","elapsedMS","secondsLeft","classList","remove","display","Ticker","img","Sprite","resources","texture","setup","then","asyncToGenerator","regenerator_default","mark","_callee","data","_getAppInfo","instance","Style","wrap","_context","prev","next","default","sent","xr","results","slice","end","_data$options","_start$split$map","v","_start$split$map2","slicedToArray","startHour","startMinute","_end$split$map","_end$split$map2","endHour","endMinute","hour","getHours","minute","getMinutes","getState","_x","FIELDS","THEME","checkboxInnerColor","checkboxOuterColor","checkboxInvert","ReviewHeader","FormScreen","handleFormSubmit","postAndRetry","game_instance","form_data","pos","event","template_id","to","email","replace","toUpperCase","styled_components_browser_esm","dooh_react_utils","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","dbVersion","STORE_NAME","openDatabase","_openDatabase","abrupt","request","open","onerror","onsuccess","db","result","setVersion","version","createObjectStore","onupgradeneeded","_x2","_x3","_store","_callee2","blob","_context2","transaction","objectStore","put","fetch","_x4","_x5","_fetch","_callee3","_context3","target","URL","createObjectURL","clear","urls","Set","getAllKeys","has","delete","getUrl","onProgress","xhr","XMLHttpRequest","responseType","status","response","lengthComputable","total","send","fonts","startsWith","objectUrls","lazyGet","fontStyle","FontStyle","join","knownTotalSize","sizes","reduce","Map","totalBytes","allUrls","filter","getCachedUrls","getSizes","loadUrls","method","bytes","headers","database","t0","all","cached","cachedUrl","t1","_context5","_context4","loadedBytes","t2"],"mappings":"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","file":"static/js/main.e1292ecf.chunk.js","sourcesContent":["import Preloader from '../dooh-react-utils/preload/Preloader';\n\nexport const items = [\n require('./01.resized-fs8.png'),\n require('./02.resized-fs8.png'),\n require('./03.resized-fs8.png'),\n require('./04.resized-fs8.png'),\n require('./05.resized-fs8.png'),\n require('./06.resized-fs8.png'),\n require('./07.resized-fs8.png'),\n require('./08.resized-fs8.png'),\n require('./09.resized-fs8.png'),\n];\n\nexport const preloader = new Preloader(\n items.concat([\n require('./bg.png'),\n require('./bg2.png'),\n require('./cta.png'),\n require('./cta-button.png'),\n require('./footer.png'),\n require('./header.png'),\n require('./retry.png'),\n require('./submit.png'),\n ]),\n [\n { name: 'digital', url: require('./digital.woff') },\n { name: 'outline', url: require('./outline.woff') },\n\n { name: 'boldfont', url: require('./boldfont.woff') },\n { name: 'boldcondfont', url: require('./boldcondfont.woff') },\n { name: 'regularfont', url: require('./regularfont.woff') },\n ]\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { activity } from 'dooh-utils';\n\nexport class Tap extends React.Component {\n static defaultProps = {\n preventDoubleTap: true,\n };\n\n constructor(props) {\n super(props);\n this.handleTouchStart = this.handleTouchStart.bind(this);\n this.state = {\n tapped: false,\n };\n }\n\n componentDidMount() {\n this.refs.wrapper.addEventListener('touchstart', this.handleTouchStart);\n this.refs.wrapper.addEventListener('mousedown', this.handleTouchStart);\n }\n\n componentWillUnmount() {\n this.refs.wrapper.removeEventListener('touchstart', this.handleTouchStart);\n this.refs.wrapper.removeEventListener('mousedown', this.handleTouchStart);\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n\n handleTouchStart(e) {\n e.preventDefault();\n if (this.state.tapped && this.props.preventDoubleTap) return;\n this.setState({ tapped: true });\n activity();\n this.props.onTap(e);\n }\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Transition } from 'react-spring';\nimport { isActive, activity } from 'dooh-utils';\nimport { Tap } from './Tap';\n\nconst HiddenBack = styled(Tap)`\n position: absolute;\n top: 0;\n left: 0;\n width: 150px;\n height: 150px;\n`;\n\nexport class ScreenRouter extends React.Component {\n static defaultProps = {\n hiddenBack: false,\n };\n\n constructor(props) {\n super(props);\n window.gotoScreen = this.handleGotoScreen;\n }\n\n render() {\n const CurrentScreen = this.getScreen();\n\n return (\n \n \n {ShowScreen => props => (\n \n )}\n \n\n {!this.props.hiddenBack ? null : (\n \n )}\n \n );\n }\n\n getScreenName(screen) {\n if (screen.screenName != null) {\n return screen.screenName;\n } else {\n throw new Error('Screen needs a name!');\n }\n }\n\n getScreen() {\n const screens = this.props.screens;\n return screens.find(s => this.getScreenName(s) === this.props.screen);\n }\n\n handleGotoScreen = screen => {\n activity();\n\n if (screen == null) {\n console.info(`No screen with ${screen}.`);\n return;\n }\n\n this.props.update(s => ({ ...s, screen }));\n };\n\n handleGotoFirstScreen = () => {\n const screen = this.getScreenName(this.props.screens[0]);\n this.props.update(s => ({ ...s, screen }));\n };\n\n handleGotoNextScreen = () => {\n activity();\n\n const screens = this.props.screens,\n i = screens.findIndex(s => this.getScreenName(s) === this.props.screen);\n if (i === -1) {\n console.warning(`No screen with name ${this.props.screen}.`);\n return;\n }\n let screen = this.getScreenName(screens[(i + 1) % screens.length]);\n this.props.update(s => ({ ...s, screen }));\n };\n}\n\nconst ScreenWrap = styled.div`\n overflow: hidden;\n position: absolute;\n top: 0;\n left: 0;\n width: ${p => p.width}px;\n height: ${p => p.height}px;\n\n & * {\n tap-highlight-color: rgba(0, 0, 0, 0);\n }\n`;\n\nexport function screen(Screen, screenName, props = {}) {\n class NamedScreen extends React.Component {\n static screenName = screenName;\n\n static defaultProps = {\n width: 1080,\n height: 1920,\n };\n\n componentDidMount() {\n if (props.timeout != null) {\n this.timeoutInterval = setInterval(this.checkActivity, 1000);\n }\n }\n\n componentWillUnmount() {\n if (props.timeout != null) {\n clearInterval(this.timeoutInterval);\n }\n }\n\n render() {\n const { width, height, style } = this.props;\n return (\n \n \n \n );\n }\n\n checkActivity = () => {\n if (!isActive(props.timeout)) {\n if (window.track) {\n const meta = Object.assign({ screen: screenName }, this.props);\n window.track('timeout', meta);\n }\n this.props.gotoFirstScreen();\n }\n };\n }\n\n NamedScreen.displayName = `Screen(${screenName})`;\n\n return NamedScreen;\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { activity } from 'dooh-utils';\n\nexport class Touch extends React.Component {\n state = {\n touch: false,\n };\n\n componentDidMount() {\n this.refs.wrapper.addEventListener('touchstart', this.handleTouchStart);\n this.refs.wrapper.addEventListener('mousedown', this.handleTouchStart);\n this.refs.wrapper.addEventListener('touchend', this.handleTouchEnd);\n this.refs.wrapper.addEventListener('mouseup', this.handleTouchEnd);\n }\n\n componentWillUnmount() {\n this.refs.wrapper.removeEventListener('touchstart', this.handleTouchStart);\n this.refs.wrapper.removeEventListener('mousedown', this.handleTouchStart);\n this.refs.wrapper.removeEventListener('touchend', this.handleTouchEnd);\n this.refs.wrapper.removeEventListener('mouseup', this.handleTouchEnd);\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n\n handleTouchStart = e => {\n e.preventDefault();\n activity();\n this.props.onChange(true);\n this.setState({ touch: true });\n };\n\n handleTouchEnd = e => {\n e.preventDefault();\n activity();\n this.props.onChange(false);\n this.setState({ touch: false });\n };\n}\n","import React from 'react';\nimport debounce from './debounce';\n\nfunction getViewportDimensions() {\n return {\n windowWidth: Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n ),\n windowHeight: Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n ),\n };\n}\n\nexport class FitToWindow extends React.Component {\n static defaultProps = {\n fit: true,\n fitWidth: false,\n centerVertical: false,\n centerHorizontal: false,\n onChange: () => {},\n };\n\n constructor(props) {\n super(props);\n this.state = this.getUpdatedState();\n this.handleWindowResize = debounce(this.handleWindowResize, 100).bind(this);\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.handleWindowResize);\n\n this.oldViewport = getViewportDimensions();\n this.interval = setInterval(this.checkViewportDimensions, 100);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n clearInterval(this.interval);\n }\n\n componentDidUpdate(prevProps) {\n const props = this.props;\n if (\n prevProps.fit !== props.fit ||\n prevProps.fitWidth !== props.fitWidth ||\n prevProps.centerVertical !== props.centerVertical ||\n prevProps.centerHorizontal !== props.centerHorizontal\n ) {\n this.setState(this.getUpdatedState());\n }\n }\n\n render() {\n let style = {};\n\n if (this.props.fit) {\n let { scale, top, left } = this.state;\n const { width, height } = this.props;\n\n style = {\n transform: `translate(${left}px, ${top}px) scale(${scale})`,\n transformOrigin: '0 0',\n width: `${width}px`,\n height: `${height}px`,\n };\n }\n\n return (\n
\n {this.props.children}\n
\n );\n }\n\n checkViewportDimensions = () => {\n const viewport = getViewportDimensions();\n if (\n viewport.windowWidth !== this.oldViewport.windowWidth ||\n viewport.windowHeight !== this.oldViewport.windowHeight\n ) {\n this.handleWindowResize();\n }\n this.oldViewport = viewport;\n };\n\n getUpdatedState = () => {\n const state = getViewportDimensions();\n let { windowWidth, windowHeight } = state;\n const { width, height } = this.props;\n\n if (this.props.maxWidth) {\n windowWidth = Math.min(windowWidth, this.props.maxWidth);\n }\n\n if (this.props.minWidth) {\n windowWidth = Math.max(windowWidth, this.props.minWidth);\n }\n\n if (this.props.maxHeight) {\n windowHeight = Math.min(windowHeight, this.props.maxHeight);\n }\n\n if (this.props.minHeight) {\n windowHeight = Math.max(windowHeight, this.props.minHeight);\n }\n\n state.scale = 1;\n\n if (width !== windowWidth && height !== windowHeight) {\n let scaleX = windowWidth / width,\n scaleY = windowHeight / height;\n\n if (this.props.fitWidth) {\n state.scale = scaleX;\n } else {\n state.scale =\n windowWidth / windowHeight > width / height ? scaleY : scaleX;\n }\n }\n\n const { centerVertical, centerHorizontal } = this.props;\n const s = state.scale;\n state.top = centerVertical\n ? Math.round((windowHeight - s * height) / 2)\n : 0;\n state.left = centerHorizontal\n ? Math.round((windowWidth - s * width) / 2)\n : 0;\n\n this.props.onChange(state);\n\n return state;\n };\n\n handleWindowResize() {\n this.setState(this.getUpdatedState());\n }\n}\n","// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport default function debounce(func, wait, immediate) {\n var timeout;\n return function() {\n var context = this,\n args = arguments;\n var later = function() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nexport class NonReact extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n delegate: new props.delegate(),\n };\n }\n\n static defaultProps = {\n element: 'div',\n };\n\n static propTypes = {\n element: PropTypes.string.isRequired,\n delegate: PropTypes.func.isRequired,\n };\n\n componentDidMount() {\n const el = document.createElement(this.props.element);\n this.refs.wrapper.appendChild(el);\n this.innerElement = el;\n this.state.delegate.create(this.innerElement, this.props);\n }\n\n componentWillUnmount() {\n if (this.state.delegate.destroy != null) {\n this.state.delegate.destroy(this.innerElement, this.props);\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n if (this.state.delegate.update != null) {\n this.state.delegate.update(this.innerElement, nextProps);\n }\n return false;\n }\n\n render() {\n const cls = classNames('NonReact', this.props.className);\n return
;\n }\n}\n","import { setHeartbeatState } from 'dooh-utils';\n\nexport class Store {\n constructor(initState, convertState = s => s) {\n this.state = initState;\n this.convertState = convertState;\n setHeartbeatState({ state: this.convertState(this.state) });\n this.subscribers = [];\n window.store = this;\n }\n\n subscribe(element) {\n this.subscribers.push(element);\n element.setState(this.state);\n }\n\n unsubscribe(element) {\n const i = this.subscribers.indexOf(element);\n if (i !== -1) {\n this.subscribers.splice(i, 1);\n }\n }\n\n update = f => {\n const prevScreen = this.state.screen;\n\n if (typeof f === 'function') {\n this.state = f(this.state);\n } else if (typeof f === 'object') {\n this.state = Object.assign({}, this.state, f);\n }\n\n const nextScreen = this.state.screen;\n if (nextScreen != null && prevScreen !== nextScreen && window.track) {\n const payload = { screen: nextScreen };\n if (this.state.session) payload.session = this.state.session;\n window.track('screen', payload, true);\n }\n setHeartbeatState({ state: this.convertState(this.state) });\n this.subscribers.forEach(e => {\n e.setState(this.state);\n });\n };\n\n setState = s => {\n this.update(ss => Object.assign({}, ss, s));\n };\n\n getState() {\n return this.state;\n }\n}\n","import { createGlobalStyle } from 'styled-components';\n\nexport default createGlobalStyle`\n /* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n */\n\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed,\n figure, figcaption, footer, header, hgroup,\n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n }\n\n /* HTML5 display-role reset for older browsers */\n article, aside, details, figcaption, figure,\n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n\n body {\n line-height: 1;\n }\n\n ol, ul {\n list-style: none;\n }\n\n blockquote, q {\n quotes: none;\n }\n\n blockquote:before, blockquote:after,\n q:before, q:after {\n content: '';\n content: none;\n }\n\n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n\n html, body {\n margin: 0;\n padding: 0;\n height: 100%;\n overflow: hidden;\n }\n\n body[data-cursor=\"hidden\"], body[data-cursor=\"hidden\"] * {\n cursor: none !important;\n }\n\n .App > div > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n\n * {\n user-select: none;\n }\n`;\n","import React from 'react';\n\nexport default function Logo() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport Logo from './Logo';\n\nconst Wrap = styled.div`\n background: #1e1e1e;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n width: 40%;\n padding-bottom: 50%;\n }\n\n svg {\n width: 100%;\n }\n\n .progress {\n margin: 20px 2px 0 2px;\n padding-left: 10px;\n height: 10px;\n box-sizing: border-box;\n background: #0cd459;\n transition: width 0.5s linear;\n }\n`;\n\nexport default class LoadingScreen extends React.Component {\n state = {\n progress: 0,\n };\n\n componentDidMount() {\n this.check();\n }\n\n componentWillUnount() {\n clearTimeout(this.timeout);\n }\n\n render() {\n return (\n \n
\n \n \n
\n
\n );\n }\n\n check = () => {\n const progress = this.props.preloader.getProgress();\n if (progress >= 1) {\n this.props.onDone();\n } else {\n this.setState({ progress });\n this.timeout = setTimeout(this.check, 500);\n }\n };\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { getAppInfo, setHeartbeatState } from 'dooh-utils';\nimport { FitToWindow } from './FitToWindow';\nimport { ScreenRouter } from './Screen';\nimport { Store } from './state';\nimport GlobalStyle from './GlobalStyle';\nimport LoadingScreen from './preload/LoadingScreen';\nimport Preloader from './preload/Preloader';\n\nclass ErrorBoundary extends React.Component {\n state = {\n error: false,\n };\n\n static getDerivedStateFromError(error) {\n return { error: true };\n }\n\n componentDidCatch(error, info) {\n const err = {\n message: error.message,\n type: typeof error,\n info: JSON.stringify(info),\n };\n console.log(err);\n if (typeof window.track !== 'undefined') window.track('error', err);\n window.location = window.location;\n // this.props.init();\n }\n\n render() {\n return <> {this.props.children} ;\n }\n}\n\nexport function renderScreens(\n screens,\n initState,\n convertHearbeatState = s => s,\n preloader = new Preloader()\n) {\n const info = getAppInfo();\n\n if (info.tracking && info.tracking !== 'test') {\n document.body.setAttribute('data-cursor', 'hidden');\n }\n\n setHeartbeatState(convertHearbeatState(initState));\n const store = new Store(initState, convertHearbeatState);\n\n let resolvePromise;\n const promise = new Promise((resolve, reject) => {\n resolvePromise = resolve;\n });\n\n class App extends React.Component {\n state = {\n ...initState,\n loaded: preloader == null,\n };\n\n componentDidMount() {\n store.subscribe(this);\n }\n\n componentWillUnmount() {\n store.unsubscribe(this);\n }\n\n render() {\n if (document.body.className !== this.state.screen) {\n document.body.className = this.state.screen;\n }\n\n return (\n <>\n store.update(s => initState)}>\n {this.state.loaded\n ? this.fitToWindow(\n ,\n 'App'\n )\n : this.fitToWindow(\n ,\n 'Loading'\n )}\n \n \n {preloader.getFontStyle()}\n {this.state.style}\n \n );\n }\n\n doneLoading = () => {\n this.setState({ loaded: true });\n resolvePromise(store);\n };\n\n fitToWindow(elem, className) {\n const s = this.state;\n\n return (\n store.update({ transform: s })}\n className={className}\n >\n {elem}\n \n );\n }\n }\n\n ReactDOM.render(, document.getElementById('root'));\n\n return promise;\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Tap } from '../';\nimport classNames from 'classnames';\n\nconst KeyWrapper = styled.div`\n user-select: none;\n tap-highlight-color: rgba(0, 0, 0, 0);\n transition: transform 0.15s ease-out, opacity 0.15s ease-in-out;\n display: block;\n cursor: pointer;\n flex: 70px 0;\n padding: 10px 5px;\n color: #444;\n\n &.pressed {\n transform: scale(0.9);\n }\n\n opacity: 0.6;\n\n &.enabled {\n opacity: 1;\n }\n\n & > div {\n background: ${({ theme }) => theme.keyboardBackgroundColor || '#FE0000'};\n color: ${({ theme }) => theme.keyboardTextColor || 'white'};\n display: block;\n text-align: center;\n line-height: 80px;\n vertical-align: middle;\n border-radius: 10px;\n padding: 20px 0 10px 0;\n font-family: ${({ theme }) => theme.inputFont || 'Roboto'};\n font-weight: normal;\n font-style: normal;\n }\n\n &.space.pressed {\n transform: scale(0.95);\n }\n\n &.space {\n flex: 453px 0;\n }\n\n &.backspace > div,\n &.enter > div {\n padding-left: 30px;\n padding-right: 30px;\n }\n`;\n\nclass Key extends React.Component {\n constructor(props) {\n super(props);\n this.state = { pressed: false };\n }\n\n render() {\n const { className, label, enabled } = this.props;\n const cls = classNames('Key', className, {\n pressed: this.state.pressed,\n enabled,\n });\n return (\n \n \n {label}\n \n \n );\n }\n\n handlePress = () => {\n if (!this.props.enabled) return;\n if (this.props.onKey) this.props.onKey(this.props.value);\n this.setState({ pressed: true });\n setTimeout(() => this.setState({ pressed: false }), 150);\n };\n}\n\nconst RowWrapper = styled.div`\n display: flex;\n justify-content: center;\n font-size: 50px;\n\n &.letters3name {\n left: 0;\n }\n\n &.emailSpecial .Key {\n font-size: 50px;\n }\n\n &.emailSpecial .Key.small {\n font-size: 30px;\n }\n\n &.emailSpecial .Key.small > div {\n padding-left: 10px;\n padding-right: 10px;\n }\n\n &.numbers .Key > div {\n min-width: 120px;\n height: 120px;\n line-height: 120px;\n }\n`;\n\nconst Row = props => (\n \n {props.row.keys.map((k, i) => (\n \n ))}\n \n);\n\nconst KeyboardWrapper = styled.div``;\n\nclass Keyboard extends React.Component {\n static defaultProps = {\n isKeyEnabled: value => true,\n };\n\n componentDidMount() {\n document.addEventListener('keypress', this.handleKeyPress);\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n componentWillUnmount() {\n document.removeEventListener('keypress', this.handleKeyPress);\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n render() {\n let { layout, onKey, className, isKeyEnabled } = this.props;\n\n return (\n \n {layout.map(row => (\n \n ))}\n \n );\n }\n\n handleKeyDown = e => {\n if (e.code === 'Backspace' || e.key === 'Backspace') {\n this.props.onKey('backspace');\n }\n };\n\n handleKeyPress = e => {\n if (e.charCode === 13) {\n // enter\n if (this.props.isKeyEnabled('enter')) this.props.onKey('enter');\n } else if (e.charCode === 32) {\n // space\n if (this.props.isKeyEnabled('space')) this.props.onKey('space');\n } else {\n let ch = String.fromCharCode(e.charCode);\n if (this.props.isKeyEnabled(ch)) this.props.onKey(ch);\n }\n };\n}\n\nexport const HR_LAYOUT = [\n {\n groupName: 'numbers1',\n keys: '1234567890'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters1',\n keys: 'qwertzuiopšđ'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters2',\n keys: 'asdfghjklčćž'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters3',\n keys: 'yxcvbnm.,-'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'space',\n keys: [\n { label: 'Briši', value: 'backspace', className: 'backspace' },\n { label: '\\u00a0', value: 'space', className: 'space' },\n { label: 'Dalje', value: 'enter', className: 'enter' },\n ],\n },\n];\n\nexport const EMAIL_LAYOUT = [\n {\n groupName: 'numbers1',\n keys: '1234567890'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters1',\n keys: 'qwertzuiop'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters2',\n keys: 'asdfghjkl'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters3',\n keys: 'yxcvbnm'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'space',\n keys: [\n { label: 'Briši', value: 'backspace', className: 'backspace' },\n { label: '\\u00a0', value: 'space', className: 'space' },\n { label: 'Dalje', value: 'enter', className: 'enter' },\n ],\n },\n];\n\nexport const NAME_LAYOUT = [\n {\n groupName: 'letters1',\n keys: 'qwertzuiopšđ'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters2',\n keys: 'asdfghjklčćž'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'letters3name',\n keys: 'yxcvbnm'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'space',\n keys: [\n { label: 'Briši', value: 'backspace', className: 'backspace' },\n { label: '\\u00a0', value: 'space', className: 'space' },\n { label: 'Dalje', value: 'enter', className: 'enter' },\n ],\n },\n];\n\nexport const NUM_LAYOUT = [\n {\n groupName: 'numbers1',\n className: 'numbers',\n keys: '123'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'numbers2',\n className: 'numbers',\n keys: '456'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'numbers3',\n className: 'numbers',\n keys: '789'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'space',\n className: 'numbers',\n keys: [\n { label: 'Briši', value: 'backspace', className: 'backspace' },\n { label: '0', value: '0' },\n { label: 'Dalje', value: 'enter', className: 'enter' },\n ],\n },\n];\n\nexport const BIRTH_LAYOUT = [\n {\n groupName: 'numbers1',\n className: 'numbers',\n keys: '123'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'numbers2',\n className: 'numbers',\n keys: '456'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'numbers3',\n className: 'numbers',\n keys: '789'.split('').map(k => ({ label: k, value: k })),\n },\n {\n groupName: 'space',\n className: 'numbers',\n keys: [\n { label: 'Briši', value: 'backspace', className: 'backspace' },\n { label: '0', value: '0' },\n { label: '.', value: '.' },\n { label: 'Dalje', value: 'enter', className: 'enter' },\n ],\n },\n];\n\nexport default Keyboard;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { NonReact, Tap } from '../';\n\nclass RawHTML {\n create(el, props) {\n el.innerHTML = props.html;\n }\n}\n\nconst Wrapper = styled.div`\n padding-top: 50px;\n position: absolute;\n z-index: 50;\n width: 100%;\n height: 100%;\n top: ${({ theme }) => theme.termsTop || '0'};\n color: #444;\n left: 0;\n background: ${({ theme }) => theme.termsBackground || 'rgba(0,0,0,0.5)'};\n padding: 50px;\n box-sizing: border-box;\n\n .boring {\n background: white;\n width: 90%;\n height: 1200px;\n overflow-y: scroll;\n padding: 40px;\n margin: 0 auto;\n\n h1 {\n font-size: 30px;\n margin: 20px 0;\n font-weight: bold;\n text-align: center;\n }\n\n h2 {\n font-size: 25px;\n margin: 20px 0;\n font-weight: bold;\n text-align: center;\n }\n\n p {\n font-size: 20px;\n margin: 10px 0;\n }\n }\n\n .close {\n text-align: center;\n text-transform: uppercase;\n width: 700px;\n margin: 50px auto 0 auto;\n background: ${({ theme }) => theme.buttonBackground || '#FE0000'};\n color: ${({ theme }) => theme.buttonTextColor || 'white'};\n padding: 30px 25px;\n font-family: ${({ theme }) => theme.font || 'Roboto Bold'};\n text-transform: ${({ theme }) =>\n theme.buttonUppercase ? 'uppercase' : 'none'};\n background-size: contain;\n font-size: 45px;\n cursor: pointer;\n line-height: 48px;\n border-radius: 10px;\n }\n`;\n\nconst Terms = ({ terms, onClose }) => (\n \n \n \n U redu\n \n \n);\n\nexport default Terms;\n","import React from 'react';\nimport styled from 'styled-components';\nimport validator from 'validator';\nimport { activity } from 'dooh-utils';\nimport { Tap } from '../Tap';\nimport Keyboard, {\n HR_LAYOUT,\n EMAIL_LAYOUT,\n BIRTH_LAYOUT,\n NAME_LAYOUT,\n NUM_LAYOUT,\n} from './Keyboard';\nimport Terms from './Terms';\n\nconst Wrapper = styled.div`\n width: ${props => props.width || '1080px'};\n`;\n\nconst ReviewWrapper = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n\n & > div:first-child {\n width: 700px;\n }\n`;\n\nconst InputWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-bottom: 30px;\n padding: 0 25px 30px 25px;\n align-items: center;\n`;\n\nconst Input = styled.div`\n width: 700px;\n margin: 10px 0;\n background: white;\n padding: 30px 25px;\n text-transform: uppercase;\n text-align: left;\n box-sizing: border-box;\n border: none;\n border-radius: 5px;\n font-family: ${({ theme }) => theme.inputFont || 'Roboto Bold'};\n font-size: 30px;\n color: #444;\n font-style: normal;\n border: 1px solid #aaa;\n overflow: hidden;\n\n &.focused {\n box-shadow: 0px 0px 5px grey;\n border: 1px solid grey;\n color: grey;\n }\n`;\n\nconst Marker = styled.div`\n display: inline-block;\n position: relative;\n top: 9px;\n left: 8px;\n width: 5px;\n height: 40px;\n background: #777;\n\n @keyframes blink {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.1;\n }\n 100% {\n opacity: 1;\n }\n }\n\n animation-duration: 1.3s;\n animation-iteration-count: infinite;\n animation-name: blink;\n`;\n\nconst Suffix = styled.div`\n opacity: 0.5;\n display: inline-block;\n margin-left: 15px;\n`;\n\nconst Button = styled.div`\n transition: opacity 0.4s;\n text-transform: ${({ theme }) =>\n theme.buttonUppercase ? 'uppercase' : 'none'};\n opacity: ${({ disabled }) => (disabled ? 0.5 : 1)};\n margin: 0 0 0 20px;\n\n &.Submit {\n margin: 0;\n }\n\n & > div {\n width: 190px;\n text-align: center;\n border: 3px solid white;\n color: white;\n padding: 35px 25px 25px 25px;\n font-family: boldfont, sans-serif;\n font-size: 45px;\n cursor: pointer;\n line-height: 48px;\n }\n\n &.Submit > div {\n width: 100%;\n margin: 0 auto;\n box-sizing: border-box;\n padding: 20px 25px 35px 25px;\n font-size: 55px;\n font-family: outline, sans-serif;\n }\n`;\n\nconst TermsLine = styled.div`\n display: flex;\n color: ${({ theme }) => theme.termsLineColor || 'white'};\n font-family: boldcondfont, sans-serif;\n font-size: 25px;\n padding: 0;\n text-transform: uppercase;\n align-items: center;\n\n & > * {\n padding: 25px 0;\n }\n\n & > *:first-child {\n padding: 25px 0 25px 50px;\n margin-left: -50px;\n }\n\n .terms {\n text-decoration: underline;\n padding-left: 10px;\n color: red;\n }\n`;\n\nconst Disclaimer = styled.div`\n font-size: 25px;\n color: white;\n max-width: 700px;\n padding-top: 50px;\n font-family: ${({ theme }) => theme.font || 'Roboto'};\n`;\n\nconst Checkbox = styled.div`\n width: 2em;\n height: 2em;\n box-sizing: border-box;\n position: relative;\n display: inline-block;\n margin: 0 10px 0 0;\n bottom: 2px;\n background: ${({ selected }) => (selected ? 'white' : 'white')};\n`;\n\nconst Checkmark = props => (\n \n \n \n);\n\nconst InputTermsWrap = styled.div`\n width: ${props => props.width || '1080px'};\n margin: -50px 70px 10px 70px;\n`;\n\n// TODO style the form better (margin-left is a hack below)\nconst Over18 = styled.div`\n font-size: 25px;\n color: white;\n font-family: ${({ theme }) => theme.font || 'Roboto'};\n padding: 10px 0;\n margin: -45px 0 20px 90px;\n`;\n\nexport default class Form extends React.Component {\n static defaultProps = {\n over18: false,\n altTerms: [],\n };\n\n constructor(props) {\n super(props);\n const values = {};\n props.fields.forEach(({ name }) => {\n values[name] = '';\n });\n this.state = {\n values,\n focus: props.fields[0].name,\n showTerms: false,\n acceptTerms: false,\n altTerms: props.altTerms.map(t =>\n t.checked == null ? false : t.checked\n ),\n review: false,\n };\n }\n\n render() {\n if (this.props.fields.length === 1) {\n return (\n \n \n \n {this.getShowValue()}\n \n {this.getSuffix()}\n \n \n \n {this.getOver18Message()}\n {this.getTerms()}\n \n\n {this.state.showTerms && (\n \n )}\n \n );\n } else if (this.state.review) {\n return (\n \n {this.props.reviewHeader}\n
\n {this.props.fields.map(this.getReviewField)}\n {this.getTerms()}\n \n
\n\n {this.state.showTerms && (\n \n )}\n\n {this.props.disclaimer && (\n \n {this.props.disclaimer}\n \n )}\n
\n );\n } else {\n return (\n \n \n \n {this.getShowValue()}\n \n {this.getSuffix()}\n \n \n this.handleKey('enter')}\n preventDoubleTap={false}\n >\n Dalje\n \n \n \n {this.getOver18Message()}\n \n \n );\n }\n }\n\n getTerms() {\n return (\n <>\n {this.props.terms && (\n \n \n \n {this.state.acceptTerms ? : null}\n \n \n \n Prihvaćam\n \n \n pravila privatnosti i uvjete korištenja\n \n \n )}\n\n {this.props.customTerms && (\n \n \n \n \n \n {this.props.customTerms}\n \n \n )}\n\n {this.props.altTerms.map(({ text }, i) => {\n return (\n \n this.toggleAltTerms(i)}\n preventDoubleTap={false}\n >\n \n \n this.toggleAltTerms(i)}\n preventDoubleTap={false}\n >\n {text}\n \n \n );\n })}\n \n );\n }\n\n getKeyboardLayout() {\n const { type } = this.getFieldOptions(this.state.focus);\n switch (type) {\n case 'name':\n return NAME_LAYOUT;\n case 'phone':\n return NUM_LAYOUT;\n case 'birth':\n return BIRTH_LAYOUT;\n case 'email':\n let splitName = (this.state.values.name || ' ').split(' '), // TODO find values with type name\n firstName = splitName[0],\n lastName = splitName[1];\n let specKeys = '.@-_+'.split('').map(k => ({ label: k, value: k }));\n\n const isValid = value =>\n value &&\n value.length > 1 &&\n value.length < 10 &&\n value !== 'enter' &&\n value !== 'space' &&\n value !== 'backspace';\n\n if (isValid(firstName)) {\n specKeys.push({\n label: firstName,\n value: firstName,\n className: 'small',\n });\n }\n\n if (isValid(lastName)) {\n specKeys.push({\n label: '.',\n value: '.',\n });\n specKeys.push({\n label: lastName,\n value: lastName,\n className: 'small',\n });\n }\n\n specKeys.push(\n { value: '@gmail.com', label: '@gmail.com', className: 'small' },\n { value: '.com', label: '.com', className: 'small' },\n { value: '.hr', label: '.hr', className: 'small' }\n );\n\n return [\n {\n groupName: 'emailSpecial',\n keys: specKeys,\n },\n ...EMAIL_LAYOUT,\n ];\n default:\n return HR_LAYOUT;\n }\n }\n\n isOver18 = fieldValue => {\n if (fieldValue.length < 8) return false;\n const date = new Date(),\n todayDay = date.getDate(),\n todayMonth = date.getMonth() + 1,\n todayYear = date.getFullYear(),\n birthDay = parseInt(fieldValue.substr(0, 2), 10),\n birthMonth = parseInt(fieldValue.substr(2, 2), 10),\n birthYear = parseInt(fieldValue.substr(4, 4), 10);\n if (todayYear - birthYear > 18) return true;\n if (todayYear - birthYear < 18) return false;\n if (todayMonth > birthMonth) return true;\n if (todayMonth < birthMonth) return false;\n if (todayDay >= birthDay) return true;\n return false;\n };\n\n getOver18Message = keyValue => {\n if (!this.props.over18) return null;\n\n const s = this.state,\n { type } = this.getFieldOptions(s.focus),\n val = this.state.values[s.focus] || '';\n\n if (type !== 'birth' || val.length !== 8) return null;\n\n return this.isOver18(val) ? null : (\n \n Za sudjelovanje morate biti punoljetni\n \n );\n };\n\n isKeyEnabled = keyValue => {\n const s = this.state,\n { type } = this.getFieldOptions(s.focus),\n val = this.state.values[s.focus] || '',\n len = val.length,\n last = len > 0 ? val[len - 1] : null;\n\n if (type === 'birth') {\n if (keyValue === '.') {\n return len === 1 || len === 3;\n } else if (keyValue.match(/^[0-9]$/) != null) {\n switch (len) {\n case 0:\n return true;\n case 1:\n if (last === '0' && keyValue === '0') return false;\n if (last === '0' || last === '1' || last === '2') return true;\n return keyValue === '0' || keyValue === '1';\n case 2:\n return true;\n case 3:\n if (last === '0' && keyValue === '0') return false;\n if (last === '0') return true;\n return keyValue === '0' || keyValue === '1' || keyValue === '2';\n case 4:\n return keyValue === '1' || keyValue === '2';\n case 5:\n if (last === '1') return keyValue === '9';\n else return keyValue === '0';\n case 6:\n return true;\n case 7:\n return true;\n default:\n return false;\n }\n } else if (keyValue === 'backspace' && len > 0) {\n return true;\n } else if (keyValue === 'enter' && this.isFieldValid(s.focus)) {\n return true;\n }\n return false;\n } else {\n return true;\n }\n };\n\n getReviewField = field => {\n return (\n this.setState({ focus: field.name, review: false })}\n preventDoubleTap\n >\n {this.state.values[field.name] || '\\u00a0'}\n \n );\n };\n\n isFieldValid = fieldName => {\n const value = (this.state.values[fieldName] || '').trim();\n const { type } = this.getFieldOptions(fieldName);\n if (type === 'email') {\n return validator.isEmail(value);\n } else if (type === 'birth') {\n return value.length === 8 && (!this.props.over18 || this.isOver18(value));\n } else {\n return value.length > 0;\n }\n };\n\n isValid = () => {\n return (\n this.state.acceptTerms &&\n this.props.fields.map(f => f.name).every(this.isFieldValid) &&\n this.state.altTerms.every(\n (t, i) => t || !this.props.altTerms[i].isRequired\n )\n );\n };\n\n getShowValue() {\n const s = this.state,\n { type, label } = this.getFieldOptions(s.focus);\n\n if (type === 'birth') {\n const value = s.values[s.focus] || '',\n show = [\n s => `${label}`,\n s => `${s[0]}`,\n s => `${s[0]}${s[1]}.`,\n s => `${s[0]}${s[1]}.${s[2]}`,\n s => `${s[0]}${s[1]}.${s[2]}${s[3]}.`,\n s => `${s[0]}${s[1]}.${s[2]}${s[3]}.${s[4]}`,\n s => `${s[0]}${s[1]}.${s[2]}${s[3]}.${s[4]}${s[5]}`,\n s => `${s[0]}${s[1]}.${s[2]}${s[3]}.${s[4]}${s[5]}${s[6]}`,\n s => `${s[0]}${s[1]}.${s[2]}${s[3]}.${s[4]}${s[5]}${s[6]}${s[7]}.`,\n ];\n return show[value.length](value);\n } else {\n return s.values[s.focus] || label;\n }\n }\n\n getSuffix() {\n const { type } = this.getFieldOptions(this.state.focus),\n value = this.state.values[this.state.focus] || '',\n birthSuffixes = [\n '',\n 'd.mm.gggg.',\n 'mm.gggg.',\n 'm.gggg.',\n 'gggg.',\n 'ggg.',\n 'gg.',\n 'g.',\n '',\n ];\n\n if (type === 'birth') {\n return birthSuffixes[value.length];\n } else {\n return '';\n }\n }\n\n getFieldOptions(field) {\n return this.props.fields.find(f => f.name === field);\n }\n\n handleBirthKey = key => {\n const s = this.state;\n let val = s.values[s.focus],\n len = val.length;\n\n if (len === 8 && key !== 'backspace' && key !== 'enter') return;\n\n if (key === '.') {\n if (len === 1) val = `0${val}`;\n else if (len === 3) val = `${val[0]}${val[1]}0${val[2]}`;\n } else if (key === 'backspace') {\n val = val.substr(0, val.length - 1);\n } else if (key === 'enter') {\n // TODO duplicated\n if (!this.isFieldValid(s.focus)) return;\n\n let fields = this.props.fields.map(f => f.name),\n index = (fields.indexOf(s.focus) + 1) % fields.length,\n field = fields[index];\n this.setState({ focus: field, review: index === 0 });\n return;\n } else if (key.match(/^[0-9]$/) != null) {\n if (len === 0 && key.match(/[4-9]/) != null) {\n val += '0' + key;\n } else if (len === 2 && key.match(/[2-9]/) != null) {\n val += '0' + key;\n } else {\n val += key;\n }\n }\n\n this.setState({ values: { ...s.values, [s.focus]: val } });\n };\n\n handleKey = key => {\n activity();\n\n const s = this.state,\n { type } = this.getFieldOptions(s.focus);\n\n if (type === 'birth') {\n this.handleBirthKey(key);\n return;\n }\n\n let val = s.values[s.focus];\n\n if (key === 'space') {\n val = val + ' ';\n } else if (key === 'backspace') {\n val = val.substr(0, val.length - 1);\n } else if (key === 'enter') {\n if (!this.isFieldValid(s.focus)) return;\n if (this.props.fields.length === 1) {\n this.handleSubmit();\n return;\n }\n\n let fields = this.props.fields.map(f => f.name),\n index = (fields.indexOf(s.focus) + 1) % fields.length,\n field = fields[index];\n this.setState({ focus: field, review: index === 0 });\n return;\n } else if (val.length < 300) {\n val = val + key;\n }\n\n this.setState({ values: { ...s.values, [s.focus]: val } });\n };\n\n handleSubmit = () => {\n if (this.isValid()) this.props.onSubmit(this.state.values);\n };\n\n toggleAcceptTerms = () => {\n this.setState(s => ({ ...s, acceptTerms: !s.acceptTerms }));\n };\n\n toggleAltTerms = i => {\n const altTerms = [...this.state.altTerms];\n altTerms[i] = !altTerms[i];\n this.setState({ altTerms });\n };\n\n showTerms = () => this.setState({ showTerms: true });\n hideTerms = () => this.setState({ showTerms: false });\n}\n","export * from './Screen';\nexport * from './Tap';\nexport * from './Touch';\nexport * from './FitToWindow';\nexport * from './NonReact';\nexport * from './Canvas';\nexport * from './state';\nexport * from './renderScreens';\nexport * from './form';\nexport { setup } from 'dooh-utils';\n","module.exports = __webpack_public_path__ + \"static/media/01.resized-fs8.1472d4e5.png\";","module.exports = __webpack_public_path__ + \"static/media/02.resized-fs8.157d3873.png\";","module.exports = __webpack_public_path__ + \"static/media/03.resized-fs8.fd158be9.png\";","module.exports = __webpack_public_path__ + \"static/media/04.resized-fs8.1ff40dde.png\";","module.exports = __webpack_public_path__ + \"static/media/05.resized-fs8.6327b0fc.png\";","module.exports = __webpack_public_path__ + \"static/media/06.resized-fs8.7f647b7e.png\";","module.exports = __webpack_public_path__ + \"static/media/07.resized-fs8.8d21a4d7.png\";","module.exports = __webpack_public_path__ + \"static/media/08.resized-fs8.b7cf9aa6.png\";","module.exports = __webpack_public_path__ + \"static/media/09.resized-fs8.f421608f.png\";","module.exports = __webpack_public_path__ + \"static/media/digital.7ac0a0e3.woff\";","module.exports = __webpack_public_path__ + \"static/media/outline.771fc468.woff\";","module.exports = __webpack_public_path__ + \"static/media/boldfont.d7c476a4.woff\";","module.exports = __webpack_public_path__ + \"static/media/boldcondfont.2e71649a.woff\";","module.exports = __webpack_public_path__ + \"static/media/regularfont.151680ae.woff\";","import React from 'react';\nimport styled from 'styled-components';\nimport { Tap } from '../dooh-react-utils';\nimport { preloader } from '../img';\nimport throttle from 'lodash/throttle';\n\nexport default function Intro(props) {\n let onStart = props.canPlay ? throttle(props.gotoNextScreen, 500) : () => {};\n\n return (\n \n \"\"\n \n );\n}\n\nconst Wrap = styled(Tap)`\n background: url('${preloader.get(require('../img/cta.png'))}') 0 0 no-repeat;\n\n & img {\n @keyframes pulse_animation {\n 0% {\n transform: scale(0.95);\n filter: drop-shadow(12px 12px 12px rgba(0, 0, 0, 0.8));\n }\n 50% {\n transform: scale(1);\n filter: drop-shadow(16px 16px 12px rgba(0, 0, 0, 0.8));\n }\n 100% {\n transform: scale(0.95);\n filter: drop-shadow(12px 12px 12px rgba(0, 0, 0, 0.8));\n }\n }\n\n position: relative;\n width: 100%;\n top: 1030px;\n animation-name: pulse_animation;\n animation-duration: 3000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { activity } from 'dooh-utils';\nimport { NonReact } from '../dooh-react-utils';\n\nconst Wrapper = styled.div`\n width: 1080px;\n height: 1920px;\n`;\n\nexport default class Game extends React.Component {\n render() {\n if (this.props.game == null) return null;\n return (\n \n \n \n );\n }\n\n handleEnd = score => {\n activity();\n this.props.update(s => ({ ...s, score }));\n this.props.gotoNextScreen();\n };\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport { preloader } from '../img';\nimport { Tap } from '../dooh-react-utils';\n\nexport default class Result extends React.Component {\n state = {\n countdown: 15,\n };\n\n componentDidMount() {\n this.interval = setInterval(() => {\n if (this.state.countdown > 0) {\n this.setState(s => ({ countdown: s.countdown - 1 }));\n }\n }, 1000);\n }\n\n componentWillUnmount() {\n clearInterval(this.interval);\n }\n\n render() {\n const props = this.props;\n\n return (\n \n

Rezultat

\n

{props.score.toString().padStart(4, '0')}

\n\n
\n {\n window.track('replay');\n props.gotoScreen('game');\n }}\n >\n 00:{this.state.countdown.toString().padStart(2, '0')}\n \n\n \n
\n
\n );\n }\n}\n\nconst Wrap = styled.div`\n padding-top: 400px;\n\n background: url('${preloader.get(require('../img/bg2.png'))}') 0 0 no-repeat;\n\n h1 {\n font-size: 60px;\n text-align: center;\n font-family: outline, sans-serif;\n }\n\n p {\n font-size: 70px;\n font-size: 220px;\n color: #FF0600;\n margin-bottom: 50px;\n text-align: center;\n font-family: digital, sans-serif;\n }\n\n & * {\n text-transform: uppercase;\n }\n\n .buttons {\n display: flex;\n }\n`;\n\nconst Button = styled(Tap)`\n width: 50%;\n margin: 40px auto;\n display: block;\n height: 400px;\n padding-left: 60px;\n width: 540px;\n display: flex;\n box-sizing: border-box;\n justify-content: center;\n padding-top: 220px;\n align-items: center;\n font-size: 50px;\n background: url('${p => preloader.get(p.bg || '')}') 0 0 no-repeat;\n color: #FF0600;\n font-family: digital, sans-serif;\n font-size: 90px;\n`;\n","import React from 'react';\nimport { preloader } from '../img';\nimport styled from 'styled-components';\n\nfunction first(s) {\n let ss = s.trim().split(/\\s+/);\n if (ss.length > 1) {\n return ss[0];\n } else {\n return s;\n }\n}\n\nexport default function Thanks(props) {\n return (\n \n

TOP 5

\n {props.topList.map(({ name, value, current }, i) => (\n

\n {first(name)} {value}\n

\n ))}\n
\n );\n}\n\nconst Wrap = styled.div`\n padding-top: 300px;\n background: url('${preloader.get(require('../img/bg2.png'))}') 0 0 no-repeat;\n\n h1 {\n font-family: outline, sans-serif;\n text-transform: uppercase;\n font-size: 100px;\n text-align: center;\n margin-bottom: 100px;\n }\n\n p {\n font-family: boldcondfont;\n font-size: 70px;\n text-transform: uppercase;\n line-height: 1.2;\n display: flex;\n width: 70%;\n margin: 20px auto 0 auto;\n border-bottom: 2px solid white;\n padding: 20px 20px 0px 20px;\n }\n\n p span {\n flex: 1;\n padding-right: 40px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n p b {\n position: relative;\n font-family: digital, sans-serif;\n display: inline-block;\n color: #FF0600;\n bottom: 10px;\n }\n`;\n","function debounce(func, wait, immediate) {\n var timeout;\n return function() {\n var context = this,\n args = arguments;\n var later = function() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\nfunction getViewportDimensions() {\n return {\n windowWidth: Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n ),\n windowHeight: Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n ),\n };\n}\n\nexport function fit(el, width, height, onResize) {\n let render = dim => {\n let scale = 1;\n const { windowWidth, windowHeight } = dim;\n\n if (width !== windowWidth && height !== windowHeight) {\n let scaleX = windowWidth / width,\n scaleY = windowHeight / height;\n\n scale = windowWidth / windowHeight > width / height ? scaleY : scaleX;\n }\n\n el.style.transform = `scale(${scale})`;\n el.style.transformOrigin = '0 0';\n el.style.width = `${width}px`;\n el.style.height = `${height}px`;\n onResize(scale);\n };\n\n let handleWindowResize = debounce(() => {\n render(getViewportDimensions());\n }, 100);\n\n window.addEventListener('resize', handleWindowResize);\n\n render(getViewportDimensions());\n}\n","export function randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nexport function randomPick(arr) {\n return arr[randomInt(0, arr.length - 1)];\n}\n\nconst d = {\n int: randomInt,\n pick: randomPick,\n};\n\nexport default d;\n","import rnd from './random';\nimport * as imgs from './img';\n\nconst width = 1080,\n height = 1920;\n\nconst SPRITES = imgs.items;\n\nexport default class Canister {\n constructor(getSprite) {\n this.variant = rnd.pick([0, 1, 2, 3, 4, 5, 6, 7, 8]);\n this.points = [15, 15, 30, 30, 15, 15, 15, 15, 15, 15][this.variant];\n\n this.sprite = getSprite(SPRITES[this.variant]);\n this.sprite.anchor.set(0.5, 0.5);\n\n this.init();\n }\n\n update(dt) {\n this.sprite.y += this.speed * dt;\n this.sprite.rotation += this.rotationSpeed;\n\n if (!this.visible) {\n this.scale *= 0.8;\n this.sprite.scale.x = this.sprite.scale.y = this.scale;\n } else if (!this.isVisible()) {\n this.init();\n }\n\n if (this.scale < 0.1) this.init();\n }\n\n init() {\n this.visible = true;\n this.scale = 0.8 * rnd.pick([0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.2]);\n this.sprite.scale.x = this.sprite.scale.y = this.scale;\n\n this.speed = 1.1 * rnd.pick([5, 6, 7, 8, 9, 9, 10, 11]);\n this.rotationSpeed = rnd.pick([0.02, 0.03, -0.02, -0.03]);\n this.direction = 1;\n\n this.sprite.y = rnd.int(0, height);\n this.sprite.y = -this.sprite.height - 10;\n this.sprite.x = rnd.int(0, width);\n }\n\n isVisible() {\n const h = this.sprite.height;\n return this.sprite.y - h < height;\n }\n\n destroy() {\n this.visible = false;\n }\n}\n","import 'pixi.js';\nimport { fit } from './fitToWindow';\nimport rnd from './random';\nimport Canister from './canister';\nimport * as imgs from './img';\n\nconst pad = 5;\n\nexport default function getGame(options) {\n options = Object.assign(\n {\n totalTime: 45.5,\n numberOfCanisters: 16,\n },\n options\n );\n\n const PIXI = window.PIXI,\n DEBUG = document.location.search.includes('DEBUG'),\n gameEl = document.getElementById('game'),\n timeEl = document.getElementById('timeDiv'),\n litreEl = document.getElementById('litreDiv'),\n width = 1080,\n height = 1920;\n\n let start = false,\n litre = 0;\n\n let onEnd = function() {};\n\n PIXI.loader.add(imgs.items).load(setup);\n\n let scale = 1;\n fit(gameEl, width, height, s => (scale = s));\n\n const ticker = new PIXI.ticker.Ticker();\n\n function getSprite(img) {\n return new PIXI.Sprite(PIXI.loader.resources[img].texture);\n }\n\n function setup() {\n var stage = new PIXI.Container(),\n renderer = PIXI.autoDetectRenderer(1080, 1920, { transparent: true });\n\n gameEl.appendChild(renderer.view);\n\n let canisters = [];\n for (let i = 0; i < options.numberOfCanisters; i++) {\n let canister = new Canister(getSprite);\n stage.addChild(canister.sprite);\n canister.sprite.y = rnd.int(-300, height - 300);\n canisters.push(canister);\n }\n\n if (DEBUG) {\n document.addEventListener('keypress', e => {\n if (e.keyCode === 13) {\n if (start) {\n start = false;\n [...stage.children].forEach(item => {\n let rect = item.getBounds();\n let graphics = new PIXI.Graphics();\n graphics.lineStyle(5, 0xff00ff, 1);\n graphics.drawRect(\n rect.x + pad,\n rect.y + pad,\n rect.width - 2 * pad,\n rect.height - 2 * pad\n );\n graphics.beginFill(0xffffff, 0);\n stage.addChild(graphics);\n });\n ticker.update();\n ticker.stop();\n } else {\n start = true;\n ticker.start();\n }\n }\n });\n }\n\n let time = 0;\n\n //ticker.speed = 0.5;\n ticker.add(dt => {\n for (let i = canisters.length - 1; i >= 0; i--) {\n canisters[i].update(dt);\n }\n\n renderer.render(stage);\n time += ticker.elapsedMS;\n let secondsLeft = Math.round(options.totalTime - time / 1000);\n\n if (options.totalTime - time / 1000 < 0.5) {\n timeEl.innerHTML = `00:00`;\n ticker.stop();\n start = false;\n time = 0;\n setTimeout(() => gameEl.classList.remove('show'), 800);\n setTimeout(() => (gameEl.style.display = 'none'), 1300);\n setTimeout(() => onEnd(litre), 800);\n } else {\n timeEl.innerHTML = `00:${\n secondsLeft < 10 ? '0' + secondsLeft : secondsLeft\n }`;\n }\n });\n\n function handleTouch(e) {\n e.preventDefault();\n\n if (start) {\n let x, y;\n if (e.touches && e.touches.length > 0) {\n x = e.touches[0].clientX / scale;\n y = e.touches[0].clientY / scale;\n } else {\n x = e.clientX / scale;\n y = e.clientY / scale;\n }\n\n for (let i = canisters.length - 1; i >= 0; i--) {\n let s = canisters[i];\n if (!s.visible) continue;\n\n let r = s.sprite.getBounds();\n\n if (\n x > r.x + pad &&\n x < r.x + r.width - pad &&\n y > r.y + pad &&\n y < r.y + r.height - pad\n ) {\n s.destroy();\n litre += s.points;\n if (litre < 0) litre = 0;\n litreEl.innerHTML = `${litre.toString().padStart(4, '0')}`;\n break;\n }\n }\n }\n }\n\n gameEl.addEventListener('touchstart', handleTouch);\n gameEl.addEventListener('mousedown', handleTouch);\n }\n\n return class Game {\n create(el, props) {\n window.track('play');\n onEnd = props.onEnd;\n gameEl.style.display = 'inherit';\n gameEl.classList.add('show');\n litre = 0;\n timeEl.innerHTML = '00:45';\n litreEl.innerHTML = '0000';\n start = true;\n ticker.start();\n }\n\n update(el, props) {}\n destroy(el, props) {}\n };\n}\n","import React from 'react';\nimport { createGlobalStyle } from 'styled-components';\nimport { setup, renderScreens, screen } from './dooh-react-utils';\nimport { getAppInfo } from 'dooh-utils';\nimport { fit } from './fitToWindow';\nimport xr from 'xr';\nimport { preloader } from './img';\nimport getGame from './game';\n\nsetup('/').then(async data => {\n const state = {\n screen: 'intro',\n score: 0,\n style: null,\n topList: [],\n options: (data && data.options) || {},\n canPlay: false,\n };\n\n const store = await renderScreens(\n [\n screen(require('./screens/Intro').default, 'intro', {}),\n screen(require('./screens/Game').default, 'game', {}),\n screen(require('./screens/Result').default, 'result', {\n timeout: 15 * 1000,\n }),\n screen(require('./screens/Form').default, 'form', { timeout: 30 * 1000 }),\n screen(require('./screens/Thanks').default, 'thanks', {\n timeout: 15 * 1000,\n }),\n ],\n state,\n s => s.screen,\n preloader\n );\n\n const { instance, tracking } = getAppInfo();\n if (tracking && instance) {\n xr.get(\n `/api/games/results/?game_instance=${instance}&ordering=-value`\n ).then(({ data }) => {\n store.update(s => ({ ...s, topList: data.results.slice(0, 5) }));\n });\n }\n\n setInterval(() => {\n let canPlay = false;\n if (data && data.options && data.options.start && data.options.end) {\n const { start, end } = data.options;\n let [startHour, startMinute] = start.split(':').map(v => parseInt(v, 10));\n let [endHour, endMinute] = end.split(':').map(v => parseInt(v, 10));\n let d = new Date();\n let hour = d.getHours();\n let minute = d.getMinutes();\n if (\n hour >= startHour &&\n (hour > startHour || minute >= startMinute) &&\n hour <= endHour &&\n (hour < endHour || minute <= endMinute)\n ) {\n canPlay = true;\n }\n } else {\n canPlay = true;\n }\n\n if (store.getState().canPlay !== canPlay) {\n store.update(s => ({ ...s, canPlay }));\n }\n }, 1000);\n\n fit(document.getElementById('footer'), 1080, 1920, () => {});\n\n const Style = createGlobalStyle`\n #root {\n font-family: 'boldfont', sans-serif;\n color: white;\n }\n\n .App {\n background: url('${preloader.get(\n require('./img/bg.png')\n )}') 0 0 no-repeat;\n }\n\n #footer {\n width: 1080px;\n height: 1920px;\n background: url('${preloader.get(\n require('./img/footer.png')\n )}') 0 100% no-repeat;\n top: 0;\n left: 0;\n position: absolute;\n pointer-events: none;\n display: none;\n }\n\n\n body.result #footer, body.form #footer {\n background: url('${preloader.get(\n require('./img/footer.png')\n )}') 0 100% no-repeat;\n }\n\n body.game #footer {\n display: block;\n }\n\n #game {\n position: absolute;\n top: 0;\n left: 0;\n width: 1080px;\n height: 1920px;\n transform: scale(0.55);\n transform-origin: 0 0;\n opacity: 0;\n transition: opacity 1 ease-out;\n }\n\n #game.show {\n opacity: 1;\n }\n\n #blackDiv {\n background: url('${preloader.get(\n require('./img/header.png')\n )}') 0 0 no-repeat;\n width: 100%;\n font-family: digital, sans-serif;\n\n height: 180px;\n position: absolute;\n display: flex;\n align-items: center;\n top: 0;\n left: 0;\n z-index: 3;\n color: #FF0600;\n }\n\n #game canvas {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n }\n\n #litreDiv, #timeDiv {\n font-size: 90px;\n text-align: left;\n position: absolute;\n top: 55px;\n width: 35%;\n text-align: center;\n }\n\n #timeDiv {\n right: 0;\n }\n `;\n\n store.update({\n style: