{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/lib/utils/index.js","webpack:///./src/lib/AjaxCtx.js","webpack:///./src/lib/bugsnag.js","webpack:///./src/i18n.js","webpack:///./src/lib/constants.js","webpack:///./src/lib/subscriptions.js","webpack:///./src/modules/calendar/calendarStore.js","webpack:///./src/modules/calendar/CalendarService.js","webpack:///./src/modules/finder/FinderService.js","webpack:///./src/modules/finder/constants.js","webpack:///./src/modules/finder/finderStore.js","webpack:///./src/modules/login/LoginService.js","webpack:///./src/modules/login/authenticationStore.js","webpack:///./src/modules/login/cookieStore.js","webpack:///./src/modules/messages/messageStore.js","webpack:///./src/modules/messages/MessageService.js","webpack:///./src/modules/news/newsStore.js","webpack:///./src/modules/news/NewsService.js","webpack:///./src/modules/plugins/connector/connectorModuleShard.js","webpack:///./src/modules/plugins/fundae/fundaeModuleShard.js","webpack:///./src/modules/plugins/poll/pollModuleShard.js","webpack:///./src/modules/plugins/presential/presentialModuleShard.js","webpack:///./src/modules/plugins/tnt/tntModuleShard.js","webpack:///./src/modules/plugins/constants.js","webpack:///./src/modules/plugins/schemas.js","webpack:///./src/modules/plugins/lmsStore.js","webpack:///./src/modules/plugins/fundae/FundaeService.js","webpack:///./src/modules/plugins/poll/PollService.js","webpack:///./src/modules/plugins/tnt/TntService.js","webpack:///./src/modules/plugins/connector/ConnectorService.js","webpack:///./src/modules/profile/profileStore.js","webpack:///./src/modules/supervisor/supervisorStore.js","webpack:///./src/pushNotificationStore.js","webpack:///./src/themeStore.js","webpack:///./src/store/admin.js","webpack:///./src/lib/firebase.js","webpack:///./src/store/plugins.js","webpack:///./src/store/index.js","webpack:///./src/components/buttons/ButtonLink.vue","webpack:///./src/components/buttons/ButtonLink.vue?7c67","webpack:///src/components/buttons/ButtonLink.vue","webpack:///./src/components/buttons/ButtonLink.vue?711e","webpack:///./src/components/inputs/InputStatus.vue","webpack:///./src/components/inputs/InputStatus.vue?4698","webpack:///src/components/inputs/InputStatus.vue","webpack:///./src/components/inputs/InputStatus.vue?14b2","webpack:///./src/components/buttons/BaseButton.vue","webpack:///./src/components/buttons/BaseButton.vue?4e04","webpack:///src/components/buttons/BaseButton.vue","webpack:///./src/components/buttons/BaseButton.vue?09b5","webpack:///./src/components/inputs/InputText.vue","webpack:///src/components/inputs/InputText.vue","webpack:///./src/components/inputs/InputText.vue?27b6","webpack:///./src/components/inputs/InputText.vue?943c","webpack:///./src/components/ToolTip.vue","webpack:///src/components/ToolTip.vue","webpack:///./src/components/ToolTip.vue?fe70","webpack:///./src/components/ToolTip.vue?76ee","webpack:///./src/components/elements/IconCircled.vue","webpack:///./src/components/elements/IconCircled.vue?ed9c","webpack:///src/components/elements/IconCircled.vue","webpack:///./src/components/elements/IconCircled.vue?a37e","webpack:///./src/modules/calendar/utils.js","webpack:///./src/bus.js","webpack:///./src/lib/vueUtils.js","webpack:///./src/components/social/SocialService.js","webpack:///./src/components/inputs/InputCheckbox.vue","webpack:///./src/components/inputs/InputCheckbox.vue?53d3","webpack:///src/components/inputs/InputCheckbox.vue","webpack:///./src/components/inputs/InputCheckbox.vue?c35e","webpack:///./src/components/PopUp.vue","webpack:///./src/components/PopUp.vue?1f41","webpack:///src/components/PopUp.vue","webpack:///./src/components/PopUp.vue?2090","webpack:///./src/components/buttons/UploadButton.vue","webpack:///src/components/buttons/UploadButton.vue","webpack:///./src/components/buttons/UploadButton.vue?34f3","webpack:///./src/components/buttons/UploadButton.vue?1738","webpack:///./src/components/elements/TruncatedText.vue","webpack:///./src/components/elements/ToolTipElement.vue?192c","webpack:///src/components/elements/ToolTipElement.vue","webpack:///./src/components/elements/ToolTipElement.vue?2850","webpack:///./src/components/elements/ToolTipElement.vue","webpack:///./src/components/elements/TruncatedText.vue?fc67","webpack:///src/components/elements/TruncatedText.vue","webpack:///./src/components/elements/TruncatedText.vue?e233","webpack:///./src/modules/supervisor/utils.js","webpack:///./src/components/inputs/InputSelect.vue","webpack:///src/components/inputs/InputSelect.vue","webpack:///./src/components/inputs/InputSelect.vue?7422","webpack:///./src/components/inputs/InputSelect.vue?2934","webpack:///./src/lib/QueryFiltersParser.js","webpack:///./src/modules/list/utils.js","webpack:///./src/modules/calls/utils.js","webpack:///./src/components/elements/SpinnerBlock.vue","webpack:///./src/components/elements/SpinnerBlock.vue?3773","webpack:///./src/components/ProgressBar.vue","webpack:///./src/components/ProgressBar.vue?90ca","webpack:///src/components/ProgressBar.vue","webpack:///./src/components/ProgressBar.vue?3508","webpack:///./src/components/buttons/PlayButton.vue","webpack:///./src/components/buttons/PlayButton.vue?3ca3","webpack:///src/components/buttons/PlayButton.vue","webpack:///./src/components/buttons/PlayButton.vue?610e","webpack:///./src/components/elements/UploadedFile.vue","webpack:///./src/components/elements/UploadedFile.vue?d664","webpack:///src/components/elements/UploadedFile.vue","webpack:///./src/components/elements/UploadedFile.vue?69ab","webpack:///./src/lib/aphrodite.js","webpack:///./src/components/buttons/buttonMixin.js","webpack:///./src/components/TimeBar.vue","webpack:///./src/components/TimeBar.vue?fd06","webpack:///src/components/TimeBar.vue","webpack:///./src/components/TimeBar.vue?53b5","webpack:///./src/components/players/Video/VolumeBar.vue","webpack:///./src/components/players/Video/VolumeBar.vue?d42c","webpack:///src/components/players/Video/VolumeBar.vue","webpack:///./src/components/players/Video/VolumeBar.vue?5dd4","webpack:///./src/components/LoadingSpinner.vue","webpack:///./src/components/LoadingSpinner.vue?284c","webpack:///src/components/LoadingSpinner.vue","webpack:///./src/components/LoadingSpinner.vue?0d6f","webpack:///./src/components/buttons/ActionsPopup.vue","webpack:///./src/components/buttons/ActionsPopup.vue?04b8","webpack:///src/components/buttons/ActionsPopup.vue","webpack:///./src/components/buttons/ActionsPopup.vue?78bb","webpack:///./src/components/players/PlayerModal.vue","webpack:///./src/components/players/PlayerModal.vue?4652","webpack:///src/components/players/PlayerModal.vue","webpack:///./src/components/players/PlayerModal.vue?b29a","webpack:///./src/components/ValidatableForm.vue","webpack:///./src/components/elements/FileTemplate.vue?3bc3","webpack:///src/components/elements/FileTemplate.vue","webpack:///./src/components/elements/FileTemplate.vue?0641","webpack:///./src/components/elements/FileTemplate.vue","webpack:///./src/components/elements/FileGroupTemplate.vue?8c5b","webpack:///src/components/elements/FileGroupTemplate.vue","webpack:///./src/components/elements/FileGroupTemplate.vue?55f4","webpack:///./src/components/elements/FileGroupTemplate.vue","webpack:///./src/components/RemoteList.vue?5c81","webpack:///src/components/RemoteList.vue","webpack:///./src/components/RemoteList.vue?2c56","webpack:///./src/components/RemoteList.vue","webpack:///src/components/inputs/InputRemote.vue","webpack:///./src/components/inputs/InputRemote.vue?d684","webpack:///./src/components/inputs/InputRemote.vue?d17f","webpack:///./src/components/inputs/InputRemote.vue","webpack:///src/components/inputs/InputSelectOther.vue","webpack:///./src/components/inputs/InputSelectOther.vue?b6ed","webpack:///./src/components/inputs/InputSelectOther.vue?d282","webpack:///./src/components/inputs/InputSelectOther.vue","webpack:///src/modules/login/components/TermsAndConditions.vue","webpack:///./src/modules/login/components/TermsAndConditions.vue?de84","webpack:///./src/modules/login/components/TermsAndConditions.vue?32dd","webpack:///./src/modules/login/components/TermsAndConditions.vue","webpack:///src/components/ValidatableForm.vue","webpack:///./src/components/ValidatableForm.vue?6665","webpack:///./src/lib/utils/validations.js","webpack:///./src/components/ValidatableForm.vue?8d13","webpack:///./src/components/inputs/InputNumber.vue","webpack:///src/components/inputs/InputNumber.vue","webpack:///./src/components/inputs/InputNumber.vue?af17","webpack:///./src/components/inputs/InputNumber.vue?bf07","webpack:///./src/structureStore.js","webpack:///src/components/inputs/InputSwitch.vue","webpack:///./src/components/inputs/InputSwitch.vue?4d9b","webpack:///./src/components/inputs/InputSwitch.vue?1b24","webpack:///./src/components/inputs/InputSwitch.vue","webpack:///./src/modules/supervisor/SupervisorService.js","webpack:///./src/lib/DoubleMap.js","webpack:///./src/plugins/PopUpPlugin.js","webpack:///./src/components/players/Video/_YoutubePlayer.vue","webpack:///src/components/players/Video/_YoutubePlayer.vue","webpack:///./src/components/players/Video/_YoutubePlayer.vue?1b73","webpack:///./src/components/players/Video/_YoutubePlayer.vue?5242","webpack:///./src/components/players/Video/YoutubePlayer.js","webpack:///./src/components/inputs/_InputDate.vue","webpack:///src/components/inputs/_InputDate.vue","webpack:///./src/components/inputs/_InputDate.vue?4c17","webpack:///./src/components/inputs/_InputDate.vue?d638","webpack:///./src/components/inputs/InputDate.js","webpack:///./src/modules/communication/CommunicationService.js","webpack:///./src/images/libraries/lms_lms.svg","webpack:///./src/images/libraries/lms_communication.svg","webpack:///./src/images/libraries/lms_community.svg","webpack:///./src/images/libraries/general_library.svg","webpack:///./src/images/libraries/my_documents.svg","webpack:///./src/images/libraries/library_default.svg","webpack:///./src/modules/profile/ProfileService.js","webpack:///./src/components/inputs/InputTextarea.vue","webpack:///src/components/inputs/InputTextarea.vue","webpack:///./src/components/inputs/InputTextarea.vue?5b18","webpack:///./src/components/inputs/InputTextarea.vue?e703","webpack:///./src/components/inputs/InputRadio.vue","webpack:///./src/components/inputs/InputRadio.vue?1ab9","webpack:///src/components/inputs/InputRadio.vue","webpack:///./src/components/inputs/InputRadio.vue?ee70","webpack:///./src/modules/plugins/poll/pollUtils.js","webpack:///./src/modules/plugins/presential/PresentialService.js","webpack:///./src/components/inputs/InputPassword.vue","webpack:///./src/components/inputs/InputPassword.vue?2afc","webpack:///src/components/inputs/InputPassword.vue","webpack:///./src/components/inputs/InputPassword.vue?2650","webpack:///./src/modules/communication/communicationStore.js","webpack:///./src/components/players/Video/VideoPlayer.vue","webpack:///src/components/players/Video/VideoPlayer.vue","webpack:///./src/components/players/Video/VideoPlayer.vue?d8b1","webpack:///./src/components/players/Video/VideoPlayer.vue?6ef7","webpack:///./src/components/inputs/RadioGroup.vue","webpack:///./src/components/inputs/RadioGroup.vue?2d3f","webpack:///src/components/inputs/RadioGroup.vue","webpack:///./src/components/inputs/RadioGroup.vue?d952","webpack:///./src/modules/list/listStore.js","webpack:///./src/modules/list/ListService.js","webpack:///./src/selectionStore.js","webpack:///./src/components/players/ThePlayer.vue","webpack:///src/components/players/Audio/AudioPlayer.vue","webpack:///./src/components/players/Audio/AudioPlayer.vue?43d4","webpack:///./src/components/players/Audio/AudioPlayer.vue?561b","webpack:///./src/components/players/Audio/AudioPlayer.vue","webpack:///./src/components/players/Image/ImagePlayer.vue?8aed","webpack:///src/components/players/Image/ImagePlayer.vue","webpack:///./src/components/players/Image/ImagePlayer.vue?63ed","webpack:///./src/components/players/Image/ImagePlayer.vue","webpack:///./src/components/players/Scorm/ScormPlayer.vue?a448","webpack:///src/components/players/Scorm/ScormPlayer.vue","webpack:///./src/components/players/Scorm/ScormPlayer.vue?6426","webpack:///./src/components/players/Scorm/ScormPlayer.vue","webpack:///./src/components/players/Text/TextPlayer.vue?b773","webpack:///src/components/players/Text/TextPlayer.vue","webpack:///./src/components/players/Text/TextPlayer.vue?2088","webpack:///./src/components/players/Text/TextPlayer.vue","webpack:///./src/components/players/ThePlayer.vue?401c","webpack:///src/components/players/ThePlayer.vue","webpack:///./src/components/players/ThePlayer.vue?7285","webpack:///./src/components/DialogBox/DialogBox.vue","webpack:///./src/components/DialogBox/components/AlertDialog.vue?c4fe","webpack:///src/components/DialogBox/components/AlertDialog.vue","webpack:///./src/components/DialogBox/components/AlertDialog.vue?b24a","webpack:///./src/components/DialogBox/components/AlertDialog.vue","webpack:///./src/components/DialogBox/components/ConfirmationDialog.vue?64da","webpack:///src/components/DialogBox/components/ConfirmationDialog.vue","webpack:///./src/components/DialogBox/components/ConfirmationDialog.vue?43d5","webpack:///./src/components/DialogBox/components/ConfirmationDialog.vue","webpack:///./src/components/DialogBox/components/NotificationDialog.vue?b690","webpack:///src/components/DialogBox/components/NotificationDialog.vue","webpack:///./src/components/DialogBox/components/NotificationDialog.vue?06fd","webpack:///./src/components/DialogBox/components/NotificationDialog.vue","webpack:///./src/components/DialogBox/DialogBox.vue?843f","webpack:///src/components/DialogBox/DialogBox.vue","webpack:///./src/components/DialogBox/DialogBox.vue?070b","webpack:///./src/components/players/PDFViewer/PdfViewer.vue","webpack:///./src/lib/Semaphore.js","webpack:///src/components/players/PDFViewer/PdfPage.vue","webpack:///./src/components/players/PDFViewer/PdfPage.vue?1860","webpack:///./src/components/players/PDFViewer/PdfPage.vue?1911","webpack:///./src/components/players/PDFViewer/PdfPage.vue","webpack:///./src/components/players/PDFViewer/PdfViewer.vue?be24","webpack:///src/components/players/PDFViewer/PdfViewer.vue","webpack:///./src/components/players/PDFViewer/PdfViewer.vue?e803","webpack:///./src/components/inputs/InputCost.vue","webpack:///src/components/inputs/InputCost.vue","webpack:///./src/components/inputs/InputCost.vue?519a","webpack:///./src/components/inputs/InputCost.vue?ee03","webpack:///./src/components/SelectableList.vue","webpack:///./src/components/SelectableList.vue?29b8","webpack:///src/components/SelectableList.vue","webpack:///./src/components/SelectableList.vue?15f6","webpack:///./src/components/DialogBox/HtmlModal.vue","webpack:///./src/components/DialogBox/HtmlModal.vue?cc23","webpack:///src/components/DialogBox/HtmlModal.vue","webpack:///./src/components/DialogBox/HtmlModal.vue?bb9a","webpack:///./src/plugins/UtilitiesPlugin.js","webpack:///./src/AppChrome.vue","webpack:///./src/mixins/panelsMixin.js","webpack:///./src/mixins/modalsMixin.js","webpack:///src/components/DialogBox/AlertModal.vue","webpack:///./src/components/DialogBox/AlertModal.vue?4909","webpack:///./src/components/DialogBox/AlertModal.vue?31a9","webpack:///./src/components/DialogBox/AlertModal.vue","webpack:///./src/components/LightPopUp.vue?2f14","webpack:///src/components/LightPopUp.vue","webpack:///./src/components/LightPopUp.vue?a242","webpack:///./src/components/LightPopUp.vue","webpack:///./src/components/ModalLayer.vue?3f39","webpack:///src/components/ModalLayer.vue","webpack:///./src/components/ModalLayer.vue?2879","webpack:///./src/components/ModalLayer.vue","webpack:///./src/components/elements/NotificationItem.vue?f8fc","webpack:///src/components/elements/NotificationItem.vue","webpack:///./src/components/elements/NotificationItem.vue?b8c8","webpack:///./src/components/elements/NotificationItem.vue","webpack:///./src/components/PanelStack.vue?a716","webpack:///src/components/PanelStack.vue","webpack:///./src/components/PanelStack.vue?1fff","webpack:///./src/components/PanelStack.vue","webpack:///src/AppChrome.vue","webpack:///./src/AppChrome.vue?21d1","webpack:///./src/AppChrome.vue?50a9","webpack:///./src/lib/ListenerManager.js","webpack:///./src/plugins/ListenersPlugin.js","webpack:///./src/components/Icon.vue?f399","webpack:///./src/lib/extensions.js","webpack:///./src/lib/filters.js","webpack:///./src/components/PopUp.vue?76f8","webpack:///./src/components/buttons/PlayButton.vue?d99a","webpack:///./src/components/LoadingSpinner.vue?8da3","webpack:///./src/components/players/PDFViewer/PdfPage.vue?2b51","webpack:///./src/components/elements/SpinnerBlock.vue?66d1","webpack:///./src/components/players/PDFViewer/PdfViewer.vue?30ba","webpack:///./src/components/players/Scorm/ScormPlayer.vue?f429","webpack:///./src/components/elements/FileTemplate.vue?9f5d","webpack:///./src/components/inputs/InputText.vue?94ae","webpack:///./src/components/elements/FileGroupTemplate.vue?63c9","webpack:///./src/components/inputs/InputCost.vue?b3d2","webpack:///./src/components/inputs/InputNumber.vue?7a03","webpack:///./src/components/RemoteList.vue?d715","webpack:///./src/components/inputs/InputSwitch.vue?d0f5","webpack:///./src/components/inputs/InputTextarea.vue?b1f5","webpack:///./src/components/DialogBox/AlertModal.vue?2787","webpack:///./src/components/DialogBox/DialogBox.vue?4180","webpack:///./src/components/ModalLayer.vue?caae","webpack:///./src/AppChrome.vue?9118","webpack:///src/components/Icon.vue","webpack:///./src/components/Icon.vue?eeb6","webpack:///./src/components/Icon.vue","webpack:///./src/icons.js","webpack:///./src/modules/login/utils.js","webpack:///./src/lib/confetti.js","webpack:///./src/sounds/cheer.mp3","webpack:///./src/modules/login/navigationGuards.js","webpack:///./src/modules/supervisor/navigationGuards.js","webpack:///./src/router.js","webpack:///./src/components/elements/ConfettiMachine.vue?d209","webpack:///src/components/elements/ConfettiMachine.vue","webpack:///./src/components/elements/ConfettiMachine.vue?bd02","webpack:///./src/components/elements/ConfettiMachine.vue","webpack:///src/components/elements/SnowGenerator.vue","webpack:///./src/components/elements/SnowGenerator.vue?8a61","webpack:///./src/components/elements/SnowGenerator.vue?5013","webpack:///./src/components/elements/SnowGenerator.vue","webpack:///./src/components/elements/EasterEggs.vue?1196","webpack:///src/components/elements/EasterEggs.vue","webpack:///./src/components/elements/EasterEggs.vue?50f1","webpack:///./src/components/elements/EasterEggs.vue","webpack:///src/App.vue","webpack:///./src/App.vue?65a8","webpack:///./src/App.vue?df7c","webpack:///./src/App.vue","webpack:///./src/main_entry.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","22","exports","module","l","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onerror","onload","event","errorType","realHref","target","err","Error","code","request","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","src","jsonpScriptSrc","error","clearTimeout","chunk","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","self","this","oldJsonpFunction","slice","clamp","x","a","b","Math","max","min","lerp","arrayToObject","array","arguments","reduce","obj","item","_objectSpread","zip","args","Array","from","maxLength","map","out","arg","linearRegression","sumX","sumY","sumXX","sumXY","y","animate","cb","duration","done","abort","start","window","performance","now","loop","requestAnimationFrame","cancel","capitalize","ucfirst","String","toLowerCase","upperFirst","ucwords","words","join","ucall","toUpper","occurrencesBetween","needle","Infinity","occurrences","haystack","replace","countPattern","fmtveryshortdate","locale","timeZone","date","toLocaleString","day","month","year","fmtdateshort","fmtdate","fmtdatelong","fmttime","toLocaleTimeString","hour","minute","fmtdatetime","fmtweekday","weekday","fmtweekdayshort","fmtmonthday","fmtmonth","fmtmonthshort","fmtmonthyear","getFnsLocale","dateFnsLocales","fmtwordsago","refDate","Date","formatDistanceStrict","fmtsize","bytes","exp","floor","log","pre","charAt","pow","toFixed","fmtbignumber","number","sign","symbol","abs","secsToHoursMinsSecs","seconds","hours","mins","secs","fmtDigitalTimeMinsSecs","time","fmtDigitalTimeHoursMins","fmtDigitalTimeHoursMinsSecs","fmtTimeHourMin","sec","ellipsis","str","len","html2text","html","DOMParser","parseFromString","documentElement","textContent","coalesce","string","trim","traverse","node","prop","_depth","_parent","children","isFunction","child","sleep","ms","inside","el","nodeType","Node","COMMENT_NODE","left","offsetLeft","top","offsetTop","offsetParent","rect","getBoundingClientRect","right","width","bottom","height","uuid","random","toString","randi","ceil","isFocusable","element","tabIndex","disabled","nodeName","focusFirstFocusable","container","focus","focusLastFocusable","traverseBackwards","async","downloadResponseFile","_ref","response","fileName","ok","_ref2","blob","URL","createObjectURL","anchor","download","body","click","remove","revokeObjectURL","downloadBlob","requestFiles","accept","multiple","doc","input","style","opacity","addEventListener","files","readAsDataURL","file","reader","FileReader","isFullScreenSupported","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","numberToLetter","fromCharCode","isPreviewable","extension","PREVIEWABLE_EXTENSIONS","includes","isNativelyPreviewable","NATIVELY_PREVIEWABLE_EXTENSIONS","parseQueryString","queryString","fields","split","values","field","decodeURIComponent","tryParseValue","Number","isNaN","buildQueryString","entries","filter","_ref3","_","isNil","_ref4","encodeURIComponent","filterHasActiveValue","description","end","numFiltersWithActiveValue","filterValues","filterDescriptions","acc","_ref5","find","f","escapeChars","reservedCharacters","escapeChar","char","concat","buildQueryFilters","descriptions","operators","escape","v","pairs","addDays","parseISO","toISOString","isArray","forEach","index","_operators$name","pair","isValid","_reachYiqThresold","color","g","tinycolor","toRgb","getContrastColor","getContrastTheme","lighten","amount","mix","toHexString","darken","getOverlayColor","guessPlayerFromExtension","EXTENSION_GROUPS","image","video","audio","text","getExtensionIcon","compressed","translateProgramModality","modality","PROGRAM_MODALITIES","translateResourceType","mimeType","RESOURCE_TYPES","formatDateRange","startDate","endDate","timezone","isSameDay","cookItemsForCards","cardMap","items","extraAttrs","_ref6","_meta","component","attrs","groupContiguousBy","xs","xxs","lastValue","last","doesPositionStickyWork","link","cssText","position","indexOf","pad","num","size","supportedTimeZone","Intl","DateTimeFormat","ex","buildValidatorsForPasswordValidationRules","rules","validations","rule","lower","upper","numeric","symbolic","detectPlatform","userAgent","navigator","browser","Bowser","getParser","operativeSystem","getOSName","browserName","getBrowserName","browserVersion","getBrowserVersion","os","debounceBy","func","wait","options","keyCallback","repository","fn","debounce","flush","newPromiseInPieces","output","debounceAsync","promisePieces","debouncedWrapper","_len","_key","finally","_len2","_key2","showBookmarked","social","isBoolean","bookmarked","showLikes","liked","showRating","isNumber","rating","rated","showComments","commentsCount","formatTime","unit","codes","measures","h","res","openSSO","_ref7","url","callback","interval","popup","open","timer","setInterval","opener","clearInterval","imageWithVeil","startOpacity","endOpacity","getUserInfo","_ref8","jobTitle","mainDomain","mainUnit","isMidnight","threshold","previousMidnight","startOfDay","getTime","nextMidnight","endOfDay","eventDate","createBus","events","emit","_len3","_key3","on","ServerError","constructor","super","i18n","ApiError","_response$errors$join","_response$errors","errors","PluginReviewActionNotAllowedError","_response$errors$join2","_response$errors2","AjaxCtx","baseUrl","defaults","requests","sendBeacon","Request","fetchData","method","JSON","stringify","keepalive","XMLHttpRequest","withCredentials","credentials","cookedUrl","headers","setRequestHeader","send","init","assign","waitFor","pendingRequests","waitingTime","abortController","AbortController","cancelRepeatedRequests","signal","fetch","status","location","json","clone","bus","$emit","meta","deleteRequest","_window$Prometeo","store","Prometeo","$store","version","commit","fetchJSON","fetchAPI","uploadFile","fileOrBlob","progressCallback","form","FormData","append","upload","lengthComputable","loaded","total","parse","statusText","repeatedRequests","sameUrl","isGetRequest","toUpperCase","cancelAndDeleteRequest","notify","idx","findIndex","defaultCtx","CONFIG_API_BASE_URL","CONFIG_DEFAULT_LOCALE","referrer","bugsnagIsReady","Bugsnag","_client","CONFIG_ENABLE_BUGSNAG","onError","getMetadata","addMetadata","leaveBreadcrumb","AVAILABLE_LANGS","defaultFallbackLocale","getBrowserPreferredLocales","Vue","use","VueI18n","DEFAULT_i18n","fallbackLocale","messages","languages","language","locales","lang","test","exec","uniq","DEFAULT_LOADED_LOCALES","downloadAndStoreLocale","ctx","loadedLocales","translationsHash","hackedLocale","msgs","setLocaleMessage","loadLocale","different","querySelector","setLocale","es","eu","en","fr","ca","pt","it","getDateFnsLocale","availableLanguages","keys","preferredAvailableLocale","KEY_CODES","ESC","SPACE","LEFT","UP","RIGHT","DOWN","ACTIVITY_TYPES","SUPPORTED_ACTIVITY_TYPES","PLUGIN_BY_SSO","CALL_STATUSES","SCORM_CHAPTER_STATUSES","ACTIVITY_PASS_MODES","POLL_QUESTION_TYPES","MAX_ITEMS_PER_BLOCK","MESSAGES_POLLING_INTERVAL","MESSAGES_MAX_USERS_COUNT","PLUGIN_DISABLING_TIME","HEADER_HEIGHT","OFFICIAL_LIBRARIES","BREAKPOINTS","sm","md","xl","xxl","MIN_NOTIFICATION_LENGTH_TO_SHOW_CLOSE_BUTTON","NOTICATION_CLOSING_TIME","subscribe","swName","swRegistration","isSecureContext","swUrl","registration","serviceWorker","register","registerServiceWorker","unsubscribe","registrations","getRegistrations","unregister","service","namespaced","state","getters","eventsInRange","getSortingDate","dateInRange","sortEvents","mutations","setEvents","id","set","clearModule","actions","$http","filterField","fromDate","toDate","dispatch","getCalendarEvents","DOMException","title","root","updateMonthEvents","_rootGetters$currentU","rootGetters","currentUser","getStartEndDates","FinderService","searchText","itemType","cursor","qs","next","nextCursor","categories","tkey","icon","selectedCategoryId","requestId","_state","_getters","rootState","categoryId","platform","entitiesFinder","category","finderCategories","setSearchText","setSelectedCategoryId","setStatus","replaceItem","setItems","incRequestId","finderService","fetchItems","_refresh","updateItem","makeActions","LoginService","login","username","password","recaptcha_token","logout","loginChangePassword","newPassword","repeatNewPassword","loginDataPolicy","disclaimerId","getAuthenticationOptions","userId","token","requestAuthenticationCode","option","refreshAuthenticationOptions","validateAuthenticationCode","code2fa","deleteAuthenticationAttempt","email","phone","validationUrl","validationTimeLeft","setFields","workEmailCensored","workPhoneCensored","twoFactorAuthenticationAttemptUrl","setTimeLeft","timeLeft","DEFAULT_I18N","saveData","twoFactorAuthenticationTimeLeft","_ref9","startCountdown","_ref10","_ref11","_ref12","cookiesValues","shouldISendCookies","googleAnalyticsIsEnabled","googleAnalyticsAccount","configs","some","hasAccepted","acceptOptionalCookies","isOptional","cookie","rejectOptionalCookies","setShouldISendCookies","setCookies","cookies","toggleCookie","targetCookie","toggle","makeDefaultFolder","unreadMessages","lastPollingTime","query","getMessage","messageUserId","folder","setMessage","messageIndex","currentMessage","messageDateIndex","setNewMessage","newMessage","setFolder","clearMessage","setUnreadMessages","inbox","sent","trash","to","includedUsers","excludedUsers","filters","subject","attachments","repliedId","forwardedId","isPrivate","usersCount","clearNewMessage","clearFolder","folderData","isDeleted","destinationFolder","deleteMessage","getMessageDetails","getMessages","unread","_ref13","_ref14","limit","_ref15","sender","_ref16","_ref17","_ref18","_ref19","isRead","setReadStatus","_ref20","_ref21","getUnreadMessages","updateNewMessage","_ref22","free_search","deburr","messageUserIds","fileHash","recipients","user","MessageService","setNewsItem","newsItem","newsId","socialService","getNewsItem","originalNewsItem","likes","optimisticNewsItem","likeResource","newNewsItem","bookmarkResource","info","SocialService","shouldTrace","activity","activityIsFinished","isFinished","configuration","tracing","userActivityId","userActivities","sessionId","localState","isClosing","questionId","answer","answers","answerIdx","progress","answeredRequiredQuestions","totalRequiredQuestions","save","activityState","finish","tc","DEFAULT_USER_ACTIVITY","_ref29","currentAttempt","localAttempt","currentUnsavedAttempt","remoteAttempt","mergeAnswers","userAnswers","attemptId","userPollAttemptId","attempt","questionIndex","alertWasSent","page","exitMessage","maxTimeToCompletion","currentFrontTime","_ref30","_ref31","alarmMessage","timeIsOverMessage","startTime","startAt","frontNowTime","currentBackTime","currentTime","tickTimer","catch","showCloseButton","correctedAnswers","correct","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_attempt$isFinished","attemptIsFinished","attemptIsStarted","answeredQuestions","totalQuestions","eventConfirm","eventId","pushAttendToEvent","idFile","tntFileId","versions","versionId","tntVersionId","accessed","idVersion","comment","comments","webFile","localFile","descriptor","newVersion","addVersion","newFile","addFile","deleteFile","deleteVersion","publish","sendComment","userActivitySchema","schema","Entity","idAttribute","levelSchema","define","activities","level","userActivity","userCallSchema","setUserCall","userCall","userCalls","userCallId","setLevel","levels","programActivityId","setUserActivity","setVirtualClassrooms","virtualClassrooms","setForums","forums","updateForum","forum","forumIndex","resourceRelationId","setResources","resources","pushClassmatesPage","users","classmates","pushTeachersPage","teachers","setFetchingClassmates","val","fetchingClassmates","setFetchingTeachers","fetchingTeachers","setState","setLocalState","clearLocalState","activitiesViewMode","setActivitiesViewMode","viewMode","getDenormalizedUserCall","denormalize","getClassmates","pages","flatMap","getTeachers","classmatesEndReached","teachersEndReached","pollModuleShard","tntModuleShard","presentialModuleShard","fundaeModuleShard","_i18n","storeDenormalizedUserCall","denormalizedUserCall","entities","normalize","tabId","successExtensionMessage","refreshResources","params","leading","trailing","refreshVirtualClassrooms","refreshForums","refreshEvents","getMoreClassmates","getMoreTeachers","lastPage","_ref32","originalUserCall","optimisticUserCall","newUserCall","programName","_ref33","_ref34","rateResource","resource","_ref35","_ref36","playBackTime","ongoing","videoPlaying","storeActivitiesViewMode","_ref37","PresentialService","connectorModuleShard","editableProfileFields","languagesAsOptions","languagesToSelect","availableLocales","translationKey","currentUserId","_state$currentUser","itsMe","setCurrentUser","setEditableFields","setUserField","fieldIdx","changePassword","currentPassword","updatePassword","_state$currentUser$lo","_state$currentUser2","loginSteps","_state$currentUser$lo2","_state$currentUser3","languageToSubmit","newUser","updateProfile","updateProfileAttribute","updateAvatar","removeAvatar","getEditableFields","ProfileService","dashboard","charts","panel","supervisorUrl","hasDashboard","hasCourses","hasParticipants","hasSupervisedEnrollments","hasFormationRequests","hasExternalFormationRequests","hasExternalExperienceRequests","hasPreregisterRequests","counters","coursesCount","experiencePendingRequestsCount","externalPendingRequestsCount","lmsPendingRequestsCount","pendingRequestsCount","preregisterPendingRequestsCount","supervisedCount","hasRequests","links","notification","Boolean","availableRequestLinks","availableSections","hasAccess","hasMailbox","sendMessageForbidden","setChart","chart","setPanel","setCounters","getPanel","getCounters","getDashboardElements","getDashboard","loading","loadChart","initList","presenter","listId","itemsType","includeTotalCount","updateCounters","payload","newCounters","editRequests","onNotification","callFromDate","programs","unitBreakdown","downloadMonitoringReport","setLoadingElements","included","lists","instances","itemKey","newItem","listKey","SupervisorService","permissions","notifications","pushNotificationsPermission","permission","Notification","enableNotifications","enableServiceWorker","featureFlags","notificationPermission","_node$children","setActive","setToken","setNotificationPermissions","refreshNotificationPermissions","toggleNotificationPermission","DEFAULT_CUSTOMIZATION","primaryColor","contrastColor","contrastColorDark10","contrastTheme","overlayColor15","overlayColor50","overlayColor85","customization","primaryColorLight15","primaryColorLight25","primaryColorLight30","primaryColorLight50","primaryColorLight90","primaryColorDark10","primaryColorDark15","primaryColorDark30","primaryColorOpacity10","setAlpha","styles","StyleSheet","bgPrimary","backgroundColor","bgPrimaryDisabled","bgPrimaryLight","bgPrimaryLight25","bgPrimaryDark30","bgPrimaryOpacity10","bgNegative","bgOverlay15","bgOverlay85","bgPrimaryOpacity10Hover","bgPrimaryOpacity10Focus","bgPrimaryFocus","bgPrimaryHover","customHoverPrimary","linkPrimary","linkPrimaryLoading","linkNegative","innerLinkPrimary","textPrimary","textPrimaryLight","textPrimaryLight25","textPrimaryLight30","textPrimaryLight50","textPrimaryDark","focusTextPrimaryDark","textNegative","textNegativeActive","textNegativeFocus","textNegativeHover","textOverlay15","textOverlay85","bgPrimaryDark10Focus","bgPrimaryDark10Hover","textNegativeDark10Focus","textNegativeDark10Hover","bgPrimaryDark30Active","borderPrimary","borderColor","borderPrimaryLight25","borderPrimaryActive","borderPrimaryFocus","borderPrimaryFocusVisible","outline","ringPrimaryFocusVisible","boxShadow","borderPrimaryHover","borderNegative","borderOverlay15","borderOverlay50Hover","borderPrimaryDark30Active","activeNavPrimary","borderBottom","formControlPrimary","highlightPrimary","borderRadius","content","display","pointerEvents","border","transition","fillPrimary","fill","fillNegative","strokePrimary","stroke","strokePrimaryLight30","setCustomization","merge","updateCustomization","AdminService","canEditSubdomain","canPersonalizePlatform","canManageDomain","hasAdminPanel","firebase","initializeApp","getApp","getApps","getMessaging","getToken","onMessage","SWBearerTokenPlugin","watch","bearerToken","ready","active","postMessage","SWPushNotificationsPlugin","updatePushNotifications","fb","config","CONFIG_FIREBASE_CONFIG","initFirebase","onTokenUpdate","vapidKey","serviceWorkerRegistration","CONFIG_FIREBASE_VAPID_KEY","messaging","actionText","actionCallback","enableMessagingRegistration","disableMessagingRegistration","pushNotifications","GoogleAnalyticsPlugin","enabled","gtag","$gtag","optIn","optOut","Vuex","allowedExtensions","allowedFiles","allowedMimeTypes","mimetypeName","hasRequiredAlertFields","alertFields","required","resolvedOptions","userMenuBlocks","_state$structure$link","path","showSupportMailbox","openNavigationHelp","participantPanelRoute","structure","default","biDashboardUrl","hasBookmarks","hasCalendar","hasSupportMailbox","navigationHelpUrl","v2AdminUrl","v2BIReportsUrl","v2CampusOknUrl","v2DirectoryUrl","v2ForumModeratorUrl","v2ObserverUrl","v2TeacherUrl","hasSupervisorPanel","myBlock","hasV2Reports","supportBlock","hasSloTools","action","inSupervisorPanel","configurationUrl","externalBlock","sameTab","blocks","defaultEntryPoint","showLoginLogo","hideLogos","showMainLogo","hasFinder","pushNotification","removeNotification","setConfigs","setFeatureFlags","clearPlatform","setPlatform","props","setAlertFields","setVersionOutdated","setCurrTop","currTop","setLastSpace","spaceId","setNavigation","navigation","setBearerToken","clearNavigation","admin","adminStore","authentication","authenticationStore","calendar","calendarStore","communication","communicationStore","finder","finderStore","cookieStore","listStore","lms","lmsStore","messageStore","news","newsStore","profile","profileStore","pushNotificationStore","selection","selectionStore","structureStore","supervisor","supervisorStore","theme","themeStore","plugins","AuthorizationHeaderPlugin","Store","strict","process","versionOutdated","aliveInterval","backgroundImages","desktop","mobile","certificate","installEvent","loginStatus","originalUser","platformUrl","showInstallPrompt","unreadMessagesInterval","v2ProviderUrl","v2Url","lastSpace","loginService","_error$response","isBlocked","showCaptcha","nextTick","_configs$languagesToS","platformCode","scormPlayerUrl","tokenInfo","accessToken","apiKey","CONFIG_BUGSNAG_API_KEY","appVersion","BugsnagPluginVue","router","logoutRedirection","clearStore","_notification$title","_notification$info","maxCharacters","cookedNotification","handleInstallPrompt","preventDefault","hideInstallPrompt","installApp","prompt","addNavigation","mixins","buttonMixin","bold","iconSize","shape","validator","OK","trace","uppercase","computed","themeClasses","$css","$theme","_vm","_c","_self","staticClass","class","resolvedRoute","clickEvent","flipIcon","_t","_v","_s","$t","validCode","_e","iconClass","minWidth","interactive","InputStatus","isFocused","readonly","placeholder","innerLabel","autocomplete","borderless","rounded","maxlength","background","labelId","uniqueId","focused","containerClass","labelClass","$slots","inputClass","cookedPlaceholder","innerLabelStyle","slotStyle","showLabel","$refs","blur","mounted","activeElement","methods","setFocus","components","$event","ref","staticStyle","domProps","separation","slide","placement","fixed","show","idTimeout","created","mouseenter","mouseleave","mouseleaveTooltip","findDomReference","globalListeners","scroll","beforeDestroy","cleanUp","$el","removeEventListener","mouseLeaveTooltip","clientX","clientY","PopUp","_b","eventFromDate","eventToDate","eventType","cookedMonth","zonedTimeToUtc","startOfMonth","endOfMonth","sortBy","isValidVueClass","klass","normalizeVueClass","classes","cmp","$parent","findReference","combineNavigationGuards","guards","combineTwo","guard1","guard2","finalNext","encodeURI","resourceId","newSocial","originalResource","optimisticResource","route","newResource","iconColorClass","textNegativeLight","change","checked","arrow","flip","popper","update","destroy","tgt","contains","Popper","modifiers","offset","positionFixed","eventsEnabled","enableEventListeners","scheduleUpdate","_removeClick","$listen","disableEventListeners","directives","rawName","expression","inject","extensions","uploading","maxFileSize","maxFileSizeUpload","triggerClick","inputFile","attachment","previewUrl","addPreviewUrlIfPossible","ButtonLink","BaseButton","$tc","_removeMouseMove","mousemove","lines","onRef","onTooltip","hasEllipsis","scrollHeight","clientHeight","hidePopUp","showPopUp","mouseEnterRef","mouseLeaveRef","$pushPopUp","ToolTipElement","exit","enter","yClamp","yPadding","onWheelOutside","$popPopUp","$thereIsPopUp","listKeyToFileName","addDateAndExtentionToFileName","format","snakeCase","urlForDownload","CALLS","USER_CALLS","HISTORIC_FORMATION","pop","statusClass","statusIcon","adaptIntoSelectionObject","excluded","selectionIncludes","selectAll","numSelectedItems","instance","totalCount","filterable","nullOption","isOpen","selected","close","toggleDropdown","updateSelection","newSelection","InputText","SelectableList","_k","keyCode","nativeOn","scopedSlots","_u","proxy","stopPropagation","ParseError","ReservedCharacters","QueryFiltersParser","current","isAtEnd","parseFilters","parseFilter","peek","consume","parseString","operator","parents2filters","parents","parent","parseListKey","fv","buildParentInfoForItem","defaultI18n","area","_totalCount","programsCount","headerCoverUrl","headerUrl","headerStyle","attributes","buildParentInfoForArea","library","_totalCount2","resourcesCount","getLibraryListHeaderStyle","buildParentInfoForLibrary","itinerary","_totalCount3","_itinerary$descriptio","schools","buildParentInfoForItinerary","school","_totalCount4","_school$description","buildParentInfoForCatalogSchool","_totalCount5","_school$description2","_school$headerUrl","callsCount","coverUrl","buildParentInfoForSchool","libraryCode","primaryLibraryBackgrounds","backgroundImage","backgroundPosition","community","general_library","general","my_documents","defaultBackground","library_default","isPrimaryLibrary","parseQueryFilters","isValidISO8601","isValidNumber","cookQueryFilters","allFilters","groupBy","every","buildListQueryString","more","parentFilters","orderBy","direction","order","orderType","cookActivityNodes","nodes","parentTitle","_node$activities$","roundedTop","nextNodeIsLevel","hasSublevel","prev","blocked","topConnected","bottomConnected","roundedBottom","hidden","getCallStatusColor","getCallStatusIcon","getFirstPlayableActivity","firstPlayableActivity","hasPlayableActivity","validatingUserActivityId","isActivityImplemented","isPlayable","getLastPlayedActivity","_lastNavigationFromPl","lastNavigationFromPlugin","lastUserActivityId","translateCallStatus","camelCase","cookActivityDisplayDate","extendedVersion","normalClass","urgentClass","daysToStart","differenceInDays","daysToFinish","startText","endText","getActivityAttributes","isDesktop","isCarousel","credits","maxCredits","label","attempts","experiencedTime","hasQualification","qualification","getActivityActionIcon","getActivityIcon","getActivityLocation","hasExpired","getActivityStatusAndIcon","textClass","lowStatus","getActivityStatusIcon","stripFromDate","isPast","cookedStatus","translateActivityPassMode","passMode","passProgress","passQualification","translateActivityType","_f","smooth","ignoreReadability","ariaLabel","readabilityLimit","bgClass","readability","bgColor","percent","barStyle","maxHeight","minHeight","wrapperClass","borderRadiusStyle","cookedLabel","_this$ariaLabel","isPlaying","buttonClass","sizeButton","removable","collapsedMode","downloadUrl","iconName","resourceIconSize","actionIconSize","showSize","preview","pushModal","PlayerModal","player","layerClass","toggleActionsPopup","$togglePopUp","ActionsPopup","TruncatedText","css","Aphrodite","extend","selectorHandler","selector","baseSelector","generateSubtreeStyles","$router","isClicking","cookedDuration","cookedCurrentTime","handlerPosition","handlerStyle","cleanup","mousedown","_removeMouseUp","mouseup","bar","offsetX","newValue","touchstart","touches","touch","targetTouches","_initialTouchId","identifier","_removeTouchMove","touchmove","_removeTouchEnd","touchend","ProgressBar","button","pagePath","emitEvent","_l","keydown","popModal","showEllipsis","$media","_this$social","_this$social2","ThePlayer","ToolTip","like","bookmark","currentTarget","$attrs","template","showTemplate","templateLabel","inputLabel","removeFile","UploadButton","UploadedFile","groupCode","urlJoin","endpoint","model","$$v","downloadGroupTemplate","focusedIndex","list","unshift","checkedClass","focusOnFirstItem","select","moveFocus","evt","curr","nextSibling","previousSibling","nameKey","debounceWait","opened","getText","updateOptions","focusOnList","erase","rowOptions","opt","RemoteList","search","InputSelect","optionsSrc","remoteOptions","selectValue","otherValue","cookedOptions","otherOption","checkOther","checkValueInOptions","handleSelectInput","updateOtherValue","focusOnOther","otherText","$props","showModal","HtmlModal","InputCheckbox","getComponent","InputTextarea","InputPassword","InputNumber","InputSelectOther","RadioGroup","InputDate","InputRemote","TermsAndConditions","InputCost","InputSwitch","FileTemplate","FileGroupTemplate","getProps","source","invalidOptionsSrc","updateOptionsSrc","omit","cookedFields","getStatus","validators","rulesCopy","getValidators","validatorFunctions","$v","$error","messageFor","validation","param","$params","attribute","submit","$touch","$invalid","$reset","autofocus","step","borderStatus","parseInt","down","up","DEFAULT_BLOCK_INSTANCE","lastUpdate","_space$description$bl","_space$description","space","spaces","blockIds","blockId","block","getItemType","setLinks","setSpacesFromDescriptions","spaceDescriptions","setBlocksFromDescriptions","blockDescriptions","setBlockStatus","updateBlock","oldBlock","oldItem","saveStructure","refreshBlock","force","itemsSource","cursorClass","getDateFilters","programId","_handleDownloadResponse","groups","DoubleMap","Map","k1","k2","has","delete","PREDEFINED_POSITIONS","topLeft","absOffset","refOffset","popOffset","topRight","bottomLeft","bottomRight","rightTop","rightBottom","leftTop","leftBottom","DEFAULT_CANDIDATES","getBiggestAvailableSpace","viewport","candidates","vw","vh","positions","maxBy","DEFAULTS","xPadding","install","anchors","popups","observable","pops","_options$modalMode","_options$focus","_options$onWheelOutsi","_options$onClickOutsi","_options$onEscape","_options$xClamp","_options$yClamp","_options$xPadding","_options$yPadding","offsets","_options$absOffset","_options$refOffset","_options$popOffset","restoreFocusEl","modalMode","listeners","onClickOutside","onEscape","onClose","xClamp","_pop$onClose","$nextTick","_pop$restoreFocusEl","directive","inserted","vnode","context","oldVnode","oldValue","oldAnchor","unbind","autoplay","canAdvance","initialTime","trackProgress","paused","finished","track","stopProgressTimer","YT","Player","videoId","playerVars","playsinline","modestbranding","controls","disablekb","origin","onReady","getDuration","onStateChange","sendProgress","startProgressTimerIfNeeded","_timer","playToggle","play","pause","pauseVideo","playVideo","jumpBackwards","getCurrentTime","seekTo","jumpForward","_this$player$getCurre","_this$player$getCurre2","_this$player","PROGRESS_INTERVAL","keyup","which","onYouTubeIframeAPIReady","YoutubePlayer","maxDate","minDate","needsBottomMargin","inputClasses","showErase","refreshInput","CommunicationService","postId","periodId","formData","pick","userFormationId","userRequestId","resizable","borderClass","textareaStyle","resize","textTopClass","Question","question","rightAnswer","DEFAULT_NUMBER_TO_LETTER","setQuestion","setQuestionCode","setRightAnswer","isScorable","getTip","getCookedRightAnswer","getMatchCookedRightAnswer","getSortCookedRightAnswer","getMultipleChoiceCookedRightAnswer","getSingleChoiceCookedRightAnswer","isOnlyText","itOnlyHasText","choices","indexLeft","op","indexRight","leftItem","rightItem","letter","sort","hasAutomaticCorrection","questionCode","remoteAnswers","localAnswers","ra","la","getIconFromStatus","inheritAttrs","visible","toggleVisibility","_g","$listeners","getListId","channelId","getUrl","getPost","getPosts","getChannels","channels","getTools","tools","tool","_instance$filters$fre","_instance$filters","setChannels","channelIndex","ch","setTools","clearFilters","defaultDescription","loadMore","channelName","post","setFilters","setOrderBy","toggleDirection","updatePost","originalPost","newPost","updatedPost","access","posterUrl","preload","focusOnMount","totalDuration","volume","targetVolume","previousTargetVolume","isMuted","fullScreen","errorMessage","showControlsTimer","showControlsCountDown","showVolumeBar","visibleControls","fullScreenSupported","videoContainer","removeAttribute","load","loadedmetadata","handleCanPlay","_error$message","MediaError","MEDIA_ERR_ABORTED","handlePlaying","updateTimeline","updateProgress","newTime","mute","applyVolume","adjustVolume","newVolume","showControls","hideControls","fullScreenToggle","fullScreenExit","fullScreenEnter","focusTarget","finishVideo","volumechange","restart","fullscreenchange","fullscreenElement","mozfullscreenchange","mozFullScreen","webkitfullscreenchange","webkitIsFullScreen","PlayButton","TimeBar","VolumeBar","radioClass","isSelected","InputRadio","DEFAULT_INSTANCE","parentItem","ListNotFoundError","setLastRequest","lastRequest","setDescription","setFilterDefinition","filterDefinition","setInstance","clearAllFilterAndOrderDescriptions","itemIndex","listService","debounceByFn","fetchParent","_executeRefresh","orders","rest","justRefresh","_state$instances$key","removeFilter","filterProp","def","grandparent","_meta$cursor","_objectWithoutProperties","_excluded","makeEmptySelection","selectionQuery","selectionObject","toggleIncludedItem","toggleExcludedItem","updateFilter","setSelectAll","_state$key","clear","toggleSelection","toggleSelectAll","playing","loadingError","posterStyle","marginBottom","audioContainer","ended","timeBack","timeForward","withoutCredentials","SpinnerBlock","ImagePlayer","AudioPlayer","VideoPlayer","TextPlayer","PdfViewer","ScormPlayer","confirmText","IconCircled","cancelText","currentDialog","AlertDialog","ConfirmationDialog","NotificationDialog","defaultInit","Semaphore","nr","initFn","nrTokens","free","waiting","noTokens","acquire","release","drain","LinkService","externalLinkTarget","addLinkAttributes","getDestinationHash","goToDestination","destination","navigateTo","nav","pageRef","semaphore","pdfjs","pdf","bodyWidth","bodyHeight","fit","rendered","devicePixelRatio","pageStyle","canvasAttrs","w","render","unrender","getPage","originalViewport","getViewport","scale","pageElement","clientWidth","scaledViewport","overscaledViewport","canvas","canvasContext","getContext","annotations","getAnnotations","innerHTML","renderTextLayer","getTextContent","textDivs","$on","AnnotationLayer","linkService","dontFlip","div","LoadingSpinner","visibilities","currentPage","_page","goto","upButtonDisabled","downButtonDisabled","_this$pdf","_pdfInfo","numPages","updateVisibilities","fetchPDF","getDocument","toggleFit","isVisible","pageIdx","scrollTo","getPageIndex","getDestination","scrollTop","offsetHeight","vt","PdfPage","refInFor","gotoPage","gotoDestination","what","currency","cookedInnerLabel","listClass","flex","filteredOptions","RegExp","focusIn","focusOut","calcMultipleSelection","without","toggleSelect","searchBox","querySelectorAll","as","q","_match","mq","sortedBreakpoints","toPairs","currentIndex","$mq","$bg","$text","$assign","panels","provide","pushSidePanel","popSidePanel","toggleSidePanel","panelName","enterFrom","blockScroll","overlayClass","skipTrappingFocusWhenThisElementGetsFocus","panelInfo","$set","_panel$onClose","$delete","_panel$restoreFocusEl","removeModal","modalStack","modalInfo","_modalInfo$onClose","_modalInfo$restoreFoc","unshiftModal","isPersistent","_modalInfo$onClose2","_modalInfo$restoreFoc2","alertSkipped","cookedAlertFields","isRequired","setDefaultValues","_timezoneField$option","timezoneField","timezoneId","skippedAlert","kcodes","ValidatableForm","formFields","tip","reactToEvents","ignoreFocusChange","measured","referenceRect","popUpRect","popRect","constraints","_constraints$yPadding","popBottom","_constraints$xPadding","popRight","round","calcPopPositionWithConstraints","fitness","visibleBottom","visibleRight","visibleHeight","visibleWidth","visibleArea","totalArea","calcPopFitness","match","calcPopPosition","transform","rootClass","wheel","_cancelAnimation","refreshMeasurements","_lastFocus","trapFocus","focusFirstFocusableSilent","focusLastFocusableSilent","_document$documentEle","_document$documentEle2","handleFocus","Element","slotElements","elm","afterEnter","colorClass","infoItems","line","panelStackStyle","zIndex","marginTop","sidePanelModalLayerClass","sidePanelModalLayerTransition","shouldPanelReactToEvents","ModalLayer","panelsMixin","modalsMixin","dialog","alert","confirm","mapState","$route","modal","immediate","handler","showAlertModal","updateScrollbars","shouldPanelsReactToEvents","$popups","shouldModalReactToEvents","shouldDialogReactToEvents","AlertModal","hasDialog","hasModals","hasPanels","overflow","dismissNotification","createDialog","deleteDialog","_dialog$onClose","_dialog$restoreFocusE","$once","DialogBox","PanelStack","NotificationItem","LightPopUp","cookListener","listener","cookedListener","isPlainObject","_listener$target","_listener$options","ListenerManager","contexts","listen","storeListener","types","Set","add","manager","$manager","$clear","mixin","_componentDefinition$","listenerObject","tail","first","swap","temp","findLastIndex","lodashFindLastIndex","findLast","lodashFindLast","empty","inspect","el2str","tagName","classList","parentElement","path2str","Event","composedPath","pathArr","differenceInYears","icons","warn","spin","tabindex","getId","box","raw","ids","quote","rawId","pointerId","focusable","updateStack","updated","$children","role","viewBox","titleId","ESCAPE_MAP","escapeHTML","paths","polygons","polygon","points","sources","staticRenderFns","Icon","iconsList","forwardToNextPage","entryPoint","locationAssign","redirect","dataPolicy","isExternal","getQuery","showConfetti","colors","count","frame","confetti","particleCount","angle","spread","createPublicRoutesGuard","buildSupervisorSectionIsAvailableGuard","buildSupervisorHasGuard","VueRouter","vueRouterOptions","routes","compact","_defaultEntryPoint$ho","homePage","startDay","beforeEnter","hasExperienceFormation","hasExternalFormation","createProfileGuard","_route$query$ssoError","ssoUserError","ssoErrorRequest","ssoExpiredToken","public","decodeURI","initialSetupDone","createInitialSetupGuard","dataPolicyAccepted","createDataPolicyGuard","canHighlightSpace","_to","createCommunicationGuard","support","_from","createSpacesGuard","_r$query","currSection","vcId","activityId","chapter","requestType","buildSupervisorRequestIsAvailableGuard","historical","fullPath","base","CONFIG_CLIENT_BASE_PATH","scrollBehavior","savedPosition","lastNavigationToThisPage","beforeEach","isPublic","matched","createAllRoutesGuard","currentRoute","cheering","altKey","celebrate","sinTable","sin","PI","snowflakes","snowColors","addNewFlakesEveryNFrames","newFlakesToAdd","additionCounter","fps","updateSnowflakes","stop","currentYear","getYear","isToday","_removeListener","updateMouseCoordinates","createSnowflake","sizePercent","speedOffset","wiggle","homeX","wiggleCounter","windowHeight","flakeIdx","flake","speed","newY","newX","mouseXDist","mouseYDist","influenceArea","maxForce","dist","sqrt","influence","minX","maxX","homeY","curX","curY","snowflake","easterEggs","SnowGenerator","ConfettiMachine","egg","polling","mapGetters","scrollLeft","startPolling","updateTitle","AppChrome","EasterEggs","updateAlertFields","enableEasterEggs","UtilitiesPlugin","ListenersPlugin","PopUpPlugin","VueMq","breakpoints","Vuelidate","productionTip","spinner","$destroy","App","VueGtag"],"mappings":"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","file":"js/main.js?2baf5aa9","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t22: 0\n \t};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t22: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"0\":\"bookmarks~calendar~call~communication~faqs~list~messages~news~plugin~post~profile~program~ranking~re~e174da79\",\"1\":\"bookmarks~calendar~call~communication~faqs~list~messages~news~post~profile~program~ranking~reports~r~b3caed23\",\"2\":\"bookmarks~communication~list~profile~program~ranking~space~supervisor\",\"3\":\"bookmarks~call~communication~list~program~space\",\"5\":\"vendors~browse~play~plugin~test\",\"6\":\"vendors~high-chart~input-rich~pdfjs\",\"7\":\"calendar~call\",\"8\":\"reports~slotools\",\"9\":\"2fa\",\"10\":\"bookmarks\",\"12\":\"calendar\",\"13\":\"call\",\"14\":\"communication\",\"15\":\"data-policy\",\"16\":\"faqs\",\"17\":\"high-chart\",\"18\":\"initial-setup\",\"19\":\"input-rich\",\"20\":\"list\",\"21\":\"login\",\"23\":\"messages\",\"24\":\"news\",\"25\":\"not-found\",\"26\":\"pdfjs\",\"28\":\"plugin\",\"29\":\"post\",\"30\":\"profile\",\"31\":\"program\",\"32\":\"ranking\",\"33\":\"remember\",\"34\":\"reports\",\"35\":\"resource\",\"36\":\"slotools\",\"37\":\"space\",\"38\":\"supervisor\",\"41\":\"v-calendar\",\"42\":\"vendors~high-chart\",\"43\":\"vendors~input-rich\",\"45\":\"vendors~pdfjs\",\"46\":\"vendors~profile\",\"47\":\"vendors~supervisor\",\"49\":\"vendors~v-calendar\",\"50\":\"virtualClassroom\"}[chunkId]||chunkId) + \".js?\" + {\"0\":\"f5419088\",\"1\":\"7b9e8980\",\"2\":\"5d2a9706\",\"3\":\"a2c4585b\",\"5\":\"3955c0f3\",\"6\":\"66ea169d\",\"7\":\"de67ba88\",\"8\":\"0b467536\",\"9\":\"c051bb8a\",\"10\":\"5fd32825\",\"12\":\"df7cc489\",\"13\":\"a9dd2c20\",\"14\":\"6caee787\",\"15\":\"0399dd08\",\"16\":\"3b0728d4\",\"17\":\"f15afc42\",\"18\":\"8c71733c\",\"19\":\"79c49b4a\",\"20\":\"c6354337\",\"21\":\"ca5cb4ef\",\"23\":\"83e1bae2\",\"24\":\"2338d922\",\"25\":\"92836eb8\",\"26\":\"dd1f8f68\",\"28\":\"660de243\",\"29\":\"f2d4ec1c\",\"30\":\"140da41d\",\"31\":\"f1890eba\",\"32\":\"a1f68b12\",\"33\":\"301360a7\",\"34\":\"7abdcf83\",\"35\":\"fb89f110\",\"36\":\"ab899a6e\",\"37\":\"519bda3b\",\"38\":\"ad3166ca\",\"41\":\"cd0ef9e6\",\"42\":\"5f44a3a1\",\"43\":\"6bc6bbea\",\"45\":\"d57f0863\",\"46\":\"1ba29484\",\"47\":\"16a86e57\",\"49\":\"63600152\",\"50\":\"27b6d00f\"}[chunkId] + \"\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"0\":1,\"1\":1,\"2\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"19\":1,\"20\":1,\"21\":1,\"23\":1,\"24\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"33\":1,\"36\":1,\"37\":1,\"38\":1,\"43\":1,\"49\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"0\":\"bookmarks~calendar~call~communication~faqs~list~messages~news~plugin~post~profile~program~ranking~re~e174da79\",\"1\":\"bookmarks~calendar~call~communication~faqs~list~messages~news~post~profile~program~ranking~reports~r~b3caed23\",\"2\":\"bookmarks~communication~list~profile~program~ranking~space~supervisor\",\"3\":\"bookmarks~call~communication~list~program~space\",\"5\":\"vendors~browse~play~plugin~test\",\"6\":\"vendors~high-chart~input-rich~pdfjs\",\"7\":\"calendar~call\",\"8\":\"reports~slotools\",\"9\":\"2fa\",\"10\":\"bookmarks\",\"12\":\"calendar\",\"13\":\"call\",\"14\":\"communication\",\"15\":\"data-policy\",\"16\":\"faqs\",\"17\":\"high-chart\",\"18\":\"initial-setup\",\"19\":\"input-rich\",\"20\":\"list\",\"21\":\"login\",\"23\":\"messages\",\"24\":\"news\",\"25\":\"not-found\",\"26\":\"pdfjs\",\"28\":\"plugin\",\"29\":\"post\",\"30\":\"profile\",\"31\":\"program\",\"32\":\"ranking\",\"33\":\"remember\",\"34\":\"reports\",\"35\":\"resource\",\"36\":\"slotools\",\"37\":\"space\",\"38\":\"supervisor\",\"41\":\"v-calendar\",\"42\":\"vendors~high-chart\",\"43\":\"vendors~input-rich\",\"45\":\"vendors~pdfjs\",\"46\":\"vendors~profile\",\"47\":\"vendors~supervisor\",\"49\":\"vendors~v-calendar\",\"50\":\"virtualClassroom\"}[chunkId]||chunkId) + \".css?\" + {\"0\":\"f5419088\",\"1\":\"7b9e8980\",\"2\":\"5d2a9706\",\"3\":\"a2c4585b\",\"5\":\"3955c0f3\",\"6\":\"66ea169d\",\"7\":\"de67ba88\",\"8\":\"0b467536\",\"9\":\"c051bb8a\",\"10\":\"5fd32825\",\"12\":\"df7cc489\",\"13\":\"a9dd2c20\",\"14\":\"6caee787\",\"15\":\"0399dd08\",\"16\":\"3b0728d4\",\"17\":\"f15afc42\",\"18\":\"8c71733c\",\"19\":\"79c49b4a\",\"20\":\"c6354337\",\"21\":\"ca5cb4ef\",\"23\":\"83e1bae2\",\"24\":\"2338d922\",\"25\":\"92836eb8\",\"26\":\"dd1f8f68\",\"28\":\"660de243\",\"29\":\"f2d4ec1c\",\"30\":\"140da41d\",\"31\":\"f1890eba\",\"32\":\"a1f68b12\",\"33\":\"301360a7\",\"34\":\"7abdcf83\",\"35\":\"fb89f110\",\"36\":\"ab899a6e\",\"37\":\"519bda3b\",\"38\":\"ad3166ca\",\"41\":\"cd0ef9e6\",\"42\":\"5f44a3a1\",\"43\":\"6bc6bbea\",\"45\":\"d57f0863\",\"46\":\"1ba29484\",\"47\":\"16a86e57\",\"49\":\"63600152\",\"50\":\"27b6d00f\"}[chunkId] + \"\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tvar onLinkComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks.\n \t\t\t\t\tlinkTag.onerror = linkTag.onload = null;\n \t\t\t\t\tif (event.type === 'load') {\n \t\t\t\t\t\tresolve();\n \t\t\t\t\t} else {\n \t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n \t\t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n \t\t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\t\terr.type = errorType;\n \t\t\t\t\t\terr.request = realHref;\n \t\t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\t\treject(err);\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tdocument.head.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/v3/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = (typeof self !== 'undefined' ? self : this)[\"webpackJsonp\"] = (typeof self !== 'undefined' ? self : this)[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([522,4,44]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import debounce from \"lodash/debounce\"\nimport isBoolean from \"lodash/isBoolean\"\nimport isFunction from \"lodash/isFunction\"\nimport isNil from \"lodash/isNil\"\nimport isNumber from \"lodash/isNumber\"\nimport max from \"lodash/max\"\nimport toUpper from \"lodash/toUpper\"\nimport upperFirst from \"lodash/upperFirst\"\nimport words from \"lodash/words\"\n\nimport addDays from \"date-fns/addDays\"\nimport endOfDay from \"date-fns/endOfDay\"\nimport formatDistanceStrict from \"date-fns/formatDistanceStrict\"\nimport isSameDay from \"date-fns/isSameDay\"\nimport isValid from \"date-fns/isValid\"\nimport parseISO from \"date-fns/parseISO\"\nimport startOfDay from \"date-fns/startOfDay\"\n\nimport Bowser from \"bowser\"\nimport tinycolor from \"tinycolor2\"\n\nimport {\n EXTENSION_GROUPS,\n NATIVELY_PREVIEWABLE_EXTENSIONS,\n PREVIEWABLE_EXTENSIONS,\n PROGRAM_MODALITIES,\n RESOURCE_TYPES\n} from \"~/lib/constants\"\n\nimport { dateFnsLocales } from \"~/i18n\"\n\nexport function clamp(x, a, b) {\n return Math.max(a, Math.min(x, b))\n}\n\n/**\n * Linear interpolation between a and b with parameter t between 0 and 1\n */\nexport function lerp(a, b, t) {\n return a + t * (b - a)\n}\n\nexport function sum(xs) {\n return xs.reduce((acc, cur) => acc + cur, 0)\n}\n\nexport function arrayToObject(array, key = \"prop\") {\n return array.reduce((obj, item) => {\n return {\n ...obj,\n [item[key]]: item\n }\n }, {})\n}\n\n/**\n * zip([\"a\", \"b\", \"c\"], [1, 2, 3]) => [[\"a\", 1], [\"b\", 2], [\"c\", 3]]\n */\nexport function zip() {\n const args = Array.from(arguments)\n const maxLength = max(args.map(function(a) { return a.length }))\n const out = []\n for (let i = 0; i < maxLength; i++) {\n out.push(args.map(function(arg) { return arg[i] }))\n }\n return out\n}\n\n/**\n * Simple linear regression (http://en.wikipedia.org/wiki/Simple_linear_regression)\n *\n * linearRegression([[0, 0], [1, 1]]) => { m: 1, b: 0 }\n */\nexport function linearRegression(data) {\n // If there's only one point, arbitrarily choose a slope of 0\n // and a y-intercept of whatever the y of the initial point is.\n if (data.length == 1) return { m: 0, b: data[0][1] }\n\n let sumX = 0\n let sumY = 0\n let sumXX = 0\n let sumXY = 0\n\n // Gather the sum of all x values, the sum of all y values, and the sum of x^2 and (x*y) for each value.\n for (let [x, y] of data) {\n sumX += x\n sumY += y\n\n sumXX += x * x\n sumXY += x * y\n }\n\n // `m` is the slope of the regression line\n let m = ((data.length * sumXY) - (sumX * sumY)) / ((data.length * sumXX) - (sumX * sumX))\n\n // `b` is the y-intercept of the line.\n let b = (sumY / data.length) - ((m * sumX) / data.length)\n\n return { m, b }\n}\n\n/**\n * Call `cb` each animation frame, during `duration` ms.\n * Calls `done` when done.\n * `cb` receives a parameter between 0 and 1 indicating the progress.\n */\nexport function animate(cb, duration, done) {\n let abort = false\n\n const start = window.performance.now()\n const loop = () => {\n // The callback to requestAnimationFrame does not\n // receive the same value returned by performance.now()\n // THANKS WEB\n const now = window.performance.now()\n const dt = now - start\n const t = dt / duration\n\n if (t > 1) {\n if (done) done()\n return\n }\n if (abort) return\n\n cb(t)\n\n window.requestAnimationFrame(loop)\n }\n\n window.requestAnimationFrame(loop)\n\n const cancel = () => abort = true\n return cancel\n}\n\nexport function capitalize(s) {\n return ucfirst(new String(s).toLowerCase())\n}\n\n/**\n * Capitalize the first letter of the string\n */\nexport function ucfirst(s) {\n switch (s[0]) {\n case '¿':\n case '¡':\n return s[0] + upperFirst(s.slice(1, s.length))\n default:\n return upperFirst(s)\n }\n}\n\n/**\n * Capitalize the first letter of each word\n */\nexport function ucwords(s) {\n return words(s).map(ucfirst).join(\" \")\n}\n\n/**\n * Uppercase the whole string\n */\nexport function ucall(s) {\n return toUpper(s)\n}\n\n/**\n * It counts occurrences of a pattern in a string\n * @param {str} haystack\n * @param {regex} needle\n * @return {int}\n */\nexport function countPattern(needle, haystack) {\n if (!needle) {\n throw new Error(\"countPattern: undefined needle\")\n }\n if (!haystack) {\n throw new Error(\"countPattern: undefined haystack\")\n }\n return haystack.length - haystack.replace(needle, '').length\n}\n\n/**\n * It creates a function that checks if the number of occurrences of\n * a pattern lies in the given interval.\n * @see countPattern\n * @param {regex} needle - pattern to count\n * @param {number} min - Interval min (inclusive)\n * @param {number} max - Interval max (inclusive)\n * @return {function(haystack): int} - A function that checks if occurrences lie between boundaries\n */\n\nexport const occurrencesBetween = (needle, min, max) => {\n if (!needle) {\n throw new Error(\"occurrencesBetween: undefined needle\")\n }\n if (!min) min = 0\n if (!max) max = Infinity\n if (typeof(min) !== \"number\" || typeof(max) !== \"number\" || min > max) {\n throw new Error(`occurrencesBetween: wrong interval:\\nmin: ${min}\\nmax: ${max}`)\n }\n\n return (value) => {\n if (!value) {\n return false\n }\n const occurrences = countPattern(needle, value)\n return min <= occurrences && occurrences <= max\n }\n}\n\n/**\n * Very short date: DD/MM/YY\n */\nexport function fmtveryshortdate(locale, timeZone, date) {\n return date.toLocaleString(locale, {\n timeZone,\n day: \"numeric\",\n month: \"numeric\",\n year: \"2-digit\"\n })\n}\n\n/**\n * Short date: DD/MM/YYYY\n */\nexport function fmtdateshort(locale, timeZone, date) {\n return date.toLocaleString(locale, {\n timeZone,\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\"\n })\n}\n\n/**\n * Date\n */\nexport function fmtdate(locale, timeZone, date) {\n return date.toLocaleString(locale, {\n timeZone,\n day: \"numeric\",\n month: \"short\",\n year: \"numeric\"\n })\n}\n\n/**\n * Long date\n */\nexport function fmtdatelong(locale, timeZone, date) {\n return date.toLocaleString(locale, {\n timeZone,\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\"\n })\n}\n\n/**\n * Time\n */\nexport function fmttime(locale, timeZone, date) {\n return date.toLocaleTimeString(locale, {\n timeZone,\n hour: \"numeric\",\n minute: \"numeric\"\n })\n}\n\n/**\n * Date + Time\n */\nexport function fmtdatetime(locale, timeZone, date) {\n return date.toLocaleString(locale, { timeZone })\n}\n\n/**\n * Day of the week\n */\nexport function fmtweekday(locale, timeZone, date) {\n return date.toLocaleString(locale, { timeZone, weekday: \"long\" })\n}\n\n/**\n * Day of the week (short)\n */\nexport function fmtweekdayshort(locale, timeZone, date) {\n return date.toLocaleString(locale, { timeZone, weekday: \"short\" })\n}\n\n/**\n * Day of the month\n */\nexport function fmtmonthday(locale, timeZone, date) {\n return date.toLocaleString(locale, { timeZone, day: \"numeric\" })\n}\n\n/**\n * Month name\n */\nexport function fmtmonth(locale, timeZone, date) {\n return date.toLocaleString(locale, { timeZone, month: \"long\" })\n}\n\n/**\n * Month name, using short format\n */\nexport function fmtmonthshort(locale, timeZone, date) {\n return date.toLocaleString(locale, { timeZone, month: \"short\" })\n}\n\n/**\n * Month name, using short format + year using 4 digits\n */\nexport function fmtmonthyear(locale, timeZone, date) {\n return date.toLocaleString(locale, {\n timeZone,\n month: \"short\",\n year: \"numeric\"\n })\n}\n\nfunction getFnsLocale(locale) {\n return dateFnsLocales[locale]\n}\n\n/**\n * Return the distance between the given date and now in words.\n */\nexport function fmtwordsago(locale, date, refDate = new Date()) {\n return formatDistanceStrict(date, refDate, {\n locale: getFnsLocale(locale)\n })\n}\n\n/**\n * Returns a human-readable representation of a size given in bytes\n */\nexport function fmtsize(bytes) {\n if (bytes < 1024) return `${bytes} B`\n const exp = Math.floor(Math.log(bytes) / Math.log(1024))\n const pre = \"KMGTPE\".charAt(exp - 1)\n return `${(bytes / Math.pow(1024, exp)).toFixed(2)} ${pre}B`\n}\n\nexport function fmtbignumber(number) {\n const sign = number < 0 ? \"-\" : \"\"\n let symbol = \"\"\n number = Math.abs(number)\n if (number < 10000) {\n // do nothing\n } else if (number < 999.95e3) {\n number = `${(number/1e3).toFixed(1)}`\n symbol = \"K\"\n } else {\n number = `${(number/1e6).toFixed(1)}`\n symbol = \"M\"\n }\n // Chop decimal if it's zero.\n if (number[number.length - 1] === \"0\") {\n number = number.slice(0, - 2)\n }\n return `${sign}${number}${symbol}`\n}\n\n/**\n * Given a number of seconds it calculates how many hors, mins and seconds\n * do they represent\n *\n * @param secs Number - a number of seconds\n * @returns Object - { hours, mins, seconds }\n */\nexport function secsToHoursMinsSecs(seconds) {\n let hours = Math.floor( seconds / 3600)\n let mins = Math.floor( (seconds - 3600 * hours) / 60 )\n let secs = Math.floor( ( seconds - (3600 * hours) - (mins * 60) ) )\n\n return {\n hours, mins, secs\n }\n}\n\n/**\n * Formats a number of seconds into a \"(0)minutes:(0)seconds\" fashion\n * @param secs Number - a number of seconds\n * @returns String - using (0)minutes:(0)seconds format\n */\nexport function fmtDigitalTimeMinsSecs(seconds) {\n if (seconds > 0) {\n const time = secsToHoursMinsSecs(seconds)\n\n const mins = time.mins > 9 ? time.mins : \"0\" + time.mins\n const secs = time.secs > 9 ? time.secs : \"0\" + time.secs\n\n return `${mins}:${secs}`\n }\n return \"00:00\"\n}\n\n/**\n * Formats a number of seconds into a \"(0)hours:(0)minutes\" fashion\n * @param secs Number - a number of seconds\n * @returns String - using (0)hours:(0)minutes format\n */\nexport function fmtDigitalTimeHoursMins(seconds) {\n\n if (seconds > 0) {\n const time = secsToHoursMinsSecs(seconds)\n\n const hours = time.hours > 9 ? time.hours : \"0\" + time.hours\n const mins = time.mins > 9 ? time.mins : \"0\" + time.mins\n\n return `${hours}:${mins}`\n }\n return \"00:00\"\n}\n\n\n/**\n * Formats a number of seconds into a \"(0)hours:(0)minutes:(0)seconds\" fashion\n * @param secs Number - a number of seconds\n * @returns String - using (0)hours:(0)minutes:(0)seconds format\n */\nexport function fmtDigitalTimeHoursMinsSecs(seconds) {\n if (seconds > 0) {\n const time = secsToHoursMinsSecs(seconds)\n\n const hours = time.hours > 9 ? time.hours : \"0\" + time.hours\n const mins = time.mins > 9 ? time.mins : \"0\" + time.mins\n const secs = time.secs > 9 ? time.secs : \"0\" + time.secs\n\n return `${hours}:${mins}:${secs}`\n }\n return \"00:00:00\"\n}\n\n /**\n * Formats a number of seconds into a \"${hours}h ${minutes}m\" fashion\n * @param secs Number - a number of seconds\n * @returns String - using '${hours}h ${minutes}m' format\n */\nexport function fmtTimeHourMin(sec) {\n const { hours, mins, secs } = secsToHoursMinsSecs(sec)\n let result = \"\"\n if (hours) {\n result += `${hours}h`\n }\n if (hours && mins) {\n result += \" \"\n }\n if (mins) {\n result += `${mins}m`\n }\n if (hours) return result\n\n if (mins && secs) {\n result += \" \"\n }\n if (secs) {\n result += `${secs}s`\n }\n return result\n}\n\n/**\n * Ensure string is at most `len` characters long\n */\nexport function ellipsis(str, len) {\n if (str.length <= len) return str\n return str.slice(0, len - 1) + \"…\"\n}\n\n/**\n * Parse some HTML string and return its innerText\n */\nexport function html2text(html) {\n if (!html) return \"\"\n\n return new window.DOMParser()\n .parseFromString(html, \"text/html\")\n .documentElement\n .textContent\n}\n\nexport function coalesce(string) {\n return string ? string.trim().replace(/\\s\\s+/g, \" \") : \"\"\n}\n\n/**\n * Depth-first Preorder traverse a tree-like structure, calling `cb`\n * on each node. Uses the property name given to find\n * a node's children (Default: \"children\").\n *\n * If the callback function returns a truthy value,\n * traversal is stopped.\n *\n * depth serves you to know how deep in the tree you are during the traverse\n */\nexport function traverse(node, cb, prop=\"children\", _depth=0, _parent=null) {\n if (cb(node, _depth, _parent)) {\n return true\n }\n const children = isFunction(prop) ? prop(node) : Array.from(node[prop])\n if (children.length) {\n for (const child of children) {\n if (traverse(child, cb, prop, _depth+1, node)) {\n return true\n }\n }\n }\n}\n\nexport function traverseBackwards(node, cb, prop=\"children\", _depth=0, _parent=null) {\n if (cb(node, _depth, _parent)) {\n return true\n }\n const children = isFunction(prop) ? prop(node) : Array.from(node[prop])\n if (children.length) {\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i]\n if (traverseBackwards(child, cb, prop, _depth+1, node)) {\n return true\n }\n }\n }\n}\n\n/**\n * Returns a promise that resolves when `cb` returns true.\n * Rejects if `timeout` ms are reached.\n *\n * Warning: Every time you use waitFor, you're trying to do something that neither\n * JS nor Vue are designed for: blocking calls.\n * With great power comes great responsability.\n */\nexport function waitFor(cb, timeout) {\n const start = performance.now()\n return new Promise((resolve, reject) => {\n const id = setInterval(() => {\n const now = performance.now()\n if ((now - start) > timeout) {\n clearInterval(id)\n reject(new Error(`Waiting failed after ${timeout}ms.`))\n } else {\n try {\n const val = cb()\n if (val) {\n clearInterval(id)\n resolve(val)\n }\n } catch (e) {\n // It's fine\n }\n }\n })\n })\n}\n\n/**\n * Returns a promise that resolves after `ms` ms.\n */\nexport function sleep(ms) {\n return new Promise(resolve => {\n setTimeout(resolve, ms)\n })\n}\n\n/**\n * Returns true if the given coordinates are inside the given element.\n * Ignores transformations for `el`, but not for its ancestors.\n * `x` ^ `y` may be null, and if so, that axis is not checked.\n *\n * @deprecated this is crap\n */\nexport function inside(el, x=null, y=null) {\n if (el.nodeType == Node.COMMENT_NODE) return false\n\n let left = el.offsetLeft\n let top = el.offsetTop\n\n if (el.offsetParent) {\n const rect = el.offsetParent.getBoundingClientRect()\n left += rect.left\n top += rect.top\n }\n\n const rect = el.getBoundingClientRect()\n\n const right = left + rect.width\n const bottom = top + rect.height\n\n let inside = true\n if (x != null) inside &= x >= left && x < right\n if (y != null) inside &= y >= top && y < bottom\n return inside\n}\n\n/**\n * Generate an UUIDv4.\n * From the glorious SO answer: https://stackoverflow.com/a/2117523\n */\n export function uuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n let r = Math.random() * 16 | 0\n let v = c == 'x' ? r : (r & 0x3 | 0x8)\n return v.toString(16)\n })\n}\n\n/**\n * I can't never remember the name of this method, so fuck it.\n * rherrero: 30/08/2018\n */\nexport function rect(el) {\n return el.getBoundingClientRect()\n}\n\n/**\n * Call `cb` `n` times, with the iteration index.\n */\nexport function times(n, cb) {\n const vs = []\n for (let i = 0; i < n; i++) {\n vs.push(cb(i))\n }\n return vs\n}\n\n/**\n * Returns a random Number inside [`min`, `max`)\n */\nexport function rand(min, max) {\n return Math.random() * (max - min) + min\n}\n\n/**\n * Returns a random *integer* Number inside [`min`, `max`)\n */\nexport function randi(min, max) {\n min = Math.ceil(min)\n max = Math.floor(max)\n return Math.floor(Math.random() * (max - min)) + min\n}\n\n// From https://embed.plnkr.co/plunk/7rysRn,\n// Another source: https://github.com/w3c/aria-practices/issues/1428\nexport function isFocusable(element) {\n if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute(\"tabIndex\") !== null)) {\n return true\n }\n\n if (element.disabled) {\n return false\n }\n\n switch (element.nodeName) {\n case \"A\":\n return !!element.href && element.rel != \"ignore\"\n\n case \"INPUT\":\n return element.type != \"hidden\" && element.type != \"file\"\n\n case \"BUTTON\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return true\n\n default:\n return false\n }\n}\n\n/**\n * Set focus on the first focusable element of `container`.\n *\n * Returns true if it found a focusable element.\n */\nexport function focusFirstFocusable(container) {\n return traverse(container, el => {\n if (isFocusable(el)) {\n el.focus()\n return true\n }\n })\n}\n\n/**\n * Set focus on the last focusable element of `container`\n *\n * Returns true if it found a focusable element.\n */\nexport function focusLastFocusable(container) {\n return traverseBackwards(container, el => {\n if (isFocusable(el)) {\n el.focus()\n return true\n }\n })\n}\n\nexport async function downloadResponseFile({ response, fileName, t }) {\n if (!response.ok) {\n throw new Error(t(\"errors.fileGenerationError\"))\n }\n const blob = await response.blob()\n downloadBlob({ blob, fileName })\n}\n\nexport async function downloadBlob({ blob, fileName }) {\n const href = window.URL.createObjectURL(blob)\n const anchor = document.createElement(\"a\")\n anchor.href = href\n anchor.download = fileName\n document.body.appendChild(anchor)\n anchor.click()\n anchor.remove()\n window.URL.revokeObjectURL(href)\n}\n\n/**\n * Open a file request window. Resolves to an Array of\n * selected Files.\n */\nexport function requestFiles({ accept=\"\", multiple=false, doc=document }={}) {\n return new Promise((resolve) => {\n const input = doc.createElement(\"input\")\n\n input.setAttribute(\"type\", \"file\")\n if (multiple) input.setAttribute(\"multiple\", true)\n if (accept) input.setAttribute(\"accept\", accept)\n input.style.opacity = \"0\"\n\n input.addEventListener(\"change\", () => {\n const files = Array.from(input.files || [])\n resolve(files)\n doc.body.removeChild(input)\n })\n\n doc.body.appendChild(input)\n input.click()\n })\n}\n\n/**\n * File -> \"data:[][;base64],\"\n */\nexport function readAsDataURL(file) {\n return new Promise((resolve) => {\n const reader = new window.FileReader()\n reader.addEventListener(\"load\", () => {\n resolve(reader.result)\n })\n reader.readAsDataURL(file)\n })\n}\n\nexport function isFullScreenSupported(el) {\n if (el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen) {\n return true\n } else {\n return false\n }\n}\n\n/**\n * Requests the browser to exit the full screen mode\n */\nexport function exitFullscreen() {\n if (document.exitFullscreen) {\n return document.exitFullscreen()\n } else if (document.webkitExitFullscreen) {\n return document.webkitExitFullscreen()\n } else if (document.mozCancelFullScreen) {\n return document.mozCancelFullScreen()\n } else if (document.msExitFullscreen) {\n return document.msExitFullscreen()\n } else {\n throw new Error(\"Fullscreen API is not supported.\")\n }\n}\n\n/**\n * Requests the browser to start the full screen mode\n */\nexport function requestFullscreen(el) {\n if (el.requestFullscreen) {\n return el.requestFullscreen()\n } else if (el.webkitRequestFullscreen) {\n return el.webkitRequestFullscreen()\n } else if (el.mozRequestFullScreen) {\n return el.mozRequestFullScreen()\n } else if (el.msRequestFullscreen) {\n return el.msRequestFullscreen()\n } else {\n throw new Error(\"Full-screen API is not supported.\")\n }\n}\n\n/**\n * Transforms a number into a letter:\n * 0 -> A\n * 1 -> B\n * 2 -> C\n * ...\n * 25 -> Z\n */\nexport function numberToLetter(number) {\n if (number < 0 || number > 25) {\n throw new Error(`This function is limited to numbers between 0 & 25, the value used was ${number}`)\n }\n return String.fromCharCode(65 + number)\n}\n\n\nexport function isPreviewable(extension) {\n extension = extension.toLowerCase()\n return PREVIEWABLE_EXTENSIONS.includes(extension)\n}\n\nexport function isNativelyPreviewable(extension) {\n extension = extension.toLowerCase()\n return NATIVELY_PREVIEWABLE_EXTENSIONS.includes(extension)\n}\n\n/**\n * \"foo=bar&baz=cat&order=name\" => { foo: \"bar\", baz: \"cat\", \"orderBy\": \"name\" }\n * Without the initial: `?`\n */\nexport function parseQueryString(queryString = '') {\n const fields = queryString.split(\"&\")\n const values = {}\n for (const field of fields) {\n if (!field) continue\n const [name, value] = field.split('=')\n values[name] = decodeURIComponent(value)\n }\n return values\n}\n\n\nexport function tryParseValue(str) {\n { // Boolean\n if ([\"true\", \"false\"].includes(str)) {\n return str === \"true\"\n }\n }\n\n { // Number\n const number = Number(str)\n if (!Number.isNaN(number)) {\n return number\n }\n }\n\n return str\n}\n\n\n/**\n * { foo: \"bar\", baz: \"cat\" } => \"foo=bar&baz=cat\"\n * Without the initial: `?`\n */\nexport function buildQueryString(fields) {\n return Object.entries(fields)\n .filter(([_, value]) => !isNil(value) && value !== '')\n .map(([name, value]) => `${name}=${encodeURIComponent(value)}`)\n .join(\"&\")\n}\n\nexport function filterHasActiveValue(value, description) {\n if (isNil(value)) return false\n\n if (description) {\n switch (description.type) {\n case \"text\":\n return value !== \"\"\n\n case \"number\":\n return true\n\n case \"switch\":\n case \"checkbox\":\n return value\n\n case \"select\":\n case \"select-remote\":\n return value !== null\n\n case \"checkbox-group\":\n case \"multi-select\":\n case \"multi-select-remote\":\n return value.length > 0\n\n case \"rating\":\n return value > 0\n\n case \"size\":\n case \"range\": {\n const { min=0, max=Infinity } = description\n const { start, end } = value\n return (start !== min || end !== max)\n }\n\n case \"date\":\n return ((\"start\" in value) || (\"end\" in value))\n\n default:\n throw new Error(`Unknown filter type ${description.type}`)\n }\n } else {\n return value !== \"\"\n }\n}\n\nexport function numFiltersWithActiveValue(filterValues, filterDescriptions) {\n return Object.entries(filterValues).reduce((acc, [name, value]) => {\n const desc = filterDescriptions.find(f => f.prop === name)\n return filterHasActiveValue(value, desc) ? acc + 1 : acc\n }, 0)\n}\n\nexport function escapeChars(str, reservedCharacters, escapeChar=\"\\\\\") {\n str = str.toString()\n let out = \"\"\n for (let i = 0; i < str.length; i++) {\n const char = str[i]\n if (reservedCharacters.concat(escapeChar).includes(char)) {\n out += `${escapeChar}${char}`\n } else {\n out += char\n }\n }\n return out\n}\n\nexport function unescapeChars(str, escapeChar=\"\\\\\") {\n str = str.toString()\n let out = \"\"\n for (let i = 0; i < str.length; i++) {\n const char = str[i]\n if (char === escapeChar) continue\n out += char\n }\n return out\n}\n\nexport function buildQueryFilters(values={}, descriptions=[], operators={}) {\n const reservedCharacters = [\":\", \";\", \"|\", \"[\", \"]\"]\n const escape = v => escapeChars(v, reservedCharacters)\n const pairs = []\n for (const [name, value] of Object.entries(values)) {\n const description = descriptions.find(f => f.prop === name)\n\n if (!filterHasActiveValue(value, description)) continue\n\n if (description) {\n switch (description.type) {\n case \"text\": {\n pairs.push(`${name}:${escape(value)};LIKE`)\n break\n }\n\n case \"number\": {\n pairs.push(`${name}:${value}`)\n break\n }\n\n case \"switch\":\n case \"checkbox\": {\n pairs.push(`${name}:${value}`)\n break\n }\n\n case \"select\":\n case \"select-remote\":\n pairs.push(`${name}:${escape(value)}`)\n break\n\n case \"checkbox-group\":\n case \"multi-select\":\n case \"multi-select-remote\":\n for (const item of value) {\n pairs.push(`${name}[]:${escape(item)}`)\n }\n break\n\n\n case \"rating\": {\n pairs.push(`${name}:${value}`)\n break\n }\n\n case \"size\":\n case \"range\": {\n const { min=0, max=Infinity } = description\n const { start, end } = value\n if (start > min) {\n pairs.push(`${name}:${start};GE`)\n }\n if (end < max) {\n pairs.push(`${name}:${end};LE`)\n }\n break\n }\n\n case \"date\": {\n let { start, end } = value\n if (start) {\n pairs.push(`${name}:${escape(start)};GE`)\n }\n if (end) {\n // We add one day to the end date so it includes the end date in the results\n end = addDays(parseISO(end), 1).toISOString()\n pairs.push(`${name}:${escape(end)};LE`)\n }\n break\n }\n\n default:\n throw new Error(`Unknown filter type ${description.type}`)\n }\n } else {\n if (Array.isArray(value)) {\n value.forEach((item, index) => {\n let pair = `${name}[]:${escape(item)}`\n if (operators[name]?.[index]) pair += `;${operators[name][index]}`\n pairs.push(pair)\n })\n } else if (typeof(value) === \"object\") {\n // It has to be a date or number range\n let { start, end } = value\n if (start) {\n pairs.push(`${name}:${escape(start)};GE`)\n }\n if (end) {\n if (isValid(parseISO(end))) {\n // We add one day to the end date so it includes the end date in the results\n end = addDays(parseISO(end), 1).toISOString()\n }\n pairs.push(`${name}:${escape(end)};LE`)\n }\n } else {\n let pair = `${name}:${escape(value)}`\n if (operators[name]) pair += `;${operators[name]}`\n pairs.push(pair)\n }\n }\n }\n\n return pairs.join(\"|\")\n}\n\nfunction _reachYiqThresold(color) {\n const { r, g, b } = tinycolor(color).toRgb()\n const yiq = (r * 299 + g * 587 + b * 114) / 1000\n return yiq >= 160\n}\n\n// Based on the color-yiq bootstrap function.\nexport function getContrastColor(color) {\n if (_reachYiqThresold(color)) {\n return \"#606060\"\n } else {\n return \"#ffffff\"\n }\n}\n\nexport function getContrastTheme(color) {\n if (_reachYiqThresold(color)) {\n return \"dark\"\n } else {\n return \"light\"\n }\n}\n\nexport function lighten(color, amount) {\n color = tinycolor(color)\n return tinycolor.mix(color, \"#fff\", amount).toHexString()\n}\n\nexport function darken(color, amount) {\n color = tinycolor(color)\n return tinycolor.mix(color, \"#000\", amount).toHexString()\n}\n\n// Darken or lighten color based on same criteria than getContrastColor\nexport function getOverlayColor(color, amount) {\n const transform = _reachYiqThresold(color) ? darken : lighten\n return transform(color, amount)\n}\n\nexport function guessPlayerFromExtension(extension) {\n extension = extension.toLowerCase()\n if (EXTENSION_GROUPS.image.includes(extension)) {\n return \"image\"\n } else if (EXTENSION_GROUPS.video.includes(extension)) {\n return \"video\"\n } else if (EXTENSION_GROUPS.audio.includes(extension)) {\n return \"audio\"\n } else if (EXTENSION_GROUPS.text.includes(extension)) {\n return \"text\"\n } else if (EXTENSION_GROUPS.doc.includes(extension)) {\n return \"pdf\"\n } else {\n throw new Error(`Type ${extension} has no player defined`)\n }\n}\n\nexport function getExtensionIcon(extension) {\n if (EXTENSION_GROUPS.image.includes(extension)) {\n return \"img-doc\"\n }\n\n if (EXTENSION_GROUPS.video.includes(extension)) {\n return \"video-doc\"\n }\n\n if (EXTENSION_GROUPS.audio.includes(extension)) {\n return \"audio-doc\"\n }\n\n if (EXTENSION_GROUPS.text.includes(extension)) {\n return \"file-alt\"\n }\n\n if (EXTENSION_GROUPS.compressed.includes(extension)) {\n return \"zip\"\n }\n\n if ([\"pdf\"].includes(extension)) {\n return \"pdf\"\n }\n\n if ([\"doc\", \"docx\", \"odt\"].includes(extension)) {\n return \"word\"\n }\n\n if ([\"xls\", \"xlsx\", \"ods\"].includes(extension)) {\n return \"xls\"\n }\n\n if ([\"ppt\", \"pptx\", \"odp\"].includes(extension)) {\n return \"ppt\"\n }\n\n else {\n return \"file-alt\"\n }\n\n}\n\n/**\n * True if all needles are found in haystack\n */\nexport function includesAll(haystack, needles) {\n return needles.every(needle => haystack.includes(needle))\n}\n\nexport function translateProgramModality(t, modality) {\n modality = modality.toLowerCase()\n if (!PROGRAM_MODALITIES.includes(modality)) {\n throw new Error(`Unknown program modality ${modality}`)\n }\n\n switch (modality) {\n case \"online\":\n return t(\"common.online\")\n\n case \"offline\":\n return t(\"common.offline\")\n\n case \"blended\":\n case \"mixed\":\n return t(\"common.blended\")\n\n default:\n throw new Error(`Unknown program modality ${modality}`)\n }\n}\n\nexport function translateResourceType(t, type, extension, mimeType) {\n if (!RESOURCE_TYPES.includes(type)) {\n throw new Error(`Unknown resource type ${type}`)\n }\n\n switch (type) {\n case \"activity\": {\n if (mimeType == \"activity/scorm\") {\n return t(\"common.resourceTypeFileActivity\")\n } else if (mimeType == \"activity/social_video\") {\n return t(\"common.socialVideo\")\n } else if (mimeType == \"activity/scorm_video\") {\n return t(\"common.scormVideo\")\n } else {\n throw new Error(`Don't know how to translate ${type} ${extension} ${mimeType}`)\n }\n }\n case \"audio\": return t(\"common.resourceTypeFileAudio\")\n case \"document\": {\n switch (extension) {\n case \"ppt\":\n case \"pptx\": return t(\"common.resourceTypeFilePresentation\")\n\n case \"xls\":\n case \"xlsx\": return t(\"common.resourceTypeFileCalcSheet\")\n\n default: return t(\"common.resourceTypeFileDocument\")\n }\n }\n case \"image\": return t(\"common.resourceTypeFileImage\")\n case \"miscellany\": return t(\"common.resourceTypeFileMiscellany\")\n case \"podcast\": return t(\"common.resourceTypeFilePodcast\")\n case \"presentation\": return t(\"common.resourceTypeFilePresentation\")\n case \"url\": return t(\"common.resourceTypeFileUrl\")\n case \"video\": return t(\"common.resourceTypeFileVideo\")\n case \"videocast\": return t(\"common.resourceTypeFileVideocast\")\n default:\n throw new Error(\"Shouldn't happen\")\n }\n}\n\n// \"14 de marzo de 2011 | 00:00 - 01:00\"\n// \"14 de marzo de 2011 | 04:00 - 15 de marzo de 2011 | 01:00\"\nexport function formatDateRange(startDate, endDate, locale, timezone) {\n startDate = parseISO(startDate)\n endDate = parseISO(endDate)\n\n if (isSameDay(startDate, endDate)) {\n return `${fmtdatelong(locale, timezone, startDate)} | ${fmttime(locale, timezone, startDate)} - ${fmttime(locale, timezone, endDate)}`\n } else {\n return `${fmtdatelong(locale, timezone, startDate)} | ${fmttime(locale, timezone, startDate)} - ${fmtdatelong(locale, timezone, endDate)} | ${fmttime(locale, timezone, endDate)}`\n }\n}\n\n\n\n/**\n * Takes an array of ItemDescription and returns an array in a format easier\n * to use from a Vue template.\n * Can include extra attributes for each item.\n */\nexport function cookItemsForCards(cardMap, items, extraAttrs={}) {\n return items.map(({ type, value }) => {\n const key = value._meta.key\n const component = cardMap[type]\n if (!component) {\n throw new Error(`Card ${type} was not found it the card map`)\n }\n return {\n key: `${type}:${value[key]}`,\n component,\n value,\n attrs: {\n item: value,\n ...extraAttrs\n }\n }\n })\n}\n\n/**\n * Groups items by the value returned by the callback, but only if they are contiguous.\n * [Type] => [[Type]]\n */\nexport function groupContiguousBy(xs, cb) {\n const xxs = []\n\n let lastValue = null\n for (let x of xs) {\n if (xxs.length == 0) {\n lastValue = cb(x)\n xxs.push([x])\n continue\n }\n\n const value = cb(x)\n if (value == lastValue) {\n xxs.last().push(x)\n } else {\n xxs.push([x])\n }\n lastValue = value\n }\n\n return xxs\n}\n\n/**\n * Tests position: sticky availability.\n */\nexport function doesPositionStickyWork() {\n const link = document.createElement(\"a\")\n link.style.cssText = \"position:sticky;\"\n return link.style.position.indexOf(\"sticky\") !== -1\n}\n\n/**\n * Add leading zeros to 'num' until it reachs 'size' digits\n */\nexport function pad(num, size) {\n let s = num+\"\"\n while (s.length < size) s = \"0\" + s\n return s\n}\n\n/**\n * Returns true if the passed timeZone is supported by the system\n * From https://stackoverflow.com/questions/44115681/javascript-check-if-timezone-name-valid-or-not\n */\nexport function supportedTimeZone(timeZone) {\n try {\n Intl.DateTimeFormat(undefined, { timeZone })\n return true\n } catch (ex) {\n return false\n }\n}\n\nexport function buildValidatorsForPasswordValidationRules(rules) {\n const validations = {}\n\n for (let rule of rules) {\n switch (rule.key) {\n case \"lowercase\":\n validations.lower = occurrencesBetween(/[a-z]/g, rule.min, rule.max)\n break\n\n case \"uppercase\":\n validations.upper = occurrencesBetween(/[A-Z]/g, rule.min, rule.max)\n break\n\n case \"numeric\":\n validations.numeric = occurrencesBetween(/[0-9]/g, rule.min, rule.max)\n break\n\n case \"symbol\":\n validations.symbolic = occurrencesBetween(/[ºª\\\\!\\|\"@·#\\$~%&\\/\\(\\)=\\?¿'¡\\[\\]\\{\\}\\+,\\.;:\\-_<>]/g, rule.min, rule.max)\n break\n\n default:\n throw new Error(`Unknown validation rule: ${rule.key}`)\n }\n }\n\n return validations\n}\n\n/**\n * Returns an object containing the detected browser and operative system (os) used\n * @param {String} userAgent\n */\nexport function detectPlatform(userAgent = window.navigator.userAgent) {\n const browser = Bowser.getParser(userAgent)\n const operativeSystem = browser.getOSName()\n let browserName = browser.getBrowserName().toLowerCase()\n switch (browserName) {\n case \"firefox\":\n case \"chrome\":\n case \"opera\":\n case \"safari\":\n break\n case \"chromium\":\n case \"samsung internet for android\":\n browserName = \"chrome\"\n break\n case \"microsoft edge\":\n browserName = \"edge\"\n break\n case \"internet explorer\": {\n const browserVersion = browser.getBrowserVersion()\n browserName = `ie${Number(browserVersion)}`\n break\n }\n default:\n break\n // Do nothing, returns browserName as browser\n }\n\n return {\n os: operativeSystem,\n browser: browserName\n }\n}\n\n/**\n * Debounces calls to `func` for which `keyCallback` returns the same key.\n * `wait` and `options` are passed \"as is\" to lodash/debounce.\n */\nexport function debounceBy(func, wait, options, keyCallback) {\n const repository = {}\n\n const fn = (...params) => {\n const key = keyCallback(...params)\n if (!(key in repository)) {\n repository[key] = debounce(func, wait, options)\n }\n return repository[key](...params)\n }\n\n // TODO this could be fancier, only canceling / flushing functions with a given key,\n // but it's good enough for now.\n fn.cancel = () => Object.values(repository).forEach(fn => fn.cancel())\n fn.flush = () => Object.values(repository).forEach(fn => fn.flush())\n\n return fn\n}\n\n/**\n * Returns an unfulfilled Promise and its resolve and reject functions.\n */\nfunction newPromiseInPieces() {\n const output = {}\n output.promise = new Promise((resolve, reject) => {\n output.resolve = resolve\n output.reject = reject\n })\n return output\n}\n\n/**\n * Properly debounces an async function:\n * When the debounced function is called, it returns a Promise that resolves (or rejects)\n * when the original functions if finally executed.\n * Until the function is finally executed, all calls return the same Promise.\n * View tests for more details.\n */\nexport function debounceAsync(fn, ms) {\n let promisePieces = null\n const wrapper = (resolve, reject, ...args) => {\n fn(...args).then(resolve, reject).finally(() => {\n promisePieces = null\n })\n }\n const debouncedWrapper = debounce(wrapper, ms)\n\n return (...args) => {\n if (!promisePieces) promisePieces = newPromiseInPieces()\n const { promise, resolve, reject } = promisePieces\n debouncedWrapper(resolve, reject, ...args)\n return promise\n }\n}\n\nexport function showBookmarked(social) {\n return social && isBoolean(social.bookmarked)\n}\n\nexport function showLikes(social) {\n return social && isBoolean(social.liked)\n}\n\nexport function showRating(social) {\n return social && (isNumber(social.rating) || isBoolean(social.rated))\n}\n\nexport function showComments(social) {\n return social && isNumber(social.commentsCount)\n}\n\nexport function formatTime(value, unit) {\n const codes = ['h', 'm', 's']\n const measures = {\n s: 1,\n m: 60,\n h: 60 * 60\n }\n let seconds = value * measures[unit]\n let res = []\n for (let code of codes) {\n if (seconds >= measures[code]) {\n let number = Math.floor(seconds / measures[code])\n res.push(`${number}${code}`)\n seconds = seconds - (number * measures[code])\n }\n }\n if (!res.length) res.push(`0${unit}`)\n return res.join(' ')\n}\n\nexport function openSSO({ url, callback, interval=500, popup }) {\n if (popup.window) {\n popup.window.focus()\n return\n }\n\n popup.window = window.open(url)\n let timer = null\n timer = window.setInterval(function() {\n if (!popup.window.opener) {\n callback()\n popup.window = null\n window.clearInterval(timer)\n }\n }, interval)\n}\n\nexport function imageWithVeil(url, { startOpacity=0.3, endOpacity=0.3 }={}) {\n startOpacity = Number(startOpacity)\n endOpacity = Number(endOpacity)\n if (url) {\n return `linear-gradient(to bottom, rgba(0, 0, 0, ${startOpacity}), rgba(0, 0, 0, ${endOpacity})), url(${url})`\n } else {\n return `linear-gradient(to bottom, rgba(0, 0, 0, ${startOpacity+0.2}), rgba(0, 0, 0, ${endOpacity+0.2}))`\n }\n}\n\nexport function getUserInfo({ jobTitle, mainDomain, mainUnit }) {\n return [jobTitle, mainDomain, mainUnit].filter(v => !!v).join(\" | \")\n}\n\n/**\n * A function that returns if a given date can be considered as midnight, taking into account a\n * threshold before and after 00:00 given in seconds\n * @param {Date} date\n * @param {number} threshold - Seconds\n * @return {boolean}\n */\nexport function isMidnight(date, threshold=300) {\n threshold = threshold * 1000 // Seconds to milliseconds\n const previousMidnight = startOfDay(date).getTime()\n const nextMidnight = endOfDay(date).getTime()\n\n const eventDate = date.getTime()\n\n return Math.abs(previousMidnight - eventDate) <= threshold || Math.abs(nextMidnight - eventDate) <= threshold\n}\n\n// https://github.com/ai/nanoevents\nexport const createBus = () => ({\n events: {},\n emit(event, ...args) {\n ;(this.events[event] || []).forEach(i => i(...args))\n },\n on(event, cb) {\n ;(this.events[event] = this.events[event] || []).push(cb)\n return () =>\n (this.events[event] = (this.events[event] || []).filter(i => i !== cb))\n }\n})\n","import isNil from \"lodash/isNil\"\nimport join from \"url-join\"\nimport bus from \"~/bus\"\nimport i18n from \"~/i18n\"\nimport { notify } from \"~/lib/bugsnag\"\n\nimport { sleep } from \"~/lib/utils\"\n\nimport { version } from \"~package\"\n\nexport class ServerError extends Error {\n constructor(response) {\n super(i18n.t(\"errors.serverError\"))\n this.response = response\n }\n}\n\nexport class ApiError extends Error {\n constructor(response) {\n super(response.errors?.join(\"\\n\") ?? response.message)\n this.response = response\n }\n}\n\n/**\n * This type of error is thrown when plugins try to access play actions while being in review mode\n */\nexport class PluginReviewActionNotAllowedError extends Error {\n constructor(response) {\n super(response.errors?.join(\"\\n\") ?? response.message)\n this.response = response\n }\n}\n\n/**\n * Keeps track of all pending requests made using the context.\n */\nexport default class AjaxCtx {\n constructor(baseUrl=\"\", defaults={}) {\n this.baseUrl = baseUrl\n this.requests = []\n this.defaults = defaults\n }\n\n /** Fakes navigator.sendBeacon since sendBeacon in chrome is not ready to send JSON data */\n sendBeacon(url, data) {\n // Firefox throws an error if the param of new Request() isn't a valid url\n if (\"keepalive\" in new Request(\"http://invent.es\")) {\n return this.fetchData(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n keepalive: true\n })\n } else {\n const request = new XMLHttpRequest()\n request.withCredentials = this.defaults.credentials === \"include\"\n const cookedUrl = join(this.baseUrl, url)\n request.open(\"POST\", cookedUrl, false)\n for (const [name, value] of Object.entries(this.defaults.headers)) {\n request.setRequestHeader(name, value)\n }\n request.send(JSON.stringify(data))\n }\n }\n\n /**\n * Proxies the call to fetch, stores the requested url while it's pending.\n * Include @baseUrl field in @init in order to use a different baseUrl from default one.\n *\n * @throws {TypeError} Network error.\n * @throws {ServerError} When the response status code is 500.\n */\n async fetch(url, init) {\n init = Object.assign({}, this.defaults, init)\n const baseUrl = isNil(init.baseUrl) ? this.baseUrl : init.baseUrl\n url = join(baseUrl, url)\n // waitFor includes the a string with the queries we want to wait for i.e: \"/participant-activity/\"\n if (init.waitFor) {\n let pendingRequests = this.requests.filter(r => r.url.includes(init.waitFor))\n let waitingTime = 0\n while (pendingRequests.length > 0 && waitingTime < 10000) {\n await sleep(100)\n pendingRequests = this.requests.filter(r => r.url.includes(init.waitFor))\n waitingTime += 100\n }\n }\n const method = init.method || \"GET\"\n const request = { url, method }\n request.abortController = new AbortController()\n\n this.cancelRepeatedRequests(url)\n this.requests.push(request)\n init = {...init, signal: request.abortController.signal }\n\n try {\n const response = await fetch(url, init)\n\n if (response.ok) return response\n\n if (response.status >= 500) {\n if (response.status === 503) {\n window.location.assign(`${CONFIG_API_BASE_URL}/custom/maintenance/v3/updating.html`)\n } else {\n throw new ServerError(response)\n }\n } else if (response.status >= 400) {\n switch (response.status) {\n case 401:\n {\n const json = await response.clone().json()\n bus.$emit(\"auth-error\", json.meta)\n }\n break\n\n case 404:\n bus.$emit(\"404-error\")\n break\n\n case 405:\n bus.$emit(\"405-error\")\n break\n\n case 409:\n throw new PluginReviewActionNotAllowedError(response)\n\n default:\n // nothing\n }\n\n return response\n }\n throw new Error(\"Unexpected response status.\")\n } finally {\n this.deleteRequest(url)\n }\n }\n\n /**\n * Same as fetch + res.json()\n *\n * @throws {TypeError} Network error.\n * @throws {ServerError} When the response status code is 500.\n * @throws {SyntaxError} When the response body is not valid JSON.\n */\n async fetchJSON() {\n const res = await this.fetch(...arguments)\n const json = await res.json()\n // We need a hack to access the store from here\n const store = window.Prometeo?.$store\n if (json.version != version && store) {\n store.commit('setVersionOutdated')\n }\n return json\n }\n\n /**\n * Same as fetchJSON + parse OKN API format\n *\n * @throws {TypeError} Network error.\n * @throws {ServerError} When the response status code is 500.\n * @throws {SyntaxError} When the response body is not valid JSON.\n * @throws {ApiError} When the response status is \"error\".\n */\n async fetchAPI() {\n const res = await this.fetchJSON(...arguments)\n if (res.status == \"success\") {\n return res\n } else {\n throw new ApiError(res)\n }\n }\n\n /**\n * Same as fetchAPI but only get the data\n *\n * @throws {TypeError} Network error.\n * @throws {ServerError} When the response status code is 500.\n * @throws {SyntaxError} When the response body is not valid JSON.\n * @throws {ApiError} When the response status is \"error\".\n */\n fetchData() {\n return this.fetchAPI(...arguments)\n .then(({ data }) => data)\n }\n\n /**\n * Upload a File or Blob to temporary storage and get a token that identifies it.\n * `progressCallback` will be called with the uploaded and total bytes of\n * the request.\n */\n uploadFile(fileOrBlob, progressCallback, fileName) {\n if (!fileOrBlob) {\n throw new Error(\"Trying to upload an empty file!\")\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest()\n request.withCredentials = this.defaults.credentials === \"include\"\n\n const url = join(this.baseUrl, \"upload\")\n request.open(\"POST\", url)\n\n for (const [name, value] of Object.entries(this.defaults.headers)) {\n if (name === \"Content-Type\") {\n // Do not include the default Content-Type header.\n // We are simulating sending a form, and that\n // requires using the `multipart/form-data` type.\n //\n // The code must not set that header, though, as\n // the big yellow warning says in:\n // https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects\n continue\n }\n request.setRequestHeader(name, value)\n }\n\n const form = new FormData()\n form.append(\"file\", fileOrBlob, fileName)\n\n this.requests.push({ url, method: \"POST\" })\n\n request.upload.addEventListener(\"progress\", e => {\n if (progressCallback && e.lengthComputable) {\n progressCallback(e.loaded, e.total)\n }\n })\n\n request.addEventListener(\"load\", () => {\n this.deleteRequest(url)\n if (request.status == 200) {\n const response = JSON.parse(request.response)\n if (response.status == \"success\") {\n resolve(response.data)\n } else {\n reject(new ApiError(response))\n }\n } else {\n if (request.status == 404) bus.$emit(\"404-error\")\n if (request.status == 401) {\n const response = JSON.parse(request.response)\n bus.$emit(\"auth-error\", response.meta)\n }\n try { //TODO: this is ugly and we should find a better way\n const response = JSON.parse(request.response)\n reject(new ApiError(response))\n } catch (error) {\n reject(new Error(`${request.status} ${request.statusText}`))\n }\n }\n })\n\n request.addEventListener(\"error\", e => {\n this.deleteRequest(url)\n reject(new Error(`${e}`))\n })\n\n request.send(form)\n })\n }\n\n /**\n * Cancel GET requests in this.requests if they were sent to the same @url\n * @param {String} url\n */\n cancelRepeatedRequests(url) {\n const repeatedRequests = this.requests.filter(r => {\n const sameUrl = r.url == url\n const isGetRequest = r.method.toUpperCase() == \"GET\"\n return sameUrl && isGetRequest\n })\n\n for (const request of repeatedRequests) {\n this.cancelAndDeleteRequest(request)\n }\n }\n\n cancelAndDeleteRequest(request) {\n try {\n request.abortController.abort()\n } catch (error) {\n notify(error)\n }\n this.deleteRequest(request.url)\n }\n\n /**\n * Deletes a request given its url\n * @param {String} url\n */\n deleteRequest(url) {\n const idx = this.requests.findIndex(r => r.url == url)\n if (idx == -1) {\n return\n }\n this.requests.splice(idx, 1)\n }\n}\n\nexport const defaultCtx = new AjaxCtx(CONFIG_API_BASE_URL, {\n credentials: \"include\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\",\n \"Accept-Language\": CONFIG_DEFAULT_LOCALE,\n \"Parent\": document.referrer,\n }\n})\n","import Bugsnag from \"@bugsnag/js\"\nimport isFunction from \"lodash/isFunction\"\n\nfunction bugsnagIsReady() {\n return !!Bugsnag._client && CONFIG_ENABLE_BUGSNAG\n}\n\nexport function notify(error) {\n if (bugsnagIsReady()) {\n if (!(error instanceof Error)) error = new Error(error)\n\n let onError = () => {}\n if (isFunction(error.getMetadata)) {\n onError = event => event.addMetadata(\"metadata\", error.getMetadata())\n }\n\n Bugsnag.notify(error, onError)\n } else {\n console.error(error)\n }\n}\n\nexport function leaveBreadcrumb(...args) {\n if (bugsnagIsReady()) {\n Bugsnag.leaveBreadcrumb(args.toString())\n } else {\n console.log(...args)\n }\n}\n","import Vue from \"vue\"\nimport VueI18n from \"vue-i18n\"\nimport uniq from \"lodash/uniq\"\n\nimport es from \"date-fns/locale/es\"\nimport eu from \"date-fns/locale/eu\"\nimport en from \"date-fns/locale/en-US\"\nimport fr from \"date-fns/locale/fr\"\nimport ca from \"date-fns/locale/ca\" // Catalán\nimport pt from \"date-fns/locale/pt\"\nimport it from \"date-fns/locale/it\"\n\nconst AVAILABLE_LANGS = [\"br\", \"ct\", \"de\", \"en\", \"es\", \"eu\", \"fr\", \"it\", \"pt\"]\n\nconst defaultFallbackLocale = getBrowserPreferredLocales()\nif (!defaultFallbackLocale.includes(CONFIG_DEFAULT_LOCALE)) {\n defaultFallbackLocale.push(CONFIG_DEFAULT_LOCALE)\n}\n\nVue.use(VueI18n)\n\nconst DEFAULT_i18n = new VueI18n({\n locale: \"\",\n fallbackLocale: defaultFallbackLocale,\n messages: {}\n})\n\nexport function getBrowserPreferredLocales(languages=[window.navigator.language, ...Array.from(window.navigator.languages || [])]) {\n const locales = []\n\n for (const lang of languages) {\n if (/^\\w{2}$/.test(lang)) locales.push(lang)\n\n const result = /^(\\w{2})-\\w{2}$/.exec(lang)\n if (result) locales.push(result[1])\n }\n\n return uniq(locales)\n}\n\nfunction setLocale({\n ctx,\n locale,\n i18n=DEFAULT_i18n\n}) {\n const different = locale != i18n.locale\n i18n.locale = locale\n document.querySelector(\"html\").setAttribute(\"lang\", locale)\n ctx.defaults.headers[\"Accept-Language\"] = locale\n return different\n}\n\nconst DEFAULT_LOADED_LOCALES = []\nasync function downloadAndStoreLocale({ ctx, locale, loadedLocales, i18n, translationsHash }) {\n let hackedLocale = locale\n // The international code for Catalan is `ca` but it's stored in the DB as `ct`\n if (hackedLocale == \"ca\") hackedLocale = \"ct\"\n\n const msgs = await ctx.fetchData(`/translations/${hackedLocale}?${translationsHash}`)\n i18n.setLocaleMessage(locale, msgs)\n loadedLocales.push(locale)\n}\n\nexport async function loadLocale({\n ctx,\n locale,\n loadedLocales=DEFAULT_LOADED_LOCALES,\n i18n=DEFAULT_i18n,\n fallbackLocale=defaultFallbackLocale,\n translationsHash\n}) {\n await downloadAndStoreLocale({\n ctx,\n i18n,\n locale,\n loadedLocales,\n translationsHash\n })\n\n fallbackLocale\n .filter(lang => (\n lang !== locale\n && AVAILABLE_LANGS.includes(lang)\n && !loadedLocales.includes(lang)\n ))\n .map(locale => {\n downloadAndStoreLocale({\n ctx,\n i18n,\n locale,\n loadedLocales,\n translationsHash\n })\n })\n\n return setLocale({ ctx, locale, i18n })\n}\n\nexport const dateFnsLocales = {\n es, eu, en, fr, ca, pt, it\n}\n\nexport function getDateFnsLocale(locale, fallbackLocale = defaultFallbackLocale) {\n if ((locale in dateFnsLocales)) {\n return dateFnsLocales[locale]\n }\n const availableLanguages = Object.keys(dateFnsLocales)\n const preferredAvailableLocale = fallbackLocale.filter(lang => {\n return availableLanguages.includes(lang)\n })[0]\n return dateFnsLocales[preferredAvailableLocale]\n}\n\nexport default DEFAULT_i18n\n","export const KEY_CODES = {\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n}\n\nexport const RESOURCE_TYPES = [\n \"activity\",\n \"audio\",\n \"document\",\n \"image\",\n \"miscellany\",\n \"podcast\",\n \"presentation\",\n \"url\",\n \"video\",\n \"videocast\"\n]\n\nexport const EXTENSION_GROUPS = {\n image: [\"bmp\", \"ico\", \"gif\", \"jpeg\", \"jpg\", \"png\", \"svg\", \"tiff\"],\n video: [\"avi\", \"asf\", \"flv\", \"m4v\", \"mkv\", \"mov\", \"mp4\", \"mpeg\", \"mpg\", \"wmv\", \"ogv\", \"webm\", \"m2ts\", \"divx\"],\n audio: [\"aac\", \"mp3\", \"ogg\", \"wav\", \"wma\"],\n text: [\"txt\"],\n doc: [\"doc\", \"docx\", \"ods\", \"odt\", \"pdf\", \"ppt\", \"pptx\", \"xls\", \"xlsm\", \"xlsx\"],\n compressed: [\"zip\", \"rar\", \"arj\", \"tar.gz\", \"tgz\", \"gz\", \"pak\"]\n}\n\nexport const PREVIEWABLE_EXTENSIONS = [\n \"bmp\", \"ico\", \"gif\", \"jpeg\", \"jpg\", \"png\", \"svg\",\n \"avi\", \"asf\", \"flv\", \"m4v\", \"mkv\", \"mov\", \"mp4\", \"mpeg\", \"mpg\", \"wmv\", \"ogv\", \"webm\", \"m2ts\", \"divx\",\n \"mp3\", \"ogg\", \"wav\", \"wma\",\n \"txt\",\n \"doc\", \"docx\", \"ods\", \"odt\", \"pdf\", \"ppt\", \"pptx\", \"xls\", \"xlsm\", \"xlsx\"\n]\n\nexport const NATIVELY_PREVIEWABLE_EXTENSIONS = [\n \"ico\", \"gif\", \"jpeg\", \"jpg\", \"png\", \"mpg\", \"mp4\", \"mp3\", \"txt\", \"pdf\"\n]\n\nexport const ACTIVITY_TYPES = [\n \"ANONYMOUS_POLL_V2\",\n \"CUSTOM_POLL_V2\",\n \"CUSTOM_POLL\",\n \"CUSTOM_POLLS\",\n \"EDUCATION_FIRST\",\n \"EDUCATION_FIRST_2\",\n \"EXAMS\",\n \"EXTERNAL_SIMULATOR_CIRCULATION\",\n \"GLOBAL_ENGLISH\",\n \"INTERVIEW\",\n \"JOB_TRAINING\",\n \"KNOWLEDGE_TEST\",\n \"LANGUAGE_TEST\",\n \"MEDICAL_TEST\",\n \"MIXED_POLLS\",\n \"OBJECTIVES\",\n \"OFFLINE_SESSIONS\",\n \"PEARSON_GLOBAL_ENGLISH\",\n \"PERFORMANCE_EVALUATION\",\n \"PERSONALITY_TEST\",\n \"POLLS_REPSOL\",\n \"POLLS_SATISFACTION\",\n \"POLLS\",\n \"RESPONSE_TEST\",\n \"SATISFACTION_POLL_V2\",\n \"SATISFACTION_POLL\",\n \"SCORM_VIDEO\",\n \"SCORM\",\n \"SIMULATOR\",\n \"SOCIAL_VIDEO\",\n \"TASKS_V2\",\n \"TASKS\",\n \"TNT\",\n \"UNIVERSAL_CONNECTOR\",\n \"VIRTUAL_CLASSROOMS\", // It's not an actual activity but we'll treat it as such\n \"VOLUNTARY_RELOCATION\",\n \"WEBROOM_SESSIONS\",\n \"WORKGROUPS\",\n \"WPF_REQUIREMENTS\"\n]\n\nexport const SUPPORTED_ACTIVITY_TYPES = [\n \"CUSTOM_POLL_V2\",\n \"OFFLINE_SESSIONS\",\n \"POLLS\",\n \"SATISFACTION_POLL_V2\",\n \"SCORM_VIDEO\",\n \"SCORM\",\n \"SOCIAL_VIDEO\",\n \"TNT\",\n \"UNIVERSAL_CONNECTOR\"\n]\n\nexport const PLUGIN_BY_SSO = [\n \"EXTERNAL_SIMULATOR_CIRCULATION\",\n \"SIMULATOR\",\n \"TASKS\",\n \"JOB_TRAINING\"\n]\n\nexport const ACTIVITY_STATUSES = [\n \"Pending\",\n \"Coursing\",\n \"Succeeded\",\n \"Failed\",\n \"Expired\",\n \"Unevaluated\",\n \"Unrealized\"\n]\n\nexport const CALL_STATUSES = [\n \"Pending\",\n \"Coursing\",\n \"Succeeded\",\n \"Failed\",\n \"Expired\",\n \"Cancelled\",\n \"Unevaluated\",\n \"Unrealized\"\n]\n\nexport const SCORM_CHAPTER_STATUSES = [\n \"pending\",\n \"succeeded\",\n \"failed\",\n \"coursing\"\n]\n\nexport const ACTIVITY_PASS_MODES = [\n \"access\",\n \"complete\",\n \"pass\",\n \"pass_and_complete\"\n]\n\nexport const PROGRAM_MODALITIES = [\n \"online\",\n \"offline\",\n \"blended\",\n \"mixed\"\n]\n\nexport const POLL_QUESTION_TYPES = [\n \"FreeTextEvaluable\",\n \"FreeTextManual\",\n \"FreeTextOpinion\",\n \"FreeTextOptional\",\n \"JoinArrows\",\n \"MultipleChoice\",\n \"MultipleChoiceManual\",\n \"OneChoice\",\n \"Order\",\n \"Range\",\n \"RangeManual\",\n \"TrueOrFalse\",\n \"YesOrNo\"\n]\n\nexport const MAX_ITEMS_PER_BLOCK = 18\n\nexport const MESSAGES_POLLING_INTERVAL = 1000 * 30 // 30s\nexport const MESSAGES_MAX_USERS_COUNT = 500 // Max number of users that can be selected as recipients of a message\n\nexport const PLUGIN_DISABLING_TIME = 1000 * 3 // 3s\n\nexport const HEADER_HEIGHT = 50 // px\n\nexport const OFFICIAL_LIBRARIES = [\n \"lms\",\n \"language\",\n \"communication\",\n \"community\",\n \"general_library\",\n \"my_documents\"\n]\n\nexport const BREAKPOINTS = {\n xxs: 320,\n xs: 768,\n s: 1024,\n sm: 1280,\n md: 1440,\n l: 1600,\n xl: 1920,\n xxl: Infinity\n}\n\nexport const TRAINING_REQUEST_STATUS_CODES = [\n \"APPROVED\",\n \"DENIED\",\n \"PENDING_INFO\",\n \"PENDING_FINAL\",\n \"PENDING_RESPONSIBLE\",\n \"DELETED\"\n]\n\nexport const MIN_NOTIFICATION_LENGTH_TO_SHOW_CLOSE_BUTTON = 150\n\nexport const NOTICATION_CLOSING_TIME = 5000 // ms\n","import { leaveBreadcrumb, notify } from \"~/lib/bugsnag\"\n\nexport async function subscribe(swName) {\n let swRegistration = null\n if (\"serviceWorker\" in navigator && window.isSecureContext) {\n swRegistration = await registerServiceWorker(swName)\n }\n return swRegistration\n}\n\nexport async function unsubscribe() {\n if (\"serviceWorker\" in navigator && window.isSecureContext) {\n const registrations = await navigator.serviceWorker.getRegistrations()\n for (let registration of registrations) {\n registration.unregister()\n }\n leaveBreadcrumb(\"The SW was unregistered\")\n }\n}\n\nasync function registerServiceWorker(swName=\"basic-sw.js\") {\n const swUrl = `/${swName}`\n try {\n // Don't get it from the cdn, there is a cross-origin issue\n const registration = await navigator.serviceWorker.register(swUrl)\n leaveBreadcrumb(`SW ${swName} was registered`)\n return registration\n } catch (error) {\n leaveBreadcrumb(`SW registration failed for ${swUrl}`)\n notify(error)\n }\n}\n","import CalendarService from \"./CalendarService\"\nimport {\n dateInRange,\n getSortingDate,\n getStartEndDates,\n sortEvents\n} from \"./utils\"\nimport Vue from \"vue\"\n\nexport const getters = {\n eventsInRange: state => (start, end) => {\n const events = state.events.filter((event) => {\n const eventDate = getSortingDate(event)\n return dateInRange(eventDate, start, end)\n })\n return sortEvents(events)\n }\n}\n\nexport const mutations = {\n setEvents(state, { events }) {\n events.forEach(event => {\n const idx = state.events.findIndex(e => e.id === event.id)\n if (idx !== -1) {\n Vue.set(state.events, idx, event)\n } else {\n state.events.push(event)\n }\n })\n },\n\n clearModule(state) {\n state.events = []\n }\n}\n\nexport function makeActions(service) {\n return {\n async updateEvents({ commit, dispatch }, { startDate, endDate }) {\n try {\n const events = await service.getCalendarEvents({ startDate, endDate })\n commit(\"setEvents\", { events })\n } catch (error) {\n if (error instanceof DOMException && error.name === \"AbortError\") return\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n updateMonthEvents({ dispatch, rootGetters }, { month, year }) {\n const timeZone = rootGetters.currentUser?.timeZone\n const { startDate, endDate } = getStartEndDates({ month, year, timeZone })\n dispatch(\"updateEvents\", { startDate, endDate })\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: {\n events: []\n },\n getters,\n mutations,\n actions: makeActions(new CalendarService())\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\nimport { buildQueryFilters } from \"~/lib/utils\"\n\nexport default class CalendarService {\n constructor(ctx=defaultCtx) {\n this.$http = ctx\n }\n\n async getCalendarEvents({ startDate, endDate }) {\n const filterField = buildQueryFilters({\n fromDate: startDate,\n toDate: endDate\n })\n let url = \"/events\"\n if (filterField) {\n url = `${url}?filter=${filterField}`\n }\n return await this.$http.fetchData(url)\n }\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\nimport { buildQueryString } from \"~/lib/utils\"\n\nexport default class FinderService {\n constructor(ctx = defaultCtx) {\n this.$http = ctx\n }\n\n async fetchItems({ searchText, itemType, cursor }) {\n let url = \"/finder\"\n if (searchText) {\n searchText = searchText.replace(/\\//g, \" \")\n const cleanSearchText = encodeURIComponent(searchText)\n url += `/${cleanSearchText}`\n }\n if (itemType) {\n url += `/${encodeURIComponent(itemType)}`\n }\n const qs = buildQueryString({ cursor })\n if (qs) {\n url += `?${qs}`\n }\n\n const {\n data: items,\n meta: {\n cursor: { next: nextCursor }\n }\n } = await this.$http.fetchAPI(url)\n\n return { items, nextCursor }\n }\n}\n","export const minQueryLength = 3\n\nexport const categories = [\n {\n id: \"group\",\n tkey: \"finder.calls\",\n icon: \"call\",\n itemType: \"group\"\n },\n {\n id: \"activity\",\n tkey: \"finder.activities\",\n icon: \"meeting\",\n itemType: \"activity\"\n },\n {\n id: \"resource\",\n tkey: \"finder.resources\",\n icon: \"paperclip\",\n itemType: \"resource\"\n },\n {\n id: \"program\",\n tkey: \"finder.programs\",\n icon: \"program\",\n itemType: \"program\"\n },\n {\n id: \"library\",\n tkey: \"finder.libraries\",\n icon: \"books\",\n itemType: \"library\"\n },\n {\n id: \"news\",\n tkey: \"finder.news\",\n icon: \"newspaper\",\n itemType: \"news\"\n },\n {\n id: \"post\",\n tkey: \"finder.posts\",\n icon: \"comment-alt-lines\",\n itemType: \"post\"\n },\n {\n id: \"forum\",\n tkey: \"finder.forums\",\n icon: \"comments-alt\",\n itemType: \"forum\"\n },\n {\n id: \"vc\",\n tkey: \"finder.virtualClassrooms\",\n icon: \"webcam\",\n itemType: \"vc\"\n }\n]\n","import FinderService from \"./FinderService\"\n\nimport {\n categories as finderCategories,\n minQueryLength\n} from \"./constants\"\nimport { debounceAsync } from \"~/lib/utils\"\nimport { notify } from \"~/lib/bugsnag\"\n\nexport const makeDefaultState = () => ({\n searchText: \"\",\n selectedCategoryId: null, // string | null\n\n items: [],\n nextCursor: null,\n status: \"ready\", // \"ready\" | \"refreshing\"\n end: false,\n\n // Used to discard HTTP responses from any but the latest HTTP request.\n requestId: 0\n})\n\nexport const getters = {\n categories: (_state, _getters, rootState) => {\n const categories = []\n\n for (const categoryId of rootState.platform.entitiesFinder) {\n const category = finderCategories.find(c => c.id === categoryId)\n if (category) {\n categories.push(category)\n } else {\n notify(new Error(`Don't know: ${categoryId}`))\n }\n }\n\n return categories\n }\n}\n\nexport const mutations = {\n setSearchText(state, searchText) {\n state.searchText = searchText\n },\n\n setSelectedCategoryId(state, categoryId) {\n state.selectedCategoryId = categoryId\n },\n\n setStatus(state, status) {\n state.status = status\n },\n\n replaceItem(state, { index, item }) {\n state.items.splice(index, 1, item)\n },\n\n setItems(state, { items, nextCursor, end }) {\n state.items = items\n state.nextCursor = nextCursor\n state.end = end\n },\n\n incRequestId(state) {\n state.requestId += 1\n },\n\n clearModule(state) {\n Object.assign(state, makeDefaultState())\n }\n}\n\nexport const makeActions = (finderService=new FinderService()) => ({\n async setSearchText({ commit, dispatch }, searchText) {\n commit(\"setSearchText\", searchText)\n if (searchText.trim().length >= minQueryLength) {\n await dispatch(\"_refresh\")\n } else {\n commit(\"setItems\", {\n items: [],\n nextCursor: null,\n end: false\n })\n commit(\"incRequestId\") // Invalidate unfinished requests\n }\n },\n\n async selectCategory({ state, commit, dispatch }, categoryId) {\n commit(\"setSelectedCategoryId\", categoryId)\n if (state.searchText.trim().length >= minQueryLength) {\n await dispatch(\"_refresh\")\n }\n },\n\n async loadMore({ state, getters, commit }) {\n commit(\"setStatus\", \"refreshing\")\n commit(\"incRequestId\")\n\n const {\n searchText,\n selectedCategoryId,\n nextCursor: cursor,\n requestId\n } = state\n\n const category = getters.categories.find(c => c.id === selectedCategoryId)\n const itemType = category?.itemType\n\n try {\n const {\n items,\n nextCursor\n } = await finderService.fetchItems({ searchText, itemType, cursor })\n if (state.requestId === requestId) {\n commit(\"setItems\", {\n items: state.items.concat(items),\n nextCursor,\n end: !nextCursor\n })\n }\n } finally {\n if (state.requestId === requestId) {\n commit(\"setStatus\", \"ready\")\n }\n }\n },\n\n _refresh: debounceAsync(async ({ state, getters, commit }) => {\n commit(\"setStatus\", \"refreshing\")\n commit(\"incRequestId\")\n\n const {\n searchText,\n selectedCategoryId,\n requestId\n } = state\n\n const category = getters.categories.find(c => c.id === selectedCategoryId)\n const itemType = category?.itemType\n\n try {\n const {\n items,\n nextCursor\n } = await finderService.fetchItems({ searchText, itemType })\n if (state.requestId === requestId) {\n commit(\"setItems\", {\n items,\n nextCursor,\n end: !nextCursor\n })\n }\n } finally {\n if (state.requestId === requestId) {\n commit(\"setStatus\", \"ready\")\n }\n }\n }, 500),\n\n updateItem({ state, commit }, item) {\n const index = state.items.findIndex(i => item._meta.type === i._meta.type\n && item[item._meta.key] === i[i._meta.key])\n if (index !== -1) commit(\"replaceItem\", { index, item })\n }\n})\n\nexport default {\n namespaced: true,\n state: makeDefaultState(),\n getters,\n mutations,\n actions: makeActions()\n}\n","export default class LoginService {\n constructor(ctx) {\n this.$http = ctx\n }\n\n login({ username, password, recaptcha_token }) {\n return this.$http.fetchData(\"/login\", {\n method: \"POST\",\n body: JSON.stringify({ username, password, recaptcha_token })\n })\n }\n\n init() {\n return this.$http.fetchData(\"/init\")\n }\n\n logout() {\n return this.$http.fetchData(\"/logout\", { method: \"POST\" })\n }\n\n loginChangePassword({ newPassword, repeatNewPassword }) {\n return this.$http.fetchData(\"/login-change-password\", {\n method: \"PUT\",\n body: JSON.stringify({ newPassword, repeatNewPassword })\n })\n }\n\n loginDataPolicy(id) {\n return this.$http.fetchData('/login-data-policy', {\n method: \"POST\",\n body: JSON.stringify({ disclaimerId: id })\n })\n }\n\n getAuthenticationOptions({ userId, token }) {\n return this.$http.fetchData(`two-factor-authentication-options/${userId}/${token}`, {\n method: \"GET\"\n })\n }\n\n requestAuthenticationCode({ option, userId, token }) {\n return this.$http.fetchData(`two-factor-authentication-send-code/${userId}/${token}`, {\n method: \"POST\",\n body: JSON.stringify({ option })\n })\n }\n\n refreshAuthenticationOptions({ userId, token }) {\n return this.$http.fetchData(`two-factor-authentication/${userId}/${token}`, {\n method: \"GET\"\n })\n }\n\n validateAuthenticationCode({ userId, token, code2fa }) {\n return this.$http.fetchData(`two-factor-authentication-validate-code/${userId}/${token}`, {\n method: \"POST\",\n body: JSON.stringify({ code2fa })\n }).then((response) => {\n return response[0]\n })\n }\n\n deleteAuthenticationAttempt({ userId, token }) {\n return this.$http.fetchData(`two-factor-authentication-delete-attempt/${userId}/${token}`, {\n method: \"POST\"\n })\n }\n}\n","import Vue from \"vue\"\n\nimport LoginService from \"~/modules/login/LoginService\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport * as DEFAULT_I18N from \"~/i18n\"\n\nexport function makeDefaultState() {\n return {\n email: \"\",\n phone: \"\",\n token: \"\",\n userId: \"\",\n validationUrl: \"\",\n validationTimeLeft: null,\n interval: null\n }\n}\n\nexport const mutations = {\n setFields(state, { workEmailCensored, workPhoneCensored, token, userId, twoFactorAuthenticationAttemptUrl }) {\n Vue.set(state, \"email\", workEmailCensored)\n Vue.set(state, \"phone\", workPhoneCensored)\n Vue.set(state, \"token\", token)\n Vue.set(state, \"userId\", userId)\n Vue.set(state, \"validationUrl\", twoFactorAuthenticationAttemptUrl)\n },\n\n setTimeLeft(state, timeLeft) {\n Vue.set(state, \"validationTimeLeft\", timeLeft)\n },\n\n setInterval(state, interval) {\n Vue.set(state, \"interval\", interval)\n }\n}\n\nexport function makeActions({ service, i18n }) {\n i18n = i18n || DEFAULT_I18N.default\n return {\n async init({ dispatch }, { userId, token }) {\n try {\n const {\n language,\n twoFactorAuthenticationAttemptUrl,\n workEmailCensored,\n workPhoneCensored\n } = await service.getAuthenticationOptions({ userId, token })\n\n dispatch(\"saveData\", { workEmailCensored, workPhoneCensored, token, userId, twoFactorAuthenticationAttemptUrl, language })\n\n } catch (error) {\n dispatch(\"pushNotification\", {\n type: \"error\",\n title: error.message\n }, { root: true })\n }\n },\n\n saveData({ commit, dispatch }, { workEmailCensored, workPhoneCensored, token, userId, twoFactorAuthenticationAttemptUrl, language }) {\n commit(\"setFields\", { workEmailCensored, workPhoneCensored, token, userId, twoFactorAuthenticationAttemptUrl })\n\n dispatch(\"loadLocale\", language, { root: true })\n },\n\n async requestCode({ state, dispatch }, option) {\n const { userId, token } = state\n const { twoFactorAuthenticationTimeLeft } = await service.requestAuthenticationCode({ option, userId, token})\n\n dispatch(\"startCountdown\", twoFactorAuthenticationTimeLeft)\n },\n\n async refresh({ dispatch }, { userId, token }) {\n try {\n const {\n language,\n twoFactorAuthenticationAttemptUrl,\n workEmailCensored,\n workPhoneCensored,\n twoFactorAuthenticationTimeLeft\n } = await service.refreshAuthenticationOptions({ userId, token })\n\n dispatch(\"saveData\", { workEmailCensored, workPhoneCensored, token, userId, twoFactorAuthenticationAttemptUrl, language })\n dispatch(\"startCountdown\", twoFactorAuthenticationTimeLeft)\n\n } catch (error) {\n dispatch(\"pushNotification\", {\n type: \"error\",\n title: error.message\n }, { root: true })\n }\n },\n\n startCountdown({ commit, dispatch, state }, timeLeft) {\n window.clearInterval(state.interval)\n commit(\"setTimeLeft\", timeLeft)\n\n const interval = setInterval(() => {\n if (state.validationTimeLeft <= 0) {\n dispatch(\"pushNotification\", {\n type: \"info\",\n title: i18n.t(\"common.timeIsUp\")\n }, { root: true })\n\n return window.clearInterval(state.interval)\n }\n\n commit(\"setTimeLeft\", state.validationTimeLeft - 1)\n }, 1000)\n\n commit(\"setInterval\", interval)\n },\n\n async validateCode({ state }, code2fa) {\n const { userId, token } = state\n\n const response = await service.validateAuthenticationCode({\n userId,\n token,\n code2fa\n })\n\n return response\n },\n\n async deleteAttempt({ dispatch, state }) {\n try {\n const { userId, token } = state\n return await service.deleteAuthenticationAttempt({ userId, token})\n } catch (error) {\n dispatch(\"pushNotification\", {\n type: \"error\",\n title: error.message\n }, { root: true })\n }\n },\n }\n}\n\nexport default {\n namespaced: true,\n state: makeDefaultState(),\n mutations,\n actions: makeActions({ service: new LoginService(defaultCtx)})\n}\n","import Vue from \"vue\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport function makeDefaultState() {\n return {\n /**\n * cookiesValues Structure:\n * hasAccepted: Boolean\n * description: String\n * id: Number\n * isOptional: Boolean\n * name: String\n */\n cookiesValues: [],\n shouldISendCookies: false\n }\n}\n\nexport const getters = {\n googleAnalyticsIsEnabled: (state, _getters, rootState) => {\n const { googleAnalyticsAccount } = rootState.configs\n return !!googleAnalyticsAccount && state.cookiesValues.some(({ key, hasAccepted }) => key === \"analyticalCookies\" && hasAccepted)\n }\n}\n\nexport const mutations = {\n acceptOptionalCookies({ cookiesValues }) {\n cookiesValues.filter(({ isOptional }) => isOptional).map(cookie => {\n Vue.set(cookie, \"hasAccepted\", true)\n })\n },\n\n rejectOptionalCookies({ cookiesValues }) {\n cookiesValues.filter(({ isOptional }) => isOptional).map(cookie => {\n Vue.set(cookie, \"hasAccepted\", false)\n })\n },\n\n setShouldISendCookies(state, value) {\n state.shouldISendCookies = value\n },\n\n setCookies(state, cookies) {\n Vue.set(state, \"cookiesValues\", cookies)\n },\n\n toggleCookie({ cookiesValues }, id) {\n const targetCookie = cookiesValues.find(cookies => cookies.id == id)\n if (!targetCookie) throw new Error (`Cookie with id: ${id} was not found`)\n Vue.set(targetCookie, \"hasAccepted\", !targetCookie.hasAccepted)\n }\n}\n\nexport function makeActions(ctx) {\n return {\n accept({ commit }) {\n commit(\"acceptOptionalCookies\")\n commit(\"setShouldISendCookies\", true)\n },\n\n toggle({ commit }, id) {\n commit(\"toggleCookie\", id)\n },\n\n reject({ commit }) {\n commit(\"rejectOptionalCookies\")\n commit(\"setShouldISendCookies\", true)\n },\n\n async refresh({ commit, dispatch, rootGetters }) {\n const hasSession = !!rootGetters.currentUser\n const url = hasSession ? \"/cookies\" : \"/cookies/all\"\n\n try {\n const cookies = await ctx.fetchData(url)\n commit(\"setCookies\", cookies)\n } catch (error) {\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"danger\"\n }, { root: true })\n }\n },\n\n async save({ state, commit, dispatch }) {\n if (!state.shouldISendCookies) {\n await dispatch(\"refresh\")\n return\n }\n\n const cookies = state.cookiesValues.map(cookie => {\n const { hasAccepted, isOptional } = cookie\n // mandatory cookies are always accepted\n // hasAccepted is null by default and we need to cast it into boolean (only affecting optional cookies)\n return {\n ...cookie,\n hasAccepted: !isOptional || !!hasAccepted\n }\n })\n\n await ctx.fetchData(\"/cookies\", {\n method: \"POST\",\n body: JSON.stringify(cookies)\n })\n commit(\"setShouldISendCookies\", false)\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: makeDefaultState(),\n getters,\n mutations,\n actions: makeActions(defaultCtx)\n}\n","import Vue from \"vue\"\n\nimport * as DEFAULT_I18N from \"~/i18n\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport { notify } from \"~/lib/bugsnag\"\nimport { ucfirst } from \"~/lib/utils\"\n\nimport MessageService from \"./MessageService\"\n\nfunction makeDefaultFolder() {\n return {\n messages: [],\n unreadMessages: 0,\n status: \"ready\",\n cursor: null,\n end: false,\n lastPollingTime: (new Date()).toISOString(),\n query: \"\",\n filter: \"date\" // date | unread\n }\n}\n\nexport function makeDefaultState() {\n return {\n inbox: makeDefaultFolder(),\n popup: makeDefaultFolder(),\n sent: makeDefaultFolder(),\n trash: makeDefaultFolder(),\n newMessage: makeEmptyMessage()\n }\n}\n\nexport function makeEmptyMessage() {\n return {\n to: {\n includedUsers: [],\n excludedUsers: [],\n filters: []\n },\n subject: \"\",\n body: \"\",\n attachments: [],\n repliedId: null,\n forwardedId: null,\n isPrivate: true,\n usersCount: 0\n }\n}\n\nexport const getters = {\n getMessage: (state) => ({ messageUserId, folder }) => {\n if (!(folder in state)) {\n throw new Error(`${folder} folder doesn't exist`)\n }\n return state[folder].messages.find(m => m.messageUserId == messageUserId)\n }\n}\n\nexport const mutations = {\n setMessage(state, { message, folder }) {\n if (!folder) {\n folder = message.folder\n } else {\n message.folder = folder // update folder value if passed as a parameter\n }\n\n if (!(folder in state)) {\n throw new Error(`${folder} folder is not defined`)\n }\n\n const messageUserId = message.messageUserId\n const messageIndex = state[folder].messages.findIndex(m => m.messageUserId == messageUserId)\n\n if (messageIndex !== -1) {\n const currentMessage = state[folder].messages[messageIndex]\n Object.keys(message).forEach(key => {\n Vue.set(currentMessage, key, message[key])\n })\n return\n }\n\n const messageDateIndex = state[folder].messages.findIndex(m => m.date < message.date)\n\n if (messageDateIndex !== -1) {\n state[folder].messages.splice(messageDateIndex, 0, message)\n return\n }\n\n state[folder].messages.push(message)\n },\n\n setNewMessage(state, message) {\n Object.assign(state.newMessage, message)\n },\n\n setFolder(state, { folder, data }) {\n if (!(folder in state)) {\n throw new Error(`${folder} folder is not defined`)\n }\n\n Object.assign(state[folder], data)\n },\n\n clearMessage(state, { messageUserId, folder }) {\n if (!(folder in state)) {\n throw new Error(`${folder} folder is not defined`)\n }\n\n const messageIndex = state[folder].messages.findIndex(m => m.messageUserId == messageUserId)\n if (messageIndex === -1) {\n throw new Error(`Message ${messageUserId} can't be found`)\n }\n\n state[folder].messages.splice(messageIndex, 1)\n },\n\n setUnreadMessages(state, unreadMessages) {\n Vue.set(state.inbox, \"unreadMessages\", unreadMessages)\n },\n\n clearModule(state) {\n state.inbox = makeDefaultFolder()\n state.popup = makeDefaultFolder()\n state.sent = makeDefaultFolder()\n state.trash = makeDefaultFolder()\n state.newMessage = makeEmptyMessage()\n },\n\n clearNewMessage(state) {\n state.newMessage = makeEmptyMessage()\n },\n\n clearFolder(state, folder) {\n const folderData = state[folder]\n\n folderData.messages = []\n folderData.cursor = null\n folderData.end = false\n }\n}\n\nexport function makeActions(service, i18n) {\n i18n = i18n || DEFAULT_I18N.default\n\n return {\n /**\n * This action deletes or recovers a message.\n * Messages stored in trash are permanently deleted when deleted and moved to their original folder when recovered\n * Only messages stored in trash are meant to be recovered.\n *\n * @param {number} messageUserId\n * @param {string} folder (current folder)\n * @param {boolean} isDeleted - true: deletes the message, false: recovers the message to the original folder\n */\n async deleteMessage({ commit, state, dispatch }, { messageUserId, folder, isDeleted }) {\n const message = state[folder].messages.find(m => m.messageUserId == messageUserId)\n\n try {\n const data = await service.deleteMessage({ messageUserId, isDeleted })\n const destinationFolder = data.folder\n\n dispatch(\"updateUnreadMessages\")\n\n if (destinationFolder) {\n commit(\"setMessage\", {\n message,\n folder: destinationFolder\n })\n }\n\n if (isDeleted) {\n dispatch(\"pushNotification\", {\n title: ucfirst(i18n.t(\"messages.messageWasDeleted\"))\n }, { root: true })\n }\n\n commit(\"clearMessage\", { messageUserId, folder })\n } catch (error) {\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async getMessageDetails({ commit, dispatch }, { messageUserId }) {\n try {\n const message = await service.getMessageDetails({ messageUserId })\n commit(\"setMessage\", { message })\n } catch (error) {\n if (error instanceof DOMException && error.name === \"AbortError\") return\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async getNewMessages({ state, commit }, { folder }) {\n commit(\"setFolder\", { folder, data: { status: \"automatic-refreshing\" } })\n const { lastPollingTime } = state[folder]\n\n try {\n const { data: messages } = await service.getMessages({\n folder,\n cursor: null,\n query: state[folder].query,\n unread: state[folder].filter == \"unread\",\n date: lastPollingTime,\n })\n\n for (const message of messages) {\n commit(\"setMessage\", { message, folder })\n }\n } catch (error) {\n if (error instanceof DOMException && error.name === \"AbortError\") return\n notify(error)\n } finally {\n commit(\"setFolder\", { folder, data: {\n status: \"ready\",\n lastPollingTime: (new Date()).toISOString(),\n } })\n }\n },\n\n async loadMore({ state, commit }, { folder }) {\n commit(\"setFolder\", { folder, data: { status: \"refreshing\" } })\n\n try {\n const { data: messages, meta } = await service.getMessages({\n folder,\n cursor: state[folder].cursor,\n query: state[folder].query,\n unread: state[folder].filter == \"unread\",\n })\n\n commit(\"setFolder\", {\n folder,\n data: {\n cursor: meta.cursor.next,\n end: !meta.cursor.next\n }\n })\n\n for (const message of messages) {\n commit(\"setMessage\", { message, folder })\n }\n } catch (error) {\n if (error instanceof DOMException && error.name === \"AbortError\") return\n notify(error)\n } finally {\n commit(\"setFolder\", { folder, data: { status: \"ready\" } })\n }\n },\n\n async refreshFolder({ state, commit, dispatch }, { folder=\"inbox\" }) {\n // skip refresh if it's already ongoing\n if (state[folder].status !== \"ready\") {\n notify(\"You are refreshing the data beyond your means\")\n return\n }\n\n commit(\"setFolder\", { folder, data: { status: \"refreshing\" } })\n commit(\"clearFolder\", folder)\n\n try {\n const limit = folder === \"popup\" ? 4 : null\n const { data: messages, meta } = await service.getMessages({\n folder: folder === \"popup\" ? \"inbox\" : folder,\n cursor: state[folder].cursor,\n query: state[folder].query,\n unread: state[folder].filter == \"unread\",\n limit\n })\n\n commit(\"setFolder\", {\n folder,\n data: {\n cursor: meta.cursor.next,\n end: !meta.cursor.next\n }\n })\n\n for (const message of messages) {\n commit(\"setMessage\", { message, folder })\n }\n\n if (messages.length > 0) {\n dispatch(\"getMessageDetails\", messages[0])\n }\n } catch (error) {\n if (error instanceof DOMException && error.name === \"AbortError\") return\n notify(error)\n } finally {\n commit(\"setFolder\", { folder, data: { status: \"ready\" } })\n }\n },\n\n async sendNewMessage({ commit, dispatch, state, rootGetters }) {\n const sender = rootGetters.currentUser\n const newMessage = state.newMessage\n\n const message = await service.newMessage({\n ...newMessage,\n sender\n })\n\n commit(\"setMessage\", {\n message,\n folder: \"sent\"\n })\n\n dispatch(\"pushNotification\", {\n title: ucfirst(i18n.t(\"messages.messageWasSent\")),\n type: \"success\"\n }, { root: true })\n\n return message\n },\n\n setFolder({ commit }, { folder, data }) {\n commit(\"setFolder\", { folder, data })\n },\n\n async setReadStatus({ commit, dispatch }, { messageUserId, isRead }) {\n try {\n const { unreadMessages } = await service.setReadStatus({\n messageUserId,\n isRead\n })\n\n commit(\"setUnreadMessages\", unreadMessages)\n\n dispatch(\"getMessageDetails\", {\n messageUserId\n })\n } catch(error) {\n dispatch(\"pushNotification\", {\n title: error,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async updateFolder({ dispatch }, folder) {\n if ([\"inbox\", \"popup\"].includes(folder)) {\n dispatch(\"updateUnreadMessages\")\n }\n\n await dispatch(\"refreshFolder\", { folder })\n },\n\n async updateUnreadMessages({ commit, dispatch }) {\n try {\n const unreadMessages = await service.getUnreadMessages()\n commit(\"setUnreadMessages\", unreadMessages)\n } catch (error) {\n if (error instanceof DOMException && error.name === \"AbortError\") return\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n updateNewMessage({ commit }, newMessage) {\n commit(\"setNewMessage\", newMessage)\n },\n }\n}\n\nexport default {\n namespaced: true,\n state: makeDefaultState(),\n getters,\n mutations,\n actions: makeActions(MessageService(defaultCtx))\n}\n","import deburr from \"lodash/deburr\"\n\nimport {\n buildQueryFilters, buildQueryString\n} from \"~/lib/utils\"\n\nexport default function MessageService(ctx) {\n return {\n async getMessages({ folder, query, cursor, date, limit, unread }) {\n const filter = buildQueryFilters({\n free_search: query ? deburr(query) : null,\n date: date ? `${date};GE` : null,\n unread: unread ? true : null\n }) || null\n const qs = buildQueryString({\n filter, cursor, limit\n })\n const url = `/messages/${folder}?${qs}`\n return await ctx.fetchAPI(url)\n },\n\n async getUnreadMessages() {\n const { unreadMessages } = await ctx.fetchData(\"/messages/inbox/unread\")\n return unreadMessages\n },\n\n async getMessageDetails({ messageUserId }) {\n return await ctx.fetchData(`/messages/${messageUserId}`)\n },\n\n async deleteMessage({ messageUserId, isDeleted }) {\n return await ctx.fetchData(\"/messages/delete\", {\n method: \"POST\",\n body: JSON.stringify({\n isDeleted,\n messageUserIds: [messageUserId]\n })\n })\n },\n\n async setReadStatus({ messageUserId, isRead }) {\n return await ctx.fetchData(\"/messages/read\", {\n method: \"POST\",\n body: JSON.stringify({\n isRead,\n messageUserIds: [messageUserId]\n })\n })\n },\n\n async newMessage({ subject, body, attachments, to, repliedId, forwardedId, isPrivate }) {\n return await ctx.fetchData(\"/messages\", {\n method: \"POST\",\n body: JSON.stringify({\n subject,\n body,\n attachments: attachments.map(a => {\n return { fileHash: a.fileHash, fileName: a.name }\n }),\n recipients: {\n includedUsers: to.includedUsers.map(user => user.userId),\n excludedUsers: to.excludedUsers.map(user => user.userId),\n filters: to.filters\n },\n repliedId,\n forwardedId,\n isPrivate\n })\n })\n }\n }\n}\n","import Vue from \"vue\"\nimport NewsService from \"./NewsService\"\nimport SocialService from \"~/components/social/SocialService\"\nimport { ucfirst, ellipsis } from \"~/lib/utils\"\nimport * as DEFAULT_I18N from \"~/i18n\"\n\nexport const mutations = {\n setNewsItem(state, newsItem) {\n Vue.set(state, newsItem.newsId, newsItem)\n }\n}\n\nexport function makeActions({ service, socialService, i18n }) {\n i18n = i18n || DEFAULT_I18N.default\n return {\n async refreshNewsItem({ commit }, newsId) {\n const newsItem = await service.getNewsItem(newsId)\n commit(\"setNewsItem\", newsItem)\n },\n\n async sendLike({ state, commit, dispatch }, { newsId }) {\n const newsItem = state[newsId]\n if (!newsItem) {\n throw new Error(`News item ${newsId} doesn't exist`)\n }\n const originalNewsItem = Object.assign({}, newsItem)\n const { liked, likes } = originalNewsItem.social\n const social = Object.assign({}, originalNewsItem.social, {\n liked: !liked,\n likes: liked ? likes - 1 : likes + 1\n })\n const optimisticNewsItem = Object.assign({}, newsItem, { social })\n commit(\"setNewsItem\", optimisticNewsItem)\n\n try {\n const newNewsItem = await socialService.likeResource(optimisticNewsItem)\n commit(\"setNewsItem\", newNewsItem)\n } catch (error) {\n commit(\"setNewsItem\", originalNewsItem)\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async sendBookmark({ state, commit, dispatch }, { newsId }) {\n const newsItem = state[newsId]\n if (!newsItem) {\n throw new Error(`News item ${newsId} doesn't exist`)\n }\n const social = Object.assign({}, newsItem.social)\n social.bookmarked = !social.bookmarked\n const originalNewsItem = Object.assign({}, newsItem)\n const optimisticNewsItem = Object.assign({}, newsItem, { social })\n commit(\"setNewsItem\", optimisticNewsItem)\n\n try {\n const newNewsItem = await socialService.bookmarkResource(optimisticNewsItem)\n commit(\"setNewsItem\", newNewsItem)\n const info = newNewsItem.social.bookmarked ?\n i18n.t(\"common.wasAddedToBookmarks\") :\n i18n.t(\"common.wasRemovedFromBookmarks\")\n\n dispatch(\"pushNotification\", {\n title: ucfirst(ellipsis(newNewsItem.title, 75)),\n info: ucfirst(info),\n type: newNewsItem.social.bookmarked ? \"success\" : \"info\"\n }, { root: true })\n } catch (error) {\n commit(\"setNewsItem\", originalNewsItem)\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async updateCommentsCount({ state, commit }, { newsId, commentsCount }) {\n const newsItem = state[newsId]\n if (!newsItem) {\n throw new Error(`News item ${newsId} doesn't exist`)\n }\n const social = Object.assign({}, newsItem.social, { commentsCount })\n\n const newNewsItem = Object.assign({}, newsItem, { social })\n \n commit(\"setNewsItem\", newNewsItem)\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: {},\n mutations,\n actions: makeActions({\n service: new NewsService(),\n socialService: new SocialService()\n })\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport default class NewsService {\n async getNewsItem(newsId) {\n return await defaultCtx.fetchData(`/news/${newsId}`, {\n method: \"GET\"\n })\n }\n}\n","import { isFinished } from \"~/modules/calls/utils\"\nimport { PluginReviewActionNotAllowedError } from \"~/lib/AjaxCtx\"\n\nexport function makeActions(service) {\n return {\n async \"connector/start\"({ state, commit }, { userActivityId }) {\n const activity = state.userActivities[userActivityId]\n if (!shouldTrace(activity)) return\n\n const { sessionId } = await service.start(userActivityId)\n commit(\"setLocalState\", {\n userActivityId,\n localState: {\n sessionId\n }\n })\n return sessionId\n },\n\n async \"connector/end\"({ state, dispatch }, { userActivityId, isClosing, sessionId }) {\n const activity = state.userActivities[userActivityId]\n if (!shouldTrace(activity)) return\n\n if (!sessionId) {\n // No session was started for this connector\n return\n }\n\n try {\n await service.end({ userActivityId, sessionId, isClosing })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n }\n }\n}\n\nfunction shouldTrace(activity) {\n if (!activity) {\n //There is no activity\n return false\n }\n const activityIsFinished = isFinished(activity)\n return activity.configuration.tracing && !activityIsFinished\n}\n\nexport default {\n makeActions\n}\n","import Vue from \"vue\"\nimport * as DEFAULT_I18N from \"~/i18n\"\nimport { PluginReviewActionNotAllowedError } from \"~/lib/AjaxCtx\"\nimport { ucfirst } from \"~/lib/utils\"\n\nfunction flatQuestions({ sections, answers }) {\n const questions = []\n for (const section of sections) {\n for (const subsection of section.subsections) {\n for (const question of subsection.questions) {\n const answer = answers.find(a => a.questionId == question.id)\n questions.push({\n questionId: question.id,\n answer: answer ? answer.answer : null,\n rules: question.rules\n })\n }\n }\n }\n return questions\n}\n\nexport function getRequiredQuestions({ sections, answers }) {\n const questions = flatQuestions({ sections, answers })\n\n return questions.filter(q => {\n const rule = q.rules[0]\n if (!rule) return false\n if (rule == \"required\") return true\n if (rule.includes(\"required_if_empty\")) {\n const id = rule.split(\":\")[1]\n return !questions.find(q => q.questionId == id).answer\n }\n if (rule.includes(\"required_if\")) {\n const [id, operator, value] = rule.split(\":\")[1].split(\",\")\n const answer = questions.find(q => q.questionId == id).answer\n switch (operator) {\n case \"ne\":\n return answer != value\n default:\n throw new Error(`Operator ${operator} is not implemented`)\n }\n }\n })\n}\n\nexport const mutations = {\n \"fundae/setAnswer\"(state, { userActivityId, questionId, answer }) {\n if (!(userActivityId in state.userActivities)) {\n throw new Error(`The activity with id = ${userActivityId} is not defined`)\n }\n\n const activity = state.userActivities[userActivityId]\n if (!activity.state.answers) {\n Vue.set(activity.state, \"answers\", [])\n }\n const answers = activity.state.answers\n const answerIdx = answers.findIndex(a => a.questionId == questionId)\n if (answerIdx !== -1) {\n Vue.set(answers, answerIdx, {\n answer,\n questionId\n })\n } else {\n Vue.set(answers, answers.length, {\n answer,\n questionId\n })\n }\n }\n}\n\nexport function makeActions(service, i18n) {\n i18n = i18n || DEFAULT_I18N.default\n\n return {\n async \"fundae/save\"({ state, commit, dispatch }, { userActivityId, questionId, answer }) {\n if (!(userActivityId in state.userActivities)) {\n throw new Error(`The activity with id = ${userActivityId} is not defined`)\n }\n\n try {\n const { progress, answeredRequiredQuestions, totalRequiredQuestions } = await service.save({ userActivityId, questionId, answer })\n\n commit(\"setState\", {\n userActivityId,\n activityState: {\n ...state.userActivities[userActivityId].state,\n progress,\n answeredRequiredQuestions,\n totalRequiredQuestions\n }\n })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"fundae/finish\"({ state, commit, dispatch }, userActivityId) {\n if (!(userActivityId in state.userActivities)) {\n throw new Error(`The activity with id = ${userActivityId} is not defined`)\n }\n\n try {\n const newState = await service.finish(userActivityId)\n\n commit(\"setState\", {\n userActivityId,\n activityState: newState\n })\n\n dispatch(\"pushNotification\", {\n title: ucfirst(i18n.tc(\"common.answersWereSaved\", 2)),\n type: \"success\"\n }, { root: true })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n }\n }\n}\n\nexport default {\n mutations,\n makeActions\n}\n","import parseISO from \"date-fns/parseISO\"\nimport Vue from \"vue\"\nimport * as DEFAULT_I18N from \"~/i18n\"\nimport { PluginReviewActionNotAllowedError } from \"~/lib/AjaxCtx\"\nimport { ucfirst } from \"~/lib/utils\"\nimport { mergeAnswers } from \"./pollUtils\"\n\nconst DEFAULT_USER_ACTIVITY = {\n localState: {}\n}\n\nexport const mutations = {\n \"poll/setAnswer\"(state, { userActivityId, questionId, answer }) {\n if (!(userActivityId in state.userActivities)) {\n throw new Error(`The activity with id = ${userActivityId} is not defined`)\n }\n\n if (!questionId) {\n questionId = answer.questionId\n }\n\n const activity = state.userActivities[userActivityId]\n const attemptId = activity.state.currentAttempt.userPollAttemptId\n if (!attemptId) {\n throw new Error(`The attemptId is not defined`)\n }\n\n if (!activity.localState) {\n Vue.set(activity, \"localState\", {})\n }\n if (!activity.localState.currentUnsavedAttempt) {\n Vue.set(activity.localState, \"currentUnsavedAttempt\", {})\n }\n\n const attempt = activity.localState.currentUnsavedAttempt\n\n if (!attempt.userAnswers) {\n Vue.set(attempt, \"userAnswers\", [])\n }\n if (!attempt.userPollAttemptId) {\n Vue.set(attempt, \"userPollAttemptId\", attemptId)\n }\n\n const questionIndex = attempt.userAnswers.findIndex(a => a.questionId === questionId)\n if (questionIndex < 0) {\n attempt.userAnswers.push(answer)\n } else {\n Object.assign(attempt.userAnswers[questionIndex], answer)\n }\n },\n\n \"poll/disableAttempt\"(state, { userActivityId }) {\n if (!(userActivityId in state.userActivities)) {\n throw new Error(\"boom! this activity doesn't exist\")\n }\n\n const activity = state.userActivities[userActivityId]\n Vue.set(activity.state.currentAttempt, \"isFinished\", true)\n },\n\n \"poll/createAttemptIfNeeded\"(state, { userActivityId, attempt }) {\n const activity = state.userActivities[userActivityId]\n Vue.set(activity.state, \"currentAttempt\", attempt)\n if (!activity.localState.currentUnsavedAttempt) {\n Vue.set(activity.localState, \"currentUnsavedAttempt\", {})\n }\n Vue.set(activity.localState.currentUnsavedAttempt, \"userAnswers\", [])\n },\n\n \"poll/setCurrentAttemptTimeLeft\"(state, { userActivityId, time }) {\n const activity = state.userActivities[userActivityId]\n if (time < 0) {\n time = 0\n }\n Vue.set(activity.localState.currentUnsavedAttempt, \"timeLeft\", time)\n },\n\n \"poll/setAttemptTimer\"(state, { userActivityId, timer }) {\n const activity = state.userActivities[userActivityId]\n Vue.set(activity.localState.currentUnsavedAttempt, \"timer\", timer)\n },\n\n \"poll/setAttemptTimerAlertStatus\"(state, { userActivityId, alertWasSent }) {\n const activity = state.userActivities[userActivityId]\n Vue.set(activity.localState.currentUnsavedAttempt, \"alertWasSent\", alertWasSent)\n },\n\n \"poll/setPage\"(state, { userActivityId, page }) {\n const activity = state.userActivities[userActivityId]\n Vue.set(activity.localState.currentUnsavedAttempt, \"page\", page)\n },\n\n \"poll/setExitMessage\"(state, { userActivityId, exitMessage }) {\n if (!state.userActivities[userActivityId]) {\n Vue.set(state.userActivities, userActivityId, DEFAULT_USER_ACTIVITY)\n }\n const activity = state.userActivities[userActivityId]\n if (!activity.localState) {\n Vue.set(activity, \"localState\", {})\n }\n if (!activity.localState.currentUnsavedAttempt) {\n Vue.set(activity.localState, \"currentUnsavedAttempt\", {})\n }\n Vue.set(activity.localState.currentUnsavedAttempt, \"exitMessage\", exitMessage)\n }\n}\n\nexport function makeActions(service, i18n) {\n i18n = i18n || DEFAULT_I18N.default\n return {\n \"poll/startAttempt\"({ state, commit, dispatch }, { userActivityId, attempt }) {\n const activity = state.userActivities[userActivityId]\n commit(\"poll/createAttemptIfNeeded\", {\n userActivityId,\n attempt\n })\n dispatch(\"poll/updateExitMessage\", {\n userActivityId\n })\n if (activity.configuration.maxTimeToCompletion) {\n if (activity.state.currentAttempt.isFinished) {\n commit(\"poll/setCurrentAttemptTimeLeft\", {\n userActivityId,\n time: 0,\n })\n } else {\n dispatch(\"poll/startTimer\", { userActivityId })\n }\n }\n const page = activity.localState.currentUnsavedAttempt.page || 0\n commit(\"poll/setPage\", { userActivityId, page })\n },\n\n \"poll/startTimer\"({ state, dispatch }, { userActivityId }) {\n const activity = state.userActivities[userActivityId]\n const localAttempt = activity.localState.currentUnsavedAttempt\n const timer = localAttempt.timer || null\n if (timer) {\n dispatch(\"poll/clearAttemptTimer\", {\n userActivityId\n })\n }\n\n dispatch(\"poll/configureCurrentAttemptTimer\", {\n userActivityId\n })\n },\n\n \"poll/configureCurrentAttemptTimer\"({ state, commit, dispatch }, {\n userActivityId\n }) {\n const activity = state.userActivities[userActivityId]\n const currentFrontTime = Date.now()\n\n const timer = setInterval(() => tickTimer({ commit, dispatch }, { activity, currentFrontTime, i18n }), 1000)\n commit(\"poll/setAttemptTimer\", {\n userActivityId,\n timer\n })\n },\n\n \"poll/clearAttemptTimer\"({ state }, { userActivityId }) {\n const activity = state.userActivities[userActivityId]\n const timer = activity.localState.currentUnsavedAttempt.timer\n clearInterval(timer)\n },\n\n \"poll/changePage\"({ commit }, { userActivityId, page }) {\n commit(\"poll/setPage\", { userActivityId, page })\n },\n\n \"poll/start\"({ dispatch }, { userActivityId, attemptId }) {\n return service.start(userActivityId, attemptId)\n .then(res => {\n const attempt = res\n dispatch(\"poll/startAttempt\", {\n userActivityId,\n attempt\n })\n })\n .catch(error => {\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\",\n showCloseButton: true\n }, { root: true })\n })\n },\n\n async \"poll/correct\"({ commit, state, dispatch }, { userActivityId, answers }) {\n const activity = state.userActivities[userActivityId]\n const attemptId = activity.state.currentAttempt.userPollAttemptId\n\n try {\n const { answers: correctedAnswers } = await service.correct(userActivityId, attemptId, answers)\n for (const answer of correctedAnswers) {\n const questionId = answer.questionId\n commit(\"poll/setAnswer\", {\n userActivityId,\n questionId,\n answer\n })\n }\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"poll/save\"({ state, getters, dispatch }, { userActivityId }) {\n const activity = state.userActivities[userActivityId]\n const attemptId = activity.state.currentAttempt.userPollAttemptId\n const answers = getters[\"poll/getAnswers\"]({ userActivityId })\n try {\n await service.save(userActivityId, attemptId, answers)\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"poll/finish\"({ dispatch, commit, state, getters }, { userActivityId }) {\n const activity = state.userActivities[userActivityId]\n const attemptId = activity.state.currentAttempt.userPollAttemptId\n const answers = getters[\"poll/getAnswers\"]({ userActivityId })\n commit(\"poll/disableAttempt\", {\n userActivityId\n })\n\n try {\n const res = await service.finish(userActivityId, attemptId, answers)\n\n for (const answer of res.answers) {\n const questionId = answer.questionId\n commit(\"poll/setAnswer\", {\n userActivityId,\n questionId,\n answer\n })\n }\n\n commit(\"poll/setExitMessage\", {\n userActivityId,\n exitMessage: \"\"\n })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n }\n dispatch(\"poll/clearAttemptTimer\", {\n userActivityId\n })\n\n commit(\"poll/setExitMessage\", {\n userActivityId,\n exitMessage: \"\"\n })\n }\n },\n\n \"poll/updateExitMessage\"({ commit, state, getters }, { userActivityId }) {\n const activity = state.userActivities[userActivityId]\n const attempt = activity.state.currentAttempt\n const attemptIsFinished = attempt?.isFinished ?? false\n const attemptIsStarted = !!attempt?.attempt\n const answers = getters[\"poll/getAnswers\"]({ userActivityId })\n const answeredQuestions = answers.filter(a => a.answer !== null).length\n const totalQuestions = attemptIsStarted ? attempt.totalQuestions : activity.state.totalQuestions\n const pendingQuestions = totalQuestions - answeredQuestions\n if (attemptIsFinished || !attemptIsStarted) {\n commit(\"poll/setExitMessage\", {\n userActivityId,\n exitMessage: \"\"\n })\n } else if (pendingQuestions > 0) {\n commit(\"poll/setExitMessage\", {\n userActivityId,\n exitMessage: ucfirst(i18n.t(\"common.wantToSaveAnswers\"))\n })\n } else {\n commit(\"poll/setExitMessage\", {\n userActivityId,\n exitMessage: ucfirst(i18n.t(\"common.rememberFinishPoll\"))\n })\n }\n }\n }\n}\n\n\nexport const getters = {\n \"poll/getAnswers\": (state) => ({ userActivityId }) => {\n if (!state.userActivities[userActivityId]) {\n throw new Error(`Error: not defined activity ${userActivityId}`)\n }\n const activity = state.userActivities[userActivityId]\n if (!activity.state.currentAttempt) {\n return []\n }\n const localAttempt = activity.localState.currentUnsavedAttempt || {}\n\n const remoteAttempt = activity.state.currentAttempt\n\n if (!remoteAttempt || remoteAttempt.length === 0) return []\n\n return mergeAnswers(remoteAttempt.userAnswers, localAttempt.userAnswers)\n }\n}\n\nfunction tickTimer({ commit, dispatch }, { activity, currentFrontTime, i18n }) {\n const userActivityId = activity.userActivityId\n\n if (activity.state.currentAttempt.isFinished) {\n dispatch(\"poll/clearAttemptTimer\", {\n userActivityId\n })\n return\n }\n\n const alarmMessage = ucfirst(i18n.t(\"common.timeAlarm\"))\n const timeIsOverMessage = ucfirst(i18n.t(\"common.timeIsOver\"))\n const MILLISECONDS_PER_MINUTE = 60 * 1000\n const localAttempt = activity.localState.currentUnsavedAttempt\n const maxTimeToCompletion = activity.configuration.maxTimeToCompletion * MILLISECONDS_PER_MINUTE\n const startTime = parseISO(activity.state.currentAttempt.startAt).getTime()\n const frontNowTime = Date.now()\n const currentBackTime = parseISO(activity.state.currentAttempt.currentTime).getTime()\n const timeLeft = startTime + maxTimeToCompletion + currentFrontTime - currentBackTime - frontNowTime\n\n commit(\"poll/setCurrentAttemptTimeLeft\", {\n userActivityId,\n time: timeLeft / 1000\n })\n\n if (localAttempt.timeLeft <= 0) {\n dispatch(\"pushNotification\", {\n title: timeIsOverMessage,\n type: \"warning\"\n }, { root: true })\n dispatch(\"poll/finish\", { userActivityId })\n } else if (localAttempt.timeLeft <= 60 && !localAttempt.alertWasSent) {\n commit(\"poll/setAttemptTimerAlertStatus\", {\n userActivityId,\n alertWasSent: true\n })\n\n dispatch(\"pushNotification\", {\n title: alarmMessage,\n type: \"warning\"\n }, { root: true })\n }\n}\n\nexport default {\n getters,\n mutations,\n makeActions\n}\n","import Vue from \"vue\"\nimport { PluginReviewActionNotAllowedError } from \"~/lib/AjaxCtx\"\n\nexport const mutations = {\n \"presential/setEventAttend\"(state, { eventConfirm, userActivityId }) {\n const activity = state.userActivities[userActivityId]\n Vue.set(activity.state, 'eventConfirm', eventConfirm)\n }\n}\n\nexport function makeActions(service) {\n return {\n async setEventAttend({ commit, dispatch }, { eventId, eventConfirm, userActivityId }) {\n try {\n await service.pushAttendToEvent(eventId, eventConfirm)\n commit(\"presential/setEventAttend\", { eventConfirm, userActivityId })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n }\n }\n}\n\nexport default {\n mutations,\n makeActions\n}\n","import { uuid } from \"~/lib/utils\"\nimport { PluginReviewActionNotAllowedError } from \"~/lib/AjaxCtx\"\n\nexport const getters = {\n \"tnt/getLastVersion\": state => (userActivityId, idFile) => {\n const activity = state.userActivities[userActivityId]\n const file = activity.state.files.find(f => f.tntFileId == idFile)\n return file.versions.last()\n }\n}\n\nexport const mutations = {\n \"tnt/updateLocalFileProgress\"(state, { userActivityId, key, progress }) {\n const activity = state.userActivities[userActivityId]\n const file = activity.localState.files.find(f => f.key == key)\n file.progress = progress\n },\n\n \"tnt/accessTeacherVersion\"(state, { userActivityId, versionId }) {\n const activity = state.userActivities[userActivityId]\n const version = activity.state.versions.find(v => v.tntVersionId == versionId)\n version.accessed = true\n },\n\n \"tnt/removeLocalFile\"(state, { userActivityId, key }) {\n const activity = state.userActivities[userActivityId]\n const file = activity.localState.files.find(f => f.key == key)\n activity.localState.files.remove(file)\n },\n\n \"tnt/pushFile\"(state, { userActivityId, file }) {\n const activity = state.userActivities[userActivityId]\n activity.state.files.push(file)\n },\n\n \"tnt/pushVersion\"(state, { userActivityId, idFile, version }) {\n const activity = state.userActivities[userActivityId]\n const file = activity.state.files.find(f => f.tntFileId == idFile)\n file.versions.push(version)\n },\n\n \"tnt/removeFile\"(state, { userActivityId, idFile }) {\n const activity = state.userActivities[userActivityId]\n const file = activity.state.files.find(f => f.tntFileId == idFile)\n activity.state.files.remove(file)\n },\n\n \"tnt/removeVersion\"(state, { userActivityId, idFile, idVersion }) {\n const activity = state.userActivities[userActivityId]\n const file = activity.state.files.find(f => f.tntFileId == idFile)\n const version = file.versions.find(v => v.tntVersionId == idVersion)\n file.versions.remove(version)\n },\n\n \"tnt/pushComment\"(state, { userActivityId, idFile, comment }) {\n const activity = state.userActivities[userActivityId]\n const file = activity.state.files.find(f => f.tntFileId == idFile)\n file.versions.last().comments.push(comment)\n }\n}\n\nexport function makeActions(service) {\n return {\n async \"tnt/addVersion\"({ state, commit, dispatch }, { userActivityId, tntFileId, webFile }) {\n const activity = state.userActivities[userActivityId]\n\n const localFile = {\n tntFileId,\n key: uuid(),\n name: webFile.name,\n size: webFile.size,\n type: webFile.type,\n progress: 0\n }\n\n commit(\"setLocalState\", {\n userActivityId,\n localState: {\n files: (activity.localState.files || []).concat([localFile])\n }\n })\n\n try {\n const descriptor = await service.uploadFile(webFile, (loaded, total) => {\n commit(\"tnt/updateLocalFileProgress\", {\n userActivityId,\n key: localFile.key,\n progress: loaded / total\n })\n })\n commit(\"tnt/updateLocalFileProgress\", {\n userActivityId,\n key: localFile.key,\n progress: 1\n })\n\n const newVersion = await service.addVersion(userActivityId, tntFileId, webFile.name, descriptor.fileHash)\n\n commit(\"setLocalState\", {\n userActivityId,\n localState: {\n files: activity.localState.files.filter(f => f.key != localFile.key)\n }\n })\n\n commit(\"tnt/pushVersion\", {\n userActivityId,\n idFile: tntFileId,\n version: newVersion\n })\n } catch (error) {\n commit(\"setLocalState\", {\n userActivityId,\n localState: {\n files: activity.localState.files.filter(f => f.key != localFile.key)\n }\n })\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"tnt/addFile\"({ state, commit, dispatch }, { userActivityId, webFile }) {\n const activity = state.userActivities[userActivityId]\n\n const localFile = {\n tntFileId: -1,\n key: uuid(),\n name: webFile.name,\n size: webFile.size,\n type: webFile.type,\n progress: 0\n }\n\n commit(\"setLocalState\", {\n userActivityId,\n localState: {\n files: (activity.localState.files || []).concat([localFile])\n }\n })\n\n try {\n const descriptor = await service.uploadFile(webFile, (loaded, total) => {\n commit(\"tnt/updateLocalFileProgress\", {\n userActivityId,\n key: localFile.key,\n progress: loaded / total\n })\n })\n commit(\"tnt/updateLocalFileProgress\", {\n userActivityId,\n key: localFile.key,\n progress: 1\n })\n\n const newFile = await service.addFile(userActivityId, webFile.name, descriptor.fileHash)\n\n commit(\"tnt/removeLocalFile\", { userActivityId, key: localFile.key })\n commit(\"tnt/pushFile\", { userActivityId, file: newFile })\n } catch (error) {\n commit(\"tnt/removeLocalFile\", { userActivityId, key: localFile.key })\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"tnt/deleteFile\"({ commit, dispatch }, { userActivityId, idFile }) {\n try {\n await service.deleteFile(userActivityId, idFile)\n commit(\"tnt/removeFile\", { userActivityId, idFile })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"tnt/deleteVersion\"({ commit, dispatch }, { userActivityId, idFile, idVersion }) {\n try {\n await service.deleteVersion(userActivityId, idVersion)\n commit(\"tnt/removeVersion\", { userActivityId, idFile, idVersion })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"tnt/publish\"({ commit, dispatch }, { userActivityId }) {\n try {\n const newState = await service.publish(userActivityId)\n commit(\"setState\", { userActivityId, activityState: newState })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n async \"tnt/sendComment\"({ getters, commit, dispatch }, { userActivityId, idFile, comment }) {\n try {\n const version = getters[\"tnt/getLastVersion\"](userActivityId, idFile)\n const newComment = await service.sendComment(userActivityId, version.tntVersionId, comment)\n commit(\"tnt/pushComment\", { userActivityId, idFile, comment: newComment })\n } catch (error) {\n if (error instanceof PluginReviewActionNotAllowedError) {\n dispatch(\"lms/refreshUserActivity\", userActivityId, { root: true })\n return\n }\n throw error\n }\n },\n\n \"tnt/accessTeacherVersion\"({ commit }, { userActivityId, versionId }) {\n commit(\"tnt/accessTeacherVersion\", { userActivityId, versionId })\n }\n }\n}\n\nexport default {\n getters,\n mutations,\n makeActions\n}\n","export const DEFAULT_USER_ACTIVITY = {\n localState: {}\n}\n","import { schema } from \"normalizr\"\n\nexport const userActivitySchema = new schema.Entity(\"userActivity\", {}, {\n idAttribute: \"userActivityId\"\n})\n\nexport const levelSchema = new schema.Entity(\"level\", {} , {\n idAttribute: \"programActivityId\"\n})\n\nlevelSchema.define({\n activities: new schema.Array({\n level: levelSchema,\n userActivity: userActivitySchema\n }, value => value.level ? \"level\" : \"userActivity\")\n})\n\nexport const userCallSchema = new schema.Entity(\"userCall\", {\n activities: new schema.Array({\n level: levelSchema,\n userActivity: userActivitySchema\n }, value => value.level ? \"level\" : \"userActivity\")\n}, { idAttribute: \"userCallId\" })\n","import debounce from \"lodash/debounce\"\nimport flatMap from \"lodash/flatMap\"\nimport { denormalize, normalize } from \"normalizr\"\nimport Vue from \"vue\"\n\nimport * as DEFAULT_I18N from \"~/i18n\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport {\n ellipsis, ucfirst\n} from \"~/lib/utils\"\n\nimport { notify } from \"~/lib/bugsnag\"\n\nimport connectorModuleShard from \"~/modules/plugins/connector/connectorModuleShard\"\nimport fundaeModuleShard from \"~/modules/plugins/fundae/fundaeModuleShard\"\nimport pollModuleShard from \"~/modules/plugins/poll/pollModuleShard\"\nimport presentialModuleShard from \"~/modules/plugins/presential/presentialModuleShard\"\nimport tntModuleShard from \"~/modules/plugins/tnt/tntModuleShard\"\n\nimport SocialService from \"~/components/social/SocialService\"\nimport ConnectorService from \"~/modules/plugins/connector/ConnectorService\"\nimport FundaeService from \"~/modules/plugins/fundae/FundaeService\"\nimport PollService from \"~/modules/plugins/poll/PollService\"\nimport PresentialService from \"~/modules/plugins/presential/PresentialService\"\nimport TntService from \"~/modules/plugins/tnt/TntService\"\nimport { DEFAULT_USER_ACTIVITY } from \"./constants\"\nimport { userCallSchema } from \"./schemas\"\n\nexport function makeDefaultState() {\n const activitiesViewMode = \"list\"\n\n return {\n userActivities: {}, // userActivityId => { configuration, state, localState }\n userCalls: {}, // userCallId => UserCall\n levels: {}, // programActivityId => Level // TODO programActivityId? WTF\n\n virtualClassrooms: {}, // userCallId => VirtualClassrooms\n forums: {}, // userCallId => Forums\n\n /*\n * userCallId => {\n * activityResources: { userActivityId => [Resource] },\n * groupResources: [Resource],\n * programResources: [Resource],\n * toolsResources: [Resource],\n * }\n */\n resources: {},\n\n classmates: {}, // userCallId => [Page]\n teachers: {}, // userCallId => [Page]\n\n events: {}, // userCallId => [Event]\n\n fetchingClassmates: false,\n fetchingTeachers: false,\n activitiesViewMode\n }\n}\n\nexport const getters = {\n getDenormalizedUserCall: state => userCallId => {\n return denormalize(userCallId, userCallSchema, {\n userActivity: state.userActivities,\n level: state.levels,\n userCall: state.userCalls\n })\n },\n\n getClassmates: state => userCallId => {\n const pages = state.classmates[userCallId] || []\n return flatMap(pages, p => p.items)\n },\n\n getTeachers: state => userCallId => {\n const pages = state.teachers[userCallId] || []\n return flatMap(pages, p => p.items)\n },\n\n classmatesEndReached: state => userCallId => {\n const pages = state.classmates[userCallId] || []\n return pages.length > 0 && !pages.last().cursor.next\n },\n\n teachersEndReached: state => userCallId => {\n const pages = state.teachers[userCallId] || []\n return pages.length > 0 && !pages.last().cursor.next\n }\n}\n\nexport const mutations = {\n setUserCall(state, userCall) {\n if (!(\"userCallId\" in userCall)) {\n throw new Error(\"Missing userCallId\")\n }\n\n Vue.set(state.userCalls, userCall.userCallId, userCall)\n },\n\n setLevel(state, level) {\n Vue.set(state.levels, level.programActivityId, level)\n },\n\n setUserActivity(state, userActivity) {\n if (!(\"userActivityId\" in userActivity)) {\n throw new Error(\"Missing userActivityId\")\n }\n\n userActivity = Object.assign({},\n DEFAULT_USER_ACTIVITY,\n state.userActivities[userActivity.userActivityId],\n userActivity)\n Vue.set(state.userActivities, userActivity.userActivityId, userActivity)\n },\n\n setVirtualClassrooms(state, { userCallId, virtualClassrooms }) {\n Vue.set(state.virtualClassrooms, userCallId, virtualClassrooms)\n },\n\n setForums(state, { userCallId, forums }) {\n Vue.set(state.forums, userCallId, forums)\n },\n\n updateForum(state, { userCallId, forum }) {\n const forums = state.forums[userCallId]\n const forumIndex = forums.findIndex(f => f.resourceRelationId == forum.resourceRelationId)\n Vue.set(forums, forumIndex, forum)\n },\n\n setResources(state, { userCallId, resources }) {\n Vue.set(state.resources, userCallId, resources)\n },\n\n setEvents(state, { userCallId, events }) {\n Vue.set(state.events, userCallId, events)\n },\n\n pushClassmatesPage(state, { userCallId, users, cursor }) {\n if (!(userCallId in state.classmates)) {\n Vue.set(state.classmates, userCallId, [])\n }\n\n state.classmates[userCallId].push({\n items: users,\n cursor\n })\n },\n\n pushTeachersPage(state, { userCallId, users, cursor }) {\n if (!(userCallId in state.teachers)) {\n Vue.set(state.teachers, userCallId, [])\n }\n\n state.teachers[userCallId].push({\n items: users,\n cursor\n })\n },\n\n setFetchingClassmates(state, val) {\n state.fetchingClassmates = val\n },\n\n setFetchingTeachers(state, val) {\n state.fetchingTeachers = val\n },\n\n setState(state, { userActivityId, activityState }) {\n const activity = state.userActivities[userActivityId]\n if (!activity) throw new Error(`Activity ${userActivityId} is not initialized.`)\n Vue.set(activity, \"state\", activityState)\n },\n\n setLocalState(state, { userActivityId, localState }) {\n const activity = state.userActivities[userActivityId]\n if (!activity) throw new Error(`Activity ${userActivityId} is not initialized.`)\n Vue.set(activity, \"localState\", localState)\n },\n\n clearLocalState(state, { userActivityId }) {\n const activity = state.userActivities[userActivityId]\n if (!activity) throw new Error(`Activity ${userActivityId} is not initialized.`)\n Vue.set(activity, \"localState\", {})\n },\n\n clearModule(state) {\n Object.assign(state, makeDefaultState())\n },\n\n setActivitiesViewMode(state, viewMode) {\n Vue.set(state, \"activitiesViewMode\", viewMode)\n }\n}\n\nexport function makeActions({ ctx, socialService, i18n }) {\n i18n = i18n ?? DEFAULT_I18N.default\n return {\n async refreshUserCall({ dispatch }, userCallId) {\n const denormalizedUserCall = await ctx.fetchData(`/user-calls/${userCallId}`, { waitFor: \"/participant-activity/\" })\n dispatch(\"storeDenormalizedUserCall\", denormalizedUserCall)\n },\n\n storeDenormalizedUserCall({ commit }, denormalizedUserCall) {\n const { entities } = normalize(denormalizedUserCall, userCallSchema)\n\n const levels = entities.level || {}\n for (let level of Object.values(levels)) {\n commit(\"setLevel\", level)\n }\n\n const userActivities = entities.userActivity || {}\n for (let userActivity of Object.values(userActivities)) {\n commit(\"setUserActivity\", userActivity)\n }\n\n const userCalls = entities.userCall || {}\n for (let userCall of Object.values(userCalls)) {\n commit(\"setUserCall\", userCall)\n }\n },\n\n async syncActivity({ dispatch, rootGetters, rootState }, { userActivityId, isClosing }) {\n const { tabId } = rootState\n if (!rootGetters.currentUser) return // don't send the request once the user is logged out\n if (isClosing) {\n ctx.sendBeacon(`/participant-activity/${userActivityId}/exiting`, { tabId, isClosing })\n } else {\n const denormalizedUserCall = await ctx.fetchData(`/participant-activity/${userActivityId}/exiting`, {\n method: \"POST\",\n body: JSON.stringify({ tabId, isClosing })\n })\n dispatch(\"storeDenormalizedUserCall\", denormalizedUserCall)\n }\n },\n\n async refreshUserActivity({ commit }, userActivityId) {\n const userActivity = await ctx.fetchData(`/participant-activity/${userActivityId}/info`)\n commit(\"setUserActivity\", userActivity)\n },\n\n async openUserActivity({ commit }, { userActivityId }) {\n const url = `/participant-activity/${userActivityId}`\n const userActivity = await ctx.fetchData(url)\n commit(\"setUserActivity\", userActivity)\n },\n\n async extendUserActivity({ commit, dispatch }, userActivityId) {\n const successExtensionMessage = ucfirst(i18n.t(\"common.extendActivitySuccess\"))\n try {\n const userActivity = await ctx.fetchData(`/user-calls-activities/${userActivityId}/extend`, {\n method: 'PUT'\n })\n dispatch(\"pushNotification\", {\n title: successExtensionMessage,\n type: \"success\"\n }, { root: true })\n commit(\"setUserActivity\", userActivity)\n } catch (e) {\n dispatch(\"pushNotification\", {\n title: e.message,\n type: \"error\"\n }, { root: true })\n notify(e)\n }\n },\n\n refreshResources: debounce(({ dispatch }, params) => {\n return dispatch(\"_refreshResources\", params)\n }, 1000, { leading: true, trailing: false }),\n\n async _refreshResources({ commit }, userCallId) {\n const resources = await ctx.fetchData(`/user-calls/${userCallId}/resources`)\n commit(\"setResources\", { userCallId, resources })\n },\n\n refreshVirtualClassrooms: debounce(({ dispatch }, params) => {\n return dispatch(\"_refreshVirtualClassrooms\", params)\n }, 1000, { leading: true, trailing: false }),\n\n async _refreshVirtualClassrooms({ commit }, userCallId) {\n const virtualClassrooms = await ctx.fetchData(`/user-calls/${userCallId}/vc`)\n commit(\"setVirtualClassrooms\", { userCallId, virtualClassrooms })\n },\n\n refreshForums: debounce(({ dispatch }, params) => {\n return dispatch(\"_refreshForums\", params)\n }, 1000, { leading: true, trailing: false }),\n\n async _refreshForums({ commit }, userCallId) {\n const forums = await ctx.fetchData(`/user-calls/${userCallId}/forums`)\n commit(\"setForums\", { userCallId, forums })\n },\n\n refreshEvents: debounce(({ dispatch }, params) => {\n return dispatch(\"_refreshEvents\", params)\n }, 1000, { leading: true, trailing: false }),\n\n async _refreshEvents({ commit }, userCallId) {\n const events = await ctx.fetchData(`/user-calls/${userCallId}/events`)\n commit(\"setEvents\", { userCallId, events })\n },\n\n getMoreClassmates: debounce(async ({ commit, dispatch }, params) => {\n commit(\"setFetchingClassmates\", true)\n await dispatch(\"_getMoreClassmates\", params)\n commit(\"setFetchingClassmates\", false)\n }, 1000, { leading: true, trailing: false }),\n\n getMoreTeachers: debounce(async ({ commit, dispatch }, params) => {\n commit(\"setFetchingTeachers\", true)\n await dispatch(\"_getMoreTeachers\", params)\n commit(\"setFetchingTeachers\", false)\n }, 1000, { leading: true, trailing: false }),\n\n async _getMoreTeachers({ state, commit }, userCallId) {\n let url = `/user-calls/${userCallId}/teachers?limit=50`\n\n const pages = state.teachers[userCallId] || []\n const lastPage = pages.last()\n if (lastPage) {\n if (lastPage.cursor.next) {\n url += `&cursor=${lastPage.cursor.next}`\n } else {\n return\n }\n }\n\n const {\n data: users,\n meta: { cursor }\n } = await ctx.fetchAPI(url)\n\n commit(\"pushTeachersPage\", { userCallId, users, cursor })\n },\n\n async _getMoreClassmates({ state, commit }, userCallId) {\n let url = `/user-calls/${userCallId}/classmates?limit=50`\n\n const pages = state.classmates[userCallId] || []\n const lastPage = pages.last()\n if (lastPage) {\n if (lastPage.cursor.next) {\n url += `&cursor=${lastPage.cursor.next}`\n } else {\n return\n }\n }\n\n const {\n data: users,\n meta: { cursor }\n } = await ctx.fetchAPI(url)\n\n commit(\"pushClassmatesPage\", { userCallId, users, cursor })\n },\n\n async sendBookmark({ state, commit, dispatch }, userCallId) {\n const userCall = state.userCalls[userCallId]\n if (!userCall) {\n throw new Error(`UserCall ${userCallId} doesn't exist`)\n }\n const { bookmarked } = userCall.social\n const originalUserCall = Object.assign({}, userCall)\n const social = Object.assign({}, userCall.social, {\n bookmarked: !bookmarked\n })\n const optimisticUserCall = Object.assign({}, userCall, { social })\n commit(\"setUserCall\", optimisticUserCall)\n\n try {\n const newUserCall = await socialService.bookmarkResource(optimisticUserCall)\n commit(\"setUserCall\", newUserCall)\n const info = newUserCall.social.bookmarked ?\n i18n.t(\"common.wasAddedToBookmarks\") :\n i18n.t(\"common.wasRemovedFromBookmarks\")\n\n dispatch(\"pushNotification\", {\n title: ucfirst(ellipsis(newUserCall.programName, 75)),\n info: ucfirst(info),\n type: newUserCall.social.bookmarked ? \"success\" : \"info\"\n }, { root: true })\n } catch (error) {\n commit(\"setUserCall\", originalUserCall)\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async rateCall({ state, commit, dispatch }, { rating, userCallId }) {\n const userCall = state.userCalls[userCallId]\n if (!userCall) {\n throw new Error(`UserCall ${userCallId} doesn't exist`)\n }\n\n try {\n const newUserCall = await socialService.rateResource({\n rating,\n resource: userCall\n })\n commit(\"setUserCall\", newUserCall)\n } catch (error) {\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async saveProgress({ state, commit, dispatch }, { userActivityId, progress, playBackTime, currentTime }) {\n const { meta = {} } = await ctx.fetchAPI(`/participant-activity/${userActivityId}/save`, {\n method: \"POST\",\n body: JSON.stringify({\n progress,\n playBackTime,\n currentTime\n })\n })\n const { ongoing } = meta\n if (ongoing) {\n dispatch(\"pushNotification\", {\n title: i18n.t(\"plugins.videos.youAreCurrentlyWatchingTheFollowingVideos\"),\n info: ongoing.videoPlaying,\n type: \"warning\"\n }, { root: true })\n }\n\n const activityState = {\n ...state.userActivities[userActivityId].state,\n progress,\n playBackTime,\n currentTime\n }\n commit(\"setState\", { userActivityId, activityState })\n },\n\n storeActivitiesViewMode({ commit }, viewMode) {\n commit(\"setActivitiesViewMode\", viewMode)\n }\n }\n}\n\nexport default {\n namespaced: true,\n\n state: makeDefaultState(),\n\n getters: {\n ...getters,\n ...pollModuleShard.getters,\n ...tntModuleShard.getters,\n ...presentialModuleShard.getters\n },\n\n mutations: {\n ...mutations,\n ...fundaeModuleShard.mutations,\n ...pollModuleShard.mutations,\n ...tntModuleShard.mutations,\n ...presentialModuleShard.mutations\n },\n\n actions: {\n ...makeActions({ ctx: defaultCtx, socialService: new SocialService() }),\n ...fundaeModuleShard.makeActions(new FundaeService(defaultCtx)),\n ...pollModuleShard.makeActions(new PollService(defaultCtx)),\n ...tntModuleShard.makeActions(new TntService(defaultCtx)),\n ...presentialModuleShard.makeActions(new PresentialService(defaultCtx)),\n ...connectorModuleShard.makeActions(new ConnectorService())\n }\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport default class FundaeService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n\n /**\n * Save the answers of the poll\n * returns the state of the activity\n */\n async save({ userActivityId, questionId, answer }) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/save`, {\n method: \"POST\",\n body: JSON.stringify({ questionId, answer })\n })\n }\n\n /**\n * Save the answers and finishes the poll\n * returns the state of the activity\n */\n async finish(userActivityId, answers) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/finish`, {\n method: \"POST\",\n body: JSON.stringify({ answers })\n })\n }\n}","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport default class PollService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n /**\n * Starts the poll and fetches the attempt data\n */\n async start(userActivityId, attemptId = null) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/start`, {\n method: \"POST\",\n body: JSON.stringify({ attemptId: attemptId })\n })\n }\n\n /**\n * Saves the poll answers\n */\n async save(userActivityId, attemptId, answers) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/save`, {\n method: \"POST\",\n body: JSON.stringify({\n attemptId: attemptId,\n answers\n })\n })\n }\n\n /**\n * Corrects a set of questions of the poll and fetches the attempt data including the corrections (if relevant)\n */\n async correct(userActivityId, attemptId, answers) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/correct`, {\n method: \"POST\",\n body: JSON.stringify({\n attemptId: attemptId,\n answers\n })\n })\n }\n\n /**\n * Finishes the poll and updates the attempt data including the corrections (if relevant)\n */\n async finish(userActivityId, attemptId, answers) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/finish`, {\n method: \"POST\",\n body: JSON.stringify({\n attemptId: attemptId,\n answers\n })\n })\n }\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport default class TntService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n /**\n * Returns the updated activity state.\n */\n async publish(userActivityId) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/publish`, {\n method: \"POST\"\n })\n }\n\n /**\n * Doesn't return anything.\n */\n async deleteFile(userActivityId, idFile) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/removeFile`, {\n method: \"POST\",\n body: JSON.stringify({ idFile })\n })\n }\n\n /**\n * Doesn't return anything.\n */\n async deleteVersion(userActivityId, idVersion) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/removeFile`, {\n method: \"POST\",\n body: JSON.stringify({ idVersion })\n })\n }\n\n /**\n * Returns the new file.\n */\n async addFile(userActivityId, fileName, fileHash) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/addFile`, {\n method: \"POST\",\n body: JSON.stringify({ fileName, fileHash })\n })\n }\n\n /**\n * Returns the new version.\n */\n async addVersion(userActivityId, idFile, fileName, fileHash) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/addVersion`, {\n method: \"POST\",\n body: JSON.stringify({ idFile, fileName, fileHash })\n })\n }\n\n /**\n * Returns the new comment.\n */\n async sendComment(userActivityId, idVersion, comment) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/addComment`, {\n method: \"POST\",\n body: JSON.stringify({ idVersion, comment })\n })\n }\n\n /**\n * Returns a file descriptor.\n */\n async uploadFile(file, progressCallback) {\n return await this.$http.uploadFile(file, progressCallback)\n }\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport default class ConnectorService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n\n async start(userActivityId) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/start`)\n }\n\n async end({ userActivityId, sessionId, isClosing }) {\n if (isClosing) {\n return this.$http.sendBeacon(`/participant-activity/${userActivityId}/end`, { sessionId })\n }\n\n return await this.$http.fetchData(`/participant-activity/${userActivityId}/end`, {\n method: \"POST\",\n body: JSON.stringify({ sessionId })\n })\n }\n}\n","import Vue from \"vue\"\nimport i18n from \"~/i18n\"\n\nimport * as DEFAULT_I18N from \"~/i18n\"\nimport { ucfirst } from \"~/lib/utils\"\n\nimport ProfileService from \"./ProfileService\"\n\nexport function makeDefaultState() {\n return {\n currentUser: null,\n editableProfileFields: []\n }\n}\n\nexport const getters = {\n languagesAsOptions: (_state, _getters, rootState) => {\n const languagesToSelect = rootState.configs[\"languagesToSelect\"] || []\n if (!i18n.availableLocales.length) return []\n return languagesToSelect.map(lang => {\n const translationKey = lang == 'ca' ? 'ct' : lang\n return {\n text: ucfirst( i18n.t(`common.language${ ucfirst(translationKey) }`) ),\n value: lang\n }\n })\n },\n\n currentUser: (state) => {\n return state.currentUser\n },\n\n currentUserId: (state) => {\n return state.currentUser?.userId\n },\n\n itsMe: (_state, getters) => (userId) => {\n return getters.currentUserId == userId\n }\n}\n\nexport const mutations = {\n setCurrentUser(state, user) {\n Vue.set(state, \"currentUser\", user)\n },\n\n setEditableFields(state, editableProfileFields){\n Vue.set(state, \"editableProfileFields\", editableProfileFields)\n },\n\n setUserField(state, { key, value }) {\n const editableProfileFields = state.editableProfileFields\n const fieldIdx = editableProfileFields.findIndex(f => f.prop === key)\n if (fieldIdx === -1) {\n return\n }\n Vue.set(editableProfileFields[fieldIdx], \"value\", value)\n },\n\n clearModule(state) {\n Vue.set(state, \"editableProfileFields\", [])\n Vue.set(state, \"currentUser\", null)\n }\n}\n\nexport function makeActions(i18n, service) {\n i18n = i18n || DEFAULT_I18N.default\n\n return {\n changePassword({ state, commit, dispatch }, { newPassword, repeatNewPassword, currentPassword }) {\n return service.updatePassword(newPassword, repeatNewPassword, currentPassword).then(() => {\n dispatch(\"pushNotification\", {\n type: \"success\",\n title: ucfirst(i18n.t('common.passwordSuccessfullyUpdated'))\n }, { root: true })\n const loginSteps = {\n ...state.currentUser?.loginSteps ?? {},\n password: false\n }\n commit(\"setCurrentUser\", {\n ...state.currentUser,\n loginSteps\n })\n })\n .catch((err) => {\n const { response } = err\n dispatch(\"pushNotification\", {\n title: ucfirst(i18n.t(\"common.error\")),\n info: response.errors,\n type: \"danger\"\n }, { root: true })\n })\n },\n\n async changeLanguage({ state, commit, dispatch }, language) {\n const languageToSubmit = language == 'ca' ? 'ct' : language\n const user = await dispatch(\"updateProfileAttribute\", { language: languageToSubmit })\n const diff = await dispatch(\"loadLocale\", user.language, { root: true })\n if (diff) {\n dispatch(\"structure/refreshStructure\", undefined, { root: true })\n commit(\"lists/clearAllFilterAndOrderDescriptions\", undefined, { root: true })\n dispatch(\"fetchEditableFields\")\n dispatch(\"cookies/refresh\", undefined,{ root: true })\n }\n const loginSteps = {\n ...state.currentUser?.loginSteps ?? {},\n language: false\n }\n commit(\"setCurrentUser\", {\n ...state.currentUser,\n loginSteps\n })\n return user\n },\n\n async updateProfile({ commit, dispatch }, user) {\n try {\n const newUser = await service.updateProfile(user)\n commit(\"setCurrentUser\", newUser)\n\n Object.keys(user).forEach(key => {\n const value = user[key]\n commit(\"setUserField\", { key, value })\n })\n\n return newUser\n } catch (error) {\n dispatch(\"pushNotification\", {\n type: 'error',\n title: error.message\n }, { root: true })\n }\n },\n\n async updateProfileAttribute({ commit, dispatch }, user) {\n try {\n const newUser = await service.updateProfileAttribute(user)\n commit(\"setCurrentUser\", newUser)\n\n Object.keys(user).forEach(key => {\n const value = user[key]\n commit(\"setUserField\", { key, value })\n })\n\n return newUser\n } catch (error) {\n dispatch(\"pushNotification\", {\n type: 'error',\n title: error.message\n }, { root: true })\n }\n },\n\n async updateAvatar({ commit }, { fileHash }) {\n const user = await service.updateAvatar(fileHash)\n commit(\"setCurrentUser\", user)\n },\n\n async deleteAvatar({ commit, dispatch }) {\n const user = await service.removeAvatar()\n commit(\"setCurrentUser\", user)\n dispatch(\"pushNotification\", {\n title: ucfirst(i18n.t(\"common.profilePicWasDeleted\"))\n }, { root: true })\n },\n\n async fetchEditableFields({ commit }) {\n const editableProfileFields = await service.getEditableFields()\n commit(\"setEditableFields\", editableProfileFields)\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: makeDefaultState(),\n getters,\n mutations,\n actions: makeActions(i18n, new ProfileService())\n}\n","import Vue from \"vue\"\nimport SupervisorService from \"./SupervisorService\"\n\nexport function makeDefaultState() {\n return {\n dashboard: {\n charts: []\n },\n panel: {\n supervisorUrl: null,\n hasDashboard: false,\n hasCourses: false,\n hasParticipants: false,\n hasSupervisedEnrollments: false,\n hasFormationRequests: false,\n hasExternalFormationRequests: false,\n hasExternalExperienceRequests: false,\n hasPreregisterRequests: false\n },\n counters: {\n coursesCount: 0,\n experiencePendingRequestsCount: 0,\n externalPendingRequestsCount: 0,\n lmsPendingRequestsCount: 0,\n pendingRequestsCount: 0,\n preregisterPendingRequestsCount: 0,\n supervisedCount: 0\n }\n }\n}\n\nexport const getters = {\n hasRequests: state => {\n const {\n hasFormationRequests,\n hasExternalFormationRequests,\n hasExternalExperienceRequests,\n hasPreregisterRequests,\n } = state.panel\n return hasFormationRequests || hasExternalFormationRequests || hasExternalExperienceRequests || hasPreregisterRequests\n },\n\n links(state, getters) {\n const { hasDashboard, hasCourses, hasParticipants } = state.panel\n const { hasRequests } = getters\n const { pendingRequestsCount } = state.counters\n\n return [\n hasDashboard && {\n name: \"dashboard\",\n to: \"/supervisor/dashboard\",\n icon: \"dashboard\",\n notification: null\n },\n hasCourses && {\n name: \"courses\",\n to: \"/supervisor/courses\",\n icon: \"program\",\n notification: null\n },\n hasParticipants && {\n name: \"participants\",\n to: \"/supervisor/participants\",\n icon: \"users-alt\",\n notification: null\n },\n hasRequests && {\n name: \"requests\",\n to: \"/supervisor/requests\",\n icon: \"file-check\",\n notification: pendingRequestsCount\n }\n ].filter(Boolean)\n },\n\n availableRequestLinks(state) {\n const {\n hasFormationRequests,\n hasExternalFormationRequests,\n hasExternalExperienceRequests,\n hasPreregisterRequests\n } = state.panel\n return [\n hasFormationRequests && \"lms\",\n hasExternalFormationRequests && \"external\",\n hasExternalExperienceRequests && \"experience\",\n hasPreregisterRequests && \"preregister\"\n ].filter(Boolean)\n },\n\n availableSections: (state, getters, rootState) => {\n const { hasDashboard, hasCourses, hasParticipants } = state.panel\n const { hasRequests } = getters\n const hasAccess = hasDashboard || hasCourses || hasParticipants\n const { hasMailbox } = rootState.platform\n const { sendMessageForbidden } = rootState.configs\n\n // These are route names\n return [\n hasAccess && \"supervisor\",\n hasDashboard && \"dashboard\",\n hasCourses && \"courses\",\n hasCourses && \"coursesSection\",\n hasCourses && \"courseDetail\",\n hasParticipants && \"participantDetail\",\n hasParticipants && \"participants\",\n hasRequests && \"requests\",\n hasRequests && \"requestsList\",\n hasRequests && \"requestDetail\",\n hasMailbox && \"supervisorMessages\",\n hasMailbox && sendMessageForbidden && \"supervisorMessagesNew\",\n hasMailbox && \"supervisorMessageDetail\"\n ].filter(Boolean)\n }\n}\n\nexport const mutations = {\n clearModule(state) {\n state.dashboard.charts = []\n state.panel = {}\n state.counters = {}\n },\n\n setChart(state, { idx, chart }) {\n Vue.set(\n state.dashboard.charts,\n idx,\n Object.assign({}, state.dashboard.charts[idx], chart)\n )\n },\n\n setPanel(state, panel) {\n Vue.set(state, \"panel\", panel)\n },\n\n setCounters(state, counters) {\n Vue.set(state, \"counters\", counters)\n }\n}\n\nexport function makeActions(service) {\n return {\n async init({ commit }) {\n const panel = await service.getPanel()\n commit(\"setPanel\", panel)\n },\n\n getCounters({ commit }) {\n service.getCounters().then(counters => {\n commit(\"setCounters\", counters)\n })\n },\n\n getDashboardElements({ commit }) {\n service.getDashboard().then(({ charts }) => {\n charts.forEach((chart, idx) => {\n commit(\"setChart\", {\n chart: {\n ...chart,\n loading: true\n },\n idx\n })\n\n service.loadChart(chart).then(chart => {\n commit(\"setChart\", {\n chart: {\n ...chart,\n loading: false\n },\n idx\n })\n })\n })\n })\n },\n\n initList({ commit, dispatch }, params) {\n const { type, url, title, presenter } = params\n const listId = params.listId || `supervisor-${type}s`\n const description = {\n cursor: null,\n listId,\n url,\n itemsType: `supervisor-${type}-card`,\n title,\n presenter\n }\n commit(\"lists/setDescription\", description, { root: true })\n dispatch(\"lists/init\", { key: listId, includeTotalCount: true }, { root: true })\n },\n\n send({ commit, dispatch }, { includedUsers=[], excludedUsers=[], filters=[] }) {\n commit(\"messages/clearNewMessage\", null, { root: true })\n // TODO: currently, filters are not implemented so it only uses includedUsers\n dispatch(\"messages/updateNewMessage\", {\n to: {\n includedUsers,\n excludedUsers,\n filters\n }\n }, { root: true })\n },\n\n updateCounters({ state, commit, dispatch }, { type, payload }) {\n const { status, target } = payload\n if (![\"OK\", \"KO\"].includes(status)) {\n return\n }\n const { counters } = state\n const newCounters = Object.assign({}, counters)\n\n switch (type) {\n case \"supervisor-lms\":\n case \"supervisor-external\":\n case \"supervisor-experience\":\n case \"supervisor-preregister\":\n const counterKey = `${type.replace(\"supervisor-\", \"\")}PendingRequestsCount`\n newCounters[counterKey] -= target.total\n break\n\n default:\n return\n }\n\n commit(\"setCounters\", newCounters)\n dispatch(\"getCounters\")\n },\n\n /**\n *\n * @param type String - list key: \"supervisor-lms\", \"supervisor-external\", \"supervisor-experience\", \"supervisor-preregister\"\n * @param payload Object - {\n * status: \"OK\"/\"KO\"/\"INFO\",\n * target: { included: Array, excluded: Array, filter: Array }\n * }\n */\n async editRequests({ dispatch }, { type, payload }) {\n try {\n dispatch(\"setLoadingElements\", { key: type, payload, loading: true })\n await service.editRequests(type, payload)\n dispatch(\"updateCounters\", { type, payload })\n // @todo if payload.target has only \"included\" items we don't have to reload the entire list\n dispatch(\"lists/justRefresh\", { key: type }, { root: true })\n } catch(error) {\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n } finally {\n dispatch(\"setLoadingElements\", { key: type, payload, loading: false })\n }\n },\n\n async download({ dispatch }, { type, payload, fileName }) {\n try {\n await service.download({\n type,\n payload,\n fileName,\n onNotification: title => dispatch(\"pushNotification\", { title }, { root: true })\n })\n } catch(error) {\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n async downloadMonitoringReport({ dispatch }, { callFromDate, programs, unitBreakdown }) {\n try {\n await service.downloadMonitoringReport({\n callFromDate,\n programs,\n unitBreakdown,\n onNotification: title => dispatch(\"pushNotification\", { title }, { root: true })\n })\n } catch(error) {\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n }\n },\n\n setLoadingElements({ commit, rootState }, { key, payload, loading }) {\n const { included } = payload.target\n if (!included.length) { // update all items from the list\n rootState.lists.instances[key].items.forEach(item => {\n const newItem = {\n ...item,\n loading\n }\n commit(\"lists/updateItem\", { item: newItem, listKey: key }, { root: true })\n })\n return\n }\n included.forEach(id => {\n const items = rootState.lists.instances[key].items\n const itemKey = items[0]._meta.key\n const oldItem = items.find(item => item[itemKey] == id)\n const newItem = {\n ...oldItem,\n loading\n }\n commit(\"lists/updateItem\", { item: newItem, listKey: key }, { root: true })\n })\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: makeDefaultState(),\n getters,\n mutations,\n actions: makeActions(new SupervisorService())\n}\n","import Vue from \"vue\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport { traverse } from \"~/lib/utils\"\n\nexport function makeDefaultState() {\n return {\n permissions: {\n notifications: [],\n value: false\n },\n token: \"\"\n }\n}\n\nexport const getters = {\n pushNotificationsPermission: (_state, _getters, rootState) => {\n const permission = window.Notification ? window.Notification.permission : \"denied\"\n const { enableNotifications, enableServiceWorker } = rootState.featureFlags\n return enableNotifications && enableServiceWorker ? permission : \"denied\"\n },\n\n notificationPermission: state => id => {\n let value = false\n function callback(node) {\n if (node.id === id) {\n value = node.value\n return true\n }\n }\n const notifications = state.permissions.notifications\n notifications.some(node => {\n return traverse(node, callback, node => node.children ?? [])\n })\n return value\n }\n}\n\nexport const mutations = {\n setActive(state, value) {\n state.permissions.value = value\n },\n\n setToken(state, token) {\n state.token = token\n },\n\n setNotificationPermissions(state, permissions) {\n Vue.set(state, \"permissions\", permissions)\n },\n\n clearModule(state) {\n Vue.set(state, \"permissions\", {\n value: false,\n notifications: []\n })\n state.token = \"\"\n }\n}\n\nexport function makeActions({ ctx } = {}) {\n return {\n refreshNotificationPermissions({ getters, commit }) {\n const permission = getters.pushNotificationsPermission\n if (permission === \"denied\") return\n\n ctx.fetchData(\"/notifications\", {\n waitFor: \"/notifications\"\n })\n .then(({ notifications, value }) => {\n commit(\"setNotificationPermissions\", { notifications, value })\n })\n },\n\n toggleNotificationPermission({ getters, commit, dispatch }, id) {\n const value = !getters.notificationPermission(id)\n return ctx.fetchData(`/notifications/${id}`, {\n method: \"PUT\",\n body: JSON.stringify({ value })\n })\n .then(permissions => {\n commit(\"setNotificationPermissions\", permissions)\n })\n .catch(error => {\n dispatch(\"pushNotification\", {\n type: \"error\",\n title: error.message\n }, {\n root: true\n })\n })\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: makeDefaultState(),\n getters,\n mutations,\n actions: makeActions({ ctx: defaultCtx })\n}\n","import debounce from \"lodash/debounce\"\nimport merge from \"lodash/merge\"\nimport tinycolor from \"tinycolor2\"\nimport { StyleSheet } from \"~/lib/aphrodite\"\nimport {\n darken, getContrastColor,\n getContrastTheme,\n getOverlayColor, lighten\n} from \"~/lib/utils\"\n\nexport const DEFAULT_CUSTOMIZATION = {\n primaryColor: \"#a8a8a8\"\n}\n\nexport const getters = {\n contrastColor: (state, getters) => getContrastColor(getters.primaryColor),\n contrastColorDark10: (state, getters) => darken(getters.contrastColor, 10),\n contrastTheme: (state, getters) => getContrastTheme(getters.primaryColor),\n\n overlayColor15: (state, getters) => getOverlayColor(getters.primaryColor, 15),\n overlayColor50: (state, getters) => getOverlayColor(getters.primaryColor, 50),\n overlayColor85: (state, getters) => getOverlayColor(getters.primaryColor, 85),\n primaryColor: state => state.customization.primaryColor,\n primaryColorLight15: state => lighten(state.customization.primaryColor, 15),\n primaryColorLight25: state => lighten(state.customization.primaryColor, 25),\n primaryColorLight30: state => lighten(state.customization.primaryColor, 30),\n primaryColorLight50: state => lighten(state.customization.primaryColor, 50),\n primaryColorLight90: state => lighten(state.customization.primaryColor, 90),\n primaryColorDark10: state => darken(state.customization.primaryColor, 10),\n primaryColorDark15: state => darken(state.customization.primaryColor, 15),\n primaryColorDark30: state => darken(state.customization.primaryColor, 30),\n primaryColorOpacity10: state => tinycolor(state.customization.primaryColor).setAlpha(0.1),\n\n styles: (state, getters) => {\n const {\n contrastColor,\n contrastColorDark10,\n overlayColor15,\n overlayColor50,\n overlayColor85,\n primaryColor,\n primaryColorLight15,\n primaryColorLight25,\n primaryColorLight30,\n primaryColorLight50,\n primaryColorLight90,\n primaryColorDark10,\n primaryColorDark15,\n primaryColorDark30,\n primaryColorOpacity10\n } = getters\n\n return StyleSheet.create({\n // Backgrounds\n bgPrimary: {\n backgroundColor: `${primaryColor} !important`\n },\n\n bgPrimaryDisabled: {\n backgroundColor: `${primaryColorLight15} !important`\n },\n\n bgPrimaryLight: {\n backgroundColor: `${primaryColorLight90} !important`\n },\n\n bgPrimaryLight25: {\n backgroundColor: `${primaryColorLight25} !important`\n },\n\n bgPrimaryDark30: {\n backgroundColor: `${primaryColorDark30} !important`\n },\n\n bgPrimaryOpacity10: {\n backgroundColor: `${primaryColorOpacity10} !important`\n },\n\n bgNegative: {\n backgroundColor: `${contrastColor} !important`\n },\n\n bgOverlay15: {\n backgroundColor: `${overlayColor15} !important`\n },\n\n bgOverlay85: {\n backgroundColor: `${overlayColor85} !important`\n },\n\n bgPrimaryOpacity10Hover: {\n \":hover\": {\n backgroundColor: `${primaryColorOpacity10} !important`\n }\n },\n\n bgPrimaryOpacity10Focus: {\n \":focus\": {\n backgroundColor: `${primaryColorOpacity10} !important`\n }\n },\n\n bgPrimaryFocus: {\n \":focus\": {\n backgroundColor: `${primaryColor} !important`\n }\n },\n\n bgPrimaryHover: {\n \":hover\": {\n backgroundColor: `${primaryColor} !important`\n }\n },\n\n customHoverPrimary: {\n \":hover\": {\n color: `${primaryColor} !important`\n },\n \":focus\": {\n color: `${primaryColor} !important`\n },\n \":active\": {\n color: `${primaryColor} !important`\n }\n },\n\n // Links\n linkPrimary: {\n color: `${primaryColor} !important`,\n\n \":hover\": {\n color: `${primaryColorDark10} !important`\n },\n \":focus\": {\n color: `${primaryColorDark10} !important`\n },\n \":active\": {\n color: `${primaryColorDark30} !important`\n }\n },\n\n linkPrimaryLoading: {\n color: `${primaryColorLight15} !important`,\n\n \":hover\": {\n color: `${primaryColorLight15} !important`\n },\n \":focus\": {\n color: `${primaryColorLight15} !important`\n },\n \":active\": {\n color: `${primaryColorLight15} !important`\n }\n },\n\n linkNegative: {\n backgroundColor: `${primaryColor} !important`,\n color: `${contrastColor} !important`,\n\n \":hover\": {\n backgroundColor: `${primaryColorDark10} !important`\n },\n \":focus\": {\n backgroundColor: `${primaryColorDark10} !important`\n },\n \":active\": {\n backgroundColor: `${primaryColorDark30} !important`\n }\n },\n\n innerLinkPrimary: {\n \"& a\": {\n \"color\": `${primaryColor} !important`,\n \":hover\": { color: `${primaryColorDark10} !important` },\n \":focus\": { color: `${primaryColorDark10} !important` },\n \":active\": { color: `${primaryColorDark30} !important`}\n }\n },\n\n // Text\n textPrimary: {\n color: `${primaryColor} !important`\n },\n\n textPrimaryLight: {\n color: `${primaryColorLight15} !important`\n },\n\n textPrimaryLight25: {\n color: `${primaryColorLight25} !important`\n },\n\n textPrimaryLight30: {\n color: `${primaryColorLight30} !important`\n },\n\n textPrimaryLight50: {\n color: `${primaryColorLight50} !important`\n },\n\n textPrimaryDark: {\n color: `${primaryColorDark15} !important`\n },\n\n focusTextPrimaryDark: {\n \":focus\": {\n color: `${primaryColorDark15} !important`\n },\n \":active\": {\n color: `${primaryColorDark15} !important`\n }\n },\n\n textNegative: {\n color: `${contrastColor} !important`\n },\n\n textNegativeActive: {\n \":active\": {\n color: `${contrastColor} !important`\n }\n },\n\n textNegativeFocus: {\n \":focus\": {\n color: `${contrastColor} !important`\n }\n },\n\n textNegativeHover: {\n \":hover\": {\n color: `${contrastColor} !important`\n }\n },\n\n textOverlay15: {\n color: `${overlayColor15} !important`\n },\n\n textOverlay85: {\n color: `${overlayColor85} !important`\n },\n\n bgPrimaryDark10Focus: {\n \":focus\": {\n backgroundColor: `${primaryColorDark10} !important`\n }\n },\n\n bgPrimaryDark10Hover: {\n \":hover\": {\n backgroundColor: `${primaryColorDark10} !important`\n }\n },\n\n textNegativeDark10Focus: {\n \":focus\": {\n color: `${contrastColorDark10} !important`\n }\n },\n\n textNegativeDark10Hover: {\n \":hover\": {\n color: `${contrastColorDark10} !important`\n }\n },\n\n bgPrimaryDark30Active: {\n \":active\": {\n backgroundColor: `${primaryColorDark30} !important`\n }\n },\n\n // Borders\n borderPrimary: {\n borderColor: `${primaryColor} !important`\n },\n\n borderPrimaryLight25: {\n borderColor: `${primaryColorLight25} !important`\n },\n\n borderPrimaryActive: {\n \":active\": {\n borderColor: `${primaryColor} !important`\n }\n },\n\n borderPrimaryFocus: {\n \":focus\": {\n borderColor: `${primaryColor} !important`\n }\n },\n\n borderPrimaryFocusVisible: {\n \":focus-visible\": {\n outline: `5px solid ${primaryColor} !important`\n }\n },\n\n ringPrimaryFocusVisible: {\n \":focus-visible\": {\n boxShadow: `rgb(248, 250, 252) 0px 0px 0px 2px, ${primaryColorLight50} 0px 0px 0px 5px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;`\n }\n },\n\n borderPrimaryHover: {\n \":hover\": {\n borderColor: `${primaryColor} !important`\n }\n },\n\n borderNegative: {\n borderColor: `${contrastColor} !important`\n },\n\n borderOverlay15: {\n borderColor: `${overlayColor15} !important`\n },\n\n borderOverlay50Hover: {\n \":hover\": {\n borderColor: `${overlayColor50} !important`\n }\n },\n\n borderPrimaryDark30Active: {\n \":active\": {\n borderColor: `${primaryColorDark30} !important`\n }\n },\n\n activeNavPrimary: {\n color: primaryColor,\n borderBottom: `2px solid ${primaryColor}`,\n\n \":hover\": {\n color: `${primaryColorDark10} !important`\n },\n \":focus\": {\n color: `${primaryColorDark10} !important`\n }\n },\n\n formControlPrimary: {\n \":active\": {\n borderColor: `${primaryColor} !important`\n },\n\n \":focus\": {\n borderColor: `${primaryColor} !important`\n }\n },\n\n highlightPrimary: {\n position: \"relative\",\n\n \"::after\": {\n borderRadius: \"inherit\",\n content: '\"\"',\n display: \"block\",\n height: \"100%\",\n left: \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: \"0\",\n border: \"1px solid transparent\",\n transition: \"border ease 0.2s\",\n width: \"100%\"\n },\n\n \":hover::after\": {\n border: `1px solid ${primaryColor}`\n },\n\n \":focus::after\": {\n border: `1px solid ${primaryColor}`\n }\n },\n\n fillPrimary: {\n fill: primaryColor\n },\n\n fillNegative: {\n fill: contrastColor\n },\n\n strokePrimary: {\n stroke: primaryColor\n },\n\n strokePrimaryLight30: {\n stroke: primaryColorLight30\n }\n })\n }\n}\n\nexport const mutations = {\n setCustomization(state, customization) {\n merge(state.customization, customization)\n }\n}\n\nexport const actions = {\n updateCustomization: debounce(({ commit }, customization) => {\n commit(\"setCustomization\", {\n primaryColor: customization.primaryColor\n })\n }, 500)\n}\n\nexport function makeDefaultState() {\n return {\n customization: Object.assign({}, DEFAULT_CUSTOMIZATION)\n }\n}\n\nexport default {\n actions,\n getters,\n mutations,\n namespaced: true,\n state: makeDefaultState()\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport class AdminService {\n constructor(ctx=defaultCtx) {\n this.$http = ctx\n }\n\n getPanel() {\n return this.$http.fetchData(\"admin/panel\")\n }\n}\n\nexport function makeActions(service = new AdminService()) {\n return {\n async init({ commit }) {\n const panel = await service.getPanel()\n commit(\"setPanel\", panel)\n }\n }\n}\n\nexport default {\n namespaced: true,\n\n state: {\n canEditSubdomain: false,\n canPersonalizePlatform: false,\n canManageDomain: false\n },\n\n getters: {\n hasAdminPanel(state) {\n return state.canEditSubdomain || state.canPersonalizePlatform\n }\n },\n\n mutations: {\n clearModule(state) {\n state.canEditSubdomain = false\n state.canPersonalizePlatform = false\n state.canManageDomain = false\n },\n\n setPanel(state, { canEditSubdomain, canPersonalizePlatform, canManageDomain }) {\n state.canEditSubdomain = canEditSubdomain\n state.canPersonalizePlatform = canPersonalizePlatform\n state.canManageDomain = canManageDomain\n }\n },\n actions: makeActions()\n}\n","import {\n getMessaging,\n getToken,\n onMessage\n} from \"firebase/messaging\"\nimport {\n getApp,\n getApps,\n initializeApp\n} from \"firebase/app\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport DEFAULT_I18N from \"~/i18n\"\nimport { leaveBreadcrumb, notify } from \"~/lib/bugsnag\"\nimport { ucfirst } from \"~/lib/utils\"\n\nconst firebase = {\n initializeApp,\n getApp,\n getApps,\n getMessaging,\n getToken,\n onMessage\n}\n\nexport function initFirebase({ fb, config } = {}) {\n fb = fb || firebase\n config = config || CONFIG_FIREBASE_CONFIG\n\n if (!config) throw new Error(`[firebase] config is required`)\n\n if (!fb.getApps().length) {\n fb.initializeApp(config)\n } else {\n fb.getApp()\n }\n}\n\nexport async function enableMessagingRegistration({\n fb,\n ctx,\n config,\n open,\n onTokenUpdate,\n onNotification,\n i18n,\n vapidKey,\n serviceWorkerRegistration\n} = {}) {\n fb = fb || firebase\n ctx = ctx || defaultCtx\n config = config || CONFIG_FIREBASE_CONFIG\n i18n = i18n || DEFAULT_I18N\n onNotification = onNotification || function () {}\n onTokenUpdate = onTokenUpdate || function () {}\n open = open || window.open.bind(window)\n vapidKey = vapidKey || CONFIG_FIREBASE_VAPID_KEY\n\n if (!serviceWorkerRegistration) {\n const error = new Error(i18n.t(\"errors.firebaseCantBeStartedBeforeTheSW\"))\n notify(error)\n throw error\n }\n\n try {\n const messaging = fb.getMessaging()\n const token = await fb.getToken(messaging, { vapidKey, serviceWorkerRegistration })\n serviceWorkerRegistration.active.postMessage({\n type: \"init-firebase\",\n config\n })\n onTokenUpdate(token)\n await ctx.fetchData(\"/notifications/device-token\", {\n method: \"POST\",\n body: JSON.stringify({ token })\n })\n leaveBreadcrumb(\"Notifications token was saved successfully\", token)\n\n fb.onMessage(messaging, ({ notification, data }) => {\n const { title, body } = notification\n const { url, actionText } = data\n const actionCallback = () => open(url)\n onNotification({\n title,\n info: body,\n type: \"success\",\n showCloseButton: true,\n actionText,\n actionCallback\n })\n })\n\n return token\n }\n\n catch (error) {\n notify(error)\n onNotification({\n type: \"error\",\n title: ucfirst(i18n.t(\"errors.userDeviceToken\"))\n })\n throw error\n }\n}\n\nexport function disableMessagingRegistration({ ctx, onTokenUpdate, onNotification } = {}) {\n ctx = ctx || defaultCtx\n onNotification = onNotification || function () {}\n onTokenUpdate = onTokenUpdate || function () {}\n\n const token = null\n onTokenUpdate(token)\n return ctx.fetchData(\"/notifications/device-token\", {\n method: \"POST\",\n body: JSON.stringify({ token })\n })\n .then(() => {\n leaveBreadcrumb(\"Notifications token was removed successfully\", token)\n })\n .catch(error => {\n notify(error)\n onNotification({\n type: \"error\",\n title: error.message\n })\n throw error\n })\n}\n","import {\n initFirebase,\n enableMessagingRegistration,\n disableMessagingRegistration\n} from \"~/lib/firebase\"\n\n// Updates the Authorization header on the given AjaxCtx whenever\n// the bearer token change.\nexport const AuthorizationHeaderPlugin = ctx => store => {\n store.watch(state => state.bearerToken, bearerToken => {\n if (bearerToken) {\n ctx.defaults.headers[\"Authorization\"] = `Bearer ${bearerToken}`\n } else {\n delete ctx.defaults.headers[\"Authorization\"]\n }\n })\n}\n\n// Updates the bearer token on the Service Worker whenever\n// the active Service Worker or the bearer token changes.\nexport const SWBearerTokenPlugin = store => {\n store.watch(state => state.bearerToken, bearerToken => {\n navigator.serviceWorker.ready.then(registration => {\n registration.active.postMessage({\n type: \"set-bearer-token\",\n token: bearerToken\n })\n })\n })\n\n navigator.serviceWorker.addEventListener(\"controllerchange\", () => {\n navigator.serviceWorker.ready.then(registration => {\n registration.active.postMessage({\n type: \"set-bearer-token\",\n token: store.state.bearerToken\n })\n })\n })\n}\n\n// Registers the user for push notifications whenever\n// the active Service Worker or the value of the subscription to push notifications changes\nexport const SWPushNotificationsPlugin = store => {\n const { commit, dispatch } = store\n\n function updatePushNotifications({ registration, value }) {\n if (value) {\n initFirebase()\n enableMessagingRegistration({\n serviceWorkerRegistration: registration,\n onTokenUpdate: token => commit(\"pushNotifications/setToken\", token),\n onNotification: notification => dispatch(\"pushNotification\", notification)\n })\n } else {\n disableMessagingRegistration({\n onTokenUpdate: token => commit(\"pushNotifications/setToken\", token),\n onNotification: notification => dispatch(\"pushNotification\", notification)\n })\n }\n }\n\n store.watch(state => state.pushNotifications.permissions.value, value => {\n const { currentUser } = store.getters\n if (!currentUser) return\n navigator.serviceWorker.ready.then(registration => {\n updatePushNotifications({ registration, value })\n })\n })\n\n navigator.serviceWorker.addEventListener(\"controllerchange\", () => {\n navigator.serviceWorker.ready.then(registration => {\n const { value } = store.state.pushNotifications.permissions\n updatePushNotifications({ registration, value })\n })\n })\n}\n\n/**\n * Enables or disables Google Analytics depending on the value of the optional cookies\n */\nexport const GoogleAnalyticsPlugin = store => {\n store.watch((_state, getters) => getters[\"cookies/googleAnalyticsIsEnabled\"], enabled => {\n const gtag = window.Prometeo?.$gtag\n enabled ? gtag?.optIn() : gtag?.optOut()\n })\n}\n","import Bugsnag from \"@bugsnag/js\"\nimport BugsnagPluginVue from \"@bugsnag/plugin-vue\"\nimport Vue from \"vue\"\nimport Vuex from \"vuex\"\nimport { getBrowserPreferredLocales, loadLocale } from \"~/i18n\"\nimport { ApiError, defaultCtx } from \"~/lib/AjaxCtx\"\nimport { leaveBreadcrumb } from \"~/lib/bugsnag\"\nimport {\n HEADER_HEIGHT,\n MIN_NOTIFICATION_LENGTH_TO_SHOW_CLOSE_BUTTON,\n NOTICATION_CLOSING_TIME,\n} from \"~/lib/constants\"\nimport { subscribe, unsubscribe } from \"~/lib/subscriptions\"\nimport { parseQueryString, uuid } from \"~/lib/utils\"\nimport { logoutRedirection } from \"~/lib/vueUtils\"\n\nimport calendarStore from \"~/modules/calendar/calendarStore\"\nimport communicationStore from \"~/modules/communication/communicationStore\"\nimport finderStore from \"~/modules/finder/finderStore\"\nimport listStore from \"~/modules/list/listStore\"\nimport LoginService from \"~/modules/login/LoginService\"\nimport authenticationStore from \"~/modules/login/authenticationStore\"\nimport cookieStore from \"~/modules/login/cookieStore\"\nimport messageStore from \"~/modules/messages/messageStore\"\nimport newsStore from \"~/modules/news/newsStore\"\nimport lmsStore from \"~/modules/plugins/lmsStore\"\nimport profileStore from \"~/modules/profile/profileStore\"\nimport supervisorStore from \"~/modules/supervisor/supervisorStore\"\nimport pushNotificationStore from \"~/pushNotificationStore\"\nimport selectionStore from \"~/selectionStore\"\nimport structureStore from \"~/structureStore\"\nimport themeStore from \"~/themeStore\"\nimport { version } from \"~package\"\nimport adminStore from \"./admin\"\nimport {\n AuthorizationHeaderPlugin,\n GoogleAnalyticsPlugin,\n SWBearerTokenPlugin,\n SWPushNotificationsPlugin,\n} from \"./plugins\"\n\nVue.use(Vuex)\n\nexport function makeDefaultState() {\n return {\n tabId: uuid(), // Used to uniquely identify this tab. Should not change during the entire live of the application\n versionOutdated: false,\n currTop: HEADER_HEIGHT,\n platform: {\n alertFields: [],\n aliveInterval: 60, // seconds\n allowedFiles: [],\n backgroundImages: {\n desktop: [],\n mobile: [],\n },\n biDashboardUrl: null,\n certificate: null,\n code: \"\",\n defaultEntryPoint: null,\n entitiesFinder: [],\n hasBookmarks: false,\n hasCalendar: false,\n hasMailbox: false,\n hasSupportMailbox: false,\n installEvent: null,\n loginStatus: {},\n name: \"\",\n navigationHelpUrl: \"\",\n originalUser: null,\n platformUrl: \"\",\n showInstallPrompt: false,\n translationsHash: \"\",\n unreadMessagesInterval: 120, // seconds\n v2AdminUrl: \"\",\n v2BIReportsUrl: \"\",\n v2CampusOknUrl: \"\",\n v2DirectoryUrl: \"\",\n v2ForumModeratorUrl: \"\",\n v2ObserverUrl: \"\",\n v2ProviderUrl: \"\",\n v2TeacherUrl: \"\",\n v2Url: \"\",\n },\n featureFlags: {},\n configs: {},\n notifications: [],\n navigation: [],\n lastSpace: null,\n bearerToken: undefined,\n }\n}\n\nexport const getters = {\n allowedExtensions: (state) => {\n return state.platform.allowedFiles.map((i) => i.extension)\n },\n\n allowedMimeTypes: (state) => {\n return state.platform.allowedFiles.map((i) => i.mimetypeName).join(\",\")\n },\n\n currentUser: (_state, getters) => {\n return getters[\"profile/currentUser\"]\n },\n\n hasRequiredAlertFields: (state) => {\n const { alertFields = [] } = state.platform\n return alertFields.some((field) => field.required)\n },\n\n timeZone: (_state, getters) => {\n const currentUser = getters[\"profile/currentUser\"]\n if (currentUser?.timeZone) return currentUser.timeZone\n // If the timezone is an empty string, we need to use the one provided by the browser\n return window.Intl.DateTimeFormat().resolvedOptions().timeZone\n },\n\n locale: (state, getters) => {\n const currentUser = getters[\"profile/currentUser\"]\n if (currentUser) {\n let language = currentUser.language\n if (language == \"ct\") language = \"ca\"\n return language\n }\n const locales = getBrowserPreferredLocales()\n const availableLanguages = state.configs.languagesToSelect || []\n const fallbackLocale =\n locales.find((l) => availableLanguages.includes(l)) ||\n CONFIG_DEFAULT_LOCALE\n return fallbackLocale\n },\n\n userMenuBlocks:\n (state, getters) =>\n ({ path, showSupportMailbox, openNavigationHelp }) => {\n const participantPanelRoute = state.structure.links.find(\n (l) => l.default\n )?.url\n const {\n biDashboardUrl,\n hasBookmarks,\n hasCalendar,\n hasSupportMailbox,\n navigationHelpUrl,\n v2AdminUrl,\n v2BIReportsUrl,\n v2CampusOknUrl,\n v2DirectoryUrl,\n v2ForumModeratorUrl,\n v2ObserverUrl,\n v2TeacherUrl,\n } = state.platform\n\n const currentUser = getters[\"profile/currentUser\"]\n const hasSupervisorPanel = currentUser?.hasSupervisorPanel\n const hasAdminPanel =\n currentUser?.hasAdminPanel && getters[\"admin/hasAdminPanel\"]\n\n const myBlock = [\n hasBookmarks && {\n name: \"bookmarks\",\n to: \"/bookmarks\",\n text: \"common.myBookmarks\",\n icon: \"bookmark\",\n },\n hasCalendar && {\n name: \"calendar\",\n to: \"/calendar\",\n text: \"common.myCalendar\",\n icon: \"calendar\",\n },\n currentUser?.hasV2Reports && {\n name: \"reports\",\n to: \"/reports\",\n text: \"v2Reports.v2Reports\",\n icon: \"chart-line\",\n },\n v2CampusOknUrl && {\n href: v2CampusOknUrl,\n text: \"common.campusAccess\",\n icon: \"webcam\",\n },\n biDashboardUrl && {\n name: \"bi-dashboard\",\n to: \"/bi-dashboard\",\n text: \"common.dashboardPowerBi\",\n icon: \"chart-line\",\n }\n ].filter(Boolean)\n\n const supportBlock = [\n currentUser?.hasSloTools && {\n name: \"slo\",\n to: \"/slo\",\n text: \"slotools.sloTools\",\n icon: \"support\",\n },\n hasSupportMailbox && {\n action: showSupportMailbox,\n text: \"common.supportMailbox\",\n icon: \"headphones\",\n },\n {\n name: \"faqs\",\n to: \"/faqs\",\n text: \"common.faqs\",\n icon: \"light\",\n },\n navigationHelpUrl && {\n name: \"navigation-help\",\n action: openNavigationHelp,\n text: \"common.navigationHelp\",\n icon: \"question-circle\",\n },\n ].filter(Boolean)\n\n const inSupervisorPanel = path.includes(\"supervisor\")\n const configurationUrl = CONFIG_API_BASE_URL.replace(\n \"api\",\n \"admin/settings\"\n )\n\n const externalBlock = [\n hasSupervisorPanel &&\n inSupervisorPanel && {\n name: \"participant-role\",\n to: participantPanelRoute,\n text: \"supervisor.participantRole\",\n },\n hasSupervisorPanel &&\n !inSupervisorPanel && {\n name: \"supervisor\",\n to: \"/supervisor\",\n text: \"common.supervisorPanel\",\n },\n v2AdminUrl && {\n href: v2AdminUrl,\n text: \"common.managementArea\",\n },\n hasAdminPanel && {\n href: configurationUrl,\n text: \"admin.configuration\",\n sameTab: true,\n },\n v2TeacherUrl && {\n href: v2TeacherUrl,\n text: \"common.teacherPanel\",\n },\n v2ForumModeratorUrl && {\n href: v2ForumModeratorUrl,\n text: \"common.forumModeratorPanel\",\n },\n v2ObserverUrl && {\n href: v2ObserverUrl,\n text: \"common.observerPanel\",\n },\n v2BIReportsUrl && {\n href: v2BIReportsUrl,\n text: \"common.biReports\",\n },\n v2DirectoryUrl && {\n href: v2DirectoryUrl,\n text: \"common.directory\",\n },\n ]\n .filter(Boolean)\n .map((link) => {\n return {\n ...link,\n icon: \"rol\",\n }\n })\n\n const blocks = {}\n if (externalBlock.length) blocks[\"external\"] = externalBlock\n if (myBlock.length) blocks[\"me\"] = myBlock\n if (supportBlock.length) blocks[\"support\"] = supportBlock\n return blocks\n },\n\n defaultEntryPoint: (state) => {\n return state.platform.defaultEntryPoint\n },\n\n showLoginLogo: (state) => {\n const { hideLogos = [] } = state.configs\n return !(hideLogos.includes(\"platform\") || hideLogos.includes(\"login\"))\n },\n\n showMainLogo: (state) => {\n const { hideLogos = [] } = state.configs\n return !hideLogos.includes(\"platform\")\n },\n\n hasFinder: (state) => {\n return state.platform.entitiesFinder.length > 0\n },\n}\n\nexport const mutations = {\n pushNotification(state, notification) {\n const { info, title } = notification\n leaveBreadcrumb(`[pushNotification]: title: ${title}; info: ${info}`)\n state.notifications.push(notification)\n },\n\n removeNotification(state, id) {\n const idx = state.notifications.findIndex((n) => n.id === id)\n if (idx === -1) return\n state.notifications.splice(idx, 1)\n },\n\n setConfigs(state, configs) {\n Vue.set(state, \"configs\", configs)\n },\n\n setFeatureFlags(state, featureFlags) {\n Vue.set(state, \"featureFlags\", featureFlags)\n },\n\n clearPlatform(state) {\n Vue.set(state.platform, \"allowedFiles\", [])\n Vue.set(state.platform, \"originalUser\", null)\n Vue.set(state.platform, \"alertFields\", [])\n },\n\n setPlatform(state, props) {\n state.platform = { ...state.platform, ...props }\n },\n\n setAlertFields(state, alertFields) {\n if (!alertFields) return\n Vue.set(state.platform, \"alertFields\", alertFields)\n },\n\n setVersionOutdated(state) {\n Vue.set(state, \"versionOutdated\", true)\n },\n\n setCurrTop(state, currTop) {\n Vue.set(state, \"currTop\", currTop)\n },\n\n setLastSpace(state, spaceId) {\n Vue.set(state, \"lastSpace\", spaceId)\n },\n\n setNavigation(state, navigation) {\n Vue.set(state.navigation, state.navigation.length, navigation)\n },\n\n setBearerToken(state, token) {\n Vue.set(state, \"bearerToken\", token)\n },\n\n clearNavigation(state) {\n state.navigation = []\n },\n}\n\nexport function makeActions(\n ctx,\n loginService,\n assign = window.location.assign.bind(window.location)\n) {\n return {\n async login(\n { commit, dispatch },\n { username, password, recaptcha_token }\n ) {\n commit(\"setBearerToken\", undefined)\n await dispatch(\"clearStore\")\n try {\n const response = await loginService.login({\n username,\n password,\n recaptcha_token,\n })\n if (response.twoFactorAuthenticationAttemptUrl) {\n dispatch(\"authentication/saveData\", response)\n return response\n } else {\n const user = await dispatch(\"setup\", response)\n dispatch(\"cookies/save\")\n return user\n }\n } catch (error) {\n if (error instanceof ApiError) {\n const { isBlocked = false, showCaptcha = false } =\n error.response?.data || {}\n commit(\"setPlatform\", {\n loginStatus: { isBlocked, showCaptcha },\n })\n }\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"danger\",\n })\n }\n },\n\n async welcomeBack({ commit, dispatch }) {\n // TODO the horror\n const params = parseQueryString(\n document.location.href.split(\"?\")[1]\n )\n if (params.token) commit(\"setBearerToken\", params.token)\n\n // Give time for the store plugins to make their updates.\n // Otherwise the next request to /init won't have the right headers.\n await Vue.nextTick()\n\n const response = await loginService.init()\n const user = await dispatch(\"setup\", response)\n return user\n },\n\n async setup({ getters, commit, dispatch }, payload) {\n const {\n alertFields,\n aliveInterval = 60,\n allowedFiles = [],\n backgroundImages,\n biDashboardUrl,\n certificate = null,\n configs = {},\n defaultEntryPoint = null,\n featureFlags,\n entitiesFinder,\n hasBookmarks,\n hasCalendar,\n hasMailbox,\n hasSupportMailbox,\n loginStatus = {},\n navigationHelpUrl,\n originalUser = null,\n platform,\n platformCode,\n platformUrl,\n scormPlayerUrl,\n theme = {},\n tokenInfo,\n translationsHash = \"\",\n unreadMessagesInterval = 120,\n user,\n v2AdminUrl,\n v2BIReportsUrl,\n v2CampusOknUrl,\n v2DirectoryUrl,\n v2ForumModeratorUrl,\n v2ObserverUrl,\n v2ProviderUrl,\n v2TeacherUrl,\n v2Url,\n } = payload\n\n const { hasSupervisorPanel, hasAdminPanel } = user ?? {}\n\n const idx = configs.languagesToSelect?.indexOf(\"ct\")\n if (idx > -1) {\n configs.languagesToSelect[idx] = \"ca\"\n }\n\n commit(\"profile/setCurrentUser\", user)\n commit(\"setConfigs\", configs)\n commit(\"setAlertFields\", alertFields)\n commit(\"setPlatform\", {\n aliveInterval,\n allowedFiles,\n backgroundImages,\n biDashboardUrl,\n certificate,\n code: platformCode,\n defaultEntryPoint,\n entitiesFinder,\n hasBookmarks,\n hasCalendar,\n hasMailbox,\n hasSupportMailbox,\n loginStatus,\n name: platform,\n navigationHelpUrl,\n originalUser,\n platformUrl,\n scormPlayerUrl,\n translationsHash,\n unreadMessagesInterval,\n v2AdminUrl,\n v2BIReportsUrl,\n v2CampusOknUrl,\n v2DirectoryUrl,\n v2ForumModeratorUrl,\n v2ObserverUrl,\n v2ProviderUrl,\n v2TeacherUrl,\n v2Url,\n })\n\n commit(\"setBearerToken\", tokenInfo?.accessToken)\n\n // Give time for the store plugins to make their updates.\n // Otherwise the next request to won't have the right headers.\n await Vue.nextTick()\n\n dispatch(\"handleInstallPrompt\")\n\n commit(\"setFeatureFlags\", featureFlags)\n\n if (CONFIG_ENABLE_BUGSNAG) {\n if (!Bugsnag._client) {\n // Only start bugsnag if it was not started yet\n Bugsnag.start({\n apiKey: CONFIG_BUGSNAG_API_KEY,\n appVersion: version,\n plugins: [new BugsnagPluginVue(Vue)],\n })\n }\n Bugsnag.addMetadata(\"user\", user)\n Bugsnag.addMetadata(\"platform\", platform)\n }\n\n dispatch(\"theme/updateCustomization\", theme)\n\n if (user) {\n await Promise.all([\n dispatch(\"loadLocale\", user.language),\n dispatch(\"structure/refreshStructure\"),\n hasSupervisorPanel && dispatch(\"supervisor/init\"),\n ])\n if (hasMailbox) {\n await dispatch(\"messages/updateUnreadMessages\")\n }\n if (hasAdminPanel) {\n dispatch(\"admin/init\")\n }\n } else {\n await dispatch(\"loadLocale\", getters.locale)\n }\n\n const { enableServiceWorker, enableNotifications } = featureFlags\n if (enableServiceWorker && user) {\n subscribe().then(() => {\n if (enableNotifications) {\n dispatch(\n \"pushNotifications/refreshNotificationPermissions\"\n )\n }\n })\n } else {\n unsubscribe()\n }\n\n return user\n },\n\n async loadLocale({ state, dispatch }, locale) {\n try {\n const { translationsHash } = state.platform\n return await loadLocale({ ctx, locale, translationsHash })\n } catch (_) {\n if (locale != CONFIG_DEFAULT_LOCALE) {\n // These two messages are not internationalized on purpose.\n // If we launch the app with an invalid language, we don't have a locale loaded.\n // It's a weird edge case.\n dispatch(\"pushNotification\", {\n title: `Error loading language: ${locale}. Trying to load: ${CONFIG_DEFAULT_LOCALE} ...`,\n type: \"danger\",\n })\n return await dispatch(\"loadLocale\", CONFIG_DEFAULT_LOCALE)\n } else {\n dispatch(\"pushNotification\", {\n title: `Error loading language: ${locale}.`,\n type: \"danger\",\n })\n return false\n }\n }\n },\n\n async logoutNoRedirect({ commit, dispatch }) {\n const { url, message, type } = await loginService.logout()\n\n await dispatch(\"clearStore\")\n commit(\"setBearerToken\", undefined)\n\n return { url, message, type }\n },\n\n async logout({ dispatch }, { router, query }) {\n const { url, message, type } = await dispatch(\"logoutNoRedirect\")\n logoutRedirection({ router, query, url, message, type, assign })\n },\n\n clearStore({ commit }) {\n commit(\"admin/clearModule\")\n commit(\"calendar/clearModule\")\n commit(\"clearNavigation\")\n commit(\"clearPlatform\")\n commit(\"setFeatureFlags\", {})\n\n commit(\"communication/clearModule\")\n commit(\"lists/clearModule\")\n commit(\"lms/clearModule\")\n commit(\"messages/clearModule\")\n commit(\"profile/clearModule\")\n commit(\"pushNotifications/clearModule\")\n commit(\"structure/clearModule\")\n commit(\"supervisor/clearModule\")\n commit(\"finder/clearModule\")\n },\n\n /**\n * notification can contain the following fields:\n * @title String, (optional)\n * @type String ('info' by default), (optional)\n * @info [String, Array]\n * @showCloseButton Boolean (optional)\n * @actionText String (optional)\n * @actionCallback Function (optional)\n */\n\n pushNotification({ commit }, notification) {\n notification.type = notification.type || \"info\"\n // Long notification text requires showing the close button so the user has time to read the notification\n const maxCharacters = MIN_NOTIFICATION_LENGTH_TO_SHOW_CLOSE_BUTTON\n const showCloseButton =\n notification.showCloseButton ||\n notification.title?.length > maxCharacters ||\n notification.info?.toString().length > maxCharacters\n const id = Date.now()\n\n const cookedNotification = {\n id,\n ...notification,\n showCloseButton,\n }\n\n commit(\"pushNotification\", cookedNotification)\n\n if (showCloseButton) {\n return\n }\n\n setTimeout(() => {\n commit(\"removeNotification\", id)\n }, NOTICATION_CLOSING_TIME)\n },\n\n async setPassword(\n { commit, dispatch },\n { newPassword, repeatNewPassword }\n ) {\n try {\n const user = await loginService.loginChangePassword({\n newPassword,\n repeatNewPassword,\n })\n commit(\"profile/setCurrentUser\", user)\n return user\n } catch (error) {\n dispatch(\"pushNotification\", {\n type: \"danger\",\n title: error.message,\n })\n return false\n }\n },\n\n async acceptDataPolicy({ dispatch, commit }, id) {\n try {\n let user = await loginService.loginDataPolicy(id)\n\n commit(\"profile/setCurrentUser\", user)\n return user\n } catch (error) {\n dispatch(\"pushNotification\", {\n type: \"danger\",\n title: error.message,\n })\n return false\n }\n },\n\n handleInstallPrompt({ commit, dispatch }) {\n window.addEventListener(\"beforeinstallprompt\", (installEvent) => {\n installEvent.preventDefault()\n commit(\"setPlatform\", {\n installEvent,\n showInstallPrompt: true,\n })\n })\n\n window.addEventListener(\"appinstalled\", () => {\n dispatch(\"hideInstallPrompt\")\n })\n },\n\n hideInstallPrompt({ commit }) {\n commit(\"setPlatform\", { showInstallPrompt: false })\n },\n\n installApp({ state }) {\n const { installEvent } = state.platform\n if (!installEvent) return\n installEvent.prompt()\n },\n\n addNavigation({ commit }, navigation) {\n commit(\"setNavigation\", navigation)\n },\n }\n}\n\nconst modules = {\n admin: adminStore,\n authentication: authenticationStore,\n calendar: calendarStore,\n communication: communicationStore,\n finder: finderStore,\n cookies: cookieStore,\n lists: listStore,\n lms: lmsStore,\n messages: messageStore,\n news: newsStore,\n profile: profileStore,\n pushNotifications: pushNotificationStore,\n selection: selectionStore,\n structure: structureStore,\n supervisor: supervisorStore,\n theme: themeStore,\n}\n\nconst plugins = [AuthorizationHeaderPlugin(defaultCtx)]\n\nif (\"serviceWorker\" in navigator && window.isSecureContext) {\n plugins.push(SWBearerTokenPlugin)\n plugins.push(SWPushNotificationsPlugin)\n plugins.push(GoogleAnalyticsPlugin)\n}\n\nconst store = new Vuex.Store({\n strict: process.env.NODE_ENV == \"development\",\n state: makeDefaultState(),\n getters,\n mutations,\n actions: makeActions(defaultCtx, new LoginService(defaultCtx)),\n modules,\n plugins,\n})\n\nexport default store\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.component,{tag:\"component\",staticClass:\"d-inline-flex align-items-center border-0 m-0 p-0 outline-none transition-color transition-duration-25\",class:[\n (_vm.to || _vm.href) && 'button',\n _vm.bold && 'font-weight-semi-bold',\n _vm.disabled && `btn-${_vm.shape}-disabled`,\n _vm.loading && 'cursor--wait',\n _vm.shape === 'text' ? 'btn-text' : 'btn-icon',\n _vm.themeClasses,\n _vm.uppercase && 'text-uppercase',\n _vm.$css(_vm.$theme.ringPrimaryFocusVisible),\n ],attrs:{\"to\":_vm.to,\"href\":_vm.href || _vm.resolvedRoute,\"disabled\":_vm.disabled,\"loading\":_vm.loading},on:{\"click\":_vm.clickEvent}},[(_vm.shape === 'icon')?[(!_vm.loading)?[(_vm.icon)?_c('v-icon',{attrs:{\"name\":_vm.icon,\"w\":_vm.iconSize,\"flip\":_vm.flipIcon}}):_vm._t(\"default\")]:_c('v-icon',{attrs:{\"name\":\"loading\",\"w\":_vm.iconSize,\"spin\":\"\",\"flip\":_vm.flipIcon}})]:[(!_vm.loading)?_vm._t(\"default\"):_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"common.loading\"))+\"...\\n \")])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ButtonLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ButtonLink.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./ButtonLink.vue?vue&type=template&id=f78cb4aa\"\nimport script from \"./ButtonLink.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonLink.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.status.message)?_c('span',{staticClass:\"font--12\",class:`text-${_vm.status.code}`},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n\")]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputStatus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputStatus.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./InputStatus.vue?vue&type=template&id=c0e250ae\"\nimport script from \"./InputStatus.vue?vue&type=script&lang=js\"\nexport * from \"./InputStatus.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.component,{tag:\"component\",staticClass:\"d-inline-flex align-items-center justify-content-center font--14 font-weight-semi-bold m-0 outline-none rounded-sm transition-button transition-duration-25\",class:[\n (_vm.to | _vm.href) && 'button',\n _vm.loading && 'cursor--wait',\n _vm.mode === 'filled' ? 'filled' : 'outline',\n _vm.size === 'regular' ? 'btn-regular' : 'btn-mini',\n _vm.themeClasses,\n _vm.uppercase && 'text-uppercase'\n ],style:(`min-width: ${_vm.minWidth}px`),attrs:{\"to\":_vm.to,\"href\":_vm.href || _vm.resolvedRoute,\"disabled\":_vm.disabled,\"loading\":_vm.loading},on:{\"click\":_vm.clickEvent}},[(_vm.size === 'mini')?[(!_vm.loading)?[(_vm.icon)?_c('v-icon',{attrs:{\"flip\":_vm.flipIcon,\"name\":_vm.icon,\"w\":_vm.iconSize}}):_vm._t(\"default\")]:_c('v-icon',{attrs:{\"name\":\"loading\",\"spin\":\"\",\"w\":_vm.iconSize}})]:[(!_vm.loading)?_c('div',{staticClass:\"d-flex align-items-center text-truncate\"},[(_vm.icon)?_c('v-icon',{class:_vm.iconClass,attrs:{\"flip\":_vm.flipIcon,\"name\":_vm.icon,\"w\":_vm.iconSize}}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2):[_c('v-icon',{attrs:{\"name\":\"loading\",\"spin\":\"\",\"w\":_vm.iconSize}}),_vm._v(\" \"),_c('span',{staticClass:\"ml-4\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"common.loading\"))+\"\\n \")])]]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./BaseButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./BaseButton.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./BaseButton.vue?vue&type=template&id=50f2a199\"\nimport script from \"./BaseButton.vue?vue&type=script&lang=js\"\nexport * from \"./BaseButton.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"position-relative\",class:_vm.containerClass,attrs:{\"data-t\":\"input\"},on:{\"click\":function($event){!_vm.disabled && _vm.$emit('click')}}},[_c('input',{ref:\"input\",staticClass:\"bg-transparent autofill-light transition-duration-25 transition-ease-out outline-none border-0 text-dark placeholder-gray-dark w-100 font--16 lh--20 rounded-sm\",class:_vm.inputClass,staticStyle:{\"transition-property\":\"opacity, padding-bottom, padding-top\"},attrs:{\"aria-labelledby\":_vm.showLabel ? _vm.labelId : undefined,\"type\":_vm.type,\"autocomplete\":_vm.autocomplete,\"name\":_vm.name,\"placeholder\":_vm.cookedPlaceholder,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly,\"maxlength\":_vm.maxlength,\"size\":_vm.size == 'xs' ? 7 : 20},domProps:{\"value\":_vm.value},on:{\"input\":_vm.input,\"focus\":_vm.focus,\"blur\":_vm.blur}}),_vm._v(\" \"),(_vm.showLabel)?_c('label',{staticClass:\"position-absolute left transition-ease-out transition-duration-25 text-gray-dark pointer-events-none text-truncate overflow-hidden\",class:_vm.labelClass,staticStyle:{\"transition-property\":\"font-size, padding-top, padding-bottom\"},style:(_vm.innerLabelStyle),attrs:{\"id\":_vm.labelId}},[_vm._v(\"\\n \"+_vm._s(_vm.innerLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.$slots.left)?_c('div',{staticClass:\"position-absolute top left d-flex justify-content-center align-items-center\",style:(_vm.slotStyle),attrs:{\"data-t\":\"left-slot\"}},[_vm._t(\"left\")],2):_vm._e(),_vm._v(\" \"),(_vm.$slots.right)?_c('div',{staticClass:\"position-absolute top right d-flex justify-content-center align-items-center\",style:(_vm.slotStyle),attrs:{\"data-t\":\"right-slot\"}},[_vm._t(\"right\")],2):_vm._e()]),_vm._v(\" \"),_c('input-status',{attrs:{\"status\":_vm.status}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputText.vue?vue&type=template&id=3ea2dede&scoped=true\"\nimport script from \"./InputText.vue?vue&type=script&lang=js\"\nexport * from \"./InputText.vue?vue&type=script&lang=js\"\nimport style0 from \"./InputText.vue?vue&type=style&index=0&id=3ea2dede&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ea2dede\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('pop-up',_vm._b({key:`${_vm.name}-${_vm.uniqueId}`,staticClass:\"px-4 py-2 text-light font--12 lh--16\",staticStyle:{\"max-width\":\"436px\"},attrs:{\"mode\":\"tooltip\",\"arrow\":false},on:{\"hide\":function($event){_vm.show = false}}},'pop-up',{ show: _vm.show, name: _vm.name, placement: _vm.placement, slide: _vm.slide, separation: _vm.separation, fixed: _vm.fixed, tag: _vm.tag },false),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ToolTip.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ToolTip.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToolTip.vue?vue&type=template&id=4d543cb0\"\nimport script from \"./ToolTip.vue?vue&type=script&lang=js\"\nexport * from \"./ToolTip.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\",style:(_vm.style)},[_c('v-icon',{staticClass:\"position-absolute abs-center opacity--70\",attrs:{\"name\":\"radiobutton-empty\",\"w\":_vm.size}}),_vm._v(\" \"),_c('v-icon',{staticClass:\"position-absolute abs-center\",attrs:{\"name\":_vm.icon,\"w\":_vm.size / 2.5}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./IconCircled.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./IconCircled.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./IconCircled.vue?vue&type=template&id=311238d0\"\nimport script from \"./IconCircled.vue?vue&type=script&lang=js\"\nexport * from \"./IconCircled.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import parseISO from \"date-fns/parseISO\"\nimport sortBy from \"lodash/sortBy\"\nimport { pad } from \"~/lib/utils\"\nimport { toDate, zonedTimeToUtc } from \"date-fns-tz\"\nimport endOfMonth from \"date-fns/endOfMonth\"\nimport startOfMonth from \"date-fns/startOfMonth\"\n\nexport function dateInRange(date, start, end) {\n return parseISO(date) >= parseISO(start) && parseISO(date) <= parseISO(end)\n}\n\nexport function getSortingDate({ eventFromDate, eventToDate, eventType }) {\n switch (eventType) {\n case \"start\":\n case \"start-end\":\n return eventFromDate\n\n case \"end\":\n return eventToDate\n\n default:\n throw new Error(`Unexpected eventType ${eventType}`)\n }\n}\n\nexport function getStartEndDates({ month, year, timeZone }) {\n // We use day 15th so we avoid jumping to a different month due to timezones\n const cookedMonth = toDate(`${year}-${pad(month, 2)}-15`, { timeZone })\n const startDate = zonedTimeToUtc(startOfMonth(cookedMonth), timeZone).toISOString()\n const endDate = zonedTimeToUtc(endOfMonth(cookedMonth), timeZone).toISOString()\n return { startDate, endDate }\n}\n\nexport function sortEvents(events) {\n return sortBy(events, [\n getSortingDate,\n ({ eventType }) => {\n switch (eventType) {\n case \"start-end\":\n return 1\n case \"start\":\n return 2\n case \"end\":\n return 3\n default:\n throw new Error(`Unexpected eventType ${eventType}`)\n }\n }\n ])\n}\n","import Vue from \"vue\"\nconst bus = new Vue()\nexport default bus\n","// Sucks having to create these two functions,\n// instead of using the same thing Vue uses.\n\n/**\n * Returns true if klass is in a format Vue understands.\n */\nexport function isValidVueClass(klass) {\n return Array.isArray(klass) || typeof(klass) == \"object\" || typeof(klass) == \"string\"\n}\n\n/**\n * Accepts a \"class list\" in any of the formats Vue understands (String, Array, Object)\n * and returns an array of classes.\n */\nexport function normalizeVueClass(klass) {\n if (!isValidVueClass(klass)) {\n throw new Error(`Invalid vue class: ${klass}`)\n }\n\n if (Array.isArray(klass)) {\n return klass\n } else if (typeof(klass) == \"string\") {\n return klass.split(/\\s+/)\n } else if (typeof(klass) == \"object\") {\n const classes = []\n for (let key in klass) {\n if (klass.hasOwnProperty(key) && klass[key]) {\n classes.push(key)\n }\n }\n return classes\n } else {\n throw new Error(\"Shouldn't be here\")\n }\n}\n\n/**\n * Climb the component hierarchy until a reference is found.\n */\nfunction findReference(name, cmp) {\n let p = cmp\n while (!(name in p.$refs) && p.$parent) p = p.$parent\n const ref = p.$refs[name]\n if (!ref) return null\n\n return ref\n}\n\n/**\n * Return the actual DOM reference\n */\nexport function findDomReference(name, cmp) {\n let ref = findReference(name, cmp)\n if (!ref || ref.length === 0) return null\n if (ref.length) {\n ref = ref[0]\n }\n return ref.$el ? ref.$el : ref\n}\n\n/**\n * Given an array of vue-router navigation guards,\n * returns a guard that works as a combination of them all:\n * - If a guard calls next() without arguments, the next guard of the array is called.\n * - Otherwise, vue-router's next() is called and no more guards are executed.\n */\nexport function combineNavigationGuards(guards) {\n if (guards.length === 0) throw new Error(\"No guards received\")\n if (guards.length === 1) return guards[0]\n\n const combineTwo = (guard1, guard2) => (to, from, finalNext) => {\n const next = (...args) => {\n if (args.length === 0) {\n guard2(to, from, finalNext)\n } else {\n finalNext(...args)\n }\n }\n guard1(to, from, next)\n }\n\n return guards.reduce(combineTwo)\n}\n\n/**\n * See: guides/functional/logout.md\n * url: string?\n * message: string?\n * type: redirection | okn_logout_screen | undefined\n */\nexport async function logoutRedirection({\n router,\n query,\n url,\n message,\n type,\n assign = window.location.assign.bind(window.location)\n}) {\n switch (type) {\n case \"redirection\":\n assign(url)\n break\n\n case \"okn_logout_screen\":\n await router.push({\n path: \"/logout\",\n query: {\n url: url ? encodeURI(url) : null,\n message: message ? encodeURI(message) : null,\n },\n })\n break\n\n default:\n await router.push({ path: \"/login\", query })\n break\n }\n}","import { defaultCtx } from \"~/lib/AjaxCtx\"\nimport {\n ucfirst,\n ellipsis\n} from \"~/lib/utils\"\n\nexport default class SocialService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n\n /**\n * It returns an array with all comments for this resource\n */\n async getComments(resourceId) {\n if (!resourceId) {\n throw new Error(`There is no resourceId`)\n }\n return await this.$http.fetchData(`/socials/${resourceId}/comments`)\n }\n\n /**\n * It returns the number of comments after adding this comment\n */\n async addComment({ resourceId, comment }) {\n if (!resourceId) {\n throw new Error(`There is no resourceId`)\n }\n return await this.$http.fetchData(`/socials/${resourceId}/comment`, {\n method: \"POST\",\n body: JSON.stringify({ comment })\n })\n }\n\n /**\n * It returns the updated resource\n */\n async likeResource(resource) {\n const resourceId = resource.resourceId\n if (!resourceId) {\n throw new Error(`The element ${resource._meta.type} has no resourceId`)\n }\n const liked = resource.social.liked\n const { social } = await this.$http.fetchData(`/socials/${resourceId}/like`, {\n method: \"POST\",\n body: JSON.stringify({ liked })\n })\n const newSocial = Object.assign({}, resource.social, social)\n return Object.assign({}, resource, {\n social: newSocial\n })\n }\n\n async like({ resource, emit }) {\n const likes = resource.social.likes\n const originalResource = Object.assign({}, resource)\n const social = Object.assign({}, resource.social, {\n liked: !resource.social.liked,\n likes: resource.social.liked ? likes - 1 : likes + 1\n })\n const optimisticResource = Object.assign({}, resource, {\n social\n })\n emit(\"update\", optimisticResource)\n\n try {\n const newResource = await this.likeResource(optimisticResource)\n emit(\"update\", newResource)\n } catch (error) {\n emit(\"update\", originalResource)\n throw error\n }\n }\n\n /**\n * It returns the updated resource\n */\n async bookmarkResource(resource) {\n const resourceId = resource.resourceId\n if (!resourceId) {\n throw new Error(`The element ${resource._meta.type} has no resourceId`)\n }\n const bookmarked = resource.social.bookmarked\n const { social } = await this.$http.fetchData(`/socials/${resourceId}/bookmark`, {\n method: \"POST\",\n body: JSON.stringify({ bookmarked })\n })\n const newSocial = Object.assign({}, resource.social, social)\n return Object.assign({}, resource, {\n social: newSocial\n })\n }\n\n async bookmark({ resource, store, t, title, emit, router, route }) {\n title = title || resource.title\n const originalResource = Object.assign({}, resource)\n const social = Object.assign({}, resource.social, {\n bookmarked: !resource.social.bookmarked\n })\n const optimisticResource = Object.assign({}, resource, {\n social\n })\n emit(\"update\", optimisticResource)\n\n\n try {\n const newResource = await this.bookmarkResource(optimisticResource)\n const info = newResource.social.bookmarked ?\n t(\"common.wasAddedToBookmarks\") :\n t(\"common.wasRemovedFromBookmarks\")\n\n const actionText = route.name == \"bookmarks\" ? \"\" : ucfirst(t(\"common.myBookmarks\"))\n const actionCallback = () => {\n router.push(\"/bookmarks\")\n }\n\n store.dispatch(\"pushNotification\", {\n title: ellipsis(title, 75),\n info: ucfirst(info),\n type: newResource.social.bookmarked ? \"success\" : \"info\",\n actionText,\n actionCallback\n })\n emit(\"update\", newResource)\n } catch (error) {\n emit(\"update\", originalResource)\n store.dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n throw error\n }\n }\n\n /**\n * It returns the updated resource\n */\n async rateResource({ resource, rating }) {\n const resourceId = resource.resourceId\n if (!resourceId) {\n throw new Error(`The element ${resource._meta.type} has no resourceId`)\n }\n const { social } = await this.$http.fetchData(`/socials/${resourceId}/rate`, {\n method: \"POST\",\n body: JSON.stringify({ rating })\n })\n const newSocial = Object.assign({}, resource.social, social)\n return Object.assign({}, resource, {\n social: newSocial\n })\n }\n\n async updateVisitsCount(resource) {\n const { resourceId } = resource\n if (!resourceId) {\n throw new Error(`Element of type ${resource._meta.type} has no resourceId`)\n }\n const { social } = await this.$http.fetchData(`/resources/updateVisitsCount/${resourceId}`)\n const newSocial = Object.assign({}, resource.social, social)\n return Object.assign({}, resource, {\n social: newSocial\n })\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('label',{staticClass:\"d-flex font--16 lh--20 mb-0 position-relative\",class:_vm.labelClass,attrs:{\"for\":_vm.id}},[_c('input',{staticClass:\"p-0 opacity--0 position-absolute\",attrs:{\"id\":_vm.id,\"disabled\":_vm.disabled,\"name\":_vm.name,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.value},on:{\"change\":_vm.change}}),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-8\",class:_vm.iconColorClass,attrs:{\"name\":_vm.value ? 'checkbox-check' : 'checkbox-empty',\"w\":22}}),_vm._v(\" \"),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputCheckbox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputCheckbox.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./InputCheckbox.vue?vue&type=template&id=3f5e230a\"\nimport script from \"./InputCheckbox.vue?vue&type=script&lang=js\"\nexport * from \"./InputCheckbox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],ref:\"popup\",tag:\"component\",staticClass:\"shadow-default z-index--10\",class:_vm.mode === 'tooltip' ? 'bg--black--70 rounded-sm' : 'bg-light rounded'},[_vm._t(\"default\"),_vm._v(\" \"),(_vm.arrow)?_c('span',{staticClass:\"popper__arrow\",attrs:{\"x-arrow\":\"\"}}):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./PopUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./PopUp.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./PopUp.vue?vue&type=template&id=5bf434fa&scoped=true\"\nimport script from \"./PopUp.vue?vue&type=script&lang=js\"\nexport * from \"./PopUp.vue?vue&type=script&lang=js\"\nimport style0 from \"./PopUp.vue?vue&type=style&index=0&id=5bf434fa&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bf434fa\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex flex-column position-relative\"},[(_vm.mode == 'icon')?[_c('button-link',{attrs:{\"disabled\":_vm.disabled,\"icon\":_vm.icon,\"icon-size\":_vm.iconSize,\"loading\":_vm.uploading,\"type\":\"button\"},on:{\"click\":_vm.triggerClick}})]:[_c('base-button',{style:(`width: ${_vm.width}px`),attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.uploading,\"icon\":\"export\",\"theme\":\"secondary\",\"type\":\"button\"},on:{\"click\":_vm.triggerClick}},[_vm._v(\"\\n \"+_vm._s(_vm.$tc('common.uploadFile'))+\"\\n \")])],_vm._v(\" \"),_c('input',{ref:\"inputFile\",staticClass:\"opacity--0 position-absolute left bottom pointer-events-none\",attrs:{\"type\":\"file\",\"disabled\":_vm.disabled || _vm.uploading,\"accept\":_vm.allowedExtensions},on:{\"change\":_vm.upload}}),_vm._v(\" \"),_c('input-status',{attrs:{\"status\":_vm.status}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./UploadButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./UploadButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UploadButton.vue?vue&type=template&id=8c41ffac\"\nimport script from \"./UploadButton.vue?vue&type=script&lang=js\"\nexport * from \"./UploadButton.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{directives:[{name:\"anchor\",rawName:\"v-anchor\",value:('tooltip'),expression:\"'tooltip'\"}],tag:\"component\",staticClass:\"overflow-hidden\",staticStyle:{\"display\":\"-webkit-box\",\"box-orient\":\"vertical\"},style:(`line-clamp: ${_vm.lines};`),on:{\"mouseenter\":_vm.mouseEnterRef,\"mouseleave\":_vm.mouseLeaveRef}},[(_vm.html)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.value)}}):[_vm._v(\"\\n \"+_vm._s(_vm.value)+\"\\n \")]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ToolTipElement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ToolTipElement.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./ToolTipElement.vue?vue&type=template&id=167581dc\"\nimport script from \"./ToolTipElement.vue?vue&type=script&lang=js\"\nexport * from \"./ToolTipElement.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\",\"appear\":\"\"}},[_c('div',{staticClass:\"rounded p-10 text-light font--14 lh--18 bg--black--70 highlight-em\",staticStyle:{\"max-width\":\"436px\"}},[(_vm.html)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.text)}}):_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.text)+\"\\n \")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./TruncatedText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./TruncatedText.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./TruncatedText.vue?vue&type=template&id=6a0f7bbc\"\nimport script from \"./TruncatedText.vue?vue&type=script&lang=js\"\nexport * from \"./TruncatedText.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import format from \"date-fns/format\"\nimport camelCase from \"lodash/camelCase\"\nimport snakeCase from \"lodash/snakeCase\"\nimport i18n from \"~/i18n\"\n\nexport function listKeyToFileName(listKey) {\n let translationKey = \"\"\n\n switch (listKey) {\n case \"supervisor-participants\":\n translationKey = \"supervisor.breadCrumb.participants\"\n break\n\n case \"supervisor-programs-all\":\n translationKey = \"supervisor.courseTabs.all.text\"\n break\n case \"supervisor-programs-participants\":\n translationKey = \"supervisor.courseTabs.participants.text\"\n break\n case \"supervisor-programs-catalog\":\n translationKey = \"supervisor.courseTabs.catalog.text\"\n break\n\n /* Requests */\n case \"supervisor-lms\":\n case \"supervisor-lms-historical\":\n translationKey = \"supervisor.breadCrumb.lms\"\n break\n case \"supervisor-external\":\n case \"supervisor-external-historical\":\n translationKey = \"supervisor.breadCrumb.external\"\n break\n case \"supervisor-experience\":\n case \"supervisor-experience-historical\":\n translationKey = \"supervisor.breadCrumb.experience\"\n break\n case \"supervisor-preregister\":\n case \"supervisor-preregister-historical\":\n translationKey = \"supervisor.breadCrumb.preregister\"\n break\n\n case \"monitoring-report\":\n translationKey = \"supervisor.monitoringReport\"\n break\n\n default:\n throw new Error(`Invalid key ${listKey} to generate the translation key`)\n }\n\n return addDateAndExtentionToFileName({\n fileName: i18n.t(translationKey),\n extension: \"csv\"\n })\n}\n\nexport function addDateAndExtentionToFileName({ fileName, extension }) {\n const date = format(new Date(), \"yyyy-MM-dd\")\n return `${snakeCase(fileName)}-${date}.${extension}`\n}\n\nexport function urlForDownload(key) {\n const CALLS = /supervisor-calls-/.test(key) ? key : ''\n const USER_CALLS = /supervisor-user-calls-/.test(key) ? key : ''\n const HISTORIC_FORMATION = /supervisor-historical-formation/.test(key) ? key : ''\n switch (key) {\n /* Participants */\n case \"supervisor-participants\":\n return \"/supervisor/participants/download\"\n\n /* Programs */\n case \"supervisor-programs-all\":\n return \"/supervisor/training/all/download\"\n case \"supervisor-programs-participants\":\n return \"/supervisor/training/participants/download\"\n case \"supervisor-programs-catalog\":\n return \"/supervisor/training/catalog/download\"\n\n /* Calls */\n case CALLS: {\n // i.e. supervisor-calls-25\n const userId = CALLS.split(\"-\").pop()\n return `/supervisor/participants/${userId}/calls/download`\n }\n case USER_CALLS: {\n // i.e. supervisor-user-calls-34\n const programId = USER_CALLS.split(\"-\").pop()\n return `/supervisor/training/${programId}/calls/download`\n }\n\n case HISTORIC_FORMATION: {\n const userId = HISTORIC_FORMATION.split(\"-\").pop()\n return `/supervisor/participants/${userId}/historicalFormation/download`\n }\n\n /* Requests */\n case \"supervisor-lms\":\n return \"/supervisor/requests/lms/pending/download\"\n case \"supervisor-lms-historical\":\n return \"/supervisor/requests/lms/historic/download\"\n case \"supervisor-external\":\n return \"/supervisor/requests/external/pending/download\"\n case \"supervisor-external-historical\":\n return \"/supervisor/requests/external/historic/download\"\n case \"supervisor-experience\":\n return \"/supervisor/requests/experience/pending/download\"\n case \"supervisor-experience-historical\":\n return \"/supervisor/requests/experience/historic/download\"\n case \"supervisor-preregister\":\n return \"/supervisor/requests/preregister/pending/download\"\n case \"supervisor-preregister-historical\":\n return \"/supervisor/requests/preregister/historic/download\"\n default:\n throw new Error(`Invalid key ${key} to generate base download url`)\n }\n}\n\nexport function statusClass(status) {\n switch (status.toLowerCase()) {\n case \"ok\":\n case \"approved\":\n case \"enrolled\":\n return \"text-success\"\n case \"ko\":\n case \"rejected\":\n case \"notenrolled\":\n case \"not-enrolled\":\n case \"denied\":\n return \"text-danger\"\n default:\n return \"text-gray-medium\"\n }\n}\n\nexport function statusIcon(status) {\n switch (status.toLowerCase()) {\n case \"ok\":\n case \"approved\":\n return \"approved\"\n case \"ko\":\n case \"rejected\":\n case \"denied\":\n return \"failed\"\n default:\n return \"coursing\"\n }\n}\n\nexport function translatedStatus(status) {\n const key = camelCase(status)\n return i18n.t(`supervisor.requestStatus.${key}`)\n}\n\nexport function adaptIntoSelectionObject(val) {\n if (typeof val === \"number\") {\n return {\n included: [val],\n excluded: [],\n filter: [],\n total: 1\n }\n }\n const {\n included=[],\n excluded=[],\n filter=[],\n total=0\n } = val\n\n return { included, excluded, filter, total }\n}\n\nexport function selectionIncludes(selection, id) {\n const { query: { included, excluded }, selectAll } = selection\n if (included.includes(id)) return true\n if (excluded.includes(id)) return false\n return selectAll\n}\n\nexport function numSelectedItems(selection, instance) {\n const { query: { included, excluded }, selectAll } = selection\n\n if (excluded.length === 0 && included.length === 0) {\n return instance.totalCount\n } else if (selectAll) {\n return instance.totalCount - excluded.length\n } else {\n return included.length\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\",on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.close.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;return _vm.close.apply(null, arguments)}]}},[_c('input-text',{ref:\"select\",attrs:{\"name\":_vm.name,\"readonly\":true,\"placeholder\":_vm.placeholder,\"inner-label\":_vm.isOpen ? '' : _vm.innerLabel,\"disabled\":_vm.disabled || _vm.options.length == 0,\"value\":_vm.selection.map(i => i.text).join(', '),\"is-focused\":!_vm.isOpen,\"status\":_vm.status,\"size\":_vm.size,\"background\":_vm.background},on:{\"click\":_vm.toggleDropdown},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.toggleDropdown.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_vm._t(\"left\")]},proxy:true},{key:\"right\",fn:function(){return [_c('v-icon',{staticClass:\"text-gray-dark\",attrs:{\"name\":_vm.isOpen ? 'angle-up' : 'angle-down',\"w\":20}})]},proxy:true}],null,true)}),_vm._v(\" \"),_c('pop-up',{staticClass:\"w-100 overflow-hidden\",attrs:{\"name\":\"select\",\"separation\":10,\"show\":_vm.isOpen,\"arrow\":false,\"placement\":\"bottom-start\"},on:{\"hide\":function($event){$event.stopPropagation();return _vm.close.apply(null, arguments)}}},[_vm._t(\"optionsList\",function(){return [_c('selectable-list',{attrs:{\"disabled\":_vm.disabled,\"is-focused\":_vm.isOpen,\"filterable\":_vm.filterable,\"multiple\":_vm.multiple,\"options\":_vm.options,\"value\":_vm.value,\"null-option\":_vm.nullOption},on:{\"input\":_vm.updateSelection}})]})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputSelect.vue?vue&type=template&id=ce0dd806\"\nimport script from \"./InputSelect.vue?vue&type=script&lang=js\"\nexport * from \"./InputSelect.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export class ParseError extends Error {\n}\n\nconst ReservedCharacters = [\":\", \";\", \"|\", \"[\", \"]\"]\n\n/*\n * input: \"foo:dog;LIKE|baz[]:cat|baz[]:1;LE\"\n *\n * output: [\n * { name: \"foo\", array: false, value: \"dog\", operator: \"LIKE\" },\n * { name: \"baz\", array: true, value: \"cat\", operator: undefined }\n * { name: \"baz\", array: true, value: \"1\", operator: \"LE\" }\n * ]\n *\n * Splitting the input by pipes (\"|\") we get pairs. The syntax of each pair is:\n *\n * ┌────┐ ┌───┐ ┌─────┐\n * ───►│name├─┬────────┬─┤\":\"├──┤value├─┬───────────────────┬───►\n * └────┘ │ │ └───┘ └─────┘ │ │\n * │ ┌────┐ │ │ ┌───┐ ┌────────┐ │\n * └─┤\"[]\"├─┘ └─┤\";\"├──┤operator├─┘\n * └────┘ └───┘ └────────┘\n *\n */\nexport default class QueryFiltersParser {\n constructor(str) {\n this.str = str\n this.current = 0\n }\n\n parse() {\n if (this.isAtEnd()) return []\n const filters = this.parseFilters()\n return filters\n }\n\n parseFilters() {\n const filters = [this.parseFilter()]\n if (this.peek() === \"|\") {\n this.consume(\"|\")\n return filters.concat(this.parseFilters())\n }\n if (this.current < this.str.length) {\n throw new ParseError(`Unexpected text: \"${this.str.slice(this.current)}\"`)\n }\n return filters\n }\n\n parseFilter() {\n const name = this.parseString()\n if (name.length === 0) throw new ParseError(`Expected a valid filter name`)\n let array = false\n if (this.peek() === \"[\") {\n array = true\n this.consume(\"[\")\n this.consume(\"]\")\n }\n this.consume(\":\")\n const value = this.parseString()\n let operator = undefined\n if (this.peek() === \";\") {\n this.consume(\";\")\n operator = this.parseString()\n }\n\n return { name, array, value, operator }\n }\n\n parseString() {\n let str = \"\"\n while (!this.isAtEnd()) {\n if (ReservedCharacters.includes(this.peek())) break\n if (this.peek() === \"\\\\\") this.consume(\"\\\\\")\n str += this.str[this.current++]\n }\n return str\n }\n\n peek() {\n return this.str[this.current]\n }\n\n consume(char) {\n if (this.isAtEnd() || this.peek() !== char) throw new ParseError(`Expected: ${char}`)\n return this.str[this.current++]\n }\n\n isAtEnd() {\n return this.current >= this.str.length\n }\n}\n","import parseISO from \"date-fns/parseISO\"\nimport isValid from \"date-fns/isValid\"\nimport groupBy from \"lodash/groupBy\"\n\nimport defaultI18n from \"~/i18n\"\n\nimport lms from \"~/images/libraries/lms_lms.svg\"\nimport communication from \"~/images/libraries/lms_communication.svg\"\nimport community from \"~/images/libraries/lms_community.svg\"\nimport general from \"~/images/libraries/general_library.svg\"\nimport my_documents from \"~/images/libraries/my_documents.svg\"\nimport library_default from \"~/images/libraries/library_default.svg\"\n\nimport {\n buildQueryString,\n buildQueryFilters,\n parseQueryString,\n tryParseValue,\n html2text\n} from \"~/lib/utils\"\n\nimport QueryFiltersParser from \"~/lib/QueryFiltersParser\"\n\nexport function parents2filters(parents) {\n const filters = {}\n\n for (const parent of parents) {\n switch (parent.type) {\n case \"area\":\n filters[\"areaId\"] = parent.id\n break\n\n case \"library\":\n filters[\"libraryId\"] = parent.id\n break\n\n case \"itinerary\":\n case \"CatalogItinerary\":\n filters[\"itineraryId\"] = parent.id\n filters[\"itinerary_name\"] = \"\" // @hack: don't show itinerary_name field\n break\n\n case \"school\":\n case \"CatalogSchool\":\n filters[\"schoolId\"] = parent.id\n break\n\n default:\n // TODO shouldn't rely on this default.\n filters[parent.type] = parent.id\n }\n }\n\n return filters\n}\n\n/*\n * \"listId?parents=parent:id;parent:id\" =>\n *\n * { listId, parents: [{ parent: id }, { parent: id }] }\n */\nexport function parseListKey(key) {\n const [listId, query=\"\"] = key.split(\"?\")\n const values = parseQueryString(query)\n\n const parents = []\n if (values.parents) {\n for (const fv of values.parents.split(\";\")) {\n const [type, id] = fv.split(\":\")\n parents.push({ type, id })\n }\n }\n\n return { listId, parents }\n}\n\n\n/**\n * Returns:\n * {\n * name: String,\n * description: String,\n * headerCoverUrl: String,\n * headerStyle: Object,\n * attributes: [{\n * name: String,\n * value: null,\n * }]\n * }\n */\nexport function buildParentInfoForItem({ item, totalCount, i18n=defaultI18n }) {\n switch (item._meta.type) {\n case \"area\":\n return buildParentInfoForArea(item, totalCount, i18n)\n\n case \"library\":\n return buildParentInfoForLibrary(item, totalCount, i18n)\n\n case \"CatalogItinerary\":\n case \"itinerary\":\n return buildParentInfoForItinerary(item, totalCount, i18n)\n\n case \"CatalogSchool\":\n return buildParentInfoForCatalogSchool(item, totalCount, i18n)\n\n case \"school\":\n return buildParentInfoForSchool(item, totalCount, i18n)\n\n default:\n throw new Error(`Don't know how to build info for ${item._meta.type}`)\n }\n}\n\n/**\n * Returns the info used by ListViewHeader, ModalBlock from a knowledge area.\n */\nfunction buildParentInfoForArea(area, totalCount, i18n) {\n totalCount ??= area.programsCount\n return {\n name: area.name,\n description: html2text(area.description),\n headerCoverUrl: area.headerUrl,\n headerStyle: \"\",\n attributes: [{\n name: i18n.tc(\"common.programs\", totalCount),\n value: totalCount,\n icon: \"program\"\n }]\n }\n}\n\n/**\n * Returns the info used by ListViewHeader, ModalBlock from a library\n */\nfunction buildParentInfoForLibrary(library, totalCount, i18n) {\n totalCount ??= library.resourcesCount\n return {\n name: library.title,\n description: library.description,\n headerCoverUrl: library.headerUrl,\n headerStyle: getLibraryListHeaderStyle(library),\n attributes: [{\n name: i18n.tc(\"common.resources\", totalCount),\n value: totalCount,\n icon: \"file\"\n }]\n }\n}\n\n/**\n * Returns the info used by ListViewHeader, ModalBlock for an itinerary\n */\n function buildParentInfoForItinerary(itinerary, totalCount, i18n) {\n totalCount ??= itinerary.schools.length\n return {\n name: itinerary.name,\n description: itinerary.description ?? \"\",\n headerCoverUrl: itinerary.headerUrl,\n attributes: [\n {\n name: i18n.tc(\"common.schools\", totalCount),\n value: totalCount,\n icon: \"program\"\n },\n itinerary.level && {\n name: i18n.t(\"common.level\"),\n value: itinerary.level\n }\n ].filter(Boolean)\n }\n}\n\n/**\n * Returns the info used by ListViewHeader, ModalBlock from a catalog school\n */\nfunction buildParentInfoForCatalogSchool(school, totalCount, i18n) {\n totalCount ??= school.programsCount\n return {\n name: school.name,\n description: school.description ?? \"\",\n headerCoverUrl: school.headerUrl,\n attributes: [{\n name: i18n.tc(\"common.programs\", totalCount),\n value: totalCount,\n icon: \"program\"\n }]\n }\n}\n\n/**\n * Returns the info used by ListViewHeader, ModalBlock from a school\n */\nfunction buildParentInfoForSchool(school, totalCount, i18n) {\n totalCount ??= school.callsCount\n return {\n name: school.name,\n description: school.description ?? \"\",\n headerCoverUrl: school.headerUrl ?? school.coverUrl, // TODO\n attributes: [{\n name: i18n.tc(\"common.calls\", totalCount),\n value: totalCount,\n icon: \"program\"\n }]\n }\n}\n\n\nfunction getLibraryListHeaderStyle(library) {\n const libraryCode = library.libraryCode\n\n const primaryLibraryBackgrounds = {\n lms: {\n backgroundImage: lms,\n backgroundPosition: 'right 62px bottom 10px'\n },\n communication: {\n backgroundImage: communication,\n backgroundPosition: 'right 62px bottom 0px'\n },\n community: {\n backgroundImage: community,\n backgroundPosition: 'right 62px bottom 10px'\n },\n general_library: {\n backgroundImage: general,\n backgroundPosition: 'right 62px top 32px'\n },\n my_documents: {\n backgroundImage: my_documents,\n backgroundPosition: 'right 62px top 0px'\n }\n }\n\n const defaultBackground = {\n backgroundImage: library_default,\n backgroundPosition: 'right 63px top -20px'\n }\n\n const isPrimaryLibrary = libraryCode in primaryLibraryBackgrounds\n\n const backgroundImage = isPrimaryLibrary\n ? primaryLibraryBackgrounds[libraryCode][\"backgroundImage\"]\n : defaultBackground[\"backgroundImage\"]\n\n const backgroundPosition = isPrimaryLibrary\n ? primaryLibraryBackgrounds[libraryCode][\"backgroundPosition\"]\n : defaultBackground[\"backgroundPosition\"]\n return {\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition\n }\n}\n\n// See lib/QueryFiltersParser.js for doc.\nexport function parseQueryFilters(str) {\n const parser = new QueryFiltersParser(str)\n return parser.parse()\n}\n\nfunction isValidISO8601(str) {\n return isValid(parseISO(str))\n}\n\nfunction isValidNumber(str) {\n return !Number.isNaN(Number(str))\n}\n\n// `parseQueryFilters` is a general purpose function that only deals\n// with understanding the filter string syntax.\n//\n// This function goes beyond that:\n// * It tries to parse number and boolean values.\n// * Merges array values.\n// * It deals with repeated filters: filters that represent a range ('range' for numbers, 'date' for\n// dates, 'size' for file sizes) are send as two separate filters with the same name and operators\n// 'GE' and 'LE'. For example: \"foo:1;GE|foo:10;LE\" represents a 'range' filter of name \"foo\".\n// When two filters with the same name are found, we check that the operators are 'GE' and 'LE',\n// and we test that the values are compatible with a 'range', 'date' or 'size' filter.\n// If they are, the filters are merged. Otherwise, an error is thrown.\n// * It returns values and operators in a format that can be directly used in listStore.\nexport function cookQueryFilters(allFilters) {\n const values = {}\n const operators = {}\n\n for (const filter of allFilters) {\n filter.value = decodeURIComponent(filter.value)\n }\n\n for (const [name, filters] of Object.entries(groupBy(allFilters, \"name\"))) {\n if (filters.every(f => f.array)) {\n values[name] = filters.map(f => f.value).map(tryParseValue)\n operators[name] = filters.map(f => f.operator)\n } else {\n if (filters.some(f => f.array)) throw new Error(\"Mixing array and non-array\")\n\n if (filters.length === 1) {\n const { name, value, operator } = filters[0]\n values[name] = tryParseValue(value)\n operators[name] = operator\n } else if (filters.length === 2) {\n let [start, end] = filters\n if (start.operator === \"LE\") [start, end] = [end, start]\n\n if (start.operator !== \"GE\" && end.operator !== \"LE\") throw new Error(\"Invalid operators\")\n if (isValidISO8601(start.value) && isValidISO8601(end.value)) {\n values[name] = {\n start: start.value,\n end: end.value\n }\n } else if (isValidNumber(start.value) && isValidNumber(end.value)) {\n values[name] = {\n start: Number(start.value),\n end: Number(end.value)\n }\n } else {\n throw new Error(\"Invalid filter values\")\n }\n } else {\n throw new Error(\"More than two filters with the same name\")\n }\n }\n }\n\n return { values, operators }\n}\n\nexport function buildListQueryString({ description, instance, parents, more=false }) {\n const parentFilters = parents2filters(parents)\n const { filters, operators, orderBy, direction, includeTotalCount } = instance\n\n return buildQueryString({\n order: orderBy,\n orderType: direction,\n filter: buildQueryFilters({\n ...parentFilters,\n ...filters\n }, description.filters, operators),\n ...(more ? { cursor: instance.nextCursor } : {}),\n totalCount: includeTotalCount\n })\n}\n","import differenceInDays from \"date-fns/differenceInDays\"\nimport isPast from \"date-fns/isPast\"\nimport parseISO from \"date-fns/parseISO\"\nimport camelCase from \"lodash/camelCase\"\nimport deburr from \"lodash/deburr\"\nimport * as DEFAULT_I18N from \"~/i18n\"\nimport {\n ACTIVITY_PASS_MODES,\n ACTIVITY_TYPES,\n CALL_STATUSES,\n SCORM_CHAPTER_STATUSES,\n SUPPORTED_ACTIVITY_TYPES\n} from \"~/lib/constants\"\nimport {\n fmtTimeHourMin,\n fmtveryshortdate,\n fmtwordsago,\n ucfirst\n} from \"~/lib/utils\"\n\n/**\n * CALL utilities\n */\n\nexport function cookActivityNodes({ nodes, level = 1, parentTitle, queryString = \"\"}) {\n const qs = deburr(queryString).toLowerCase()\n for (let [i, node] of nodes.entries()) {\n if (node.level) {\n // set block title\n if (level == 1) {\n node.roundedTop = true\n // A level may be empty\n const nextNodeIsLevel = node.activities[0]?.level\n node.hasSublevel = nextNodeIsLevel\n }\n if (level >= 3) {\n node.title = `${parentTitle} / ${node.title}`\n }\n cookActivityNodes({\n nodes: node.activities,\n level: level + 1,\n parentTitle: node.title,\n queryString\n })\n } else {\n const prev = nodes[i-1]\n const next = nodes[i+1]\n\n // connect contiguous blocked activities\n if (prev && !prev.level && node.blocked) {\n node.topConnected = true\n }\n\n if (next && next.blocked) {\n node.bottomConnected = true\n }\n\n if (!prev && level == 1) {\n node.roundedTop = true\n }\n\n if (!next) {\n node.roundedBottom = true\n }\n\n if (!deburr(node.title.toLowerCase()).includes(qs)) {\n node.hidden = true\n } else {\n node.hidden = false\n }\n }\n }\n return nodes\n}\n\nexport function getCallStatusColor(status) {\n status = status.toLowerCase()\n switch (status) {\n case \"coursing\":\n return \"warning\"\n case \"unevaluated\":\n return \"info\"\n case \"succeeded\":\n return \"success\"\n case \"pending\":\n case \"expired\":\n case \"cancelled\":\n return \"gray-dark\"\n case \"failed\":\n case \"unrealized\":\n return \"danger\"\n default:\n throw new Error(`Unknown call status: ${status}`)\n }\n}\n\nexport function getCallStatusIcon(status) {\n status = status.toLowerCase()\n switch (status) {\n case \"coursing\":\n case \"pending\":\n return \"coursing\"\n case \"failed\":\n return \"failed\"\n case \"succeeded\":\n return \"approved\"\n case \"unevaluated\":\n return \"unevaluated\"\n case \"unrealized\":\n case \"cancelled\":\n case \"expired\":\n return \"unrealized\"\n default:\n throw new Error(`Unknown call status: ${status}`)\n }\n}\n\nexport function getFirstPlayableActivity(activities) {\n let firstPlayableActivity\n const isPlayable = activity => {\n if (\n !activity.level\n && !isFinished(activity)\n && !activity.blocked\n && !activity.validatingUserActivityId\n && isActivityImplemented(activity.type)\n ) {\n return true\n }\n }\n const hasPlayableActivity = (a) => {\n if (isPlayable(a)) {\n firstPlayableActivity = a\n return true\n }\n return Array.isArray(a.activities) && a.activities.some(hasPlayableActivity)\n }\n activities.some(hasPlayableActivity)\n\n return firstPlayableActivity\n}\n\nexport function getLastPlayedActivity(navigation) {\n const lastNavigationFromPlugin = navigation.filter(({ from }) => from.name == \"plugin\").last()\n if (!lastNavigationFromPlugin) return null\n const lastUserActivityId = lastNavigationFromPlugin.from.params?.userActivityId\n return Number(lastUserActivityId)\n}\n\nexport function translateCallStatus(tc, status) {\n if (!CALL_STATUSES.includes(ucfirst(status.toLowerCase()))) {\n throw new Error(`Unknown call status: ${status}`)\n }\n return tc(`common.${camelCase(status.toLowerCase())}`, 1)\n}\n\n/**\n * ACTIVITY utilities\n */\n\n/**\n * @param activity Object\n * @param extendedVersion Boolean\n * @param locale String\n * @param timeZone String\n * @param t Function\n * @param normalClass Array\n * @param urgentClass Array\n * @returns { text: String, klass: Array }\n */\nexport function cookActivityDisplayDate({\n activity,\n extendedVersion=false,\n locale,\n now = new Date().toISOString(),\n timeZone,\n t,\n normalClass=[\n \"text-gray-dark\",\n \"font-weight-semi-bold\"\n ],\n urgentClass=[\n \"border\",\n \"border-warning\",\n \"font-weight-semi-bold\",\n \"px-8\",\n \"rounded-sm\",\n \"text-dark\"\n ],\n}) {\n let { fromDate, toDate } = activity\n\n now = parseISO(now)\n fromDate = parseISO(fromDate)\n toDate = parseISO(toDate)\n const daysToStart = differenceInDays(fromDate, now)\n const daysToFinish = differenceInDays(toDate, now)\n const isFinished = toDate < now\n const isStarted = fromDate < now\n\n if (!isStarted) {\n if (daysToStart > 30) {\n let text = ucfirst(t(\"common.startsOn\", { date: fmtveryshortdate(locale, timeZone, fromDate)}))\n if (extendedVersion) {\n text += ` - ${ucfirst(t(\"common.dueOn\", { date: fmtveryshortdate(locale, timeZone, toDate)}))}`\n }\n return {\n text,\n klass: normalClass\n }\n } else {\n if (extendedVersion) {\n let text = `${ucfirst(t(\"common.startsIn\", { time: fmtwordsago(locale, fromDate, now) }))}: ${fmtveryshortdate(locale, timeZone, fromDate)}`\n text += ` - ${ucfirst(t(\"common.dueOn\", { date: fmtveryshortdate(locale, timeZone, toDate)}))}`\n return {\n text,\n klass: normalClass\n }\n }\n return {\n text: ucfirst(t(\"common.startsOn\", { date: fmtveryshortdate(locale, timeZone, fromDate)})),\n klass: normalClass\n }\n }\n }\n\n if (!isFinished) {\n if (daysToFinish > 30) {\n return {\n text: ucfirst(t(\"common.dueOn\", { date: fmtveryshortdate(locale, timeZone, toDate)})),\n klass: normalClass\n }\n }\n\n if (daysToFinish > 10) {\n if (extendedVersion) {\n return {\n text: `${ucfirst(t(\"common.dueIn\", { time: fmtwordsago(locale, toDate, now)}))}`,\n klass: normalClass\n }\n }\n return {\n text: ucfirst(t(\"common.dueOn\", { date: fmtveryshortdate(locale, timeZone, toDate)})),\n klass: normalClass\n }\n }\n\n if (daysToFinish >= 0) {\n if (extendedVersion) {\n return {\n text: `${ucfirst(t(\"common.dueIn\", { time: fmtwordsago(locale, toDate, now)}))}`,\n klass: urgentClass\n }\n }\n return {\n text: ucfirst(t(\"common.dueOn\", { date: fmtveryshortdate(locale, timeZone, toDate)})),\n klass: urgentClass\n }\n }\n }\n\n const startText = ucfirst(t(\"common.started\", { date: fmtveryshortdate(locale, timeZone, fromDate) }))\n const endText = ucfirst(t(\"common.ended\", { date: fmtveryshortdate(locale, timeZone, toDate) }))\n const text = extendedVersion ? `${startText} - ${endText}` : endText\n return {\n text,\n klass: normalClass\n }\n}\n\n/**\n * @param activity Object\n * @param isDesktop Boolean\n * @param isCarousel Boolean\n * @param i18n Object - used only to be able to stub this part in the tests\n */\nexport function getActivityAttributes({ activity, isDesktop, isCarousel, i18n }) {\n i18n = i18n || DEFAULT_I18N.default\n const credits = isDesktop\n ? `${activity.credits}/${activity.maxCredits}`\n : `${activity.credits}`\n return [\n isCarousel && {\n icon: \"entry\",\n label: ucfirst(i18n.tc('common.accesses', activity.attempts)),\n value: activity.attempts\n },\n isCarousel && activity.experiencedTime && {\n icon: \"clock\",\n label: ucfirst(i18n.t('common.experiencedTime')),\n value: fmtTimeHourMin(activity.experiencedTime)\n },\n {\n icon: \"medal\",\n label: ucfirst(i18n.tc('common.qualification', 1)),\n value: activity.hasQualification ? activity.qualification : \"-\"\n },\n activity.maxCredits > 0 && {\n icon: \"trophy\",\n label: ucfirst(i18n.tc('common.credits', 2)),\n value: credits\n }\n ].filter(Boolean)\n}\n\nexport function getActivityActionIcon(activity) {\n const { status, blocked, validatingUserActivityId } = activity\n\n if (validatingUserActivityId) {\n return {\n name: \"award\",\n class: \"text-success\"\n }\n }\n\n if (blocked) {\n return {\n name: \"lock\",\n class: \"text-dark\"\n }\n }\n\n switch (status.toLowerCase()) {\n case \"pending\":\n return {\n name: \"play\",\n class: \"text-gray-dark\"\n }\n case \"coursing\":\n return {\n name: \"play\",\n class: \"text-warning\"\n }\n\n case \"failed\":\n return {\n name: \"failed\",\n class: \"text-danger\"\n }\n\n case \"succeeded\":\n return {\n name: \"approved\",\n class: \"text-success\"\n }\n\n case \"unevaluated\":\n return {\n name: \"unevaluated\",\n class: \"text-gray-dark\"\n }\n\n case \"unrealized\":\n case \"cancelled\":\n case \"expired\":\n return {\n name: \"unrealized\",\n class: \"text-danger\"\n }\n\n default:\n throw new Error(`Unknown activity status: ${status}`)\n\n }\n}\n\nexport function getActivityIcon(type) {\n switch (type.toUpperCase()) {\n case \"SCORM_VIDEO\":\n return \"presentation\"\n\n case \"OFFLINE_SESSIONS\":\n return \"map\"\n\n case \"POLLS\":\n return \"file-edit-alt\"\n\n case \"CUSTOM_POLL_V2\":\n case \"SATISFACTION_POLL_V2\":\n return \"file-edit-alt\"\n\n case \"SCORM\": // SCORM\n return \"meeting\"\n\n case \"SOCIAL_VIDEO\":\n return \"youtube\"\n\n case \"TNT\":\n case \"TASKS\":\n return \"plugin-tnt\"\n\n case \"UNIVERSAL_CONECTOR\":\n return \"crosshair\"\n\n case \"EXAMS\":\n return \"edit\"\n\n case \"WORKGROUPS\":\n return \"users-alt\"\n\n case \"JOB_TRAINING\":\n return \"notes\"\n\n case \"PERFORMANCE_EVALUATION\":\n return \"chart-line\"\n\n case \"OBJECTIVES\":\n return \"crosshair\"\n\n case \"VIRTUAL_CLASSROOM\":\n return \"webcam\"\n\n case \"EXTERNAL_SIMULATOR_CIRCULATION\":\n case \"SIMULATOR\":\n return \"external-link\"\n\n default:\n return \"file-exclamation-alt\"\n }\n}\n\nexport function getActivityLocation(activity) {\n if (activity.blocked || hasExpired(activity) || !isActivityImplemented(activity.type)) {\n return `/call/${activity.userCallId}?activity=${activity.userActivityId}`\n }\n return `/plugin/${activity.userActivityId}`\n}\n\n/**\n * @param activity Object\n * @param tc Function\n * @returns { statusText, statusTextClass, statusIcon, statusIconClass } Object\n */\nexport function getActivityStatusAndIcon({ activity, tc }) {\n const { status, validatingUserActivityId } = activity\n\n if (validatingUserActivityId) {\n return {\n color: \"success\",\n icon: \"approved\",\n text: tc(\"common.validated\"),\n textClass: \"text-success\",\n iconClass: \"text-success\"\n }\n }\n\n const lowStatus = status.toLowerCase()\n const text = tc(`common.${lowStatus}`, 1)\n\n switch (lowStatus) {\n case \"pending\":\n return {\n color: \"dark\",\n icon: \"coursing\",\n text,\n textClass: \"text-dark\",\n iconClass: \"text-gray-dark\"\n }\n\n case \"coursing\":\n return {\n color: \"warning\",\n icon: \"coursing\",\n text,\n textClass: \"text-warning\",\n iconClass: \"text-warning\"\n }\n\n case \"failed\":\n return {\n color: \"danger\",\n icon: \"failed\",\n text,\n textClass: \"text-danger\",\n iconClass: \"text-danger\"\n }\n case \"succeeded\":\n return {\n color: \"success\",\n icon: \"approved\",\n text,\n textClass: \"text-success\",\n iconClass: \"text-success\"\n }\n\n case \"unevaluated\":\n return {\n color: \"gray-dark\",\n icon: \"unevaluated\",\n text,\n textClass: \"text-gray-dark\",\n iconClass: \"text-gray-dark\"\n }\n\n case \"unrealized\":\n case \"cancelled\":\n case \"expired\":\n return {\n color: \"danger\",\n icon: \"unrealized\",\n text,\n textClass: \"text-danger\",\n iconClass: \"text-danger\"\n }\n\n default:\n throw new Error(`Unknown activity status: ${status}`)\n }\n}\n\nexport function getActivityStatusColor(status) {\n status = status.toLowerCase()\n switch (status) {\n case \"pending\":\n return \"dark\"\n case \"coursing\":\n return \"warning\"\n case \"unevaluated\":\n return \"gray-dark\"\n case \"succeeded\":\n return \"success\"\n case \"expired\":\n case \"unrealized\":\n case \"failed\":\n case \"cancelled\":\n return \"danger\"\n default:\n throw new Error(`Unknown activity status: ${status}`)\n }\n}\n\nexport function getActivityStatusIcon(activity) {\n if (activity.blocked) return \"lock\"\n\n if (activity.type === \"OFFLINE_SESSIONS\") {\n const { stripFromDate } = activity\n if (!stripFromDate) return \"eye-full\"\n }\n\n const status = activity.status.toLowerCase()\n switch (status) {\n case \"pending\":\n case \"coursing\":\n return \"play\"\n\n case \"expired\":\n case \"unevaluated\":\n case \"unrealized\":\n case \"succeeded\":\n case \"failed\":\n case \"cancelled\":\n return \"eye-full\"\n\n default:\n throw new Error(`Unknown activity status: ${status}`)\n }\n}\n\nexport function hasExpired(activity) {\n const { toDate } = activity\n return isPast(parseISO(toDate))\n}\n\nexport function isActivityImplemented(type) {\n return SUPPORTED_ACTIVITY_TYPES.includes(type.toUpperCase())\n}\n\nexport function isFinished({ status }) { // It works for both calls and activities\n const cookedStatus = status.toLowerCase()\n return ![\"pending\", \"coursing\", \"unevaluated\"].includes(cookedStatus)\n}\n\nexport function translateActivityPassMode(t, passMode, passProgress, passQualification) {\n passMode = passMode.toLowerCase()\n if (!ACTIVITY_PASS_MODES.includes(passMode)) {\n throw new Error(`Unknown pass mode ${passMode}`)\n }\n\n switch (passMode) {\n case \"access\": {\n return ucfirst(t(`common.access`))\n }\n\n case \"complete\": {\n const complete = ucfirst(t(`common.complete`))\n return `${complete} ${passProgress}%`\n }\n\n case \"pass\": {\n const pass = ucfirst(t(`common.pass`))\n return `${pass} ${passQualification} pts.`\n }\n\n case \"pass_and_complete\": {\n const pass = ucfirst(t(`common.pass`))\n const and = t(`common.and`)\n const complete = t(`common.complete`)\n\n return `${pass} ${passQualification} pts. ${and} ${complete} ${passProgress}%`\n }\n\n default:\n throw new Error(`Unknown pass mode ${passMode}`)\n }\n}\n\nexport function translateActivityType(tc, type) {\n if (!ACTIVITY_TYPES.includes(type)) {\n throw new Error(`Unknown activity type: ${type}`)\n }\n return tc(`common.${camelCase(type)}`, 1)\n}\n\nexport function translateScormChapterStatus(tc, status) {\n if (!SCORM_CHAPTER_STATUSES.includes(status)) {\n throw new Error(`Unknown scorm chapter status: ${status}`)\n }\n return tc(`common.${camelCase(status.toLowerCase())}`, 1)\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"w-100 d-block\"},[_c('div',{staticClass:\"w-auto mb-0 text-gray-dark text-center py-12 d-flex justify-content-center align-items-center\"},[_c('span',{staticClass:\"mr-10 font--16 lh--20\"},[_vm._v(_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.loading\"))))]),_vm._v(\" \"),_c('span',{staticClass:\"bounce1 rounded-circle bg-gray-dark\"}),_vm._v(\" \"),_c('span',{staticClass:\"bounce2 rounded-circle bg-gray-dark\"}),_vm._v(\" \"),_c('span',{staticClass:\"bounce3 rounded-circle bg-gray-dark\"})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SpinnerBlock.vue?vue&type=template&id=ec95deec&scoped=true\"\nvar script = {}\nimport style0 from \"./SpinnerBlock.vue?vue&type=style&index=0&id=ec95deec&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ec95deec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.wrapperClass,style:(_vm.borderRadiusStyle)},[_c('div',{staticClass:\"text-nowrap\",class:_vm.bgClass,style:([_vm.barStyle, _vm.borderRadiusStyle]),attrs:{\"aria-label\":_vm.cookedLabel,\"aria-valuenow\":_vm.value,\"aria-valuemax\":_vm.max,\"aria-valuemin\":_vm.min,\"role\":\"progressbar\"}}),_vm._v(\" \"),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ProgressBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ProgressBar.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./ProgressBar.vue?vue&type=template&id=1a25faf9\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:\"position-relative rounded-circle border-0 outline-none playButton\",class:_vm.buttonClass,style:(_vm.sizeButton),attrs:{\"disabled\":_vm.disabled,\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('div',{staticClass:\"position-absolute transition-bg-color transition-duration-100 transition-ease-out rounded-circle abs-center bg--black--50 w-100 h-100\"}),_vm._v(\" \"),_c('v-icon',{staticClass:\"text-light position-absolute abs-center\",attrs:{\"name\":_vm.isPlaying ? 'pause' : 'play',\"w\":_vm.size / 2}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./PlayButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./PlayButton.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./PlayButton.vue?vue&type=template&id=25057b97&scoped=true\"\nimport script from \"./PlayButton.vue?vue&type=script&lang=js\"\nexport * from \"./PlayButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./PlayButton.vue?vue&type=style&index=0&id=25057b97&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25057b97\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex align-items-center justify-content-between\",class:_vm.isPreviewable && 'cursor--pointer',on:{\"click\":_vm.preview}},[_c('v-icon',{class:_vm.$css(_vm.$theme.textPrimary),attrs:{\"name\":_vm.iconName,\"w\":_vm.resourceIconSize}}),_vm._v(\" \"),_c('div',{staticClass:\"ml-8 mr-auto mnw-0\"},[_c('truncated-text',{staticClass:\"text-dark mb-0\",class:_vm.size == 'big' ? 'font--16 lh--20 mb-4' : 'font--14',attrs:{\"text\":_vm.file.name,\"lines\":1}}),_vm._v(\" \"),(_vm.showSize)?_c('p',{staticClass:\"text-gray-dark font--12 mb-0\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"size\")(_vm.file.size))+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),(_vm.collapsedMode)?_c('button-link',{directives:[{name:\"anchor\",rawName:\"v-anchor\",value:('actions'),expression:\"'actions'\"}],attrs:{\"icon\":\"more\",\"icon-size\":_vm.actionIconSize,\"theme\":\"gray-dark\",\"type\":\"button\"},nativeOn:{\"click\":function($event){$event.stopPropagation();return _vm.toggleActionsPopup.apply(null, arguments)}}}):_c('div',{staticClass:\"d-flex align-items-center flex-shrink-0 ml-8\"},[(_vm.file.downloadUrl)?[(_vm.file.async)?_c('button-link',{attrs:{\"icon\":\"download-arrow\",\"loading\":_vm.loading,\"icon-size\":_vm.actionIconSize},nativeOn:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.download.apply(null, arguments)}}}):_c('button-link',{attrs:{\"href\":_vm.file.downloadUrl,\"download\":_vm.file.name,\"icon\":\"download-arrow\",\"icon-size\":_vm.actionIconSize},on:{\"click\":function($event){$event.stopPropagation();}}})]:_vm._e(),_vm._v(\" \"),(_vm.removable)?_c('button-link',{attrs:{\"icon\":\"trash\",\"aria-label\":_vm._f(\"ucfirst\")(_vm.$t('common.delete')),\"icon-size\":_vm.actionIconSize},nativeOn:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('remove')}}}):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./UploadedFile.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./UploadedFile.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./UploadedFile.vue?vue&type=template&id=b9c2b0be\"\nimport script from \"./UploadedFile.vue?vue&type=script&lang=js\"\nexport * from \"./UploadedFile.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { StyleSheet as Aphrodite } from \"aphrodite/no-important\"\n\nexport const { StyleSheet, css } = Aphrodite.extend([{\n // Adding support for nesting inspired on https://github.com/Khan/aphrodite/issues/319\n selectorHandler: (selector, baseSelector, generateSubtreeStyles) => {\n if (selector[0] === '&') {\n const tag = selector.slice(1)\n const nestedTag = generateSubtreeStyles(`${baseSelector} ${tag}`)\n return nestedTag\n } else if (selector[0] === '>') {\n const tag = selector.slice(1)\n const nestedTag = generateSubtreeStyles(`${baseSelector} > ${tag}`)\n return nestedTag\n }\n return null\n }\n}])\n","export default {\n props: {\n to: [String, Object],\n href: String,\n disabled: Boolean,\n flipIcon: {\n type: String,\n validator: (val) => {\n const OK = ['horizontal', 'vertical'].includes(val)\n if (!OK) console.trace(`Invalid prop: ${val}`)\n return OK\n }\n },\n icon: String,\n\n loading: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: \"button\",\n validator: (val) => [\"button\", \"div\", \"span\"].includes(val)\n }\n },\n\n computed: {\n component() {\n if (this.to) return \"router-link\"\n if (this.href) return \"a\"\n if (this.tag) return this.tag\n return \"button\"\n },\n\n resolvedRoute() {\n if (!this.to) return\n return this.$router.resolve(this.to).href\n }\n },\n\n methods: {\n clickEvent(event) {\n if (this.loading) {\n event.preventDefault()\n return\n }\n this.$emit('click', event)\n },\n\n setFocus() {\n this.$el.focus()\n },\n }\n}\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"w-100 d-flex align-items-center py-16 cursor--pointer\",on:{\"mousedown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;$event.preventDefault();if('button' in $event && $event.button !== 0)return null;return _vm.mousedown.apply(null, arguments)},\"touchstart\":_vm.touchstart}},[_c('time',{staticClass:\"mr-14 user-select-none\"},[_vm._v(\"\\n \"+_vm._s(_vm.cookedCurrentTime)+\"\\n \")]),_vm._v(\" \"),_c('progress-bar',{ref:\"bar\",staticClass:\"w-100 position-relative\",attrs:{\"background-color\":\"dark\",\"ignore-readability\":\"\",\"min\":0,\"max\":1,\"smooth\":false,\"value\":_vm.progress}},[_c('div',{staticClass:\"rounded-circle position-absolute abs-center-y bg-light\",style:(_vm.handlerStyle)})]),_vm._v(\" \"),_c('time',{staticClass:\"ml-14 user-select-none\"},[_vm._v(\"\\n \"+_vm._s(_vm.cookedDuration)+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./TimeBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./TimeBar.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./TimeBar.vue?vue&type=template&id=7e80ba8e\"\nimport script from \"./TimeBar.vue?vue&type=script&lang=js\"\nexport * from \"./TimeBar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"py-4 cursor--pointer\",on:{\"mousedown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;$event.preventDefault();if('button' in $event && $event.button !== 0)return null;return _vm.mousedown.apply(null, arguments)},\"touchstart\":_vm.touchstart}},[_c('progress-bar',{ref:\"bar\",staticClass:\"position-relative cursor--pointer\",attrs:{\"value\":_vm.value,\"min\":0,\"max\":1,\"smooth\":false,\"background-color\":\"gray\",\"ignore-readability\":true}},[_c('div',{staticClass:\"rounded-circle position-absolute abs-center-y bg-light\",style:(_vm.handlerStyle)})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./VolumeBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./VolumeBar.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./VolumeBar.vue?vue&type=template&id=5851ef83\"\nimport script from \"./VolumeBar.vue?vue&type=script&lang=js\"\nexport * from \"./VolumeBar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg',{class:_vm.$css(_vm.$theme.strokePrimary),style:(`width: ${_vm.width}px;`),attrs:{\"viewBox\":\"0 0 640 300\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"page-5\",attrs:{\"d\":_vm.pagePath}}),_vm._v(\" \"),_c('path',{staticClass:\"page-4\",attrs:{\"d\":_vm.pagePath}}),_vm._v(\" \"),_c('path',{staticClass:\"page-3\",attrs:{\"d\":_vm.pagePath}}),_vm._v(\" \"),_c('path',{staticClass:\"page-2\",attrs:{\"d\":_vm.pagePath}}),_vm._v(\" \"),_c('path',{staticClass:\"page-1\",attrs:{\"d\":_vm.pagePath}}),_vm._v(\" \"),_c('path',{staticClass:\"page-6\",attrs:{\"d\":\"M 354,252 H 519\"}}),_vm._v(\" \"),_c('path',{staticClass:\"top-cover\",attrs:{\"d\":\"M 320,240 V 195 H 545\"}}),_vm._v(\" \"),_c('path',{staticClass:\"bottom-cover\",attrs:{\"d\":\"m 320,240 v 45 h 225\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./LoadingSpinner.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./LoadingSpinner.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./LoadingSpinner.vue?vue&type=template&id=2fa3819e&scoped=true\"\nimport script from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoadingSpinner.vue?vue&type=style&index=0&id=2fa3819e&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fa3819e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\",\"appear\":\"\"}},[_c('ul',{staticClass:\"bg-light rounded shadow-default list-unstyled mb-0 py-16\",staticStyle:{\"max-width\":\"fit-content\"}},_vm._l((_vm.actions),function(action){return _c('li',{key:action.text,staticClass:\"d-flex align-items-center\"},[_c('button-link',{staticClass:\"py-8 px-16 w-100 hover:bg-gray-light\",attrs:{\"to\":action.to,\"href\":action.href,\"download\":action.download,\"shape\":\"text\",\"theme\":\"dark\"},on:{\"click\":function($event){return _vm.emitEvent(action.event)}}},[(action.icon)?_c('v-icon',{staticClass:\"mr-4\",attrs:{\"name\":action.icon,\"w\":18}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"font-weight-normal font--14\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(action.text))+\"\\n \")])],1)],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ActionsPopup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ActionsPopup.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./ActionsPopup.vue?vue&type=template&id=2185eff6\"\nimport script from \"./ActionsPopup.vue?vue&type=script&lang=js\"\nexport * from \"./ActionsPopup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('header',{staticClass:\"d-flex text-light align-items-center px-16\",style:(_vm.headerStyle)},[_c('button-link',{staticClass:\"mr-12\",attrs:{\"icon-size\":32,\"flip-icon\":\"horizontal\",\"icon\":\"arrow-right-thin\",\"theme\":\"light\"},on:{\"click\":_vm.popModal}}),_vm._v(\" \"),_c('span',{staticClass:\"text-truncate\"},[_vm._v(\"\\n \"+_vm._s(_vm.name)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-items-center ml-auto\"},[(_vm.showLikes)?_c('button-link',{ref:\"like\",staticClass:\"mlsp-16\",attrs:{\"icon\":_vm.liked ? 'heart-full' : 'heart',\"theme\":_vm.liked ? 'danger' : 'light'},nativeOn:{\"click\":function($event){return _vm.like.apply(null, arguments)}}}):_vm._e(),_vm._v(\" \"),(_vm.showBookmarked)?_c('button-link',{ref:\"bookmark\",staticClass:\"mlsp-16\",attrs:{\"icon\":_vm.bookmarked ? 'bookmark-full' : 'bookmark',\"theme\":\"light\"},nativeOn:{\"click\":function($event){return _vm.bookmark.apply(null, arguments)}}}):_vm._e(),_vm._v(\" \"),(_vm.$media('sm+') && _vm.downloadUrl)?_c('button-link',{ref:\"download\",staticClass:\"mlsp-16\",attrs:{\"icon\":\"download-arrow\",\"href\":_vm.downloadUrl,\"download\":_vm.name,\"theme\":\"light\"}}):_vm._e(),_vm._v(\" \"),(_vm.removable && _vm.$media('sm+'))?_c('button-link',{ref:\"remove\",staticClass:\"mlsp-16\",attrs:{\"icon\":\"trash\",\"theme\":\"light\"},nativeOn:{\"click\":function($event){return _vm.remove.apply(null, arguments)}}}):_vm._e(),_vm._v(\" \"),(_vm.$media('sm+') && _vm.resourceId)?_c('button-link',{ref:\"info\",staticClass:\"mlsp-16\",attrs:{\"icon\":\"info\",\"to\":`/resources/${_vm.resourceId}`,\"theme\":\"light\"}}):_vm._e(),_vm._v(\" \"),(_vm.showEllipsis)?_c('button-link',{ref:\"popup-button\",staticClass:\"mlsp-16\",attrs:{\"icon\":\"more\",\"theme\":\"light\"},nativeOn:{\"click\":function($event){_vm.showPopUp = !_vm.showPopUp}}}):_vm._e(),_vm._v(\" \"),(_vm.$media('sm+') && _vm.showLikes)?_c('tool-tip',{attrs:{\"name\":\"like\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.social.liked ? _vm.$t(\"common.dislike\") : _vm.$t(\"common.like\")))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.$media('sm+') && _vm.showBookmarked)?_c('tool-tip',{attrs:{\"name\":\"bookmark\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.social.bookmarked ? _vm.$t(\"common.removeFromBookmarks\") : _vm.$t(\"common.addToBookmarks\")))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.$media('sm+') && _vm.downloadUrl)?_c('tool-tip',{attrs:{\"name\":\"download\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.download\")))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.$media('sm+') && _vm.resourceId)?_c('tool-tip',{attrs:{\"name\":\"info\",\"placement\":\"left\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.moreInfo\")))+\"\\n \")]):_vm._e()],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-column justify-content-center\",staticStyle:{\"height\":\"calc(100vh - 50px)\"},on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.popModal.apply(null, arguments)}}},[_c('the-player',_vm._b({staticClass:\"h-100\",attrs:{\"focus-on-mount\":\"\"},on:{\"accessed\":_vm.accessed,\"close\":_vm.popModal}},'the-player',_vm.$attrs,false))],1),_vm._v(\" \"),_c('pop-up',{staticClass:\"p-12\",attrs:{\"name\":\"popup-button\",\"show\":_vm.showPopUp},on:{\"hide\":_vm.hidePopUp}},[_c('ul',{staticClass:\"text-dark mb-0 list-unstyled\"},[(_vm.resourceId)?_c('li',{staticClass:\"mtsp-12\"},[_c('router-link',{staticClass:\"text-dark d-flex align-items-center\",attrs:{\"to\":`/resources/${_vm.resourceId}`}},[_c('v-icon',{attrs:{\"name\":\"info\",\"w\":16}}),_vm._v(\" \"),_c('span',{staticClass:\"ml-8\"},[_vm._v(_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.information\"))))])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.downloadUrl && _vm.$media('xs-'))?_c('li',{staticClass:\"mtsp-12\"},[_c('a',{staticClass:\"d-flex align-items-center\",attrs:{\"href\":_vm.downloadUrl,\"download\":\"\"}},[_c('v-icon',{attrs:{\"name\":\"download-arrow\",\"w\":16}}),_vm._v(\" \"),_c('span',{staticClass:\"ml-8\"},[_vm._v(_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.download\"))))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.removable && _vm.$media('xs-'))?_c('li',[_c('button-link',{attrs:{\"theme\":\"dark\",\"bold\":false},on:{\"click\":_vm.remove}},[_c('v-icon',{attrs:{\"name\":\"trash\",\"w\":16}}),_vm._v(\" \"),_c('span',{staticClass:\"ml-8\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.delete\")))+\"\\n \")])],1)],1):_vm._e()])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./PlayerModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./PlayerModal.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./PlayerModal.vue?vue&type=template&id=e6490516\"\nimport script from \"./PlayerModal.vue?vue&type=script&lang=js\"\nexport * from \"./PlayerModal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_vm._t(\"default\",null,{\"formFields\":_vm.cookedFields})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./FileTemplate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./FileTemplate.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./FileTemplate.vue?vue&type=template&id=14998491&scoped=true\"\nimport script from \"./FileTemplate.vue?vue&type=script&lang=js\"\nexport * from \"./FileTemplate.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileTemplate.vue?vue&type=style&index=0&id=14998491&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14998491\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\"},[(_vm.description)?_c('div',{staticClass:\"font-weight-light font--14 mb-10 pb-20\",domProps:{\"innerHTML\":_vm._s(_vm.description)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex\",class:_vm.$media('s-') && 'flex-column'},[(_vm.showTemplate)?_c('div',{class:_vm.$media('s-') ? 'w-100 mb-20' : 'w-50 mr-20'},[(_vm.templateLabel)?_c('p',{staticClass:\"font-weight-semi-bold font--16\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.templateLabel))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('uploaded-file',{staticClass:\"rounded-sm p-12 border\",attrs:{\"file\":_vm.template,\"removable\":false}})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"position-relative\",class:_vm.$media('s-') ? 'w-100' : 'w-50'},[(_vm.inputLabel)?_c('p',{staticClass:\"font-weight-semi-bold font--16\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.inputLabel))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.value)?_c('upload-button',{attrs:{\"status\":_vm.status,\"mode\":\"button\"},on:{\"new-file\":file => _vm.addFile(file)}}):_c('uploaded-file',{staticClass:\"rounded-sm p-12 border\",attrs:{\"file\":_vm.value,\"removable\":true},on:{\"remove\":_vm.removeFile}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./FileGroupTemplate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./FileGroupTemplate.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./FileGroupTemplate.vue?vue&type=template&id=4c6a0fb1&scoped=true\"\nimport script from \"./FileGroupTemplate.vue?vue&type=script&lang=js\"\nexport * from \"./FileGroupTemplate.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileGroupTemplate.vue?vue&type=style&index=0&id=4c6a0fb1&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c6a0fb1\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\"},[(_vm.description)?_c('div',{staticClass:\"font-weight-light font--14 mb-10 pb-20\",domProps:{\"innerHTML\":_vm._s(_vm.description)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex\",class:_vm.$media('s-') && 'flex-column'},[(_vm.showTemplate)?_c('div',{class:_vm.$media('s-') ? 'w-100 mb-20' : 'w-50 mr-20'},[(_vm.templateLabel)?_c('p',{staticClass:\"font-weight-semi-bold font--16\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.templateLabel))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-items-center justify-content-between\"},[_c('input-text',{staticClass:\"w-100 mr-20\",attrs:{\"placeholder\":_vm.$t('slotools.groupCode'),\"size\":\"small\"},model:{value:(_vm.groupCode),callback:function ($$v) {_vm.groupCode=$$v},expression:\"groupCode\"}}),_vm._v(\" \"),_c('base-button',{staticClass:\"w-100\",attrs:{\"disabled\":!_vm.groupCode,\"type\":\"button\"},on:{\"click\":_vm.downloadGroupTemplate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"slotools.downloadGroupTemplate\"))+\"\\n \")])],1)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"position-relative\",class:_vm.$media('s-') ? 'w-100' : 'w-50'},[(_vm.inputLabel)?_c('p',{staticClass:\"font-weight-semi-bold font--16\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.inputLabel))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.value)?_c('upload-button',{attrs:{\"status\":_vm.status,\"mode\":\"button\"},on:{\"new-file\":file => _vm.addFile(file)}}):_c('uploaded-file',{staticClass:\"rounded-sm p-12 border\",attrs:{\"file\":_vm.value,\"removable\":true},on:{\"remove\":_vm.removeFile}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./RemoteList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./RemoteList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./RemoteList.vue?vue&type=template&id=baf1d480&scoped=true\"\nimport script from \"./RemoteList.vue?vue&type=script&lang=js\"\nexport * from \"./RemoteList.vue?vue&type=script&lang=js\"\nimport style0 from \"./RemoteList.vue?vue&type=style&index=0&id=baf1d480&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"baf1d480\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"tabindex\":\"0\"},on:{\"focus\":_vm.focusOnFirstItem}},[_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length > 0),expression:\"list.length > 0\"}],ref:\"list\",staticClass:\"overflow-auto py-0\",on:{\"keydown\":[function($event){$event.preventDefault();$event.stopPropagation();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;return _vm.moveFocus($event, 'down')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;return _vm.moveFocus($event, 'up')}],\"blur\":function($event){return _vm.$emit('blur')},\"focus\":function($event){return _vm.$emit('focus')}}},_vm._l((_vm.list),function(item,index){return _c('li',{key:index,staticClass:\"text-truncate px-16 cursor--pointer text-dark\",class:item.checked && _vm.checkedClass,attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.select(item)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.select(item)}}},[_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \")])}),0),_vm._v(\" \"),(_vm.options.length === 0 && !_vm.loading)?_c('div',{staticClass:\"bg-gray-light text-dark text-center py-16\"},[_c('v-icon',{attrs:{\"name\":\"info\",\"w\":42}}),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t('validation.noResults')))+\"\\n \")])],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputRemote.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputRemote.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputRemote.vue?vue&type=template&id=4d5c37d9\"\nimport script from \"./InputRemote.vue?vue&type=script&lang=js\"\nexport * from \"./InputRemote.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.close.apply(null, arguments)}}},[_c('input-text',{ref:\"select\",attrs:{\"status\":_vm.status,\"name\":_vm.name,\"placeholder\":_vm.placeholder,\"inner-label\":_vm.innerLabel,\"disabled\":_vm.disabled,\"value\":_vm.text || _vm.query,\"readonly\":!!_vm.value},on:{\"input\":_vm.search,\"focus\":function($event){return _vm.$emit('focus')},\"blur\":function($event){return _vm.$emit('blur')}},nativeOn:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;return _vm.focusOnList.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;$event.stopPropagation();$event.preventDefault();return _vm.focusOnList.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_vm._t(\"left\")]},proxy:true},{key:\"right\",fn:function(){return [(!_vm.disabled && (_vm.text || _vm.query))?_c('button-link',{attrs:{\"theme\":\"gray-dark\",\"icon\":\"close\",\"icon-size\":20},on:{\"click\":function($event){$event.preventDefault();return _vm.erase.apply(null, arguments)}}}):_vm._e()]},proxy:true}],null,true)}),_vm._v(\" \"),_c('transition',{staticClass:\"w-100 overflow-hidden position-fixed\",attrs:{\"name\":\"fade\"},on:{\"hide\":function($event){$event.stopPropagation();return _vm.close.apply(null, arguments)}}},[_c('remote-list',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.opened),expression:\"opened\"}],ref:\"list\",staticClass:\"bg-light position-absolute w-100 z-index--1 rounded-bottom shadow--bottom\",attrs:{\"value\":_vm.value,\"options\":_vm.options,\"loading\":_vm.loading},on:{\"input\":_vm.change}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputSelectOther.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputSelectOther.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputSelectOther.vue?vue&type=template&id=1dc78fd5\"\nimport script from \"./InputSelectOther.vue?vue&type=script&lang=js\"\nexport * from \"./InputSelectOther.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('input-select',_vm._b({attrs:{\"null-option\":\"-\"},on:{\"input\":_vm.handleSelectInput}},'input-select',{ ..._vm.$props, value: _vm.selectValue, options: _vm.cookedOptions },false)),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.checkOther)?_c('input-text',{ref:\"otherText\",staticClass:\"w-100 mt-24\",attrs:{\"inner-label\":_vm.innerLabel,\"value\":_vm.otherValue,\"disabled\":_vm.disabled,\"maxlength\":_vm.maxlength},on:{\"input\":_vm.updateOtherValue,\"mounted\":_vm.focusOnOther}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./TermsAndConditions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./TermsAndConditions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TermsAndConditions.vue?vue&type=template&id=3b80708a\"\nimport script from \"./TermsAndConditions.vue?vue&type=script&lang=js\"\nexport * from \"./TermsAndConditions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\"},[_c('input-checkbox',{attrs:{\"value\":!!_vm.value},on:{\"input\":_vm.input}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.accept(TermsConditions)\")))+\"\\n  \\n \"),_c('button',{directives:[{name:\"anchor\",rawName:\"v-anchor\",value:('terms'),expression:\"'terms'\"}],class:_vm.$css(_vm.$theme.linkPrimary),on:{\"click\":function($event){$event.preventDefault();return _vm.showModal.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"common.termsAndConditions\"))+\"\\n \")])]),_vm._v(\" \"),_c('input-status',{attrs:{\"status\":_vm.status}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ValidatableForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ValidatableForm.vue?vue&type=script&lang=js\"","// translate validations rules into vuelidate valid keys and values\n// @todo negotiate a convention with backend to make\n// this less orthopedic\nexport function getValidators(rules, required) {\n // We need to create a copy of rules so we don't edit the original ones!\n const rulesCopy = rules.filter(Boolean)\n if (required) rulesCopy.push(\"required\")\n\n let validations = []\n for (let rule of rulesCopy) {\n if (rule == \"required\") {\n validations.push({ name: \"required\" })\n }\n\n if (/required_if:/.test(rule)) {\n validations.push({ name: \"requiredIf\", args: (fields) => {\n const [prop, val] = rule.split(\":\")[1].split(\",\")\n return fields[prop] == val\n }})\n }\n\n if (rule == \"email\") {\n validations.push({ name: \"email\" })\n }\n\n if (rule == \"url\") {\n validations.push({ name: \"url\" })\n }\n\n if (/max:/.test(rule)) {\n validations.push({ name: \"maxLength\", args: +rule.split(\":\")[1] })\n }\n\n if (/min:/.test(rule)) {\n validations.push({ name: \"minLength\", args: +rule.split(\":\")[1] })\n }\n }\n return validations\n}\n","import { render, staticRenderFns } from \"./ValidatableForm.vue?vue&type=template&id=47437374\"\nimport script from \"./ValidatableForm.vue?vue&type=script&lang=js\"\nexport * from \"./ValidatableForm.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"u-wrapper text-gray-medium bg-light d-flex rounded-sm position-relative\",class:[\n !_vm.disabled && !_vm.readonly ? 'cursor--pointer' : 'cursor--not-allowed',\n _vm.focused && 'is-focused',\n _vm.focused && _vm.$css(_vm.$theme.borderPrimary),\n _vm.borderStatus\n ]},[_c('div',{staticClass:\"p-12 u-spinner text-gray-dark\",attrs:{\"data-t\":\"spinner-down\"},on:{\"click\":_vm.down}},[_c('v-icon',{attrs:{\"name\":\"minus\",\"w\":20}})],1),_vm._v(\" \"),_c('input',{ref:\"input\",staticClass:\"p-12\",class:[_vm.borderStatus, _vm.$css(_vm.$theme.formControlPrimary)],attrs:{\"type\":\"number\",\"autocomplete\":_vm.autocomplete,\"autofocus\":_vm.autofocus,\"placeholder\":_vm.placeholder,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly,\"min\":_vm.min,\"max\":_vm.max,\"step\":_vm.step},domProps:{\"value\":_vm.value},on:{\"input\":_vm.input,\"focus\":_vm.focus,\"blur\":_vm.blur,\"click\":function($event){return _vm.$emit('click')}}}),_vm._v(\" \"),_c('div',{staticClass:\"p-12 u-spinner text-gray-dark\",attrs:{\"data-t\":\"spinner-up\"},on:{\"click\":_vm.up}},[_c('v-icon',{attrs:{\"name\":\"plus\",\"w\":20}})],1)]),_vm._v(\" \"),_c('input-status',{attrs:{\"status\":_vm.status}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputNumber.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputNumber.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputNumber.vue?vue&type=template&id=e9bae430&scoped=true\"\nimport script from \"./InputNumber.vue?vue&type=script&lang=js\"\nexport * from \"./InputNumber.vue?vue&type=script&lang=js\"\nimport style0 from \"./InputNumber.vue?vue&type=style&index=0&id=e9bae430&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e9bae430\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport { notify, leaveBreadcrumb } from \"~/lib/bugsnag\"\n\nconst DEFAULT_BLOCK_INSTANCE = {\n items: [],\n status: \"ready\", // ready | refreshing | error\n lastUpdate: new Date(0)\n}\n\n// Blocks won't be updated unless this time has passed from their last update.\n// TODO: Recover this feature once all elements in the store are normalized https://github.com/okn/prometeo/issues/3015\nconst REFRESH_THRESHOLD = 0 // 0 ms, it used to be 5 min\n\nexport const getters = {\n // Returns a space's blocks as an array.\n blocks: state => spaceId => {\n const space = state.spaces[spaceId]\n const blockIds = space?.description?.blockIds ?? []\n\n const blocks = []\n for (const blockId of blockIds) {\n const block = state.blocks[blockId]\n if (!block) {\n notify(`Coudn't find block: ${spaceId}/${blockId}`)\n }\n blocks.push(block)\n }\n return blocks\n }\n}\n\nexport default {\n namespaced: true,\n\n state: {\n links: [],\n spaces: {}, // spaceId => SpaceSate\n blocks: {} // blockId => BlockState\n },\n\n getters,\n\n mutations: {\n setLinks(state, links) {\n state.links = links\n },\n\n setSpacesFromDescriptions(state, spaceDescriptions) {\n for (let description of spaceDescriptions) {\n if (description.spaceId in state.spaces) {\n state.spaces[description.spaceId].description = description\n } else {\n Vue.set(state.spaces, description.spaceId, {\n description\n })\n }\n }\n },\n\n setBlocksFromDescriptions(state, blockDescriptions) {\n for (const description of blockDescriptions) {\n if (description.blockId in state.blocks) {\n state.blocks[description.blockId].description = description\n // TODO maybe we have to clean something here\n } else {\n Vue.set(state.blocks, description.blockId, Object.assign({}, DEFAULT_BLOCK_INSTANCE, { description }))\n }\n }\n },\n\n setBlockStatus(state, { blockId, status }) {\n const block = state.blocks[blockId]\n if (!block) {\n leaveBreadcrumb(state.blocks)\n throw new Error(`Block ${blockId} was not found when trying to set status ${status}`)\n }\n Vue.set(block, \"status\", status)\n },\n\n updateBlock(state, { blockId, block }) {\n const oldBlock = state.blocks[blockId]\n Vue.set(state.blocks, blockId, Object.assign({}, oldBlock, block))\n },\n\n updateItem(state, { item, blockId }) {\n const { key } = item._meta\n const block = state.blocks[blockId]\n const oldItem = block.items.find(i => i.value[key] === item[key])\n Object.assign(oldItem.value, item)\n },\n\n clearModule(state) {\n state.links = []\n state.spaces = {}\n state.blocks = {}\n }\n },\n\n actions: {\n async refreshStructure({ state, dispatch }) {\n if (state.links.length) {\n defaultCtx.fetchData(\"/structure\")\n .then((structure) => {\n dispatch(\"saveStructure\", structure)\n })\n return\n }\n const structure = await defaultCtx.fetchData(\"/structure\")\n dispatch(\"saveStructure\", structure)\n },\n\n saveStructure({ commit }, structure) {\n const { links, spaces, blocks, lists } = structure\n commit(\"setLinks\", links)\n commit(\"setBlocksFromDescriptions\", blocks)\n commit(\"setSpacesFromDescriptions\", spaces)\n for (const description of lists) {\n commit(\"lists/setDescription\", description, { root: true })\n }\n },\n\n refreshBlock({ state, commit, rootGetters }, { blockId, force=false }) {\n const block = state.blocks[blockId]\n if (!force && new Date() - block.lastUpdate < REFRESH_THRESHOLD) return\n\n const source = block.description.itemsSource\n if (!source) {\n throw new Error(`itemsSource of ${block.description.blockId} is not defined`)\n }\n switch (source.type) {\n case \"url\":\n commit(\"setBlockStatus\", { blockId, status: \"refreshing\" })\n defaultCtx.fetchData(source.url)\n .then(items => {\n commit(\"updateBlock\", {\n blockId,\n block: {\n status: \"ready\",\n items: items.map(item => ({ value: item, type: getItemType(item, source.itemsType) })),\n lastUpdate: new Date()\n }\n })\n }, () => {\n if (!rootGetters.currentUser) return // Trying to save the block status is worthless when the user is logged out\n commit(\"setBlockStatus\", { blockId, status: \"error\" })\n })\n break\n\n case \"static\":\n commit(\"updateBlock\", {\n blockId,\n block: {\n items: source.items,\n lastUpdate: new Date()\n }\n })\n break\n\n default:\n throw new Error(`Unknown item source type ${source.type}`)\n }\n }\n }\n}\n\nexport function getItemType(item, type) {\n if (typeof(type) == \"string\") return type\n const { map, prop } = type\n if (!(prop in item)) throw new Error(`Couldn't find '${prop}' in ${item}.`)\n const value = item[prop]\n if (!(value in map)) throw new Error(`No type defined for ${value}.`)\n return map[value]\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputSwitch.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputSwitch.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputSwitch.vue?vue&type=template&id=a27275a2&scoped=true\"\nimport script from \"./InputSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./InputSwitch.vue?vue&type=script&lang=js\"\nimport style0 from \"./InputSwitch.vue?vue&type=style&index=0&id=a27275a2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a27275a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('label',{staticClass:\"d-flex align-items-center mb-0\",class:_vm.cursorClass,on:{\"click\":_vm.change}},[_c('div',{staticClass:\"switch-container\",class:_vm.containerClass},[_c('div',{staticClass:\"switch-handle\"})]),_vm._v(\" \"),(_vm.title)?_c('span',{staticClass:\"text-gray-dark text-truncate pl-20\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import i18n from \"~/i18n\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport {\n buildQueryFilters,\n downloadResponseFile\n} from \"~/lib/utils\"\nimport { getStartEndDates } from \"~/modules/calendar/utils\"\nimport {\n addDateAndExtentionToFileName,\n listKeyToFileName,\n urlForDownload\n} from \"./utils\"\n\nfunction getDateFilters({ month, year, timeZone }) {\n const { startDate, endDate } = getStartEndDates({ month, year, timeZone })\n return buildQueryFilters({\n fromDate: startDate,\n toDate: endDate\n })\n}\n\nexport default class SupervisorService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n\n async getDashboard() {\n const dashboard = await this.$http.fetchData(\"supervisor/dashboard\")\n dashboard.charts.forEach(c => c.loading = true)\n return dashboard\n }\n\n async loadChart({ charts, title, url }) {\n if (charts.length) {\n return {\n charts: await Promise.all(charts.map(chart => this.loadChart(chart))),\n title\n }\n } else {\n return await this.$http.fetchData(url)\n }\n }\n\n getPanel() {\n return this.$http.fetchData(\"supervisor/panel\", {\n waitFor: \"supervisor/panel\"\n })\n }\n\n getCounters() {\n return this.$http.fetchData(\"supervisor/counters\", {\n waitFor: \"supervisor/counters\"\n })\n }\n\n async getProgram(programId) {\n return await this.$http.fetchData(`supervisor/training/${programId}`)\n }\n\n async getUserCall(userCallId) {\n return await this.$http.fetchData(`supervisor/user-calls/${userCallId}`)\n }\n\n async getProgramCharts(programId) {\n const { charts } = await this.$http.fetchData(`supervisor/training/${programId}/charts`)\n const result = await this.loadChart({ charts })\n return result.charts\n }\n\n async getParticipant(userId) {\n return await this.$http.fetchData(`supervisor/participants/${userId}`)\n }\n\n async getRequest(url, id) {\n return await this.$http.fetchData(`${url}/${id}`)\n }\n\n async getProgramsRecipients(target, type) {\n const mode = type.replace(\"supervisor-programs-\", \"\")\n return await this.$http.fetchData(`supervisor/training/${mode}/supervised`, {\n method: \"POST\",\n body: JSON.stringify({ target })\n })\n }\n\n async getSupervisedRecipients(target) {\n return await this.$http.fetchData(\"supervisor/participants/contact\", {\n method: \"POST\",\n body: JSON.stringify({ target })\n })\n }\n\n async getCallRecipients(target, type) {\n let programId = /\\d+/.exec(type)\n if (!programId) throw new Error(`programId not found for type=${type}`)\n programId = programId[0]\n return await this.$http.fetchData(`supervisor/training/${programId}/supervised`, {\n method: \"POST\",\n body: JSON.stringify({ target })\n })\n }\n\n async getSupervisedCharts(userId) {\n const { charts } = await this.$http.fetchData(`supervisor/participants/${userId}/charts`)\n const result = await this.loadChart({ charts })\n return result.charts[0]\n }\n\n async getSupervisedEvents(userId, { month, year, timeZone }) {\n const filterField = getDateFilters({ month, year, timeZone })\n let url = `supervisor/participants/${userId}/events`\n if (filterField) {\n url = `${url}?filter=${filterField}`\n }\n return await this.$http.fetchData(url)\n }\n\n async getActivityDetails({ userId, userActivityId }) {\n return await this.$http.fetchData(`supervisor/participants/${userId}/participant-activity/${userActivityId}`)\n }\n\n async getUserCallEvents({ userCallId, userId, month, year, timeZone }) {\n const filterField = getDateFilters({ month, year, timeZone })\n let url = `supervisor/participants/${userId}/events/${userCallId}`\n if (filterField) {\n url = `${url}?filter=${filterField}`\n }\n return await this.$http.fetchData(url)\n }\n\n async editRequests(type, payload) {\n const segment = type.split(\"-\")[1]\n const url = `supervisor/requests/${segment}/updateRequests`\n return await this.$http.fetchData(url, {\n method: \"POST\",\n body: JSON.stringify(payload)\n })\n }\n\n async download({ type, payload, fileName, onNotification }) {\n fileName = fileName\n ? addDateAndExtentionToFileName({\n fileName,\n extension: \"csv\"\n })\n : listKeyToFileName(type)\n const url = urlForDownload(type)\n const response = await this.$http.fetch(url, {\n method: \"POST\",\n body: JSON.stringify(payload)\n })\n this._handleDownloadResponse({ response, fileName, onNotification })\n }\n\n async downloadMonitoringReport({ callFromDate, programs, unitBreakdown, onNotification }) {\n let url = \"supervisor/participants/monitoringReport\"\n const fileName = listKeyToFileName('monitoring-report')\n const filterValues = {}\n \n if (callFromDate) {\n filterValues.callFromDate = {\n start: callFromDate.toISOString()\n }\n }\n if (programs?.length > 0) {\n filterValues.programs = programs\n }\n const filterDescriptions = [\n { prop: \"callFromDate\", type: \"date\" },\n { prop: \"programs\", type: \"multi-select\" }\n ]\n const query = buildQueryFilters(filterValues, filterDescriptions)\n if (query) {\n url = `${url}?filter=${query}`\n }\n \n const response = await this.$http.fetch(url, {\n method: \"POST\",\n body: JSON.stringify({ unitBreakdown })\n })\n this._handleDownloadResponse({ response, fileName, onNotification })\n }\n\n async downloadUserRecord({ userId, format, fileName, onNotification }) {\n const url = `supervisor/participants/${userId}/record/download/${format}`\n const response = await this.$http.fetch(url)\n this._handleDownloadResponse({ response, fileName, onNotification })\n }\n\n async _handleDownloadResponse({ response, fileName, onNotification }) {\n if (!response.ok) {\n throw new Error(i18n.t(\"errors.undefinedError\"))\n }\n\n const contentType = response.headers.get(\"Content-Type\")\n if (contentType === \"application/json\") {\n // This means the download is done using workers\n // so we just show a notification informing the user about it\n const { data: [message] } = await response.json()\n onNotification(message)\n } else {\n downloadResponseFile({ response, fileName, t: i18n.t.bind(i18n) })\n }\n }\n\n async signUp({ included, excluded, filter, groups }) {\n return await this.$http.fetchData(\"/supervisor/sign-up\", {\n method: \"POST\",\n body: JSON.stringify({\n target: {\n included,\n excluded,\n filter\n },\n groups\n })\n })\n }\n}\n","export default class DoubleMap {\n constructor() {\n this.store = new Map()\n }\n\n set(k1, k2, value) {\n if (!this.store.has(k1)) {\n this.store.set(k1, new Map())\n }\n this.store.get(k1).set(k2, value)\n }\n\n get(k1, k2) {\n if (this.store.has(k1)) {\n return this.store.get(k1).get(k2)\n } else {\n return undefined\n }\n }\n\n delete(k1, k2) {\n if (this.store.has(k1)) {\n this.store.get(k1).delete(k2)\n if (this.store.get(k1).size === 0) {\n this.store.delete(k1)\n }\n }\n }\n}\n","import maxBy from \"lodash/maxBy\"\nimport uniqueId from \"lodash/uniqueId\"\n\nimport DoubleMap from \"~/lib/DoubleMap\"\n\n/**\n * ┌───────────┐┌───────────┐┌───────────┐\n * │ topLeft ││ top ││ topRight │\n * └───────────┘└───────────┘└───────────┘\n * ┌───┐ ┌───┐ ┌───┐\n * │REF│ │REF│ │REF│\n * └───┘ └───┘ └───┘\n *\n * ┌───────────┐ ┌───────────┐\n * │ │ │ │\n * │ │ │ │\n * │leftBottom │ │rightBottom│\n * │ │┌───┐ ┌───┐│ │\n * │ ││REF│ │REF││ │\n * └───────────┘└───┘ └───┘└───────────┘\n * ┌───────────┐ ┌───────────┐\n * │ │ │ │\n * │ │┌───┐ ┌───┐│ │\n * │ left ││REF│ │REF││ right │\n * │ │└───┘ └───┘│ │\n * │ │ │ │\n * └───────────┘ └───────────┘\n * ┌───────────┐┌───┐ ┌───┐┌───────────┐\n * │ ││REF│ │REF││ │\n * │ │└───┘ └───┘│ │\n * │ leftTop │ │ rightTop │\n * │ │ │ │\n * │ │ │ │\n * └───────────┘ └───────────┘\n *\n * ┌───┐ ┌───┐ ┌───┐\n * │REF│ │REF│ │REF│\n * └───┘ └───┘ └───┘\n * ┌───────────┐┌───────────┐┌───────────┐\n * │bottomRight││ bottom ││bottomLeft │\n * └───────────┘└───────────┘└───────────┘\n */\nconst PREDEFINED_POSITIONS = {\n topLeft: {\n absOffset: [0, -10],\n refOffset: [0, 0],\n popOffset: [0, 1]\n },\n top: {\n absOffset: [0, -10],\n refOffset: [0.5, 0],\n popOffset: [0.5, 1]\n },\n topRight: {\n absOffset: [0, -10],\n refOffset: [1, 0],\n popOffset: [1, 1]\n },\n\n bottomLeft: {\n absOffset: [0, 10],\n refOffset: [0, 1],\n popOffset: [0, 0]\n },\n bottom: {\n absOffset: [0, 10],\n refOffset: [0.5, 1],\n popOffset: [0.5, 0]\n },\n bottomRight: {\n absOffset: [0, 10],\n refOffset: [1, 1],\n popOffset: [1, 0]\n },\n\n rightTop: {\n absOffset: [10, 0],\n refOffset: [1, 0],\n popOffset: [0, 0]\n },\n right: {\n absOffset: [10, 0],\n refOffset: [1, 0.5],\n popOffset: [0, 0.5]\n },\n rightBottom: {\n absOffset: [10, 0],\n refOffset: [1, 1],\n popOffset: [0, 1]\n },\n\n leftTop: {\n absOffset: [-10, 0],\n refOffset: [0, 0],\n popOffset: [1, 0]\n },\n left: {\n absOffset: [-10, 0],\n refOffset: [0, 0.5],\n popOffset: [1, 0.5]\n },\n leftBottom: {\n absOffset: [-10, 0],\n refOffset: [0, 1],\n popOffset: [1, 1]\n }\n}\n\nconst DEFAULT_CANDIDATES = [\"left\", \"right\", \"top\", \"bottom\"]\n\nexport function getBiggestAvailableSpace(rect, viewport, candidates=DEFAULT_CANDIDATES) {\n const { top, left, width, height } = rect\n\n const {\n width: vw,\n height: vh\n } = viewport\n\n const right = left + width\n const bottom = top + height\n\n const positions = [\n { position: \"topLeft\", width: vw-left, height: top },\n { position: \"top\", width: vw, height: top },\n { position: \"topRight\", width: right, height: top },\n\n { position: \"bottomLeft\", width: vw-left, height: vh-bottom },\n { position: \"bottom\", width: vw, height: vh-bottom },\n { position: \"bottomRight\", width: right, height: vh-bottom },\n\n { position: \"leftTop\", width: left, height: vh-top },\n { position: \"left\", width: left, height: vh },\n { position: \"leftBottom\", width: left, height: bottom },\n\n { position: \"rightTop\", width: vw-right, height: vh-top },\n { position: \"right\", width: vw-right, height: vh },\n { position: \"rightBottom\", width: vw-right, height: bottom }\n ].filter(({ position }) => candidates.includes(position))\n\n return maxBy(positions, ({ width, height }) => width * height)\n}\n\nexport const DEFAULTS = {\n xPadding: 16, // px\n yPadding: 16, // px\n\n ...PREDEFINED_POSITIONS.bottomLeft\n}\n\n// typeof Anchor = {\n// el: Element\n// }\n//\n// typeof Pop = {\n// id: Return\n// name: string\n// component: Component\n// anchor: Anchor\n// restoreFocusEl?: Element\n// modalMode: boolean\n// props: object\n// listeners: object\n// focus: boolean\n// onWheelOutside: (event: Event) => void\n// onClickOutside: (event: Event) => void\n// onEscape: (event: Event) => void\n// onClose: () => void\n// absOffset: [number, number]\n// refOffset: [number, number]\n// popOffset: [number, number]\n// xClamp: boolean\n// yClamp: boolean\n// xPadding: number\n// yPadding: number\n// }\n\nexport default {\n install(Vue) {\n const anchors = new DoubleMap() // DoubleMap\n const popups = Vue.observable({ pops: [] }) // { pops: Pop[] }\n\n /**\n * A reference to the store of all popups\n */\n Object.defineProperty(Vue.prototype, \"$popups\", {\n get() { return popups }\n })\n\n /**\n * Checks if there's currently a popup in the given context\n * (i.e. the current component) for the anchor named `name`.\n */\n Vue.prototype.$thereIsPopUp = function thereIsPopUp(name) {\n const anchor = anchors.get(this, name)\n if (!anchor) return false\n return popups.pops.some(p => p.anchor === anchor)\n }\n\n /**\n * Shows a `component` as a popup for a reference element given by the anchor `name`.\n * Can have the following options:\n *\n * * props: Props to pass to the component.\n * * on: Listeners to pass to the component.\n * * focus: Give focus to the popup, keep it inside and restore it when closed.\n * * onClickOutside: A function to be called when clicking outside the popup.\n * Defaults to removing the popup.\n * You probably want to use `onClose`.\n * * onEscape: A function to be called when pressing Escape.\n * Defaults to removing the popup.\n * You probably want to use `onClose`.\n * * onWheelOutside: A function to be called when wheeling outside the popup.\n * Defaults to doing nothing.\n * * onClose: A function to be called when the popup is closed.\n * * absOffset: Move the reference anchor point by this amount.\n * * refOffset: Move the reference anchor point by this amount.\n * (normalized with respect to reference element size)\n * * popOffset: Move the popup anchor point by this amount.\n * (normalized with respect to popup element size)\n * * position: A string or string array that aliases some common combinations\n * of absOffset, refOffset and popOffset to position the popup\n * relative to its anchor.\n * * xClamp: Don't allow the popup to exit the viewport on x axis.\n * * yClamp: Don't allow the popup to exit the viewport on y axis.\n * * {x,y}Padding If clamping, add this padding to viewport.\n */\n Vue.prototype.$pushPopUp = function showPopUp(component, name, options={}) {\n const anchor = anchors.get(this, name)\n if (!anchor) throw new Error(`Couldn't find anchor: ${name}`)\n\n const positions = options.position ? Array.isArray(options.position) ? options.position : [options.position] : [\"bottomLeft\"]\n const offsets = positions.map(position => ({\n absOffset: options.absOffset ?? PREDEFINED_POSITIONS[position].absOffset,\n refOffset: options.refOffset ?? PREDEFINED_POSITIONS[position].refOffset,\n popOffset: options.popOffset ?? PREDEFINED_POSITIONS[position].popOffset\n }))\n\n popups.pops.push({\n id: uniqueId(),\n name,\n component,\n anchor,\n restoreFocusEl: document.activeElement,\n modalMode: options.modalMode ?? false,\n props: options.props,\n listeners: options.on,\n focus: options.focus ?? true,\n onWheelOutside: options.onWheelOutside ?? (() => {}),\n onClickOutside: options.onClickOutside ?? ((event) => {\n event.stopPropagation()\n if (anchor.el.contains(event.target)) return\n this.$popPopUp(name)\n }),\n onEscape: options.onEscape ?? ((event) => {\n event.stopPropagation()\n this.$popPopUp(name)\n }),\n onClose: options.onClose,\n\n offsets,\n xClamp: options.xClamp ?? true,\n yClamp: options.yClamp ?? false,\n xPadding: options.xPadding ?? DEFAULTS.xPadding, // px\n yPadding: options.yPadding ?? DEFAULTS.yPadding // px\n })\n }\n\n /**\n * Removes the component associated to the anchor `name`, if any.\n */\n Vue.prototype.$popPopUp = function popPopUp(name) {\n const anchor = anchors.get(this, name)\n if (!anchor) return\n\n const idx = popups.pops.findIndex(p => p.anchor === anchor)\n if (idx === -1) return\n\n const pop = popups.pops[idx]\n Vue.delete(popups.pops, idx)\n\n pop.onClose?.()\n if (pop.focus) {\n this.$nextTick(() => {\n // Do this after the pop-up has been destroyed,\n // so its focus handler doesn't kick in.\n pop.restoreFocusEl?.focus()\n })\n }\n }\n\n /**\n * Conmutes between showing or hiding the given popup.\n */\n Vue.prototype.$togglePopUp = function togglePopUp(component, name, options) {\n if (this.$thereIsPopUp(name)) {\n this.$popPopUp(name)\n } else {\n this.$pushPopUp(component, name, options)\n }\n }\n\n /**\n * Usage:
\n *\n * Associates a name to an element, to be able to use it as an anchor for a popup component.\n */\n Vue.directive(\"anchor\", {\n inserted(el, { value }, vnode) {\n anchors.set(vnode.context, value, { el })\n },\n\n update(el, { value, oldValue }, vnode, oldVnode) {\n if (value === oldValue) {\n const anchor = anchors.get(oldVnode.context, value)\n anchor.el = el\n anchors.delete(oldVnode.context, value)\n anchors.set(vnode.context, value, anchor)\n } else {\n const oldAnchor = anchors.get(vnode.context, oldValue)\n if (oldAnchor) {\n popups.pops = popups.pops.filter(p => p.anchor !== oldAnchor)\n }\n anchors.set(vnode.context, value, { el })\n }\n },\n\n unbind(el, { value }, vnode) {\n const anchor = anchors.get(vnode.context, value)\n if (anchor) {\n popups.pops = popups.pops.filter(p => p.anchor !== anchor)\n }\n anchors.delete(vnode.context, value)\n }\n })\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"embed-responsive embed-responsive-16by9\",on:{\"keyup\":_vm.keyup}},[_c('div',{staticClass:\"embed-responsive-item\",attrs:{\"id\":_vm.id}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./_YoutubePlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./_YoutubePlayer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./_YoutubePlayer.vue?vue&type=template&id=b890044a\"\nimport script from \"./_YoutubePlayer.vue?vue&type=script&lang=js\"\nexport * from \"./_YoutubePlayer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import YoutubePlayer from \"./_YoutubePlayer\"\n\nexport default () => new Promise(resolve => {\n window.onYouTubeIframeAPIReady = resolve\n const tag = document.createElement(\"script\")\n tag.src = \"https://www.youtube.com/iframe_api\"\n document.body.appendChild(tag)\n})\n.then(() => YoutubePlayer)\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"position-relative\",class:_vm.disabled && 'cursor--not-allowed opacity--50'},[_c('v-date-picker',{key:_vm.key,class:_vm.disabled && 'pointer-events-none',attrs:{\"input-props\":{ class: _vm.inputClasses, style: 'height: 52px;' },\"mode\":_vm.mode,\"popover-direction\":_vm.needsBottomMargin ? 'top' : 'bottom',\"popover-visibility\":\"focus\",\"value\":_vm.value,\"disabled-dates\":_vm.disabled,\"max-date\":_vm.maxDate,\"min-date\":_vm.minDate,\"tint-color\":_vm.primaryColor,\"show-day-popover\":false,\"update-on-input\":true},on:{\"input\":_vm.input,\"popover-did-disappear\":_vm.refreshInput}}),_vm._v(\" \"),_c('v-icon',{staticClass:\"left ml-12 text-gray-dark abs-center-y position-absolute\",attrs:{\"name\":\"calendar-alt\",\"w\":20}}),_vm._v(\" \"),(_vm.showErase)?_c('button-link',{staticClass:\"right mr-12 abs-center-y position-absolute\",attrs:{\"icon\":\"close\",\"icon-size\":20,\"disabled\":_vm.disabled,\"theme\":\"primary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.erase.apply(null, arguments)}}}):_vm._e(),_vm._v(\" \"),(_vm.innerLabel)?_c('div',{staticClass:\"position-absolute top left text-gray-dark pointer-events-none text-truncate overflow-hidden w-100 font--12 lh--16 pt-8 pl-44\",class:_vm.labelClass},[_vm._v(\"\\n \"+_vm._s(_vm.innerLabel)+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('input-status',{attrs:{\"status\":_vm.status}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./_InputDate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./_InputDate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./_InputDate.vue?vue&type=template&id=31af65fc\"\nimport script from \"./_InputDate.vue?vue&type=script&lang=js\"\nexport * from \"./_InputDate.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import InputDate from \"./_InputDate\"\n\nexport default async () => {\n await import(/* webpackChunkName: 'v-calendar' */ \"~/lib/vCalendar\")\n return InputDate\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport default class CommunicationService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n\n async getTools() {\n return await this.$http.fetchData(\"/communication-tools\")\n }\n\n async getChannels() {\n return await this.$http.fetchData(\"/communication-channels\")\n }\n\n async getPost(postId) {\n return await this.$http.fetchData(`/communication-posts/${postId}`)\n }\n\n async access(userActivityId) {\n return await this.$http.fetchData(`/participant-activity/${userActivityId}`)\n }\n}","export default __webpack_public_path__ + \"images/lms_lms.svg?7eb95e62\";","export default __webpack_public_path__ + \"images/lms_communication.svg?d0e6f933\";","export default __webpack_public_path__ + \"images/lms_community.svg?e8670858\";","export default __webpack_public_path__ + \"images/general_library.svg?3aaf087b\";","export default __webpack_public_path__ + \"images/my_documents.svg?acdcfbc1\";","export default __webpack_public_path__ + \"images/library_default.svg?72cd8a0a\";","import { defaultCtx } from \"~/lib/AjaxCtx\"\nimport pick from \"lodash/pick\"\n\nexport default class ProfileService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n\n updatePassword(newPassword, repeatNewPassword, currentPassword) {\n return this.$http.fetchData(\"/profile/password\", {\n method: \"PUT\",\n body: JSON.stringify({\n newPassword,\n repeatNewPassword,\n currentPassword\n })\n })\n }\n\n /**\n * This request includes validation of required fields\n * @param Object user\n * @returns Object\n */\n async updateProfile(user) {\n return await this.$http.fetchData(\"/profile\", {\n method: \"PUT\",\n body: JSON.stringify(user)\n })\n }\n\n /**\n * This request doesn't include validation of required fields\n * it's intended only for changing one field at a time (language, timezone...)\n * @param Object user\n * @returns Object\n */\n async updateProfileAttribute(user) {\n return await this.$http.fetchData(\"/profile\", {\n method: \"PATCH\",\n body: JSON.stringify(user)\n })\n }\n\n async updateAvatar(fileHash) {\n return await this.$http.fetchData('/profile/avatar', {\n method: \"PUT\",\n body: JSON.stringify({\n fileHash\n })\n })\n }\n\n async removeAvatar() {\n return await this.$http.fetchData('/profile/avatar', {\n method: \"PUT\",\n body: JSON.stringify({\n fileHash: null\n })\n })\n }\n\n async getEditableFields() {\n return await this.$http.fetchData(\"/profile\", { method: \"OPTIONS\" })\n }\n\n async getCredits(year) {\n if (!year) {\n throw new Error(`Field year is required in order to get the credits`)\n }\n return await this.$http.fetchData(`profile/userCredits/${year}`)\n }\n\n async getPeriod({ year, periodId, cursor }) {\n let url = `/profile/userCredits/${year}/${periodId}`\n if (cursor) {\n url += `?cursor=${cursor}`\n }\n return await this.$http.fetchAPI(url)\n }\n\n async getResumeData() {\n return await this.$http.fetchData(\"/profile/experience\")\n }\n\n async getResumeEditFormFields(code) {\n const formFields = await this.$http.fetchData(`/profile/experience/${code}`, { method: \"OPTIONS\" })\n return formFields.map((field) => {\n const rules = field.rules || []\n if (field.required || rules.some(r => /required_if:/.test(r))) {\n if (field.placeholder) field.placeholder = `*${field.placeholder}`\n if (field.innerLabel) field.innerLabel = `*${field.innerLabel}`\n }\n if ([\"date\", \"daterange\"].includes(field.type)) {\n field.innerLabel = field.placeholder\n }\n return field\n })\n }\n\n async editResumeItem(code, formData) {\n if (formData.attachment) {\n formData.attachment = pick(formData.attachment, \"name\", \"fileHash\")\n }\n const method = formData.userFormationId ? \"PUT\" : \"POST\"\n return await this.$http.fetchData(`profile/experience/${code}`, {\n method,\n body: JSON.stringify(formData)\n })\n }\n\n async getFormation(query) {\n const url = query ? `/profile/training?${query}` : \"/profile/training\"\n return await this.$http.fetchAPI(url)\n }\n\n /**\n * External Training Requests\n */\n\n async getExternalTrainingRequests({ query, cursor }) {\n let url = \"externalFormation/userRequests\"\n if (query || cursor) {\n url += \"?\"\n }\n if (query) {\n url += `${query}`\n }\n if (query && cursor) {\n url += \"&\"\n }\n if (cursor) {\n url += `cursor=${cursor}`\n }\n return await this.$http.fetchAPI(url)\n }\n\n async getExternalTrainingRequest(request) {\n const { userRequestId } = request\n return await this.$http.fetchData(`externalFormation/userRequests/${userRequestId}`)\n }\n\n async editExternalTrainingRequest(request) {\n const method = request.userRequestId ? \"PUT\" : \"POST\"\n return await this.$http.fetchData(\"externalFormation\", {\n method,\n body: JSON.stringify(request)\n })\n }\n\n async getExternalTrainingFormFields() {\n return await this.$http.fetchData(\"externalFormation\", { method: \"OPTIONS\" })\n }\n\n async getMyDossierData() {\n const { blocks } = await this.$http.fetchData(\"profile/userDetails\")\n return blocks\n }\n\n async getAttachedResume() {\n return await this.$http.fetchData(\"profile/userCV\")\n }\n\n async deleteResume() {\n return await this.$http.fetchData(\"profile/userCV\", {\n method: \"DELETE\"\n })\n }\n\n async uploadResume(file) {\n file = pick(file, \"name\", \"fileHash\", \"extension\")\n return await this.$http.fetchData(\"profile/userCV\", {\n method: \"POST\",\n body: JSON.stringify(file)\n })\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\"},[_c('textarea',{ref:\"textarea\",staticClass:\"d-block font--16 lh--20 p-12 w-100 rounded-sm text-dark\",class:[ _vm.borderClass, _vm.$css(_vm.$theme.formControlPrimary), _vm.textTopClass ],style:(_vm.textareaStyle),attrs:{\"placeholder\":_vm.cookedPlaceholder,\"readonly\":_vm.readonly,\"disabled\":_vm.disabled,\"maxlength\":_vm.maxlength},domProps:{\"value\":_vm.value},on:{\"input\":_vm.input,\"focus\":_vm.focus,\"blur\":_vm.blur}}),_vm._v(\" \"),(_vm.innerLabel)?_c('div',{staticClass:\"position-absolute top left bg-light my-1 mx-2 transition-ease-out transition-duration-25 text-gray-dark pointer-events-none d-inline-block text-truncate\",class:_vm.labelClass,staticStyle:{\"transition-property\":\"font-size, padding-top, padding-bottom\",\"width\":\"calc(100% - 4px)\"}},[_vm._v(\"\\n \"+_vm._s(_vm.innerLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('input-status',{attrs:{\"status\":_vm.status}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputTextarea.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputTextarea.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputTextarea.vue?vue&type=template&id=e411b3f6&scoped=true\"\nimport script from \"./InputTextarea.vue?vue&type=script&lang=js\"\nexport * from \"./InputTextarea.vue?vue&type=script&lang=js\"\nimport style0 from \"./InputTextarea.vue?vue&type=style&index=0&id=e411b3f6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e411b3f6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('label',{staticClass:\"d-flex font--16 lh--20 mb-0 position-relative\",class:_vm.labelClass,attrs:{\"for\":_vm.id}},[_c('input',{staticClass:\"p-0 opacity--0 position-absolute\",attrs:{\"id\":_vm.id,\"disabled\":_vm.disabled,\"type\":\"radio\"},domProps:{\"checked\":_vm.value},on:{\"change\":_vm.input}}),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-8\",class:_vm.iconColorClass,attrs:{\"name\":_vm.value ? 'radiobutton-check' : 'radiobutton-empty',\"w\":22}}),_vm._v(\" \"),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputRadio.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputRadio.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./InputRadio.vue?vue&type=template&id=0a694d80\"\nimport script from \"./InputRadio.vue?vue&type=script&lang=js\"\nexport * from \"./InputRadio.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import DEFAULT_I18N from \"~/i18n\"\nimport { POLL_QUESTION_TYPES } from \"~/lib/constants\"\nimport { numberToLetter as DEFAULT_NUMBER_TO_LETTER } from \"~/lib/utils\"\n\nexport class Question {\n constructor({ question, rightAnswer, numberToLetter, i18n }) {\n this.numberToLetter = numberToLetter || DEFAULT_NUMBER_TO_LETTER\n this.i18n = i18n || DEFAULT_I18N\n this.question = question\n this.rightAnswer = rightAnswer\n }\n\n setQuestion(question) {\n Object.assign(this.question, question)\n }\n\n setQuestionCode(code) {\n this.question.code = code\n }\n\n setRightAnswer(rightAnswer) {\n this.rightAnswer = rightAnswer\n }\n\n isScorable() {\n if (!POLL_QUESTION_TYPES.includes(this.question.code)) {\n throw new Error(`code ${this.question.code} is not supported`)\n }\n\n switch (this.question.code) {\n case \"FreeTextOptional\":\n case \"FreeTextOpinion\":\n case \"Range\":\n return false\n case \"FreeTextManual\":\n case \"FreeTextEvaluable\":\n case \"RangeManual\":\n case \"TrueOrFalse\":\n case \"YesOrNo\":\n case \"MultipleChoice\":\n case \"MultipleChoiceManual\":\n case \"OneChoice\":\n case \"JoinArrows\":\n case \"Order\":\n return true\n default:\n throw new Error(`code ${this.question.code} has no defined scorable status`)\n }\n }\n\n getTip() {\n if (!POLL_QUESTION_TYPES.includes(this.question.code)) {\n throw new Error(`code ${this.question.code} is not supported`)\n }\n\n switch (this.question.code) {\n case \"FreeTextManual\":\n case \"FreeTextEvaluable\":\n case \"RangeManual\":\n return this.i18n.t(\"common.scorableAnswer\")\n case \"FreeTextOptional\":\n case \"FreeTextOpinion\":\n case \"TrueOrFalse\":\n case \"YesOrNo\":\n case \"Range\":\n return \"\"\n case \"MultipleChoice\":\n case \"MultipleChoiceManual\":\n return this.i18n.t(\"common.multipleAnswer\")\n case \"OneChoice\":\n return this.i18n.t(\"common.uniqueAnswer\")\n case \"JoinArrows\":\n return this.i18n.t(\"common.sortTheRightColumn\")\n case \"Order\":\n return this.i18n.t(\"common.sortTheList\")\n\n default:\n throw new Error(`code ${this.question.code} has no defined tip`)\n }\n }\n\n getCookedRightAnswer() {\n if (!this.rightAnswer) {\n return null\n }\n\n if (!POLL_QUESTION_TYPES.includes(this.question.code)) {\n throw new Error(`code ${this.question.code} is not supported`)\n }\n\n switch (this.question.code) {\n case \"FreeTextManual\":\n case \"FreeTextEvaluable\":\n case \"FreeTextOptional\":\n case \"MultipleChoiceManual\":\n case \"Range\":\n case \"RangeManual\":\n return null\n\n case \"JoinArrows\":\n return this.getMatchCookedRightAnswer()\n\n case \"Order\":\n return this.getSortCookedRightAnswer()\n\n case \"MultipleChoice\":\n return this.getMultipleChoiceCookedRightAnswer()\n\n case \"OneChoice\":\n return this.getSingleChoiceCookedRightAnswer()\n\n case \"TrueOrFalse\":\n case \"YesOrNo\":\n return this.i18n.t(`common.${this.rightAnswer}`)\n\n default:\n throw new Error(`questionType ${this.question.code} has no defined rightAnswer`)\n }\n }\n\n getMatchCookedRightAnswer() {\n const isOnlyText = itOnlyHasText(this.question.choices.left) && itOnlyHasText(this.question.choices.right)\n let rightAnswer = []\n for (const answer of this.rightAnswer) {\n const indexLeft = this.question.choices.left.findIndex(op => op.text === answer.id)\n const indexRight = this.question.choices.right.findIndex(op => op.text === answer.value)\n const leftItem = isOnlyText ? this.question.choices.left[indexLeft].text : indexLeft + 1\n const rightItem = isOnlyText ? this.question.choices.right[indexRight].text : this.numberToLetter(indexRight)\n rightAnswer.push(`${leftItem} ${this.i18n.t(\"common.with\")} ${rightItem}`)\n }\n return rightAnswer\n }\n\n getSortCookedRightAnswer() {\n const isOnlyText = itOnlyHasText(this.question.choices)\n const answer = this.rightAnswer.map(a => {\n const index = this.question.choices.findIndex(c => c.text === a.value)\n a.letter = isOnlyText ? a.value : this.numberToLetter(index)\n return a\n }).sort((a, b) => {\n if (a.id > b.id) {\n return 1\n } else if (a.id < b.id) {\n return -1\n } else {\n return 0\n }\n })\n return answer.map(a => a.letter)\n }\n\n getMultipleChoiceCookedRightAnswer() {\n const isOnlyText = itOnlyHasText(this.question.choices)\n if (isOnlyText) {\n return this.rightAnswer.filter(a => a.value).map(a => a.id)\n }\n const answer = this.rightAnswer.map((a, i) => {\n a.letter = this.numberToLetter(i)\n return a\n })\n return answer.filter(a => a.value).map(a => a.letter)\n }\n\n getSingleChoiceCookedRightAnswer() {\n const isOnlyText = itOnlyHasText(this.question.choices)\n if (isOnlyText) {\n return this.rightAnswer.find(a => a.value).id\n } else {\n const index = this.rightAnswer.findIndex(a => a.value)\n if (index === -1) return\n return this.numberToLetter(index)\n }\n }\n}\n\n/**\n * Returns if a question has automatic correction or not\n * @param {String} questionCode\n */\nexport function hasAutomaticCorrection(questionCode) {\n if (!POLL_QUESTION_TYPES.includes(questionCode)) {\n throw new Error(`code ${questionCode} is not supported`)\n }\n\n switch (questionCode) {\n case \"OneChoice\":\n case \"MultipleChoice\":\n case \"Order\":\n case \"YesOrNo\":\n case \"TrueOrFalse\":\n case \"JoinArrows\":\n return true\n case \"MultipleChoiceManual\":\n case \"FreeTextOpinion\":\n case \"FreeTextManual\":\n case \"FreeTextEvaluable\":\n case \"Range\":\n case \"RangeManual\":\n return false\n default:\n return false\n }\n}\n\n/**\n * It merges the arrays localAnswers and remoteAnswers overwriting the value stored\n * in remoteAnswers if there is any answer in localAnswers containing the same questionId\n * @param {array} remoteAnswers\n * @param {array} localAnswers\n */\n\nexport function mergeAnswers(remoteAnswers, localAnswers) {\n if (!remoteAnswers || !remoteAnswers.length) {\n throw new Error(\"Not defined remote answer\")\n }\n\n if (!localAnswers || !localAnswers.length) {\n return remoteAnswers\n }\n\n return remoteAnswers.map(ra => {\n const localAnswer = localAnswers.find(la => la.questionId === ra.questionId)\n return localAnswer || ra\n })\n}\n\n/**\n * It checks if the array of choices has only text options\n * @param {array} choices\n */\nexport function itOnlyHasText(choices) {\n return choices.every(c => c.type == \"text\")\n}\n\n/**\n * It returns the assigned icon for each status\n * @param {string} status\n */\nexport function getIconFromStatus(status) {\n const STATUS_SUCCESS = \"success\"\n const STATUS_FAIL = \"danger\"\n const STATUS_PENDING_CORRECTION = \"warning\"\n const STATUS_INFO = \"gray-dark\"\n const ICON_SUCCESS = \"radiobutton-check-line\"\n const ICON_FAIL = \"radiobutton-cross-line\"\n const ICON_PENDING_CORRECTION = \"stopwatch\"\n const ICON_INFO = \"info\"\n\n switch (status) {\n case STATUS_SUCCESS:\n return ICON_SUCCESS\n case STATUS_FAIL:\n return ICON_FAIL\n case STATUS_PENDING_CORRECTION:\n return ICON_PENDING_CORRECTION\n case STATUS_INFO:\n return ICON_INFO\n default:\n throw new Error(`Status ${status} has no defined icon`)\n }\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\n\nexport default class PresentialService {\n constructor(ctx) {\n this.$http = ctx || defaultCtx\n }\n\n async pushAttendToEvent(eventId, eventConfirm) {\n return await this.$http.fetchData(`/events/${eventId}/changeAttendance`, {\n method: \"PATCH\",\n body: JSON.stringify({ eventConfirm })\n })\n }\n\n async attendees(eventId, limit) {\n const url = `/events/${eventId}/mates` + (limit ? `?limit=${limit}` : \"\")\n return await this.$http.fetchData(url)\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('input-text',_vm._g(_vm._b({attrs:{\"type\":_vm.visible ? 'text' : 'password'},scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_vm._t(\"left\")]},proxy:true},{key:\"right\",fn:function(){return [_c('button-link',{attrs:{\"aria-label\":_vm.ariaLabel,\"theme\":\"gray-dark\",\"icon\":_vm.visible ? 'eye-slash' : 'eye-full',\"icon-size\":20,\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleVisibility.apply(null, arguments)}}})]},proxy:true}],null,true)},'input-text',_vm.$attrs,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputPassword.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputPassword.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./InputPassword.vue?vue&type=template&id=320b56b1\"\nimport script from \"./InputPassword.vue?vue&type=script&lang=js\"\nexport * from \"./InputPassword.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport SocialService from \"~/components/social/SocialService\"\nimport * as DEFAULT_I18N from \"~/i18n\"\nimport {\n ellipsis, ucfirst\n} from \"~/lib/utils\"\nimport CommunicationService from \"./CommunicationService\"\n\n// In this list we store the default URL to use to list the posts. It includes the query with the default sorting and filters to be used in all lists\nexport const DEFAULT_COMMUNICATION_LIST_ID = \"posts\"\n\nexport function getListId(channelId) {\n return channelId !== null ? `communication-${channelId}-posts` : \"communication-all-posts\"\n}\n\nfunction getUrl(channelId, query=\"\") {\n const url = channelId !== null ? `/communication-channels/${channelId}/posts` : \"/communication-posts\"\n if (query) {\n return `${url}?${query}`\n } else {\n return url\n }\n}\n\nexport const getters = {\n getPost: (_state, _getters, rootState) => ({ postId }) => {\n const instance = rootState.lists.instances[getListId(null)]\n if (!instance) return null\n return instance.items.find(p => p.postId === postId)\n },\n\n getPosts: (_state, _getters, rootState) => ({ channelId=null }) => {\n const instance = rootState.lists.instances[getListId(channelId)]\n if (!instance) return []\n return instance.items\n },\n\n getChannels: (state) => {\n return state.channels\n },\n\n getTools: (state) => ({ channelId=null }) => {\n if (!state.tools || state.tools.length == 0) {\n return []\n }\n if (channelId === null) {\n return state.tools\n }\n return state.tools.filter(tool => tool.channelId === channelId)\n },\n\n query: (_state, _getters, rootState) => ({ channelId=null }) => {\n const listId = getListId(channelId)\n const instance = rootState.lists.instances[listId]\n return instance?.filters?.free_search ?? \"\"\n }\n}\n\nexport const mutations = {\n setChannels(state, { channels }) {\n channels.forEach(c => {\n const channelIndex = state.channels.findIndex(ch => ch.channelId == c.channelId)\n if (channelIndex > -1) {\n state.channels[channelIndex] = Object.assign(state.channels[channelIndex], c)\n } else {\n Vue.set(state.channels, state.channels.length, c)\n }\n })\n },\n\n setTools(state, { tools }) {\n Vue.set(state, \"tools\", tools)\n },\n\n clearModule(state) {\n Object.assign(state, {\n tools: [],\n channels: []\n })\n }\n}\n\nexport function makeActions({ service, socialService, i18n }) {\n i18n = i18n || DEFAULT_I18N.default\n return {\n clearFilters({ dispatch }, { channelId }) {\n const listId = getListId(channelId)\n dispatch(\"lists/clearFilters\", { key: listId }, { root: true })\n },\n\n initList({ rootState, commit, dispatch }, { channelId }) {\n const listId = getListId(channelId)\n // No need to initialise the list twice\n if (rootState.lists.descriptions[listId]) return\n\n let query = \"\"\n const defaultDescription = rootState.lists.descriptions[DEFAULT_COMMUNICATION_LIST_ID]\n if (defaultDescription) {\n const { url } = defaultDescription\n query = url.split(\"?\")[1]\n }\n\n const description = {\n cursor: undefined,\n listId,\n url: getUrl(channelId, query),\n itemsType: \"post-card\",\n title: \"\",\n presenter: \"default\"\n }\n commit(\"lists/setDescription\", description, { root: true })\n dispatch(\"lists/init\", { key: listId }, { root: true })\n },\n\n loadMore({ dispatch }, { channelId }) {\n dispatch(\"lists/loadMore\", {\n key: getListId(channelId)\n }, { root: true })\n },\n\n async refreshPosts({ dispatch }, { channelId }) {\n dispatch(\"lists/justRefresh\", {\n key: getListId(channelId)\n }, { root: true })\n },\n\n async refreshChannels({ commit }) {\n let channels = await service.getChannels()\n\n if (channels.length > 1) {\n channels.unshift({\n channelId: null,\n channelName: i18n.tc(\"common.all\", 2)\n })\n } else {\n channels = [{\n channelId: null,\n channelName: i18n.tc(\"common.all\", 2)\n }]\n }\n\n commit(\"setChannels\", {\n channels\n })\n },\n\n async refreshPost({ dispatch }, { postId }) {\n await dispatch(\"initList\", { channelId: null })\n const post = await service.getPost(postId)\n await dispatch(\"initList\", { channelId: post.channelId })\n dispatch(\"updatePost\", { post })\n },\n\n setFilters({ dispatch }, { channelId, filters }) {\n const listId = getListId(channelId)\n dispatch(\"lists/setFilters\", {\n key: listId,\n filters\n }, { root: true })\n },\n\n setOrderBy({ dispatch }, { channelId, orderBy }) {\n const listId = getListId(channelId)\n dispatch(\"lists/setOrderBy\", {\n key: listId,\n orderBy,\n }, { root: true })\n },\n\n toggleDirection({ dispatch }, { channelId }) {\n const listId = getListId(channelId)\n dispatch(\"lists/toggleDirection\", {\n key: listId,\n }, { root: true })\n },\n\n updatePost({ commit }, { post }) {\n const listKey = getListId(post.channelId)\n\n try {\n commit(\"lists/updateItem\", {\n item: post,\n listKey: \"communication-all-posts\"\n }, { root: true })\n } catch (e) {\n //do nothing\n }\n\n try {\n commit(\"lists/updateItem\", {\n item: post,\n listKey\n }, { root: true })\n } catch (e) {\n //do nothing\n }\n },\n\n async refreshTools({ commit }) {\n const tools = await service.getTools()\n commit(\"setTools\", {\n tools\n })\n },\n\n /**\n * Social actions\n */\n async sendLike({ getters, dispatch }, { postId }) {\n const originalPost = getters.getPost({ postId })\n if (!originalPost) {\n throw new Error(`Post ${postId} doesn't exist`)\n }\n\n const { liked, likes } = originalPost.social\n const social = Object.assign({}, originalPost.social, {\n liked: !liked,\n likes: liked ? likes - 1 : likes + 1\n })\n const newPost = Object.assign({}, originalPost, { social })\n dispatch(\"updatePost\", {\n post: newPost\n })\n\n try {\n const updatedPost = await socialService.likeResource(newPost)\n dispatch(\"updatePost\", {\n post: updatedPost\n })\n } catch {\n dispatch(\"updatePost\", {\n post: originalPost\n })\n }\n },\n\n async sendBookmark({ getters, dispatch }, { postId }) {\n const originalPost = Object.assign({}, getters.getPost({ postId }))\n if (!originalPost) {\n throw new Error(`Post ${postId} doesn't exist`)\n }\n\n const { bookmarked } = originalPost.social\n const social = Object.assign({}, originalPost.social, {\n bookmarked: !bookmarked\n })\n const newPost = Object.assign({}, originalPost, { social })\n dispatch(\"updatePost\", {\n post: newPost\n })\n\n try {\n const updatedPost = await socialService.bookmarkResource(newPost)\n dispatch(\"updatePost\", {\n post: updatedPost\n })\n const info = updatedPost.social.bookmarked ?\n i18n.t(\"common.wasAddedToBookmarks\") :\n i18n.t(\"common.wasRemovedFromBookmarks\")\n\n dispatch(\"pushNotification\", {\n title: ucfirst(ellipsis(updatedPost.title, 75)),\n info: ucfirst(info),\n type: updatedPost.social.bookmarked ? \"success\" : \"info\"\n }, { root: true })\n } catch {\n dispatch(\"updatePost\", {\n post: originalPost\n })\n }\n },\n\n async updateCommentsCount({ getters, dispatch }, { postId, commentsCount }) {\n const post = getters.getPost({ postId })\n\n if (!post) {\n throw new Error(`Post ${postId} doesn't exist`)\n }\n\n const social = Object.assign({}, post.social, { commentsCount })\n const newPost = Object.assign({}, post, { social })\n\n dispatch(\"updatePost\", {\n post: newPost\n })\n },\n\n async accessPost({ getters, dispatch, rootGetters }, { postId }) {\n if (!rootGetters.currentUser) return\n const post = getters.getPost({ postId })\n if (!post) {\n throw new Error(`Post ${postId} doesn't exist`)\n }\n\n if (post.accessed) return\n\n await service.access(postId)\n dispatch(\"refreshPost\", { postId })\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: {\n channels: []\n },\n getters,\n mutations,\n actions: makeActions({\n service: new CommunicationService(),\n socialService: new SocialService()\n })\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"videoContainer\",staticClass:\"d-flex justify-content-center align-items-center overflow-hidden\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.$emit('close')}}},[(_vm.state !== 'error')?_c('section',{staticClass:\"position-relative\",class:_vm.fullScreen && 'position-fixed left top vw-100 vh-100',staticStyle:{\"min-height\":\"135px\",\"min-width\":\"240px\"},attrs:{\"tabindex\":\"0\"},on:{\"mouseenter\":_vm.showControls,\"mousemove\":_vm.showControls,\"mouseleave\":_vm.hideControls,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;$event.preventDefault();return _vm.playToggle.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.jumpBackwards.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;return _vm.jumpForward.apply(null, arguments)}]}},[_c('video',{key:_vm.key,ref:`video-${_vm.key}`,staticClass:\"d-block mxw-100 mx-auto text-center\",class:_vm.fullScreen ? 'position-fixed left top vw-100 vh-100' : '',staticStyle:{\"max-height\":\"calc(100vh - 50px)\"},attrs:{\"poster\":_vm.posterUrl,\"src\":_vm.url,\"preload\":_vm.preload,\"playsinline\":\"\"},on:{\"timeupdate\":_vm.updateTimeline,\"ended\":_vm.finishVideo,\"loadedmetadata\":_vm.loadedmetadata,\"~playing\":function($event){return _vm.$emit('accessed')},\"playing\":_vm.handlePlaying,\"~canplaythrough\":function($event){return _vm.handleCanPlay.apply(null, arguments)},\"volumechange\":_vm.volumechange,\"error\":_vm.error}}),_vm._v(\" \"),_c('div',{staticClass:\"transition-opacity transition-duration-75 transition-ease w-100 h-100 position-absolute abs-center bg--black--50\",class:_vm.visibleControls ? 'opacity-100' : 'opacity--0',on:{\"click\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;if($event.target !== $event.currentTarget)return null;return _vm.playToggle.apply(null, arguments)},\"dblclick\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.fullScreenToggle.apply(null, arguments)}}},[_c('div',{staticClass:\"position-absolute\",class:!_vm.fullScreenSupported && 'd-flex justify-content-end',staticStyle:{\"height\":\"72px\",\"width\":\"80px\",\"top\":\"2rem\"},style:(_vm.fullScreenSupported ? 'right: 1rem;' : 'right: 2rem;'),on:{\"mouseleave\":function($event){_vm.showVolumeBar = false}}},[_c('button-link',{ref:\"mute\",staticClass:\"position-absolute\",attrs:{\"aria-label\":_vm._f(\"ucfirst\")(_vm.isMuted ? _vm.$t('common.activateSound') : _vm.$t('common.silence')),\"icon\":_vm.isMuted ? 'volume-mute' : 'volume',\"theme\":\"light\"},on:{\"click\":_vm.mute},nativeOn:{\"mouseenter\":function($event){_vm.showVolumeBar = true}}}),_vm._v(\" \"),_c('tool-tip',{attrs:{\"name\":\"mute\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.isMuted ? _vm.$t('common.activateSound') : _vm.$t('common.silence')))+\"\\n \")]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('volume-bar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$media('s+') && _vm.showVolumeBar),expression:\"$media('s+') && showVolumeBar\"}],staticClass:\"text-light cursor--pointer position-absolute\",staticStyle:{\"width\":\"56px\",\"top\":\"36px\"},attrs:{\"value\":_vm.volume},on:{\"input\":_vm.adjustVolume}})],1)],1),_vm._v(\" \"),(_vm.fullScreen)?[_c('button-link',{ref:\"exitFullScreen\",staticClass:\"position-absolute\",staticStyle:{\"right\":\"2rem\",\"top\":\"2rem\"},attrs:{\"aria-label\":_vm._f(\"ucfirst\")(_vm.$t('common.exitFullScreen')),\"icon\":\"fullscreen-exit\",\"theme\":\"light\"},on:{\"click\":_vm.fullScreenExit}}),_vm._v(\" \"),_c('tool-tip',{attrs:{\"name\":\"exitFullScreen\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t('common.exitFullScreen')))+\"\\n \")])]:[(_vm.fullScreenSupported)?_c('button-link',{ref:\"enterFullScreen\",staticClass:\"position-absolute\",staticStyle:{\"right\":\"2rem\",\"top\":\"2rem\"},attrs:{\"icon\":\"focus\",\"aria-label\":_vm._f(\"ucfirst\")(_vm.$t('common.exitFullScreen')),\"theme\":\"light\"},on:{\"click\":_vm.fullScreenEnter}}):_vm._e(),_vm._v(\" \"),(_vm.fullScreenSupported)?_c('tool-tip',{attrs:{\"name\":\"enterFullScreen\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t('common.enterFullScreen')))+\"\\n \")]):_vm._e()],_vm._v(\" \"),_c('div',{staticClass:\"position-absolute abs-center\"},[(_vm.state === 'created')?_c('v-icon',{staticClass:\"text-light\",attrs:{\"name\":\"spinner\",\"spin\":\"\",\"w\":32}}):_c('play-button',{ref:\"pause-play\",attrs:{\"aria-label\":_vm._f(\"ucfirst\")(_vm.state === 'playing' ? _vm.$t('common.pause') : _vm.$t('common.play')),\"is-playing\":_vm.state === 'playing',\"size\":64},on:{\"click\":_vm.playToggle}})],1),_vm._v(\" \"),_c('div',{staticClass:\"position-absolute bottom px-32 pb-16 w-100 d-flex align-items-center\"},[_c('time-bar',{staticClass:\"text-light\",attrs:{\"current-time\":_vm.currentTime,\"duration\":_vm.totalDuration},on:{\"input\":newTime => _vm.updateProgress(newTime)}})],1)],2)]):_c('div',{staticClass:\"p-32 text-center text-white w-100\"},[_c('p',[_vm._v(_vm._s(_vm._f(\"ucfirst\")(_vm.errorMessage)))]),_vm._v(\" \"),_c('base-button',{attrs:{\"icon\":\"sync\",\"icon-size\":20},on:{\"click\":_vm.restart}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"common.tryAgain\"))+\"\\n \")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./VideoPlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./VideoPlayer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VideoPlayer.vue?vue&type=template&id=8b9ab0aa\"\nimport script from \"./VideoPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./VideoPlayer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._l((_vm.options),function(option){return _c('input-radio',{key:option.value,class:_vm.radioClass,attrs:{\"value\":_vm.isSelected(option.value),\"disabled\":_vm.disabled},on:{\"input\":function($event){return _vm.$emit('input', option.value)}}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./RadioGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./RadioGroup.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./RadioGroup.vue?vue&type=template&id=3df670fe\"\nimport script from \"./RadioGroup.vue?vue&type=script&lang=js\"\nexport * from \"./RadioGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport omit from \"lodash/omit\"\nimport uniqueId from \"lodash/uniqueId\"\n\nimport { debounceBy } from \"~/lib/utils\"\nimport { parseListKey } from \"~/modules/list/utils\"\nimport ListService from \"~/modules/list/ListService\"\n\nexport const DEFAULT_INSTANCE = {\n items: [],\n parentItem: undefined,\n status: \"waiting\", // don't set ready until it has items\n nextCursor: undefined,\n end: false, // have we reached the end?\n filters: {},\n operators: {},\n orderBy: undefined,\n direction: undefined,\n includeTotalCount: false\n}\n\nexport class ListNotFoundError extends Error {\n constructor(listId) {\n super(`The list ${listId} was not found`)\n }\n}\n\n/**\n * Check docs related to this module at guides/blocks.md\n */\n\nexport function makeState() {\n return {\n descriptions: {}, // listId => ListDescription\n instances: {}, // listKey => ListInstance\n lastRequest: {} // listKey => string\n }\n}\n\nexport const mutations = {\n setLastRequest(state, { key, requestId }) {\n Vue.set(state.lastRequest, key, requestId)\n },\n\n setDescription(state, description) {\n const listId = description.listId\n if (listId in state.descriptions) {\n for (const field in description) {\n Vue.set(state.descriptions[listId], field, description[field])\n }\n } else {\n Vue.set(state.descriptions, listId, description)\n }\n },\n\n setFilterDefinition(state, { key, filterDefinition }) {\n if (!(key in state.descriptions)) {\n throw new Error(`Failed to set filter definition for unexistent list ${key}`)\n }\n\n const description = state.descriptions[key]\n const { prop } = filterDefinition\n const idx = description.filters.findIndex(f => f.prop === prop)\n if (idx === -1) {\n throw new Error(`Failed to update unexistent filter ${prop}`)\n }\n Vue.set(description.filters, idx, filterDefinition)\n },\n\n setInstance(state, { key, instance }) {\n if (!(key in state.instances)) {\n Vue.set(state.instances, key, instance)\n } else {\n Vue.set(state.instances, key,\n Object.assign({}, state.instances[key], instance))\n }\n },\n\n clearModule(state) {\n state.descriptions = {}\n state.instances = {}\n state.lastRequest = {}\n },\n\n clearAllFilterAndOrderDescriptions(state) {\n Object.values(state.descriptions).forEach(description => {\n Vue.delete(description, 'filters')\n Vue.delete(description, 'orders')\n })\n },\n\n setStatus(state, { key, value }) {\n const instance = state.instances[key]\n instance.status = value\n },\n\n updateItem(state, { item, listKey }) {\n const { key } = item._meta\n const list = state.instances[listKey]\n const itemIndex = list.items.findIndex(i => i[key] === item[key])\n if (itemIndex !== -1) {\n const newItem = Object.assign({}, list.items[itemIndex], item)\n Vue.set(list.items, itemIndex, newItem)\n } else {\n Vue.set(list.items, list.items.length, item)\n }\n }\n}\n\n// Inject debounceBy because if a debounced function fails while testing, the mocha process\n// crashes!!\nexport function makeActions(listService, debounceByFn = debounceBy) {\n return {\n async init({ state, commit, dispatch }, { key, includeTotalCount=false }) {\n const { listId, parents } = parseListKey(key)\n\n let parentItem = undefined\n if (parents.length > 0) parentItem = await listService.fetchParent(parents)\n\n // Ensure instance exists\n if (!(key in state.instances)) {\n const instance = {\n ...DEFAULT_INSTANCE,\n items: [],\n parentItem,\n includeTotalCount\n }\n commit(\"setInstance\", { key, instance })\n }\n\n // Ensure description exists\n if (!(listId in state.descriptions)) {\n await dispatch(\"structure/refreshStructure\", null, { root: true })\n if (!(listId in state.descriptions)) throw new ListNotFoundError(listId)\n }\n },\n\n /*\n * This action is debounced by key: dispatching executeRefresh with different keys will\n * not result in the last call canceling the previous one.\n */\n _executeRefresh: debounceByFn(({ state, commit, dispatch }, { key, requestId, more = false }) => {\n const { listId, parents = [] } = parseListKey(key)\n const instance = state.instances[key]\n const description = state.descriptions[listId]\n\n commit(\"setStatus\", { key, value: \"refreshing\" })\n return listService.fetchItems({ description, instance, parents, more })\n .then(({ items, filters, orders, totalCount, nextCursor, rest }) => {\n if (state.lastRequest[key] !== requestId) return\n\n // dont't overwrite filters and orders if they exist\n // because they could have been modified by frontend\n commit(\"setDescription\", {\n filters,\n orders,\n ...description,\n ...rest\n })\n commit(\"setInstance\", {\n key,\n instance: {\n items: more ? instance.items.concat(items) : items,\n nextCursor,\n end: !nextCursor,\n status: \"ready\",\n totalCount\n }\n })\n })\n .catch((error) => {\n if (error instanceof DOMException && error.name === \"AbortError\") {\n commit(\"setStatus\", { key, value: \"ready\" })\n return\n }\n\n dispatch(\"pushNotification\", {\n title: error.message,\n type: \"error\"\n }, { root: true })\n\n commit(\"setInstance\", { key, instance: { status: \"error\" } })\n })\n },\n 500,\n {},\n (_, { key }) => key),\n\n /*\n * When `justRefresh` executes it stores, for that key, a unique identifier `requestId`.\n *\n * Next, it dispatches `_executeRefresh`, which receives `requestId` as a parameter.\n *\n * `_executeRefresh` makes a request and, when done, it checks that the received `requestId`\n * matches the one stored for the last call to `refresh`, for that key.\n *\n * If it doesn't match, the response is dropped.\n *\n * This is to avoid that two requests close in time, but not close enough for the\n * debouncing to cancel the first one, result in a brief period of time in which we are\n * showing data that doesn't come for the last request.\n */\n justRefresh({ commit, dispatch }, { key, more }) {\n const requestId = uniqueId(\"request_\")\n commit(\"setLastRequest\", { key, requestId })\n dispatch(\"_executeRefresh\", { key, requestId, more })\n },\n\n loadMore({ dispatch }, { key }) {\n dispatch(\"justRefresh\", { key, more: true })\n },\n\n setFilters({ commit, dispatch, state }, { key, filters, operators = {} }) {\n commit(\"setInstance\", {\n key, instance: {\n filters: {\n ...state.instances[key]?.filters,\n ...filters\n },\n operators\n }\n })\n dispatch(\"justRefresh\", { key })\n },\n\n clearFilters({ commit, dispatch }, { key }) {\n commit(\"setInstance\", {\n key, instance: {\n filters: {},\n operators: {},\n orderBy: undefined,\n direction: undefined\n }\n })\n dispatch(\"justRefresh\", { key })\n },\n\n setOrderBy({ state, commit, dispatch }, { key, orderBy }) {\n const instance = state.instances[key] || {}\n const { direction = \"ASC\" } = instance\n commit(\"setInstance\", {\n key, instance: {\n orderBy,\n direction\n }\n })\n dispatch(\"justRefresh\", { key })\n },\n\n toggleDirection({ state, commit, dispatch }, { key }) {\n const instance = state.instances[key]\n let { direction } = instance\n direction = direction === \"ASC\" ? \"DESC\" : \"ASC\"\n commit(\"setInstance\", { key, instance: { direction } })\n dispatch(\"justRefresh\", { key })\n },\n\n removeFilter({ state, commit, dispatch }, { key, prop }) {\n const instance = state.instances[key]\n const filters = omit(instance.filters ?? {}, prop)\n commit(\"setInstance\", {\n key, instance: {\n filters\n }\n })\n dispatch(\"justRefresh\", { key })\n },\n\n updateOptions({ state, commit }, { key, filterProp, options }) {\n const filters = state.descriptions[key].filters\n const filterDefinition = filters.find(def => def.prop == filterProp)\n commit(\"setFilterDefinition\", {\n key,\n filterDefinition: {\n ...filterDefinition,\n options\n }\n })\n }\n }\n}\n\nexport default {\n namespaced: true,\n state: makeState(),\n mutations,\n actions: makeActions(new ListService())\n}\n","import { defaultCtx } from \"~/lib/AjaxCtx\"\nimport { buildListQueryString } from \"~/modules/list/utils\"\n\nexport default class ListService {\n constructor(ctx) {\n this.$http = ctx ?? defaultCtx\n }\n\n async fetchParent(parents) {\n const parent = parents[parents.length - 1]\n const grandparent = parents[parents.length - 2]\n\n let url = \"\"\n switch (parent.type) {\n case \"area\":\n url = `/discover-areas/${parent.id}`\n break\n\n case \"library\":\n url = `/libraries/${parent.id}`\n break\n\n case \"itinerary\":\n url = `/itineraries/${parent.id}`\n break\n\n case \"school\":\n if (grandparent?.type === \"itinerary\") {\n url = `/itineraries/${grandparent.id}/learn-schools/${parent.id}`\n } else {\n url = `/learn-schools/${parent.id}`\n }\n break\n\n case \"CatalogItinerary\":\n url = `/discover-itineraries/${parent.id}`\n break\n\n case \"CatalogSchool\":\n if (grandparent?.type === \"CatalogItinerary\") {\n url = `/discover-itineraries/${grandparent.id}/discover-schools/${parent.id}`\n } else {\n url = `/discover-schools/${parent.id}`\n }\n break\n\n default:\n throw new Error(`Don't know how to get parent info for ${parent.type}`)\n }\n\n return await this.$http.fetchData(url)\n }\n\n async fetchItems({ description, instance, parents, more }) {\n const queryString = buildListQueryString({ description, instance, parents, more })\n\n let [url, qs] = description.url.split(\"?\")\n qs = [qs, queryString].filter(v => !!v).join(\"&\")\n if (qs) url += `?${qs}`\n\n const { data: items, meta = {} } = await this.$http.fetchAPI(url)\n const { filters, orders, totalCount, ...rest } = meta\n const nextCursor = meta.cursor?.next\n return { items, filters, orders, totalCount, nextCursor, rest }\n }\n}\n","import Vue from \"vue\"\n\nexport const makeEmptySelection = () => ({\n selectAll: false,\n query: {\n included: [],\n excluded: [],\n filter: []\n }\n})\n\n// typeof SelectionState = {\n// [selectionKey: string]: {\n// selectAll: boolean\n// query: {\n// included: [],\n// excluded: [],\n// filter: []\n// }\n// }\n// }\nexport default {\n namespaced: true,\n\n state: {}, // SelectionState\n\n getters: {\n selectionQuery: (state) => (key) => {\n if (!state[key]) return false\n return state[key].query\n },\n\n selectAll: (state) => (key) => {\n if (!state[key]) return false\n return state[key].selectAll\n },\n\n isSelected: (state) => (key, id) => {\n if (!state[key]) return false\n const isIncluded = state[key].query.included.includes(id)\n if (isIncluded) return true\n const isExcluded = state[key].query.excluded.includes(id)\n if (isExcluded) return false\n return state[key].selectAll\n },\n\n selectionObject: (_state, getters) => (key) => {\n const selectionQuery = getters.selectionQuery(key)\n const selectAll = getters.selectAll(key)\n const isSelected = id => getters.isSelected(key, id)\n return { selectionQuery, selectAll, isSelected }\n }\n },\n\n mutations: {\n setInstance(state, { key, instance }) {\n if (key in state) {\n Object.assign(state[key], instance)\n } else {\n Vue.set(state, key, instance)\n }\n },\n\n toggleIncludedItem(state, { key, id }) {\n const query = state[key].query\n const idx = query.included.findIndex(i => i == id)\n if (idx == -1) {\n query.included.push(id)\n } else {\n query.included.splice(idx, 1)\n }\n },\n\n toggleExcludedItem(state, { key, id }) {\n const query = state[key].query\n const idx = query.excluded.findIndex(i => i == id)\n if (idx == -1) {\n query.excluded.push(id)\n } else {\n query.excluded.splice(idx, 1)\n }\n },\n\n updateFilter(state, { key, filter }) {\n const query = state[key].query\n if (filter) {\n query.filter[0] = filter\n } else {\n query.filter = []\n }\n },\n\n setSelectAll(state, { key, value }) {\n const query = state[key]?.query\n if (!query) return\n query.included = []\n query.excluded = []\n state[key].selectAll = value\n }\n },\n\n actions: {\n init({ state, dispatch }, key) {\n if (key in state) return\n dispatch(\"clear\", key)\n },\n\n clear({ commit }, key) {\n const instance = makeEmptySelection()\n commit(\"setInstance\", { key, instance })\n },\n\n toggleSelection({ state, commit }, { key, id }) {\n const selectAll = state[key].selectAll\n if (selectAll) {\n commit(\"toggleExcludedItem\", { key, id })\n } else {\n commit(\"toggleIncludedItem\", { key, id })\n }\n },\n\n updateFilter({ commit }, { key, filter }) {\n commit(\"updateFilter\", { key, filter })\n },\n\n toggleSelectAll({ state, commit }, { key }) {\n const value = !state[key].selectAll\n commit(\"setSelectAll\", { key, value })\n }\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.component,_vm._b({tag:\"component\",on:{\"accessed\":_vm.accessed,\"close\":_vm.close}},'component',_vm.$attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./AudioPlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./AudioPlayer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AudioPlayer.vue?vue&type=template&id=0c54bf60\"\nimport script from \"./AudioPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./AudioPlayer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{ref:\"audioContainer\",staticClass:\"d-flex flex-column justify-content-center align-items-center p-32 w-100 mx-auto\",staticStyle:{\"max-width\":\"580px\"},attrs:{\"tabindex\":\"0\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;$event.preventDefault();return _vm.playToggle.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.timeBack.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;return _vm.timeForward.apply(null, arguments)}]}},[_c('div',{staticClass:\"d-flex justify-content-center align-items-center rounded bg--cover\",style:(_vm.posterStyle)},[_c('v-icon',{staticClass:\"rounded\",staticStyle:{\"color\":\"rgba(255, 255, 255, 0.5)\"},attrs:{\"name\":\"headphones\",\"w\":180}})],1),_vm._v(\" \"),_c('audio',{ref:\"audio\",staticClass:\"audio--player w-100\",attrs:{\"src\":_vm.url,\"autoplay\":_vm.autoplay,\"loop\":_vm.loop},on:{\"ended\":_vm.ended,\"timeupdate\":_vm.updateTimeline,\"~playing\":function($event){return _vm.$emit('accessed')},\"play\":function($event){_vm.playing = true},\"pause\":function($event){_vm.playing = false},\"volumechange\":_vm.volumechange}}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-content-center align-items-center w-100 px-12\",staticStyle:{\"height\":\"64px\"},on:{\"mouseleave\":function($event){_vm.showVolumeBar = false}}},[_c('time-bar',{staticClass:\"text-light\",attrs:{\"current-time\":_vm.currentTime,\"duration\":_vm.totalDuration},on:{\"input\":newTime => _vm.updateProgress(newTime)}}),_vm._v(\" \"),_c('button-link',{staticClass:\"ml-18\",attrs:{\"icon\":_vm.isMuted ? 'volume-mute' : 'volume',\"size\":\"34\",\"theme\":\"light\",\"aria-label\":_vm._f(\"ucfirst\")(_vm.isMuted ? _vm.$t('common.activateSound') : _vm.$t('common.silence'))},on:{\"click\":_vm.mute},nativeOn:{\"mouseenter\":function($event){_vm.showVolumeBar = true}}}),_vm._v(\" \"),_c('volume-bar',{staticClass:\"transition-width transition-duration-50 transition-ease ml-4\",class:_vm.showVolumeBar ? 'opacity--100' : 'opacity--0 w-0',staticStyle:{\"width\":\"72px\"},attrs:{\"value\":_vm.volume},on:{\"input\":newVolume => _vm.adjustVolume(newVolume)}})],1),_vm._v(\" \"),(_vm.controls)?_c('span',{staticClass:\"position-relative d-flex align-items-center mx-auto mt-20\"},[_c('button-link',{attrs:{\"icon\":\"history\",\"size\":\"34\",\"theme\":\"light\"},on:{\"click\":_vm.timeBack}}),_vm._v(\" \"),_c('play-button',{ref:\"pause-play\",staticClass:\"mx-32\",attrs:{\"size\":56,\"aria-label\":_vm._f(\"ucfirst\")(_vm.playing ? _vm.$t('common.pause') : _vm.$t('common.play')),\"is-playing\":_vm.playing},on:{\"click\":_vm.playToggle}}),_vm._v(\" \"),_c('button-link',{attrs:{\"icon\":\"history-left\",\"size\":\"34\",\"theme\":\"light\"},on:{\"click\":_vm.timeForward}})],1):_vm._e(),_vm._v(\" \"),_c('tool-tip',{attrs:{\"name\":\"pause-play\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.playing ? _vm.$t('common.pause') : _vm.$t('common.play')))+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./ImagePlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./ImagePlayer.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./ImagePlayer.vue?vue&type=template&id=5e2633aa\"\nimport script from \"./ImagePlayer.vue?vue&type=script&lang=js\"\nexport * from \"./ImagePlayer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"image--player align-items-center d-flex flex-direction-column h-100 justify-content-center\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.$emit('close')}}},[(!_vm.error)?_c('img',{staticClass:\"d-block mxw-100 mxh-100 text-center\",attrs:{\"src\":_vm.url},on:{\"error\":_vm.onerror,\"load\":_vm.load}}):_c('div',{staticClass:\"p-32 text-center text-light\"},[_c('p',[_vm._v(_vm._s(_vm.$t(\"errors.loadingFileError\")))]),_vm._v(\"\\n ¯\\\\_(ツ)_/¯\\n \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./ScormPlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./ScormPlayer.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./ScormPlayer.vue?vue&type=template&id=34fa9893&scoped=true\"\nimport script from \"./ScormPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./ScormPlayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./ScormPlayer.vue?vue&type=style&index=0&id=34fa9893&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34fa9893\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bg-light wrapper--iframe position-relative overflow-hidden\"},[_c('iframe',{staticClass:\"position-absolute top left border-0 h-100 w-100\",attrs:{\"src\":_vm.url},on:{\"~load\":function($event){return _vm.$emit('accessed')}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./TextPlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./TextPlayer.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./TextPlayer.vue?vue&type=template&id=0473c7b5\"\nimport script from \"./TextPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./TextPlayer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.status == 'ready')?_c('p',{staticClass:\"font--14 lh--18 p-32 text-dark mb-0 bg-light overflow-y-auto\",staticStyle:{\"white-space\":\"pre-line\"}},[_vm._v(\"\\n \"+_vm._s(_vm.text)+\"\\n\")]):(_vm.status == 'error')?_c('div',{staticClass:\"p-32 text-center text-white\"},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))]),_vm._v(\"\\n ¯\\\\_(ツ)_/¯\\n\")]):_c('spinner-block')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ThePlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ThePlayer.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./ThePlayer.vue?vue&type=template&id=66b57c75\"\nimport script from \"./ThePlayer.vue?vue&type=script&lang=js\"\nexport * from \"./ThePlayer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"dialog-box bg-light mx-auto position-relative pt-16 px-16 rounded shadow-default overflow-y-auto\",attrs:{\"aria-labelledby\":\"dialog-label\",\"aria-modal\":\"true\",\"role\":\"alert-dialog\",\"data-t\":\"dialog-box\"}},[_c('div',{staticClass:\"text-right\"},[_c('button-link',{attrs:{\"icon\":\"close\"},on:{\"click\":_vm.cancel}})],1),_vm._v(\" \"),_c(_vm.currentDialog,_vm._b({tag:\"component\",staticClass:\"mb-32\",on:{\"done\":(v) => _vm.$emit('done', v)}},'component',{title: _vm.title, description: _vm.description, icon: _vm.icon, options: _vm.options},false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./AlertDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./AlertDialog.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./AlertDialog.vue?vue&type=template&id=e81b87da\"\nimport script from \"./AlertDialog.vue?vue&type=script&lang=js\"\nexport * from \"./AlertDialog.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.icon)?_c('icon-circled',{staticClass:\"d-block mx-auto mb-4\",class:_vm.$css(_vm.$theme.textPrimary),attrs:{\"size\":110,\"icon\":_vm.icon}}):_vm._e(),_vm._v(\" \"),(_vm.title)?_c('p',{staticClass:\"font--20 lh--26 font-weight-light text-center mb-8\",class:_vm.$css(_vm.$theme.textPrimary)},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.title))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.description)?_c('p',{staticClass:\"font--14 text-dark text-center mb-0 text--ucfirst\",domProps:{\"innerHTML\":_vm._s(_vm.description)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-content-between text-center mt-24\"},[_c('base-button',{staticClass:\"mlsp-16 mnw-50 mxw-80 mx-auto\",attrs:{\"data-t\":\"button-confirm\"},on:{\"click\":_vm.accept}},[_vm._v(\"\\n \"+_vm._s(_vm.confirmText)+\"\\n \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./ConfirmationDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./ConfirmationDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./ConfirmationDialog.vue?vue&type=template&id=1f8f79d9\"\nimport script from \"./ConfirmationDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmationDialog.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.icon)?_c('icon-circled',{staticClass:\"d-block mx-auto mb-4\",class:_vm.$css(_vm.$theme.textPrimary),attrs:{\"size\":110,\"icon\":_vm.icon}}):_vm._e(),_vm._v(\" \"),(_vm.title)?_c('p',{staticClass:\"font--20 lh--26 font-weight-light text-center mb-8\",class:_vm.$css(_vm.$theme.textPrimary)},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.title))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.description)?_c('p',{staticClass:\"font--14 text-dark text-center mb-0 text--ucfirst\",domProps:{\"innerHTML\":_vm._s(_vm.description)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-content-between text-center mt-24\"},[_c('base-button',{staticClass:\"mlsp-16 mnw-0 w-50\",attrs:{\"theme\":\"secondary\",\"data-t\":\"cancel-button\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n \"+_vm._s(_vm.cancelText)+\"\\n \")]),_vm._v(\" \"),_c('base-button',{staticClass:\"mlsp-16 mnw-0 w-50\",attrs:{\"data-t\":\"button-confirm\"},on:{\"click\":_vm.accept}},[_vm._v(\"\\n \"+_vm._s(_vm.confirmText)+\"\\n \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./NotificationDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./NotificationDialog.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./NotificationDialog.vue?vue&type=template&id=7301859f\"\nimport script from \"./NotificationDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NotificationDialog.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.icon)?_c('icon-circled',{staticClass:\"d-block mx-auto mb-4\",class:_vm.$css(_vm.$theme.textPrimary),attrs:{\"size\":110,\"icon\":_vm.icon}}):_vm._e(),_vm._v(\" \"),(_vm.title)?_c('p',{staticClass:\"font--20 lh--26 font-weight-light text-center mb-8\",class:_vm.$css(_vm.$theme.textPrimary)},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.title))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.description)?_c('p',{staticClass:\"font--14 text-dark text-center mb-0 text--ucfirst\",domProps:{\"innerHTML\":_vm._s(_vm.description)}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./DialogBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./DialogBox.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./DialogBox.vue?vue&type=template&id=74df63a8&scoped=true\"\nimport script from \"./DialogBox.vue?vue&type=script&lang=js\"\nexport * from \"./DialogBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./DialogBox.vue?vue&type=style&index=0&id=74df63a8&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74df63a8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative d-flex flex-column w-100\"},[(_vm.status == 'ready')?[_c('div',{ref:\"body\",staticClass:\"h-100 flex-grow-1 overflow-y-auto pdf--body\",on:{\"scroll\":_vm.scroll}},[(_vm.pdf)?_vm._l((_vm.pdf.numPages),function(number){return _c('pdf-page',_vm._b({key:number,ref:\"pages\",refInFor:true,staticClass:\"mtsp-12\",on:{\"goto-page\":_vm.gotoPage,\"goto-destination\":_vm.gotoDestination}},'pdf-page',{ fit: _vm.fit, bodyWidth: _vm.bodyWidth, bodyHeight: _vm.bodyHeight, number, pdfjs: _vm.pdfjs, pdf: _vm.pdf, visible: _vm.isVisible(number) },false))}):_vm._e()],2),_vm._v(\" \"),(_vm.pdf)?_c('div',{staticClass:\"d-flex align-items-center rounded-sm font--14 lh--18 py-8 px-12 bottom mb-32 position-absolute abs-center-x bg--black--80 text-light\"},[_c('span',{staticClass:\"text-gray-medium\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.pageXofY\", { x: _vm.currentPage, y: _vm.pdf.numPages })))+\"\\n \")]),_vm._v(\" \"),_c('button-link',{attrs:{\"disabled\":_vm.upButtonDisabled,\"icon\":\"angle-up\",\"theme\":\"light\"},on:{\"click\":_vm.up}}),_vm._v(\" \"),_c('button-link',{attrs:{\"disabled\":_vm.downButtonDisabled,\"icon\":\"angle-down\",\"theme\":\"light\"},on:{\"click\":_vm.down}}),_vm._v(\" \"),(_vm.$media('s+'))?_c('button-link',{staticClass:\"ml-32\",attrs:{\"icon\":_vm.fit == 'width' ? 'arrow-shrink' : 'arrows-shrink-h',\"theme\":\"light\"},on:{\"click\":_vm.toggleFit}}):_vm._e()],1):_vm._e()]:(_vm.status == 'error')?_c('div',{staticClass:\"p-32 text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t('common.loadingError', { what: 'pdf' })))+\"\\n \")]):(_vm.status == 'loading')?_c('spinner-block'):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const defaultInit = () => \"1\"\n\n// Based on https://github.com/zeit/async-sema\n\n/**\n * `nr` The maximum number of callers allowed to acquire the semaphore concurrently.\n * `initFn` Function that is used to initialize the tokens used to manage the semaphore.\n */\nexport default class Semaphore {\n constructor(nr, { initFn = defaultInit } = {}) {\n this.nrTokens = nr\n this.free = []\n this.waiting = []\n this.noTokens = initFn == defaultInit\n\n for (let i = 0; i < nr; i++) {\n this.free.push(initFn())\n }\n }\n\n /**\n * Acquire a token from the semaphore, thus decrement the number of available execution slots.\n * If `initFn` is not used then the return value of the function can be discarded.\n */\n acquire() {\n const token = this.free.pop()\n if (token) return Promise.resolve(token)\n\n return new Promise((resolve, reject) => {\n this.waiting.push({ resolve, reject })\n })\n }\n\n /**\n * Release the semaphore, thus increment the number of free execution slots.\n * If `initFn` is used then the token returned by `acquire()` should be given as an\n * argument when calling this function.\n */\n release(token) {\n if (this.noTokens) token = '1'\n const p = this.waiting.shift()\n if (p) {\n p.resolve(token)\n } else {\n this.free.push(token)\n }\n }\n\n /**\n * Drains the semaphore and returns all the initialized tokens in an array.\n * Draining is an ideal way to ensure there are no pending async tasks, for example before a process will terminate.\n */\n drain() {\n const a = new Array(this.nrTokens)\n for (let i = 0; i < this.nrTokens; i++) {\n a[i] = this.acquire()\n }\n return Promise.all(a)\n }\n}\n\n\nexport function RateLimiter(rps, { timeUnit = 1000, equalDistribution = false } = {}) {\n const sema = new Semaphore(equalDistribution ? 1 : rps)\n const delay = equalDistribution ? timeUnit / rps : timeUnit\n\n return async function rl() {\n await sema.acquire()\n setTimeout(() => sema.release(), delay)\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./PdfPage.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./PdfPage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PdfPage.vue?vue&type=template&id=43141419\"\nimport script from \"./PdfPage.vue?vue&type=script&lang=js\"\nexport * from \"./PdfPage.vue?vue&type=script&lang=js\"\nimport style0 from \"./PdfPage.vue?vue&type=style&index=0&id=43141419&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"page\",staticClass:\"d-flex flex-column justify-content-center position-relative\",style:(_vm.pageStyle)},[_c('canvas',_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.rendered),expression:\"rendered\"}],ref:\"canvas\",staticClass:\"mx-auto\"},'canvas',_vm.canvasAttrs,false)),_vm._v(\" \"),_c('div',{ref:\"data-layer\",staticClass:\"pdfjs__text-layer pdfjs__annotation-layer mx-auto\",style:(_vm.canvasAttrs.style)}),_vm._v(\" \"),(!_vm.rendered)?_c('div',{staticClass:\"d-flex align-items-center justify-content-center bg-light mx-auto\",style:(_vm.canvasAttrs.style)},[_c('loading-spinner',{attrs:{\"width\":70}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./PdfViewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/source-map-loader/dist/cjs.js!./PdfViewer.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./PdfViewer.vue?vue&type=template&id=f8f2a208&scoped=true\"\nimport script from \"./PdfViewer.vue?vue&type=script&lang=js\"\nexport * from \"./PdfViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./PdfViewer.vue?vue&type=style&index=0&id=f8f2a208&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f8f2a208\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"position-relative bg-white\",class:_vm.containerClass,staticStyle:{\"height\":\"52px\"},on:{\"click\":function($event){!_vm.disabled && _vm.$emit('click')}}},[_c('input',{ref:\"input\",staticClass:\"bg-transparent autofill-light transition-duration-25 transition-ease-out outline-none border-0 text-dark placeholder-gray-dark w-100 font--16 lh--20\",class:_vm.inputClass,staticStyle:{\"transition-property\":\"opacity, padding-bottom, padding-top\"},attrs:{\"type\":\"number\",\"autocomplete\":_vm.autocomplete,\"name\":_vm.name,\"placeholder\":_vm.cookedPlaceholder,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly,\"min\":_vm.min,\"step\":_vm.step},domProps:{\"value\":_vm.value},on:{\"input\":_vm.input,\"focus\":_vm.focus,\"blur\":_vm.blur}}),_vm._v(\" \"),(_vm.cookedInnerLabel)?_c('div',{staticClass:\"position-absolute top left transition-ease-out transition-duration-25 text-gray-dark pointer-events-none\",class:_vm.labelClass,staticStyle:{\"transition-property\":\"font-size, padding-top, padding-bottom\"}},[_vm._v(\"\\n \"+_vm._s(_vm.cookedInnerLabel)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('input-status',{attrs:{\"status\":_vm.status}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputCost.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./InputCost.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputCost.vue?vue&type=template&id=bba4559e&scoped=true\"\nimport script from \"./InputCost.vue?vue&type=script&lang=js\"\nexport * from \"./InputCost.vue?vue&type=script&lang=js\"\nimport style0 from \"./InputCost.vue?vue&type=style&index=0&id=bba4559e&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bba4559e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.flex && 'd-flex'},[(_vm.filterable)?_c('input-text',{ref:\"searchBox\",staticClass:\"m-12\",attrs:{\"disabled\":_vm.disabled,\"placeholder\":_vm._f(\"ucfirst\")(_vm.$t('common.filter')),\"icon\":\"search\"},scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_c('v-icon',{staticClass:\"text-gray-dark\",attrs:{\"name\":\"search\",\"w\":20}})]},proxy:true}],null,false,1653550537),model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}}):_vm._e(),_vm._v(\" \"),(_vm.filteredOptions.length > 0)?_c('ul',{ref:\"list\",staticClass:\"overflow-auto py-0 bg-light selectable--list\",class:_vm.listClass},_vm._l((_vm.filteredOptions),function(item,index){return _c('li',{key:index,staticClass:\"px-16 cursor--pointer text-dark\",class:_vm.isSelected(item.value) && _vm.checkedClass,attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleSelect(item)},\"keydown\":[function($event){$event.preventDefault();$event.stopPropagation();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;return _vm.moveFocus($event, 'down')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;return _vm.moveFocus($event, 'up')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.toggleSelect(item)}]}},[(_vm.multiple)?_c('input-checkbox',{attrs:{\"value\":_vm.isSelected(item.value)}},[_c('truncated-text',{attrs:{\"text\":item.text,\"lines\":1}})],1):_c('truncated-text',{attrs:{\"text\":item.text,\"lines\":1}})],1)}),0):_vm._e(),_vm._v(\" \"),(_vm.options.length === 0)?_c('div',{staticClass:\"bg-gray-light text-dark text-center py-16\"},[_c('v-icon',{attrs:{\"name\":\"info\",\"w\":42}}),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t('validation.noResults')))+\"\\n \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./SelectableList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./SelectableList.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./SelectableList.vue?vue&type=template&id=2fc6b49a\"\nimport script from \"./SelectableList.vue?vue&type=script&lang=js\"\nexport * from \"./SelectableList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bg-light mx-auto my-auto rounded shadow-default\",class:_vm.$media('sm+') ? 'p-32' : 'p-20',staticStyle:{\"max-width\":\"640px\"}},[_c('div',{staticClass:\"w-100 mb-10 text-right\"},[_c('button-link',{attrs:{\"icon\":\"close\",\"aria-label\":_vm._f(\"ucfirst\")(_vm.$t('common.close'))},on:{\"click\":_vm.close}})],1),_vm._v(\" \"),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.text)}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./HtmlModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./HtmlModal.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./HtmlModal.vue?vue&type=template&id=43d5ed6c\"\nimport script from \"./HtmlModal.vue?vue&type=script&lang=js\"\nexport * from \"./HtmlModal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import toPairs from \"lodash/toPairs\"\nimport { defaultCtx } from \"~/lib/AjaxCtx\"\nimport { css } from \"~/lib/aphrodite\"\nimport { BREAKPOINTS } from \"~/lib/constants\"\nimport store from \"~/store\"\n\n\nexport default {\n install(Vue) {\n Vue.directive(\"external-links\", (el) => {\n const as = Array.from(el.querySelectorAll(\"a\"))\n for (const a of as) {\n a.setAttribute(\"target\", \"_blank\")\n a.setAttribute(\"ref\", \"nofollow noopener\")\n }\n })\n\n Vue.prototype.$css = css\n Object.defineProperty(Vue.prototype, \"$theme\", {\n get() {\n return store.getters[\"theme/styles\"]\n }\n })\n\n // $media('sm+') // true if this.$mq == 'sm' or greater\n // $media('sm-') // true if this.$mq == 'sm' or smaller\n // $media('sm') // true if this.$mq == 'sm'\n Vue.prototype.$media = function $media(q) {\n let [_match, mq, op] = /(\\w+)([+-]?)/.exec(q)\n if (!op) op = \"=\"\n\n const sortedBreakpoints = toPairs(BREAKPOINTS).sort((a, b) => a[1] - b[1])\n\n const currentIndex = sortedBreakpoints.findIndex(b => b[0] == this.$mq)\n if (currentIndex == -1) {\n throw new Error(`Couldn't find breakpoint: ${this.$mq}`)\n }\n\n const idx = sortedBreakpoints.findIndex(b => b[0] == mq)\n if (idx == -1) {\n throw new Error(`Couldn't find breakpoint: ${mq}`)\n }\n\n switch (op) {\n case \"=\":\n return this.$mq == mq\n\n case \"+\":\n return idx <= currentIndex\n\n case \"-\":\n return idx >= currentIndex\n\n default:\n throw new Error(`Unknown operator ${op}`)\n }\n }\n\n /**\n * This function returns the class needed for the background color\n * using Aphrodite classes if needed\n * @param color\n * @returns String\n */\n Vue.prototype.$bg = function $bg(color) {\n if (!color) return \"\"\n switch (color) {\n case \"primary\":\n return this.$css(this.$theme.bgPrimary)\n case \"negative\":\n return this.$css(this.$theme.bgNegative)\n case \"danger\":\n case \"success\":\n case \"warning\":\n case \"gray-dark\":\n case \"gray-light\":\n case \"gray-medium\":\n case \"white\":\n case \"black\":\n case \"transparent\":\n return `bg-${color}`\n default:\n throw new Error(`Color ${color} is not defined`)\n }\n }\n\n /**\n * This function returns the class needed for the text color\n * using Aphrodite classes if needed\n * @param color\n * @returns String\n */\n Vue.prototype.$text = function $text(color) {\n if (!color) return \"\"\n switch (color) {\n case \"primary\":\n return this.$css(this.$theme.textPrimary)\n case \"negative\":\n return this.$css(this.$theme.textNegative)\n case \"danger\":\n case \"success\":\n case \"warning\":\n case \"gray-dark\":\n case \"gray-light\":\n case \"gray-medium\":\n case \"white\":\n case \"black\":\n case \"transparent\":\n return `text-${color}`\n default:\n throw new Error(`Color ${color} is not defined`)\n }\n }\n\n Vue.prototype.$http = defaultCtx\n\n Vue.prototype.$assign = window.location.assign.bind(window.location)\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._t(\"default\"),_vm._v(\" \"),_c('panel-stack',{attrs:{\"panels\":_vm.panels,\"react-to-events\":_vm.shouldPanelsReactToEvents()}}),_vm._v(\" \"),_vm._l((_vm.modalStack),function(modal,idx){return _c('modal-layer',{key:modal.key || `modal-${idx}`,class:modal.layerClass,staticStyle:{\"z-index\":\"300\"},attrs:{\"handle-focus\":modal.focus,\"react-to-events\":_vm.shouldModalReactToEvents(idx),\"skip-trapping-focus-when-this-element-gets-focus\":modal.skipTrappingFocusWhenThisElementGetsFocus},on:{\"escape\":modal.onEscape,\"click-outside\":modal.onClickOutside}},[_c(modal.component,_vm._g(_vm._b({tag:\"component\",class:modal.klass},'component',modal.props,false),modal.on))],1)}),_vm._v(\" \"),(_vm.dialog)?_c('modal-layer',{staticClass:\"bg--black--50\",staticStyle:{\"z-index\":\"400\"},attrs:{\"react-to-events\":_vm.shouldDialogReactToEvents(),\"handle-focus\":_vm.dialog.focus},on:{\"escape\":_vm.dialog.onEscape,\"click-outside\":_vm.dialog.onClickOutside}},[_c('dialog-box',{ref:\"dialog\",attrs:{\"icon\":_vm.dialog.icon,\"title\":_vm.dialog.title,\"description\":_vm.dialog.description,\"mode\":_vm.dialog.mode,\"options\":_vm.dialog.options}})],1):_vm._e(),_vm._v(\" \"),_c('transition-group',{staticClass:\"w-100 position-fixed notification--container\",staticStyle:{\"z-index\":\"500\"},attrs:{\"name\":\"fade\",\"tag\":\"div\",\"appear\":\"\"}},_vm._l((_vm.notifications),function(notification){return _c('notification-item',{key:notification.id,attrs:{\"notification\":notification},on:{\"click\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.dismissNotification(notification)}}})}),1),_vm._v(\" \"),_vm._l((_vm.$popups.pops),function(pop,index){return _c('light-pop-up',{key:pop.id,staticClass:\"position-relative\",staticStyle:{\"z-index\":\"600\"},attrs:{\"pop\":pop,\"react-to-events\":index === (_vm.$popups.pops.length-1)}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data() {\n return {\n panels: {}\n }\n },\n\n provide() {\n return {\n pushSidePanel: (name, cmp, options) => this.pushSidePanel(name, cmp, options),\n popSidePanel: (name) => this.popSidePanel(name),\n toggleSidePanel: (name, cmp, options) => this.toggleSidePanel(name, cmp, options)\n }\n },\n\n methods: {\n /**\n * Show a `component` as a side panel.\n * There can only be one `component` for each `panelName`.\n *\n * * props: Props to pass to the component.\n * * on: Listeners to pass to the component.\n * * enterFrom: Which side of the window to show the panel at.\n * Valid values: \"right\" | \"left\" | \"bottom\" | \"top\".\n * Defaults to: \"right\".\n * * focus: Give focus to the panel, keep it inside and restore it when closed.\n * * blockScroll: Whether to block the scroll on the html element.\n * * overlayClass: A class to apply to the ModalLayer surrounding the panel.\n * * onClickOutside: A function to be called when clicking outside the panel.\n * Defaults to removing the panel.\n * You probably want to use `onClose`.\n * * onEscape: A function to be called when pressing Escape.\n * Defaults to removing the panel.\n * You probably want to use `onClose`.\n * * onClose: A function to be called when the panel is closed.\n * * fullScreen: A falsy value, or a function returning a boolean.\n * If the functions returns true, show the panel above the main header.\n * * skipTrappingFocusWhenThisElementGetsFocus:\n * Don't run the focus trapping logic if the focus goes to this element.\n * You probably don't want this.\n * Consult the team if you're going to use it.\n *\n * returns: A function that removes the panel when called.\n */\n pushSidePanel(panelName, component, {\n props={},\n on={},\n enterFrom=\"right\",\n focus=true,\n blockScroll=true,\n overlayClass=\"bg--black--50\",\n skipTrappingFocusWhenThisElementGetsFocus,\n onClickOutside,\n onEscape,\n onClose,\n fullScreen=false\n }={}) {\n const panelInfo = {\n restoreFocusEl: document.activeElement,\n component,\n props,\n fullScreen,\n blockScroll,\n enterFrom,\n on,\n focus,\n overlayClass,\n skipTrappingFocusWhenThisElementGetsFocus,\n onClickOutside: onClickOutside ?? (event => {\n event.stopPropagation()\n this.popSidePanel(panelName)\n }),\n onEscape: onEscape ?? (event => {\n event.stopPropagation()\n this.popSidePanel(panelName)\n }),\n onClose\n }\n this.$set(this.panels, panelName, panelInfo)\n return () => this.popSidePanel(panelName)\n },\n\n\n /**\n * Removes a side panel of the given `panelName`, if any.\n */\n popSidePanel(panelName) {\n const panel = this.panels[panelName]\n if (!panel) return\n this.$delete(this.panels, panelName)\n panel.onClose?.()\n if (panel.focus) {\n this.$nextTick(() => {\n // Do this after the panel has been destroyed,\n // so its focus handler doesn't kick in.\n panel.restoreFocusEl?.focus()\n })\n }\n },\n\n toggleSidePanel(panelName, component, options) {\n if (panelName in this.panels) {\n this.popSidePanel(panelName)\n } else {\n this.pushSidePanel(panelName, component, options)\n }\n }\n }\n}\n","import Vue from \"vue\"\n\nfunction removeModal(modalStack, modalInfo) {\n modalStack.remove(modalInfo)\n modalInfo.onClose?.()\n if (modalInfo.focus) {\n Vue.nextTick(() => {\n // Do this after the modal has been destroyed,\n // so its focus handler doesn't kick in.\n modalInfo.restoreFocusEl?.focus()\n })\n }\n}\n\nexport default {\n data() {\n return {\n modalStack: []\n }\n },\n\n provide() {\n return {\n pushModal: (cmp, options) => this.pushModal(cmp, options),\n unshiftModal: (cmp, options) => this.unshiftModal(cmp, options),\n popModal: () => this.popModal()\n }\n },\n\n methods: {\n /**\n * Show a component as a modal.\n * Adds it to the top of the modal stack.\n *\n * * props: Props to pass to the component.\n * * on: Listeners to pass to the component.\n * * key: Optional. A key for the ModalLayer component.\n * * klass: A class for the component.\n * * layerClass: A class for the ModalLayer component the modal is shown inside of.\n * * focus: Give focus to the modal, keep it inside and restore it when closed.\n * * onClickOutside: A function to be called when clicking outside the modal.\n * Defaults to removing the modal.\n * You probably want to use `onClose`.\n * * onEscape: A function to be called when pressing Escape.\n * Defaults to removing the modal.\n * You probably want to use `onClose`.\n * * onClose: A function to be called when the modal is closed.\n * * isPersistent: Whether to close this modal when the current URL changes.\n * * skipTrappingFocusWhenThisElementGetsFocus:\n * Don't run the focus trapping logic if the focus goes to this element.\n * You probably don't want this.\n * Consult the team if you're going to use it.\n *\n * returns: A function that removes the modal when called.\n */\n pushModal(component, {\n props={},\n on={},\n key=undefined,\n klass,\n layerClass,\n focus=true,\n skipTrappingFocusWhenThisElementGetsFocus,\n onClickOutside,\n onEscape,\n onClose,\n isPersistent=false\n }={}) {\n const modalInfo = {\n restoreFocusEl: document.activeElement,\n component,\n isPersistent,\n key,\n klass,\n layerClass: layerClass ?? \"bg--black--50\",\n on,\n focus,\n skipTrappingFocusWhenThisElementGetsFocus,\n onClickOutside: onClickOutside ?? (event => {\n event.stopPropagation()\n removeModal(this.modalStack, modalInfo)\n }),\n onEscape: onEscape ?? (event => {\n event.stopPropagation()\n removeModal(this.modalStack, modalInfo)\n }),\n onClose,\n props\n }\n this.modalStack.push(modalInfo)\n return () => removeModal(this.modalStack, modalInfo)\n },\n\n /**\n * Show a component as a modal.\n * Adds it to the bottom of the modal stack.\n *\n * Same options as `pushModal`.\n *\n * You probably want to use `pushModal`.\n */\n unshiftModal(component, {\n props={},\n on={},\n key=undefined,\n klass,\n layerClass,\n focus=true,\n onClickOutside,\n onEscape,\n isPersistent=false\n }={}) {\n const modalInfo = {\n restoreFocusEl: document.activeElement,\n component,\n isPersistent,\n key,\n klass,\n layerClass: layerClass ?? \"bg--black--50\",\n on,\n focus,\n onClickOutside: onClickOutside ?? (event => {\n event.stopPropagation()\n removeModal(this.modalStack, modalInfo)\n }),\n onEscape: onEscape ?? ((event) => {\n event.stopPropagation()\n removeModal(this.modalStack, modalInfo)\n }),\n props\n }\n this.modalStack.unshift(modalInfo)\n return () => removeModal(this.modalStack, modalInfo)\n },\n\n /**\n * Removes the topmost modal, if any.\n */\n popModal() {\n const modalInfo = this.modalStack.pop()\n if (!modalInfo) return\n\n modalInfo.onClose?.()\n if (modalInfo.focus) {\n this.$nextTick(() => {\n // Do this after the modal has been destroyed,\n // so its focus handler doesn't kick in.\n modalInfo.restoreFocusEl?.focus()\n })\n }\n }\n }\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./AlertModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./AlertModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertModal.vue?vue&type=template&id=712b24ce&scoped=true\"\nimport script from \"./AlertModal.vue?vue&type=script&lang=js\"\nexport * from \"./AlertModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./AlertModal.vue?vue&type=style&index=0&id=712b24ce&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"712b24ce\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"dialog-box bg-light mx-auto position-relative py-32 rounded shadow-default overflow-y-auto overflow-x-hidden\",attrs:{\"aria-labelledby\":\"dialog-label\",\"aria-modal\":\"true\",\"role\":\"dialog\"}},[(!_vm.isRequired)?_c('button-link',{staticClass:\"float-right mr-16\",attrs:{\"icon\":\"close\"},on:{\"click\":_vm.cancel}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"px-48\"},[_c('icon-circled',{staticClass:\"d-block mx-auto mb-20 mt-32\",class:_vm.$css(_vm.$theme.textPrimary),attrs:{\"size\":110,\"icon\":\"info\"}}),_vm._v(\" \"),_c('p',{staticClass:\"font--20 lh--26 font-weight-light text-center pb-8\",class:_vm.$css(_vm.$theme.textPrimary)},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(this.$t(\"common.alertModal.title\")))+\"\\n \")]),_vm._v(\" \"),_c('validatable-form',{staticClass:\"d-flex flex-column\",attrs:{\"fields\":_vm.cookedAlertFields,\"values\":_vm.formData},on:{\"submit\":_vm.submit},scopedSlots:_vm._u([{key:\"default\",fn:function({ formFields }){return [_vm._l((formFields),function({ props, component },key,idx){return _c('div',{key:`input-${idx}`,staticClass:\"mb-20\"},[_c(component,_vm._b({tag:\"component\",attrs:{\"required\":\"\"},scopedSlots:_vm._u([(props.tip)?{key:\"right\",fn:function(){return undefined},proxy:true}:null],null,true),model:{value:(_vm.formData[key]),callback:function ($$v) {_vm.$set(_vm.formData, key, $$v)},expression:\"formData[key]\"}},'component',props,false))],1)}),_vm._v(\" \"),_c('div',{staticClass:\"mt-32 mb-32\"},[(!_vm.isRequired)?_c('input-checkbox',{model:{value:(_vm.alertSkipped),callback:function ($$v) {_vm.alertSkipped=$$v},expression:\"alertSkipped\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.$t(\"common.alertModal.checkBox\")))+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"d-flex text-center justify-content-center\"},[_c('base-button',{staticClass:\"w-50\",attrs:{\"data-t\":\"button-confirm\",\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"common.confirm\"))+\"\\n \")])],1)]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./LightPopUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./LightPopUp.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./LightPopUp.vue?vue&type=template&id=dff5db44\"\nimport script from \"./LightPopUp.vue?vue&type=script&lang=js\"\nexport * from \"./LightPopUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.rootClass},[_c('div',{attrs:{\"tabindex\":\"0\"}}),_vm._v(\" \"),_c(_vm.pop.component,_vm._g(_vm._b({ref:\"popup\",tag:\"component\",style:(_vm.style)},'component',_vm.pop.props,false),_vm.pop.listeners)),_vm._v(\" \"),_c('div',{attrs:{\"tabindex\":\"0\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ModalLayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./ModalLayer.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./ModalLayer.vue?vue&type=template&id=b805c670&scoped=true\"\nimport script from \"./ModalLayer.vue?vue&type=script&lang=js\"\nexport * from \"./ModalLayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./ModalLayer.vue?vue&type=style&index=0&id=b805c670&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b805c670\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":_vm.transition,\"appear\":\"\"},on:{\"after-enter\":_vm.afterEnter}},[_c('div',{staticClass:\"modal--layer overflow-auto position-fixed\",on:{\"mousedown\":_vm.click,\"touchstart\":_vm.click}},[_c('div',{attrs:{\"tabindex\":\"0\"}}),_vm._v(\" \"),_vm._t(\"default\"),_vm._v(\" \"),_c('div',{attrs:{\"tabindex\":\"0\"}})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./NotificationItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./NotificationItem.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./NotificationItem.vue?vue&type=template&id=0877e14c\"\nimport script from \"./NotificationItem.vue?vue&type=script&lang=js\"\nexport * from \"./NotificationItem.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex align-items-start bg-light mxw-100 rounded shadow-default mtsp-8 py-8 px-14\",attrs:{\"id\":`notification-${_vm.notification.id}`}},[_c('v-icon',{staticClass:\"mr-16\",class:_vm.colorClass,attrs:{\"name\":_vm.iconName,\"w\":30,\"flip\":_vm.notification.type === 'warning' ? 'vertical' : undefined}}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-column w-100 mr-auto\"},[(_vm.notification.title)?_c('p',{staticClass:\"font--16 lh--20 mb-0 text-dark text-break mtsp-8\"},[_vm._v(\"\\n \"+_vm._s(_vm.notification.title)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.infoItems.length)?[(_vm.infoItems.length == 1)?_c('p',{staticClass:\"font--12 mb-0 text-gray-dark text-break mtsp-8 mtsp-12\"},[_vm._v(\"\\n \"+_vm._s(_vm.infoItems[0])+\"\\n \")]):_c('ul',{staticClass:\"pl-10 mtsp-8 mtsp-12\"},_vm._l((_vm.infoItems),function(line,idx){return _c('li',{key:idx,staticClass:\"font--12 text-gray-dark\"},[_vm._v(\"\\n \"+_vm._s(line)+\"\\n \")])}),0)]:_vm._e(),_vm._v(\" \"),(_vm.notification.actionText)?[_c('base-button',{ref:\"actionText\",staticClass:\"mtsp-12\",attrs:{\"theme\":\"secondary\",\"min-width\":140},on:{\"click\":_vm.callback}},[_vm._v(\"\\n \"+_vm._s(_vm.notification.actionText)+\"\\n \")]),_vm._v(\" \"),_c('tool-tip',{attrs:{\"name\":\"actionText\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"ucfirst\")(_vm.notification.actionText))+\"\\n \")])]:_vm._e()],2),_vm._v(\" \"),(_vm.notification.showCloseButton || _vm.$media('s-'))?_c('button-link',{staticClass:\"ml-14\",attrs:{\"icon\":\"close\",\"theme\":\"dark\",\"icon-size\":20},nativeOn:{\"click\":function($event){return _vm.removeNotification.apply(null, arguments)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./PanelStack.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./PanelStack.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./PanelStack.vue?vue&type=template&id=a3addc72\"\nimport script from \"./PanelStack.vue?vue&type=script&lang=js\"\nexport * from \"./PanelStack.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.panels),function(panel,key){return _c('modal-layer',{key:`panel-${key}`,staticClass:\"d-flex\",class:_vm.sidePanelModalLayerClass(panel),style:(_vm.panelStackStyle(panel)),attrs:{\"handle-focus\":panel.focus,\"react-to-events\":_vm.shouldPanelReactToEvents(key),\"skip-trapping-focus-when-this-element-gets-focus\":panel.skipTrappingFocusWhenThisElementGetsFocus,\"transition\":_vm.sidePanelModalLayerTransition(panel)},on:{\"escape\":panel.onEscape,\"click-outside\":panel.onClickOutside}},[_c(panel.component,_vm._g(_vm._b({tag:\"component\"},'component',panel.props,false),panel.on))],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/source-map-loader/dist/cjs.js!./AppChrome.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/source-map-loader/dist/cjs.js!./AppChrome.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppChrome.vue?vue&type=template&id=70ca1d5e&scoped=true\"\nimport script from \"./AppChrome.vue?vue&type=script&lang=js\"\nexport * from \"./AppChrome.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppChrome.vue?vue&type=style&index=0&id=70ca1d5e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70ca1d5e\",\n null\n \n)\n\nexport default component.exports","// target.addEventListener(type, listener[, options]);\n// target.addEventListener(type, listener[, useCapture]);\n\n// target.removeEventListener(type, listener[, options]);\n// target.removeEventListener(type, listener[, useCapture]);\n\nimport isFunction from \"lodash/isFunction\"\nimport isPlainObject from \"lodash/isPlainObject\"\n\nexport function cookListener(listener) {\n let target = window\n let cookedListener\n let options = false\n\n if (isPlainObject(listener)) {\n cookedListener = listener.handler\n target = listener.target ?? target\n options = listener.options ?? options\n } else if (isFunction(listener)) {\n cookedListener = listener\n } else {\n throw new Error(`Unexpected listener format, it's supposed to be an object or a function`)\n }\n return {\n target,\n options,\n listener: cookedListener\n }\n}\n\nexport default class ListenerManager {\n constructor() {\n this.contexts = new Map() // context => eventType => Set\n }\n\n listen({ target=window, type, listener, options, context }) {\n target.addEventListener(type, listener, options)\n const listeners = this.storeListener(type, listener, context)\n\n return () => {\n target.removeEventListener(type, listener, options)\n listeners.delete(listener)\n }\n }\n\n clear(name) {\n const context = this.contexts.get(name)\n if (!context) return\n\n for (let [type, listeners] of context) {\n for (let listener of listeners) {\n const { target } = cookListener(listener)\n target.removeEventListener(type, listener)\n }\n }\n return this.contexts.delete(name)\n }\n\n storeListener(type, listener, context) {\n if (!this.contexts.has(context)) this.contexts.set(context, new Map())\n const types = this.contexts.get(context)\n if (!types.has(type)) types.set(type, new Set())\n const listeners = types.get(type)\n listeners.add(listener)\n return listeners\n }\n}\n","import {\n default as ListenerManager,\n cookListener\n} from \"~/lib/ListenerManager\"\n\nexport default {\n install(Vue) {\n const manager = new ListenerManager()\n\n Vue.prototype.$manager = manager\n\n Vue.prototype.$listen = function $listen(type, listener, options) {\n const { target, listener: cookedListener, options: cookedOptions } = cookListener(listener)\n return manager.listen({\n target,\n type,\n listener: cookedListener,\n options: options ?? cookedOptions,\n context: this\n })\n }\n\n Vue.prototype.$clear = function $clear() {\n manager.clear(this)\n }\n\n Vue.mixin({\n mounted() {\n const componentDefinition = this.constructor.options\n const listeners = componentDefinition.globalListeners ?? {}\n\n for (const [type, listener] of Object.entries(listeners)) {\n const listenerObject = cookListener(listener)\n manager.listen({\n target: listenerObject.target,\n type,\n listener: listenerObject.listener.bind(this),\n options: listenerObject.options,\n context: this\n })\n }\n },\n\n beforeDestroy() {\n manager.clear(this)\n }\n })\n }\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=style&index=0&id=b3047f6c&prod&scoped=true&lang=css\"","import lodashFindLast from \"lodash/findLast\"\nimport lodashFindLastIndex from \"lodash/findLastIndex\"\n\n/**\n * Returns the last element of the Array.\n */\nArray.prototype.last = function last() {\n return this[this.length - 1]\n}\n\n/**\n * Returns all but the last element of the Array.\n */\nArray.prototype.init = function init() {\n return this.slice(0, -1)\n}\n\n/**\n * Returns all but the first element of the Array.\n */\nArray.prototype.tail = function tail() {\n return this.slice(1)\n}\n\n/**\n * Returns the first element of the Array\n */\nArray.prototype.first = function first() {\n return this[0]\n}\n\n/**\n * Swaps the elements given by indices `x` and `y`.\n */\nArray.prototype.swap = function swap(x, y) {\n let temp = this[x]\n this[x] = this[y]\n this[y] = temp\n return this\n}\n\n/**\n * Find and remove a given item. Returns the item's index, or -1 if not found.\n */\nArray.prototype.remove = function remove(item) {\n let idx = this.indexOf(item)\n if (idx != -1) this.splice(idx, 1)\n return idx\n}\n\nArray.prototype.findLastIndex = function findLastIndex() {\n return lodashFindLastIndex(this, ...arguments)\n}\n\nArray.prototype.findLast = function findLast() {\n return lodashFindLast(this, ...arguments)\n}\n\n/**\n * Check if a string is empty or whitespace.\n */\nString.prototype.empty = function empty() {\n return this.trim().length == 0\n}\n\nElement.prototype.inspect = function inspect() {\n const el2str = (el) => {\n const tag = el.tagName.toLowerCase()\n const classes = Array.from(el.classList).map(c => `.${c}`).join(\"\")\n const id = el.id ? `#${el.id}` : \"\"\n return tag.concat(classes, id)\n }\n\n const path2str = (el) => {\n const path = []\n\n do {\n path.unshift(el)\n } while((el = el.parentElement))\n\n return path.map(el2str).join(\" > \")\n }\n\n return path2str(this)\n}\n\n\nEvent.prototype.composedPath = Event.prototype.composedPath\n || 'path' in Event.prototype && function() {\n return this.path\n }\n || function() {\n let element = this.target || null\n let pathArr = [element]\n if (!element || !element.parentElement) {\n return []\n }\n while (element.parentElement) {\n element = element.parentElement\n pathArr.unshift(element)\n }\n return pathArr\n }\n\n","import Vue from \"vue\"\nimport differenceInYears from \"date-fns/differenceInYears\"\nimport parseISO from \"date-fns/parseISO\"\nimport store from \"~/store\"\nimport i18n from \"~/i18n\"\nimport { notify } from \"~/lib/bugsnag\"\n\nimport {\n capitalize,\n coalesce,\n ucfirst,\n ucwords,\n ucall,\n fmtdate,\n fmtdateshort,\n fmtdatelong,\n fmtdatetime,\n ellipsis,\n fmtbignumber,\n fmtsize,\n fmtwordsago,\n html2text,\n fmttime,\n fmtweekday,\n fmtmonth,\n fmtmonthshort,\n fmtmonthyear,\n fmtDigitalTimeMinsSecs,\n fmtDigitalTimeHoursMins,\n fmtDigitalTimeHoursMinsSecs,\n fmtTimeHourMin\n} from \"~/lib/utils\"\n\n// \"hElLo wOrLd\" => \"Hello world\"\nVue.filter(\"capitalize\", capitalize)\n\n// \"hello world \" => \"hello world\"\nVue.filter(\"coalesce\", coalesce)\n\n// \"hElLo wOrLd\" => \"HElLo wOrLd\"\nVue.filter(\"ucfirst\", ucfirst)\n\n// \"hElLo wOrLd\" => \"HElLo WOrLd\"\nVue.filter(\"ucwords\", ucwords)\n\n// \"hElLo wOrLd\" => \"HELLO WORLD\"\nVue.filter(\"ucall\", ucall)\n\n// Date => \"DD-MM-YY\"\nVue.filter(\"dateshort\", v => {\n try {\n return fmtdateshort(store.getters.locale, store.getters.timeZone, v)\n } catch (error) {\n notify(error)\n return \"-\"\n }\n})\n\n// Date => \"DD MMM YYYY\"\nVue.filter(\"date\", v => {\n try {\n return fmtdate(store.getters.locale, store.getters.timeZone, v)\n } catch (error) {\n notify(error)\n return \"-\"\n }\n})\n\n// Date => \"DD MMMM YYYY\"\nVue.filter(\"datelong\", v => {\n try {\n return fmtdatelong(store.getters.locale, store.getters.timeZone, v)\n } catch (error) {\n notify(error)\n return \"-\"\n }\n})\n\nVue.filter(\"monthyear\", v => {\n try {\n return fmtmonthyear(store.getters.locale, store.getters.timeZone, v)\n } catch (error) {\n notify(error)\n return \"-\"\n }\n})\n\n// Date => \"HH:mm:ss\"\nVue.filter(\"time\", v => {\n try {\n return fmttime(store.getters.locale, store.getters.timeZone, v)\n } catch (error) {\n notify(error)\n return \"-\"\n }\n})\n\n// seconds => \"mm:ss\"\nVue.filter(\"mmss\", fmtDigitalTimeMinsSecs)\n\n// seconds => \"hh:mm\"\nVue.filter(\"hhmm\", fmtDigitalTimeHoursMins)\n\n// seconds => \"hh:mm:ss\"\nVue.filter(\"hhmmss\", fmtDigitalTimeHoursMinsSecs)\n\n\n// seconds => \"1h 20m\"\nVue.filter(\"hourmin\", fmtTimeHourMin)\n\nexport function wordsago(date, limit=1) {\n if (differenceInYears(new Date(), date) < limit) {\n return fmtwordsago(store.getters.locale, date)\n } else {\n return i18n.tc(\"common.moreThanXyears\", limit)\n }\n}\n\n// Date => \"1 minute ago\"\nVue.filter(\"wordsago\", wordsago)\n\n// Date => \"DD-MM-YYYY HH:mm\"\nVue.filter(\"datetime\", v => fmtdatetime(store.getters.locale, store.getters.timeZone, v))\n\n// Date, mode ('short' | 'long') => \"Lunes| Lun\"\nVue.filter(\"weekday\", v => fmtweekday(store.getters.locale, store.getters.timeZone, v))\n\n// Date, mode ('short' | 'long') => \"Septiembre | Sept.\"\nVue.filter(\"month\", (v, mode) => fmtmonth(store.getters.locale, store.getters.timeZone, v, mode))\n\n// Date, mode ('short' | 'long') => \"Septiembre | Sept.\"\nVue.filter(\"monthshort\", v => fmtmonthshort(store.getters.locale, store.getters.timeZone, v))\n\n\n// \"long string\", 6 => \"lon...\"\nVue.filter(\"ellipsis\", ellipsis)\n\n// 1024 => 1 KB\nVue.filter(\"size\", fmtsize)\n\n// 100000 => 100K\n// 1e7 => 10M\nVue.filter(\"bignumber\", fmtbignumber)\n\n// { foo: \"bar\" } => \"{\"foo\":\"bar\"}\"\nVue.filter(\"json\", JSON.stringify)\n\n// \"2011-03-14T00:00:00+00:00\" => Date\nVue.filter(\"iso8601\", v => parseISO(v))\n\n// \"

Hola

\" => \"Hola\"\nVue.filter(\"html\", html2text)\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--0-0!../../node_modules/css-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??ref--0-2!../../node_modules/sass-loader/dist/cjs.js??ref--0-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopUp.vue?vue&type=style&index=0&id=5bf434fa&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayButton.vue?vue&type=style&index=0&id=25057b97&prod&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingSpinner.vue?vue&type=style&index=0&id=2fa3819e&prod&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfPage.vue?vue&type=style&index=0&id=43141419&prod&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinnerBlock.vue?vue&type=style&index=0&id=ec95deec&prod&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=style&index=0&id=f8f2a208&prod&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScormPlayer.vue?vue&type=style&index=0&id=34fa9893&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileTemplate.vue?vue&type=style&index=0&id=14998491&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputText.vue?vue&type=style&index=0&id=3ea2dede&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileGroupTemplate.vue?vue&type=style&index=0&id=4c6a0fb1&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputCost.vue?vue&type=style&index=0&id=bba4559e&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--0-0!../../../node_modules/css-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--0-2!../../../node_modules/sass-loader/dist/cjs.js??ref--0-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputNumber.vue?vue&type=style&index=0&id=e9bae430&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--0-0!../../node_modules/css-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??ref--0-2!../../node_modules/sass-loader/dist/cjs.js??ref--0-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteList.vue?vue&type=style&index=0&id=baf1d480&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--0-0!../../../node_modules/css-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--0-2!../../../node_modules/sass-loader/dist/cjs.js??ref--0-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputSwitch.vue?vue&type=style&index=0&id=a27275a2&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--0-0!../../../node_modules/css-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--0-2!../../../node_modules/sass-loader/dist/cjs.js??ref--0-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputTextarea.vue?vue&type=style&index=0&id=e411b3f6&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertModal.vue?vue&type=style&index=0&id=712b24ce&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DialogBox.vue?vue&type=style&index=0&id=74df63a8&prod&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--1-0!../../node_modules/css-loader/dist/cjs.js??ref--1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??ref--1-2!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalLayer.vue?vue&type=style&index=0&id=b805c670&prod&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--0-0!../node_modules/css-loader/dist/cjs.js??ref--0-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/dist/cjs.js??ref--0-2!../node_modules/sass-loader/dist/cjs.js??ref--0-3!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChrome.vue?vue&type=style&index=0&id=70ca1d5e&prod&lang=scss&scoped=true\"","\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./Icon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/source-map-loader/dist/cjs.js!./Icon.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./Icon.vue?vue&type=script&lang=js\"\nexport * from \"./Icon.vue?vue&type=script&lang=js\"\nimport style0 from \"./Icon.vue?vue&type=style&index=0&id=b3047f6c&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b3047f6c\",\n null\n \n)\n\nexport default component.exports","import Icon from \"~/components/Icon\"\nimport Vue from \"vue\"\n\nVue.component(\"VIcon\", Icon)\n\nimport iconsList from \"./icons.json\"\n// custom icons\nIcon.register(iconsList)\n","/**\n * ┌──────────────────────────┐\n * │ Did the user set their │ No\n * │ ├────────► Go to initial-settings view\n * │ language and password? │\n * └────────────┬─────────────┘\n * │ Yes\n * ┌────────────▼─────────────┐\n * │ Did the user accept │ No\n * │ ├────────► Go to data-policy view\n * │ the data policy? │\n * └────────────┬─────────────┘\n * │ Yes\n * ┌────────────▼─────────────┐\n * │ Is there an assign │ Yes\n * │ ├────────► window.location.assign to the the page in assign parameter\n * │ parameter in the url? │\n * └────────────┬─────────────┘\n * │ No\n * ┌────────────▼─────────────┐\n * │ Is there a redirect │ Yes\n * │ ├────────► Go the the page in redirect parameter\n * │ parameter in the url? │\n * └────────────┬─────────────┘\n * │ No\n * ┌────────────▼─────────────┐\n * │ Is the default entry │ No\n * │ ├────────► Go to the home page\n * │ point defined? │\n * └────────────┬─────────────┘\n * │ Yes\n * ┌────────────▼─────────────┐ No\n * │ Is it an external URL? ├────────► Use the router to go to that URL\n * └────────────┬─────────────┘\n * │ Yes\n * ▼\n * Use location.assign to\n * go to that URL\n */\n\nexport function forwardToNextPage({\n assign,\n entryPoint,\n locationAssign=window.location.assign.bind(window.location),\n loginSteps={},\n redirect,\n router\n}) {\n const { language, password, dataPolicy } = loginSteps\n\n if (language || password) {\n router.push({\n name: \"initial-setup\",\n query: { redirect }\n })\n } else if (dataPolicy) {\n router.push({\n name: \"data-policy\",\n query: { redirect }\n })\n } else if (assign) {\n locationAssign(assign)\n } else if (redirect) {\n try {\n router.push(redirect)\n } catch(_) {\n // The redirection throws an error if some navigationGuard detects the user doesn't have access to that page\n }\n } else if (entryPoint) {\n if (entryPoint.isExternal) {\n locationAssign(entryPoint.url)\n } else {\n router.push(entryPoint.url)\n }\n } else {\n router.push({ name: \"home\" })\n }\n}\n\n/**\n * Calculate the query based on \"assign\" & \"redirect\"\n * so that we do not include them if they are empty.\n */\nexport function getQuery({ assign, redirect }) {\n const query = {}\n if (assign) {\n query.assign = assign\n }\n if (redirect) {\n query.redirect = redirect\n }\n return query\n}\n","import confetti from \"canvas-confetti\"\n\nexport function showConfetti(colors) {\n colors = colors || [\"#fff\", \"f00\"]\n const end = Date.now() + (5 * 1000)\n let count = 0;\n\n (function frame() {\n const color = colors[count++ % colors.length]\n\n confetti({\n particleCount: 2,\n angle: 60,\n spread: 100,\n origin: { x: 0, y: 0.4 },\n colors: [color]\n })\n\n confetti({\n particleCount: 2,\n angle: 90,\n spread: 100,\n origin: { x: 0.5, y: 0.4 },\n colors: [color]\n })\n\n confetti({\n particleCount: 2,\n angle: 120,\n spread: 100,\n origin: { x: 1, y: 0.4 },\n colors: [color]\n })\n\n if (Date.now() < end) {\n window.requestAnimationFrame(frame)\n }\n }())\n}","export default __webpack_public_path__ + \"images/cheer.mp3?aee4263b\";","/**\n * This method creates a guard which allows only unknow users entering the public routes. It let\n * them keep browsing otherwise.\n *\n * @param {Object} store - A reference to VUEX`s store.\n * @returns {Function (to, from, next) - void } - A guard to apply before login & remember routes\n */\nexport function createPublicRoutesGuard(store) {\n return (to, from, next) => {\n if (store.getters.currentUser) {\n next(from)\n } else {\n next()\n }\n }\n}\n\n/**\n * This method creates a guard which allows to access the initial setup route only for those\n * logged users that haven't picked up a language or password yet, if (and only if) the platforms\n * requires that sort of initialization.\n *\n * @param {Object} store - A reference to VUEX's store.\n * @returns {Function (to, from, next) - void } - A guard to apply before initial-setup route\n */\n\nexport function createInitialSetupGuard(store) {\n return (to, from, next) => {\n const user = store.getters.currentUser\n const initialSetupDone = user && !user.loginSteps.language && !user.loginSteps.password\n\n if ( !user || initialSetupDone ) {\n next(from)\n } else {\n next()\n }\n }\n}\n\n/**\n * This method creates a guard which allows to access the data policy acceptance route\n * only for those users that haven't done it yet, if (and only if) the platform requires this initial step.\n *\n * @param {Object} store - a reference to VUEX's store.\n * @returns { Function (to, next, from) - void } - A guard to apply before entering data-policy route.\n */\n\nexport function createDataPolicyGuard(store) {\n return (to, from, next) => {\n const user = store.getters.currentUser\n const dataPolicyAccepted = user && !user.loginSteps.dataPolicy\n\n if ( !user || dataPolicyAccepted ) {\n next(from)\n } else {\n next()\n }\n }\n}\n\n/**\n * This method prevents users to access spaces for which there is no link available\n *\n * @param {Object} store - a reference to VUEX's store.\n * @returns { Function (to, next, from) - void } - A guard to apply before entering data-policy route.\n */\n\nexport function createSpacesGuard(store) {\n return (to, _from, next) => {\n const link = store.state.structure.links.find(l => l.url == to.path)\n if (link) {\n next()\n } else {\n next(\"not-found\")\n }\n }\n}\n\n/**\n * Prevents users from accessing communication area if it's not included in the space links\n */\n\nexport function createCommunicationGuard(store) {\n return (_to, from, next) => {\n const link = store.state.structure.links.find(l => l.url == \"/communication\")\n if (link) {\n next()\n } else {\n next(from)\n }\n }\n}\n\n/**\n * This route prevents logged users entering the app before the fully have met\n * their platform's requirements, if any. I.e., they should've picked up a language,\n * set up a new password and/or accepted the data policy.\n *\n * Once they had completed all these steps, we will let them brows as normally.\n *\n * @param {store} - A reference to VUEX's store.\n * @returns { function (to, from, next) - void } - A guard to apply onBeforeEach route.\n */\n\nexport function createAllRoutesGuard(store, assign=window.location.assign.bind(window.location)) {\n return (to, from, next) => {\n const { v2ProviderUrl } = store.state.platform\n const user = store.getters.currentUser\n const isPublic = to.matched.some(m => m.meta && m.meta.public)\n const mandatoryLoginSteps = [\"initial-setup\", \"data-policy\"]\n\n // The user is a provider, let's get them to v2.\n if (v2ProviderUrl) {\n assign(v2ProviderUrl)\n next(false)\n return\n }\n\n // Public route, let them browse.\n if (isPublic) {\n next()\n return\n }\n\n // No user but private route, log them out\n if (!user) {\n next({ name: \"login\", query: { redirect: to.fullPath } })\n return\n }\n\n // User is logged but ... did he completed all the steps?\n if (!mandatoryLoginSteps.includes(to.name)) {\n if (from.name !== \"initial-setup\" && (user.loginSteps.language || user.loginSteps.password)) {\n next({ name: \"initial-setup\", query: { redirect: to.fullPath } })\n return\n }\n\n if (from.name !== \"data-policy\" && user.loginSteps.dataPolicy) {\n next({ name: \"data-policy\", query: { redirect: to.fullPath } })\n return\n }\n }\n\n // No more checks, keep browsing\n next()\n }\n}\n\nexport function createProfileGuard(store) {\n return (to, from, next) => {\n const { hasExperienceFormation, hasExternalFormation } = store.getters.currentUser\n\n switch (to.path) {\n case \"/profile/resume\":\n hasExperienceFormation ? next() : next({ name: \"not-found\" })\n break\n \n case \"/profile/external-training\":\n hasExternalFormation ? next() : next({ name: \"not-found\" })\n break\n\n default:\n next()\n }\n }\n}","/**\n * Checks that the section is available by checking the route\n * name against a list of available sections.\n */\nexport const buildSupervisorSectionIsAvailableGuard = store => (to, from, next) => {\n const availableSections = store.getters[\"supervisor/availableSections\"]\n if (availableSections.includes(to.name)) {\n next()\n } else {\n next({ name: \"not-found\" })\n }\n}\n\n/**\n * Checks that the desired request type is available.\n */\nexport const buildSupervisorRequestIsAvailableGuard = store => (to, from, next) => {\n const availableRequests = store.getters[\"supervisor/availableRequestLinks\"]\n\n if (availableRequests.includes(to.params.requestType)) {\n next()\n } else {\n next({ name: \"not-found\" })\n }\n}\n\nexport const buildSupervisorHasGuard = (store, prop) => (to, from, next) => {\n if (store.state.supervisor.panel[prop]) {\n next()\n } else {\n next({ name: \"not-found\" })\n }\n}\n","import compact from \"lodash/compact\"\nimport Vue from \"vue\"\nimport VueRouter from \"vue-router\"\n\nVue.use(VueRouter)\n\nimport bus from \"~/bus\"\nimport store from \"~/store\"\n\nimport { combineNavigationGuards, logoutRedirection } from \"~/lib/vueUtils\"\nimport { forwardToNextPage } from \"~/modules/login/utils\"\n\nimport {\n createAllRoutesGuard,\n createCommunicationGuard,\n createDataPolicyGuard,\n createInitialSetupGuard,\n createProfileGuard,\n createPublicRoutesGuard,\n createSpacesGuard\n} from \"~/modules/login/navigationGuards\"\n\nimport {\n buildSupervisorHasGuard, buildSupervisorRequestIsAvailableGuard, buildSupervisorSectionIsAvailableGuard\n} from \"~/modules/supervisor/navigationGuards\"\n\nVue.use(VueRouter)\n\n/**\n * Available meta properties:\n * {\n * public: Boolean Don't require current user\n * }\n */\nconst routes = compact([\n {\n name: \"home\",\n path: \"/\",\n redirect() {\n const { currentUser, defaultEntryPoint } = store.getters\n if (!currentUser) return \"/login\"\n return defaultEntryPoint?.homePage ?? \"/profile\"\n }\n },\n\n {\n name: \"calendar\",\n path: \"/calendar\",\n component: () => import(/* webpackChunkName: \"calendar\" */ \"~/modules/calendar/views/CalendarView\"),\n props: (route) => ({ startDay: route.query.day })\n },\n\n {\n name: \"faqs\",\n path: \"/faqs\",\n component: () => import(/* webpackChunkName: \"faqs\" */ \"~/modules/faqs/views/FaqsView\")\n },\n\n {\n name: \"profile\",\n path: \"/profile\",\n redirect: \"/profile/dossier\",\n component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/ProfileView\"),\n children: compact([\n { path: 'dossier', component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/tabs/DossierTab\") },\n { path: 'training', component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/tabs/TrainingTab\") },\n { path: 'resume', component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/tabs/ResumeTab\") },\n { path: 'external-training', component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/tabs/ExternalTrainingTab\") },\n { path: 'settings', component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/tabs/SettingsTab\") },\n { path: 'credits', component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/CreditsDashboard\") },\n { path: \"data-policy\", component: () => import(/* webpackChunkName: \"profile\" */ \"~/modules/profile/views/tabs/DataPolicyTab\") }\n ]),\n beforeEnter: createProfileGuard(store)\n },\n\n {\n name: \"tools\",\n path: \"/slo\",\n redirect: \"/slo/tools\",\n component: () => import(/* webpackChunkName: \"slotools\" */ \"~/modules/slotools/views/SloToolsView\"),\n children: [\n { path: 'tools', component: () => import(/* webpackChunkName: \"slotools\" */ \"~/modules/slotools/views/tabs/ToolsTab\") },\n { path: 'executions', component: () => import(/* webpackChunkName: \"slotools\" */ \"~/modules/slotools/views/tabs/ExecutionsTab\") }\n ]\n },\n\n {\n path: \"/slo/tools/:toolId(\\\\d+)\",\n props: true,\n component: () => import(/* webpackChunkName: \"slotools\" */ \"~/modules/slotools/views/ToolForm\")\n },\n\n {\n name: \"reports\",\n path: \"/reports\",\n redirect: \"/reports/list\",\n component: () => import(/* webpackChunkName: \"reports\" */ \"~/modules/v2reports/views/ReportsView\"),\n children: [\n { path: 'list', component: () => import(/* webpackChunkName: \"reports\" */ \"~/modules/v2reports/views/tabs/ReportsTab\") },\n { path: 'executions', component: () => import(/* webpackChunkName: \"reports\" */ \"~/modules/v2reports/views/tabs/ExecutionsTab\") }\n ]\n },\n\n {\n path: \"/reports/:reportId(\\\\d+)\",\n props: true,\n component: () => import(/* webpackChunkName: \"reports\" */ \"~/modules/v2reports/views/ReportForm\")\n },\n\n {\n name: \"login\",\n path: \"/login\",\n component: () => import(/* webpackChunkName: \"login\" */ \"~/modules/login/views/LoginView\"),\n props: (route) => ({\n assign: route.query.assign,\n redirect: route.query.redirect,\n ssoUserError: route.query.ssoUserError,\n ssoErrorRequest: !!route.query.ssoErrorRequest?.trim(),\n ssoExpiredToken: route.query.ssoExpiredToken === \"true\"\n }),\n meta: { public: true },\n beforeEnter: createPublicRoutesGuard(store)\n },\n\n {\n name: \"logout\",\n path: \"/logout\",\n component: () => import(/* webpackChunkName: \"login\" */ \"~/modules/login/views/LogoutView\"),\n props: r => ({\n message: r.query.message ? decodeURI(r.query.message) : null,\n url: r.query.url ? decodeURI(r.query.url) : null\n }),\n meta: { public: true },\n beforeEnter: createPublicRoutesGuard(store)\n },\n\n {\n name: \"remember\",\n path: \"/remember\",\n component: () => import(/* webpackChunkName: \"remember\" */ \"~/modules/login/views/RememberView\"),\n props: (route) => ({ redirect: route.query.redirect }),\n meta: { public: true },\n beforeEnter: createPublicRoutesGuard(store)\n },\n\n {\n name: \"register\",\n path: \"/register\",\n component: () => import(/* webpackChunkName: \"remember\" */ \"~/modules/login/views/RegisterView\"),\n props: (route) => ({ redirect: route.query.redirect }),\n meta: { public: true },\n beforeEnter: createPublicRoutesGuard(store)\n },\n\n {\n name: \"reset-credentials\",\n path: \"/reset-credentials\",\n component: () => import(/* webpackChunkName: \"remember\" */ \"~/modules/login/views/ResetCredentialsView\"),\n props: (route) => ({ redirect: route.query.redirect, token: route.query.token }),\n meta: { public: true },\n beforeEnter: async (to, from, next) => {\n if (store.getters.currentUser) {\n await store.dispatch(\"logoutNoRedirect\")\n }\n return createPublicRoutesGuard(store)(to, from, next)\n }\n },\n\n {\n name: \"2fa\",\n path: \"/2fa\",\n component: () => import(/* webpackChunkName: \"2fa\" */ \"~/modules/login/views/AuthenticationStep1View\"),\n props: (route) => ({\n assign: route.query.assign,\n redirect: route.query.redirect,\n token: route.query.token,\n userId: Number(route.query.user),\n }),\n meta: { public: true },\n beforeEnter: createPublicRoutesGuard(store)\n },\n\n {\n name: \"2fa-send\",\n path: \"/2fa-send\",\n component: () => import(/* webpackChunkName: \"2fa\" */ \"~/modules/login/views/AuthenticationStep2View\"),\n props: (route) => ({\n assign: route.query.assign,\n option: route.query.option,\n redirect: route.query.redirect,\n token: route.query.token,\n userId: Number(route.query.user)\n }),\n meta: { public: true },\n beforeEnter: createPublicRoutesGuard(store)\n },\n\n\n {\n name: \"initial-setup\",\n path: \"/initial-setup\",\n component: () => import(/* webpackChunkName: \"initial-setup\" */ \"~/modules/login/views/InitialSetupView\"),\n props: (route) => ({\n assign: route.query.assign,\n redirect: route.query.redirect\n }),\n meta: { public: true },\n beforeEnter: createInitialSetupGuard(store)\n },\n\n {\n name: \"data-policy\",\n path: \"/data-policy\",\n component: () => import(/* webpackChunkName: \"data-policy\" */ \"~/modules/login/views/DataPolicyView\"),\n props: (route) => ({\n assign: route.query.assign,\n redirect: route.query.redirect\n }),\n meta: { public: false },\n beforeEnter: createDataPolicyGuard(store)\n },\n\n {\n name: \"communication\",\n path: \"/communication/:channelId?\",\n meta: {\n canHighlightSpace: true\n },\n props: r => ({\n channelId: r.params.channelId ? Number(r.params.channelId) : null\n }),\n component: () => import(/* webpackChunkName: \"communication\" */ \"~/modules/communication/views/CommunicationView\"),\n beforeEnter: createCommunicationGuard(store)\n },\n\n {\n name: \"space\",\n path: \"/space/:spaceId\",\n component: () => import(/* webpackChunkName: \"space\" */ \"~/modules/spaces/views/SpaceView\"),\n props: r => {\n return {\n spaceId: r.params.spaceId,\n support: r.query.hasOwnProperty(\"support\")\n }\n },\n meta: {\n canHighlightSpace: true\n },\n beforeEnter: createSpacesGuard(store)\n },\n\n {\n name: \"bookmarks\",\n path: \"/bookmarks\",\n component: () => import(/* webpackChunkName: \"bookmarks\" */ \"~/modules/bookmarks/views/BookmarksView\")\n },\n\n {\n name: \"list\",\n path: \"/list/:listId\",\n meta: {\n canHighlightSpace: true\n },\n component: () => import(/* webpackChunkName: \"list\" */ \"~/modules/list/views/ListView\"),\n props: r => ({\n ...r.params,\n parents: r.query.parents,\n filters: r.query.filters\n })\n },\n\n {\n name: \"call\",\n path: \"/call/:userCallId(\\\\d+)\",\n redirect: \"call/:userCallId/information\",\n component: () => import(/* webpackChunkName: \"call\" */ \"~/modules/calls/views/CallView\"),\n children: [{\n path: \":currSection(information|activities|forums|resources|virtual-classrooms|classmates|teachers|calendar)\",\n meta: {\n canHighlightSpace: true\n }\n }],\n props: r => ({\n userCallId: Number(r.params.userCallId),\n currSection: r.params.currSection,\n userActivityId: r.query?.activity ? Number(r.query.activity) : null\n })\n },\n\n {\n name: \"virtualClassroom\",\n path: \"/call/:userCallId(\\\\d+)/vc/:vcId(\\\\d+)\",\n component: () => import(/* webpackChunkName: \"virtualClassroom\" */ \"~/modules/calls/views/VirtualClassroomView\"),\n props: r => ({\n userCallId: Number(r.params.userCallId),\n vcId: Number(r.params.vcId)\n })\n },\n\n {\n name: \"news\",\n path: \"/news/:newsItemId(\\\\d+)\",\n meta: {\n canHighlightSpace: true\n },\n component: () => import(/* webpackChunkName: \"news\" */ \"~/modules/news/views/NewsItemView\"),\n props: true\n },\n\n {\n name: \"plugin\",\n path: \"/plugin/:userActivityId(\\\\d+)\",\n component: () => import(/* webpackChunkName: \"plugin\" */ \"~/modules/plugins/views/PluginView\"),\n props: r => ({\n userActivityId: r.params.userActivityId,\n activityId: Number(r.query.chapter)\n })\n },\n\n {\n name: \"resource\",\n path: \"/resources/:resourceId(\\\\d+)\",\n meta: {\n canHighlightSpace: true\n },\n component: () => import(/* webpackChunkName: \"resource\" */ \"~/modules/resources/views/ResourceView\"),\n props: true\n },\n\n {\n name: \"program\",\n path: \"/program/:programId(\\\\d+)\",\n meta: {\n canHighlightSpace: true\n },\n component: () => import(/* webpackChunkName: \"program\" */ \"~/modules/programs/views/ProgramView\"),\n props: true\n },\n\n {\n name: \"messages\",\n path: \"/messages/:folder?/:messageUserId?\",\n component: () => import(/* webpackChunkName: \"messages\" */ \"~/modules/messages/views/MessagesView\"),\n props: true\n },\n\n {\n name: \"post\",\n path: \"/post/:postId(\\\\d+)\",\n meta: {\n canHighlightSpace: true\n },\n component: () => import(/* webpackChunkName: \"post\" */ \"~/modules/communication/views/PostView\"),\n props: r => ({\n postId: Number(r.params.postId)\n })\n },\n\n {\n name: \"supervisor\",\n path: \"/supervisor\",\n redirect() {\n return store.state.supervisor.panel.supervisorUrl\n },\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/SupervisorView\"),\n children: [\n\n // Redirect to first available request type\n {\n path: \"requests\",\n beforeEnter: (to, from, next) => {\n if (store.getters[\"supervisor/hasRequests\"]) {\n next()\n } else {\n next({ name: \"not-found\" })\n }\n },\n redirect() {\n const availableRequests = store.getters[\"supervisor/availableRequestLinks\"]\n return `/supervisor/requests/${availableRequests[0]}`\n }\n },\n\n // Pending Requests\n {\n path: \"requests/lms\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasFormationRequests\"),\n name: \"lmsRequestsList\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/LmsRequestsView\")\n },\n {\n path: \"requests/external\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasExternalFormationRequests\"),\n name: \"externalRequestsList\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/ExternalRequestsView\")\n },\n {\n path: \"requests/experience\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasExternalExperienceRequests\"),\n name: \"experienceRequestsList\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/ExperienceRequestsView\")\n },\n {\n path: \"requests/preregister\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasPreregisterRequests\"),\n name: \"preregisterRequestsList\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/PreregisterRequestsView\")\n },\n\n // Historical requests\n {\n path: \"requests/lms/historical\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasFormationRequests\"),\n name: \"historicalLmsRequestsList\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/HistoricalLmsRequestsView\")\n },\n {\n path: \"requests/experience/historical\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasExternalExperienceRequests\"),\n name: \"historicalExperienceRequests\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/HistoricalExperienceRequestsView\")\n },\n {\n path: \"requests/external/historical\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasExternalFormationRequests\"),\n name: \"historicalExternalRequests\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/HistoricalExternalRequestsView\")\n },\n {\n path: \"requests/preregister/historical\",\n beforeEnter: buildSupervisorHasGuard(store, \"hasPreregisterRequests\"),\n name: \"historicalPreregisterRequests\",\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/HistoricalPreregisterRequestsView\")\n },\n\n\n // TODO Old historical requests redirections\n { path: \"requests/historical/lms\", redirect: () => \"/supervisor/requests/lms/historical\" },\n { path: \"requests/historical/experience\", redirect: () => \"/supervisor/requests/experience/historical\" },\n { path: \"requests/historical/external\", redirect: () => \"/supervisor/requests/external/historical\" },\n { path: \"requests/historical/preregister\", redirect: () => \"/supervisor/requests/preregister/historical\" },\n\n {\n path: \"requests/:requestType(lms|external|experience|preregister)/(historical)?/:requestId(\\\\d+)\",\n name: \"requestDetail\",\n beforeEnter: combineNavigationGuards([\n buildSupervisorSectionIsAvailableGuard(store),\n buildSupervisorRequestIsAvailableGuard(store)\n ]),\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/RequestDetailView\"),\n props: r => ({\n requestId: Number(r.params.requestId),\n requestType: r.params.requestType,\n historical: r.fullPath.includes(\"historical\")\n })\n },\n\n {\n path: \"dashboard\",\n name: \"dashboard\",\n beforeEnter: buildSupervisorSectionIsAvailableGuard(store),\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/DashboardView\")\n },\n {\n path: \"courses\",\n name: \"courses\",\n redirect: \"courses/all\",\n beforeEnter: buildSupervisorSectionIsAvailableGuard(store),\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/CoursesView\"),\n children: [{\n name: \"coursesSection\",\n path: \":currSection(all|participants|catalog)\"\n }],\n props: r => ({\n currSection: r.params.currSection\n })\n },\n {\n path: \"courses/:programId(\\\\d+)\",\n name: \"courseDetail\",\n beforeEnter: buildSupervisorSectionIsAvailableGuard(store),\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/CourseDetailView\"),\n props: r => ({\n programId: Number(r.params.programId)\n })\n },\n {\n path: \"participants/:userId(\\\\d+)\",\n name: \"participantDetail\",\n beforeEnter: buildSupervisorSectionIsAvailableGuard(store),\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/ParticipantDetailView\"),\n props: r => ({\n userId: Number(r.params.userId)\n })\n },\n {\n path: \"participants\",\n name: \"participants\",\n beforeEnter: buildSupervisorSectionIsAvailableGuard(store),\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/ParticipantsView\")\n },\n {\n path: \"messages\",\n name: \"supervisorMessages\",\n redirect: \"messages/inbox\",\n beforeEnter: buildSupervisorSectionIsAvailableGuard(store)\n },\n {\n path: \"messages/:folder?/:messageUserId?\",\n name: \"supervisorMessageDetail\",\n beforeEnter: buildSupervisorSectionIsAvailableGuard(store),\n component: () => import(/* webpackChunkName: \"supervisor\" */ \"~/modules/supervisor/views/MessagesView\"),\n props: r => ({\n folder: r.params.folder,\n messageUserId: r.params.messageUserId\n })\n }\n ]\n },\n\n {\n name: \"ranking\",\n path: \"/ranking\",\n meta: {\n canHighlightSpace: true\n },\n component: () => import(/* webpackChunkName: \"ranking\" */ \"~/modules/ranking/views/RankingView\")\n },\n\n {\n name: \"bi-dashboard\",\n path: \"/bi-dashboard\",\n component: () => import(/* webpackChunkName: \"ranking\" */ \"~/modules/bi/views/DashboardView\")\n },\n\n {\n name: \"not-found\",\n path: \"*\",\n component: () => import(/* webpackChunkName: \"not-found\" */ \"~/NotFound\"),\n meta: { public: true }\n }\n])\n\nconst vueRouterOptions = {\n mode: \"history\",\n routes,\n base: CONFIG_CLIENT_BASE_PATH,\n scrollBehavior(to, _from, savedPosition) {\n if (savedPosition) return savedPosition\n\n const lastNavigationToThisPage = store.state.navigation.filter(navigation => {\n return navigation.from.path == to.path\n }).last()\n if (lastNavigationToThisPage) {\n return lastNavigationToThisPage.savedPosition\n }\n\n return { x: 0, y: 0 }\n }\n}\n\nObject.defineProperty(vueRouterOptions, \"linkActiveClass\", {\n get() {\n // We can change this to `store.getters[\"theme/styles\"].linkPrimary` when (and if) we want\n return \"\"\n }\n})\n\nObject.defineProperty(vueRouterOptions, \"linkExactActiveClass\", {\n get() {\n // We can change this to `store.getters[\"theme/styles\"].linkPrimary` when (and if) we want\n return \"\"\n }\n})\n\nconst router = new VueRouter(vueRouterOptions)\n\nrouter.beforeEach(createAllRoutesGuard(store))\n\n/**\n * When the user wants to go to a page that requires to be logged in\n * they get redirected to the login page with the desired destination\n * as the redirect param.\n */\nbus.$on(\"auth-error\", ({ type, message, url } = {}) => {\n const route = router.currentRoute\n\n store.dispatch(\"clearStore\").then(() => {\n if (route.name === \"login\") return\n \n store.commit(\"setBearerToken\", undefined)\n logoutRedirection({ type, message, url, router, query: { redirect: route.fullPath } })\n })\n})\n\nbus.$on(\"404-error\", () => {\n router.push({ name: \"not-found\" })\n})\n\nbus.$on(\"405-error\", () => {\n const { defaultEntryPoint: entryPoint } = store.getters\n forwardToNextPage({ entryPoint, router })\n})\n\nexport default router\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ConfettiMachine.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./ConfettiMachine.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./ConfettiMachine.vue?vue&type=template&id=954f6b90\"\nimport script from \"./ConfettiMachine.vue?vue&type=script&lang=js\"\nexport * from \"./ConfettiMachine.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('audio',{ref:\"audio\",attrs:{\"src\":_vm.cheering},on:{\"canplaythrough\":function($event){_vm.disabled = false},\"ended\":function($event){_vm.disabled = false}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./SnowGenerator.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./SnowGenerator.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SnowGenerator.vue?vue&type=template&id=e0749ef0\"\nimport script from \"./SnowGenerator.vue?vue&type=script&lang=js\"\nexport * from \"./SnowGenerator.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.snowflakes),function(snowflake,i){return _c('span',{key:i,staticClass:\"position-fixed\",style:(snowflake.style)})}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./EasterEggs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/source-map-loader/dist/cjs.js!./EasterEggs.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./EasterEggs.vue?vue&type=template&id=731fde2b\"\nimport script from \"./EasterEggs.vue?vue&type=script&lang=js\"\nexport * from \"./EasterEggs.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.easterEggs),function(egg){return _c(egg.component,{key:egg.id,tag:\"component\"})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/source-map-loader/dist/cjs.js!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/source-map-loader/dist/cjs.js!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=639da396\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('app-chrome',{attrs:{\"has-required-alert-fields\":_vm.hasRequiredAlertFields,\"alert-fields\":_vm.platform.alertFields,\"time-zone\":_vm.timeZone},on:{\"update:alert-fields\":_vm.updateAlertFields}},[(!_vm.hasRequiredAlertFields)?_c('router-view',{on:{\"title\":_vm.updateTitle}}):_vm._e(),_vm._v(\" \"),(_vm.featureFlags.enableEasterEggs)?_c('easter-eggs'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\"\nimport VueGtag from \"vue-gtag\"\nimport VueMq from \"vue-mq\"\nimport Vuelidate from \"vuelidate\"\n\nimport \"~/scss/main.scss\"\n\nimport i18n from \"~/i18n\"\nimport \"~/icons\"\nimport { BREAKPOINTS } from \"~/lib/constants\"\nimport \"~/lib/extensions\"\nimport \"~/lib/filters\"\nimport ListenersPlugin from \"~/plugins/ListenersPlugin\"\nimport PopUpPlugin from \"~/plugins/PopUpPlugin\"\nimport UtilitiesPlugin from \"~/plugins/UtilitiesPlugin\"\nimport router from \"~/router\"\nimport store from \"~/store\"\n\nimport App from \"~/App\"\nimport LoadingSpinner from \"~/components/LoadingSpinner\"\n\nVue.use(UtilitiesPlugin)\nVue.use(ListenersPlugin)\nVue.use(PopUpPlugin)\nVue.use(VueMq, { breakpoints: BREAKPOINTS })\nVue.use(Vuelidate)\n\nVue.config.productionTip = false\n\n;(async () => {\n const spinner = new Vue({\n el: \"#app\",\n render: h => h(\"div\", { attrs: { id: \"app\" }, class: \"d-flex justify-content-center align-items-center vh-100\" }, [ h(LoadingSpinner) ]\n )\n })\n\n await store.dispatch(\"welcomeBack\")\n spinner.$destroy()\n\n window.Prometeo = new Vue({\n el: \"#app\",\n render: h => h(App),\n router,\n store,\n validations: {},\n i18n\n })\n\n const { googleAnalyticsAccount } = store.state.configs\n const enabled = store.getters[\"cookies/googleAnalyticsIsEnabled\"]\n\n if (googleAnalyticsAccount) {\n Vue.use(VueGtag, {\n config: {\n id: googleAnalyticsAccount\n },\n enabled\n }, router)\n }\n})()\n"],"sourceRoot":""}