{"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/pic0.png","img/pic1.png","img/pic2.png","img/pic3.png","img/pic4.png","img/ZonaPro-Regular.woff","img/ZonaPro-Bold.woff","img/ZonaPro-Black.woff","screens/Intro.js","screens/Game.js","screens/Result.js","screens/Thanks.js","screens/terms.js","screens/Form.js","dooh-react-utils/preload/db.js","dooh-react-utils/preload/Preloader.js","img/pic5.png","img/bg.png","img/cta.png","img/game.png","img/result.png","img/toplist.png","img/krug.png","img/mark.png","index.js"],"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","Object","inherits","_super","_createSuper","props","_this","classCallCheck","this","call","handleTouchStart","bind","assertThisInitialized","state","tapped","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","taggedTemplateLiteral","ScreenRouter","Screen_createSuper","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","_super2","_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","FitToWindow_createSuper","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","NonReact_createSuper","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","renderScreens_createSuper","_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","font","_ref4","buttonUppercase","Terms","_ref5","terms","onClose","NonReact_NonReact","Form_templateObject","ReviewWrapper","Form_templateObject2","InputWrapper","Form_templateObject3","Input","_templateObject4","Marker","_templateObject5","Suffix","_templateObject6","Button","_templateObject7","disabled","buttonBackground","buttonTextColor","_ref6","TermsLine","_templateObject8","_ref7","termsLineColor","Disclaimer","_templateObject9","_ref8","Checkbox","_templateObject10","_ref9","selected","get","InputTermsWrap","_templateObject11","Over18","_templateObject12","_ref10","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","_ref11","checked","Form_Wrapper","getShowValue","getSuffix","getTerms","form_Keyboard","getKeyboardLayout","form_Terms","disclaimer","customTerms","_ref12","text","splitName","firstName","lastName","specKeys","_this$getFieldOptions6","Screen_screen","Form_Form","dist","module","exports","Intro","react__WEBPACK_IMPORTED_MODULE_1___default","_home_hrvoje_work_go2digital_cco_razlike_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0__","Game","_React$useState","useState","Set","_React$useState2","_home_hrvoje_work_go2digital_cco_razlike_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__","setSelected","startTime","pic","areas","w","h","x","y","react__WEBPACK_IMPORTED_MODULE_4___default","src","alt","draggable","item","id","Item","has","onClick","add","size","time","_dooh_react_utils__WEBPACK_IMPORTED_MODULE_7__","Timer","stop","onTimeout","_home_hrvoje_work_go2digital_cco_razlike_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_2__","updateTime","m","floor","Result","hs","format","_dooh_react_utils__WEBPACK_IMPORTED_MODULE_3__","Thanks","topList","test","east","west","FIELDS","btnbg","THEME","checkboxInnerColor","checkboxOuterColor","checkboxInvert","FormScreen","handleFormSubmit","data","_getAppInfo","instance","postAndRetry","game_instance","form_data","event","updateTopList","topListOnline","styled_components_browser_esm","dooh_react_utils","TERMS","pos","result","current","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","dbVersion","STORE_NAME","openDatabase","_openDatabase","_callee","regenerator_default","wrap","_context","prev","next","abrupt","request","open","onerror","onsuccess","db","setVersion","version","createObjectStore","onupgradeneeded","_x","_x2","_x3","_store","_callee2","blob","_context2","transaction","objectStore","put","fetch","_x4","_x5","_fetch","_callee3","_context3","target","URL","createObjectURL","clear","urls","getAllKeys","delete","getUrl","onProgress","xhr","XMLHttpRequest","responseType","status","response","lengthComputable","total","send","fonts","startsWith","objectUrls","lazyGet","fontStyle","FontStyle","join","knownTotalSize","sizes","reduce","Map","load","allUrls","totalBytes","filter","getCachedUrls","sent","getSizes","loadUrls","bytes","method","headers","t0","cached","database","all","cachedUrl","slicedToArray","t1","_callee4","_loop","_context5","mark","_context4","set","loadedBytes","t2","finish","delegateYield","_updateTopList","_yield$xr$get","_home_hrvoje_work_go2digital_cco_razlike_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","xr","results","setup","then","_home_hrvoje_work_go2digital_cco_razlike_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__","Style","default","_home_hrvoje_work_go2digital_cco_razlike_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_3___default"],"mappings":"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","file":"static/js/main.652f9feb.chunk.js","sourcesContent":["import Preloader from '../dooh-react-utils/preload/Preloader';\n\nexport const items = [\n require('./pic0.png'),\n require('./pic1.png'),\n require('./pic2.png'),\n require('./pic3.png'),\n require('./pic4.png'),\n require('./pic5.png'),\n require('./pic5.png'),\n];\n\nexport const preloader = new Preloader(\n items.concat([\n require('./bg.png'),\n require('./cta.png'),\n require('./game.png'),\n require('./result.png'),\n require('./toplist.png'),\n require('./krug.png'),\n require('./mark.png'),\n ]),\n [\n { name: 'regularfont', url: require('./ZonaPro-Regular.woff') },\n { name: 'boldfont', url: require('./ZonaPro-Bold.woff') },\n { name: 'blackfont', url: require('./ZonaPro-Black.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 // eslint-disable-next-line\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 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 box-shadow: 2px 2px rgba(0, 0, 0, 0.5);\n transition: box-shadow 0.15s ease-out;\n }\n\n &.pressed > div {\n box-shadow: 0px 0px rgba(0, 0, 0, 0.3);\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: 1300px;\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: white;\n color: black;\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';\nimport { preloader } from '../../img';\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 .termsBtn {\n margin-top: 60px;\n font-size: 30px;\n color: #57463c;\n text-decoration: underline;\n text-align: center;\n line-height: 1.5em;\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 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 & > div {\n width: 190px;\n text-align: center;\n background: ${({ theme }) => theme.buttonBackground || '#FE0000'};\n background-size: contain;\n color: ${({ theme }) => theme.buttonTextColor || 'white'};\n padding: 35px 25px 25px 25px;\n font-family: ${({ theme }) => theme.font || 'Roboto'};\n font-size: 45px;\n cursor: pointer;\n line-height: 48px;\n }\n\n &.Submit > div {\n width: 350px;\n margin: 0 auto;\n }\n`;\n\nconst TermsLine = styled.div`\n display: flex;\n color: ${({ theme }) => theme.termsLineColor || 'white'};\n font-family: regularfont;\n font-size: 25px;\n padding: 0;\n line-height: 1.4em;\n color: #57463c;\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 }\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: 50px;\n height: 50px;\n box-sizing: border-box;\n position: relative;\n display: inline-block;\n border: 5px solid #57463c;\n top: 12px;\n margin-right: 20px;\n background: ${({ selected, theme }) =>\n selected\n ? `url(${preloader.get(require('../../img/mark.png'))}) no-repeat 50% 50%`\n : 'none'};\n background-size: 80%;\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
\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 Pravila natječaja,\n
\n pravila privatnosti i uvjeti korištenja\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 \n \n Pročitala/o sam i prihvaćam pravila natječaja, pravila privatnosti\n 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/pic0.7e222929.png\";","module.exports = __webpack_public_path__ + \"static/media/pic1.e21e4867.png\";","module.exports = __webpack_public_path__ + \"static/media/pic2.eabd1342.png\";","module.exports = __webpack_public_path__ + \"static/media/pic3.10d66708.png\";","module.exports = __webpack_public_path__ + \"static/media/pic4.e1a50cbd.png\";","module.exports = __webpack_public_path__ + \"static/media/ZonaPro-Regular.a0957131.woff\";","module.exports = __webpack_public_path__ + \"static/media/ZonaPro-Bold.aac55996.woff\";","module.exports = __webpack_public_path__ + \"static/media/ZonaPro-Black.53247969.woff\";","import React from 'react';\nimport styled from 'styled-components';\nimport { preloader } from '../img';\nimport { Tap } from '../dooh-react-utils';\n\nexport default function Intro(props) {\n return (\n \n {/*\n \n */}\n \n );\n}\n\nconst Wrap = styled(Tap)`\n background: url('${() =>\n preloader.get(require('../img/cta.png'))}') no-repeat 0 0;\n position: absolute;\n top: 0;\n\n @keyframes pulse_animation {\n 0% {\n transform: rotate(-15deg) scale(0.3);\n }\n 50% {\n transform: rotate(-15deg) scale(0.35);\n }\n 100% {\n transform: rotate(-15deg) scale(0.3);\n }\n }\n\n .hand {\n position: absolute;\n bottom: 0px;\n right: 200px;\n animation-name: pulse_animation;\n animation-duration: 1.5s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { items, preloader } from '../img';\nimport { NonReact } from '../dooh-react-utils';\nimport { activity } from 'dooh-utils';\n\nexport default function Game(props) {\n let [selected, setSelected] = React.useState(new Set());\n let startTime = React.useState(+new Date())[0];\n let pic = props.pic;\n let areas = [\n { w: 60, h: 90, x: 135, y: 800 },\n { w: 150, h: 100, x: 380, y: 1050 },\n { w: 140, h: 140, x: 500, y: 1250 },\n { w: 60, h: 60, x: 420, y: 830 },\n { w: 50, h: 50, x: 820, y: 940 },\n { w: 120, h: 120, x: 820, y: 750 },\n ];\n return (\n \n \n\n {areas.map((item, id) => (\n {\n activity();\n let s = new Set(selected);\n s.add(id);\n setSelected(s);\n if (s.size === 6) {\n let time = +new Date() - startTime;\n setTimeout(() => props.update({ screen: 'result', time }), 1000);\n }\n }}\n />\n ))}\n\n {areas.map((item, id) => (\n {\n activity();\n let s = new Set(selected);\n s.add(id);\n setSelected(s);\n if (s.size === 6) {\n let time = +new Date() - startTime;\n setTimeout(() => props.update({ screen: 'result', time }), 1000);\n }\n }}\n />\n ))}\n\n {\n props.update({ screen: 'intro', time: +new Date() - startTime });\n }}\n />\n \n );\n}\n\nconst Wrapper = styled.div`\n background: url('${() =>\n preloader.get(require('../img/game.png'))}') no-repeat 0 0;\n width: 1080px;\n height: 1920px;\n\n img.main {\n position: absolute;\n top: 225px;\n }\n\n .NonReact {\n bottom: 90px;\n position: absolute;\n left: 450px;\n display: block;\n width: 180px;\n text-align: center;\n font-size: 50px;\n text-transform: uppercase;\n background: rgba(1,1,1,0);\n\n small {\n display: block;\n font-size: 30px;\n }\n }\n`;\n\n// min dim 100x100 when selected\nconst Item = styled.div`\n position: absolute;\n width: ${p => (p.selected ? Math.max(p.w, 100) : p.w)}px;\n height: ${p => (p.selected ? Math.max(p.h, 100) : p.h)}px;\n left: ${p => p.x - (p.selected && p.w < 100 ? (100 - p.w) / 2 : 0)}px;\n top: ${p => p.y + 225 - (p.selected && p.h < 100 ? (100 - p.h) / 2 : 0)}px;\n background: url('${() =>\n preloader.get(require('../img/krug.png'))}') no-repeat 50% 50%;\n opacity: ${p => (p.selected ? 1 : 0)};\n transition: opacity 0.5s ease-in-out;\n`;\n\nclass Timer {\n create(el, props) {\n this.time = props.time;\n this.onTimeout = props.onTimeout;\n this.interval = setInterval(this.updateTime, 200);\n el.addEventListener('click', props.onClick);\n this.el = el;\n }\n\n update(el, props) {\n if (props.stop) clearInterval(this.interval);\n }\n\n destroy() {\n clearInterval(this.interval);\n }\n\n updateTime = () => {\n let t = 3 * 60 - Math.round((+new Date() - this.time) / 1000);\n if (t <= 0) {\n t = 0;\n clearInterval(this.interval);\n this.onTimeout();\n }\n let m = Math.floor(t / 60);\n let s = t % 60;\n this.el.innerHTML = `${m}:${s <= 9 ? '0' : ''}${s}vrijeme`;\n };\n}\n","import React from 'react';\nimport styled from 'styled-components';\n//import Button from './Button';\nimport { Tap } from '../dooh-react-utils';\nimport { preloader } from '../img';\n\nfunction format(t) {\n let hs = Math.round((t % 1000) / 10);\n let s = Math.floor((t / 1000) % 60);\n let m = Math.floor(t / (60 * 1000));\n return `${m}:${s < 10 ? '0' : ''}${s}:${hs < 10 ? '0' : ''}${hs}`;\n}\n\nexport default function Result(props) {\n return (\n \n
{format(props.time)}
\n \n Prijavi\n
\n igru\n
\n
\n );\n}\n\nconst Wrap = styled.div`\n background: url('${() =>\n preloader.get(require('../img/result.png'))}') no-repeat 0 0;\n position: absolute;\n top: 0;\n\n .time {\n width: 100%;\n text-align: center;\n color: #57463C;\n font-size: 200px;\n position: absolute;\n top: 880px;\n }\n\n img {\n position: absolute;\n bottom: 150px;\n right: 0px;\n\n animation-name: bottle-animation;\n animation-duration: 0.8s;\n animation-delay: 0.2s;\n animation-fill-mode: forwards;\n opacity: 0;\n transform: scale(0.9);\n }\n\n @keyframes bottle-animation {\n 0% {\n opacity: 0;\n transform: scale(0.9);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n .Tap {\n position: absolute;\n padding-top: 20px;\n border-top: 5px solid #57463C;\n text-align: center;\n color: #57463C;\n font-size: 70px;\n position: absolute;\n top: 1180px;\n left: 400px;\n text-transform: uppercase;\n\n animation-name: btn-animation;\n animation-duration: 0.5s;\n animation-delay: 0.1s;\n animation-fill-mode: forwards;\n opacity: 0;\n }\n\n @keyframes btn-animation {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n\n`;\n","import React from 'react';\nimport { preloader } from '../img';\nimport styled from 'styled-components';\n\nfunction format(t) {\n let hs = Math.round((t % 1000) / 10);\n let s = Math.floor((t / 1000) % 60);\n let m = Math.floor(t / (60 * 1000));\n return `${m}:${s < 10 ? '0' : ''}${s}:${hs < 10 ? '0' : ''}${hs}`;\n}\n\nexport default function Thanks(props) {\n let topList = props.topList;\n return (\n \n {topList.map(({ name, value }, i) => (\n
\n {name}\n {format(value)}\n
\n ))}\n
\n );\n}\n\nconst Wrap = styled.div`\n background: url('${() =>\n preloader.get(require('../img/toplist.png'))}') no-repeat 0 0;\n color: #57463C;\n text-transform: uppercase;\n padding-top: 500px;\n\n div {\n display: flex;\n width: 100%;\n font-size: 60px;\n font-family: regularfont;\n border: 5px solid #57463C;\n margin: 20px auto;\n padding: 20px;\n width: 750px;\n }\n\n strong {\n font-family: boldfont;\n }\n\n span {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-right: 20px;\n }\n`;\n","export const test = `\n

Test

\n`;\n\nexport const east = `\n

Priređivač nagradnog natječaja Manta d.o.o., Jankomir 33, Zagreb, OIB: 44426143196 (u daljnjem tekstu: Priređivač) i tehnički izvođač nagradnog natječaja Go2Digital d.o.o., Torbarova 15, Zagreb, OIB:81297941099 (u daljnjem tekstu: Tehnički izvođač) utvrđuju sljedeću:

\n

OBAVIJEST O OBRADI OSOBNIH PODATAKA

\n

Priređivač i Tehnički izvođač ovim putem javno objavljuju Obavijest o obradi osobnih podataka:

\n
    \n
  • Osobni podaci (ime i prezime i e-mail adresa) koriste se isključivo za svrhe za koje su prikupljeni, a to su kreiranje rang liste igrača, proglašavanje dobitnika te obavještavanje dobitnika o preuzimanju nagrade.

    \n
  • \n
  • Osobni podaci prikupljeni tijekom trajanja natječaja neće se koristiti u komercijalne svrhe, a da prethodno nije dobivena suglasnost korisnika.

    \n
  • \n
  • Osobni podaci neće se čuvati dulje nego je to potrebno obzirom na svrhe prikupljanja ili dulje nego je to predviđeno važećim zakonom, a maksimalno 6 mjeseci nakon proglašenja dobitnika, zbog rješavanja eventualnih pritužbi vezano za provedeni natječaj.

    \n
  • \n
  • Priređivač i Tehnički izvođač ustanovili su mjere zaštite kako bi omogućili povjerljivost, sigurnost i cjelovitost prikupljenih osobnih podataka.

    \n
  • \n
  • Pristup osobnim podacima ograničen je na odgovorne osobe i nadležne odjele Priređivača i Tehničkog izvođača koji ih trebaju znati i koji su obučeni po pitanju pravila povjerljivosti.

    \n
  • \n
\n
\n

Priređivač nagradnog natječaja Manta d.o.o., Jankomir 33, Zagreb, OIB: 44426143196 (u daljnjem tekstu: Priređivač), koji organizira nagradni natječaj pod nazivom „Uskršnja aktivacija Pronađite razlike“ (u daljnjem tekstu: Natječaj), utvrđuje sljedeća:

\n

PRAVILA NAGRADNOG NATJEČAJA

\n

„Uskršnja aktivacija Pronađite razlike“\n(u daljnjem tekstu: Pravila)

\n

ČLANAK 1.

\n

Svrha Nagradnog natječaja jest promocija proizvoda i usluga Priređivača.

\n

ČLANAK 2.

\n

Priređivač organizira nagradni natječaj pod nazivom „Uskršnja aktivacija Pronađite razlike“ na digitalnom Citylightu postavljenom u City Centeru one East u Zagrebu. Natječaj traje od 29. ožujka do 3. travnja 2021. godine.

\n

ČLANAK 3.

\n

Pravila Natječaja bit će objavljena na web stranici: www.citycenterone.hr uoči početka Natječaja, a bit će dostupna svim sudionicima Natječaja prilikom sudjelovanja, odnosno igranja kviza, na zaslonu interaktivnog Citylighta. Sudionici natječaja suglasni su s ovim pravilima i uvjetima obrade njihovih osobnih podataka.

\n

ČLANAK 4.

\n

Pravo sudjelovanja u Nagradnom natječaju ostvaruju sve fizičke osobe starije od 18 godina. \nMoguće je pristupiti digitalnom Citylightu postavljenom u City Centeru one East u Zagrebu i odigrati nagradni kviz jednom, nakon čega je potrebno registrirati se imenom i prezimenom te e-mail adresom, čime se ostvaruje plasman na rang ljestvici. Plasman na rang ljestvici temelji se na vremenu utrošenom na pronalazak 6 razlika na vizualima prikazanima na ekranu. \nU Nagradnom natječaju ne mogu sudjelovati zaposlenici Priređivača sa svojom užom obitelji niti zaposlenici prodajnih, uslužnih i ugostiteljskih prostora u City Centeru one, kao ni zaposlenici Tehničkog izvođača ili članovi njihove uže obitelji.

\n

ČLANAK 5.

\n

Svaki posjetitelj u razdoblju od 29. ožujka do 3. travnja 2021., može pristupiti interaktivnom Citylightu postavljenom u City Centeru one East u Zagrebu u periodu od 9:00h do 20:59h i odigrati kviz 'Uskršnja aktivacija Pronađite razlike' koristeći touchscreen, nakon čega ostvaruje pravo registracije i plasman na rang ljestvici. \nIgrač ima 3 minute vremena u kojem mora pronaći 6 razlika na prikazanim vizualima na ekranu. Po završetku kviza u zadanom roku, pojavljuje se vrijeme koje je igrač ostvario te mogućnost da ostavi svoje podatke – ime, prezime i e-mail adresu - čime ostvaruje plasman na rang listi. Ukoliko igrač na prihvati Pravila privatnosti i pravila nagradnog natječaja, ne može prijaviti rezultat, a isti se ujedno smatra i nevažećim. Rang lista se zaključava svakog dana u 21:00h i igrač koji je ostvario najbolji rezultat, tj. u najkraćem vremenu pronašao 6 razlika, osvaja dnevnu nagradu. Rang lista od tekućeg dana se nakon 21:00 poništava i idućeg dana od 9:00 kreće novo rangiranje, za novi dan. Jedan igrač može se dnevno prijaviti samo s jednom e-mail adresom, u slučaju da bude ipak više prijava, u obzir će se uzeti samo prva prijava, prvi rezultat. \nJedan igrač može osvojiti samo jednom nagradu u toku cijelog nagradnog natječaja, odnosno samo jednom igrač može biti dobitnik kroz svih 6 dana koliko traje nagradni natječaj.

\n

ČLANAK 6.

\n

Sudjelujući u Natječaju, sudionik prihvaća i odobrava da se osobni podaci (ime i prezime te e-mail adresa) koje pruži, koriste u svrhu održavanja, provođenja i promocije ovog Natječaja i/ili ponude Priređivača.\nSudionik je suglasan da ga Priređivač kontaktira u slučajevima iz članka 7. ovih Pravila koristeći podatke koje je ostavio unutar nagradnog Natječaja. U slučaju mogućih netočnosti podataka ili manipulacije, postupit će se u smislu odredbe članka 7. ovih Pravila.

\n

ČLANAK 7.

\n

Priređivač ima pravo pregledati prijavljene podatke te zadržava pravo u bilo kojem trenutku diskvalificirati prijavljene Sudionike u sljedećim slučajevima:

\n
    \n
  • Sudionik krši ova Pravila

    \n
  • \n
  • Sudionik ne odgovara na upit Priređivača/Tehničkog izvođača u slučaju opravdane sumnje u manipulaciju rezultata Natječaja sudionika u roku od 24 sata na kontaktne podatke iz članka 6. ovih Pravila;

    \n
  • \n
  • Sudionik je povrijedio tajnost, cjelovitost i dostupnost računalnih podataka, programa ili sustava, ili izvršio djelo računalnoga krivotvorenja i/ili računalne prijevare, u skladu s odredbama Kaznenoga zakona (NN 125/11, 144/12, 56/15, 61/15).

    \n
  • \n
\n

ČLANAK 8.

\n

Ukupan nagradni fond sastoji se od:

\n

6 x 500 kuna u poklon bonovima City Centera one

\n

Za vrijeme trajanja kviza, od 29. ožujka do 3. travnja svaki dan bit će odabran novi dobitnik, ukupno 6 dobitnika. Poklon bon City Centera one u vrijednosti od 500 kuna ostvaruje prvoplasirani igrač na rang listi nakon završetka nagradnog natječaja toga dana, odnosno igrač koji za vrijeme trajanja natječaja u tom danu ima najbolje odigrano vrijeme.

\n

ČLANAK 9.

\n

Dobitnik će biti obaviješten o nagradi najkasnije 7 dana od završetka natječaja putem e-mail adrese koju je ostavio/la u prijavi za Natječaj. Kako bi preuzeo/la nagradu, dobitnik se mora javiti povratno na mail u roku od 7 dana od kontaktiranja Priređivača. Ako se dobitnik ne javi u navedenom roku, odabire se novi dobitnik – sljedeći korisnik na rang listi. Ime i prezime dobitnika nagrade biti će objavljeno u članku na web stranici City Centera one.

\n

Dobitnik preuzima nagradu na Mjestu za informacije u City Centeru one East u Zagrebu u roku od 15 dana od završetka nagradnog natječaja. Sudionik koji sudjeluje u nagradnom natječaju nema pravo zahtijevati drugačiju nagradu ili u većim količinama od one koja je navedena u ovim Pravilima.

\n

Preuzimanjem nagrade, odnosno istekom rokova za javljanje Priređivaču, odnosno ne preuzimanjem nagrade iz bilo kojeg razloga, prestaju sve daljnje obveze Priređivača prema dobitniku nagrade.

\n

Nagrada se ne može zamijeniti za novac, druge proizvode ili usluge.

\n

ČLANAK 10.

\n

U slučaju da nastupe okolnosti za koje Priređivač nije odgovoran, odnosno koje nije mogao predvidjeti, spriječiti, otkloniti ili izbjeći (viša sila), Priređivač može privremeno ili trajno prekinuti Natječaj te će o tome na odgovarajući način obavijestiti javnost.

\n

Priređivač zadržava pravo izmjene pravila nagradnog natječaja u bilo kojem trenutku te će o tome obavijestiti javnost objavom novih pravila na web stranici: www.citycenterone.hr .

\n

ČLANAK 11.

\n

Sudionici natječaja suglasni su s ovim pravilima i uvjetima obrade njihovih osobnih podataka. U slučaju spora između Organizatora i sudionika nagradnog natječaja utvrđuje se nadležnost suda u Zagrebu.

\n\n`;\n\nexport const west = `\n

Priređivač nagradnog natječaja Manta d.o.o., Jankomir 33, Zagreb, OIB: 44426143196 (u daljnjem tekstu: Priređivač) i tehnički izvođač nagradnog natječaja Go2Digital d.o.o., Torbarova 15, Zagreb, OIB:81297941099 (u daljnjem tekstu: Tehnički izvođač) utvrđuju sljedeću:

\n

OBAVIJEST O OBRADI OSOBNIH PODATAKA

\n

Priređivač i Tehnički izvođač ovim putem javno objavljuju Obavijest o obradi osobnih podataka:

\n
    \n
  • Osobni podaci (ime i prezime i e-mail adresa) koriste se isključivo za svrhe za koje su prikupljeni, a to su kreiranje rang liste igrača, proglašavanje dobitnika te obavještavanje dobitnika o preuzimanju nagrade.

    \n
  • \n
  • Osobni podaci prikupljeni tijekom trajanja natječaja neće se koristiti u komercijalne svrhe, a da prethodno nije dobivena suglasnost korisnika.

    \n
  • \n
  • Osobni podaci neće se čuvati dulje nego je to potrebno obzirom na svrhe prikupljanja ili dulje nego je to predviđeno važećim zakonom, a maksimalno 6 mjeseci nakon proglašenja dobitnika, zbog rješavanja eventualnih pritužbi vezano za provedeni natječaj.

    \n
  • \n
  • Priređivač i Tehnički izvođač ustanovili su mjere zaštite kako bi omogućili povjerljivost, sigurnost i cjelovitost prikupljenih osobnih podataka.

    \n
  • \n
  • Pristup osobnim podacima ograničen je na odgovorne osobe i nadležne odjele Priređivača i Tehničkog izvođača koji ih trebaju znati i koji su obučeni po pitanju pravila povjerljivosti.

    \n
  • \n
\n
\n

Priređivač nagradnog natječaja Manta d.o.o., Jankomir 33, Zagreb, OIB: 44426143196 (u daljnjem tekstu: Priređivač), koji organizira nagradni natječaj pod nazivom „Uskršnja aktivacija Pronađite razlike“ (u daljnjem tekstu: Natječaj), utvrđuje sljedeća:

\n

PRAVILA NAGRADNOG NATJEČAJA

\n

„Uskršnja aktivacija Pronađite razlike“\n(u daljnjem tekstu: Pravila)

\n

ČLANAK 1.

\n

Svrha Nagradnog natječaja jest promocija proizvoda i usluga Priređivača.

\n

ČLANAK 2.

\n

Priređivač organizira nagradni natječaj pod nazivom „Uskršnja aktivacija Pronađite razlike“ na digitalnom Citylightu postavljenom u City Centeru one West u Zagrebu. Natječaj traje od 29. ožujka do 3. travnja 2021. godine.

\n

ČLANAK 3.

\n

Pravila Natječaja bit će objavljena na web stranici: www.citycenterone.hr uoči početka Natječaja, a bit će dostupna svim sudionicima Natječaja prilikom sudjelovanja, odnosno igranja kviza, na zaslonu interaktivnog Citylighta. Sudionici natječaja suglasni su s ovim pravilima i uvjetima obrade njihovih osobnih podataka.

\n

ČLANAK 4.

\n

Pravo sudjelovanja u Nagradnom natječaju ostvaruju sve fizičke osobe starije od 18 godina. \nMoguće je pristupiti digitalnom Citylightu postavljenom u City Centeru one West u Zagrebu i odigrati nagradni kviz jednom, nakon čega je potrebno registrirati se imenom i prezimenom te e-mail adresom, čime se ostvaruje plasman na rang ljestvici. Plasman na rang ljestvici temelji se na vremenu utrošenom na pronalazak 6 razlika na vizualima prikazanima na ekranu. \nU Nagradnom natječaju ne mogu sudjelovati zaposlenici Priređivača sa svojom užom obitelji niti zaposlenici prodajnih, uslužnih i ugostiteljskih prostora u City Centeru one, kao ni zaposlenici Tehničkog izvođača ili članovi njihove uže obitelji.

\n

ČLANAK 5.

\n

\nSvaki posjetitelj u razdoblju od 29. ožujka do 3. travnja 2021., može pristupiti interaktivnom Citylightu postavljenom u City Centeru one West u Zagrebu u periodu od 9:00h do 20:59h i odigrati kviz 'Uskršnja aktivacija Pronađite razlike' koristeći touchscreen, nakon čega ostvaruje pravo registracije i plasman na rang ljestvici. \nIgrač ima 3 minute vremena u kojem mora pronaći 6 razlika na prikazanim vizualima na ekranu. Po završetku kviza u zadanom roku, pojavljuje se vrijeme koje je igrač ostvario te mogućnost da ostavi svoje podatke – ime, prezime i e-mail adresu - čime ostvaruje plasman na rang listi. Ukoliko igrač na prihvati Pravila privatnosti i pravila nagradnog natječaja, ne može prijaviti rezultat, a isti se ujedno smatra i nevažećim. Rang lista se zaključava svakog dana u 21:00h i igrač koji je ostvario najbolji rezultat, tj. u najkraćem vremenu pronašao 6 razlika, osvaja dnevnu nagradu. Rang lista od tekućeg dana se nakon 21:00 poništava i idućeg dana od 9:00 kreće novo rangiranje, za novi dan. Jedan igrač može se dnevno prijaviti samo s jednom e-mail adresom, u slučaju da bude ipak više prijava, u obzir će se uzeti samo prva prijava, prvi rezultat. \nJedan igrač može osvojiti samo jednom nagradu u toku cijelog nagradnog natječaja, odnosno samo jednom igrač može biti dobitnik kroz svih 6 dana koliko traje nagradni natječaj. \n

\n\n

ČLANAK 6.

\n

Sudjelujući u Natječaju, sudionik prihvaća i odobrava da se osobni podaci (ime i prezime te e-mail adresa) koje pruži, koriste u svrhu održavanja, provođenja i promocije ovog Natječaja i/ili ponude Priređivača.\nSudionik je suglasan da ga Priređivač kontaktira u slučajevima iz članka 7. ovih Pravila koristeći podatke koje je ostavio unutar nagradnog Natječaja. U slučaju mogućih netočnosti podataka ili manipulacije, postupit će se u smislu odredbe članka 7. ovih Pravila.

\n

ČLANAK 7.

\n

Priređivač ima pravo pregledati prijavljene podatke te zadržava pravo u bilo kojem trenutku diskvalificirati prijavljene Sudionike u sljedećim slučajevima:

\n
    \n
  • Sudionik krši ova Pravila

    \n
  • \n
  • Sudionik ne odgovara na upit Priređivača/Tehničkog izvođača u slučaju opravdane sumnje u manipulaciju rezultata Natječaja sudionika u roku od 24 sata na kontaktne podatke iz članka 6. ovih Pravila;

    \n
  • \n
  • Sudionik je povrijedio tajnost, cjelovitost i dostupnost računalnih podataka, programa ili sustava, ili izvršio djelo računalnoga krivotvorenja i/ili računalne prijevare, u skladu s odredbama Kaznenoga zakona (NN 125/11, 144/12, 56/15, 61/15).

    \n
  • \n
\n

ČLANAK 8.

\n

Ukupan nagradni fond sastoji se od:

\n

6 x 500 kuna u poklon bonovima City Centera one

\n

Za vrijeme trajanja kviza, od 29. ožujka do 3. travnja svaki dan bit će odabran novi dobitnik, ukupno 6 dobitnika. Poklon bon City Centera one u vrijednosti od 500 kuna ostvaruje prvoplasirani igrač na rang listi nakon završetka nagradnog natječaja toga dana, odnosno igrač koji za vrijeme trajanja natječaja u tom danu ima najbolje odigrano vrijeme.

\n

ČLANAK 9.

\n

Dobitnik će biti obaviješten o nagradi najkasnije 7 dana od završetka natječaja putem e-mail adrese koju je ostavio/la u prijavi za Natječaj. Kako bi preuzeo/la nagradu, dobitnik se mora javiti povratno na mail u roku od 7 dana od kontaktiranja Priređivača. Ako se dobitnik ne javi u navedenom roku, odabire se novi dobitnik – sljedeći korisnik na rang listi. Ime i prezime dobitnika nagrade biti će objavljeno u članku na web stranici City Centera one.

\n

Dobitnik preuzima nagradu na Mjestu za informacije u City Centeru one West u Zagrebu u roku od 15 dana od završetka nagradnog natječaja. Sudionik koji sudjeluje u nagradnom natječaju nema pravo zahtijevati drugačiju nagradu ili u većim količinama od one koja je navedena u ovim Pravilima.

\n

Preuzimanjem nagrade, odnosno istekom rokova za javljanje Priređivaču, odnosno ne preuzimanjem nagrade iz bilo kojeg razloga, prestaju sve daljnje obveze Priređivača prema dobitniku nagrade.

\n

Nagrada se ne može zamijeniti za novac, druge proizvode ili usluge.

\n

ČLANAK 10.

\n

U slučaju da nastupe okolnosti za koje Priređivač nije odgovoran, odnosno koje nije mogao predvidjeti, spriječiti, otkloniti ili izbjeći (viša sila), Priređivač može privremeno ili trajno prekinuti Natječaj te će o tome na odgovarajući način obavijestiti javnost.

\n

Priređivač zadržava pravo izmjene pravila nagradnog natječaja u bilo kojem trenutku te će o tome obavijestiti javnost objavom novih pravila na web stranici: www.citycenterone.hr .

\n

ČLANAK 11.

\n

Sudionici natječaja suglasni su s ovim pravilima i uvjetima obrade njihovih osobnih podataka. U slučaju spora između Organizatora i sudionika nagradnog natječaja utvrđuje se nadležnost suda u Zagrebu.

\n`;\n\nexport const split = `\n

Priređivač nagradnog natječaja Kaufmann i Hofmann d.o.o., Jankomir 33, Zagreb, OIB: 36528252072 (u daljnjem tekstu: Priređivač) i tehnički izvođač nagradnog natječaja Go2Digital d.o.o., Torbarova 15, Zagreb, OIB:81297941099 (u daljnjem tekstu: Tehnički izvođač) utvrđuju sljedeću:

\n

OBAVIJEST O OBRADI OSOBNIH PODATAKA

\n

Priređivač i Tehnički izvođač ovim putem javno objavljuju Obavijest o obradi osobnih podataka:

\n
    \n
  • Osobni podaci (ime i prezime i e-mail adresa) koriste se isključivo za svrhe za koje su prikupljeni, a to su kreiranje rang liste igrača, proglašavanje dobitnika te obavještavanje dobitnika o preuzimanju nagrade.

    \n
  • \n
  • Osobni podaci prikupljeni tijekom trajanja natječaja neće se koristiti u komercijalne svrhe, a da prethodno nije dobivena suglasnost korisnika.

    \n
  • \n
  • Osobni podaci neće se čuvati dulje nego je to potrebno obzirom na svrhe prikupljanja ili dulje nego je to predviđeno važećim zakonom, a maksimalno 6 mjeseci nakon proglašenja dobitnika, zbog rješavanja eventualnih pritužbi vezano za provedeni natječaj.

    \n
  • \n
  • Priređivač i Tehnički izvođač ustanovili su mjere zaštite kako bi omogućili povjerljivost, sigurnost i cjelovitost prikupljenih osobnih podataka.

    \n
  • \n
  • Pristup osobnim podacima ograničen je na odgovorne osobe i nadležne odjele Priređivača i Tehničkog izvođača koji ih trebaju znati i koji su obučeni po pitanju pravila povjerljivosti.

    \n
  • \n
\n
\n

Priređivač nagradnog natječaja Kaufmann i Hofmann, Jankomir 33, Zagreb, OIB: 36528252072 (u daljnjem tekstu: Priređivač), koji organizira nagradni natječaj pod nazivom „Uskršnja aktivacija Pronađite razlike“ (u daljnjem tekstu: Natječaj), utvrđuje sljedeća:

\n

PRAVILA NAGRADNOG NATJEČAJA

\n

„Uskršnja aktivacija Pronađite razlike“\n(u daljnjem tekstu: Pravila)

\n

ČLANAK 1.

\n

Svrha Nagradnog natječaja jest promocija proizvoda i usluga Priređivača.

\n

ČLANAK 2.

\n

Priređivač organizira nagradni natječaj pod nazivom „Uskršnja aktivacija Pronađite razlike“ na digitalnom Citylightu postavljenom u City Centeru one Split. Natječaj traje od 29. ožujka do 3. travnja 2021. godine.

\n

ČLANAK 3.

\n

Pravila Natječaja bit će objavljena na web stranici: www.citycenterone.hr uoči početka Natječaja, a bit će dostupna svim sudionicima Natječaja prilikom sudjelovanja, odnosno igranja kviza, na zaslonu interaktivnog Citylighta. Sudionici natječaja suglasni su s ovim pravilima i uvjetima obrade njihovih osobnih podataka.

\n

ČLANAK 4.

\n

Pravo sudjelovanja u Nagradnom natječaju ostvaruju sve fizičke osobe starije od 18 godina. \nMoguće je pristupiti digitalnom Citylightu postavljenom u City Centeru one Split i odigrati nagradni kviz jednom, nakon čega je potrebno registrirati se imenom i prezimenom te e-mail adresom, čime se ostvaruje plasman na rang ljestvici. Plasman na rang ljestvici temelji se na vremenu utrošenom na pronalazak 6 razlika na vizualima prikazanima na ekranu. \nU Nagradnom natječaju ne mogu sudjelovati zaposlenici Priređivača sa svojom užom obitelji niti zaposlenici prodajnih, uslužnih i ugostiteljskih prostora u City Centeru one, kao ni zaposlenici Tehničkog izvođača ili članovi njihove uže obitelji.

\n

ČLANAK 5.

\n

\nSvaki posjetitelj u razdoblju od 29. ožujka do 3. travnja 2021., može pristupiti interaktivnom Citylightu postavljenom u City Centeru one Split u periodu od 9:00h do 20:59h i odigrati kviz 'Uskršnja aktivacija Pronađite razlike' koristeći touchscreen, nakon čega ostvaruje pravo registracije i plasman na rang ljestvici. \nIgrač ima 3 minute vremena u kojem mora pronaći 6 razlika na prikazanim vizualima na ekranu. Po završetku kviza u zadanom roku, pojavljuje se vrijeme koje je igrač ostvario te mogućnost da ostavi svoje podatke – ime, prezime i e-mail adresu - čime ostvaruje plasman na rang listi. Ukoliko igrač na prihvati Pravila privatnosti i pravila nagradnog natječaja, ne može prijaviti rezultat, a isti se ujedno smatra i nevažećim. Rang lista se zaključava svakog dana u 21:00h i igrač koji je ostvario najbolji rezultat, tj. u najkraćem vremenu pronašao 6 razlika, osvaja dnevnu nagradu. Rang lista od tekućeg dana se nakon 21:00 poništava i idućeg dana od 9:00 kreće novo rangiranje, za novi dan. Jedan igrač može se dnevno prijaviti samo s jednom e-mail adresom, u slučaju da bude ipak više prijava, u obzir će se uzeti samo prva prijava, prvi rezultat. \nJedan igrač može osvojiti samo jednom nagradu u toku cijelog nagradnog natječaja, odnosno samo jednom igrač može biti dobitnik kroz svih 6 dana koliko traje nagradni natječaj. \n

\n

ČLANAK 6.

\n

Sudjelujući u Natječaju, sudionik prihvaća i odobrava da se osobni podaci (ime i prezime te e-mail adresa) koje pruži, koriste u svrhu održavanja, provođenja i promocije ovog Natječaja i/ili ponude Priređivača.\nSudionik je suglasan da ga Priređivač kontaktira u slučajevima iz članka 7. ovih Pravila koristeći podatke koje je ostavio unutar nagradnog Natječaja. U slučaju mogućih netočnosti podataka ili manipulacije, postupit će se u smislu odredbe članka 7. ovih Pravila.

\n

ČLANAK 7.

\n

Priređivač ima pravo pregledati prijavljene podatke te zadržava pravo u bilo kojem trenutku diskvalificirati prijavljene Sudionike u sljedećim slučajevima:

\n
    \n
  • Sudionik krši ova Pravila

    \n
  • \n
  • Sudionik ne odgovara na upit Priređivača/Tehničkog izvođača u slučaju opravdane sumnje u manipulaciju rezultata Natječaja sudionika u roku od 24 sata na kontaktne podatke iz članka 6. ovih Pravila;

    \n
  • \n
  • Sudionik je povrijedio tajnost, cjelovitost i dostupnost računalnih podataka, programa ili sustava, ili izvršio djelo računalnoga krivotvorenja i/ili računalne prijevare, u skladu s odredbama Kaznenoga zakona (NN 125/11, 144/12, 56/15, 61/15).

    \n
  • \n
\n

ČLANAK 8.

\n

Ukupan nagradni fond sastoji se od:

\n

6 x 500 kuna u poklon bonovima City Centera one

\n

Za vrijeme trajanja kviza, od 29. ožujka do 3. travnja svaki dan bit će odabran novi dobitnik, ukupno 6 dobitnika. Poklon bon City Centera one u vrijednosti od 500 kuna ostvaruje prvoplasirani igrač na rang listi nakon završetka nagradnog natječaja toga dana, odnosno igrač koji za vrijeme trajanja natječaja u tom danu ima najbolje odigrano vrijeme.

\n

ČLANAK 9.

\n

Dobitnik će biti obaviješten o nagradi najkasnije 7 dana od završetka natječaja putem e-mail adrese koju je ostavio/la u prijavi za Natječaj. Kako bi preuzeo/la nagradu, dobitnik se mora javiti povratno na mail u roku od 7 dana od kontaktiranja Priređivača. Ako se dobitnik ne javi u navedenom roku, odabire se novi dobitnik – sljedeći korisnik na rang listi. Ime i prezime dobitnika nagrade biti će objavljeno u članku na web stranici City Centera one.

\n

Dobitnik preuzima nagradu na Mjestu za informacije u City Centeru one Split u roku od 15 dana od završetka nagradnog natječaja. Sudionik koji sudjeluje u nagradnom natječaju nema pravo zahtijevati drugačiju nagradu ili u većim količinama od one koja je navedena u ovim Pravilima.

\n

Preuzimanjem nagrade, odnosno istekom rokova za javljanje Priređivaču, odnosno ne preuzimanjem nagrade iz bilo kojeg razloga, prestaju sve daljnje obveze Priređivača prema dobitniku nagrade.

\n

Nagrada se ne može zamijeniti za novac, druge proizvode ili usluge.

\n

ČLANAK 10.

\n

U slučaju da nastupe okolnosti za koje Priređivač nije odgovoran, odnosno koje nije mogao predvidjeti, spriječiti, otkloniti ili izbjeći (viša sila), Priređivač može privremeno ili trajno prekinuti Natječaj te će o tome na odgovarajući način obavijestiti javnost.

\n

Priređivač zadržava pravo izmjene pravila nagradnog natječaja u bilo kojem trenutku te će o tome obavijestiti javnost objavom novih pravila na web stranici: www.citycenterone.hr .

\n

ČLANAK 11.

\n

Sudionici natječaja suglasni su s ovim pravilima i uvjetima obrade njihovih osobnih podataka. U slučaju spora između Organizatora i sudionika nagradnog natječaja utvrđuje se nadležnost suda u Zagrebu.

\n`;\n","import React from 'react';\nimport { postAndRetry, getAppInfo } from 'dooh-utils';\nimport styled, { ThemeProvider } from 'styled-components';\nimport { Form } from '../dooh-react-utils';\nimport { preloader } from '../img';\nimport * as TERMS from './terms';\n\nconst FIELDS = [\n { name: 'name', label: 'Ime i prezime', type: 'name' },\n { name: 'email', label: 'E-mail', type: 'email' },\n];\n\nconst Wrap = styled.div`\n background: url('${() =>\n preloader.get(require('../img/bg.png'))}') no-repeat 0 0;\n padding-top: 500px;\n\n .Button.SubmitSmall {\n background: url('${p => p.btnbg}') no-repeat 0 0;\n background-size: contain;\n\n .Tap {\n background: none;\n opacity: 0;\n }\n }\n`;\n\n//color: #57463C;\nconst THEME = {\n buttonTextColor: 'white',\n keyboardBackgroundColor: 'white',\n keyboardTextColor: '#333',\n checkboxInnerColor: 'black',\n checkboxOuterColor: 'white',\n checkboxInvert: false,\n buttonUppercase: true,\n buttonBackground: '#57463C',\n termsLineColor: 'black',\n inputFont: 'boldfont',\n font: 'boldfont',\n termsBackground: 'none',\n};\n\nexport default class FormScreen extends React.Component {\n render() {\n return (\n \n \n \n \n \n );\n }\n\n handleFormSubmit = data => {\n const { tracking, instance } = getAppInfo();\n\n if (tracking != null && instance != null) {\n postAndRetry('https://interaktivno.go2digital.hr/api/games/results/', {\n //postAndRetry('/api/games/results/', {\n game_instance: instance,\n value: this.props.time,\n name: data.name,\n form_data: data,\n tracking,\n });\n\n postAndRetry('https://interaktivno.go2digital.hr/api/games/tracking/', {\n event: 'submit',\n meta: { ...data, time: this.props.time },\n game_instance: instance,\n tracking,\n });\n }\n\n this.props.update({\n screen: 'thanks',\n name: data.name,\n topList: updateTopList(\n this.props.topListOnline,\n data.name,\n this.props.time\n ),\n });\n };\n}\n\nfunction updateTopList(topList, name, value) {\n topList = [...topList];\n let pos = 0;\n for (; pos < topList.length; pos++) {\n if (value <= topList[pos].value) break;\n }\n\n let result = { i: pos, value, name, current: true };\n\n if (pos !== topList.length) {\n topList.splice(pos, 0, result);\n } else {\n topList.push(result);\n }\n\n return topList;\n}\n","let indexedDB =\n window.indexedDB ||\n window.webkitIndexedDB ||\n window.mozIndexedDB ||\n window.OIndexedDB ||\n window.msIndexedDB;\nconst dbVersion = 1.0;\n\nconst STORE_NAME = 'blobs';\n\nexport async function openDatabase() {\n return new Promise((resolve, reject) => {\n try {\n let request = indexedDB.open(STORE_NAME, dbVersion);\n request.onerror = function(event) {\n console.log('Error creating/accessing IndexedDB database');\n reject(event);\n };\n\n request.onsuccess = function(event) {\n console.log('Success creating/accessing IndexedDB database');\n let db = request.result;\n\n db.onerror = function(event) {\n console.log('Error creating/accessing IndexedDB database');\n reject(event);\n };\n\n // Interim solution for Google Chrome to create an objectStore. Will be deprecated\n if (db.setVersion) {\n if (db.version !== dbVersion) {\n let setVersion = db.setVersion(dbVersion);\n setVersion.onsuccess = function() {\n db.createObjectStore(STORE_NAME);\n resolve(db);\n };\n } else {\n resolve(db);\n }\n } else {\n resolve(db);\n }\n };\n\n // For future use. Currently only in latest Firefox versions\n request.onupgradeneeded = function(event) {\n request.result.createObjectStore(STORE_NAME);\n };\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport async function store(db, url, blob) {\n return new Promise((resolve, reject) => {\n let transaction = db.transaction([STORE_NAME], 'readwrite');\n try {\n const request = transaction.objectStore(STORE_NAME).put(blob, url);\n request.onsuccess = resolve;\n request.onerror = reject;\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport async function fetch(db, url) {\n return new Promise((resolve, reject) => {\n let transaction = db.transaction([STORE_NAME], 'readwrite');\n try {\n const request = transaction.objectStore(STORE_NAME).get(url);\n request.onsuccess = function(event) {\n let blob = event.target.result;\n if (blob) {\n resolve(URL.createObjectURL(blob));\n } else {\n resolve(null);\n }\n };\n request.onerror = reject;\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport function clear(db, urls) {\n const store = db\n .transaction([STORE_NAME], 'readwrite')\n .objectStore(STORE_NAME);\n const keys = new Set(urls);\n store.getAllKeys().onsuccess = function(event) {\n if (event.target.result) {\n event.target.result.forEach(key => {\n if (!keys.has(key)) {\n store.delete(key);\n }\n });\n }\n };\n}\n","import React from 'react';\nimport { createGlobalStyle } from 'styled-components';\nimport * as database from './db.js';\n\nfunction getUrl(url, onProgress) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'blob';\n\n xhr.addEventListener(\n 'load',\n () => {\n if (xhr.status === 200) {\n resolve(xhr.response);\n } else {\n reject(new Error('Status is not 200.'));\n }\n },\n false\n );\n\n xhr.addEventListener('error', e => reject(e));\n xhr.addEventListener('abort', e => reject(e));\n xhr.addEventListener('progress', e => {\n if (e.lengthComputable) {\n onProgress(e.loaded, e.total);\n }\n });\n\n try {\n xhr.send();\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport default class Preloader {\n constructor(urls = [], fonts = []) {\n this.urls = urls;\n this.fonts = fonts;\n this.objectUrls = new Map();\n this.load(urls, fonts);\n this.fontStyle = null;\n }\n\n async load(urls, fonts) {\n this.totalBytes = 0;\n this.knownTotalSize = false;\n const allUrls = urls\n .concat(fonts.map(f => f.url))\n .filter(url => !url.startsWith('data:'));\n\n this.objectUrls = await this.getCachedUrls(allUrls);\n\n this.sizes = await this.getSizes(\n allUrls.filter(url => !this.objectUrls.has(url))\n );\n this.knownTotalSize = true;\n await this.loadUrls(this.sizes);\n }\n\n async getSizes(urls) {\n let sizes = [];\n for (let i = 0; i < urls.length; i++) {\n try {\n const response = await fetch(urls[i], { method: 'HEAD' });\n const bytes = parseInt(response.headers.get('Content-Length'), 10);\n sizes.push({ url: urls[i], total: bytes, loaded: 0 });\n } catch (e) {\n // Some environments don't support HEAD to get content length.\n sizes.push({ url: urls[i], total: 1, loaded: 0 });\n }\n }\n return sizes;\n }\n\n async getCachedUrls(urls) {\n let db;\n try {\n db = await database.openDatabase();\n } catch (e) {\n console.error(e);\n return new Map();\n }\n\n try {\n const cached = await Promise.all(\n urls.map(url => database.fetch(db, url))\n );\n return new Map(\n cached\n .map((cachedUrl, i) => [urls[i], cachedUrl])\n .filter(([_, cachedUrl]) => cachedUrl != null)\n );\n } catch (e) {\n console.error(e);\n return new Map();\n }\n }\n\n async loadUrls(sizes) {\n let db;\n try {\n db = await database.openDatabase();\n console.log(db);\n } catch (e) {\n console.error(e);\n }\n\n for (let i = 0; i < sizes.length; i++) {\n if (db) {\n try {\n const url = await database.fetch(db, sizes[i].url);\n if (url) {\n sizes[i].loaded = sizes[i].total;\n this.objectUrls.set(sizes[i].url, url);\n continue;\n }\n } catch (e) {\n console.error(e);\n }\n }\n\n try {\n const blob = await getUrl(sizes[i].url, (loadedBytes, totalBytes) => {\n // normalize to prefetch total bytes\n sizes[i].loaded = loadedBytes * (sizes[i].total / totalBytes);\n });\n this.objectUrls.set(sizes[i].url, URL.createObjectURL(blob));\n\n try {\n await database.store(db, sizes[i].url, blob);\n } catch (e) {\n console.error(e);\n }\n } catch (e) {\n console.error(e);\n } finally {\n sizes[i].loaded = sizes[i].total;\n }\n }\n\n try {\n await database.clear(db, [...this.objectUrls.keys()]);\n } catch (e) {\n console.error(e);\n }\n }\n\n get = url => {\n if (url.startsWith('data:')) return url;\n if (this.objectUrls.has(url)) {\n return this.objectUrls.get(url);\n } else {\n console.log('Miss', url);\n return url;\n }\n };\n\n lazyGet = url => () => this.get(url);\n\n getFontStyle = () => {\n if (this.fontStyle == null && this.getProgress() >= 1) {\n const FontStyle = createGlobalStyle`\n ${this.fonts\n .map(\n ({ name, url }) => `\n @font-face {\n font-family: '${name}';\n src: url('${this.get(url)}') format('woff');\n font-weight: normal;\n font-style: normal;\n }\n `\n )\n .join('\\n')}\n `;\n this.fontStyle = ;\n }\n // return null if fonts are not loaded yet\n return this.fontStyle;\n };\n\n getProgress = () => {\n if (!this.knownTotalSize) return 0;\n const total = this.sizes.reduce((total, s) => s.total + total, 0);\n if (total === 0) return 1;\n const loaded = this.sizes.reduce((total, s) => s.loaded + total, 0);\n return loaded / total;\n };\n}\n","module.exports = __webpack_public_path__ + \"static/media/pic5.4af10a29.png\";","module.exports = __webpack_public_path__ + \"static/media/bg.26ddf96a.png\";","module.exports = __webpack_public_path__ + \"static/media/cta.01fa5722.png\";","module.exports = __webpack_public_path__ + \"static/media/game.eff9a6d4.png\";","module.exports = __webpack_public_path__ + \"static/media/result.abf75f98.png\";","module.exports = __webpack_public_path__ + \"static/media/toplist.69ee715b.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","import React from 'react';\nimport xr from 'xr';\nimport { createGlobalStyle } from 'styled-components';\nimport { setup, renderScreens, screen } from './dooh-react-utils';\nimport { getAppInfo } from 'dooh-utils';\nimport { preloader } from './img';\n\nsetup('https://interaktivno.go2digital.hr/').then(async data => {\n const state = {\n screen: 'intro',\n pic: 5,\n time: 12402,\n name: 'Ivan Ivanić',\n topList: [],\n topListOnline: [],\n style: null,\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: 120 * 1000 }),\n screen(require('./screens/Thanks').default, 'thanks', {\n timeout: 5 * 1000,\n }),\n ],\n state,\n s => s.screen,\n preloader\n );\n\n const Style = createGlobalStyle`\n body {\n background: #d8dede;\n }\n\n #root {\n font-family: 'boldfont', sans-serif;\n color: white;\n }\n `;\n\n store.update({\n style: