{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/react/folders/SiteFolderModalApp.js","webpack:///./app/react/jsPacks/siteFolderModal.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","ResetApplicationStyles","styled","div","props","theme","fontSizes","lineHeights","body","App","useState","item","setItem","folderButton","useRef","useEffect","document","querySelectorAll","forEach","button","addEventListener","current","fileable","id","Number","dataset","fileableId","type","fileableType","handleFolderButtonClick","ElliiThemeProvider","backgroundComponent","ModalBackground","isOpen","onClose","reload","location","onMoveItem","isFolderEmpty","classList","add","remove","ReactDOM","render","querySelector"],"mappings":"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","file":"siteFolderModal.4a93e3ad0ced1c256a1a.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\"siteFolderModal\": 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([1575,\"vendor\",\"package-common\",\"ellii\",\"react\",\"package-flashcards\",\"package-folders\",\"course~flashcardSets~folders~media~siteFolderModal~video\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/**\n * This app runs on older parts of the site, on pages where\n * items can be added to folders. It's responsible for rendering\n * the MoveItemsModal when DOM elements with the .js-folderButton\n * class are clicked. Yes, it's not best practice. No, we\n * don't have a better alternative right now. (;^_^)\n */\nimport { useEffect, useState, useRef } from 'react'\nimport { ModalProvider } from 'styled-react-modal'\nimport styled from 'styled-components'\n\nimport ElliiThemeProvider from 'Common/components/ElliiThemeProvider'\nimport { ModalBackground } from 'Common/components/modal'\nimport { ModalFoldersProvider, MoveItemModal } from 'Packages/folders'\n\n// Descendent overrides when used on application.html.slim layouts\nconst ResetApplicationStyles = styled.div`\n font-size: ${props => props.theme.fontSizes[1]};\n line-height: ${props => props.theme.lineHeights.body};\n\n p {\n margin-bottom: 0;\n }\n`\n\nexport default function App() {\n const [item, setItem] = useState(null)\n const folderButton = useRef(null)\n\n const handleCopyFolder = isFolderEmpty => {\n if (isFolderEmpty) {\n folderButton.current.classList.add('fal')\n folderButton.current.classList.remove('fas')\n } else {\n folderButton.current.classList.add('fas')\n folderButton.current.classList.remove('fal')\n }\n\n setItem(null)\n folderButton.current = null\n }\n\n // For every selector with the class .js-folderButton,\n // attach a click event listener which will set the app's\n // `item` state to be an object containing the fileable ID\n // and fileable type derived from that button's data attributes.\n // When the item is non-null, the modal will be rendered;\n // when the modal closes, it will set the `item` state back to null.\n useEffect(() => {\n const handleFolderButtonClick = button => {\n folderButton.current = button\n return setItem({\n fileable: {\n id: Number(button.dataset.fileableId),\n type: button.dataset.fileableType,\n },\n })\n }\n\n document\n .querySelectorAll('.js-folderButton')\n .forEach(button =>\n button.addEventListener('click', () => handleFolderButtonClick(button))\n )\n }, [])\n\n return (\n \n \n \n \n {item && (\n {\n setItem(null)\n reload && window.location.reload()\n }}\n onMoveItem={handleCopyFolder}\n item={item}\n />\n )}\n \n \n \n \n )\n}\n","import ReactDOM from 'react-dom'\n\nimport SiteFolderModalApp from '../folders/SiteFolderModalApp'\n\ndocument.addEventListener('DOMContentLoaded', () => {\n ReactDOM.render(\n ,\n document.querySelector('#folderModalRoot')\n )\n})\n"],"sourceRoot":""}