{"version":3,"sources":["dooh-react-utils/Tap.js","dooh-react-utils/Screen.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","assets/header.png","assets/result/aohne.mp4","assets/result/aokej.mp4","assets/result/acool.mp4","assets/result/abravo.mp4","assets/result/asuper.mp4","assets/result/atop.mp4","assets/Gagalin-Regular.woff","assets/Garamond.woff","assets/Raleway-Bold.woff","screens/Intro.js","screens/Age.js","screens/Thanks.js","random.js","screens/Main.js","Button.js","screens/Result.js","assets/bubble.webm","questions.js","dooh-react-utils/preload/db.js","dooh-react-utils/preload/Preloader.js","assets/cta.png","assets/start.png","assets/thanks.png","assets/bubble-exit.webm","index.js","preload.js"],"names":["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","concat","handleGotoFirstScreen","getScreenName","screens","handleGotoNextScreen","i","findIndex","length","warning","window","gotoScreen","_this2","CurrentScreen","getScreen","Fragment","web","items","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","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","track","payload","session","setHeartbeatState","subscribers","forEach","ss","store","push","indexOf","splice","createGlobalStyle","GlobalStyle_templateObject","Logo","id","src","logo","alt","Wrap","LoadingScreen_templateObject","LoadingScreen","progress","check","preloader","getProgress","onDone","renderScreens","convertHearbeatState","Preloader","getAppInfo","tracking","startsWith","body","setAttribute","resolvePromise","App","loaded","doneLoading","subscribe","unsubscribe","fitToWindow","Screen_ScreenRouter","LoadingScreen_LoadingScreen","GlobalStyle","getFontStyle","elem","FitToWindow_FitToWindow","location","search","includes","ReactDOM","render","getElementById","Promise","resolve","reject","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","_ref8","Disclaimer","_templateObject9","_ref9","Checkbox","_templateObject10","_ref10","checkboxOuterColor","_ref11","selected","checkboxInvert","checkboxInnerColor","InputTermsWrap","_templateObject11","Over18","_templateObject12","_ref12","Form","isOver18","fieldValue","date","Date","todayDay","getDate","todayMonth","getMonth","todayYear","getFullYear","birthDay","parseInt","substr","birthMonth","birthYear","getOver18Message","keyValue","over18","type","getFieldOptions","focus","val","values","len","last","isFieldValid","match","getReviewField","field","name","review","fieldName","trim","validator","isEmail","age","Number","isFinite","isValid","fields","every","altTerms","t","isRequired","handleBirthKey","index","defineProperty","handleKey","handleSubmit","onSubmit","toggleAcceptTerms","acceptTerms","toggleAltTerms","toConsumableArray","showTerms","hideTerms","_ref13","checked","Form_Wrapper","getShowValue","getSuffix","getTerms","form_Keyboard","getKeyboardLayout","form_Terms","disclaimer","customTerms","_ref14","text","splitName","firstName","lastName","specKeys","_this$getFieldOptions6","__webpack_require__","d","__webpack_exports__","Screen_screen","Form_Form","dist","module","exports","get","header","react__WEBPACK_IMPORTED_MODULE_6___default","ctaVideo","muted","autoPlay","loop","cta","start","FIELDS","THEME","videoTimeUpdate","video","target","currentTime","play","styled_components__WEBPACK_IMPORTED_MODULE_7__","_dooh_react_utils__WEBPACK_IMPORTED_MODULE_10__","skip","data","onTimeUpdate","require","qs","queryString","parse","url","parent","replace","thanks","shuffle","j","floor","random","QUESTION","question","questions","CURRENT","Answers","Answer","Header","Question","VIDEO_EL","getAnswer","answer","styl","selectedAnswer","current","icon","phase","time","score","correct","done","nextQuestionTimeout","nextQuestion","log","qa","slice","qb","TEST","q","fontSize","answers","item","to","Result_templateObject","TITLE","TEXT","result","src_Button","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","answerFontSize","answerCls","icons","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","dbVersion","STORE_NAME","openDatabase","_openDatabase","_callee","regenerator_default","wrap","_context","prev","next","abrupt","request","open","onerror","event","onsuccess","db","setVersion","version","createObjectStore","onupgradeneeded","stop","_x","_x2","_x3","_store","_callee2","blob","_context2","transaction","objectStore","put","fetch","_x4","_x5","_fetch","_callee3","_context3","URL","createObjectURL","clear","urls","Set","getAllKeys","has","delete","getUrl","onProgress","xhr","XMLHttpRequest","responseType","status","response","lengthComputable","total","send","fonts","objectUrls","fontStyle","FontStyle","join","knownTotalSize","sizes","reduce","Map","load","totalBytes","allUrls","filter","getSizes","loadUrls","method","bytes","headers","database","error","_context4","t0","set","loadedBytes","t1","t2","setup","then","_mnt_ssd3_work_go2digital_go2d_apps_mentalna_kviz_2023_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","_mnt_ssd3_work_go2digital_go2d_apps_mentalna_kviz_2023_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","mark","default","vid","paused","ended","readyState","_dooh_react_utils_preload_Preloader__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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","file":"static/js/main.7a5172c0.chunk.js","sourcesContent":["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 this.props.gotoFirstScreen();\n }\n };\n }\n\n NamedScreen.displayName = `Screen(${screenName})`;\n\n return NamedScreen;\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 this.state.delegate.update(this.innerElement, nextProps);\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 background: #ffdc46;\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';\nimport logo from '../../assets/header.png';\n\nexport default function Logo() {\n return (\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: #ffdc46;\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 #logo {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 40px;\n }\n\n .progress {\n margin: 20px 2px 0 2px;\n padding-left: 10px;\n height: 10px;\n box-sizing: border-box;\n background: #58d0f2;\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\nexport function renderScreens(\n screens,\n initState,\n convertHearbeatState = s => s,\n preloader = new Preloader()\n) {\n const info = getAppInfo();\n\n if (\n info.tracking != null &&\n info.tracking !== 'test' &&\n !info.tracking.startsWith('web')\n ) {\n document.body.setAttribute('data-cursor', 'hidden');\n }\n\n setHeartbeatState(convertHearbeatState(initState));\n const store = new Store(initState, convertHearbeatState);\n let resolvePromise = store => {};\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 {this.state.loaded\n ? this.fitToWindow(\n ,\n 'App'\n )\n : this.fitToWindow(\n ,\n 'Loading'\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 new Promise((resolve, reject) => {\n resolvePromise = resolve;\n });\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 &.hide-key {\n visibility: hidden;\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 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 font-weight: bold;\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 & > 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 border-radius: 10px;\n }\n`;\n\nconst TermsLine = styled.div`\n display: flex;\n color: ${({ theme }) => theme.termsLineColor || 'white'};\n font-family: ${({ theme }) => theme.font || 'Roboto'};\n font-size: 25px;\n padding: 0;\n text-transform: uppercase;\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: 1em;\n height: 1em;\n box-sizing: border-box;\n position: relative;\n display: inline-block;\n border: 0.15em solid ${({ theme }) => theme.checkboxOuterColor || 'white'};\n border-radius: 0.8em;\n margin: 0 10px 0 0;\n bottom: 2px;\n background: ${({ selected, theme }) =>\n selected ^ !!theme.checkboxInvert\n ? theme.checkboxInnerColor || 'red'\n : theme.checkboxOuterColor || 'white'};\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 {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 } 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 Slažem se s\n \n \n pravilima natječaja\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 case 'age':\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 === 'age' && keyValue === 'enter') {\n return this.isFieldValid(s.focus);\n } else 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 if (type === 'age') {\n let age = parseInt(value, 10);\n return Number.isFinite(age) && age > 0 && age < 120;\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];\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 './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/header.e28abc37.png\";","module.exports = __webpack_public_path__ + \"static/media/aohne.b11a900d.mp4\";","module.exports = __webpack_public_path__ + \"static/media/aokej.b7bad044.mp4\";","module.exports = __webpack_public_path__ + \"static/media/acool.8adefd77.mp4\";","module.exports = __webpack_public_path__ + \"static/media/abravo.bf24e14e.mp4\";","module.exports = __webpack_public_path__ + \"static/media/asuper.94afb994.mp4\";","module.exports = __webpack_public_path__ + \"static/media/atop.386015b5.mp4\";","module.exports = __webpack_public_path__ + \"static/media/Gagalin-Regular.ed3e2523.woff\";","module.exports = __webpack_public_path__ + \"static/media/Garamond.e4d538bd.woff\";","module.exports = __webpack_public_path__ + \"static/media/Raleway-Bold.2f45ecbb.woff\";","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport { Tap } from '../dooh-react-utils';\nimport preloader from '../preload';\nimport ctaVideo from '../assets/bubble.webm';\nimport header from '../assets/header.png';\nimport start from '../assets/start.png';\nimport cta from '../assets/cta.png';\n\nconst Wrap = styled(Tap)`\n background-color: #ffdc46;\n\n #bubble, #overlay {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n #overlay {\n background: url('${preloader.get(header)}') no-repeat 50% 50px;\n }\n\n #button {\n position: absolute;\n top: 1100px;\n left: ${(1080 - 420) / 2}px;\n\n animation-name: pulse_animation;\n animation-duration: 1.3s;\n animation-timing-function: ease-in-out;\n animation-direction: alternate;\n animation-iteration-count: infinite;\n animation-play-state: running;\n }\n\n @keyframes pulse_animation {\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(.9);\n }\n\n 100% {\n transform: scale(1);\n }\n }\n`;\n\nclass Screen extends Component {\n render() {\n return (\n \n \n );\n }\n}\n\nexport default Screen;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport preloader from '../preload';\nimport header from '../assets/header.png';\nimport { ThemeProvider } from 'styled-components';\nimport { Form } from '../dooh-react-utils';\n\nconst FIELDS = [{ name: 'age', label: 'Godine', type: 'age' }];\n\nconst Wrap = styled.div`\n #bg, #overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 1080px;\n height: 1920px;\n }\n\n #bg {\n pointer-events: none;\n }\n\n #overlay {\n background: #8af1a4 url('${preloader.get(header)}') no-repeat 50% 50px;\n }\n\n text-align: center;\n\n h1 {\n margin-top: 260px;\n font-size: 80px;\n font-family: Gagalin-Regular;\n margin-bottom: 80px;\n }\n`;\n\nconst THEME = {\n //#ffd92a\n keyboardBackgroundColor: '#3ca445',\n buttonBackground: '#3ca445',\n keyboardTextColor: 'white',\n buttonTextColor: 'white',\n checkboxInnerColor: '#4F4F51',\n checkboxOuterColor: 'white',\n termsLineColor: 'white',\n checkboxInvert: false,\n buttonUppercase: false,\n inputFont: 'RalewayBold',\n font: 'RalewayBold',\n termsBackground: 'rgba(236,29,35,1)',\n};\n\nfunction videoTimeUpdate(e) {\n let video = e.target;\n if (video.currentTime >= 6) {\n video.currentTime = 0;\n video.play();\n }\n}\n\nclass Screen extends Component {\n render() {\n return (\n \n
\n

\n Prije početka, upiši\n
\n koliko imaš godina:\n

\n \n {\n window.track('skip');\n this.props.gotoNextScreen();\n }}\n onSubmit={data => {\n this.props.update({ age: data.age });\n window.track('age', data);\n this.props.gotoNextScreen();\n }}\n />\n \n
\n\n \n
\n );\n }\n}\n\nexport default Screen;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport queryString from 'query-string';\nimport { Tap } from '../dooh-react-utils';\nimport preloader from '../preload';\nimport ctaVideo from '../assets/bubble.webm';\nimport thanks from '../assets/thanks.png';\nimport header from '../assets/header.png';\n\nlet qs = queryString.parse(window.location.search);\n\nconst Wrap = styled(Tap)`\n background-color: #ffdc46;\n\n video,\n img {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n img {\n background: url('${preloader.get(header)}') no-repeat 50% 50px;\n }\n\n a {\n background-color: #ffdc46;\n position: absolute;\n top: 800px;\n width: 100%;\n text-align: center;\n }\n`;\n\nclass Screen extends Component {\n render() {\n let onTap = () => {\n if (qs.tracking != null && qs.tracking.startsWith('web')) {\n let url = `https://mentalnahigijena.hr/?utm_source=${\n qs.tracking\n }&utm_medium=g2d&utm_campaign=kviz`;\n if (window.parent) {\n window.parent.location.replace(url);\n } else {\n window.location.replace(url);\n }\n } else {\n this.props.gotoNextScreen();\n }\n };\n return (\n \n \n );\n }\n}\n\nexport default Screen;\n","export function shuffle(a) {\n for (let i = a.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [a[i], a[j]] = [a[j], a[i]];\n }\n return a;\n}\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport { Trail } from 'react-spring';\nimport header from '../assets/header.png';\nimport { Tap } from '../dooh-react-utils';\nimport preloader from '../preload';\nimport queryString from 'query-string';\nimport { questions } from '../questions';\nimport { shuffle } from '../random';\n\nlet qs = queryString.parse(window.location.search);\nlet QUESTION = parseInt(qs.question, 10) - 1;\nif (!Number.isFinite(QUESTION) || QUESTION < 0 || QUESTION >= questions.length)\n QUESTION = null;\n\nlet CURRENT = 0;\n\nconst Wrap = styled.div`\n color: black;\n height: 1920px;\n width: 1080px;\n position: absolute;\n\n #bg, #overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 1080px;\n height: 1920px;\n }\n\n #bg {\n pointer-events: none;\n }\n\n #overlay {\n background: #8af1a4 url('${preloader.get(header)}') no-repeat 50% 50px;\n }\n`;\n\nconst Answers = styled.div`\n font-size: 40px;\n display: flex;\n margin-top: 60px;\n width: 100%;\n flex-direction: column;\n`;\n\nconst Answer = styled(Tap)`\n font-family: Garamond;\n width: 820px;\n\n & > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n color: black;\n background: #ffd82b;\n margin: 0 auto;\n font-size: 42px;\n font-family: RalewayBold, sans-serif;\n border: 6px solid black;\n min-height: 150px;\n border-radius: 100px;\n font-weight: 700;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n }\n\n box-sizing: border-box;\n margin: 10px auto;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n`;\n\nconst Header = styled.div`\n margin-top: 320px;\n margin-bottom: 30px;\n color: black;\n text-align: center;\n font-size: 80px;\n font-family: Gagalin-Regular;\n`;\n\nconst Question = styled.div`\n width: 100%;\n box-sizing: border-box;\n padding: 0 80px;\n font-size: 80px;\n font-family: Gagalin-Regular;\n text-align: center;\n`;\n\nlet VIDEO_EL = null;\n\nfunction videoTimeUpdate(e, done) {\n VIDEO_EL = e.target;\n}\n\nclass Screen extends Component {\n constructor(props) {\n super(props);\n let questions = props.questions;\n let qa = questions.slice(0, 15);\n let qb = questions.slice(15, 30);\n shuffle(qa);\n shuffle(qb);\n\n if (QUESTION != null) questions = [questions[QUESTION]];\n if (qs.TEST == null) questions = [...qa.slice(0, 3), ...qb.slice(0, 2)];\n\n this.state = {\n questions,\n score: 0,\n current: CURRENT,\n time: +new Date(),\n selectedAnswer: null,\n phase: 'NOT_ANSWERED', // ANSWERED, TIMEOUT\n done: false,\n };\n }\n\n componentDidMount() {\n //this.setState(this.nextQuestion);\n this.nextQuestionTimeout = null;\n }\n\n render() {\n let { questions, current } = this.state;\n let q = questions[current];\n\n return (\n \n
\n
\n {current + 1}/{questions.length}\n
\n\n \n {q.question()}\n \n\n \n `${current}/${item.i}`}\n from={{ opacity: 0, transform: 'translate3d(0, -20px, 0)' }}\n to={{ opacity: 1, transform: 'translate3d(0, 0px, 0)' }}\n >\n {item => style => this.getAnswer(item, style)}\n \n \n
\n videoTimeUpdate(e, this.state.done)}\n src={preloader.get(\n this.state.done\n ? require('../assets/bubble-exit.webm')\n : require('../assets/bubble.webm')\n )}\n muted\n autoPlay\n loop={!this.state.done}\n />\n
\n );\n }\n\n getAnswer = (answer, style) => {\n let styl = { ...style };\n\n let selected = this.state.selectedAnswer;\n\n if (selected === answer.i) {\n styl['background'] = 'white';\n }\n\n return (\n this.answer(answer)}\n icon={answer.icon}\n preventDoubleTap={false}\n >\n
{answer.a}
\n \n );\n };\n\n answer = a => {\n if (this.state.phase !== 'NOT_ANSWERED') return;\n const dt = +new Date() - this.state.time;\n if (dt < 500) return;\n\n this.setState(s => ({\n ...s,\n phase: 'ANSWERED',\n score: s.score + (a.correct ? 1 : 0),\n selectedAnswer: a.i,\n }));\n\n if (this.state.current === this.state.questions.length - 1) {\n setTimeout(() => {\n this.setState({ done: true });\n\n setTimeout(() => {\n window.track('submit', {\n score: this.state.score,\n age: this.props.age,\n });\n this.nextScreen();\n }, 3000);\n\n if (VIDEO_EL) {\n VIDEO_EL.currentTime = 0;\n }\n }, 500);\n } else {\n this.nextQuestionTimeout = setTimeout(\n () => this.setState(this.nextQuestion),\n 600\n );\n }\n };\n\n nextQuestion = s => {\n return {\n ...s,\n current: s.current + 1,\n selectedAnswer: null,\n phase: 'NOT_ANSWERED',\n time: +new Date(),\n };\n };\n\n nextScreen = () => {\n this.setState({ phase: 'TIMEOUT' });\n\n console.log(this.state.score);\n this.props.update(s => ({\n ...s,\n score: this.state.score,\n }));\n\n this.props.gotoNextScreen();\n };\n}\n\nexport default Screen;\n","import styled from 'styled-components';\nimport { Tap } from './dooh-react-utils';\n\nconst Button = styled(Tap)`\n width: 520px;\n color: black;\n background: #ffd82b;\n margin: 0 auto;\n font-size: 42px;\n font-family: RalewayBold, sans-serif;\n border: 3px solid black;\n height: 120px;\n border-radius: 60px;\n text-transform: uppercase;\n font-weight: 700;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.white {\n background: white;\n }\n`;\n\nexport default Button;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport preloader from '../preload';\nimport header from '../assets/header.png';\nimport { result } from '../preload';\nimport Button from '../Button';\n\nconst Wrap = styled.div`\n #bg, #overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 1080px;\n height: 1920px;\n }\n\n #overlay {\n background: url('${preloader.get(header)}') no-repeat 50% 50px;\n }\n\n text-align: center;\n\n h1 {\n margin-top: 360px;\n font-size: 200px;\n font-family: Gagalin-Regular;\n }\n\n p {\n margin-top: 100px;\n margin-bottom: 80px;\n font-size: 60px;\n font-family: Garamond;\n }\n\n .Tap {\n margin-top: 15px;\n }\n`;\n\nlet TITLE = ['Oh, ne!', 'Okej!', 'Cool!', 'Bravo!', 'Super!', 'Top!'];\nlet TEXT = [\n

\n Imaš 0 točnih odgovora.\n
\n Bez brige, malo su ti se stvari zapetljale.\n

,\n

\n Imaš 1 točan odgovor.\n
\n Trebaš upiti još malo znanja\n
o mentalnoj higijeni.\n

,\n

\n Imaš 2 točna odgovora.\n
\n Možeš malo češće očistiti raspored\n
\n za mentalnu higijenu.\n

,\n

\n Imaš 3 točna odgovora.\n
\n Tvoja baza znanja o mentalnoj\n
\n higijeni je dobro postavljena.\n

,\n

\n Imaš 4 točna odgovora.\n
\n Trebaš još samo malo brusiti\n
\n znanje o mentalnoj higijeni.\n

,\n

\n Imaš 5 točnih odgovora.\n
\n Ti sigurno redovito održavaš\n
\n mentalnu higijenu!\n

,\n];\n\nclass Screen extends Component {\n render() {\n let score = this.props.score;\n if (score > 5) score = 5;\n\n let finish = () => {\n window.track('finish');\n this.props.gotoNextScreen();\n };\n\n let tryAgain = () => {\n window.track('again');\n this.props.gotoFirstScreen();\n };\n\n return (\n \n \n );\n }\n}\n\nexport default Screen;\n","module.exports = __webpack_public_path__ + \"static/media/bubble.e36a4600.webm\";","import React from 'react';\n\nlet qs = [\n {\n question: () => (\n
\n Kad se javlja\n
\n usamljenost?\n
\n ),\n correct: 2,\n answers: [\n Samo kad smo sami,\n Kad nemamo prijatelje,\n Kad se ne osjećamo blisko s drugima,\n ],\n },\n\n {\n question: () =>
Koja je prednost samoće?
,\n correct: 0,\n answers: [\n Možemo razvijati svoju kreativnost,\n Možemo izbjeći sve loše emocije,\n Samoća nema prednosti,\n ],\n },\n\n {\n question: () =>
Što sve spada u sliku o sebi?
,\n correct: 2,\n answers: [\n Kako izgledamo i čime se bavimo,\n Samopoštovanje i samopouzdanje,\n Sve od navedenog,\n ],\n },\n\n {\n question: () =>
Kakve mogu biti emocije?
,\n correct: 1,\n answers: [\n Pozitivne i negativne,\n Ugodne i neugodne,\n Dobre i loše,\n ],\n },\n {\n question: () =>
Trebamo li se isticati ako smo u nečemu dobri?
,\n correct: 0,\n answers: [\n Da, tako jačamo samopouzdanje,\n Da, ali samo ako smo najbolji,\n Ne, trebamo biti skromni,\n ],\n },\n {\n question: () =>
Što je bullying?
,\n correct: 1,\n answers: [\n Bezazleno zadirkivanje,\n Nasilje nad vršnjacima,\n Iskustvo od kojeg netko “ojača”,\n ],\n },\n {\n question: () =>
Kako se bullying može riješiti?
,\n correct: 2,\n answers: [\n Ignoriranjem,\n Isprikom,\n Traženjem pomoći,\n ],\n },\n {\n question: () =>
Što je ispitna anksioznost?
,\n correct: 1,\n answers: [\n Svaka trema pred ispit,\n Strah prije, tijekom i nakon ispita,\n Uzbuđenje prije, tijekom i nakon ispita,\n ],\n },\n {\n question: () =>
Ljutnju trebamo:
,\n correct: 1,\n answers: [\n Izraziti, pa makar i ako povrijedimo nekoga,\n Izraziti, ali na siguran način,\n Ignorirati,\n ],\n },\n {\n question: () =>
Kako možemo smanjiti ispitnu anksioznost?
,\n correct: 2,\n answers: [\n Nikako, ona je neizbježna,\n Ignoriranjem,\n Planiranjem učenja i tehnikama opuštanja,\n ],\n },\n {\n question: () =>
Kad osjetimo nalet emocija trebamo ih…
,\n correct: 1,\n answers: [\n Odmah izraziti, bez zadrške,\n Prepoznati, a tek onda izraziti,\n Zadržati za sebe,\n ],\n },\n {\n question: () =>
Samorefleksija je:
,\n correct: 1,\n answers: [\n Vlastiti odraz u ogledalu,\n Razmišljanje o sebi,\n Drugi naziv za selfie,\n ],\n },\n {\n question: () =>
Kako možemo ojačati pozitivnu sliku o sebi?
,\n correct: 0,\n answers: [\n Podsjećanjem na svoje jake strane,\n Uspoređivanjem s drugima,\n Prepoznavanjem tuđih mana,\n ],\n },\n {\n question: () =>
Kako možemo produbiti prijateljstvo?
,\n correct: 1,\n answers: [\n Izbjegavanjem sukoba,\n Aktivnim slušanjem,\n Izbjegavanjem priča o problemima,\n ],\n },\n {\n question: () =>
Kad se upoznajemo s drugima…
,\n correct: 0,\n answers: [\n Pomaže pokazati prijateljski stav,\n Nije prirodno imati tremu,\n Trebamo jako stisnuti ruku,\n ],\n },\n\n {\n question: () => (\n
Usamljenost je loš osjećaj koji ne donosi ništa dobro.
\n ),\n correct: 1,\n answers: [Da, Ne],\n },\n\n {\n question: () =>
Emocije dijelimo na pozitivne i negativne.
,\n correct: 1,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
Emocije je potrebno izražavati, a ne potiskivati.
\n ),\n correct: 0,\n answers: [Da, Ne],\n },\n {\n question: () =>
Tuga je znak slabosti.
,\n correct: 1,\n answers: [Da, Ne],\n },\n {\n question: () =>
Svi su ljudi vrijedni poštovanja i ljubavi.
,\n correct: 0,\n answers: [Da, Ne],\n },\n {\n question: () =>
Hobiji su beskorisni ako nismo u njima najbolji.
,\n correct: 1,\n answers: [Da, Ne],\n },\n {\n question: () =>
Osobu čine postignuća i školski uspjeh.
,\n correct: 1,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
Je li potrebno reagirati na svaki oblik bullyinga?
\n ),\n correct: 0,\n answers: [Da, Ne],\n },\n {\n question: () =>
Emocije i raspoloženja su ista stvar.
,\n correct: 1,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
\n Neugodne emocije trebamo prepoznati, prihvatiti i izraziti na siguran\n način.\n
\n ),\n correct: 0,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
Tugu trebamo ignorirati ili izraziti samo kad smo sami.
\n ),\n correct: 1,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
Slika o sebi je nešto na čemu uvijek možemo raditi.
\n ),\n correct: 0,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
\n Samopoštovanje jačamo tako da vježbamo prihvatiti svoje osobine.\n
\n ),\n correct: 0,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
Pravi prijatelj ne dijeli svoje probleme s drugima.
\n ),\n correct: 1,\n answers: [Da, Ne],\n },\n {\n question: () => (\n
\n Prijatelji su osobe kraj kojih se osjećamo prihvaćeno, mirno i sretno.\n
\n ),\n correct: 0,\n answers: [Da, Ne],\n },\n];\n\nexport const questions = qs.map(q => {\n q.fontSize = q.fontSize || 80;\n q.answers = q.answers.map((a, i) => ({\n a,\n i,\n s: 1,\n fontSize: q.answerFontSize || 80,\n cls: q.answerCls || '',\n correct: q.correct === i,\n icon: q.icons ? q.icons[i] : null,\n }));\n return q;\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 // TODO this is not needed if everything is cached!\n this.sizes = await this.getSizes(allUrls);\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 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 console.log('HIT', 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, sizes.map(s => s.url));\n } catch (e) {\n console.error(e);\n }\n }\n\n get = url => {\n if (this.objectUrls.has(url)) {\n return this.objectUrls.get(url);\n } else {\n return url;\n }\n };\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/cta.ca91d28a.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/thanks.40a1957f.png\";","module.exports = __webpack_public_path__ + \"static/media/bubble-exit.ecf1a722.webm\";","import { setup, renderScreens, screen } from './dooh-react-utils';\nimport preloader from './preload';\nimport { questions } from './questions';\n\nsetup('https://interaktivno.go2digital.hr/').then(async data => {\n const state = {\n screen: 'intro',\n score: 0,\n questions,\n };\n\n renderScreens(\n [\n screen(require('./screens/Intro').default, 'intro', {}),\n screen(require('./screens/Age').default, 'age', {\n timeout: 12 * 1000,\n }),\n screen(require('./screens/Main').default, 'quiz', {\n timeout: 120 * 1000,\n }),\n screen(require('./screens/Result').default, 'result', {\n timeout: 10 * 1000,\n }),\n screen(require('./screens/Thanks').default, 'thanks', {\n timeout: 7 * 1000,\n }),\n ],\n state,\n s => s.screen,\n preloader\n );\n});\n\nconst isVideoPlaying = video =>\n !!(\n video.currentTime > 0 &&\n !video.paused &&\n !video.ended &&\n video.readyState > 2\n );\n\nsetInterval(() => {\n let vid = document.getElementById('vid');\n if (vid && !isVideoPlaying(vid)) {\n vid.play();\n }\n}, 1000);\n","import Preloader from './dooh-react-utils/preload/Preloader';\n\nexport let result = [\n require('./assets/result/aohne.mp4'),\n require('./assets/result/aokej.mp4'),\n require('./assets/result/acool.mp4'),\n require('./assets/result/abravo.mp4'),\n require('./assets/result/asuper.mp4'),\n require('./assets/result/atop.mp4'),\n];\n\nconst preloader = new Preloader(\n [\n ...result,\n require('./assets/bubble.webm'),\n require('./assets/bubble-exit.webm'),\n require('./assets/cta.png'),\n require('./assets/header.png'),\n require('./assets/start.png'),\n require('./assets/thanks.png'),\n ],\n [\n { name: 'Gagalin-Regular', url: require('./assets/Gagalin-Regular.woff') },\n { name: 'Garamond', url: require('./assets/Garamond.woff') },\n { name: 'RalewayBold', url: require('./assets/Raleway-Bold.woff') },\n ]\n);\n\nexport default preloader;\n"],"sourceRoot":""}