{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/react/discover/helper/blocksPropTypes.js","webpack:///./app/react/discover/components/BlockLabel.js","webpack:///./app/react/discover/components/MarkdownText.js","webpack:///./app/react/discover/components/Banner.js","webpack:///./app/react/discover/components/SmallBanner.js","webpack:///./app/react/discover/components/BlockHeader.js","webpack:///./app/react/discover/components/DoubleBanner.js","webpack:///./app/react/discover/components/Thumbnail.js","webpack:///./app/react/discover/components/Thumbnails.js","webpack:///./app/react/discover/components/Title.js","webpack:///./app/react/discover/components/ListOfTitles.js","webpack:///./app/react/discover/helper/blocksMapper.js","webpack:///./app/react/discover/components/Assembler.js","webpack:///./app/react/discover/App.js","webpack:///./app/react/jsPacks/discover.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","Promise","resolve","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","blocksPropTypes","blockData","PropTypes","shape","id","number","isRequired","position","active","bool","liveFrom","string","liveUntil","ctaLink","ctaText","blockType","title","description","blockContents","arrayOf","BlockLabel","materialTypeLabel","isBanner","fontSize","fontWeight","color","charAt","toUpperCase","defaultProps","propTypes","MarkdownText","content","rest","dangerouslySetInnerHTML","__html","renderMarkdown","BannerWrapper","styled","Box","attrs","props","display","flexDirection","alignItems","justifyContent","undefined","borderRadius","BannerCopyContent","alignSelf","pt","pl","maxWidth","textAlign","BannerImage","width","minHeight","backgroundPosition","backgroundSize","backgroundRepeat","Banner","background","fontColor","image","linkTitle","linkUrl","href","reset","bg","mb","mt","icon","backgroundImage","SmallBanner","multiRow","bgColor","height","getSizeByAspectRatio","alt","BlockHeader","as","MappedSmallBanners","map","DoubleBanner","gridTemplateColumns","gridColumnGap","gridRowGap","Thumbnail","src","size","ml","MappedThumbnails","Thumbnails","Title","mr","py","px","MappedTitles","itemData","ListOfTitles","flexWrap","blocksMapper","banner","double_banner","thumbnail","Assembler","todayDate","Date","getInitialState","userIsAdmin","blocks","useState","adminMode","setAdminMode","selectedDate","useQueryParam","StringParam","byPosition","sortedBlocks","Toggle","data-testid","label","onChange","DateTimePicker","style","overflow","textOverflow","date","formattedSelectedDate","getFormattedDate","location","replace","goToDatePreview","isValidDate","currentDate","isDate","sameDayAs","inThePast","isLive","between","wasLive","after","willBeLive","before","opacity","my","pr","App","WebFont","load","google","families","ElliiThemeProvider","document","addEventListener","ReactDOM","render","querySelector"],"mappings":"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","file":"discover.fadf77ddc81fa58c33ca.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"discover\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// The chunk loading function for additional chunks\n \t// Since all referenced chunks are already included\n \t// in this file, this function is empty here.\n \t__webpack_require__.e = function requireEnsure() {\n \t\treturn Promise.resolve();\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"//d3uk5h2fsqai9v.cloudfront.net/js-packs/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1529,\"vendor\",\"package-common\",\"ellii\",\"react\",\"moment\",\"discover~my_account~notifications_manager~teacher/assignment~teacher/classes~teacher/myclasses~teach~c62ff656\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import PropTypes from 'prop-types'\n\nconst blocksPropTypes = {\n blockData: PropTypes.shape({\n id: PropTypes.number.isRequired,\n position: PropTypes.number.isRequired,\n active: PropTypes.bool.isRequired,\n liveFrom: PropTypes.string.isRequired,\n liveUntil: PropTypes.string.isRequired,\n ctaLink: PropTypes.string,\n ctaText: PropTypes.string,\n blockType: PropTypes.string.isRequired,\n title: PropTypes.string,\n description: PropTypes.string,\n blockContents: PropTypes.arrayOf(PropTypes.object).isRequired,\n }).isRequired,\n}\n\nexport default blocksPropTypes\n","import PropTypes from 'prop-types'\nimport { Text } from '@redriverpress/system'\n\nexport default function BlockLabel({ materialTypeLabel, isBanner }) {\n return (\n \n {materialTypeLabel.charAt(0).toUpperCase() + materialTypeLabel.slice(1)}\n \n )\n}\n\nBlockLabel.defaultProps = {\n isBanner: false,\n}\n\nBlockLabel.propTypes = {\n isBanner: PropTypes.bool,\n materialTypeLabel: PropTypes.string.isRequired,\n}\n","import PropTypes from 'prop-types'\n\nimport { Box } from '@redriverpress/system'\nimport { renderMarkdown } from 'Common/utils/markdown'\n\nexport default function MarkdownText({ content, ...rest }) {\n return (\n \n )\n}\n\nMarkdownText.propTypes = {\n content: PropTypes.string.isRequired,\n}\n","import styled from 'styled-components'\nimport {\n Box,\n Icon,\n Heading,\n Link,\n TransparentButton,\n} from '@redriverpress/system'\n\nimport blocksPropTypes from '../helper/blocksPropTypes'\nimport BlockLabel from './BlockLabel'\nimport MarkdownText from './MarkdownText'\n\nconst BannerWrapper = styled(Box).attrs(props => ({\n color: props.color,\n display: 'flex',\n flexDirection: ['column', null, null, 'row'],\n alignItems: ['center', null, null, 'unset'],\n justifyContent: [undefined, null, null, 'space-between'],\n borderRadius: 'rounded',\n}))``\n\nconst BannerCopyContent = styled(Box).attrs({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignSelf: ['flex-start', null, 'center'],\n p: [4, null, undefined],\n pt: [undefined, null, 4, undefined],\n pl: [undefined, null, null, 4],\n maxWidth: [undefined, null, '85%', '40%'],\n textAlign: [undefined, null, 'center', 'left'],\n})``\n\nconst BannerImage = styled(Box).attrs({\n width: '100%',\n maxWidth: [undefined, null, '25rem', '60%'],\n minHeight: ['13rem', null, '18rem'],\n borderRadius: 'rounded',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n})``\n\nexport default function Banner({ blockData }) {\n const [\n {\n background,\n description,\n fontColor,\n image,\n linkTitle,\n linkUrl,\n materialTypeLabel,\n title,\n },\n ] = blockData.blockContents\n\n return linkUrl ? (\n \n \n \n {materialTypeLabel && (\n \n \n \n )}\n \n {title}\n \n \n {linkTitle && (\n \n {linkTitle}\n \n \n )}\n \n \n \n \n ) : (\n \n \n {materialTypeLabel && (\n \n \n \n )}\n \n {title}\n \n \n {linkTitle && (\n \n {linkTitle}\n \n \n )}\n \n \n \n )\n}\n\nBanner.propTypes = blocksPropTypes\n","import PropTypes from 'prop-types'\n\nimport { Box, Link, Text, getSizeByAspectRatio } from '@redriverpress/system'\n\nimport BlockLabel from './BlockLabel'\nimport MarkdownText from './MarkdownText'\n\nexport default function SmallBanner({ data, multiRow }) {\n const {\n background: bgColor,\n description,\n image,\n linkUrl,\n materialTypeLabel,\n title,\n } = data\n\n return (\n \n \n \n {materialTypeLabel && (\n \n \n \n )}\n \n {title}\n \n \n \n \n )\n}\n\nSmallBanner.propTypes = {\n data: PropTypes.shape({\n background: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired,\n linkUrl: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n }).isRequired,\n multiRow: PropTypes.bool.isRequired,\n}\n","import PropTypes from 'prop-types'\n\nimport {\n Box,\n Icon,\n Heading,\n Text,\n TransparentButton,\n} from '@redriverpress/system'\n\nimport MarkdownText from './MarkdownText'\n\nexport default function BlockHeader({ data }) {\n const { title, description, ctaLink, ctaText } = data\n\n return (\n \n {(title || description) && (\n \n {title && (\n \n {title}\n \n )}\n {description && }\n \n )}\n\n {ctaLink && (\n \n \n {ctaText}\n \n \n \n )}\n \n )\n}\n\nBlockHeader.defaultProps = {\n data: PropTypes.shape({\n title: null,\n description: null,\n ctaLink: null,\n ctaText: null,\n }),\n}\n\nBlockHeader.propTypes = {\n data: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n ctaLink: PropTypes.string,\n ctaText: PropTypes.string,\n }),\n}\n","import { Box } from '@redriverpress/system'\nimport SmallBanner from './SmallBanner'\nimport BlockHeader from './BlockHeader'\n\nimport blocksPropTypes from '../helper/blocksPropTypes'\n\nfunction MappedSmallBanners({ blockData }) {\n return blockData.blockContents.map(data => {\n return (\n 2}\n />\n )\n })\n}\nexport default function DoubleBanner({ blockData }) {\n return (\n <>\n \n \n \n \n \n )\n}\n\nDoubleBanner.propTypes = blocksPropTypes\n","import PropTypes from 'prop-types'\n\nimport { Box, CoverImage, Link, Text } from '@redriverpress/system'\nimport BlockLabel from './BlockLabel'\n\nexport default function Thumbnail({ data }) {\n const { title, linkUrl, image, materialTypeLabel } = data\n\n return (\n \n \n \n \n {materialTypeLabel && (\n \n \n \n )}\n {title}\n \n \n \n )\n}\n\nThumbnail.propTypes = {\n data: PropTypes.shape({\n title: PropTypes.string.isRequired,\n description: PropTypes.string,\n linkUrl: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired,\n }).isRequired,\n}\n","import { Box } from '@redriverpress/system'\nimport Thumbnail from './Thumbnail'\nimport BlockHeader from './BlockHeader'\n\nimport blocksPropTypes from '../helper/blocksPropTypes'\n\nfunction MappedThumbnails({ blockData }) {\n return blockData.blockContents.map(data => {\n return \n })\n}\nexport default function Thumbnails({ blockData }) {\n return (\n <>\n \n \n \n \n \n )\n}\n\nThumbnails.propTypes = blocksPropTypes\n","import PropTypes from 'prop-types'\n\nimport { Box, Link } from '@redriverpress/system'\n\nexport default function Title({ data }) {\n const { title, linkUrl } = data\n\n return (\n \n \n \n {title}\n \n \n \n )\n}\n\nTitle.propTypes = {\n data: PropTypes.shape({\n title: PropTypes.string.isRequired,\n linkUrl: PropTypes.string.isRequired,\n }).isRequired,\n}\n","import { Box } from '@redriverpress/system'\nimport Title from './Title'\nimport BlockHeader from './BlockHeader'\n\nimport blocksPropTypes from '../helper/blocksPropTypes'\n\nfunction MappedTitles({ blockData }) {\n return blockData.blockContents.map(itemData => {\n return \n })\n}\nexport default function ListOfTitles({ blockData }) {\n return (\n <>\n <BlockHeader data={blockData} />\n <Box display='flex' flexWrap='wrap' justifyContent='flex-start'>\n <MappedTitles blockData={blockData} />\n </Box>\n </>\n )\n}\n\nListOfTitles.propTypes = blocksPropTypes\n","import Banner from '../components/Banner'\nimport DoubleBanner from '../components/DoubleBanner'\nimport Thumbnails from '../components/Thumbnails'\nimport ListOfTitles from '../components/ListOfTitles'\n\nconst blocksMapper = {\n banner: blockData => <Banner blockData={blockData} />,\n double_banner: blockData => <DoubleBanner blockData={blockData} />,\n thumbnail: blockData => <Thumbnails blockData={blockData} />,\n title: blockData => <ListOfTitles blockData={blockData} />,\n}\n\nexport default blocksMapper\n","import R from 'ramda'\nimport { useState } from 'react'\nimport { useQueryParam, StringParam } from 'use-query-params'\n\nimport { Box, Icon, Text } from '@redriverpress/system'\n\nimport DateTimePicker from 'Common/components/DateTimePicker'\nimport Toggle from 'Common/components/Toggle'\nimport { getFormattedDate, isDate } from 'Common/utils/datetime'\nimport getInitialState from 'Common/utils/getInitialState'\n\nimport blocksMapper from '../helper/blocksMapper'\n\nexport default function Assembler() {\n const todayDate = new Date()\n const { userIsAdmin, blocks } = getInitialState()\n const [adminMode, setAdminMode] = useState(userIsAdmin)\n const [selectedDate] = useQueryParam('selected_date', StringParam)\n\n const goToDatePreview = date => {\n const formattedSelectedDate = getFormattedDate(date, 'YYYY-MM-DD')\n window.location.replace(`/discover?selected_date=${formattedSelectedDate}`)\n }\n\n const byPosition = R.ascend(R.prop('position'))\n const sortedBlocks = R.sort(byPosition, blocks)\n\n const assembleBlocks = () => {\n return sortedBlocks.map(blockData => {\n const isLive = isDate(todayDate).between(\n blockData.liveFrom,\n blockData.liveUntil,\n true\n )\n const wasLive = isDate(todayDate).after(blockData.liveUntil)\n const willBeLive = isDate(todayDate).before(blockData.liveFrom)\n\n if (blockData.active && isLive) {\n return (\n <Box\n data-testid={`active-block-${blockData.blockType}-${blockData.position}`}\n as='section'\n width='100%'\n key={blockData.id}\n mb={5}\n >\n {blocksMapper[blockData.blockType](blockData)}\n </Box>\n )\n }\n\n if (userIsAdmin && adminMode) {\n if (!blockData.active || !isLive) {\n return (\n <Box opacity='0.5' key={blockData.id}>\n <Box\n bg='gray150'\n display='flex'\n justifyContent='space-between'\n borderRadius='rounded'\n my={2}\n p={2}\n >\n <Text as='span' fontSize={0}>\n <Icon icon='eye-slash' pr='2' />\n Visible to admins only\n </Text>\n {wasLive && (\n <Text as='span' fontSize={0}>\n <Icon icon='calendar-times' pr='2' />\n It was live until {blockData.liveUntil}\n </Text>\n )}\n {willBeLive && (\n <Text as='span' fontSize={0}>\n <Icon icon='calendar-plus' pr='2' />\n It will be live from {blockData.liveFrom} until{' '}\n {blockData.liveUntil}\n </Text>\n )}\n </Box>\n <Box as='section' width='100%' mb={5}>\n {blocksMapper[blockData.blockType](blockData)}\n </Box>\n </Box>\n )\n }\n }\n return null\n })\n }\n\n return (\n <>\n {userIsAdmin && (\n <Box\n px={2}\n py={3}\n mb={3}\n bg='gray150'\n borderRadius='rounded'\n display='flex'\n justifyContent='space-between'\n >\n <Toggle\n data-testid='admin-toggle'\n label='Admin view'\n active={adminMode}\n onChange={() => setAdminMode(!adminMode)}\n />\n <Box mb={0}>\n <DateTimePicker\n icon='calendar-day'\n label='Preview on Date'\n style={{ overflow: 'hidden', textOverflow: 'ellipsis' }}\n value={\n selectedDate ? new Date(`${selectedDate}T00:00`) : new Date()\n }\n onChange={date => goToDatePreview(date)}\n isValidDate={currentDate =>\n isDate(currentDate).sameDayAs(new Date()) ||\n !isDate(currentDate).inThePast()\n }\n />\n </Box>\n </Box>\n )}\n {assembleBlocks()}\n </>\n )\n}\n","import WebFont from 'webfontloader'\nimport { Box, Container } from '@redriverpress/system'\n\nimport ElliiThemeProvider from 'Common/components/ElliiThemeProvider'\nimport Assembler from './components/Assembler'\n\nexport default function App() {\n WebFont.load({\n google: {\n families: ['Open Sans:400,400italic,600,700,800'],\n },\n })\n\n return (\n <ElliiThemeProvider>\n <Box bg='gray50' py={[3, null, 4]}>\n <Container>\n <Assembler />\n </Container>\n </Box>\n </ElliiThemeProvider>\n )\n}\n","import ReactDOM from 'react-dom'\n\nimport App from '../discover/App'\n\ndocument.addEventListener('DOMContentLoaded', () => {\n ReactDOM.render(<App />, document.querySelector('#root'))\n})\n"],"sourceRoot":""}