{"version":3,"file":"js/application-7de2b8e2ffbdd43091b1.js","mappings":"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","sources":["webpack://hackergal_hub/./app/javascript/components/ sync ^\\.\\/.*$","webpack://hackergal_hub/./app/javascript/packs/admin-reporting-export.js","webpack://hackergal_hub/./app/javascript/packs/application.js","webpack://hackergal_hub/./app/javascript/packs/form_submit_spinner.js","webpack://hackergal_hub/./app/javascript/packs/form_warn_changes_on_reload.js","webpack://hackergal_hub/./app/javascript/packs/i18n.js","webpack://hackergal_hub/./app/javascript/packs/language_switcher.js","webpack://hackergal_hub/./app/javascript/packs/onload_tab_handler.js","webpack://hackergal_hub/./app/javascript/packs/shared-form-functionality.js","webpack://hackergal_hub/./app/javascript/api/axios.js","webpack://hackergal_hub/./app/javascript/api/index.js","webpack://hackergal_hub/./app/javascript/api/course.js","webpack://hackergal_hub/./app/javascript/api/lesson.js","webpack://hackergal_hub/./app/javascript/api/resource.js","webpack://hackergal_hub/./app/javascript/components/BreadCrumb/index.tsx","webpack://hackergal_hub/./app/javascript/components/Header/index.tsx","webpack://hackergal_hub/./app/javascript/components/ProfilePicker.tsx","webpack://hackergal_hub/./app/javascript/components/Question/index.tsx","webpack://hackergal_hub/./app/javascript/components/Section/index.tsx","webpack://hackergal_hub/./app/javascript/components/TagPill.tsx","webpack://hackergal_hub/./app/javascript/components/course/components/list_item/index.tsx","webpack://hackergal_hub/./app/javascript/components/course/containers/create/index.tsx","webpack://hackergal_hub/./app/javascript/components/course/containers/index/index.tsx","webpack://hackergal_hub/./app/javascript/components/forms/AnnouncementForm.tsx","webpack://hackergal_hub/./app/javascript/components/forms/MediaFileUploader.tsx","webpack://hackergal_hub/./app/javascript/components/forms/SingleFileUpload.tsx","webpack://hackergal_hub/./app/javascript/components/inputs/NoteInput.tsx","webpack://hackergal_hub/./app/javascript/components/inputs/OrganizationTypeAhead.tsx","webpack://hackergal_hub/./app/javascript/components/inputs/SelectInput.tsx","webpack://hackergal_hub/./app/javascript/components/inputs/TagInput.tsx","webpack://hackergal_hub/./app/javascript/components/inputs/TextInput.tsx","webpack://hackergal_hub/./app/javascript/components/inputs/TypeAhead.tsx","webpack://hackergal_hub/./app/javascript/components/inputs/Wysiwyg.tsx","webpack://hackergal_hub/./app/javascript/components/lesson/containers/create/index.tsx","webpack://hackergal_hub/./app/javascript/components/lesson/containers/index/index.tsx","webpack://hackergal_hub/./app/javascript/components/lesson/containers/show/index.tsx","webpack://hackergal_hub/./app/javascript/components/resource/components/card_item/index.tsx","webpack://hackergal_hub/./app/javascript/components/resource/components/list_item/index.tsx","webpack://hackergal_hub/./app/javascript/components/resource/containers/create/index.tsx","webpack://hackergal_hub/./app/javascript/components/resource/containers/index/index.tsx","webpack://hackergal_hub/./app/javascript/components/resource/containers/show/index.tsx","webpack://hackergal_hub/./app/javascript/components/resource_category/components/card_item/index.tsx","webpack://hackergal_hub/./app/javascript/components/resource_category/containers/index/index.tsx","webpack://hackergal_hub/./app/javascript/components/resources-old/CategoryTile.tsx","webpack://hackergal_hub/./app/javascript/components/resources-old/Grid.tsx","webpack://hackergal_hub/./app/javascript/components/resources-old/ResourceTile.tsx","webpack://hackergal_hub/./app/javascript/components/sliders/FeaturedAnnouncementSlider.tsx","webpack://hackergal_hub/./app/javascript/components/tables/AnnouncementsTable.tsx","webpack://hackergal_hub/./app/javascript/components/tables/FacilitatorsTable.tsx","webpack://hackergal_hub/./app/javascript/components/tables/LearnersTable.tsx","webpack://hackergal_hub/./app/javascript/components/tables/MediaFilesTable.tsx","webpack://hackergal_hub/./app/javascript/components/tables/MessagesTable.tsx","webpack://hackergal_hub/./app/javascript/components/tables/NotesTable.tsx","webpack://hackergal_hub/./app/javascript/components/tables/OrganizationsTable.tsx","webpack://hackergal_hub/./app/javascript/components/tables/UberTable.tsx"],"sourcesContent":["var map = {\n\t\"./BreadCrumb\": 7999,\n\t\"./BreadCrumb/\": 7999,\n\t\"./BreadCrumb/index\": 7999,\n\t\"./BreadCrumb/index.scss\": 3925,\n\t\"./BreadCrumb/index.tsx\": 7999,\n\t\"./Header\": 6819,\n\t\"./Header/\": 6819,\n\t\"./Header/index\": 6819,\n\t\"./Header/index.tsx\": 6819,\n\t\"./ProfilePicker\": 3372,\n\t\"./ProfilePicker.tsx\": 3372,\n\t\"./Question\": 4700,\n\t\"./Question/\": 4700,\n\t\"./Question/index\": 4700,\n\t\"./Question/index.scss\": 4032,\n\t\"./Question/index.tsx\": 4700,\n\t\"./Section\": 6609,\n\t\"./Section/\": 6609,\n\t\"./Section/index\": 6609,\n\t\"./Section/index.scss\": 9269,\n\t\"./Section/index.tsx\": 6609,\n\t\"./TagPill\": 156,\n\t\"./TagPill.tsx\": 156,\n\t\"./course/components/list_item\": 6985,\n\t\"./course/components/list_item/\": 6985,\n\t\"./course/components/list_item/index\": 6985,\n\t\"./course/components/list_item/index.tsx\": 6985,\n\t\"./course/containers/create\": 6437,\n\t\"./course/containers/create/\": 6437,\n\t\"./course/containers/create/index\": 6437,\n\t\"./course/containers/create/index.tsx\": 6437,\n\t\"./course/containers/index\": 2655,\n\t\"./course/containers/index/\": 2655,\n\t\"./course/containers/index/index\": 2655,\n\t\"./course/containers/index/index.tsx\": 2655,\n\t\"./forms/AnnouncementForm\": 1122,\n\t\"./forms/AnnouncementForm.tsx\": 1122,\n\t\"./forms/MediaFileUploader\": 3321,\n\t\"./forms/MediaFileUploader.tsx\": 3321,\n\t\"./forms/SingleFileUpload\": 7776,\n\t\"./forms/SingleFileUpload.tsx\": 7776,\n\t\"./inputs/NoteInput\": 859,\n\t\"./inputs/NoteInput.tsx\": 859,\n\t\"./inputs/OrganizationTypeAhead\": 8191,\n\t\"./inputs/OrganizationTypeAhead.tsx\": 8191,\n\t\"./inputs/SelectInput\": 3679,\n\t\"./inputs/SelectInput.tsx\": 3679,\n\t\"./inputs/TagInput\": 4503,\n\t\"./inputs/TagInput.tsx\": 4503,\n\t\"./inputs/TextInput\": 1372,\n\t\"./inputs/TextInput.tsx\": 1372,\n\t\"./inputs/TypeAhead\": 5360,\n\t\"./inputs/TypeAhead.tsx\": 5360,\n\t\"./inputs/Wysiwyg\": 3180,\n\t\"./inputs/Wysiwyg.tsx\": 3180,\n\t\"./lesson/containers/create\": 2466,\n\t\"./lesson/containers/create/\": 2466,\n\t\"./lesson/containers/create/index\": 2466,\n\t\"./lesson/containers/create/index.tsx\": 2466,\n\t\"./lesson/containers/index\": 1722,\n\t\"./lesson/containers/index/\": 1722,\n\t\"./lesson/containers/index/index\": 1722,\n\t\"./lesson/containers/index/index.tsx\": 1722,\n\t\"./lesson/containers/show\": 2421,\n\t\"./lesson/containers/show/\": 2421,\n\t\"./lesson/containers/show/index\": 2421,\n\t\"./lesson/containers/show/index.tsx\": 2421,\n\t\"./resource/components/card_item\": 6758,\n\t\"./resource/components/card_item/\": 6758,\n\t\"./resource/components/card_item/index\": 6758,\n\t\"./resource/components/card_item/index.tsx\": 6758,\n\t\"./resource/components/list_item\": 6172,\n\t\"./resource/components/list_item/\": 6172,\n\t\"./resource/components/list_item/index\": 6172,\n\t\"./resource/components/list_item/index.tsx\": 6172,\n\t\"./resource/containers/create\": 6945,\n\t\"./resource/containers/create/\": 6945,\n\t\"./resource/containers/create/index\": 6945,\n\t\"./resource/containers/create/index.tsx\": 6945,\n\t\"./resource/containers/index\": 6894,\n\t\"./resource/containers/index/\": 6894,\n\t\"./resource/containers/index/index\": 6894,\n\t\"./resource/containers/index/index.tsx\": 6894,\n\t\"./resource/containers/show\": 8201,\n\t\"./resource/containers/show/\": 8201,\n\t\"./resource/containers/show/index\": 8201,\n\t\"./resource/containers/show/index.tsx\": 8201,\n\t\"./resource_category/components/card_item\": 4791,\n\t\"./resource_category/components/card_item/\": 4791,\n\t\"./resource_category/components/card_item/index\": 4791,\n\t\"./resource_category/components/card_item/index.tsx\": 4791,\n\t\"./resource_category/containers/index\": 7987,\n\t\"./resource_category/containers/index/\": 7987,\n\t\"./resource_category/containers/index/index\": 7987,\n\t\"./resource_category/containers/index/index.tsx\": 7987,\n\t\"./resources-old/CategoryTile\": 4847,\n\t\"./resources-old/CategoryTile.tsx\": 4847,\n\t\"./resources-old/Grid\": 7707,\n\t\"./resources-old/Grid.tsx\": 7707,\n\t\"./resources-old/ResourceTile\": 1787,\n\t\"./resources-old/ResourceTile.tsx\": 1787,\n\t\"./sliders/FeaturedAnnouncementSlider\": 7216,\n\t\"./sliders/FeaturedAnnouncementSlider.tsx\": 7216,\n\t\"./tables/AnnouncementsTable\": 7595,\n\t\"./tables/AnnouncementsTable.tsx\": 7595,\n\t\"./tables/FacilitatorsTable\": 5100,\n\t\"./tables/FacilitatorsTable.tsx\": 5100,\n\t\"./tables/LearnersTable\": 5041,\n\t\"./tables/LearnersTable.tsx\": 5041,\n\t\"./tables/MediaFilesTable\": 9356,\n\t\"./tables/MediaFilesTable.tsx\": 9356,\n\t\"./tables/MessagesTable\": 8635,\n\t\"./tables/MessagesTable.tsx\": 8635,\n\t\"./tables/NotesTable\": 2274,\n\t\"./tables/NotesTable.tsx\": 2274,\n\t\"./tables/OrganizationsTable\": 355,\n\t\"./tables/OrganizationsTable.tsx\": 355,\n\t\"./tables/UberTable\": 4027,\n\t\"./tables/UberTable.tsx\": 4027\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6900;","document.addEventListener(\"DOMContentLoaded\", function () {\n setTimeout(function () {\n if (jQuery().dataTable) {\n let config = {\n dom: 'Blfrtip',\n scrollX: true,\n autoWidth: false,\n buttons: [\n { extend: 'excel', text: I18n.t('views.forms.messaging.export'), className: 'btn-primary' }\n ],\n rowCallback: function(row, data, index) {\n data.forEach(function(d, i) {\n if (d === 'Y') {\n $('td:eq('+i+')', row).addClass('yes')\n } else if (d === 'N') {\n $('td:eq('+i+')', row).addClass('no')\n }\n })\n }\n }\n\n if ($('#organization-report-table').length > 0) {\n config.fixedColumns = {\n leftColumns: 3\n }\n }\n\n $('table.data-table').DataTable(config)\n\n let exportButton = $('.dataTables_wrapper .dt-buttons')\n $('.dataTables_wrapper').append(exportButton)\n }\n })\n})","window.RAILS_ENV = process.env.RAILS_ENV;\n\n// Expose webpack jQuery globally on the page...\nwindow.$ = $;\nwindow.jQuery = $;\nimport axios from '../api/axios';\nwindow.axios = axios;\n\nimport '@hotwired/turbo-rails';\n\n// turbo drive breaks react navigation\n// can re-enable for links and such by explicitly setting data-turbo=\"true\" on those elements\nTurbo.session.drive = false;\n\nimport 'bootstrap';\nimport '../stylesheets/application';\nrequire('flatpickr/dist/flatpickr');\nrequire('flatpickr/dist/flatpickr.min.css');\nrequire('froala-editor/css/froala_style.min.css');\nrequire('froala-editor/css/froala_editor.pkgd.min.css');\n\nimport './i18n';\n\n// Auto-show Bootstrap Tabs based on the anchor in the page.\nimport './onload_tab_handler';\n\n// Add a spinner to the submit buttons on forms.\nimport './form_submit_spinner';\n\n// Shared form functionality for things like \"other\" hide/show options\nimport './shared-form-functionality';\n\n// Adds a watcher to warn user of form changes on reload.\nimport './form_warn_changes_on_reload'\n\n// Adds a watcher to warn user of form changes on reload.\nimport './language_switcher'\n\n// Imports the reporting export javascript code\nimport './admin-reporting-export'\n\n// Support component names relative to this directory:\nconst ReactRailsUJS = require(\"react_ujs\");\nconst componentRequireContext = require.context(\"../components\", true);\n\nReactRailsUJS.useContext(componentRequireContext)\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n $('#return-button').click(function(e) {\n history.back()\n })\n});\n","document.addEventListener(\"DOMContentLoaded\", function () {\n if (document.querySelector('form')) {\n document.querySelector('form').addEventListener('submit', function (e) {\n var form = e.target\n\n var button = form.querySelector('button[type=submit]')\n\n if (button) {\n button.setAttribute('disabled', true)\n\n var spinner = document.createElement('i')\n spinner.classList.add('far', 'fa-spinner-third', 'fa-spin', 'btn-loader')\n\n button.appendChild(spinner)\n }\n })\n }\n})\n","// This script will identify if any inputs or summernote WYSIWYG editors have been modified by the user\n// and unless they click the submit button on the form, they will be warned they might lose data if they continue.\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n if ($('.watch_form_changes').length > 0) {\n var formChangeFlag = false;\n $('.watch_form_changes').on('change keydown keyup', ':input', function(e){\n formChangeFlag = true;\n });\n\n $('input[type=submit], button[type=submit]').click(function(e){\n formChangeFlag = false;\n });\n\n $( window ).on('beforeunload', function() {\n if(formChangeFlag === true){\n return 'Changes you made may not be saved.';\n }\n });\n }\n})\n","import { I18n } from \"i18n-js\";\nimport translations from \"./translations.json\";\n\nconst i18n = new I18n(translations);\nI18n.locale = document.querySelector('meta[name=\"locale\"]').content\n\nwindow.I18n = i18n","document.addEventListener(\"DOMContentLoaded\", function () {\n const currentLang = window.locale\n\n $('#language-picker a').on('click', function (e) {\n axios.post(`/language`, {lang: $(e.target).data('lang')}).then((response) => {\n location.reload();\n })\n })\n})","import Tab from 'bootstrap/js/dist/tab';\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n const anchor = window.location.hash\n\n // Display requested tab from the URL\n if (anchor.startsWith('#tab-')) {\n const tabName = anchor.split('#tab-')[1]\n if ($(`#${tabName}-tab`).length > 0) {\n let tab = new Tab($(`#${tabName}-tab`)[0])\n tab.show()\n }\n }\n\n $('#hackergal-tabs li a').on('click', function (e) {\n const tabName = e.target.id.split('-')[0]\n window.location.hash = `tab-${tabName}`\n })\n})\n","let otherValueInputs = document.querySelectorAll('input[value=\"other\"], option[value=\"other\"]');\nlet hubReferralSocialMediaOption = document.querySelector('input[id*=\"hub_referral_social_media\"]');\n\nif (otherValueInputs) {\n otherValueInputs.forEach((input) => {\n let inputType = input.tagName;\n if (inputType == 'INPUT') {\n input.addEventListener('change', (event) => {\n inputType = event.target.getAttribute('type');\n let otherInputContainer = event.target.parentElement.parentElement.querySelector('.other-option');\n\n if (inputType == 'radio') {\n let siblingInputs = event.target.parentElement.parentElement.querySelectorAll('input[type=\"radio\"]');\n\n if (siblingInputs) {\n siblingInputs.forEach((siblingInput) => {\n if (siblingInput != event.target) {\n siblingInput.addEventListener('change', (event) => {\n if (otherInputContainer) {\n otherInputContainer.style.display = 'none';\n }\n });\n }\n });\n }\n }\n\n if (otherInputContainer) {\n otherInputContainer.style.display = event.target.checked ? 'block' : 'none';\n let otherInput = otherInputContainer.querySelector('input');\n\n if (otherInput && event.target.checked) {\n otherInput.focus();\n if (otherInput.disabled) {\n otherInput.removeAttribute('disabled')\n }\n }\n }\n });\n } else if (inputType == 'OPTION') {\n input.parentElement.addEventListener('change', (event) => {\n let otherInputContainer = event.target.parentElement.parentElement.querySelector('.other-option');\n\n if (otherInputContainer) {\n otherInputContainer.style.display = event.target.value == 'other' ? 'block' : 'none';\n let otherInput = otherInputContainer.querySelector('input');\n\n if (otherInput && event.target.value == 'other') {\n otherInput.focus();\n if (otherInput.disabled) {\n otherInput.removeAttribute('disabled')\n }\n }\n }\n });\n }\n });\n}\n\nif (hubReferralSocialMediaOption) {\n hubReferralSocialMediaOption.addEventListener('change', (event) => {\n let socialMediaTextContainer = event.target.parentElement.parentElement.querySelector('.social-media-option');\n let siblingInputs = event.target.parentElement.parentElement.querySelectorAll('input[type=\"radio\"]');\n\n if (siblingInputs) {\n siblingInputs.forEach((siblingInput) => {\n if (siblingInput != event.target) {\n siblingInput.addEventListener('change', (event) => {\n if (socialMediaTextContainer) {\n socialMediaTextContainer.style.display = 'none';\n }\n });\n }\n });\n }\n\n if (socialMediaTextContainer) {\n socialMediaTextContainer.style.display = event.target.checked ? 'block' : 'none';\n let socialMediaInput = socialMediaTextContainer.querySelector('input');\n\n if (socialMediaInput && event.target.checked) {\n socialMediaInput.focus();\n if (socialMediaInput.disabled) {\n socialMediaInput.removeAttribute('disabled')\n }\n }\n }\n });\n}\n","import axios from 'axios';\n\nconst csrfEl = document.querySelector(\"meta[name='csrf-token']\");\n\n// This check is being done because Rails does not output the\n// CSRF token in test mode. This was causing the JS to error\n// out when running system tests.\nlet csrf;\nif (csrfEl) {\n csrf = csrfEl.getAttribute(\"content\");\n}\n\nconst axiosInstance = axios.create({\n timeout: 5000,\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n 'X-CSRF-Token': csrf,\n },\n});\n\nexport default axiosInstance;\n","import {\n createCourse,\n updateCourse,\n deleteCourse,\n} from './course';\n\nimport {\n createLesson,\n updateLesson,\n deleteLesson,\n submitLesson,\n updateSubmitLesson,\n} from './lesson';\n\nimport {\n createResource,\n updateResource,\n deleteResource,\n deleteResourceCategory,\n} from './resource';\n\nexport default {\n createCourse,\n updateCourse,\n deleteCourse,\n createLesson,\n updateLesson,\n deleteLesson,\n submitLesson,\n updateSubmitLesson,\n createResource,\n updateResource,\n deleteResource,\n deleteResourceCategory\n};\n","import axios from './axios';\n\nexport const createCourse = (body) =>\n axios.post('/admin/courses', body)\n .then(({ data }) => data);\n\nexport const updateCourse = (id, body) =>\n axios.put(`/admin/courses/${id}`,body)\n .then(({ data }) => data);\n\nexport const deleteCourse = (id) =>\n axios.delete(`/admin/courses/${id}`)\n .then(({ data }) => data);\n","import axios from './axios';\n\nexport const createLesson = (id, body) =>\n axios.post(`/admin/courses/${id}/lessons`, { ...body })\n .then(({ data }) => data);\n\nexport const updateLesson = (courseId, lessonId, body) =>\n axios.put(`/admin/courses/${courseId}/lessons/${lessonId}`, { ...body })\n .then(({ data }) => data);\n\nexport const deleteLesson = (courseId, lessonId) =>\n axios.delete(`/admin/courses/${courseId}/lessons/${lessonId}`)\n .then(({ data }) => data);\n\nexport const submitLesson = (courseId, lessonId, body) =>\n axios.post(`/courses/${courseId}/lessons/${lessonId}/submit`, { ...body })\n .then(({ data }) => data);\n\nexport const updateSubmitLesson = (courseId, lessonId, body) =>\n axios.put(`/courses/${courseId}/lessons/${lessonId}/update_submit`, { ...body })\n .then(({ data }) => data);\n","import axios from './axios';\n\nexport const createResource = (resource_category_id, body) =>\n axios.post(`/admin/explore_categories/${resource_category_id}/resources`, body)\n .then(({ data }) => data);\n\nexport const updateResource = (resource_category_id, id, body) =>\n axios.put(`/admin/explore_categories/${resource_category_id}/resources/${id}`,body)\n .then(({ data }) => data);\n\nexport const deleteResource = (resource_category_id, id) =>\n axios.delete(`/admin/explore_categories/${resource_category_id}/resources/${id}`)\n .then(({ data }) => data);\n\nexport const deleteResourceCategory = (resource_category_id) =>\n axios.delete(`/admin/explore_categories/${resource_category_id}`)\n .then(({ data }) => data);","import * as React from 'react';\n\nimport { BreadCrumb as BC } from '../../types.ts';\n\ntype Props = {\n locations: BC[],\n}\n\nconst BreadCrumb: React.FunctionComponent = ({ locations }: Props): JSX.Element => (\n
\n {\n locations.map((location, index) => (\n
\n location.url && (window.location.pathname = location.url)}\n className={\"breadcrumbs__text app-text \" + ( location.url ? 'breadcrumbs__text--link' : '')}\n >\n {location.title}\n
\n {\n location.url && locations[index + 1] && (\n \n )\n }\n
\n ))\n }\n \n);\n\nexport default BreadCrumb;\n","import * as React from 'react';\n\ntype Props = {\n titleButton?: string,\n secondTitleButton?: string,\n locationButton?: string,\n secondLocationButton?: string,\n title: string,\n subtitle?: string,\n buttonDisabled?: boolean\n}\n\nconst ListItem: React.FunctionComponent = ({\n titleButton,\n secondTitleButton,\n locationButton,\n secondLocationButton,\n title,\n subtitle,\n buttonDisabled,\n}: Props): JSX.Element => (\n
\n
\n \n

{title}

\n { subtitle && (\n

Description:{subtitle}

\n )\n }\n
\n
\n {\n titleButton && !buttonDisabled && (\n {titleButton}\n )\n }\n {\n secondTitleButton && !buttonDisabled && (\n {secondTitleButton}\n )\n }\n
\n
\n);\n\nexport default ListItem;\n","import * as React from 'react'\n// import * as ReactDOM from 'react-dom'\n\ntype Props = {\n image_url: string\n update_url: string\n}\n\nclass ProfilePicker extends React.Component {\n render () {\n return (\n
\n \n
\n )\n }\n}\n\nexport default ProfilePicker","import * as React from 'react';\n\nimport \"./index.scss\";\n\ntype Props = {\n title: string,\n value: string,\n error?: boolean,\n inputId: string,\n isEdit: boolean,\n isFacilitator: boolean,\n onChange(value: string): void,\n onBlur?(value: string): void,\n}\n\nconst Question: React.FunctionComponent = ({\n title,\n value,\n error,\n inputId,\n isEdit,\n isFacilitator,\n onChange,\n onBlur,\n}: Props): JSX.Element => (\n
\n
{title}
\n onChange(event.target.value)}\n onBlur={(event) => onBlur(event.target.value)}\n id={inputId}\n disabled={isEdit || isFacilitator}\n />\n {error && (\n
\n {error}\n
\n )}\n
\n);\n\nexport default Question;\n","import * as React from 'react';\n\nimport \"./index.scss\";\n\ntype Props = {\n withInput?: boolean,\n withBorder?: boolean,\n isOpen?: boolean,\n title: string,\n onArrowPress?(): void,\n iconId?: number,\n index?: number\n}\n\nconst Section: React.FunctionComponent = ({\n withInput,\n withBorder,\n isOpen,\n title,\n onArrowPress,\n iconId,\n index,\n}: Props): JSX.Element => {\n const iconRef = React.createRef()\n\n const toggleSection = (id) => {\n if (onArrowPress) {\n onArrowPress()\n }\n\n if (iconRef.current) {\n iconRef.current.classList.contains('active')\n ? iconRef.current.classList.remove('active')\n : iconRef.current.classList.add('active')\n }\n }\n\n return (\n
\n \n {title}\n {\n withBorder && (\n
\n \n
\n )\n }\n
\n \n );\n};\n\nexport default Section;\n","import * as React from 'react'\nimport { Tag } from '../types'\n\n\ntype Props = {\n tag: Tag\n onClick?: any //but is really a function\n canDelete?: boolean\n}\n\nclass TagPill extends React.Component {\n render () {\n return (\n
\n { this.props.tag.name }\n { this.props.canDelete ? × : '' }\n
\n )\n }\n}\n\nexport default TagPill","import { url } from 'inspector';\nimport * as React from 'react';\ndeclare const I18n;\n\ntype Props = {\n title: string,\n requiredLevel: number,\n index: number,\n id: number,\n image?: string,\n isFacilitator?: boolean,\n isLearner?: boolean,\n completed?: boolean,\n learnerLevel?: number,\n handleDelete(id: number): void,\n}\n\nconst ListItem: React.FunctionComponent = ({\n title,\n requiredLevel,\n index,\n id,\n handleDelete,\n image,\n isFacilitator,\n isLearner,\n learnerLevel,\n completed,\n}: Props): JSX.Element => {\n const mod = index % 3;\n let overlay = null;\n let levelText = `${I18n.t('models.course.required_level.level')} ${requiredLevel}`;\n\n const isAdmin = !(isLearner || isFacilitator);\n\n if (isLearner) {\n if (requiredLevel < learnerLevel) {\n if (completed) {\n overlay = 'card-list-item__image--completed';\n }\n } else if (requiredLevel > learnerLevel) {\n overlay = 'card-list-item__image--locked';\n }\n }\n\n if (requiredLevel === 0) {\n levelText = I18n.t('models.course.required_level.0');\n } else if (requiredLevel === -1) {\n levelText = I18n.t('models.course.required_level.-1');\n }\n\n const imageNode = (\n
\n {\n image ? (\n
\n ) : (\n
\n )\n }\n\n {\n overlay && (\n
\n \n
\n )\n }\n
\n );\n\n return (\n \n {\n overlay === 'card-list-item__image--locked' ? imageNode : (\n \n {imageNode}\n \n )\n }\n\n
\n \n
\n {levelText}\n
\n
\n\n
\n
\n
{title}
\n {\n isAdmin && (\n
\n \n
handleDelete(id)}>
\n
\n )\n }\n
\n
\n
\n );\n}\n\nexport default ListItem;\n","import * as React from 'react';\nimport Dropzone from 'react-dropzone';\ndeclare const I18n;\n\nimport { Course, MediaFile } from '../../../../types';\n\nimport Header from '../../../Header';\nimport TextInput from '../../../inputs/TextInput';\nimport SelectInput from '../../../inputs/SelectInput';\nimport NoteInput from '../../../inputs/NoteInput';\nimport BreadCrumb from '../../../BreadCrumb';\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n maxLevel: number,\n course?: Course,\n image?: MediaFile,\n }\n}\n\nconst CreateCourse: React.FunctionComponent = ({\n initialData: {\n maxLevel,\n course,\n image,\n },\n}: Props): JSX.Element => {\n const [name, setName] = React.useState('');\n const [errorName, setErrorName] = React.useState('');\n\n const [status, setStatus] = React.useState(0);\n const [language, setLanguage] = React.useState('en');\n\n const [hackergalLevel, setHackergalLevel] = React.useState(null);\n const [errorHackergalLevel, setErrorHackergalLevel] = React.useState('');\n\n const [coverImage, setCoverImage] = React.useState(null);\n\n const [loading, setLoading] = React.useState(false);\n\n React.useEffect(() => {\n if (course) {\n setName(course.title);\n setStatus(course.active ? 1 : 0);\n setLanguage(course.language);\n setHackergalLevel(course.required_level);\n\n if (image) {\n setCoverImage([JSON.parse(image.file_data)]);\n }\n }\n }, []);\n\n const handleSubmit = () => {\n setLoading(true);\n\n let error = false;\n\n if (!(name && name.trim())) {\n setErrorName(\"This field can't be blank\");\n setName('');\n error = true;\n }\n\n if (hackergalLevel === null) {\n setErrorHackergalLevel(\"This field can't be blank\");\n error = true;\n }\n\n if (!error) {\n const body = {\n title: name.trim(),\n language: language,\n required_level: hackergalLevel,\n active: !!status,\n }\n\n let formData = new FormData();\n\n Object.keys(body).forEach((key) => formData.append(`course[${key}]`, body[key]))\n\n if (course) {\n if (coverImage) {\n if (image && image.file_data === JSON.stringify(coverImage[0])) {\n formData.append(\"course[cover_image]\", JSON.stringify(image));\n } else {\n formData.append(\"course[cover_image]\", coverImage[0]);\n }\n }\n } else if (coverImage) {\n formData.append(\"course[cover_image]\", coverImage[0]);\n }\n\n if (course) {\n api.updateCourse(course.id, formData)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n } else {\n api.createCourse(formData)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n }\n } else {\n setLoading(false);\n }\n }\n\n const detectedChanges = () => {\n if (!course) return false\n\n const newActive = !!status;\n let sameImage = !!image;\n\n if (!coverImage) {\n sameImage = (image === coverImage);\n } else {\n sameImage = image ? image.file_data === JSON.stringify(coverImage[0]) : false;\n }\n\n if (\n newActive != course.active\n || name !== course.title\n || hackergalLevel !== course.required_level\n || language !== course.language\n || !sameImage\n ) {\n return false;\n }\n\n return true;\n }\n\n return (\n
\n \n\n \n\n {\n setName(value);\n setErrorName('');\n }}\n />\n\n
\n
\n\n setStatus(parseInt(value))}\n >\n \n \n \n\n {\n setHackergalLevel(parseInt(value));\n setErrorHackergalLevel('');\n }}\n >\n <>\n { !course && (\n \n ) }\n \n\n {\n Array.from(Array(maxLevel).keys()).map((x,i) => (\n \n ))\n }\n \n \n\n setLanguage(value)}\n >\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n {\n coverImage ? (\n <>\n {coverImage && (coverImage[0].name || coverImage[0].metadata.filename)}\n setCoverImage(null)}>\n \n ) : (\n setCoverImage(file)}>\n {({ getRootProps, getInputProps }) => (\n
\n
\n \n

\n \n {I18n.t('views.forms.messaging.drag_drop_files.click_here')}\n

\n
\n
\n )}\n
\n )\n }\n
\n
\n
\n
\n\n
\n \n {I18n.t('views.forms.submit')}\n { loading && }\n \n
\n
\n );\n}\n\nexport default CreateCourse;\n","import * as React from 'react';\ndeclare const I18n;\n\nimport { Course, MediaFile } from '../../../../types';\n\nimport ListItem from '../../components/list_item';\nimport Header from '../../../Header';\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n courses: Course[],\n image: MediaFile,\n userType?: string,\n userLevel?: number,\n }\n}\n\nconst IndexCourse: React.FunctionComponent = ({\n initialData: {\n courses,\n image,\n userType,\n userLevel,\n } }: Props): JSX.Element => {\n const [courseList, setCourseList] = React.useState(courses);\n\n const handleDelete = (id) => {\n if (confirm(I18n.t('views.forms.messaging.confirm_delete'))) {\n api.deleteCourse(id)\n .then((res) => {\n setCourseList(courseList.filter((item) => item.id !== id));\n window.location.href = res.url;\n })\n .catch((error) => console.error('Error', error));\n }\n }\n\n return (\n
\n \n\n
\n {\n courseList.length > 0 ? (\n <>\n {\n courseList.map((row, index) => (\n \n ))\n }\n \n ) : (\n
{I18n.t('models.course.messaging.empty_state')}
\n )\n }\n
\n
\n );\n}\n\nexport default IndexCourse;\n","import * as React from 'react'\nimport Dropzone from 'react-dropzone'\n\nimport SingleFileUpload from './SingleFileUpload'\nimport Wyswiyg from '../inputs/Wysiwyg'\ndeclare const axios\ndeclare const I18n\ndeclare const $\naxios.defaults.timeout = 60000;\n\n//Custom Types\nimport { User, Announcement, AnnouncementFile, Region, Organization } from '../../types'\n\ntype Props = {\n endpoint_url: string\n user: User\n announcement: Announcement\n announcementFiles: AnnouncementFile[]\n regions: Region[]\n organizations: Organization[]\n}\n\ntype State = {\n target: string\n loading: boolean\n errors: any,\n fileIdsToDelete: number[],\n select2: any\n} & Props\n\nclass AnnouncementForm extends React.Component {\n private form = React.createRef()\n private regionDropdown = React.createRef()\n private organizationDropdown = React.createRef()\n\n constructor (props: Props) {\n super(props)\n\n let target = (this.props.user.role === 'facilitator' || this.props.announcement.organization_id) ? 'organization' : 'general'\n\n this.state = {\n ...this.props,\n loading: false,\n errors: {},\n target: target,\n fileIdsToDelete: [],\n select2: null\n }\n }\n\n setAnnouncementProperty (property, value) {\n let announcement = { ...this.state.announcement }\n announcement[property] = value\n\n this.setState({\n announcement\n })\n }\n\n setTargetAudience (targetAudience: string) {\n $(this.state.select2[0]).val('').trigger('change');\n\n if (targetAudience == 'all') {\n this.setState({\n target: targetAudience,\n announcement: {\n ...this.state.announcement,\n organization_id: null,\n }\n })\n } else if (targetAudience == 'organization') {\n this.setState({\n target: targetAudience,\n announcement: {\n ...this.state.announcement,\n region_id: null\n }\n })\n }\n }\n\n getRegion (regionId: number) {\n return this.state.regions.find(region => region.id == regionId)\n }\n\n deleteFile (index: number) {\n let delete_ids = []\n let file = this.state.announcementFiles[index]\n\n if (file.announcement_id) {\n delete_ids.push(file.id)\n }\n\n this.state.announcementFiles.splice(index, 1)\n\n this.setState({\n announcementFiles: [...this.state.announcementFiles],\n fileIdsToDelete: this.state.fileIdsToDelete.concat(delete_ids)\n })\n }\n\n getFileName(index) {\n let file = this.state.announcementFiles[index]\n\n return file.announcement_id\n ? JSON.parse(this.state.announcementFiles[index].file_data).metadata.filename\n : this.state.announcementFiles[index].name\n }\n\n toggleFeatured (isChecked: boolean) {\n let announcementObj = {\n ...this.state.announcement,\n is_featured: isChecked\n }\n\n if (isChecked) {\n announcementObj.organization_id = null\n announcementObj.region_id = null\n this.organizationDropdown.current.selectedIndex = 0\n this.regionDropdown.current.selectedIndex = 0\n }\n\n this.setState({ announcement: announcementObj })\n }\n\n handleFileUploads(files) {\n let newFilePayload = this.state.announcementFiles\n files.forEach(file => {\n newFilePayload.push(file)\n })\n\n this.setState({\n announcementFiles: newFilePayload.concat([])\n })\n }\n\n handleSubmit(event) {\n event.preventDefault()\n\n this.setState({\n loading: true,\n errors: {}\n })\n\n let form = this.form.current\n let formData = new FormData(form)\n\n\n if (this.state.announcementFiles.length > 0) {\n this.state.announcementFiles.forEach(file => {\n if (file instanceof File) {\n formData.append(\"announcement[new_files][]\", file)\n }\n })\n }\n\n if (this.state.fileIdsToDelete.length > 0) {\n this.state.fileIdsToDelete.forEach((id) => {\n formData.append('announcement[deleted_file_ids][]', id.toString())\n })\n }\n\n axios({\n method: this.state.announcement.id ? 'PATCH' : 'POST',\n url: this.state.endpoint_url,\n data: formData\n }).then(function (response) {\n if (response.data.redirect) {\n window.location = response.data.redirect\n }\n }).catch(function (error) {\n this.setState({\n loading: false,\n errors: error.response.data\n })\n window.scrollTo(0, 0)\n }.bind(this))\n }\n\n formatDate(date) {\n if (!date) {\n return ''\n }\n\n let formattedDate = new Date(date + ' 00:00:00')\n let dd = formattedDate.getDate().toString().padStart(2, '0')\n let mm = (formattedDate.getMonth() + 1).toString().padStart(2, '0') //January is 0!\n let yyyy = formattedDate.getFullYear()\n\n return yyyy + '-' + mm + '-' + dd\n }\n\n componentDidMount () {\n let react = this\n\n $(document).ready(function() {\n var select2Dropdown = $('#announcement_organization_id').select2();\n react.setState({\n select2: select2Dropdown\n })\n\n $('.flatpickr-react').each(function() {\n $(this).flatpickr({\n dateFormat: \"Y-m-d\",\n defaultDate: this.value,\n onChange: function(selectedDates, dateStr, instance) {\n react.setAnnouncementProperty('expiration_date_javascript', dateStr)\n },\n });\n })\n })\n }\n\n render() {\n let date = this.formatDate(this.state.announcement.expiration_date_javascript || null)\n\n return (\n
\n
\n\n

{I18n.t('views.common.details')}

\n\n
\n\n { this.state.user.role !== 'facilitator' &&\n
\n
\n \n this.setAnnouncementProperty('is_featured', event.target.value == 'true')}\n >\n \n \n \n
\n
\n }\n\n
\n
\n \n\n {}}\n />\n { this.state.errors.expiration_date &&\n
{this.state.errors.expiration_date[0]}
\n }\n
\n
\n\n { this.state.user.role !== 'facilitator' && this.state.announcement.is_featured &&\n
\n \n\n \n
\n }\n
\n\n

{I18n.t('models.announcement.attributes.targeting')}

\n\n { this.state.user.role !== 'facilitator' &&\n
\n
\n
\n \n this.setAnnouncementProperty('language', event.target.value)}\n >\n \n \n \n
\n
\n\n\n
\n
\n \n this.setTargetAudience(event.target.value)}\n >\n \n \n \n
\n
\n\n
\n
\n \n {\n this.setAnnouncementProperty('organization_id', event.target.value)\n }}\n >\n \n {this.state.organizations.map((value) => {\n let region = this.getRegion(value.region_id)\n return \n })}\n \n
\n
\n\n
\n }\n\n { this.state.user.role === 'facilitator' &&\n
\n \n \n \n
\n }\n\n
\n\n { this.state.user.role !== 'facilitator' &&\n
\n
\n \n this.setAnnouncementProperty('user_type', event.target.value)}\n >\n \n \n \n \n
\n
\n }\n\n { this.state.user.role !== 'facilitator' &&\n
\n
\n \n this.setAnnouncementProperty('region_id', parseInt(event.target.value))}\n >\n \n {this.state.regions.map((value) => {\n return \n })}\n \n
\n
\n }\n
\n\n

{I18n.t('views.common.content')}

\n\n
\n
\n
\n \n\n this.setState({ announcement: { ...this.state.announcement, title: event.target.value } })}\n name=\"announcement[title]\"\n id=\"announcement_title\"\n disabled={this.state.announcement.id != null}\n />\n { this.state.errors.title &&\n
{this.state.errors.title[0]}
\n }\n
\n
\n\n
\n
\n \n
\n
\n\n { this.state.announcement.id == null &&\n
\n
\n \n
\n
\n this.handleFileUploads(acceptedFiles)}>\n {({ getRootProps, getInputProps }) => (\n
\n
\n \n

\n \n {I18n.t('views.forms.messaging.drag_drop_files.drag_drop')}
\n {I18n.t('views.forms.messaging.drag_drop_files.or')}
\n {I18n.t('views.forms.messaging.drag_drop_files.click_here')}\n

\n
\n
\n )}\n
\n
\n
\n
\n
\n }\n\n
\n \n \n \n \n \n \n \n \n \n {this.state.announcementFiles.length > 0 ? (\n this.state.announcementFiles.map((announcementFile, index) => {\n let fileName = this.getFileName(index)\n return (\n \n \n \n \n )\n }, this)\n ) : (\n \n \n \n )\n }\n \n
{I18n.t('views.common.file_name')}{I18n.t('views.common.options')}
\n {fileName}\n {I18n.t('views.common.new')}\n \n { this.state.announcement.id == null &&\n this.deleteFile(index)}>\n }\n
{I18n.t('views.common.no_files')}
\n
\n { this.state.announcement.id == null &&\n
\n \n {`${this.state.announcement.id ? I18n.t('views.forms.save_changes') : I18n.t('views.forms.submit')}`}\n {\n this.state.loading &&\n \n }\n \n
\n }\n
\n
\n
\n )\n }\n}\n\nexport default AnnouncementForm\n","import * as React from 'react'\nimport Dropzone from 'react-dropzone'\ndeclare const axios\ndeclare const I18n\naxios.defaults.timeout = 60000;\n//Custom Types\nimport { MediaFile } from '../../types'\n\ntype State = {\n loading: boolean\n errors: any\n mediaFiles: MediaFile[]\n}\n\nclass MediaFileUploader extends React.Component<{}, State> {\n private form = React.createRef()\n\n constructor (props: any) {\n super(props)\n\n this.state = {\n loading: false,\n mediaFiles: [],\n errors: {}\n }\n }\n\n deleteFile (index: number) {\n this.state.mediaFiles.splice(index, 1)\n\n this.setState({\n mediaFiles: [...this.state.mediaFiles],\n })\n }\n\n getFileName (index) {\n let file = this.state.mediaFiles[index]\n\n return file.id\n ? JSON.parse(this.state.mediaFiles[index].file_data).metadata.filename\n : this.state.mediaFiles[index].name\n }\n\n handleFileUploads (files) {\n let newFilePayload = this.state.mediaFiles\n files.forEach(file => {\n newFilePayload.push(file)\n })\n\n this.setState({\n mediaFiles: newFilePayload.concat([])\n })\n }\n\n handleSubmit (event) {\n event.preventDefault()\n this.setState({\n loading: true,\n errors: {}\n })\n\n let form = this.form.current\n let formData = new FormData(form)\n\n if (this.state.mediaFiles.length > 0) {\n this.state.mediaFiles.forEach(file => {\n if (file instanceof File) {\n formData.append(\"media_file[files][]\", file)\n }\n })\n } else {\n formData.append(\"media_file[files]\", null)\n }\n\n axios({\n method: 'POST',\n url: '/admin/media_files',\n data: formData\n })\n .then(function (response) {\n if (response.data.redirect) {\n window.location = response.data.redirect\n }\n }).catch((error) => {\n this.setState({\n loading: false,\n errors: error.response.data\n })\n window.scrollTo(0, 0)\n })\n }\n\n render() {\n return (\n
\n
\n\n
\n
\n

{I18n.t('views.common.attach_files')}

\n
\n
\n this.handleFileUploads(acceptedFiles)}>\n {({ getRootProps, getInputProps }) => (\n
\n
\n \n

\n \n {I18n.t('views.forms.messaging.drag_drop_files.drag_drop')}
\n {I18n.t('views.forms.messaging.drag_drop_files.or')}
\n {I18n.t('views.forms.messaging.drag_drop_files.click_here')}\n

\n
\n
\n )}\n
\n
\n
\n
\n
\n\n
\n

{I18n.t('views.common.files')}

\n {this.state.errors.length > 0 ? (\n
\n {\n this.state.errors.map((error, index) => {\n return {error}\n })\n }\n
\n ) : (\n ''\n )\n }\n \n \n \n \n \n \n \n \n {\n this.state.mediaFiles.length > 0\n ?\n (\n this.state.mediaFiles.map((mediaFile, index) => {\n let fileName = this.getFileName(index)\n return (\n \n \n \n \n )\n })\n )\n :\n (\n \n \n \n )\n }\n \n
{I18n.t('views.common.file_name')}{I18n.t('views.common.options')}
\n {fileName}\n {I18n.t('views.common.new')}\n \n this.deleteFile(index)}>\n
{I18n.t('views.common.no_files')}
\n
\n\n
\n \n {I18n.t('models.media_file.messaging.upload')}\n {\n this.state.loading &&\n \n }\n \n
\n\n
\n
\n )\n }\n}\n\nexport default MediaFileUploader\n","import * as React from 'react'\ndeclare const I18n\n\ntype Props = {\n id?: string\n disabled?: boolean\n errors?: any\n accepts?: string\n existingFileName?: string\n existingFileUrl?: string\n required?: boolean\n parent: string\n field: string\n label: string\n onChange?(value: string): void,\n onDelete?(): void,\n}\n\ntype State = {\n required: boolean\n file: any\n existingMarkedForRemoval: boolean\n}\n\nclass SingleFileUpload extends React.Component {\n private fileInput = React.createRef()\n\n constructor(props: Props) {\n super(props)\n\n this.state = {\n required: this.props.required,\n file: {},\n existingMarkedForRemoval: false\n }\n }\n\n setHeaderImageName(fileData) {\n this.setState({\n file: {\n name: fileData[0] ? fileData[0].name : null,\n existingFileUrl: null\n }\n })\n }\n\n resetFileValue() {\n this.fileInput.current.value = null\n this.fileInput.current.files = null\n this.setHeaderImageName('')\n this.setState({ existingMarkedForRemoval: true })\n\n if (this.props.onDelete) {\n this.props.onDelete()\n }\n }\n\n componentDidMount() {\n if (this.props.existingFileName && this.props.existingFileUrl) {\n this.setState({\n file: {\n name: this.props.existingFileName,\n url: this.props.existingFileUrl\n }\n })\n }\n }\n\n fileInputChanged(event) {\n this.setHeaderImageName(event.target.files)\n\n if (this.props.onChange) {\n this.props.onChange(event.target.files)\n }\n }\n\n fileNameContainer() {\n return (\n
\n \n {\n this.state.file.url\n ? {this.state.file.name}\n : this.state.file.name\n }\n {\n this.props.required\n ? this.fileInput.current.click()} className=\"float-right fal fa-retweet cursor-pointer mt-1\">\n : this.resetFileValue()} className=\"float-right fal fa-trash cursor-pointer\">\n }\n \n
\n )\n }\n\n emptyFileContainer() {\n return (\n
\n \n \n this.fileInput.current.click()} className='cursor-pointer'>{ I18n.t('views.forms.messaging.drag_drop_files.click_here') }\n \n {\n this.state.existingMarkedForRemoval\n &&\n \n }\n
\n )\n }\n\n fieldName () {\n return `${this.props.parent}[${this.props.field}]`\n }\n\n hasErrors() {\n return this.props.errors && this.props.errors.length > 0\n }\n\n hasFile () {\n return Object.keys(this.state.file).length && this.state.file.name\n }\n\n render() {\n return (\n
\n \n this.fileInputChanged(event)}\n className=\"hidden\"\n />\n\n {\n this.hasFile()\n ? this.fileNameContainer()\n : this.emptyFileContainer()\n }\n\n {\n this.hasErrors()\n &&\n
{this.props.errors[0]}
\n }\n
\n )\n }\n}\n\nexport default SingleFileUpload","import * as React from 'react';\ndeclare const I18n;\n\nimport Wyswiyg from './Wysiwyg'\n\ntype Props = {\n value: string,\n error: string,\n type: string,\n field: string,\n label: string,\n className?: string,\n style?: object,\n toolbarOptions: object,\n required: boolean,\n onChange(value: string): void,\n}\n\nconst NoteInput: React.FunctionComponent = ({\n value,\n error,\n type,\n field,\n label,\n className,\n style,\n toolbarOptions,\n required,\n onChange,\n}: Props): JSX.Element => (\n \n
\n onChange(text)}\n />\n
\n
\n);\n\nexport default NoteInput;\n","declare const axios: any\ndeclare const I18n;\n\nimport * as React from 'react'\nimport Autosuggest from 'react-autosuggest';\n\ntype Props = {\n type: string\n display_key: string\n inputId?: string,\n nameInputId?: string,\n multiple?: boolean\n placeholder: string\n onSelected?: Function\n initialValue?: string,\n showChangeButton?: boolean,\n error?: boolean\n confirmChangeMessage?: string,\n isAdmin?: boolean,\n isLastChampion?: boolean\n}\n\ntype State = {\n suggestions: {}[]\n value: string\n isLoading: boolean\n error: boolean\n idInput?: HTMLInputElement\n nameInput?: HTMLInputElement\n selected: {} | {}[] | null,\n selectionMade: boolean,\n showChangeButton: boolean,\n confirmChangeMessage?: string,\n isAdmin?: boolean,\n isLastChampion?: boolean\n}\n\nclass OrganizationTypeAhead extends React.Component {\n constructor(props) {\n super(props)\n\n let state = {\n suggestions: [],\n value: this.props.initialValue || '',\n isLoading: false,\n error: false,\n selected: null,\n selectionMade: this.props.initialValue ? true : false,\n showChangeButton: this.props.showChangeButton ?? true,\n confirmChangeMessage: this.props.confirmChangeMessage ?? null,\n isAdmin: this.props.isAdmin ?? false,\n isLastChampion: this.props.isLastChampion ?? false,\n } as State\n\n if (this.props.inputId) {\n state.idInput = document.querySelector(this.props.inputId)\n }\n\n if (this.props.nameInputId) {\n state.nameInput = document.querySelector(this.props.nameInputId)\n }\n\n this.state = state\n }\n\n componentDidMount () {\n if (this.state.value && this.state.selectionMade) {\n this.toggleInputDisabled(false)\n }\n }\n\n suggestionValue (suggestion) {\n return suggestion[this.props.display_key]\n }\n\n onChange (_, { newValue }) {\n this.setState({\n value: newValue\n })\n\n if (this.state.nameInput) this.state.nameInput.value = newValue\n if (this.state.idInput) this.state.idInput.value = ''\n\n if (!newValue) {\n setTimeout(() => {\n this.toggleInputDisabled(true)\n }, 100);\n }\n\n let confirmChangeButton = document.getElementById('org-info-update');\n if (this.state.confirmChangeMessage !== null && confirmChangeButton) {\n confirmChangeButton.setAttribute('data-confirm', this.state.confirmChangeMessage)\n }\n }\n\n async fetchSuggestions ({ value }) {\n this.setState({ isLoading: true })\n\n\n let params = [\n `type=${this.props.type}`,\n `query=${value}`\n ]\n\n let queryString = params.join('&')\n let url = `/search?${queryString}`\n\n if (! this.state.isLoading) {\n try {\n let request = await axios.get(url)\n let response = request.data\n let filteredResults = []\n\n // Filter out \"hackergal at home\" organization from the list.\n if (!this.state.isAdmin) {\n filteredResults = response.results.filter(organization => organization.is_at_home == false)\n .map(filteredOrganization => (filteredOrganization))\n } else {\n filteredResults = response.results.map(filteredOrganization => (filteredOrganization))\n }\n\n this.setState({\n isLoading: false,\n suggestions: filteredResults\n })\n } catch (err) {\n this.setState({\n isLoading: true,\n error: true\n })\n console.log(`UberTable fetchPage: `, err)\n }\n }\n }\n\n suggestionSelected (event, { suggestion, /*suggestionValue, suggestionIndex, sectionIndex, method*/ }) {\n event.stopPropagation()\n event.preventDefault()\n\n this.setState({\n selectionMade: true\n })\n\n this.toggleInputDisabled(false)\n\n if (this.props.onSelected) this.props.onSelected(suggestion)\n if (this.state.idInput) this.state.idInput.value = suggestion.id\n if (this.state.nameInput) this.state.nameInput.value = ''\n\n let newOrganizationFields = document.getElementsByClassName('new-organization-fields')\n\n for(var x=0; x < newOrganizationFields.length; x++) {\n newOrganizationFields[x].classList.add('hidden')\n }\n }\n\n renderSuggestion (suggestion, { query, isHighlighted }) {\n let value = this.suggestionValue(suggestion)\n value = value.replace(new RegExp(query, 'i'), '$&')\n\n return (\n
\n )\n }\n\n clearSuggestions () {\n this.setState({\n isLoading: false,\n suggestions: []\n })\n\n setTimeout(() => {\n if (this.state.value && this.state.selectionMade) {\n this.toggleInputDisabled(false)\n }\n }, 100);\n\n }\n\n toggleInputDisabled(enable: boolean) {\n let typeAheadInput = document.querySelector('.react-autosuggest__input')\n\n if (typeAheadInput) {\n if (enable) {\n typeAheadInput.removeAttribute('disabled')\n } else {\n typeAheadInput.setAttribute('disabled', 'true')\n }\n }\n }\n\n resetInput () {\n this.setState({\n selectionMade: false,\n value: \"\",\n })\n\n setTimeout(() => {\n this.clearSuggestions()\n }, 100);\n\n this.toggleInputDisabled(true)\n\n if (this.state.nameInput) this.state.nameInput.value = ''\n if (this.state.idInput) this.state.idInput.value = ''\n\n let newOrganizationFields = document.getElementsByClassName('new-organization-fields')\n\n for(var x=0; x < newOrganizationFields.length; x++) {\n newOrganizationFields[x].classList.remove('hidden')\n }\n }\n\n render () {\n const inputProps = {\n placeholder: this.props.placeholder,\n value: this.state.value,\n onChange: this.onChange.bind(this),\n className: `form-control organization-typeahead ${this.state.error || this.props.error ? 'is-invalid' : ''}`\n }\n\n return (\n
\n \n { !this.state.showChangeButton &&\n {I18n.t('models.organization.messaging.change_organization_name')}\n }\n { this.state.showChangeButton && this.state.selectionMade && !this.state.isLoading &&\n this.resetInput()}>{I18n.t('models.organization.messaging.change_organization')}\n }\n \n
\n )\n }\n}\n\nexport default OrganizationTypeAhead\n","import * as React from 'react';\ndeclare const I18n;\n\ntype Props = {\n value: string|number,\n error?: string,\n type: string,\n field: string,\n label: string,\n className?: string,\n columnSize: number,\n style?: object,\n onChange(value: string): void,\n children: React.ReactNode,\n}\n\nconst SelectInput: React.FunctionComponent = ({\n value,\n error,\n type,\n field,\n label,\n className,\n columnSize,\n onChange,\n style,\n children,\n}: Props): JSX.Element => (\n
\n
\n \n onChange(event.target.value)}\n >\n {children}\n \n {error && (\n
\n {error}\n
\n )}\n
\n
\n);\n\nexport default SelectInput;\n","declare const axios: any\n\nimport _ from 'lodash'\n\nimport * as React from 'react'\nimport ReactTags from 'react-tag-autocomplete'\nimport { Tag } from '../../types'\nimport TagPill from '../TagPill'\n\ntype Props = {\n taggable_type: string\n tags: Tag[]\n context?: string\n onChange?(value: any): void\n}\n\ntype State = {\n tags: Tag[]\n suggestions: Tag[]\n value: string\n isLoading: boolean\n error: boolean\n context: string\n onChange?(value: any): void\n}\n\nclass TypeAhead extends React.Component {\n constructor(props) {\n super(props)\n\n let state = {\n tags: this.props.tags ? [].concat(this.props.tags) : [],\n suggestions: [],\n value: '',\n isLoading: false,\n error: false,\n context: this.props.context || 'tag',\n onChange: this.props.onChange ? this.props.onChange : null\n } as State\n\n this.state = state\n }\n\n async fetchSuggestions (query) {\n this.setState({ isLoading: true })\n\n let url = `/tags?query=${query}&taggable_type=${this.props.taggable_type}&context=${this.state.context}`\n\n try {\n let request = await axios.get(url)\n let response = request.data\n\n this.setState({\n isLoading: false,\n suggestions: response.tags\n })\n } catch (err) {\n this.setState({\n isLoading: true,\n error: true\n })\n console.log(`TagInput fetchSuggestions: `, err)\n }\n }\n\n onDelete(i) {\n const tags = this.state.tags.slice(0)\n tags.splice(i, 1)\n this.setState({ tags })\n this.state.onChange(tags)\n }\n\n onAddition(tag) {\n const existingNames = this.state.tags.map(t => t.name.toLowerCase())\n if (existingNames.includes(tag.name.toLowerCase())) return\n\n const tags = [].concat(this.state.tags, tag)\n this.setState({ tags })\n this.state.onChange(tags)\n }\n\n HackergalTag (props) {\n return \n }\n\n render() {\n return (\n
\n \n { this.state.tags &&\n this.state.tags.map((tag) => {\n return (\n \n )\n })\n }\n
\n )\n }\n}\n\nexport default TypeAhead","import * as React from 'react';\ndeclare const I18n;\n\ntype Props = {\n value: string,\n error: string,\n type: string,\n field: string,\n label: string,\n className?: string,\n columnSize: number,\n style?: object,\n onChange(value: string): void,\n}\n\nconst TextInput: React.FunctionComponent = ({\n value,\n error,\n type,\n field,\n label,\n className,\n columnSize,\n style,\n onChange,\n}: Props): JSX.Element => (\n
\n
\n \n onChange(event.target.value)}\n />\n {error && (\n
\n {error}\n
\n )}\n
\n
\n);\n\nexport default TextInput;\n","declare const axios: any\n\nimport * as React from 'react'\nimport Autosuggest from 'react-autosuggest';\n\ntype Props = {\n type: string\n display_key: string\n input_id?: string,\n multiple?: boolean\n placeholder: string\n onSelected?: Function\n}\n\ntype State = {\n suggestions: {}[]\n value: string\n isLoading: boolean\n error: boolean\n input?: HTMLInputElement\n selected: {} | {}[] | null\n}\n\nclass TypeAhead extends React.Component {\n constructor(props) {\n super(props)\n\n let state = {\n suggestions: [],\n value: '',\n isLoading: false,\n error: false,\n selected: null\n } as State\n\n if (this.props.input_id) {\n state.input = document.querySelector(this.props.input_id)\n }\n\n this.state = state\n }\n\n suggestionValue (suggestion) {\n return suggestion[this.props.display_key]\n }\n\n onChange (_, { newValue }) {\n this.setState({\n value: newValue\n })\n }\n\n async fetchSuggestions ({ value }) {\n this.setState({ isLoading: true })\n\n let params = [\n `type=${this.props.type}`,\n `query=${value}`\n ]\n\n let queryString = params.join('&')\n let url = `/search?${queryString}`\n\n try {\n let request = await axios.get(url)\n let response = request.data\n\n this.setState({\n isLoading: false,\n suggestions: response.results\n })\n } catch (err) {\n this.setState({\n isLoading: true,\n error: true\n })\n console.log(`UberTable fetchPage: `, err)\n }\n }\n\n suggestionSelected (event, { suggestion, /*suggestionValue, suggestionIndex, sectionIndex, method*/ }) {\n event.stopPropagation()\n event.preventDefault()\n\n if (this.props.onSelected) this.props.onSelected(suggestion)\n if (this.state.input) this.state.input.value = suggestion.id\n }\n\n renderSuggestion (suggestion, { query, isHighlighted }) {\n let value = this.suggestionValue(suggestion)\n value = value.replace(new RegExp(query, 'i'), '$&')\n\n\n return (\n
\n )\n }\n\n clearSuggestions () {\n this.setState({\n isLoading: false,\n suggestions: []\n })\n }\n\n render () {\n const inputProps = {\n placeholder: this.props.placeholder,\n value: this.state.value,\n onChange: this.onChange.bind(this)\n }\n\n return (\n \n )\n }\n}\n\nexport default TypeAhead","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\ndeclare const axios\ndeclare const $\n\n// Require Editor CSS files.\n\nimport FroalaEditorComponent from 'react-froala-wysiwyg';\n\n// // Import all Froala Editor plugins;\n// import 'froala-editor/js/plugins.pkgd.min.js';\n\n// Import a single Froala Editor plugin.\nimport \"froala-editor/js/plugins/align.min.js\";\nimport \"froala-editor/js/plugins/char_counter.min.js\";\nimport \"froala-editor/js/plugins/code_beautifier.min.js\";\nimport \"froala-editor/js/plugins/code_view.min.js\";\nimport \"froala-editor/js/plugins/colors.min.js\";\nimport \"froala-editor/js/plugins/draggable.min.js\";\nimport \"froala-editor/js/plugins/emoticons.min.js\";\nimport \"froala-editor/js/plugins/entities.min.js\";\nimport \"froala-editor/js/plugins/file.min.js\";\nimport \"froala-editor/js/plugins/image.min.js\";\nimport \"froala-editor/js/plugins/image_manager.min.js\";\nimport \"froala-editor/js/plugins/font_size.min.js\";\nimport \"froala-editor/js/plugins/fullscreen.min.js\";\nimport \"froala-editor/js/plugins/help.min.js\";\nimport \"froala-editor/js/plugins/inline_class.min.js\";\nimport \"froala-editor/js/plugins/line_breaker.min.js\";\nimport \"froala-editor/js/plugins/link.min.js\";\nimport \"froala-editor/js/plugins/lists.min.js\";\nimport \"froala-editor/js/plugins/paragraph_format.min.js\";\nimport \"froala-editor/js/plugins/paragraph_style.min.js\";\nimport \"froala-editor/js/plugins/print.min.js\";\nimport \"froala-editor/js/plugins/quick_insert.min.js\";\nimport \"froala-editor/js/plugins/quote.min.js\";\nimport \"froala-editor/js/plugins/save.min.js\";\nimport \"froala-editor/js/plugins/special_characters.min.js\";\nimport \"froala-editor/js/plugins/table.min.js\";\nimport \"froala-editor/js/plugins/url.min.js\";\nimport \"froala-editor/js/plugins/video.min.js\";\nimport \"froala-editor/js/plugins/word_paste.min.js\";\n\n// Import a third-party plugin.\n// import 'froala-editor/js/third_party/image_tui.min.js';\n// import 'froala-editor/js/third_party/embedly.min.js';\n// import 'froala-editor/js/third_party/spell_checker.min.js';\n\n// Include font-awesome css if required.\nimport 'froala-editor/js/third_party/font_awesome.min.js';\n\n// Include special components if required.\n// import FroalaEditorView from 'react-froala-wysiwyg/FroalaEditorView';\n// import FroalaEditorA from 'react-froala-wysiwyg/FroalaEditorA';\n// import FroalaEditorButton from 'react-froala-wysiwyg/FroalaEditorButton';\n// import FroalaEditorImg from 'react-froala-wysiwyg/FroalaEditorImg';\n// import FroalaEditorInput from 'react-froala-wysiwyg/FroalaEditorInput';\n\ntype Props = {\n inputId: string\n inputName: string\n initialValue: null | string\n labelText: string,\n required?: boolean\n errors?: object|string\n disabled?: boolean\n simpleToolbar?: boolean\n onTextChange?(text: string): void\n}\n\ntype State = {\n required: boolean,\n model: string,\n config: object\n}\n\nclass Wysiwyg extends React.Component {\n private editorRef = React.createRef()\n\n constructor(props: Props) {\n super(props)\n const reactEl = this\n\n this.handleModelChange = this.handleModelChange.bind(this);\n\n this.state = {\n required: this.props.required || false,\n model: '',\n config: {\n key: window['frk'] ?? null,\n heightMin: 275,\n heightMax: 600,\n htmlExecuteScripts: false,\n imageUpload: false,\n videoUpload: false,\n pasteAllowLocalImages: true,\n events: {\n 'initialized': function () {\n this.html.cleanEmptyTags();\n }\n },\n toolbarButtons: this.props.simpleToolbar ? this.basicToolbar() : this.fullToolbar(),\n quickInsertButtons: this.props.simpleToolbar\n ? ['table', 'ul', 'ol', 'hr']\n : ['video', 'fontawesome', 'table', 'ul', 'ol', 'hr'],\n tableCellMultipleStyles: false,\n tableCellStyles: {\n // 'fr-highlighted': 'Highlighted',\n // 'fr-thick': 'Thick',\n 'hg-cell-purple': 'HG Purple',\n 'hg-cell-orange': 'HG Orange',\n },\n tableStyles: {\n 'hg-dashed-borders': 'Dashed Borders',\n 'hg-alternate-rows': 'Alternate Rows',\n 'hg-table-purple': 'HG Purple',\n 'hg-table-orange': 'HG Orange',\n },\n inlineClasses: {\n 'page-heading': 'HG Page Heading',\n 'section-heading': 'HG Section Heading'\n },\n imageManagerLoadURL: '/admin/media_files/wysiwyg_list',\n listAdvancedTypes: true\n }\n }\n }\n\n fullToolbar () {\n return {\n 'moreText': {\n 'buttons': ['bold', 'italic', 'underline', 'strikeThrough', 'subscript', 'superscript', 'fontSize', 'textColor', 'backgroundColor', 'inlineClass', 'inlineStyle', 'clearFormatting']\n },\n 'moreParagraph': {\n 'buttons': ['alignLeft', 'alignCenter', 'formatOLSimple', 'alignRight', 'alignJustify', 'formatOL', 'formatUL', 'paragraphFormat', 'paragraphStyle', 'lineHeight', 'outdent', 'indent', 'quote']\n },\n 'moreRich': {\n 'buttons': ['insertLink', 'insertImage', 'insertVideo', 'insertTable', 'emoticons', 'fontAwesome', 'specialCharacters', 'insertHR']\n },\n 'moreMisc': {\n 'buttons': ['undo', 'redo', 'fullscreen', 'print', 'spellChecker', 'selectAll', 'html', 'help'],\n 'align': 'right',\n 'buttonsVisible': 2\n },\n }\n }\n\n basicToolbar () {\n return {\n 'moreText': {\n 'buttons': ['bold', 'italic', 'underline', 'strikeThrough', 'clearFormatting']\n },\n 'moreParagraph': {\n 'buttons': ['formatOL', 'formatUL', 'paragraphFormat', 'outdent', 'indent', 'quote']\n },\n 'moreRich': {\n 'buttons': ['insertLink', 'insertTable', 'insertHR']\n },\n 'moreMisc': {\n 'buttons': ['undo', 'redo', 'fullscreen', 'print', 'spellChecker', 'selectAll', 'help'],\n 'align': 'right',\n 'buttonsVisible': 2\n },\n }\n }\n\n handleModelChange (value) {\n this.setState({\n model: value\n });\n\n if (this.props.onTextChange) {\n this.props.onTextChange(value)\n }\n }\n\n isEmpty(obj) {\n if (! obj) {\n return true\n }\n\n for(var prop in obj) {\n if(obj.hasOwnProperty(prop))\n return false;\n }\n\n return true;\n}\n\n componentDidMount () {\n this.setState({\n model: this.props.initialValue && this.props.initialValue !== 'null'\n ? this.props.initialValue\n : ''\n })\n }\n\n render() {\n return (\n
\n \n \n\n \n { this.props.errors &&\n
{this.props.errors}
\n }\n
\n\n )\n }\n}\n\nexport default Wysiwyg","import * as React from 'react';\nimport Dropzone from 'react-dropzone';\ndeclare const I18n;\n\nimport { Lesson } from '../../../../types';\n\nimport Header from '../../../Header';\nimport BreadCrumb from '../../../BreadCrumb';\nimport TextInput from '../../../inputs/TextInput';\nimport SelectInput from '../../../inputs/SelectInput';\nimport NoteInput from '../../../inputs/NoteInput';\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n lesson?: Lesson,\n courseId: number,\n courseTitle?: string,\n numberOfLessons?: number,\n }\n}\n\nconst CreateLesson: React.FunctionComponent = ({\n initialData: {\n lesson,\n courseId,\n courseTitle,\n numberOfLessons,\n },\n}: Props): JSX.Element => {\n const createSection = (section = null) => {\n // if it has a section then it is an update\n const newSection = ({\n title: section ? section.title : '',\n errorTitle: '',\n content: section ? section.content : '',\n errorContent: '',\n questions_attributes: [],\n id: section ? section.id : null,\n });\n\n if (!section) {\n newSection.questions_attributes = [];\n } else {\n section.questions.forEach((question) => {\n const newQuestion = {\n title: question.title,\n error: '',\n id: question.id,\n };\n\n newSection.questions_attributes.push(newQuestion);\n });\n }\n\n return newSection;\n };\n\n const [title, setTitle] = React.useState('');\n const [errorTitle, setErrorTitle] = React.useState('');\n\n const [status, setStatus] = React.useState(0);\n\n const [overview, setOverview] = React.useState('');\n const [errorOverview, setErrorOverview] = React.useState('');\n\n const [loading, setLoading] = React.useState(false);\n\n const [sections, setSections] = React.useState([]);\n\n React.useEffect(() => {\n if (lesson) {\n // if it has a lesson then it is an update\n setTitle(lesson.title);\n setStatus(lesson.active ? 1 : 0);\n setOverview(lesson.overview);\n\n const newSections = [];\n\n lesson.sections.forEach((section, index) => newSections.push(createSection(section)));\n setSections(newSections);\n }\n }, []);\n\n const handleSubmit = () => {\n setLoading(true);\n\n let error = false;\n let errorSections = false;\n const handleSections = sections;\n\n if (!(title && title.trim())) {\n setErrorTitle(\"This field can't be blank\");\n setTitle('');\n error = true;\n }\n\n if (!(overview && overview.trim())) {\n setErrorOverview(\"This field can't be blank\");\n setOverview('');\n error = true;\n }\n\n // handle errors in sections\n sections.forEach((section, index) => {\n if (!(section.title && section.title.trim()) && !section._destroy) {\n handleSections[index].errorTitle = \"This field can't be blank\";\n error = true;\n errorSections = true;\n }\n\n if (!(section.content && section.content.trim()) && !section._destroy) {\n handleSections[index].errorContent = \"This field can't be blank\";\n error = true;\n errorSections = true;\n }\n\n section.questions_attributes.forEach((input, ind) => {\n if (!(input.title && input.title.trim()) && !input._destroy) {\n handleSections[index].questions_attributes[ind].error = \"This field can't be blank\";\n error = true;\n errorSections = true;\n }\n });\n });\n\n if (errorSections) {\n scrollOnError();\n setSections([...handleSections]);\n }\n\n console.log(\"ERROR\", error);\n if (error) {\n scrollOnError();\n setLoading(false);\n } else {\n const sections_attributes = sections;\n\n sections_attributes.forEach((section) => {\n delete section['errorContent'];\n delete section['errorTitle'];\n\n section.questions_attributes.forEach((question) => delete question['error']);\n });\n\n const orderNumber = lesson ? lesson.order : numberOfLessons;\n const body = {\n lesson: {\n title: title.trim(),\n overview: overview,\n user_type: 'Admin',\n sections_attributes: sections_attributes,\n active: !!status,\n order: orderNumber,\n },\n };\n\n if (lesson) {\n api.updateLesson(courseId, lesson.id, body)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n } else {\n api.createLesson(courseId, body)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n }\n }\n }\n\n const scrollOnError = () => {\n document.body.scrollTop = 0; // For Safari\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\n }\n\n const setValues = (\n index,\n content,\n error,\n value,\n ) => {\n const newSections = sections;\n\n if (typeof content === 'object') {\n newSections[index][content[0]][content[1]][content[2]] = value;\n newSections[index][error[0]][error[1]][error[2]] = '';\n } else {\n newSections[index][content] = value;\n newSections[index][error] = '';\n }\n\n setSections([...newSections]);\n }\n\n const handleDeleteInput = (index, ind) => {\n const newSections = sections;\n\n if (lesson) {\n newSections[index].questions_attributes[ind]._destroy = true;\n } else {\n newSections[index].questions_attributes.splice(ind, 1);\n }\n\n setSections([...newSections]);\n }\n\n const handleDeleteSection = (index) => {\n const newSections = sections;\n\n if (lesson) {\n newSections[index]._destroy = true;\n } else {\n newSections.splice(index, 1);\n }\n\n setSections([...newSections]);\n }\n\n return (\n
\n
\n \n \n\n
\n
\n {\n setTitle(value);\n setErrorTitle('');\n }}\n />\n\n setStatus(parseInt(value))}\n >\n \n \n \n
\n
\n\n {\n setOverview(text);\n setErrorOverview('');\n }}\n toolbarOptions={[\n ['style', ['style']],\n ['font', ['bold', 'italic', 'underline', 'clear']],\n ['para', ['ul', 'ol', 'paragraph']],\n ['table', ['table']],\n ['insert', ['link', 'picture', 'video']],\n ['view', ['codeview']],\n ]}\n />\n
\n\n {\n sections.map((section, index) => (\n \n {\n !(section._destroy) && (\n
\n
\n
{I18n.t('views.lessons.index.section.header')}
\n handleDeleteSection(index)}\n >\n \n
\n
\n\n
\n
\n setValues(index, 'title', 'errorTitle', value)}\n />\n
\n
\n\n setValues(index, 'content', 'errorContent', value)}\n toolbarOptions={[\n ['style', ['style']],\n ['font', ['bold', 'italic', 'underline', 'clear']],\n ['para', ['ul', 'ol', 'paragraph']],\n ['table', ['table']],\n ['insert', ['link', 'picture', 'video']],\n ['view', ['codeview']],\n ]}\n />\n\n {\n sections[index].questions_attributes.map((input, ind) => (\n
\n {\n !(sections[index].questions_attributes[ind]._destroy) && (\n \n
\n {\n setValues(\n index,\n ['questions_attributes', ind, 'title'],\n ['questions_attributes', ind, 'error'],\n value,\n );\n }}\n />\n\n
\n handleDeleteInput(index, ind)}\n >\n \n
\n
\n
\n
\n )\n }\n
\n ))\n }\n\n {\n const newSections = sections;\n newSections[index].questions_attributes.push({ title: '', error: '' });\n\n setSections([...newSections]);\n }}\n style={{ marginTop: '15px', padding: '5px', fontSize: '24px' }}\n >\n \n
{I18n.t('views.lessons.index.section.add_input')}
\n
\n \n )\n }\n \n ))\n }\n\n {\n const newSections = sections;\n\n newSections.push(createSection());\n setSections([...newSections]);\n }}\n style={{ marginBottom: '40px', fontSize: '24px' }}\n >\n \n
{I18n.t('views.lessons.index.section.add_section')}
\n \n\n \n \n {I18n.t('views.forms.submit')}\n { loading && }\n \n \n \n );\n}\n\nexport default CreateLesson;\n","import * as React from 'react';\ndeclare const I18n;\n\nimport { Lesson } from '../../../../types';\n\nimport Header from '../../../Header';\nimport BreadCrumb from '../../../BreadCrumb';\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n courseId: number,\n courseTitle?: string,\n lessons: Lesson[],\n userType?: string,\n },\n}\n\nconst IndexLesson: React.FunctionComponent = ({\n initialData: {\n courseId,\n courseTitle,\n lessons,\n userType,\n } }: Props): JSX.Element => {\n const isAdmin = !(userType && (userType === 'Learner' || userType === 'Facilitator'));\n\n const [lockedNumber, setLockedNumber] = React.useState(0);\n\n React.useEffect(() => {\n const lockedNumber = lessons.findIndex((lesson) => !lesson.completed);\n\n setLockedNumber(lockedNumber === -1 ? lessons.length : lockedNumber);\n }, []);\n\n const handleDelete = (id) => {\n if (confirm(I18n.t('views.forms.messaging.confirm_delete'))) {\n api.deleteLesson(courseId, id)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error('Error', error));\n }\n };\n\n const getIcon = (index) => {\n if (index < lockedNumber) {\n return 'fa-check-circle';\n } else if (index === lockedNumber) {\n return 'fa-play-circle';\n } else {\n return 'fa-lock';\n }\n }\n\n const getIconColor = (index) => {\n if (index < lockedNumber) {\n return '#5DBA19';\n } else if (index === lockedNumber) {\n return '#813091';\n } else {\n return '#505050';\n }\n }\n\n return (\n
\n \n\n \n\n {\n lessons.length > 0 ? (\n lessons.map((lesson, index) => (\n
\n {\n userType && (userType === 'Learner') && (\n \n )\n }\n\n {\n (index > lockedNumber && userType && (userType === 'Learner')) ? (\n
\n {lesson.title}\n
\n ) : (\n \n {lesson.lesson_type === 'quiz' ? 'Quiz: ' : '' }{lesson.title}\n \n )\n }\n
\n {\n (!userType || userType !== 'Learner') && lesson.lesson_type === 'quiz' &&\n View Stats\n }\n {\n isAdmin && (\n <>\n \n
handleDelete(lesson.id)}>
\n \n )\n }\n
\n
\n ))\n ) : (\n
{I18n.t('models.lesson.messaging.empty_state')}
\n )\n }\n
\n );\n}\nexport default IndexLesson;\n","import * as React from 'react';\ndeclare const I18n;\nimport { Collapse } from 'react-collapse';\nimport DOMPurify from 'dompurify/dist/purify.min';\n\nimport { Lesson } from '../../../../types';\n\nimport Filter from 'bad-words';\nimport Header from '../../../Header';\nimport BreadCrumb from '../../../BreadCrumb';\nimport Section from '../../../Section';\nimport Question from '../../../Question';\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n lesson: Lesson,\n courseId: number,\n courseLevel: number,\n isFacilitator: boolean\n },\n}\n\nconst ShowLesson: React.FunctionComponent = ({ initialData: { lesson, courseId, courseLevel, isFacilitator } }: Props): JSX.Element => {\n const [sectionsArray, setSectionsArray] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [badWordsError, setBadWordsError] = React.useState(false);\n const [isEdit, setIsEdit] = React.useState(false);\n const [filter] = React.useState(new Filter());\n const DOMPurifyConfig = {\n ADD_TAGS: ['iframe'],\n ADD_ATTR: ['target']\n };\n\n filter.removeWords('hui');\n\n React.useEffect(() => {\n const sectionArray = lesson.sections.map((section) => {\n const questions = section.questions.map((question) => {\n const hasValue = question.submission.length > 0;\n\n if (!isEdit && hasValue) {\n setIsEdit(true);\n }\n\n return ({\n value: hasValue ? question.submission[0].answer : '',\n error: '',\n id: hasValue ? question.submission[0].id : '',\n })}\n );\n\n return {\n isOpen: false,\n questions,\n };\n });\n\n setSectionsArray(sectionArray);\n }, []);\n\n const handleSubmit = () => {\n let error = false\n\n sectionsArray.forEach((section, index) => {\n section.questions.forEach((input, ind) => {\n if (!(input.value && input.value.trim() && (input.value.trim().length > 20))) {\n const newArray = sectionsArray;\n\n newArray[index].questions[ind].error = I18n.t('models.lesson.messaging.submission_length');\n\n setSectionsArray([...newArray]);\n section.isOpen = true;\n error = true\n } else {\n section.isOpen = false;\n }\n });\n });\n\n if (!error) {\n const submissions = [];\n\n lesson.sections.forEach((section, index) => {\n section.questions.forEach((question, ind) => {\n submissions.push({\n section_id: section.id,\n question_id: question.id,\n answer: sectionsArray[index].questions[ind].value,\n id: question.submission.length > 0 ? question.submission[0].id : ''\n })\n })\n })\n\n const body = {\n course_level: courseLevel,\n submissions,\n };\n\n if (isEdit) {\n api.updateSubmitLesson(courseId, lesson.id, body)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n } else {\n api.submitLesson(courseId, lesson.id, body)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n }\n } else {\n document.getElementById('section_1').scrollIntoView();\n setLoading(false);\n }\n }\n\n return (\n
\n
\n\n \n\n
\n \n\n \n\n {\n lesson.sections.map((section, index) => {\n return (\n \n 0}\n withBorder\n index={index+1}\n iconId={section.id}\n onArrowPress={() => {\n const newArray = sectionsArray;\n\n newArray[index].isOpen = !newArray[index].isOpen;\n\n setSectionsArray([...newArray]);\n }}\n />\n\n \n \n\n {\n section.questions.map((question, ind) => {\n return (\n
\n {\n if (filter.isProfane(value)) {\n const newArray = sectionsArray;\n\n newArray[index].questions[ind].error = I18n.t('models.lesson.messaging.bad_language');\n\n setSectionsArray([...newArray]);\n setBadWordsError(true);\n }\n }}\n isEdit={isEdit}\n isFacilitator={isFacilitator}\n onChange={(value) => {\n const newArray = sectionsArray;\n\n newArray[index].questions[ind].value = value;\n newArray[index].questions[ind].error = '';\n setSectionsArray([...newArray]);\n setBadWordsError(false);\n }}\n />\n { isEdit &&\n {I18n.t('models.lesson.messaging.no_edit')}\n }\n
\n )\n })\n }\n
\n
\n )}\n )\n }\n\n \n {\n isFacilitator ? (\n \n \n {I18n.t('models.lesson.messaging.back')}\n { loading && }\n \n \n ) : (\n \n {I18n.t('models.lesson.messaging.show')}\n { loading && }\n \n )}\n
\n \n \n );\n}\n\nexport default ShowLesson;\n","import * as React from 'react';\nimport _ from 'lodash'\nimport { Resource } from '../../../../types';\nimport TagPill from '../../../TagPill';\ndeclare const I18n;\n\ntype Props = {\n resource: Resource,\n isAdmin: boolean,\n resourceCategoryId: number | string,\n index: number,\n handleDelete(id: number): void,\n}\n\nconst ResourceListItem: React.FunctionComponent = ({\n resource,\n isAdmin,\n resourceCategoryId,\n index,\n handleDelete\n}: Props): JSX.Element => {\n const mod = index % 3;\n\n const formattedType = resource.resource_type == 'pdf' ? _.upperCase(resource.resource_type) : _.capitalize(resource.resource_type)\n\n const imageNode = (\n
\n {\n resource.cover_image_url ? (\n
\n ) : (\n
\n )\n }\n
\n );\n\n const resourceTypeData = () => {\n if (resource.resource_type === 'pdf') {\n return {\n icon: 'far fa-file-pdf'\n }\n } else if (resource.resource_type === 'link') {\n return {\n icon: 'far fa-link'\n }\n } else if (resource.resource_type === 'post') {\n return {\n icon: 'far fa-line-columns'\n }\n }\n }\n\n\n return (\n \n \n {imageNode}\n \n\n
\n \n
\n { I18n.t(`models.resource.types.${resource.resource_type}`)}\n
\n
\n\n
\n
\n
\n {resource.title}\n
\n {\n isAdmin && (\n
\n \n
handleDelete(resource.id)}>
\n
\n )\n }\n
\n\n {\n resource.length_estimate && (\n
\n \n {I18n.t('models.resource.attributes.duration')}: {resource.length_estimate}\n
\n )\n }\n\n {\n resource.tags && (\n
\n {\n resource.tags.map((tag) => {\n return (\n
\n { tag.name }\n
\n )\n })\n }\n
\n )\n }\n
\n
\n\n );\n}\n\nexport default ResourceListItem;\n","import * as React from 'react';\nimport _ from 'lodash'\nimport { Resource } from '../../../../types';\nimport TagPill from '../../../TagPill';\ndeclare const I18n;\n\ntype Props = {\n resource: Resource,\n isAdmin: boolean,\n resourceCategoryId: number | string,\n index: number,\n handleDelete(id: number): void,\n}\n\nconst ResourceListItem: React.FunctionComponent = ({\n resource,\n isAdmin,\n resourceCategoryId,\n index,\n handleDelete\n}: Props): JSX.Element => {\n\n const formattedType = resource.resource_type == 'pdf' ? _.upperCase(resource.resource_type) : _.capitalize(resource.resource_type)\n\n return (\n
\n Type: {formattedType}\n \n {resource.title}\n \n { resource.length_estimate && (\n {I18n.t('models.resource.attributes.duration')}: {resource.length_estimate}\n )}\n { resource.tags &&\n resource.tags.map((tag) => {\n return (\n \n )\n })\n }\n {\n isAdmin && (\n
\n \n
handleDelete(resource.id)}>
\n
\n )\n }\n
\n );\n}\n\nexport default ResourceListItem;\n","import * as React from 'react';\nimport Dropzone from 'react-dropzone';\ndeclare const I18n;\n\nimport { Resource, MediaFile } from '../../../../types';\n\nimport Header from '../../../Header';\nimport BreadCrumb from '../../../BreadCrumb';\nimport TextInput from '../../../inputs/TextInput';\nimport SelectInput from '../../../inputs/SelectInput';\nimport NoteInput from '../../../inputs/NoteInput';\nimport SingleFileUpload from '../../../forms/SingleFileUpload';\nimport TagListInput from '../../../../components/inputs/TagInput'\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n resource?: Resource,\n resourceCategoryId: number,\n resourceCategoryTitle?: string,\n tileImage: MediaFile,\n attachmentFile: MediaFile\n }\n}\n\nconst CreateResource: React.FunctionComponent = ({\n initialData: {\n resource,\n resourceCategoryId,\n resourceCategoryTitle,\n tileImage,\n attachmentFile\n },\n}: Props): JSX.Element => {\n const createSection = (section = null) => {\n // if it has a section then it is an update\n const newSection = ({\n title: section ? section.title : '',\n errorTitle: '',\n content: section ? section.content : '',\n errorContent: '',\n id: section ? section.id : null,\n });\n\n return newSection;\n };\n\n const [title, setTitle] = React.useState('');\n const [errorTitle, setErrorTitle] = React.useState('');\n\n const [lengthEstimate, setLengthEstimate] = React.useState('');\n\n const [resourceType, setResourceType] = React.useState('');\n\n const [resourceLink, setResourceLink] = React.useState('');\n const [errorResourceLink, setErrorResourceLink] = React.useState('');\n\n const [resourceFile, setResourceFile] = React.useState(null);\n const [errorResourceFile, setErrorResourceFile] = React.useState('');\n\n const [resourceBody, setResourceBody] = React.useState('');\n const [errorResourceBody, setErrorResourceBody] = React.useState('');\n\n const [loading, setLoading] = React.useState(false);\n\n const [sections, setSections] = React.useState([]);\n\n const [coverImage, setCoverImage] = React.useState(null);\n\n const [resourceTags, setResourceTags] = React.useState(null);\n\n React.useEffect(() => {\n // if it has a resource then it is an update\n if (resource) {\n let rst = 'upload'\n if (resource.resource_type == 'pdf') {\n rst = 'upload'\n } else if (resource.resource_type) {\n rst = resource.resource_type\n }\n\n setResourceType(rst);\n setTitle(resource.title);\n setResourceBody(resource.body);\n setLengthEstimate(resource.length_estimate);\n\n\n if (rst == 'link') {\n setResourceLink(resource.resource_url);\n }\n\n if (tileImage) {\n setCoverImage(tileImage);\n }\n\n if (attachmentFile) {\n setResourceFile(attachmentFile);\n }\n\n if (resource.tags) {\n setResourceTags(resource.tags)\n }\n\n const newSections = [];\n\n if (resource.sections) {\n resource.sections.forEach((section, index) => newSections.push(createSection(section)));\n }\n setSections(newSections);\n }\n }, []);\n\n const handleSubmit = () => {\n setLoading(true);\n\n let error = false;\n let errorSections = false;\n const handleSections = sections;\n\n if (!(title && title.trim())) {\n setErrorTitle(\"This field can't be blank\");\n setTitle('');\n error = true;\n }\n\n if (resourceType == 'link' && !(resourceLink && resourceLink.trim())) {\n setErrorResourceLink(\"This field can't be blank\");\n setResourceLink('');\n error = true;\n }\n\n if (resourceType == 'post' && !(resourceBody && resourceBody.trim())) {\n setErrorResourceBody(\"This field can't be blank\");\n setResourceBody('');\n error = true;\n }\n\n if (resourceType == 'upload' && !(resourceFile)) {\n setErrorResourceFile(\"This field can't be blank\");\n setResourceFile(null);\n error = true;\n }\n\n // handle errors in sections\n sections.forEach((section, index) => {\n if (!(section.title && section.title.trim()) && !section._destroy) {\n handleSections[index].errorTitle = \"This field can't be blank\";\n error = true;\n errorSections = true;\n }\n\n if (!(section.content && section.content.trim()) && !section._destroy) {\n handleSections[index].errorContent = \"This field can't be blank\";\n error = true;\n errorSections = true;\n }\n });\n\n if (errorSections) {\n scrollOnError();\n setSections([...handleSections]);\n }\n\n console.log(\"ERROR\", error);\n if (error) {\n scrollOnError();\n setLoading(false);\n } else {\n const sections_attributes = sections;\n\n sections_attributes.forEach((section) => {\n delete section['errorContent'];\n delete section['errorTitle'];\n });\n\n const body = {\n title: title.trim(),\n body: resourceBody,\n resource_category_id: resourceCategoryId,\n length_estimate: lengthEstimate,\n resource_type: resourceType,\n url: resourceLink\n };\n\n let formData = new FormData();\n\n Object.keys(body).forEach((key) => formData.append(`resource[${key}]`, body[key]))\n\n // handle cover image\n if (resource) {\n if (coverImage) {\n if (tileImage && tileImage === coverImage) {\n formData.append(\"resource[cover_image]\", JSON.stringify(tileImage));\n } else {\n formData.append(\"resource[cover_image]\", coverImage[0]);\n }\n } else if (tileImage && !coverImage) {\n formData.append(\"resource[remove_cover_image]\", '1');\n }\n } else if (coverImage) {\n formData.append(\"resource[cover_image]\", coverImage[0]);\n }\n\n // handle resource pdf file\n if (resource) {\n if (resourceFile) {\n if (attachmentFile && attachmentFile === resourceFile) {\n formData.append(\"resource[file]\", JSON.stringify(attachmentFile));\n } else {\n formData.append(\"resource[file]\", resourceFile[0]);\n }\n } else if (attachmentFile && !resourceFile) {\n formData.append(\"resource[remove_file]\", '1');\n }\n } else if (resourceFile) {\n formData.append(\"resource[file]\", resourceFile[0]);\n }\n\n // Handle secton attributes data\n sections_attributes.forEach((section) => {\n formData.append('resource[sections_attributes][][title]', section.title)\n formData.append('resource[sections_attributes][][content]', section.content)\n if (section.id) {\n formData.append('resource[sections_attributes][][id]', section.id)\n }\n if (section._destroy) {\n formData.append('resource[sections_attributes][][_destroy]', \"true\")\n }\n });\n\n if (resourceTags) {\n resourceTags.forEach(tag => {\n formData.append('resource[tag_list][]', tag['name'])\n });\n }\n\n if (resource && resource.id) {\n api.updateResource(resourceCategoryId, resource.id, formData)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n } else {\n api.createResource(resourceCategoryId, formData)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error(\"Error: \", error));\n }\n }\n }\n\n const scrollOnError = () => {\n document.body.scrollTop = 0; // For Safari\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\n }\n\n const setValues = (\n index,\n content,\n error,\n value,\n ) => {\n const newSections = sections;\n\n if (typeof content === 'object') {\n newSections[index][content[0]][content[1]][content[2]] = value;\n newSections[index][error[0]][error[1]][error[2]] = '';\n } else {\n newSections[index][content] = value;\n newSections[index][error] = '';\n }\n\n setSections([...newSections]);\n }\n\n const handleDeleteSection = (index) => {\n const newSections = sections;\n\n if (resource) {\n newSections[index]._destroy = true;\n } else {\n newSections.splice(index, 1);\n }\n\n setSections([...newSections]);\n }\n\n return (\n
\n
\n \n \n\n
\n
\n {\n setTitle(value);\n setErrorTitle('');\n }}\n />\n {\n setLengthEstimate(value);\n }}\n />\n
\n
\n\n
\n
\n setResourceType(value)}\n >\n \n \n \n \n\n {/* PDF File Upload */}\n { (resourceType == 'upload' || resourceType == 'pdf' || resourceType == 'post') && (\n
\n {\n setResourceFile(value);\n setErrorResourceFile('');\n }}\n onDelete={() => {\n setResourceFile(null);\n }}\n />\n
\n )}\n\n {/* Link Input */}\n { (resourceType == 'link') && (\n {\n setResourceLink(value);\n setErrorResourceLink('');\n }}\n className=\"required\"\n />\n )}\n\n
\n
\n\n
\n {\n setCoverImage(value)\n }}\n onDelete={() => {\n setCoverImage(null);\n }}\n required={false}\n />\n
\n\n\n
\n \n setResourceTags(value)}\n />\n
\n\n { resourceType == 'post' && (\n {\n setResourceBody(text);\n setErrorResourceBody('');\n }}\n toolbarOptions={[\n ['style', ['style']],\n ['font', ['bold', 'italic', 'underline', 'clear']],\n ['para', ['ul', 'ol', 'paragraph']],\n ['table', ['table']],\n ['insert', ['link', 'picture', 'video']],\n ['view', ['codeview']],\n ]}\n />\n )}\n\n\n { resourceType == 'post' &&\n sections.map((section, index) => (\n \n {\n !(section._destroy) && (\n
\n
\n
{I18n.t('views.lessons.index.section.header')}
\n handleDeleteSection(index)}\n >\n \n
\n
\n\n
\n
\n setValues(index, 'title', 'errorTitle', value)}\n />\n
\n
\n\n setValues(index, 'content', 'errorContent', value)}\n toolbarOptions={[\n ['style', ['style']],\n ['font', ['bold', 'italic', 'underline', 'clear']],\n ['para', ['ul', 'ol', 'paragraph']],\n ['table', ['table']],\n ['insert', ['link', 'picture', 'video']],\n ['view', ['codeview']],\n ]}\n />\n
\n )\n }\n
\n ))\n }\n\n
\n\n { resourceType == 'post' && (\n {\n const newSections = sections;\n\n newSections.push(createSection());\n setSections([...newSections]);\n }}\n style={{ marginBottom: '40px', fontSize: '24px' }}\n >\n \n
{I18n.t('views.lessons.index.section.add_section')}
\n \n )}\n\n \n \n {I18n.t('views.forms.submit')}\n { loading && }\n \n \n \n );\n}\n\nexport default CreateResource;\n","import * as React from 'react';\nimport _ from 'lodash';\ndeclare const I18n;\n\nimport { Resource } from '../../../../types';\n\nimport Header from '../../../Header';\nimport ResourceListItem from '../../components/list_item/index'\nimport ResourceCardItem from '../../components/card_item/index'\nimport BreadCrumb from '../../../BreadCrumb';\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n resourceCategoryId: number,\n resourceCategoryTitle?: string,\n resourceCategorySubtitle?: string,\n resources: Resource[],\n userType?: string,\n },\n}\n\nconst IndexResource: React.FunctionComponent = ({\n initialData: {\n resourceCategoryId,\n resourceCategoryTitle,\n resourceCategorySubtitle,\n resources,\n userType,\n } }: Props): JSX.Element => {\n const isAdmin = !(userType && (userType === 'Learner' || userType === 'Facilitator'));\n\n const [displayType, setDisplayType] = React.useState('card');\n\n const handleDelete = (id) => {\n if (confirm(I18n.t('views.forms.messaging.confirm_delete'))) {\n api.deleteResource(resourceCategoryId, id)\n .then((res) => window.location.href = res.url)\n .catch((error) => console.error('Error', error));\n }\n };\n\n return (\n
\n \n\n \n\n {/*
    \n
  • setDisplayType('card')} >Card View
  • \n
  • setDisplayType('list')} >List View
  • \n
*/}\n
\n {\n resources.length > 0 ? (\n resources.map((resource, index) => (\n displayType == 'card' ?\n handleDelete(resource.id)}\n isAdmin={isAdmin}\n /> :\n handleDelete(resource.id)}\n isAdmin={isAdmin}\n />\n ))\n ) : (\n
{I18n.t('models.resource.messaging.empty_state')}
\n )\n }\n
\n
\n );\n}\nexport default IndexResource;\n","import * as React from 'react';\ndeclare const I18n;\nimport { Collapse } from 'react-collapse';\nimport DOMPurify from 'dompurify/dist/purify.min';\n\nimport { Resource } from '../../../../types';\n\nimport Filter from 'bad-words';\nimport Header from '../../../Header';\nimport BreadCrumb from '../../../BreadCrumb';\nimport Section from '../../../Section';\n\ntype Props = {\n initialData: {\n resource: Resource,\n resourceCategoryId: number,\n resourceCategoryTitle: string\n },\n}\n\nconst ShowLesson: React.FunctionComponent = ({ initialData: { resource, resourceCategoryId, resourceCategoryTitle } }: Props): JSX.Element => {\n const [sectionsArray, setSectionsArray] = React.useState([]);\n const DOMPurifyConfig = {\n ADD_TAGS: ['iframe'],\n ADD_ATTR: ['target']\n };\n\n React.useEffect(() => {\n const sectionArray = resource.sections.map((section) => {\n return {\n isOpen: false\n };\n });\n\n setSectionsArray(sectionArray);\n }, []);\n\n return (\n
\n
\n\n \n\n
\n \n\n \n\n {\n resource.sections.map((section, index) => {\n return (\n \n 0}\n withBorder\n index={index+1}\n iconId={section.id}\n onArrowPress={() => {\n const newArray = sectionsArray;\n\n newArray[index].isOpen = !newArray[index].isOpen;\n\n setSectionsArray([...newArray]);\n }}\n />\n\n \n \n \n
\n )}\n )\n }\n
\n \n );\n}\n\nexport default ShowLesson;\n","import * as React from 'react';\nimport _ from 'lodash'\ndeclare const I18n;\n\ntype Props = {\n title: string,\n description: string,\n targetRole: string,\n index: number,\n id: number,\n image?: string,\n isFacilitator?: boolean,\n isLearner?: boolean,\n handleDelete(id: number): void,\n}\n\nconst CardItem: React.FunctionComponent = ({\n title,\n description,\n targetRole,\n index,\n id,\n handleDelete,\n image,\n isFacilitator,\n isLearner,\n}: Props): JSX.Element => {\n const mod = index % 3;\n let levelText = `${_.capitalize(targetRole)}`;\n\n const isAdmin = !(isLearner || isFacilitator);\n\n const imageNode = (\n
\n {\n image ? (\n
\n ) : (\n
\n )\n }\n
\n );\n\n return (\n \n \n {imageNode}\n \n\n {\n levelText && (\n
\n \n
\n {levelText}\n
\n
\n )\n }\n\n
\n
\n
{title}
\n {\n isAdmin && (\n
\n \n
handleDelete(id)}>
\n
\n )\n }\n
\n
\n
{description}
\n
\n
\n
\n );\n}\n\nexport default CardItem;\n","import * as React from 'react';\ndeclare const I18n;\n\nimport { ResourceCategory, MediaFile } from '../../../../types';\n\nimport CardItem from '../../components/card_item';\nimport Header from '../../../Header';\nimport BreadCrumb from '../../../BreadCrumb';\n\nimport api from '../../../../api';\n\ntype Props = {\n initialData: {\n resource_categories: ResourceCategory[],\n image: MediaFile,\n userType?: string,\n userLevel?: number,\n }\n}\n\nconst IndexResourceCategory: React.FunctionComponent = ({\n initialData: {\n resource_categories,\n userType,\n userLevel,\n } }: Props): JSX.Element => {\n const [resourceCategoryList, setResourceCategoryList] = React.useState(resource_categories);\n const isAdmin = !(userType && (userType === 'Learner' || userType === 'Facilitator'));\n\n const handleDelete = (id) => {\n if (confirm(I18n.t('views.forms.messaging.confirm_delete'))) {\n api.deleteResourceCategory(id)\n .then((res) => {\n if (! res.error) {\n setResourceCategoryList(resourceCategoryList.filter((item) => item.id !== id));\n }\n window.location.href = res.url;\n })\n .catch((error) => console.error('Error', error));\n }\n }\n\n return (\n
\n \n\n \n\n
\n {\n resourceCategoryList.length > 0 ? (\n <>\n {\n resourceCategoryList.map((row, index) => (\n \n ))\n }\n \n ) : (\n
{I18n.t('models.resource_category.messaging.empty_state')}
\n )\n }\n
\n
\n );\n}\n\nexport default IndexResourceCategory;\n","declare const I18n\n\nimport * as React from 'react'\nimport { ResourceCategory } from '../../types'\n\ntype Props = {\n category: ResourceCategory\n onClick?: (event: React.MouseEvent) => void\n}\n\nclass CategoryTile extends React.Component {\n render () {\n return (\n
\n {\n this.props.category.cover_image_url\n &&\n
\n }\n
\n
\n
\n
\n \n {I18n.t('models.resource.attributes.category')}\n
\n {this.props.category.name}\n
\n
\n\n
\n
\n
\n
\n
\n
\n )\n }\n}\n\nexport default CategoryTile","declare const I18n\ndeclare const axios\naxios.defaults.timeout = 10000;\n\nimport * as React from 'react'\n\nimport { Tag, Resource, ResourceCategory } from '../../types'\nimport { PaginationMetadata } from '../tables/UberTable'\nimport CategoryTile from './CategoryTile'\nimport ResourceTile from './ResourceTile'\n\nconst debounce = require('lodash/debounce')\nconst qs = require('qs')\n\ntype Props = {\n categories: ResourceCategory[]\n show_new_cta: boolean,\n for_learners: boolean,\n}\n\ntype State = {\n resources: { [key: string]: Resource[] }\n metadata: PaginationMetadata\n filterQuery: string\n selectedCategory: null | ResourceCategory\n sortKey: string\n sortDirection: string\n tags: Tag[]\n selectedTag: null | Tag\n selectedLevel: string\n loading: boolean\n error: boolean\n showNewCta: boolean\n}\n\nclass ResourcesGrid extends React.Component {\n constructor (props: Props) {\n super(props)\n\n this.state = {\n resources: {},\n metadata: {\n items: 0,\n pages: 0,\n page: 1\n },\n filterQuery: '',\n\n selectedCategory: null,\n selectedTag: null,\n selectedLevel: '',\n\n sortKey: 'title',\n sortDirection: 'asc',\n\n tags: [],\n\n showNewCta: this.props.show_new_cta,\n loading: false,\n error: false\n }\n\n let newState = this.stateFromAnchor()\n this.state = { ...this.state, ...newState }\n\n window.addEventListener('popstate', this.handlePopState.bind(this))\n }\n\n handlePopState () {\n const anchorState = this.stateFromAnchor()\n\n if (window.location.hash.startsWith('#grid')) {\n this.setState(anchorState, () => this.fetchPage())\n } else {\n this.setState({\n selectedCategory: null,\n selectedTag: null,\n selectedLevel: ''\n })\n }\n }\n\n componentDidMount () {\n if (this.state.selectedCategory) {\n this.fetchPage()\n }\n }\n\n stateToAnchor () {\n const anchorState = {\n page: this.state.metadata.page,\n query: this.state.filterQuery,\n category: this.state.selectedCategory?.id,\n level: this.state.selectedLevel\n }\n\n let anchorString = 'grid&' + Object.entries(anchorState).map(([key, value]) => {\n if (value && value !== '') {\n return `${key}=${value}`\n }\n }).filter(Boolean).join('&')\n\n window.location.hash = anchorString\n }\n\n stateFromAnchor () {\n if (window.location.hash.length === 0) return\n\n let parsedAnchor = window.location.hash.split('&').map((e) => e.split('='))\n const anchorState = parsedAnchor.reduce((obj, [k, v]) => (obj[k] = v, obj), {}) as any\n\n let newState = { metadata: this.state.metadata }\n newState['metadata']['page'] = anchorState.page\n newState['filterQuery'] = anchorState.filter || false\n newState['selectedCategory'] = anchorState.category ? this.props.categories.find((c) => c.id === parseInt(anchorState.category, 10)) : false\n newState['selectedLevel'] = anchorState.level || ''\n\n return newState\n }\n\n async fetchPage (page?: number) {\n this.setState({\n loading: true\n })\n\n let pageNumber = page || this.state.metadata.page\n\n let params = {\n type: 'resource',\n page: pageNumber,\n conditions: {}\n } as any\n\n if (this.state.filterQuery) {\n params.query = this.state.filterQuery\n }\n\n if (this.state.selectedCategory) {\n params.conditions.resource_category_id = this.state.selectedCategory.id\n }\n\n if (this.state.selectedLevel !== '') {\n params.conditions.hackergal_level = this.state.selectedLevel\n }\n\n if (this.state.sortKey) {\n params.order_by = this.state.sortKey\n params.order_dir = this.state.sortDirection\n }\n\n if (this.state.filterQuery) {\n params.query = this.state.filterQuery\n }\n\n if (this.state.selectedTag) {\n params.tags = this.state.selectedTag.name\n }\n\n let queryParams = qs.stringify(params, { encode: false });\n let url = `/search?${queryParams}`\n\n try {\n const request = await axios.get(url)\n const response = request.data\n\n let newResources = {}\n if (this.state.selectedCategory) {\n newResources[this.state.selectedCategory.id] = response.results\n }\n\n this.setState({\n resources: { ...this.state.resources, ...newResources },\n metadata: response.metadata\n }, () => {\n this.stateToAnchor()\n\n if (this.state.selectedCategory.id) {\n const tagsHash = this.state.resources[this.state.selectedCategory.id].flatMap(result => result.tags).reduce((obj, tag) => {\n obj[tag.id] = tag\n return obj\n }, {})\n const tags = Object.values(tagsHash) as Tag[]\n\n this.setState({ tags })\n }\n })\n\n } catch (err) {\n this.setState({ error: true })\n console.log(`ResourceGrid fetchPage: `, err)\n }\n }\n\n selectCategory (id: number | null) {\n this.setState({\n tags: [],\n selectedTag: null,\n selectedLevel: id ? this.state.selectedLevel : '',\n selectedCategory: this.props.categories.find((category) => category.id === id)\n }, async () => {\n this.stateToAnchor()\n })\n }\n\n // selectTag (id: number) {\n // this.setState({\n // selectedTag: this.state.tags.find((tag) => tag.id === id)\n // }, () => {\n // this.stateToAnchor()\n // })\n // }\n\n selectLevel (id: string) {\n let levelToSet\n if (id === '') {\n levelToSet = ''\n } else {\n levelToSet = parseInt(id, 10)\n }\n\n this.setState(\n {\n selectedLevel: levelToSet\n }, () => {\n this.stateToAnchor()\n })\n }\n\n selectResource (resource: Resource) {\n if (resource.resource_type == \"pdf\" || resource.resource_type == 'link') {\n var win = window.open(resource.resource_url, '_blank');\n win.focus();\n } else {\n window.location.href = resource.resource_url\n }\n }\n\n renderCategories () {\n return (\n
\n {\n this.props.categories.length === 0\n ? this.emptyCategoryState()\n : this.props.categories.map((category) => this.selectCategory(category.id)}/> )\n }\n
\n )\n }\n\n showResource (resource) {\n return resource.permissions.view\n }\n\n renderResources () {\n return (\n
\n {\n this.state.resources[this.state.selectedCategory.id]\n ?\n (\n // FIX ME: this should be updated to check if the length of resources visible to the user type / level is 0 instead of just the length in general.\n // otherwise the empty state will never show\n this.state.resources[this.state.selectedCategory.id].length === 0\n ? this.emptyResourcesState()\n : this.state.resources[this.state.selectedCategory.id].map((resource) =>\n this.showResource(resource)\n ? this.selectResource(resource)} />\n : ''\n )\n )\n :\n this.loadingState()\n }\n
\n )\n }\n\n emptyResourcesState () {\n return (\n
\n
{I18n.t('models.resource.messaging.empty_state')}
\n
\n )\n }\n\n emptyCategoryState () {\n return (\n
\n
{I18n.t('models.resource.messaging.no_categories')}
\n
\n )\n }\n\n loadingState() {\n return (\n
\n
{I18n.t('views.common.loading')}
\n
\n )\n }\n\n render () {\n return (\n
\n { this.state.showNewCta &&\n \n }\n {\n this.state.selectedCategory\n ?\n

\n {I18n.t('models.resource.attributes.category')}: {this.state.selectedCategory.name}\n
{ this.selectCategory(null) }}>\n \n
\n

\n :\n

{ I18n.t('models.resource.messaging.categories') }

\n }\n\n
\n {/* {\n this.state.tags.length > 0\n &&\n
\n \n \n
\n } */}\n\n {\n this.state.selectedCategory &&\n
\n \n \n
\n }\n
\n\n {\n this.state.selectedCategory\n ?\n this.renderResources()\n :\n this.renderCategories()\n }\n
\n )\n }\n}\n\nexport default ResourcesGrid","declare const I18n\n\nimport * as React from 'react'\nimport { parseISO, format } from 'date-fns'\nimport { Resource, ResourceCategory } from '../../types'\n\ntype Props = {\n resource: Resource,\n resourceCategory: ResourceCategory,\n onClick?: (event: React.MouseEvent) => void\n}\n\nclass ResourceTile extends React.Component {\n\n date () {\n let date = parseISO(this.props.resource.updated_at)\n return format(date, 'MM.dd.yyyy')\n }\n\n htmlMeta () {\n if (this.props.resource.resource_type === 'pdf') {\n return {\n wrapper: 'resource-card-pdf',\n name: I18n.t('models.resource.types.pdf'),\n icon: 'far fa-file-pdf'\n }\n } else if (this.props.resource.resource_type === 'link') {\n return {\n wrapper: 'resource-card-link',\n name: I18n.t('models.resource.types.link'),\n icon: 'far fa-link'\n }\n } else if (this.props.resource.resource_type === 'youtube') {\n return {\n wrapper: 'resource-card-video',\n name: I18n.t('models.resource.types.link'),\n icon: 'far fa-video'\n }\n } else if (this.props.resource.resource_type === 'post') {\n return {\n wrapper: 'resource-card-post',\n name: I18n.t('models.resource.types.post'),\n icon: 'far fa-line-columns'\n }\n }\n }\n\n coverImage () {\n if (this.props.resource.hackergal_level === 0) {\n return '/resources/launchpad_cover.png'\n } else if (this.props.resource.hackergal_level === 1) {\n return '/resources/level_1_cover.png'\n } else if (this.props.resource.hackergal_level === 2) {\n return '/resources/level_2_cover.png'\n } else if (this.props.resource.hackergal_level === 3) {\n return '/resources/level_3_cover.png'\n } else if (this.props.resource.hackergal_level === 4) {\n return '/resources/level_4_cover.png'\n } else {\n return '/resources/all_levels.png'\n }\n }\n\n canEdit () {\n return this.props.resource.permissions && this.props.resource.permissions.edit && this.props.resource.edit_url\n }\n\n canDelete () {\n return this.props.resource.permissions && this.props.resource.permissions.delete && this.props.resource.delete_url\n }\n\n clickEdit (e) {\n e.stopPropagation()\n window.location.href = this.props.resource.edit_url\n }\n\n hasTargetAndLevel () {\n return Boolean(this.props.resourceCategory.target_role && this.props.resource.hackergal_level_label)\n }\n\n formattedRole () {\n return this.props.resourceCategory.target_role.charAt(0).toUpperCase() + this.props.resourceCategory.target_role.slice(1);\n }\n\n render () {\n return (\n
\n
\n {\n this.canEdit()\n &&\n
\n { this.formattedRole() }\n {\n this.hasTargetAndLevel() &&\n - \n }\n { this.props.resource.hackergal_level_label }\n
\n }\n
\n\n
\n\n
\n
\n\n
\n \n {this.htmlMeta().name }\n
\n\n {this.props.resource.title}\n
\n
\n\n
\n { this.date() }\n \n {\n this.canEdit()\n &&\n \n \n \n }\n  \n {\n this.canDelete()\n &&\n \n \n \n }\n \n
\n
\n
\n )\n }\n}\n\nexport default ResourceTile\n","import * as React from 'react'\nimport Slider from \"react-slick\";\n\n// Import css files\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport { Announcement, Message } from '@/types'\n\ntype Props = {\n announcements: Array\n}\n\ntype State = {\n initialSettings: {}\n}\n\nclass FeaturedAnnouncementSlider extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n initialSettings: {\n dots: true,\n autoplay: true,\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }\n }\n\n render () {\n return (\n \n {this.props.announcements.map((announcement, index) => {\n if (announcement.view_url && announcement.header_image_url) {\n return (\n \n \n \n )\n }\n\n return null\n }, this)}\n \n )\n }\n}\n\nexport default FeaturedAnnouncementSlider","import * as React from 'react'\nimport { UberTable, RowDefinition, CtaDefinition } from './UberTable'\nimport { Announcement } from '../../types'\ndeclare const I18n\n\ntype Props = {\n cta?: CtaDefinition,\n for_learners?: boolean,\n includeDeleted?: boolean\n}\n\nclass AnnouncementsTable extends React.Component {\n private rowDefinition: RowDefinition[]\n\n constructor(props: Props) {\n super(props)\n\n this.rowDefinition =\n this.props.for_learners ?\n [\n {\n title: I18n.t('models.announcement.attributes.post_date'),\n attribute_key: 'created_at',\n sort_key: 'created_at'\n },\n {\n title: I18n.t('models.common.title'),\n attribute_key: 'title',\n sort_key: 'title',\n render: (announcement: Announcement) => {\n return {announcement.title}\n }\n },\n {\n title: I18n.t('models.announcement.attributes.author'),\n attribute_key: 'author',\n sort_key: 'author'\n }\n ]\n : [\n {\n title: I18n.t('models.common.title'),\n attribute_key: 'title',\n sort_key: 'title',\n render: (announcement: Announcement) => {\n return {announcement.title}\n }\n },\n {\n title: I18n.t('models.announcement.attributes.featured'),\n attribute_key: 'is_featured',\n textAlignment: 'center',\n render: (announcement: Announcement) => {\n return announcement.is_featured ? I18n.t('views.common.yes') : I18n.t('views.common.no')\n }\n },\n {\n title: I18n.t('models.common.language'),\n attribute_key: 'language',\n textAlignment: 'center',\n render: (announcement: Announcement) => {\n return announcement.language == 'en' ? I18n.t('views.common.english') : I18n.t('views.common.french')\n }\n },\n {\n title: I18n.t('models.announcement.attributes.expiration_date'),\n attribute_key: 'expiration_date',\n textAlignment: 'center',\n }\n ]\n }\n\n render() {\n return \n rowDefinition={this.rowDefinition}\n searchType='announcement'\n {...this.props}\n />\n }\n}\n\nexport default AnnouncementsTable\n","declare const I18n\n\nimport * as React from 'react'\nimport { UberTable, RowDefinition, CtaDefinition } from './UberTable'\nimport { Facilitator } from '@/types'\n\ntype Props = {\n permissions?: {\n view: boolean\n edit: boolean\n delete: boolean\n toggle_active_status: boolean\n }\n show_active_status_option: boolean\n is_admin: boolean\n}\n\nclass FacilitatorsTable extends React.Component> {\n private rowDefinition: RowDefinition[]\n\n constructor (props: Props) {\n super(props)\n\n this.rowDefinition = [\n {\n title: I18n.t('models.common.name'),\n attribute_key: 'full_name',\n sort_key: 'first_name',\n render: (facilitator: Facilitator) => {\n let url = facilitator.permissions && facilitator.permissions.edit && !facilitator.is_deleted\n ? this.props.is_admin ? facilitator.admin_edit_url : facilitator.edit_url\n : null\n\n return url\n ? \n {facilitator.name}\n \n : \n {facilitator.name}\n \n }\n },\n {\n title: I18n.t('models.organization.attributes.organization'),\n attribute_key: 'organization_name',\n sort_key: 'organization_name',\n render: (facilitator: Facilitator) => {\n return this.props.is_admin ?\n {facilitator.organization_name}\n :\n {facilitator.organization_name}\n }\n },\n {\n title: I18n.t('models.common.type'),\n attribute_key: 'is_champion',\n sort_key: 'is_champion',\n textAlignment: 'center',\n render: (facilitator: Facilitator) => {\n return facilitator.is_champion ?\n
{I18n.t('models.facilitator.attributes.champion')}
\n :\n
{I18n.t('models.facilitator.attributes.supporting')}
\n }\n },\n {\n title: I18n.t('models.common.status'),\n attribute_key: 'active',\n sort_key: 'active',\n render: (facilitator: Facilitator) => {\n return facilitator.is_active\n ? \n \n \n : \n \n \n }\n }\n ]\n }\n\n render () {\n return \n rowDefinition={this.rowDefinition}\n searchType='facilitator'\n { ...this.props }\n />\n }\n}\n\nexport default FacilitatorsTable\n","declare const I18n\n\nimport * as React from 'react'\nimport { UberTable, RowDefinition } from './UberTable'\nimport { Learner } from '../../types'\n\ntype Props = {}\n\nclass LearnersTable extends React.Component> {\n private rowDefinition: RowDefinition[]\n\n constructor(props: Props) {\n super(props)\n\n this.rowDefinition = [\n {\n title: I18n.t('models.common.name'),\n attribute_key: 'name',\n sort_key: 'name',\n render: (learner: Learner) => {\n return !learner.is_deleted\n ? {learner.name}\n : learner.name\n }\n },\n {\n title: I18n.t('models.user.attributes.username'),\n attribute_key: 'username',\n sort_key: 'username'\n },\n {\n title: I18n.t('models.common.status'),\n attribute_key: 'active',\n sort_key: 'active',\n render: (learner: Learner) => {\n return learner.is_active\n ? \n \n \n : \n \n \n }\n },\n {\n title: I18n.t('models.resource.attributes.level'),\n attribute_key: 'level',\n sort_key: 'level',\n },\n {\n title: I18n.t('models.learner.attributes.current_organization'),\n attribute_key: 'organization_name',\n render: (learner: Learner) => {\n return learner.organization_name\n ? learner.organization_name\n : 'N/A'\n }\n }\n ]\n }\n\n render() {\n return \n rowDefinition={this.rowDefinition}\n searchType='learner'\n {...this.props}\n />\n }\n}\n\nexport default LearnersTable\n","import * as React from 'react'\nimport { UberTable, RowDefinition } from './UberTable'\nimport { MediaFile } from '../../types'\ndeclare const I18n\n\ntype Props = { }\n\nclass MediaFilesTable extends React.Component {\n private rowDefinition: RowDefinition[]\n\n constructor(props: Props) {\n super(props)\n\n this.rowDefinition = [\n {\n title: I18n.t('models.common.name'),\n attribute_key: 'name',\n sort_key: 'name',\n render: (file: MediaFile) => {\n return \n }\n },\n {\n title: I18n.t('models.media_file.attributes.file_url'),\n attribute_key: 'file_url',\n render: (file: MediaFile) => {\n return (\n
\n { I18n.t('views.forms.copy') }\n
\n )\n }\n },\n ]\n }\n\n isPDF (fileName) {\n return fileName.includes('.pdf')\n }\n\n render() {\n return \n rowDefinition={this.rowDefinition}\n searchType='media_file'\n {...this.props}\n />\n }\n}\n\nexport default MediaFilesTable\n","import * as React from 'react'\nimport { UberTable, RowDefinition, CtaDefinition } from './UberTable'\nimport { Message } from '../../types'\ndeclare const I18n\n\ntype Props = {\n cta?: CtaDefinition\n}\n\nclass MessagesTable extends React.Component {\n private rowDefinition: RowDefinition[]\n\n constructor(props: Props) {\n super(props)\n\n this.rowDefinition = [\n {\n title: I18n.t('models.common.title'),\n attribute_key: 'title',\n sort_key: 'title',\n render: (message: Message) => {\n return message.read\n ? {message.title}\n : {message.title}\n }\n },\n {\n title: I18n.t('models.announcement.attributes.featured'),\n attribute_key: 'is_featured',\n textAlignment: 'center',\n render: (message: Message) => {\n return message.is_featured ? I18n.t('views.common.yes') : I18n.t('views.common.no')\n }\n },\n {\n title: I18n.t('models.message.attributes.received_date'),\n attribute_key: 'created_at',\n textAlignment: 'center',\n render: (message: Message) => {\n return message.created_at_javascript\n }\n }\n ]\n }\n\n render() {\n return \n rowDefinition={this.rowDefinition}\n searchType='message'\n {...this.props}\n />\n }\n}\n\nexport default MessagesTable\n","declare const I18n\n\nimport * as React from 'react'\nimport { UberTable, RowDefinition } from './UberTable'\nimport { Note } from '../../types'\n\nimport { parseISO, format } from 'date-fns'\n\ntype Props = {}\n\nclass NotesTable extends React.Component {\n private rowDefinition: RowDefinition[]\n\n constructor(props: Props) {\n super(props)\n\n this.rowDefinition = [\n {\n title: I18n.t('models.announcement.attributes.author'),\n attribute_key: 'author_name',\n sort_key: 'author_name'\n },\n {\n title: I18n.t('models.resource.attributes.date'),\n attribute_key: 'created_at',\n sort_key: 'created_at',\n render: (note: Note) => {\n let date = parseISO(note.created_at)\n return format(date, 'MM/dd/yyyy @ h:mmaa')\n }\n\n },\n {\n title: 'Note',\n attribute_key: 'body'\n }\n ]\n }\n\n render() {\n return \n rowDefinition={this.rowDefinition}\n searchType='note'\n {...this.props}\n />\n }\n}\n\nexport default NotesTable\n","declare const I18n\n\nimport * as React from 'react'\nimport { UberTable, RowDefinition } from './UberTable'\nimport { Organization } from '../../types'\nimport { parseISO, format } from 'date-fns'\n\ntype Props = { }\n\nclass OrganizationsTable extends React.Component {\n private rowDefinition: RowDefinition[]\n\n constructor(props: Props) {\n super(props)\n\n this.rowDefinition = [\n {\n title: I18n.t('models.common.name'),\n attribute_key: 'name',\n sort_key: 'name',\n render: (organization: Organization) => {\n return {organization.name}\n }\n },\n {\n title: I18n.t('models.common.location'),\n attribute_key: 'city',\n sort_key: 'city',\n render: (organization: Organization) => {\n return `${organization.city}, ${organization.province.full_name}`\n }\n },\n {\n title: I18n.t('models.learner.attributes.learners'),\n attribute_key: 'learners_count',\n sort_key: 'learners_count',\n textAlignment: 'center'\n },\n {\n title: I18n.t('views.common.type'),\n attribute_key: 'organization_type',\n sort_key: 'organization_type',\n textAlignment: 'center',\n render: (organization: Organization) => {\n return I18n.t('models.organization.organization_types.' + `${organization.organization_type}`)\n }\n },\n // {\n // title: I18n.t('models.common.language'),\n // attribute_key: 'language',\n // sort_key: 'language',\n // textAlignment: 'center',\n // render: (organization: Organization) => {\n // return organization.language == 'en' ? I18n.t('views.common.english') : I18n.t('views.common.french')\n // }\n // },\n {\n title: I18n.t('models.organization.attributes.registration_date'),\n attribute_key: 'created_at',\n sort_key: 'created_at',\n render: (organization: Organization) => {\n let date = parseISO(organization.created_at)\n return format(date, 'MM.dd.yyyy')\n }\n }\n ]\n }\n\n render() {\n return \n rowDefinition={this.rowDefinition}\n searchType='organization'\n showTags={true}\n {...this.props}\n />\n }\n}\n\nexport default OrganizationsTable\n","declare const I18n\ndeclare const axios\naxios.defaults.timeout = 10000;\n\nimport * as React from 'react'\nimport dig from 'object-dig'\nimport TagPill from '../TagPill'\nimport { Tag } from '../../types'\n\nconst debounce = require('lodash/debounce')\nconst qs = require('qs')\n\nexport type PaginationMetadata = {\n items: number\n pages: number\n page: number\n}\n\nexport type RowDefinition = {\n title: string\n attribute_key: string\n sort_key?: string\n textAlignment?: 'center'\n render?: (object: T) => JSX.Element | string\n}\n\nexport type CtaDefinition = {\n text: string\n url: string\n}\n\nexport type AdditionalOptions = (T) => JSX.Element\n\ntype SortDirection = 'asc' | 'desc'\n\ntype Props = {\n rowDefinition: RowDefinition[]\n additionalOptions?: AdditionalOptions\n searchType: string\n showTags?: boolean\n conditions?: {}\n includeDeleted?: boolean\n omitOptions?: boolean\n cta?: CtaDefinition\n show_active_status_option?: boolean\n is_admin?: boolean\n sort_key?: string\n per_page?: number | false\n}\n\ntype State = {\n firstFetched: boolean,\n results: T[],\n metadata: PaginationMetadata\n filterQuery: string\n filterTags: Tag[],\n sortDirection: SortDirection\n sortKey: string\n perPage: number | false\n searchType: string\n showTags?: boolean\n loading: boolean\n error: boolean,\n colSpanCount: number\n}\n\nexport class UberTable extends React.Component, State> {\n constructor (props: Props) {\n super(props)\n\n this.state = {\n firstFetched: false,\n results: [],\n searchType: this.props.searchType,\n showTags: this.props.showTags,\n metadata: {\n items: 0,\n pages: 0,\n page: 1\n } as PaginationMetadata,\n filterQuery: '',\n filterTags: [],\n sortDirection: 'desc',\n sortKey: this.props.sort_key || '',\n perPage: this.props.per_page || false,\n loading: false,\n error: false,\n colSpanCount: this.props.rowDefinition.length\n + Number(!this.props.omitOptions ? 1 : 0)\n + Number(this.props.showTags ? 1 : 0)\n }\n }\n\n componentDidMount () {\n this.fetchPage()\n }\n\n attributeValue (record, attribute_key: string) {\n let keys = attribute_key.split('.')\n return dig(record, ...keys)\n }\n\n movePage (delta: number) {\n let pageNumber: number\n const requestedPage = this.state.metadata.page + delta\n\n if (requestedPage < 1) {\n pageNumber = 1\n } else if (requestedPage >= this.state.metadata.pages) {\n pageNumber = this.state.metadata.pages\n } else {\n pageNumber = requestedPage\n }\n\n if (pageNumber == this.state.metadata.page) return\n\n this.fetchPage(requestedPage)\n }\n\n gotoPage (pageNumber: number) {\n const delta = pageNumber - this.state.metadata.page\n this.movePage(delta)\n }\n\n async fetchPage (page?: number) {\n this.setState({\n loading: true\n })\n\n let pageNumber = page || this.state.metadata.page\n\n try {\n let params = {\n type: this.state.searchType,\n page: pageNumber,\n } as any\n\n if (this.state.perPage) {\n params.per_page = this.state.perPage\n }\n\n if (this.state.sortKey) {\n params.order_by = this.state.sortKey\n params.order_dir = this.state.sortDirection\n }\n\n if (this.state.filterQuery) {\n params.query = this.state.filterQuery\n }\n\n if (this.state.filterTags.length > 0) {\n params.tags = this.state.filterTags.map((t) => t.name).join(',')\n }\n\n if (this.props.conditions) {\n params.conditions = this.props.conditions\n }\n\n if (this.props.includeDeleted) {\n params.include_deleted = true\n }\n\n let queryParams = qs.stringify(params, { encode: false });\n let url = `/search?${queryParams}`\n\n const request = await axios.get(url)\n const response = request.data\n\n this.setState({\n firstFetched: true,\n results: response.results,\n metadata: response.metadata\n })\n } catch (err) {\n this.setState({ error: true })\n console.log(`UberTable fetchPage: `, err)\n }\n\n this.setState({\n loading: false\n })\n }\n\n filterCollection = debounce(function (query: string) {\n this._filterCollection(query)\n }, 300)\n\n _filterCollection (query: string) {\n this.setState({\n filterQuery: query\n }, () => {\n this.fetchPage()\n })\n }\n\n sortCollection (attribute_key: string, direction: SortDirection) {\n this.setState({\n sortDirection: direction,\n sortKey: attribute_key\n }, () => {\n this.fetchPage()\n })\n }\n\n invertSortDirection () {\n return this.state.sortDirection == 'asc' ? 'desc' : 'asc'\n }\n\n filterByTag (tag) {\n this.setState({\n filterTags: this.state.filterTags.concat([tag])\n }, () => {\n this.fetchPage()\n })\n }\n\n removeFilterTag (tag) {\n this.setState({\n filterTags: this.state.filterTags.filter((other_tag) => other_tag.name !== tag.name)\n }, () => {\n this.fetchPage()\n })\n }\n\n emptyPermissions (object) {\n return !(this.canView(object) || this.canEdit(object) || this.canDelete(object))\n }\n\n canView (object) {\n return object.permissions && object.permissions.view && object.view_url\n }\n\n canEdit (object) {\n return !object.is_deleted && object.permissions && object.permissions.edit && (object.edit_url || object.admin_edit_url)\n }\n\n canDelete (object) {\n return !object.is_deleted && object.permissions && object.permissions.delete && object.delete_url\n }\n\n renderTableHead() {\n let columnHeaders = this.props.rowDefinition.map((defn) => {\n return (\n defn.sort_key ? this.sortCollection(defn.sort_key || defn.attribute_key, this.invertSortDirection()) : ''}>\n {defn.title}\n {\n defn.sort_key\n ? defn.sort_key == this.state.sortKey\n ? this.state.sortDirection == 'asc' ? : \n : \n : ''\n }\n \n )\n })\n\n if (this.props.showTags) {\n columnHeaders.push({I18n.t('models.tag.tags')})\n }\n\n if (!this.props.omitOptions) {\n columnHeaders.push({I18n.t('views.common.options')})\n }\n\n return (\n \n { this.tagFilterRow({ colSpan: columnHeaders.length }) }\n { columnHeaders }\n \n )\n }\n\n tagFilterRow (config) {\n if (this.state.filterTags.length === 0) return\n\n return (\n \n \n
\n Filtering by tags: \n {\n this.state.filterTags.map((tag) => {\n return { this.removeFilterTag(tag) }} />\n })\n }\n
\n \n \n )\n }\n\n objectToRow (object) {\n let rowCells = this.props.rowDefinition.map((defn) => {\n return (\n \n { defn.render ? defn.render.bind(this)((object)) : this.attributeValue(object, defn.attribute_key) }\n \n )\n })\n\n if (this.props.showTags) {\n const tagList = object.tags.map((tag) => {\n return { this.filterByTag(tag) }}/>\n })\n\n rowCells.push(\n \n { tagList }\n \n )\n }\n\n if (!this.props.omitOptions) {\n rowCells.push(\n \n
\n {\n this.emptyPermissions(object)\n ?\n \n :\n ''\n }\n\n {\n this.canView(object)\n ?\n \n \n \n :\n ''\n }\n\n {\n this.canEdit(object)\n ?\n \n \n \n :\n ''\n }\n\n {\n this.canDelete(object)\n ?\n \n \n \n :\n ''\n }\n\n { this.props.additionalOptions && this.props.additionalOptions(object) }\n\n
\n \n )\n }\n\n return rowCells\n }\n\n renderTableRow(object) {\n return (\n \n { this.objectToRow(object) }\n \n )\n }\n\n renderTableBody() {\n return ( this.state.results.length\n ? this.state.results.map((object) => this.renderTableRow(object))\n : \n { this.state.firstFetched ? I18n.t('views.common.no_results') : I18n.t('views.common.loading') }\n \n )\n }\n\n renderPagination () {\n return (\n
\n {\n this.state.error\n ?\n ''\n :\n \n }\n
\n )\n }\n\n render () {\n return (\n
\n
\n
\n \n
\n this.filterCollection(e.target.value)} />\n
\n { this.state.loading ? : }\n
\n
\n
\n {\n this.props.cta\n &&\n \n }\n
\n\n \n { this.renderTableHead() }\n\n \n {\n this.state.error\n ? \n : this.renderTableBody()\n }\n \n
{ I18n.t('views.forms.messaging.error_reload') }
\n\n {this.renderPagination()}\n
\n )\n }\n}"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","document","addEventListener","setTimeout","jQuery","dataTable","config","dom","scrollX","autoWidth","buttons","extend","text","I18n","t","className","rowCallback","row","data","index","forEach","d","i","$","addClass","length","fixedColumns","leftColumns","DataTable","exportButton","append","window","RAILS_ENV","process","axios","Turbo","session","drive","require","ReactRailsUJS","componentRequireContext","useContext","click","history","back","querySelector","button","target","setAttribute","spinner","createElement","classList","add","appendChild","formChangeFlag","on","i18n","translations","locale","content","post","lang","then","response","location","reload","anchor","hash","startsWith","tabName","split","Tab","show","otherValueInputs","querySelectorAll","hubReferralSocialMediaOption","input","inputType","tagName","event","getAttribute","otherInputContainer","parentElement","siblingInputs","siblingInput","style","display","checked","otherInput","focus","disabled","removeAttribute","value","socialMediaTextContainer","socialMediaInput","csrfEl","csrf","axiosInstance","timeout","headers","createCourse","body","updateCourse","put","deleteCourse","delete","createLesson","updateLesson","courseId","lessonId","deleteLesson","submitLesson","updateSubmitLesson","createResource","resource_category_id","updateResource","deleteResource","deleteResourceCategory","BreadCrumb","locations","React","key","onClick","url","pathname","title","ListItem","titleButton","secondTitleButton","locationButton","secondLocationButton","subtitle","buttonDisabled","href","ProfilePicker","render","src","this","props","image_url","Question","error","inputId","isEdit","isFacilitator","onChange","onBlur","defaultValue","Section","withInput","withBorder","isOpen","onArrowPress","iconId","iconRef","current","contains","remove","borderBottom","paddingBottom","ref","TagPill","tag","colour","name","canDelete","requiredLevel","handleDelete","image","isLearner","learnerLevel","completed","mod","overlay","levelText","isAdmin","imageNode","backgroundImage","includes","color","marginRight","marginLeft","cursor","CreateCourse","initialData","maxLevel","course","setName","errorName","setErrorName","status","setStatus","language","setLanguage","hackergalLevel","setHackergalLevel","errorHackergalLevel","setErrorHackergalLevel","coverImage","setCoverImage","loading","setLoading","active","required_level","JSON","parse","file_data","Header","TextInput","columnSize","type","field","label","marginTop","padding","SelectInput","paddingLeft","parseInt","Array","from","x","paddingRight","metadata","filename","Dropzone","onDrop","file","getRootProps","getInputProps","detectedChanges","newActive","sameImage","stringify","handleSubmit","trim","formData","FormData","api","res","catch","console","IndexCourse","courses","userType","userLevel","courseList","setCourseList","confirm","filter","item","cover_image_data","file_url","defaults","AnnouncementForm","constructor","super","form","regionDropdown","organizationDropdown","user","role","announcement","organization_id","state","errors","fileIdsToDelete","select2","setAnnouncementProperty","property","setState","setTargetAudience","targetAudience","val","trigger","region_id","getRegion","regionId","regions","find","region","deleteFile","delete_ids","announcementFiles","announcement_id","push","splice","concat","getFileName","toggleFeatured","isChecked","announcementObj","is_featured","selectedIndex","handleFileUploads","files","newFilePayload","preventDefault","File","toString","method","endpoint_url","redirect","scrollTo","bind","formatDate","date","formattedDate","Date","dd","getDate","padStart","mm","getMonth","getFullYear","componentDidMount","react","ready","select2Dropdown","each","flatpickr","dateFormat","defaultDate","selectedDates","dateStr","instance","expiration_date_javascript","htmlFor","expiration_date","SingleFileUpload","parent","existingFileName","header_image_name","existingFileUrl","header_image_url","accepts","header_image","required","organizations","city","full_name","current_organization","user_type","Wyswiyg","inputName","initialValue","labelText","acceptedFiles","announcementFile","fileName","hasOwnProperty","colSpan","MediaFileUploader","mediaFiles","accept","mediaFile","fileInput","existingMarkedForRemoval","setHeaderImageName","fileData","resetFileValue","onDelete","fileInputChanged","fileNameContainer","emptyFileContainer","fieldName","hasErrors","hasFile","NoteInput","toolbarOptions","replace","onTextChange","OrganizationTypeAhead","suggestions","isLoading","selected","selectionMade","showChangeButton","confirmChangeMessage","isLastChampion","idInput","nameInputId","nameInput","toggleInputDisabled","suggestionValue","suggestion","display_key","_","newValue","confirmChangeButton","getElementById","fetchSuggestions","join","get","filteredResults","results","filteredOrganization","organization","is_at_home","err","log","suggestionSelected","stopPropagation","onSelected","newOrganizationFields","getElementsByClassName","renderSuggestion","query","isHighlighted","RegExp","dangerouslySetInnerHTML","__html","clearSuggestions","enable","typeAheadInput","resetInput","inputProps","placeholder","Autosuggest","onSuggestionsFetchRequested","onSuggestionSelected","onSuggestionsClearRequested","getSuggestionValue","children","TypeAhead","tags","context","taggable_type","slice","onAddition","toLowerCase","HackergalTag","ReactTags","onInput","allowNew","tagComponent","placeholderText","delimiters","classNames","root","rootFocused","selectedTag","selectedTagName","search","searchWrapper","searchInput","suggestionActive","suggestionDisabled","input_id","Wysiwyg","editorRef","handleModelChange","model","heightMin","heightMax","htmlExecuteScripts","imageUpload","videoUpload","pasteAllowLocalImages","events","html","cleanEmptyTags","toolbarButtons","simpleToolbar","basicToolbar","fullToolbar","quickInsertButtons","tableCellMultipleStyles","tableCellStyles","tableStyles","inlineClasses","imageManagerLoadURL","listAdvancedTypes","isEmpty","obj","prop","FroalaEditorComponent","onModelChange","CreateLesson","lesson","courseTitle","numberOfLessons","createSection","section","newSection","errorTitle","errorContent","questions_attributes","questions","question","newQuestion","setTitle","setErrorTitle","overview","setOverview","errorOverview","setErrorOverview","sections","setSections","newSections","scrollOnError","scrollTop","documentElement","setValues","course_title","width","_destroy","handleDeleteSection","ind","handleDeleteInput","fontSize","marginBottom","paddingTop","borderTop","errorSections","handleSections","sections_attributes","orderNumber","order","IndexLesson","lessons","lockedNumber","setLockedNumber","findIndex","getIcon","getIconColor","lesson_type","ShowLesson","courseLevel","sectionsArray","setSectionsArray","badWordsError","setBadWordsError","setIsEdit","Filter","DOMPurifyConfig","ADD_TAGS","ADD_ATTR","removeWords","sectionArray","hasValue","submission","answer","DOMPurify","newArray","Collapse","isOpened","isProfane","scrollIntoView","submissions","section_id","question_id","course_level","ResourceListItem","resource","resourceCategoryId","formattedType","resource_type","cover_image_url","resource_url","icon","length_estimate","CreateResource","resourceCategoryTitle","tileImage","attachmentFile","lengthEstimate","setLengthEstimate","resourceType","setResourceType","resourceLink","setResourceLink","errorResourceLink","setErrorResourceLink","resourceFile","setResourceFile","errorResourceFile","setErrorResourceFile","resourceBody","setResourceBody","errorResourceBody","setErrorResourceBody","resourceTags","setResourceTags","rst","file_name","cover_image_name","TagListInput","IndexResource","resourceCategorySubtitle","resources","displayType","setDisplayType","ResourceCardItem","CardItem","description","targetRole","IndexResourceCategory","resource_categories","resourceCategoryList","setResourceCategoryList","target_role","CategoryTile","category","qs","ResourcesGrid","items","pages","page","filterQuery","selectedCategory","selectedLevel","sortKey","sortDirection","showNewCta","show_new_cta","newState","stateFromAnchor","handlePopState","anchorState","fetchPage","stateToAnchor","level","anchorString","entries","Boolean","reduce","k","v","categories","c","params","conditions","hackergal_level","order_by","order_dir","encode","newResources","tagsHash","flatMap","result","values","selectCategory","async","selectLevel","levelToSet","selectResource","open","renderCategories","emptyCategoryState","showResource","permissions","view","renderResources","emptyResourcesState","ResourceTile","resourceCategory","loadingState","parseISO","updated_at","format","htmlMeta","wrapper","canEdit","edit","edit_url","delete_url","clickEdit","hasTargetAndLevel","hackergal_level_label","formattedRole","charAt","toUpperCase","rel","FeaturedAnnouncementSlider","initialSettings","dots","autoplay","infinite","speed","slidesToShow","slidesToScroll","Slider","announcements","view_url","AnnouncementsTable","rowDefinition","for_learners","attribute_key","sort_key","textAlignment","UberTable","assign","searchType","FacilitatorsTable","facilitator","is_deleted","is_admin","admin_edit_url","admin_organization_url","organization_name","is_champion","is_active","LearnersTable","learner","MediaFilesTable","isPDF","thumbnail_url","MessagesTable","message","read","created_at_javascript","NotesTable","note","created_at","OrganizationsTable","province","organization_type","showTags","debounce","filterCollection","_filterCollection","firstFetched","filterTags","perPage","per_page","colSpanCount","Number","omitOptions","attributeValue","record","dig","movePage","delta","pageNumber","requestedPage","gotoPage","includeDeleted","include_deleted","sortCollection","direction","invertSortDirection","filterByTag","removeFilterTag","other_tag","emptyPermissions","object","canView","renderTableHead","columnHeaders","defn","tagFilterRow","objectToRow","rowCells","tagList","admin_delete_url","additionalOptions","renderTableRow","renderTableBody","renderPagination","cta"],"sourceRoot":""}