From 17210eae3462ce163808d7ffac08e9285ce579b2 Mon Sep 17 00:00:00 2001 From: Richard Klees Date: Wed, 31 Jan 2024 19:23:57 +0100 Subject: [PATCH] Component: Build Public Resources The public-folder was depopulated and the resources that should be served via the web have been moved to the `resources/` directories of the according components. Files are be moved to subfolders of `public/assets` according to their type, e.g. `public/assets/css`. A common top directory for all assets will allow for various improvements regarding delivery of the assets. Installations could, e.g., define different caching-rules for assets than for live data delivery from other locations. Splitting up the asset folder with regard to the type of asset we allow installations to implement effective CSP rules. This strategy mostly panned out, besides some minor naming collisions. For two components (COPage and the TinyMCE) the move was not possible due to the complicated structure of how additional files are loaded from the server. These components put their assets into specific subfolder in `public` (in components/ILIAS/COPage and node_modules/tinymce). We expect that further moves will be possible here at some point in the future. --- .github/workflows/checks.yml | 6 +- .../ILIAS/AccessControl/AccessControl.php | 2 + .../class.ilObjectRolePermissionTableGUI.php | 2 +- .../{js => resources}/ilPermSelect.js | 0 components/ILIAS/Accordion/Accordion.php | 5 +- .../classes/class.ilAccordionGUI.php | 4 +- .../ILIAS/Accordion/resources}/accordion.js | 0 components/ILIAS/App/tests/RootFolderTest.php | 1 - .../ILIAS/AuthShibboleth/AuthShibboleth.php | 6 +- .../AuthShibboleth/resources}/shib_login.php | 2 +- .../AuthShibboleth/resources}/shib_logout.php | 2 +- .../ILIAS/Authentication/Authentication.php | 5 + .../classes/class.ilSessionReminderGUI.php | 2 +- .../{js => resources}/session_reminder.js | 0 .../resources}/sessioncheck.php | 20 +- components/ILIAS/Awareness/Awareness.php | 3 +- .../classes/class.ilAwarenessGUI.php | 2 +- .../ILIAS/Awareness/resources}/Awareness.js | 0 .../BackgroundTasks_/BackgroundTasks_.php | 3 +- .../Provider/BTNotificationProvider.php | 2 +- .../background_task_refresh.js | 0 components/ILIAS/Block/Block.php | 3 +- .../ILIAS/Block/classes/class.ilBlockGUI.php | 2 +- .../ILIAS/Block/resources}/ilblockcallback.js | 0 .../ILIAS/BookingManager/BookingManager.php | 3 + .../classes/class.ilScheduleInputGUI.php | 2 +- .../{js => resources}/ScheduleInput.js | 0 components/ILIAS/COPage/COPage.php | 44 + components/ILIAS/COPage/Editor/UI/Init.php | 6 +- .../class.ilPCIIMTriggerEditorGUI.php | 4 +- .../COPage/PC/Table/class.ilPCTableGUI.php | 2 +- .../COPage/Resources/ResourcesCollector.php | 4 +- .../classes/class.ilCOPageHTMLExport.php | 2 +- .../COPage/classes/class.ilPageObjectGUI.php | 6 +- .../COPage/js/ilCOPagePCInteractiveImage.js | 56 +- components/ILIAS/COPage/js/ilCOPagePres.js | 1747 +++++++++-------- components/ILIAS/COPage/js/page_history.js | 164 +- components/ILIAS/Calendar/Calendar.php | 13 + .../Form/class.ilRecurrenceInputGUI.php | 2 +- .../class.ilCalendarAppointmentGUI.php | 2 +- .../Calendar/classes/class.ilCalendarUtil.php | 6 +- .../classes/class.ilCalendarViewGUI.php | 2 +- .../ILIAS/Calendar/resources}/calendar.php | 0 .../{js => resources}/calendar_appointment.js | 0 .../{js => resources}/recurrence_input.js | 0 .../{js => resources}/toggle_notification.js | 0 components/ILIAS/Chart/Chart.php | 15 +- .../ILIAS/Chart/classes/class.ilChart.php | 8 +- .../ILIAS/Chart/classes/class.ilChartPie.php | 2 +- .../Chart/classes/class.ilChartSpider.php | 4 +- .../Chart/{js/flot => resources}/excanvas.js | 0 .../{js/flot => resources}/excanvas.min.js | 0 .../jquery.flot.highlighter.js | 0 .../{js/flot => resources}/jquery.flot.js | 0 .../{js/flot => resources}/jquery.flot.min.js | 0 .../ILIAS/Chart/resources/jquery.flot.pie.js | 800 ++++++++ .../flot => resources}/jquery.flot.resize.js | 0 .../jquery.flot.resize.min.js | 0 .../flot => resources}/jquery.flot.spider.js | 0 .../flot => resources}/jquery.flot.stack.js | 0 .../jquery.flot.stack.min.js | 0 components/ILIAS/Chatroom/Chatroom.php | 6 + components/ILIAS/Chatroom/README.md | 4 +- .../classes/gui/class.ilChatroomViewGUI.php | 8 +- .../style.css => resources/chatroom.css} | 0 .../{js/chat.js => resources/chatroom.js} | 0 .../{js => resources}/iliaschat.jquery.js | 0 components/ILIAS/Component/Component.php | 6 +- ...s.ilComponentRepositoryExistsObjective.php | 2 +- .../Setup/class.ilComponentsSetupAgent.php | 22 +- ...aticComponentRepositoryExistsObjective.php | 2 +- .../Component/src/Resource/ComponentCSS.php | 40 + .../Component/src/Resource/ComponentJS.php | 40 + .../ILIAS/Component/src/Resource/Endpoint.php | 42 + .../Component/src/Resource/NodeModule.php | 60 + .../Component/src/Resource/OfComponent.php | 68 + .../Component/src/Resource/PublicAsset.php | 32 + .../src/Resource/PublicAssetManager.php | 165 ++ .../src/Setup/PublicAssetsBuildObjective.php | 70 + .../tests/Resource/ComponentResourceTest.php | 94 + .../tests/Resource/PublicAssetManagerTest.php | 128 ++ .../classes/class.ilBuddySystemGUI.php | 2 +- components/ILIAS/Contact/Contact.php | 3 +- .../ILIAS/Contact/resources}/buddy_system.js | 0 .../class.ilClassificationBlockGUI.php | 2 +- components/ILIAS/Container/Container.php | 5 +- .../Content/class.ilContainerContentGUI.php | 2 +- .../Container/{js => resources}/Container.js | 0 .../js => resources}/ilClassification.js | 0 components/ILIAS/CopyWizard/CopyWizard.php | 5 +- .../{js => resources}/ilContainer.js | 0 .../{js => resources}/ilCopyRedirection.js | 0 .../class.ilObjDashboardSettingsGUI.php | 2 +- .../classes/class.ilDashboardBlockGUI.php | 2 +- components/ILIAS/Dashboard/Dashboard.php | 5 + .../resources}/ReplaceModalContent.js | 0 .../SortationUserInputHandler.js | 0 .../ILIAS/DataCollection/DataCollection.php | 4 + .../class.ilDclDetailedViewGUI.php | 2 +- .../class.ilDclGenericMultiInputGUI.php | 2 +- .../class.ilDataCollectionGlobalTemplate.php | 6 +- .../classes/class.ilObjDataCollectionGUI.php | 4 +- .../{js => resources}/datacollection.js | 0 .../generic_multi_line_input.js | 0 components/ILIAS/Exercise/Exercise.php | 8 + .../Criteria/class.ilExcCriteriaRating.php | 2 +- .../class.ilExerciseSubmissionTableGUI.php | 2 +- .../classes/class.ilExerciseManagementGUI.php | 2 +- .../classes/class.ilObjExerciseGUI.php | 2 +- .../Exercise/{js => resources}/ilExcIDl.js | 0 .../{js => resources}/ilExcManagement.js | 0 .../{js => resources}/ilExcPeerReview.js | 0 .../{js => resources}/ilExcPresentation.js | 0 components/ILIAS/Export/Export.php | 1 - .../Export/Print/class.PrintProcessGUI.php | 2 +- .../Export/classes/class.ilExportGUI.php | 2 +- components/ILIAS/Feeds/Feeds.php | 6 +- .../ILIAS/Feeds/resources}/feed.php | 2 +- .../ILIAS/Feeds/resources}/privfeed.php | 16 +- .../class.ilObjFileDefaultIconsObjective.php | 2 +- .../ILIAS/FileDelivery/FileDelivery.php | 3 + .../ILIAS/FileDelivery/resources}/deliver.php | 0 .../tests/Processor/SVGPreProcessorTest.php | 12 +- components/ILIAS/Form/Form.php | 15 +- .../classes/class.ilFileWizardInputGUI.php | 4 +- .../Form/classes/class.ilHierarchyFormGUI.php | 2 +- .../classes/class.ilImageFileInputGUI.php | 2 +- .../Form/classes/class.ilPropertyFormGUI.php | 6 +- .../classes/class.ilSelectBuilderInputGUI.php | 4 +- .../classes/class.ilTextWizardInputGUI.php | 4 +- .../ILIAS/Form/{js => resources}/Form.js | 0 .../ServiceFormHierarchyForm.js | 0 .../ServiceFormImageFileCapture.js | 0 .../{js => resources}/ServiceFormMulti.js | 0 .../ServiceFormWizardInput.js | 0 .../default => resources}/filewizard.js | 0 .../default => resources}/textwizard.js | 0 components/ILIAS/Forum/Forum.php | 2 + .../Forum/classes/class.ilObjForumGUI.php | 4 +- components/ILIAS/Forum/js/autosave.js | 104 - .../ILIAS/Forum/resources/autosave_forum.js | 98 + .../ILIAS/GlobalScreen/GlobalScreen.php | 6 + .../ILIAS/GlobalScreen/resources}/GS.js | 0 .../GlobalScreen/resources}/gs_content.php | 2 +- .../ILIAS/GlobalScreen/src/Client/Client.php | 2 +- .../GlobalScreen/src/Client/tsconfig.json | 2 +- components/ILIAS/Help/Help.php | 3 + .../ILIAS/Help/classes/class.ilHelpGUI.php | 6 +- .../ILIAS/Help/{js => resources}/ilHelp.js | 0 .../classes/class.ilObjectCopyGUI.php | 2 +- .../class.ilObjectCopyProgressTableGUI.php | 2 +- components/ILIAS/Init/Init.php | 27 +- .../ILIAS/Init/resources}/.htaccess | 0 .../ILIAS/Init/resources}/error.php | 2 +- .../ILIAS/Init/resources}/ilias.php | 0 .../ILIAS/Init/resources}/index.php | 18 +- .../ILIAS/Init/resources}/login.php | 18 +- .../ILIAS/Init/resources}/logout.php | 16 +- .../ILIAS/Init/resources}/pwassist.php | 18 +- .../ILIAS/Init/resources}/register.php | 16 +- .../ILIAS/Init/resources}/sso/index.php | 4 +- components/ILIAS/JavaScript/JavaScript.php | 3 +- .../ILIAS/JavaScript/resources}/Basic.js | 0 components/ILIAS/LTI/LTI.php | 3 + .../ILIAS/LTI/resources}/lti.php | 0 .../ILIAS/LearningHistory/LearningHistory.php | 3 +- .../classes/class.ilLearningHistoryGUI.php | 2 +- .../{js => resources}/LearningHistory.js | 0 .../Export/class.LMHtmlExport.php | 10 +- .../ILIAS/LearningModule/LearningModule.php | 4 +- .../class.ilLMPresentationGUI.php | 4 +- .../classes/class.ilLMMenuGUI.php | 2 +- .../{js => resources}/LearningModule.js | 0 .../templates/default/tpl.blank.html | 2 +- .../ILIAS/LegalDocuments/LegalDocuments.php | 5 +- .../LegalDocuments/classes/Legacy/Table.php | 2 +- components/ILIAS/Like/Like.php | 3 +- .../ILIAS/Like/classes/class.ilLikeGUI.php | 2 +- .../ILIAS/Like/{js => resources}/Like.js | 0 components/ILIAS/Link/Link.php | 9 + .../Link/classes/class.ilInternalLinkGUI.php | 6 +- .../Link/classes/class.ilLinkifyUtil.php | 6 +- .../ILIAS/Link/{js => resources}/ilExtLink.js | 0 .../ILIAS/Link/{js => resources}/ilIntLink.js | 0 components/ILIAS/Mail/Mail.php | 2 + .../class.ilManualPlaceholderInputGUI.php | 2 +- .../Mail/classes/class.ilMailFormGUI.php | 2 +- .../ilMailComposeFunctions.js | 0 components/ILIAS/Maps/Maps.php | 3 +- .../Maps/classes/class.ilOpenLayersMapGUI.php | 2 +- .../dist => resources}/ServiceOpenLayers.js | 0 components/ILIAS/MediaCast/MediaCast.php | 3 + .../MediaCast/Video/class.VideoWidgetGUI.php | 2 +- .../{Video/js => resources}/video_widget.js | 0 .../ILIAS/MediaObjects/MediaObjects.php | 13 + .../class.ilMediaObjectsPlayerWrapperGUI.php | 2 +- .../classes/class.ilObjMediaObjectGUI.php | 2 +- .../classes/class.ilPlayerUtil.php | 6 +- .../classes/class.ilWidthHeightInputGUI.php | 2 +- .../MediaObjectsCompletion.js | 0 .../ServiceMediaObjectPropWidthHeight.js | 0 components/ILIAS/MediaPool/MediaPool.php | 3 +- .../classes/class.ilObjMediaPoolGUI.php | 2 +- .../{js => resources}/ilMediaPool.js | 0 components/ILIAS/News/News.php | 5 +- .../News/Timeline/class.ilTimelineGUI.php | 2 +- .../News/classes/class.ilNewsTimelineGUI.php | 3 +- .../ILIAS/News/{js => resources}/News.js | 0 .../{Timeline/js => resources}/Timeline.js | 0 components/ILIAS/Notes/Notes.php | 3 + .../Service/class.InternalGUIService.php | 2 +- .../ILIAS/Notes/{js => resources}/ilNotes.js | 0 .../ILIAS/Notifications/Notifications.php | 11 + .../classes/ilNotificationOSDGUI.php | 4 +- .../browser_notifications.js | 0 .../Notifications/resources/notifications.js | 78 + .../ILIAS/Notifications/resources}/osd.css | 0 .../resources}/receive.mp3 | Bin .../resources}/receive.ogg | Bin .../ILIAS/OnScreenChat/OnScreenChat.php | 9 +- .../classes/class.ilOnScreenChatGUI.php | 18 +- .../OnScreenChat/{js => resources}/chat.js | 0 .../OnScreenChat/{js => resources}/moment.js | 0 .../onscreenchat-notifications.js | 0 .../{js => resources}/onscreenchat.js | 0 .../ILIAS/OpenIdConnect/OpenIdConnect.php | 3 +- .../resources}/openidconnect.php | 2 +- components/ILIAS/OrgUnit/OrgUnit.php | 2 + .../class.ilOrgUnitAuthorityInputGUI.php | 2 +- .../class.ilOrgUnitGenericMultiInputGUI.php | 2 +- ...ass.ilOrgUnitDefaultPermissionTableGUI.php | 2 +- .../class.ilOrgUnitPermissionTableGUI.php | 2 +- .../OrgUnit/js/generic_multi_line_input.js | 125 -- .../default => resources}/authority.js | 0 components/ILIAS/Poll/Poll.php | 3 +- .../classes/BlockGUI/class.ilPollBlockGUI.php | 2 +- .../ILIAS/Poll/{js => resources}/ilPoll.js | 0 .../Page/class.ilPortfolioPageGUI.php | 4 +- components/ILIAS/Portfolio/Portfolio.php | 3 + .../{js => resources}/ilPortfolio.js | 0 components/ILIAS/RTE/RTE.php | 13 +- .../RTE/classes/class.ilRTEGlobalTemplate.php | 6 +- .../ILIAS/RTE/classes/class.ilTinyMCE.php | 6 +- .../ILIAS/Registration/Registration.php | 3 + .../Registration/resources}/confirmReg.php | 0 components/ILIAS/Repository/Repository.php | 3 + .../Service/Form/class.FormAdapterGUI.php | 2 +- .../ILIAS/Repository/resources}/repository.js | 0 components/ILIAS/Saml/Saml.php | 13 +- .../{lib => resources}/authsources.php.dist | 0 .../Saml/{lib => resources}/config.php.dist | 0 .../Saml/{lib => resources}/metadata.php | 0 .../ILIAS/Saml/{lib => resources}/module.php | 0 .../ILIAS/Saml/resources}/saml.php | 0 .../Saml/{lib => resources}/saml1-acs.php | 0 .../Saml/{lib => resources}/saml2-acs.php | 0 .../Saml/{lib => resources}/saml2-logout.php | 0 components/ILIAS/Scorm2004/Scorm2004.php | 6 +- .../ILIAS/Scorm2004/resources}/storeScorm.php | 0 .../Scorm2004/resources}/storeScorm2004.php | 2 +- components/ILIAS/Search/Search.php | 5 +- .../Lucene/class.ilLuceneSearchGUI.php | 2 +- .../Lucene/class.ilLuceneUserSearchGUI.php | 2 +- .../classes/class.ilMainMenuSearchGUI.php | 2 +- .../Search/classes/class.ilSearchGUI.php | 2 +- .../ILIAS/Search/{js => resources}/Search.js | 0 .../ILIAS/Search/resources}/SearchMainMenu.js | 0 ...entTest.php => ilCommonSetupAgentTest.php} | 8 +- .../Personal/class.ilPersonalSkillsGUI.php | 2 +- components/ILIAS/Skill/Skill.php | 2 + .../Skill/{js => resources}/SkillEntries.js | 0 components/ILIAS/StaticURL/StaticURL.php | 3 + .../ILIAS/StaticURL/resources}/goto.php | 2 +- ....ilObjStudyProgrammeAutoMembershipsGUI.php | 2 +- ...tudyProgrammeExpandableProgressListGUI.php | 2 +- ...lass.ilAsyncContainerSelectionExplorer.php | 2 +- .../Content/classes/class.ilObjStyleSheet.php | 8 +- .../classes/class.ilImagePathResolver.php | 25 +- components/ILIAS/Survey/Survey.php | 3 +- .../default => resources}/survey.css | 0 .../class.ilCategoryWizardInputGUI.php | 4 +- .../SurveyQuestionPool/SurveyQuestionPool.php | 5 +- .../class.ilMatrixRowWizardInputGUI.php | 4 +- .../class.ilObjSurveyQuestionPoolGUI.php | 2 +- .../js => resources}/categorywizard.js | 0 .../{js => resources}/matrixrowwizard.js | 0 components/ILIAS/Table/Table.php | 3 +- .../ILIAS/Table/classes/class.ilTable2GUI.php | 2 +- .../Table/{js => resources}/ServiceTable.js | 0 components/ILIAS/Tagging/Tagging.php | 3 +- .../Tagging/classes/class.ilTaggingGUI.php | 2 +- .../Tagging/{js => resources}/ilTagging.js | 0 components/ILIAS/Test/Test.php | 12 + .../class.ilObjTestSettingsMainGUI.php | 2 +- ...pantsBySelectedQuestionAndPassTableGUI.php | 2 +- .../ILIAS/Test/classes/class.ilObjTestGUI.php | 4 +- .../class.ilParticipantsTestResultsGUI.php | 4 +- .../classes/class.ilTestEvaluationGUI.php | 8 +- .../classes/class.ilTestPlayerAbstractGUI.php | 10 +- .../class.ilTestScoringByQuestionsGUI.php | 6 +- .../Test/classes/class.ilTestServiceGUI.php | 4 +- .../ilTestPlayerQuestionEditControl.js | 0 .../settings_confirmation.js | 0 .../test_kiosk_header.css | 0 .../default => resources}/test_pdf.css | 0 .../default => resources}/test_print.css | 0 .../test_print_hide_content.css | 0 .../ILIAS/Test/templates/default/autosave.js | 47 - .../TestQuestionPool/TestQuestionPool.php | 48 + .../classes/class.assErrorTextGUI.php | 2 +- .../classes/class.assLongMenuGUI.php | 6 +- .../classes/class.assMatchingQuestionGUI.php | 12 +- .../classes/class.assMultipleChoiceGUI.php | 4 +- .../class.assOrderingHorizontalGUI.php | 8 +- .../classes/class.ilAnswerWizardInputGUI.php | 4 +- ...class.ilAssQuestionSkillAssignmentsGUI.php | 2 +- .../class.ilEssayKeywordWizardInputGUI.php | 4 +- .../class.ilKprimChoiceWizardInputGUI.php | 6 +- .../class.ilMatchingPairWizardInputGUI.php | 4 +- .../class.ilMatchingWizardInputGUI.php | 2 +- .../class.ilMultipleChoiceWizardInputGUI.php | 4 +- .../classes/class.ilObjQuestionPoolGUI.php | 2 +- .../class.ilSingleChoiceWizardInputGUI.php | 4 +- .../classes/class.ilUnitConfigurationGUI.php | 4 +- .../class.ilImagemapCorrectionsInputGUI.php | 4 +- .../forms/class.ilImagemapFileInputGUI.php | 4 +- .../forms/class.ilMultipleImagesInputGUI.php | 4 +- ...MultipleNestedOrderingElementsInputGUI.php | 8 +- .../forms/class.ilMultipleTextsInputGUI.php | 4 +- .../classes/forms/class.ilTagInputGUI.php | 6 +- .../default => resources}/answerwizard.js | 0 .../answerwizardinput.js | 0 .../bootstrap-tagsinput_2015_25_03.js | 0 .../default => resources}/errortext.js | 0 .../essaykeywordwizard.js | 0 .../identifiedwizardinput.js | 0 .../{js => resources}/ilAssKprimChoice.js | 0 .../{js => resources}/ilAssMultipleChoice.js | 0 .../{js => resources}/ilMatchingQuestion.js | 0 .../default => resources}/imagemap.js | 0 .../kprimchoicewizard.js | 0 .../default => resources}/longMenuQuestion.js | 0 .../longMenuQuestionGapBuilder.js | 0 .../longMenuQuestionPlayer.js | 0 .../default => resources}/matchinginput.js | 0 .../matchingpairwizard.js | 0 .../multiplechoicewizard.js | 0 .../default => resources}/nested_ordering.js | 0 .../orderinghorizontal.js | 0 .../singlechoicewizard.js | 0 .../resources/testQuestionPoolTagInput.js | 115 ++ .../default => resources}/typeahead_0.11.1.js | 0 .../templates/default/tagInput.js | 131 -- components/ILIAS/Tracking/Tracking.php | 3 +- .../class.ilLPObjectStatisticsLPTableGUI.php | 2 +- .../Tracking/{js => resources}/ilObjStat.js | 0 components/ILIAS/UI/UI.php | 84 +- .../UI/resources}/fonts/Iconfont/Readme.md | 0 .../UI/resources}/fonts/Iconfont/il-icons.eot | Bin .../resources}/fonts/Iconfont/il-icons.json | 0 .../UI/resources}/fonts/Iconfont/il-icons.svg | 0 .../UI/resources}/fonts/Iconfont/il-icons.ttf | Bin .../resources}/fonts/Iconfont/il-icons.woff | Bin .../fonts/OpenSans/OpenSans-Bold.ttf | Bin .../fonts/OpenSans/OpenSans-BoldItalic.ttf | Bin .../fonts/OpenSans/OpenSans-ExtraBold.ttf | Bin .../OpenSans/OpenSans-ExtraBoldItalic.ttf | Bin .../fonts/OpenSans/OpenSans-Italic.ttf | Bin .../fonts/OpenSans/OpenSans-Light.ttf | Bin .../fonts/OpenSans/OpenSans-LightItalic.ttf | Bin .../fonts/OpenSans/OpenSans-Regular.ttf | Bin .../fonts/OpenSans/OpenSans-Semibold.ttf | Bin .../OpenSans/OpenSans-SemiboldItalic.ttf | Bin .../fonts/OpenSansEmoji/OpenSansEmoji.otf | Bin .../fonts/OpenSansEmoji/OpenSansEmoji.ttf | Bin .../fonts/OpenSansWeb/OpenSans-Bold.woff | Bin .../fonts/OpenSansWeb/OpenSans-Bold.woff2 | Bin .../OpenSansWeb/OpenSans-BoldItalic.woff | Bin .../OpenSansWeb/OpenSans-BoldItalic.woff2 | Bin .../fonts/OpenSansWeb/OpenSans-ExtraBold.woff | Bin .../OpenSansWeb/OpenSans-ExtraBold.woff2 | Bin .../OpenSansWeb/OpenSans-ExtraBoldItalic.woff | Bin .../OpenSans-ExtraBoldItalic.woff2 | Bin .../fonts/OpenSansWeb/OpenSans-Italic.woff | Bin .../fonts/OpenSansWeb/OpenSans-Italic.woff2 | Bin .../fonts/OpenSansWeb/OpenSans-Light.woff | Bin .../fonts/OpenSansWeb/OpenSans-Light.woff2 | Bin .../OpenSansWeb/OpenSans-LightItalic.woff | Bin .../OpenSansWeb/OpenSans-LightItalic.woff2 | Bin .../fonts/OpenSansWeb/OpenSans-Regular.woff | Bin .../fonts/OpenSansWeb/OpenSans-Regular.woff2 | Bin .../fonts/OpenSansWeb/OpenSans-Semibold.woff | Bin .../fonts/OpenSansWeb/OpenSans-Semibold.woff2 | Bin .../OpenSansWeb/OpenSans-SemiboldItalic.woff | Bin .../OpenSansWeb/OpenSans-SemiboldItalic.woff2 | Bin .../resources}/fonts/OpenSansWeb/README.txt | 0 .../glyphicons-halflings-regular.eot | Bin .../glyphicons-halflings-regular.svg | 0 .../glyphicons-halflings-regular.ttf | Bin .../glyphicons-halflings-regular.woff | Bin .../glyphicons-halflings-regular.woff2 | Bin .../ILIAS/UI/resources}/images/README.md | 0 .../ILIAS/UI/resources}/images/ROADMAP.md | 0 .../images/auth/cas_login_button.png | Bin .../images/auth/shib_login_button.svg | 0 .../UI/resources}/images/browser/blank.png | Bin .../UI/resources}/images/browser/forceexp.png | Bin .../UI/resources}/images/browser/minus.png | Bin .../UI/resources}/images/browser/plus.png | Bin .../images/cont_tile/cont_tile_default.svg | 0 .../cont_tile/cont_tile_default_bibl.svg | 0 .../cont_tile/cont_tile_default_blog.svg | 0 .../cont_tile/cont_tile_default_book.svg | 0 .../cont_tile/cont_tile_default_cat.svg | 0 .../cont_tile/cont_tile_default_catr.svg | 0 .../cont_tile/cont_tile_default_chatr.svg | 0 .../cont_tile/cont_tile_default_cld.svg | 0 .../cont_tile/cont_tile_default_crs.svg | 0 .../cont_tile/cont_tile_default_crsr.svg | 0 .../cont_tile/cont_tile_default_dcl.svg | 0 .../cont_tile/cont_tile_default_exc.svg | 0 .../cont_tile/cont_tile_default_file.svg | 0 .../cont_tile/cont_tile_default_fold.svg | 0 .../cont_tile/cont_tile_default_frm.svg | 0 .../cont_tile/cont_tile_default_glo.svg | 0 .../cont_tile/cont_tile_default_grp.svg | 0 .../cont_tile/cont_tile_default_grpr.svg | 0 .../cont_tile/cont_tile_default_htlm.svg | 0 .../cont_tile/cont_tile_default_iass.svg | 0 .../cont_tile/cont_tile_default_lres.svg | 0 .../cont_tile/cont_tile_default_lso.svg | 0 .../cont_tile/cont_tile_default_mcst.svg | 0 .../cont_tile/cont_tile_default_mep.svg | 0 .../cont_tile/cont_tile_default_prg.svg | 0 .../cont_tile/cont_tile_default_prtt.svg | 0 .../cont_tile/cont_tile_default_sess.svg | 0 .../cont_tile/cont_tile_default_spl.svg | 0 .../cont_tile/cont_tile_default_tst.svg | 0 .../cont_tile/cont_tile_default_webr.svg | 0 .../cont_tile/cont_tile_default_wiki.svg | 0 .../images/contentstyle/FramedBack.png | Bin .../images/contentstyle/advknow.png | Bin .../images/copyrights/all_rights_reserved.svg | 0 .../default_file_icons/icon_file_avi.svg | 0 .../default_file_icons/icon_file_bmp.svg | 0 .../default_file_icons/icon_file_csv.svg | 0 .../default_file_icons/icon_file_docx.svg | 0 .../default_file_icons/icon_file_flv.svg | 0 .../default_file_icons/icon_file_gif.svg | 0 .../default_file_icons/icon_file_ico.svg | 0 .../default_file_icons/icon_file_jpg.svg | 0 .../default_file_icons/icon_file_md.svg | 0 .../default_file_icons/icon_file_mov.svg | 0 .../default_file_icons/icon_file_mp3.svg | 0 .../default_file_icons/icon_file_mp4.svg | 0 .../default_file_icons/icon_file_odp.svg | 0 .../default_file_icons/icon_file_ods.svg | 0 .../default_file_icons/icon_file_odt.svg | 0 .../default_file_icons/icon_file_pdf.svg | 0 .../default_file_icons/icon_file_png.svg | 0 .../default_file_icons/icon_file_pptx.svg | 0 .../default_file_icons/icon_file_rtf.svg | 0 .../default_file_icons/icon_file_svg.svg | 0 .../default_file_icons/icon_file_tiff.svg | 0 .../default_file_icons/icon_file_txt.svg | 0 .../default_file_icons/icon_file_wav.svg | 0 .../default_file_icons/icon_file_wma.svg | 0 .../default_file_icons/icon_file_xlsx.svg | 0 .../default_file_icons/icon_file_xml.svg | 0 .../images/learning_progress/completed.svg | 0 .../images/learning_progress/failed.svg | 0 .../images/learning_progress/in_progress.svg | 0 .../learning_progress/not_attempted.svg | 0 .../images/learning_progress/short/asset.svg | 0 .../learning_progress/short/completed.svg | 0 .../images/learning_progress/short/failed.svg | 0 .../learning_progress/short/in_progress.svg | 0 .../learning_progress/short/not_attempted.svg | 0 .../learning_progress/short/running.svg | 0 .../ILIAS/UI/resources}/images/license.txt | 0 .../UI/resources}/images/logo/HeaderIcon.svg | 0 .../images/logo/HeaderIconAvatar.svg | 0 .../images/logo/HeaderIconResponsive.svg | 0 .../UI/resources}/images/logo/Sharing.jpg | Bin .../UI/resources}/images/logo/favicon.ico | Bin .../logo/ilias_logo_114x114-precomposed.png | Bin .../images/logo/ilias_logo_114x114.png | Bin .../logo/ilias_logo_57x57-precomposed.png | Bin .../images/logo/ilias_logo_57x57.png | Bin .../logo/ilias_logo_72x72-precomposed.png | Bin .../images/logo/ilias_logo_72x72.png | Bin .../logo/ilias_logo_startup_320x460.png | Bin .../UI/resources}/images/media/bigplay.svg | 0 .../UI/resources}/images/media/black60.png | Bin .../UI/resources}/images/media/enlarge.svg | 0 .../UI/resources}/images/media/loader.svg | 0 .../UI/resources}/images/media/loading.gif | Bin .../resources}/images/media/mcst_preview.svg | 0 .../ILIAS/UI/resources}/images/media/play.svg | 0 .../UI/resources}/images/media/spacer.png | Bin .../UI/resources}/images/media/time_warn.svg | 0 .../resources}/images/nav/arrow_downright.svg | 0 .../resources}/images/nav/arrow_upright.svg | 0 .../ILIAS/UI/resources}/images/nav/jstree.svg | 0 .../UI/resources}/images/nav/nav_arr2_L.png | Bin .../UI/resources}/images/nav/nav_arr_L.png | Bin .../UI/resources}/images/nav/nav_arr_L_s.png | Bin .../UI/resources}/images/nav/nav_arr_R.png | Bin .../UI/resources}/images/nav/nav_arr_R_s.png | Bin .../UI/resources}/images/nav/tree_col.svg | 0 .../UI/resources}/images/nav/tree_exp.svg | 0 .../UI/resources}/images/object/answered.svg | 0 .../resources}/images/object/answered_not.svg | 0 .../UI/resources}/images/object/cell.svg | 0 .../images/object/checkbox_checked.png | Bin .../images/object/checkbox_unchecked.png | Bin .../ILIAS/UI/resources}/images/object/col.svg | 0 .../UI/resources}/images/object/marked.svg | 0 .../UI/resources}/images/object/marked_.svg | 0 .../images/object/notification_off.svg | 0 .../images/object/notification_on.svg | 0 .../images/object/radiobutton_checked.png | Bin .../images/object/radiobutton_unchecked.png | Bin .../ILIAS/UI/resources}/images/object/row.svg | 0 .../UI/resources}/images/object/target.svg | 0 .../UI/resources}/images/object/wizard.svg | 0 .../images/page_editor/icon_peac.svg | 0 .../images/page_editor/icon_peadl.svg | 0 .../images/page_editor/icon_peadt.svg | 0 .../images/page_editor/icon_pean.svg | 0 .../images/page_editor/icon_pecd.svg | 0 .../images/page_editor/icon_pech.svg | 0 .../images/page_editor/icon_pecl.svg | 0 .../images/page_editor/icon_peclp.svg | 0 .../images/page_editor/icon_pecom.svg | 0 .../images/page_editor/icon_pecrs.svg | 0 .../images/page_editor/icon_pecrt.svg | 0 .../images/page_editor/icon_pecs.svg | 0 .../images/page_editor/icon_pedt.svg | 0 .../images/page_editor/icon_pefl.svg | 0 .../images/page_editor/icon_peim.svg | 0 .../images/page_editor/icon_pelh.svg | 0 .../images/page_editor/icon_pemed.svg | 0 .../images/page_editor/icon_pemp.svg | 0 .../images/page_editor/icon_pepd.svg | 0 .../images/page_editor/icon_pepe.svg | 0 .../images/page_editor/icon_pepl.svg | 0 .../images/page_editor/icon_peplh.svg | 0 .../images/page_editor/icon_pequ.svg | 0 .../images/page_editor/icon_perl.svg | 0 .../page_editor/icon_personal_settings.svg | 0 .../images/page_editor/icon_pesc.svg | 0 .../images/page_editor/icon_petmp.svg | 0 .../images/page_editor/icon_peusr.svg | 0 .../images/page_editor/icon_pewl.svg | 0 .../images/placeholder/file_placeholder.svg | 0 .../images/placeholder/media_placeholder.png | Bin .../placeholder/media_placeholder_thumb.png | Bin .../images/placeholder/no_photo_xsmall.jpg | Bin .../images/placeholder/no_photo_xxsmall.jpg | Bin .../pred_text_placeholder_thumb.png | Bin .../placeholder/question_placeholder.png | Bin .../question_placeholder_thumb.png | Bin .../images/placeholder/text_placeholder.png | Bin .../placeholder/text_placeholder_thumb.png | Bin .../UI/resources}/images/scorm/asset.png | Bin .../UI/resources}/images/scorm/asset.svg | 0 .../UI/resources}/images/scorm/asset_s.png | Bin .../UI/resources}/images/scorm/browsed.png | Bin .../UI/resources}/images/scorm/browsed_s.png | Bin .../UI/resources}/images/scorm/complete.png | Bin .../UI/resources}/images/scorm/complete.svg | 0 .../UI/resources}/images/scorm/complete_s.png | Bin .../UI/resources}/images/scorm/completed.png | Bin .../UI/resources}/images/scorm/completed.svg | 0 .../resources}/images/scorm/completed_s.png | Bin .../UI/resources}/images/scorm/empty.png | Bin .../UI/resources}/images/scorm/failed.png | Bin .../UI/resources}/images/scorm/failed.svg | 0 .../UI/resources}/images/scorm/failed_s.png | Bin .../resources}/images/scorm/in_progress.png | Bin .../UI/resources}/images/scorm/incomplete.png | Bin .../UI/resources}/images/scorm/incomplete.svg | 0 .../resources}/images/scorm/incomplete_s.png | Bin .../resources}/images/scorm/not_attempted.png | Bin .../resources}/images/scorm/not_attempted.svg | 0 .../images/scorm/not_attempted_s.png | Bin .../UI/resources}/images/scorm/passed.png | Bin .../UI/resources}/images/scorm/passed.svg | 0 .../UI/resources}/images/scorm/passed_s.png | Bin .../UI/resources}/images/scorm/running.png | Bin .../UI/resources}/images/scorm/running.svg | 0 .../UI/resources}/images/scorm/running_s.png | Bin .../resources}/images/standard/icon_accs.svg | 0 .../resources}/images/standard/icon_achv.svg | 0 .../resources}/images/standard/icon_achva.svg | 0 .../resources}/images/standard/icon_adm.svg | 0 .../resources}/images/standard/icon_adma.svg | 0 .../resources}/images/standard/icon_adn.svg | 0 .../resources}/images/standard/icon_adve.svg | 0 .../resources}/images/standard/icon_alert.svg | 0 .../resources}/images/standard/icon_appr.svg | 0 .../resources}/images/standard/icon_ass.svg | 0 .../resources}/images/standard/icon_assf.svg | 0 .../resources}/images/standard/icon_auth.svg | 0 .../images/standard/icon_avatar.svg | 0 .../resources}/images/standard/icon_awra.svg | 0 .../resources}/images/standard/icon_bdg.svg | 0 .../resources}/images/standard/icon_bdga.svg | 0 .../resources}/images/standard/icon_bgtk.svg | 0 .../resources}/images/standard/icon_bibl.svg | 0 .../resources}/images/standard/icon_bibs.svg | 0 .../resources}/images/standard/icon_blga.svg | 0 .../resources}/images/standard/icon_blog.svg | 0 .../resources}/images/standard/icon_book.svg | 0 .../resources}/images/standard/icon_cadm.svg | 0 .../resources}/images/standard/icon_cal.svg | 0 .../resources}/images/standard/icon_calch.svg | 0 .../resources}/images/standard/icon_calg.svg | 0 .../resources}/images/standard/icon_cals.svg | 0 .../resources}/images/standard/icon_cat.svg | 0 .../resources}/images/standard/icon_catr.svg | 0 .../resources}/images/standard/icon_cert.svg | 0 .../resources}/images/standard/icon_chap.svg | 0 .../images/standard/icon_checked.svg | 0 .../resources}/images/standard/icon_chp.svg | 0 .../resources}/images/standard/icon_chta.png | Bin .../resources}/images/standard/icon_chta.svg | 0 .../resources}/images/standard/icon_chtr.svg | 0 .../resources}/images/standard/icon_cld.svg | 0 .../resources}/images/standard/icon_cmis.svg | 0 .../resources}/images/standard/icon_cmix.svg | 0 .../resources}/images/standard/icon_cmps.svg | 0 .../resources}/images/standard/icon_cmxv.svg | 0 .../resources}/images/standard/icon_coma.svg | 0 .../resources}/images/standard/icon_comp.svg | 0 .../resources}/images/standard/icon_coms.svg | 0 .../resources}/images/standard/icon_comu.svg | 0 .../resources}/images/standard/icon_con.svg | 0 .../images/standard/icon_con_VAR.svg | 0 .../resources}/images/standard/icon_copa.svg | 0 .../resources}/images/standard/icon_cpad.svg | 0 .../resources}/images/standard/icon_crgr.svg | 0 .../resources}/images/standard/icon_crs.svg | 0 .../resources}/images/standard/icon_crsr.svg | 0 .../resources}/images/standard/icon_crss.svg | 0 .../resources}/images/standard/icon_crst.svg | 0 .../resources}/images/standard/icon_crsv.svg | 0 .../resources}/images/standard/icon_dcl.svg | 0 .../images/standard/icon_dcl_file.svg | 0 .../images/standard/icon_dcl_fold.svg | 0 .../resources}/images/standard/icon_ddp.svg | 0 .../images/standard/icon_default.svg | 0 .../resources}/images/standard/icon_disq.svg | 0 .../resources}/images/standard/icon_dpro.svg | 0 .../images/standard/icon_drafts.svg | 0 .../resources}/images/standard/icon_dsha.svg | 0 .../resources}/images/standard/icon_dshs.svg | 0 .../resources}/images/standard/icon_ecss.svg | 0 .../resources}/images/standard/icon_edtr.svg | 0 .../resources}/images/standard/icon_enrl.svg | 0 .../resources}/images/standard/icon_etal.svg | 0 .../resources}/images/standard/icon_exc.svg | 0 .../resources}/images/standard/icon_excs.svg | 0 .../resources}/images/standard/icon_excv.svg | 0 .../resources}/images/standard/icon_exta.svg | 0 .../resources}/images/standard/icon_extt.svg | 0 .../resources}/images/standard/icon_facs.svg | 0 .../resources}/images/standard/icon_faq.svg | 0 .../resources}/images/standard/icon_fav.svg | 0 .../resources}/images/standard/icon_feed.svg | 0 .../resources}/images/standard/icon_file.svg | 0 .../images/standard/icon_file_inline.svg | 0 .../resources}/images/standard/icon_fils.svg | 0 .../resources}/images/standard/icon_fldm.svg | 0 .../resources}/images/standard/icon_fold.svg | 0 .../resources}/images/standard/icon_foldt.svg | 0 .../resources}/images/standard/icon_frm.svg | 0 .../resources}/images/standard/icon_frma.svg | 0 .../resources}/images/standard/icon_gcon.svg | 0 .../resources}/images/standard/icon_glo.svg | 0 .../resources}/images/standard/icon_grp.svg | 0 .../resources}/images/standard/icon_grpr.svg | 0 .../resources}/images/standard/icon_grps.svg | 0 .../resources}/images/standard/icon_hlp.svg | 0 .../resources}/images/standard/icon_hlps.svg | 0 .../resources}/images/standard/icon_htlm.svg | 0 .../UI/resources}/images/standard/icon_i.svg | 0 .../resources}/images/standard/icon_iass.svg | 0 .../resources}/images/standard/icon_impr.svg | 0 .../resources}/images/standard/icon_inbox.svg | 0 .../resources}/images/standard/icon_info.svg | 0 .../resources}/images/standard/icon_itgr.svg | 0 .../images/standard/icon_lglntc.svg | 0 .../resources}/images/standard/icon_lhist.svg | 0 .../resources}/images/standard/icon_lht.svg | 0 .../resources}/images/standard/icon_lhts.svg | 0 .../UI/resources}/images/standard/icon_lm.svg | 0 .../resources}/images/standard/icon_lng.svg | 0 .../resources}/images/standard/icon_lngf.svg | 0 .../resources}/images/standard/icon_lobj.svg | 0 .../resources}/images/standard/icon_local.svg | 0 .../resources}/images/standard/icon_login.svg | 0 .../images/standard/icon_logout.svg | 0 .../resources}/images/standard/icon_logs.svg | 0 .../resources}/images/standard/icon_lreg.svg | 0 .../resources}/images/standard/icon_lres.svg | 0 .../resources}/images/standard/icon_lrss.svg | 0 .../resources}/images/standard/icon_lso.svg | 0 .../resources}/images/standard/icon_lsos.svg | 0 .../resources}/images/standard/icon_lstv.svg | 0 .../resources}/images/standard/icon_lti.svg | 0 .../images/standard/icon_lti_large.svg | 0 .../resources}/images/standard/icon_ltis.svg | 0 .../resources}/images/standard/icon_ltiv.svg | 0 .../resources}/images/standard/icon_mail.svg | 0 .../resources}/images/standard/icon_mailf.svg | 0 .../resources}/images/standard/icon_mcst.svg | 0 .../resources}/images/standard/icon_mcts.svg | 0 .../resources}/images/standard/icon_mdia.svg | 0 .../resources}/images/standard/icon_mds.svg | 0 .../resources}/images/standard/icon_mep.svg | 0 .../resources}/images/standard/icon_mme.svg | 0 .../resources}/images/standard/icon_mob.svg | 0 .../resources}/images/standard/icon_mobs.svg | 0 .../resources}/images/standard/icon_more.svg | 0 .../images/standard/icon_mostly_ok.svg | 0 .../images/standard/icon_not_ok.svg | 0 .../standard/icon_not_ok_monochrome.svg | 0 .../resources}/images/standard/icon_nota.svg | 0 .../resources}/images/standard/icon_nots.svg | 0 .../images/standard/icon_ntfctn.svg | 0 .../resources}/images/standard/icon_nwss.svg | 0 .../resources}/images/standard/icon_obj.svg | 0 .../UI/resources}/images/standard/icon_ok.svg | 0 .../images/standard/icon_ok_monochrome.svg | 0 .../resources}/images/standard/icon_orga.svg | 0 .../resources}/images/standard/icon_orgu.svg | 0 .../resources}/images/standard/icon_otpl.svg | 0 .../resources}/images/standard/icon_page.svg | 0 .../resources}/images/standard/icon_pays.svg | 0 .../resources}/images/standard/icon_pcht.svg | 0 .../UI/resources}/images/standard/icon_pd.svg | 0 .../resources}/images/standard/icon_pdfg.svg | 0 .../resources}/images/standard/icon_pdts.svg | 0 .../UI/resources}/images/standard/icon_pg.svg | 0 .../resources}/images/standard/icon_pg_d.svg | 0 .../images/standard/icon_pg_d_sc.svg | 0 .../images/standard/icon_pg_del.svg | 0 .../images/standard/icon_pg_del_sc.svg | 0 .../resources}/images/standard/icon_pg_sc.svg | 0 .../resources}/images/standard/icon_pin.svg | 0 .../images/standard/icon_pin_on.png | Bin .../resources}/images/standard/icon_poll.svg | 0 .../resources}/images/standard/icon_prfa.svg | 0 .../resources}/images/standard/icon_prfl.svg | 0 .../resources}/images/standard/icon_prg.svg | 0 .../resources}/images/standard/icon_prgr.svg | 0 .../resources}/images/standard/icon_prgs.svg | 0 .../images/standard/icon_profile.svg | 0 .../resources}/images/standard/icon_prss.svg | 0 .../resources}/images/standard/icon_prst.svg | 0 .../resources}/images/standard/icon_prtf.svg | 0 .../resources}/images/standard/icon_prtt.svg | 0 .../UI/resources}/images/standard/icon_ps.svg | 0 .../resources}/images/standard/icon_pwsa.svg | 0 .../resources}/images/standard/icon_qpl.svg | 0 .../resources}/images/standard/icon_ques.svg | 0 .../images/standard/icon_rate_0.svg | 0 .../images/standard/icon_rate_1.svg | 0 .../images/standard/icon_rate_10.svg | 0 .../images/standard/icon_rate_2.svg | 0 .../images/standard/icon_rate_3.svg | 0 .../images/standard/icon_rate_4.svg | 0 .../images/standard/icon_rate_5.svg | 0 .../images/standard/icon_rate_6.svg | 0 .../images/standard/icon_rate_7.svg | 0 .../images/standard/icon_rate_8.svg | 0 .../images/standard/icon_rate_9.svg | 0 .../images/standard/icon_rate_marker.svg | 0 .../images/standard/icon_rate_off.svg | 0 .../images/standard/icon_rate_on.svg | 0 .../images/standard/icon_rate_on_user.svg | 0 .../resources}/images/standard/icon_rcat.svg | 0 .../resources}/images/standard/icon_rcrs.svg | 0 .../resources}/images/standard/icon_recf.svg | 0 .../resources}/images/standard/icon_rep.svg | 0 .../resources}/images/standard/icon_repa.svg | 0 .../resources}/images/standard/icon_repo.svg | 0 .../resources}/images/standard/icon_reps.svg | 0 .../resources}/images/standard/icon_reptr.svg | 0 .../resources}/images/standard/icon_rfil.svg | 0 .../resources}/images/standard/icon_rglo.svg | 0 .../resources}/images/standard/icon_rgrp.svg | 0 .../resources}/images/standard/icon_rlm.svg | 0 .../resources}/images/standard/icon_role.svg | 0 .../resources}/images/standard/icon_rolf.svg | 0 .../resources}/images/standard/icon_rolt.svg | 0 .../resources}/images/standard/icon_root.svg | 0 .../resources}/images/standard/icon_rtst.svg | 0 .../resources}/images/standard/icon_rwik.svg | 0 .../resources}/images/standard/icon_safa.svg | 0 .../resources}/images/standard/icon_sahs.svg | 0 .../images/standard/icon_sahs_offline.svg | 0 .../resources}/images/standard/icon_scat.svg | 0 .../images/standard/icon_scat_off.svg | 0 .../resources}/images/standard/icon_sco.svg | 0 .../resources}/images/standard/icon_scov.svg | 0 .../resources}/images/standard/icon_sctp.svg | 0 .../images/standard/icon_sctp_off.svg | 0 .../resources}/images/standard/icon_sctr.svg | 0 .../images/standard/icon_sctr_off.svg | 0 .../resources}/images/standard/icon_sea.svg | 0 .../resources}/images/standard/icon_seas.svg | 0 .../resources}/images/standard/icon_send.svg | 0 .../resources}/images/standard/icon_sent.svg | 0 .../resources}/images/standard/icon_sess.svg | 0 .../resources}/images/standard/icon_skee.svg | 0 .../resources}/images/standard/icon_skll.svg | 0 .../images/standard/icon_skll_off.svg | 0 .../resources}/images/standard/icon_skmg.svg | 0 .../resources}/images/standard/icon_skrt.svg | 0 .../resources}/images/standard/icon_sktp.svg | 0 .../resources}/images/standard/icon_sktr.svg | 0 .../images/standard/icon_sktr_off.svg | 0 .../images/standard/icon_slm_offline.svg | 0 .../resources}/images/standard/icon_spl.svg | 0 .../resources}/images/standard/icon_src.svg | 0 .../UI/resources}/images/standard/icon_st.svg | 0 .../resources}/images/standard/icon_stff.svg | 0 .../resources}/images/standard/icon_sty.svg | 0 .../resources}/images/standard/icon_stys.svg | 0 .../resources}/images/standard/icon_svy.svg | 0 .../resources}/images/standard/icon_svyf.svg | 0 .../resources}/images/standard/icon_sysc.svg | 0 .../resources}/images/standard/icon_tag.svg | 0 .../resources}/images/standard/icon_tags.svg | 0 .../resources}/images/standard/icon_tala.svg | 0 .../resources}/images/standard/icon_talt.svg | 0 .../resources}/images/standard/icon_task.svg | 0 .../resources}/images/standard/icon_tax.svg | 0 .../resources}/images/standard/icon_taxn.svg | 0 .../resources}/images/standard/icon_taxs.svg | 0 .../resources}/images/standard/icon_time.svg | 0 .../resources}/images/standard/icon_toc.svg | 0 .../resources}/images/standard/icon_tool.svg | 0 .../resources}/images/standard/icon_tos.svg | 0 .../resources}/images/standard/icon_trac.svg | 0 .../resources}/images/standard/icon_trash.svg | 0 .../resources}/images/standard/icon_tst.svg | 0 .../resources}/images/standard/icon_tstt.svg | 0 .../resources}/images/standard/icon_tstv.svg | 0 .../UI/resources}/images/standard/icon_tt.svg | 0 .../images/standard/icon_unchecked.svg | 0 .../resources}/images/standard/icon_usr.svg | 0 .../resources}/images/standard/icon_usra.svg | 0 .../resources}/images/standard/icon_usrf.svg | 0 .../resources}/images/standard/icon_wbdv.svg | 0 .../resources}/images/standard/icon_wbrs.svg | 0 .../resources}/images/standard/icon_webr.svg | 0 .../resources}/images/standard/icon_wfld.svg | 0 .../resources}/images/standard/icon_wiki.svg | 0 .../resources}/images/standard/icon_wikis.svg | 0 .../resources}/images/standard/icon_wiks.svg | 0 .../resources}/images/standard/icon_wksp.svg | 0 .../resources}/images/standard/icon_wsrt.svg | 0 .../UI/resources}/images/standard/icon_x.svg | 0 .../resources}/images/standard/icon_xlet.svg | 0 .../ILIAS/UI/resources}/js/Button/button.js | 0 .../js/Chart/Bar/dist/bar.js | 0 .../js/Chart/Bar/rollup.config.js | 0 .../js/Chart/Bar/src/bar.horizontal.js | 0 .../js/Chart/Bar/src/bar.js | 0 .../js/Chart/Bar/src/bar.vertical.js | 0 .../ILIAS/UI/resources}/js/Core/dist/core.js | 36 +- .../js/Core/rollup.config.js | 2 +- .../js/Core/src/core.Tooltip.js | 0 .../js/Core/src/core.URLBuilder.js | 0 .../js/Core/src/core.URLBuilderToken.js | 0 .../js/Core/src/core.js | 0 .../js/Core/src/core.replaceContent.js | 0 .../UI/resources}/js/Counter/dist/counter.js | 2 +- .../js/Counter/rollup.config.js | 0 .../js/Counter/src/counter.js | 0 .../js/Counter/src/counter.main.js | 0 .../UI/resources}/js/Dropdown/dropdown.js | 0 .../resources}/js/Dropzone/File/dropzone.js | 0 .../UI/resources/js/Image/dist/image.min.js | 15 + .../js/Image/rollup.config.js | 4 +- .../js/Image/src/getImageElement.js | 0 .../js/Image/src/image.js | 0 .../js/Image/src/loadHighResolutionSource.js | 0 .../js/Input/Container/dist/filter.js | 0 .../js/Input/Container/rollup.config.js | 0 .../js/Input/Container/src/filter.js | 0 .../js/Input/Container/src/filter.main.js | 0 .../js/Input/Field/dist/input.factory.min.js | 1 + .../js/Input/Field/dynamic_inputs_renderer.js | 0 .../UI/resources}/js/Input/Field/file.js | 0 .../UI/resources}/js/Input/Field/groups.js | 0 .../UI/resources}/js/Input/Field/input.js | 0 .../js/Input/Field/rollup.config.js | 5 +- .../Field/src/Markdown/markdown.class.js | 0 .../Field/src/Markdown/markdown.factory.js | 0 .../Field/src/Markdown/preview.renderer.js | 0 .../Field/src/Textarea/textarea.class.js | 0 .../Field/src/Textarea/textarea.factory.js | 0 .../js/Input/Field/src/input.factory.js | 0 .../UI/resources}/js/Input/Field/tagInput.js | 0 .../js/Item/dist/notification.js | 0 .../js/Item/rollup.config.js | 0 .../js/Item/src/notification.js | 0 .../js/Item/src/notification.main.js | 0 .../js/MainControls/dist/mainbar.js | 4 +- .../js/MainControls/dist/maincontrols.min.js | 15 + .../js/MainControls/rollup.config.js | 4 +- .../js/MainControls/src/mainbar.js | 0 .../js/MainControls/src/mainbar.main.js | 0 .../js/MainControls/src/mainbar.model.js | 0 .../MainControls/src/mainbar.persistence.js | 0 .../js/MainControls/src/mainbar.renderer.js | 0 .../js/MainControls/src/maincontrols.js | 0 .../js/MainControls/src/metabar.class.js | 0 .../js/MainControls/src/metabar.factory.js | 0 .../js/MainControls/src/slate.class.js | 0 .../resources}/js/MainControls/system_info.js | 0 .../UI/resources}/js/Menu/dist/drilldown.js | 2 +- .../js/Menu/rollup.config.js | 0 .../js/Menu/src/drilldown.instances.js | 0 .../js/Menu/src/drilldown.js | 0 .../js/Menu/src/drilldown.main.js | 0 .../js/Menu/src/drilldown.mapping.js | 0 .../js/Menu/src/drilldown.model.js | 0 .../js/Menu/src/drilldown.persistence.js | 0 .../ILIAS/UI/resources}/js/Modal/modal.js | 0 .../ILIAS/UI/resources}/js/Page/stdpage.js | 0 .../js/Popover/popover.js | 0 .../UI/resources/js/Table/dist}/table.min.js | 0 .../js/Table/rollup.config.js | 6 +- .../js/Table/src/datatable.class.js | 0 .../js/Table/src/datatable.factory.js | 0 .../js/Table/src/presentationtable.class.js | 0 .../js/Table/src/presentationtable.factory.js | 0 .../js/Table/src/table.js | 0 .../ILIAS/UI/resources}/js/Toast/toast.js | 0 .../templates => resources}/js/Tree/tree.js | 0 .../js/ViewControl/dist}/viewcontrols.min.js | 0 .../js/ViewControl/rollup.config.js | 6 +- .../ViewControl/src/jqueryeventdispatcher.js | 0 .../js/ViewControl/src/pagination.class.js | 0 .../js/ViewControl/src/pagination.factory.js | 0 .../js/ViewControl/src/sortation.class.js | 0 .../js/ViewControl/src/sortation.factory.js | 0 .../js/ViewControl/src/viewcontrols.js | 0 .../Component/Button/Renderer.php | 12 +- .../Component/Chart/Bar/Renderer.php | 2 +- .../Component/Counter/Renderer.php | 2 +- .../Component/Dropdown/Renderer.php | 4 +- .../Component/Dropzone/File/Renderer.php | 2 +- .../Component/Image/Renderer.php | 2 +- .../Input/Field/FilterContextRenderer.php | 6 +- .../Component/Input/Field/Renderer.php | 20 +- .../Component/Item/Renderer.php | 2 +- .../Component/Layout/Page/Renderer.php | 4 +- .../Component/MainControls/Renderer.php | 8 +- .../Component/MainControls/Slate/Renderer.php | 2 +- .../Component/Menu/Renderer.php | 2 +- .../Component/Modal/Renderer.php | 2 +- .../Component/Popover/Renderer.php | 2 +- .../Component/Table/Renderer.php | 4 +- .../Component/Toast/Renderer.php | 4 +- .../Component/Tree/Renderer.php | 4 +- .../Component/ViewControl/Renderer.php | 3 +- .../Render/AbstractComponentRenderer.php | 2 +- .../examples/Card/RepositoryObject/base.php | 2 +- .../RepositoryObject/with_object_icon.php | 2 +- .../with_object_icon_and_actions.php | 2 +- .../with_object_icon_and_certificate.php | 2 +- ...ith_object_icon_and_progressmeter_mini.php | 2 +- .../UI/src/examples/Card/Standard/base.php | 2 +- .../examples/Card/Standard/with_sections.php | 2 +- .../Card/Standard/with_title_action.php | 2 +- .../ILIAS/UI/src/examples/Deck/base.php | 2 +- .../ILIAS/UI/src/examples/Deck/repository.php | 2 +- .../ILIAS/UI/src/examples/Deck/user.php | 2 +- .../ILIAS/UI/src/examples/Deck/xl_card.php | 2 +- .../src/examples/Layout/Page/Standard/ui.php | 2 +- .../Layout/Page/Standard/ui_mainbar.php | 2 +- .../examples/MainControls/Footer/footer.php | 2 +- .../Footer/footer_with_modals.php | 2 +- .../MainControls/MetaBar/base_metabar.php | 2 +- .../MainControls/ModeInfo/modeinfo.php | 2 +- .../Standard/with_all_view_controls.php | 2 +- .../Legacy/with_all_view_controls.php | 2 +- .../Listing/with_all_view_controls.php | 2 +- .../Panel/Standard/with_all_view_controls.php | 2 +- .../Popover/Standard/show_card_in_popover.php | 2 +- .../Symbol/Icon/Custom/custom_icon.php | 2 +- .../UI/tests/Client/Chart/Bar/bar.test.js | 20 +- .../UI/tests/Client/Counter/counter.test.js | 2 +- .../UI/tests/Client/Image/getImageElement.js | 2 +- .../Client/Image/loadHighResolutionSource.js | 2 +- .../Client/Input/Container/filter.test.js | 8 +- .../tests/Client/Input/Field/markdown.test.js | 320 ++- .../tests/Client/Input/Field/textarea.test.js | 202 +- .../Notification/NotificationItemTest.html | 8 +- .../Notification/notificationItem.test.js | 4 +- .../tests/Client/MainControls/mainbar.test.js | 310 ++- .../Client/Menu/Drilldown/drilldown.test.js | 10 +- .../Client/Table/Data/data.table.test.js | 4 +- .../Presentation/presentation.table.test.js | 4 +- .../UI/tests/Client/Toast/ToastTest.html | 4 +- .../ILIAS/UI/tests/Client/Tooltip.test.js | 1072 +++++----- .../ILIAS/UI/tests/Client/URLBuilder.test.js | 4 +- .../UI/tests/Client/URLBuilderToken.test.js | 2 +- .../Component/Button/BulkyButtonTest.php | 10 +- .../Component/Card/RepositoryObjectTest.php | 4 +- .../Component/Item/ItemNotificationTest.php | 4 +- .../UI/tests/Component/Item/ItemShyTest.php | 2 +- .../UI/tests/Component/Item/ItemTest.php | 12 +- .../Component/Launcher/LauncherInlineTest.php | 2 +- .../UI/tests/Component/Link/BulkyLinkTest.php | 16 +- .../Slate/NotificationSlateTest.php | 2 +- .../tests/Component/Symbol/Icon/IconTest.php | 4 +- .../Component/Toast/ToastClientHtmlTest.php | 2 +- .../Component/Tree/Node/BylineNodeTest.php | 2 +- .../Component/Tree/Node/KeyValueNodeTest.php | 2 +- .../Component/Tree/Node/SimpleNodeTest.php | 4 +- .../class.ilAdvancedSelectionListGUI.php | 2 +- .../Explorer/classes/class.ilExplorer.php | 2 +- .../classes/class.ilExplorerBaseGUI.php | 4 +- .../class.ilExplorerSelectInputGUI.php | 4 +- .../Modal/classes/class.ilModalGUI.php | 2 +- .../Overlay/classes/class.ilOverlayGUI.php | 2 +- .../classes/class.ilProgressBar.php | 2 +- .../classes/class.ilTextHighlighterGUI.php | 2 +- .../Toolbar/classes/class.ilToolbarGUI.php | 2 +- .../Tooltip/classes/class.ilTooltipGUI.php | 4 +- components/ILIAS/UIComponent/UIComponent.php | 21 +- .../js => resources}/AdvancedSelectionList.js | 0 .../ILIAS/UIComponent/resources}/Explorer2.js | 0 .../{Modal/js => resources}/Modal.js | 0 .../{Explorer/js => resources}/ilExplorer.js | 0 .../ILIAS/UIComponent/resources}/ilOverlay.js | 0 .../js => resources}/ilTextHighlighter.js | 0 .../{Tooltip/js => resources}/ilTooltip.js | 0 .../js => resources}/progress_bar.js | 0 components/ILIAS/UICore/UICore.php | 3 + .../classes/class.ilGlobalPageTemplate.php | 2 +- .../UICore/classes/class.ilGlobalTemplate.php | 6 +- .../UICore/classes/class.ilUIFramework.php | 2 +- .../class.ilUserPrivacySettingsGUI.php | 2 +- .../ILIAS/Utilities/classes/class.ilUtil.php | 128 +- components/ILIAS/WOPI/WOPI.php | 3 + .../ILIAS/WOPI/resources}/wopi/index.php | 2 +- .../WebAccessChecker/WebAccessChecker.php | 3 +- .../ILIAS/WebAccessChecker/implement-wac.md | 4 +- .../ILIAS/WebAccessChecker/resources}/wac.php | 12 +- components/ILIAS/WebDAV/WebDAV.php | 6 +- .../ILIAS/WebDAV/resources}/rootindex.php | 4 +- .../ILIAS/WebDAV/resources}/webdav.php | 8 +- .../classes/class.ilObjLinkResourceGUI.php | 4 +- components/ILIAS/Wiki/Wiki.php | 5 + .../ILIAS/Wiki/classes/class.ilObjWikiGUI.php | 2 +- .../Wiki/classes/class.ilWikiPageGUI.php | 2 +- .../ILIAS/Wiki/{js => resources}/WikiEdit.js | 0 .../ILIAS/Wiki/{js => resources}/WikiPres.js | 0 components/ILIAS/YUI/YUI.php | 23 +- .../ILIAS/YUI/classes/class.ilYuiUtil.php | 48 +- .../jQuery/classes/class.iljQueryUtil.php | 8 +- components/ILIAS/jQuery/jQuery.php | 9 +- .../soap/resources}/soap/nusoapserver.php | 16 +- .../ILIAS/soap/resources}/soap/server.php | 16 +- components/ILIAS/soap/soap.php | 6 +- docs/configuration/nginx_shibboleth.md | 2 +- docs/configuration/secure.md | 2 +- public/package-lock.json => package-lock.json | 46 +- public/package.json => package.json | 2 +- .../templates/default/notifications.js | 79 - .../src/templates/js/Image/dist/image.min.js | 15 - .../js/MainControls/dist/maincontrols.min.js | 15 - .../ILIAS/UI/src/templates/js/Tree/tree.js | 535 ----- .../WebAccessChecker/web_access_attach.php | 4 - .../WebAccessChecker/web_access_checker.php | 4 - .../WebAccessChecker/web_access_virtual.php | 4 - public/package_new.json | 28 - public/templates/default/buttons.js | 56 - public/templates/default/delos.css.map | 1 - .../010-settings/_settings_typography.scss | 4 +- .../Symbol/_ui-component_glyph.scss | 2 +- .../templates => templates}/default/delos.css | 55 +- templates/default/delos.css.map | 2 +- 1092 files changed, 5063 insertions(+), 3829 deletions(-) rename components/ILIAS/AccessControl/{js => resources}/ilPermSelect.js (100%) mode change 100755 => 100644 rename {public/components/ILIAS/Accordion/js => components/ILIAS/Accordion/resources}/accordion.js (100%) rename {public => components/ILIAS/AuthShibboleth/resources}/shib_login.php (99%) mode change 100755 => 100644 rename {public => components/ILIAS/AuthShibboleth/resources}/shib_logout.php (99%) mode change 100755 => 100644 rename components/ILIAS/Authentication/{js => resources}/session_reminder.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/Authentication/resources}/sessioncheck.php (73%) mode change 100755 => 100644 rename {public/components/ILIAS/Awareness/js => components/ILIAS/Awareness/resources}/Awareness.js (100%) rename components/ILIAS/BackgroundTasks_/{js => resources}/background_task_refresh.js (100%) mode change 100755 => 100644 rename {public/components/ILIAS/Block/js => components/ILIAS/Block/resources}/ilblockcallback.js (100%) rename components/ILIAS/BookingManager/{js => resources}/ScheduleInput.js (100%) mode change 100755 => 100644 mode change 100755 => 100644 components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js mode change 100755 => 100644 components/ILIAS/COPage/js/ilCOPagePres.js mode change 100755 => 100644 components/ILIAS/COPage/js/page_history.js rename {public => components/ILIAS/Calendar/resources}/calendar.php (100%) mode change 100755 => 100644 rename components/ILIAS/Calendar/{js => resources}/calendar_appointment.js (100%) mode change 100755 => 100644 rename components/ILIAS/Calendar/{js => resources}/recurrence_input.js (100%) mode change 100755 => 100644 rename components/ILIAS/Calendar/{js => resources}/toggle_notification.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/excanvas.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/excanvas.min.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.highlighter.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.min.js (100%) mode change 100755 => 100644 create mode 100755 components/ILIAS/Chart/resources/jquery.flot.pie.js rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.resize.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.resize.min.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.spider.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.stack.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chart/{js/flot => resources}/jquery.flot.stack.min.js (100%) mode change 100755 => 100644 rename components/ILIAS/Chatroom/{templates/default/style.css => resources/chatroom.css} (100%) rename components/ILIAS/Chatroom/{js/chat.js => resources/chatroom.js} (100%) mode change 100755 => 100644 rename components/ILIAS/Chatroom/{js => resources}/iliaschat.jquery.js (100%) mode change 100755 => 100644 create mode 100644 components/ILIAS/Component/src/Resource/ComponentCSS.php create mode 100644 components/ILIAS/Component/src/Resource/ComponentJS.php create mode 100644 components/ILIAS/Component/src/Resource/Endpoint.php create mode 100644 components/ILIAS/Component/src/Resource/NodeModule.php create mode 100644 components/ILIAS/Component/src/Resource/OfComponent.php create mode 100644 components/ILIAS/Component/src/Resource/PublicAsset.php create mode 100644 components/ILIAS/Component/src/Resource/PublicAssetManager.php create mode 100644 components/ILIAS/Component/src/Setup/PublicAssetsBuildObjective.php create mode 100644 components/ILIAS/Component/tests/Resource/ComponentResourceTest.php create mode 100644 components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php rename {public/components/ILIAS/Contact/BuddySystem/js => components/ILIAS/Contact/resources}/buddy_system.js (100%) rename components/ILIAS/Container/{js => resources}/Container.js (100%) mode change 100755 => 100644 rename components/ILIAS/Container/{Classification/js => resources}/ilClassification.js (100%) mode change 100755 => 100644 rename components/ILIAS/CopyWizard/{js => resources}/ilContainer.js (100%) mode change 100755 => 100644 rename components/ILIAS/CopyWizard/{js => resources}/ilCopyRedirection.js (100%) mode change 100755 => 100644 rename {public/components/ILIAS/Dashboard/Block/js => components/ILIAS/Dashboard/resources}/ReplaceModalContent.js (100%) rename components/ILIAS/Dashboard/{Administration/js => resources}/SortationUserInputHandler.js (100%) mode change 100755 => 100644 rename components/ILIAS/DataCollection/{js => resources}/datacollection.js (100%) mode change 100755 => 100644 rename components/ILIAS/DataCollection/{js => resources}/generic_multi_line_input.js (100%) mode change 100755 => 100644 rename components/ILIAS/Exercise/{js => resources}/ilExcIDl.js (100%) mode change 100755 => 100644 rename components/ILIAS/Exercise/{js => resources}/ilExcManagement.js (100%) mode change 100755 => 100644 rename components/ILIAS/Exercise/{js => resources}/ilExcPeerReview.js (100%) mode change 100755 => 100644 rename components/ILIAS/Exercise/{js => resources}/ilExcPresentation.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/Feeds/resources}/feed.php (99%) mode change 100755 => 100644 rename {public => components/ILIAS/Feeds/resources}/privfeed.php (92%) mode change 100755 => 100644 rename {public => components/ILIAS/FileDelivery/resources}/deliver.php (100%) rename components/ILIAS/Form/{js => resources}/Form.js (100%) mode change 100755 => 100644 rename components/ILIAS/Form/{js => resources}/ServiceFormHierarchyForm.js (100%) mode change 100755 => 100644 rename components/ILIAS/Form/{js => resources}/ServiceFormImageFileCapture.js (100%) mode change 100755 => 100644 rename components/ILIAS/Form/{js => resources}/ServiceFormMulti.js (100%) mode change 100755 => 100644 rename components/ILIAS/Form/{js => resources}/ServiceFormWizardInput.js (100%) mode change 100755 => 100644 rename components/ILIAS/Form/{templates/default => resources}/filewizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/Form/{templates/default => resources}/textwizard.js (100%) mode change 100755 => 100644 delete mode 100755 components/ILIAS/Forum/js/autosave.js create mode 100644 components/ILIAS/Forum/resources/autosave_forum.js rename {public/components/ILIAS/GlobalScreen/src/Client/dist => components/ILIAS/GlobalScreen/resources}/GS.js (100%) rename {public => components/ILIAS/GlobalScreen/resources}/gs_content.php (99%) mode change 100755 => 100644 rename components/ILIAS/Help/{js => resources}/ilHelp.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/.htaccess (100%) rename {public => components/ILIAS/Init/resources}/error.php (99%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/ilias.php (100%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/index.php (87%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/login.php (74%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/logout.php (86%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/pwassist.php (56%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/register.php (65%) mode change 100755 => 100644 rename {public => components/ILIAS/Init/resources}/sso/index.php (94%) mode change 100755 => 100644 rename {public/components/ILIAS/JavaScript/js => components/ILIAS/JavaScript/resources}/Basic.js (100%) rename {public => components/ILIAS/LTI/resources}/lti.php (100%) mode change 100755 => 100644 rename components/ILIAS/LearningHistory/{js => resources}/LearningHistory.js (100%) mode change 100755 => 100644 rename components/ILIAS/LearningModule/{js => resources}/LearningModule.js (100%) mode change 100755 => 100644 rename components/ILIAS/Like/{js => resources}/Like.js (100%) mode change 100755 => 100644 rename components/ILIAS/Link/{js => resources}/ilExtLink.js (100%) mode change 100755 => 100644 rename components/ILIAS/Link/{js => resources}/ilIntLink.js (100%) mode change 100755 => 100644 rename components/ILIAS/Mail/{js => resources}/ilMailComposeFunctions.js (100%) mode change 100755 => 100644 rename components/ILIAS/Maps/{js/dist => resources}/ServiceOpenLayers.js (100%) mode change 100755 => 100644 rename components/ILIAS/MediaCast/{Video/js => resources}/video_widget.js (100%) mode change 100755 => 100644 rename components/ILIAS/MediaObjects/{js => resources}/MediaObjectsCompletion.js (100%) mode change 100755 => 100644 rename components/ILIAS/MediaObjects/{js => resources}/ServiceMediaObjectPropWidthHeight.js (100%) mode change 100755 => 100644 rename components/ILIAS/MediaPool/{js => resources}/ilMediaPool.js (100%) mode change 100755 => 100644 rename components/ILIAS/News/{js => resources}/News.js (100%) mode change 100755 => 100644 rename components/ILIAS/News/{Timeline/js => resources}/Timeline.js (100%) mode change 100755 => 100644 rename components/ILIAS/Notes/{js => resources}/ilNotes.js (100%) mode change 100755 => 100644 rename components/ILIAS/Notifications/{js => resources}/browser_notifications.js (100%) mode change 100755 => 100644 create mode 100755 components/ILIAS/Notifications/resources/notifications.js rename {public/components/ILIAS/Notifications/templates/default => components/ILIAS/Notifications/resources}/osd.css (100%) rename components/ILIAS/{Chatroom/sounds => Notifications/resources}/receive.mp3 (100%) rename components/ILIAS/{Chatroom/sounds => Notifications/resources}/receive.ogg (100%) rename components/ILIAS/OnScreenChat/{js => resources}/chat.js (100%) mode change 100755 => 100644 rename components/ILIAS/OnScreenChat/{js => resources}/moment.js (100%) mode change 100755 => 100644 rename components/ILIAS/OnScreenChat/{js => resources}/onscreenchat-notifications.js (100%) mode change 100755 => 100644 rename components/ILIAS/OnScreenChat/{js => resources}/onscreenchat.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/OpenIdConnect/resources}/openidconnect.php (94%) mode change 100755 => 100644 delete mode 100755 components/ILIAS/OrgUnit/js/generic_multi_line_input.js rename components/ILIAS/OrgUnit/{templates/default => resources}/authority.js (100%) mode change 100755 => 100644 rename components/ILIAS/Poll/{js => resources}/ilPoll.js (100%) mode change 100755 => 100644 rename components/ILIAS/Portfolio/{js => resources}/ilPortfolio.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/Registration/resources}/confirmReg.php (100%) rename {public/components/ILIAS/Repository/js => components/ILIAS/Repository/resources}/repository.js (100%) rename components/ILIAS/Saml/{lib => resources}/authsources.php.dist (100%) rename components/ILIAS/Saml/{lib => resources}/config.php.dist (100%) rename components/ILIAS/Saml/{lib => resources}/metadata.php (100%) rename components/ILIAS/Saml/{lib => resources}/module.php (100%) rename {public => components/ILIAS/Saml/resources}/saml.php (100%) mode change 100755 => 100644 rename components/ILIAS/Saml/{lib => resources}/saml1-acs.php (100%) rename components/ILIAS/Saml/{lib => resources}/saml2-acs.php (100%) rename components/ILIAS/Saml/{lib => resources}/saml2-logout.php (100%) rename {public => components/ILIAS/Scorm2004/resources}/storeScorm.php (100%) mode change 100755 => 100644 rename {public => components/ILIAS/Scorm2004/resources}/storeScorm2004.php (99%) mode change 100755 => 100644 rename components/ILIAS/Search/{js => resources}/Search.js (100%) mode change 100755 => 100644 rename {public/components/ILIAS/Search/js => components/ILIAS/Search/resources}/SearchMainMenu.js (100%) rename components/ILIAS/Setup/tests/{ilSetupAgentTest.php => ilCommonSetupAgentTest.php} (88%) rename components/ILIAS/Skill/{js => resources}/SkillEntries.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/StaticURL/resources}/goto.php (99%) mode change 100755 => 100644 rename components/ILIAS/Survey/{templates/default => resources}/survey.css (100%) rename components/ILIAS/SurveyQuestionPool/{Categories/js => resources}/categorywizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/SurveyQuestionPool/{js => resources}/matrixrowwizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/Table/{js => resources}/ServiceTable.js (100%) mode change 100755 => 100644 rename components/ILIAS/Tagging/{js => resources}/ilTagging.js (100%) mode change 100755 => 100644 rename components/ILIAS/Test/{js => resources}/ilTestPlayerQuestionEditControl.js (100%) mode change 100755 => 100644 rename components/ILIAS/Test/{templates/default => resources}/settings_confirmation.js (100%) mode change 100755 => 100644 rename components/ILIAS/Test/{templates/default => resources}/test_kiosk_header.css (100%) rename components/ILIAS/Test/{templates/default => resources}/test_pdf.css (100%) rename components/ILIAS/Test/{templates/default => resources}/test_print.css (100%) rename components/ILIAS/Test/{templates/default => resources}/test_print_hide_content.css (100%) delete mode 100755 components/ILIAS/Test/templates/default/autosave.js rename components/ILIAS/TestQuestionPool/{templates/default => resources}/answerwizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/answerwizardinput.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/bootstrap-tagsinput_2015_25_03.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/errortext.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/essaykeywordwizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/identifiedwizardinput.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{js => resources}/ilAssKprimChoice.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{js => resources}/ilAssMultipleChoice.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{js => resources}/ilMatchingQuestion.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/imagemap.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/kprimchoicewizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/longMenuQuestion.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/longMenuQuestionGapBuilder.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/longMenuQuestionPlayer.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/matchinginput.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/matchingpairwizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/multiplechoicewizard.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/nested_ordering.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/orderinghorizontal.js (100%) mode change 100755 => 100644 rename components/ILIAS/TestQuestionPool/{templates/default => resources}/singlechoicewizard.js (100%) mode change 100755 => 100644 create mode 100644 components/ILIAS/TestQuestionPool/resources/testQuestionPoolTagInput.js rename components/ILIAS/TestQuestionPool/{templates/default => resources}/typeahead_0.11.1.js (100%) mode change 100755 => 100644 delete mode 100755 components/ILIAS/TestQuestionPool/templates/default/tagInput.js rename components/ILIAS/Tracking/{js => resources}/ilObjStat.js (100%) mode change 100755 => 100644 rename {public/templates/default => components/ILIAS/UI/resources}/fonts/Iconfont/Readme.md (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/Iconfont/il-icons.eot (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/Iconfont/il-icons.json (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/Iconfont/il-icons.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/Iconfont/il-icons.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/Iconfont/il-icons.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-Bold.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-BoldItalic.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-ExtraBold.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-Italic.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-Light.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-LightItalic.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-Regular.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-Semibold.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSans/OpenSans-SemiboldItalic.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansEmoji/OpenSansEmoji.otf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansEmoji/OpenSansEmoji.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Bold.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Bold.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-BoldItalic.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-ExtraBold.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Italic.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Italic.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Light.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Light.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-LightItalic.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Regular.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Regular.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Semibold.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-Semibold.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/OpenSansWeb/README.txt (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/bootstrap/glyphicons-halflings-regular.eot (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/bootstrap/glyphicons-halflings-regular.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/bootstrap/glyphicons-halflings-regular.ttf (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/bootstrap/glyphicons-halflings-regular.woff (100%) rename {public/templates/default => components/ILIAS/UI/resources}/fonts/bootstrap/glyphicons-halflings-regular.woff2 (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/README.md (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/ROADMAP.md (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/auth/cas_login_button.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/auth/shib_login_button.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/browser/blank.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/browser/forceexp.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/browser/minus.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/browser/plus.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_bibl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_blog.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_book.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_cat.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_catr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_chatr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_cld.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_crs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_crsr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_dcl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_exc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_file.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_fold.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_frm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_glo.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_grp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_grpr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_htlm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_iass.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_lres.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_lso.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_mcst.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_mep.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_prg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_prtt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_sess.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_spl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_tst.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_webr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/cont_tile/cont_tile_default_wiki.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/contentstyle/FramedBack.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/contentstyle/advknow.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/copyrights/all_rights_reserved.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_avi.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_bmp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_csv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_docx.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_flv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_gif.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_ico.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_jpg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_md.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_mov.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_mp3.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_mp4.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_odp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_ods.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_odt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_pdf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_png.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_pptx.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_rtf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_svg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_tiff.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_txt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_wav.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_wma.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_xlsx.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/default_file_icons/icon_file_xml.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/completed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/failed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/in_progress.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/not_attempted.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/short/asset.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/short/completed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/short/failed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/short/in_progress.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/short/not_attempted.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/learning_progress/short/running.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/license.txt (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/HeaderIcon.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/HeaderIconAvatar.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/HeaderIconResponsive.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/Sharing.jpg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/favicon.ico (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/ilias_logo_114x114-precomposed.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/ilias_logo_114x114.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/ilias_logo_57x57-precomposed.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/ilias_logo_57x57.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/ilias_logo_72x72-precomposed.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/ilias_logo_72x72.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/logo/ilias_logo_startup_320x460.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/bigplay.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/black60.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/enlarge.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/loader.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/loading.gif (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/mcst_preview.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/play.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/spacer.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/media/time_warn.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/arrow_downright.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/arrow_upright.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/jstree.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/nav_arr2_L.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/nav_arr_L.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/nav_arr_L_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/nav_arr_R.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/nav_arr_R_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/tree_col.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/nav/tree_exp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/answered.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/answered_not.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/cell.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/checkbox_checked.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/checkbox_unchecked.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/col.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/marked.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/marked_.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/notification_off.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/notification_on.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/radiobutton_checked.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/radiobutton_unchecked.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/row.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/target.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/object/wizard.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_peac.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_peadl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_peadt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pean.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pecd.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pech.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pecl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_peclp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pecom.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pecrs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pecrt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pecs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pedt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pefl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_peim.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pelh.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pemed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pemp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pepd.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pepe.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pepl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_peplh.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pequ.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_perl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_personal_settings.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pesc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_petmp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_peusr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/page_editor/icon_pewl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/file_placeholder.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/media_placeholder.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/media_placeholder_thumb.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/no_photo_xsmall.jpg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/no_photo_xxsmall.jpg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/pred_text_placeholder_thumb.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/question_placeholder.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/question_placeholder_thumb.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/text_placeholder.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/placeholder/text_placeholder_thumb.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/asset.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/asset.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/asset_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/browsed.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/browsed_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/complete.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/complete.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/complete_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/completed.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/completed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/completed_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/empty.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/failed.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/failed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/failed_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/in_progress.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/incomplete.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/incomplete.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/incomplete_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/not_attempted.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/not_attempted.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/not_attempted_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/passed.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/passed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/passed_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/running.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/running.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/scorm/running_s.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_accs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_achv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_achva.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_adm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_adma.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_adn.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_adve.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_alert.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_appr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ass.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_assf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_auth.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_avatar.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_awra.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_bdg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_bdga.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_bgtk.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_bibl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_bibs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_blga.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_blog.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_book.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cadm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cal.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_calch.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_calg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cals.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cat.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_catr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cert.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_chap.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_checked.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_chp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_chta.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_chta.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_chtr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cld.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cmis.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cmix.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cmps.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cmxv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_coma.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_comp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_coms.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_comu.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_con.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_con_VAR.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_copa.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_cpad.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_crgr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_crs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_crsr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_crss.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_crst.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_crsv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_dcl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_dcl_file.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_dcl_fold.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ddp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_default.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_disq.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_dpro.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_drafts.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_dsha.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_dshs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ecss.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_edtr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_enrl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_etal.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_exc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_excs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_excv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_exta.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_extt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_facs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_faq.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_fav.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_feed.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_file.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_file_inline.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_fils.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_fldm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_fold.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_foldt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_frm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_frma.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_gcon.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_glo.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_grp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_grpr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_grps.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_hlp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_hlps.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_htlm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_i.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_iass.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_impr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_inbox.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_info.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_itgr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lglntc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lhist.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lht.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lhts.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lng.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lngf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lobj.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_local.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_login.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_logout.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_logs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lreg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lres.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lrss.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lso.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lsos.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lstv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lti.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_lti_large.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ltis.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ltiv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mail.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mailf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mcst.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mcts.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mdia.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mds.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mep.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mme.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mob.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mobs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_more.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_mostly_ok.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_not_ok.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_not_ok_monochrome.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_nota.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_nots.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ntfctn.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_nwss.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_obj.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ok.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ok_monochrome.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_orga.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_orgu.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_otpl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_page.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pays.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pcht.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pd.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pdfg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pdts.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pg_d.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pg_d_sc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pg_del.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pg_del_sc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pg_sc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pin.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pin_on.png (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_poll.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prfa.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prfl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prgr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prgs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_profile.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prss.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prst.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prtf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_prtt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ps.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_pwsa.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_qpl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_ques.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_0.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_1.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_10.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_2.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_3.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_4.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_5.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_6.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_7.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_8.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_9.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_marker.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_off.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_on.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rate_on_user.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rcat.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rcrs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_recf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rep.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_repa.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_repo.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_reps.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_reptr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rfil.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rglo.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rgrp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rlm.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_role.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rolf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rolt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_root.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rtst.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_rwik.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_safa.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sahs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sahs_offline.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_scat.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_scat_off.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sco.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_scov.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sctp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sctp_off.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sctr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sctr_off.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sea.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_seas.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_send.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sent.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sess.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_skee.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_skll.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_skll_off.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_skmg.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_skrt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sktp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sktr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sktr_off.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_slm_offline.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_spl.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_src.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_st.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_stff.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sty.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_stys.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_svy.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_svyf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_sysc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tag.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tags.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tala.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_talt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_task.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tax.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_taxn.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_taxs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_time.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_toc.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tool.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tos.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_trac.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_trash.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tst.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tstt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tstv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_tt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_unchecked.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_usr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_usra.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_usrf.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wbdv.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wbrs.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_webr.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wfld.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wiki.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wikis.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wiks.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wksp.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_wsrt.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_x.svg (100%) rename {public/templates/default => components/ILIAS/UI/resources}/images/standard/icon_xlet.svg (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Button/button.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Chart/Bar/dist/bar.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Chart/Bar/rollup.config.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Chart/Bar/src/bar.horizontal.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Chart/Bar/src/bar.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Chart/Bar/src/bar.vertical.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Core/dist/core.js (95%) mode change 100755 => 100644 rename components/ILIAS/UI/{src/templates => resources}/js/Core/rollup.config.js (89%) rename components/ILIAS/UI/{src/templates => resources}/js/Core/src/core.Tooltip.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Core/src/core.URLBuilder.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Core/src/core.URLBuilderToken.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Core/src/core.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Core/src/core.replaceContent.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Counter/dist/counter.js (99%) mode change 100755 => 100644 rename components/ILIAS/UI/{src/templates => resources}/js/Counter/rollup.config.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Counter/src/counter.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Counter/src/counter.main.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Dropdown/dropdown.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Dropzone/File/dropzone.js (100%) create mode 100644 components/ILIAS/UI/resources/js/Image/dist/image.min.js rename components/ILIAS/UI/{src/templates => resources}/js/Image/rollup.config.js (83%) rename components/ILIAS/UI/{src/templates => resources}/js/Image/src/getImageElement.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Image/src/image.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Image/src/loadHighResolutionSource.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Container/dist/filter.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Container/rollup.config.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Container/src/filter.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Container/src/filter.main.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Input/Field/dist/input.factory.min.js (99%) mode change 100755 => 100644 rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Input/Field/dynamic_inputs_renderer.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Input/Field/file.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Input/Field/groups.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Input/Field/input.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Field/rollup.config.js (55%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Field/src/Markdown/markdown.class.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Field/src/Markdown/markdown.factory.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Field/src/Markdown/preview.renderer.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Field/src/Textarea/textarea.class.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Field/src/Textarea/textarea.factory.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Input/Field/src/input.factory.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Input/Field/tagInput.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Item/dist/notification.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Item/rollup.config.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Item/src/notification.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Item/src/notification.main.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/MainControls/dist/mainbar.js (99%) mode change 100755 => 100644 create mode 100644 components/ILIAS/UI/resources/js/MainControls/dist/maincontrols.min.js rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/rollup.config.js (86%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/mainbar.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/mainbar.main.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/mainbar.model.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/mainbar.persistence.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/mainbar.renderer.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/maincontrols.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/metabar.class.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/metabar.factory.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/MainControls/src/slate.class.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/MainControls/system_info.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Menu/dist/drilldown.js (99%) mode change 100755 => 100644 rename components/ILIAS/UI/{src/templates => resources}/js/Menu/rollup.config.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Menu/src/drilldown.instances.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Menu/src/drilldown.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Menu/src/drilldown.main.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Menu/src/drilldown.mapping.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Menu/src/drilldown.model.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Menu/src/drilldown.persistence.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Modal/modal.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Page/stdpage.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Popover/popover.js (100%) rename {public/components/ILIAS/UI/src/templates/js/Table => components/ILIAS/UI/resources/js/Table/dist}/table.min.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Table/rollup.config.js (76%) rename components/ILIAS/UI/{src/templates => resources}/js/Table/src/datatable.class.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Table/src/datatable.factory.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Table/src/presentationtable.class.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Table/src/presentationtable.factory.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Table/src/table.js (100%) rename {public/components/ILIAS/UI/src/templates => components/ILIAS/UI/resources}/js/Toast/toast.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/Tree/tree.js (100%) rename {public/components/ILIAS/UI/src/templates/js/ViewControl => components/ILIAS/UI/resources/js/ViewControl/dist}/viewcontrols.min.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/ViewControl/rollup.config.js (75%) rename components/ILIAS/UI/{src/templates => resources}/js/ViewControl/src/jqueryeventdispatcher.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/ViewControl/src/pagination.class.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/ViewControl/src/pagination.factory.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/ViewControl/src/sortation.class.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/ViewControl/src/sortation.factory.js (100%) rename components/ILIAS/UI/{src/templates => resources}/js/ViewControl/src/viewcontrols.js (100%) rename components/ILIAS/UIComponent/{AdvancedSelectionList/js => resources}/AdvancedSelectionList.js (100%) mode change 100755 => 100644 rename {public/components/ILIAS/UIComponent/Explorer2/js => components/ILIAS/UIComponent/resources}/Explorer2.js (100%) rename components/ILIAS/UIComponent/{Modal/js => resources}/Modal.js (100%) mode change 100755 => 100644 rename components/ILIAS/UIComponent/{Explorer/js => resources}/ilExplorer.js (100%) mode change 100755 => 100644 rename {public/components/ILIAS/UIComponent/Overlay/js => components/ILIAS/UIComponent/resources}/ilOverlay.js (100%) rename components/ILIAS/UIComponent/{TextHighlighter/js => resources}/ilTextHighlighter.js (100%) mode change 100755 => 100644 rename components/ILIAS/UIComponent/{Tooltip/js => resources}/ilTooltip.js (100%) mode change 100755 => 100644 rename components/ILIAS/UIComponent/{ProgressBar/js => resources}/progress_bar.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/WOPI/resources}/wopi/index.php (94%) mode change 100755 => 100644 rename {public/components/ILIAS/WebAccessChecker => components/ILIAS/WebAccessChecker/resources}/wac.php (53%) rename {public => components/ILIAS/WebDAV/resources}/rootindex.php (92%) mode change 100755 => 100644 rename {public => components/ILIAS/WebDAV/resources}/webdav.php (89%) mode change 100755 => 100644 rename components/ILIAS/Wiki/{js => resources}/WikiEdit.js (100%) mode change 100755 => 100644 rename components/ILIAS/Wiki/{js => resources}/WikiPres.js (100%) mode change 100755 => 100644 rename {public => components/ILIAS/soap/resources}/soap/nusoapserver.php (92%) mode change 100755 => 100644 rename {public => components/ILIAS/soap/resources}/soap/server.php (94%) mode change 100755 => 100644 rename public/package-lock.json => package-lock.json (99%) mode change 100755 => 100644 rename public/package.json => package.json (99%) mode change 100755 => 100644 delete mode 100755 public/components/ILIAS/Notifications/templates/default/notifications.js delete mode 100755 public/components/ILIAS/UI/src/templates/js/Image/dist/image.min.js delete mode 100755 public/components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js delete mode 100755 public/components/ILIAS/UI/src/templates/js/Tree/tree.js delete mode 100755 public/components/ILIAS/WebAccessChecker/web_access_attach.php delete mode 100755 public/components/ILIAS/WebAccessChecker/web_access_checker.php delete mode 100755 public/components/ILIAS/WebAccessChecker/web_access_virtual.php delete mode 100755 public/package_new.json delete mode 100755 public/templates/default/buttons.js delete mode 100644 public/templates/default/delos.css.map rename {public/templates => templates}/default/delos.css (99%) mode change 100755 => 100644 diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index d8709d77c1d0..e77d426c740c 100755 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -32,12 +32,12 @@ jobs: with: node-version: ${{ matrix.nodejs }} + - name: Install Node.js packages + run: npm clean-install + - name: Install Composer packages run: composer install --no-interaction --no-progress - - name: Install Node.js packages - run: cp public/package.json .; cp public/package-lock.json .; npm clean-install - - name: PHP Unit Test run: scripts/PHPUnit/run_tests.sh env: diff --git a/components/ILIAS/AccessControl/AccessControl.php b/components/ILIAS/AccessControl/AccessControl.php index 3ba82681611c..43a56be746b8 100644 --- a/components/ILIAS/AccessControl/AccessControl.php +++ b/components/ILIAS/AccessControl/AccessControl.php @@ -40,5 +40,7 @@ public function init( new \ilAccessRBACSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilPermSelect.js"); } } diff --git a/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php b/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php index f8ed78cbe822..82576a5b0362 100755 --- a/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php +++ b/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php @@ -57,7 +57,7 @@ public function __construct(ilPermissionGUI $a_parent_obj, string $a_parent_cmd, $this->tree_path_ids = $this->tree->getPathId($this->ref_id); $tpl = $DIC->ui()->mainTemplate(); - $tpl->addJavaScript('./components/ILIAS/AccessControl/js/ilPermSelect.js'); + $tpl->addJavaScript('assets/js/ilPermSelect.js'); $this->setTitle($this->lng->txt('permission_settings')); $this->setEnableHeader(true); diff --git a/components/ILIAS/AccessControl/js/ilPermSelect.js b/components/ILIAS/AccessControl/resources/ilPermSelect.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/AccessControl/js/ilPermSelect.js rename to components/ILIAS/AccessControl/resources/ilPermSelect.js diff --git a/components/ILIAS/Accordion/Accordion.php b/components/ILIAS/Accordion/Accordion.php index 54277102201d..9f0c1c98ab20 100644 --- a/components/ILIAS/Accordion/Accordion.php +++ b/components/ILIAS/Accordion/Accordion.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "accordion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("owl.carousel/dist/owl.carousel.js"); } } diff --git a/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php b/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php index 2f5d7c644181..c55d5c670c00 100755 --- a/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php +++ b/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php @@ -254,8 +254,8 @@ public static function addCss(): void public static function getLocalJavascriptFiles(): array { return array( - "./components/ILIAS/Accordion/js/accordion.js", - self::$owl_path . self::$owl_js_path + "assets/js/accordion.js", + "assets/js" . self::$owl_js_path ); } diff --git a/public/components/ILIAS/Accordion/js/accordion.js b/components/ILIAS/Accordion/resources/accordion.js similarity index 100% rename from public/components/ILIAS/Accordion/js/accordion.js rename to components/ILIAS/Accordion/resources/accordion.js diff --git a/components/ILIAS/App/tests/RootFolderTest.php b/components/ILIAS/App/tests/RootFolderTest.php index 3e86f236fbac..001994123ca5 100755 --- a/components/ILIAS/App/tests/RootFolderTest.php +++ b/components/ILIAS/App/tests/RootFolderTest.php @@ -44,7 +44,6 @@ final class RootFolderTest extends TestCase 'composer.json', 'composer_new.json', 'composer.lock', - 'dependency_resolution.php', 'ilias.ini.php', 'ilias_version.php', 'LICENSE', diff --git a/components/ILIAS/AuthShibboleth/AuthShibboleth.php b/components/ILIAS/AuthShibboleth/AuthShibboleth.php index 57190e61e70a..7556f42c7976 100644 --- a/components/ILIAS/AuthShibboleth/AuthShibboleth.php +++ b/components/ILIAS/AuthShibboleth/AuthShibboleth.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "shib_login.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "shib_logout.php"); } } diff --git a/public/shib_login.php b/components/ILIAS/AuthShibboleth/resources/shib_login.php old mode 100755 new mode 100644 similarity index 99% rename from public/shib_login.php rename to components/ILIAS/AuthShibboleth/resources/shib_login.php index 54685fe4bfc2..0611d1e039ed --- a/public/shib_login.php +++ b/components/ILIAS/AuthShibboleth/resources/shib_login.php @@ -37,4 +37,4 @@ // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $DIC->ctrl()->setCmd('doShibbolethAuthentication'); $DIC->ctrl()->callBaseClass(ilStartUpGUI::class); -} +} \ No newline at end of file diff --git a/public/shib_logout.php b/components/ILIAS/AuthShibboleth/resources/shib_logout.php old mode 100755 new mode 100644 similarity index 99% rename from public/shib_logout.php rename to components/ILIAS/AuthShibboleth/resources/shib_logout.php index e8d32abea558..ca4e08403df2 --- a/public/shib_logout.php +++ b/components/ILIAS/AuthShibboleth/resources/shib_logout.php @@ -167,4 +167,4 @@ function unserializesession($serialized_string) } return ($variables); -} +} \ No newline at end of file diff --git a/components/ILIAS/Authentication/Authentication.php b/components/ILIAS/Authentication/Authentication.php index 1a7f58cf8f18..8fd17277e5dd 100644 --- a/components/ILIAS/Authentication/Authentication.php +++ b/components/ILIAS/Authentication/Authentication.php @@ -36,5 +36,10 @@ public function init( new \ilAuthenticationSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "sessioncheck.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "session_reminder.js"); } } diff --git a/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php b/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php index e76e330b8c63..4983223949d0 100755 --- a/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php +++ b/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php @@ -42,7 +42,7 @@ public function populatePage(): void iljQueryUtil::initjQuery($this->page); - $this->page->addJavaScript('./components/ILIAS/Authentication/js/session_reminder.js'); + $this->page->addJavaScript('assets/js/session_reminder.js'); $url = './sessioncheck.php?client_id=' . CLIENT_ID . '&lang=' . $this->lng->getLangKey(); $devMode = defined('DEVMODE') && DEVMODE ? 1 : 0; diff --git a/components/ILIAS/Authentication/js/session_reminder.js b/components/ILIAS/Authentication/resources/session_reminder.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Authentication/js/session_reminder.js rename to components/ILIAS/Authentication/resources/session_reminder.js diff --git a/public/sessioncheck.php b/components/ILIAS/Authentication/resources/sessioncheck.php old mode 100755 new mode 100644 similarity index 73% rename from public/sessioncheck.php rename to components/ILIAS/Authentication/resources/sessioncheck.php index 43c8208331cd..d49d7a95ce47 --- a/public/sessioncheck.php +++ b/components/ILIAS/Authentication/resources/sessioncheck.php @@ -31,16 +31,16 @@ /** @var ILIAS\DI\Container $DIC */ $DIC->http()->saveResponse( ( - new ilSessionReminderCheck( - $DIC->http(), - $DIC->refinery(), - $DIC->language(), - $DIC->database(), - $DIC['ilClientIniFile'], - $DIC->logger()->auth(), - (new DataFactory())->clock()->utc() - ) + new ilSessionReminderCheck( + $DIC->http(), + $DIC->refinery(), + $DIC->language(), + $DIC->database(), + $DIC['ilClientIniFile'], + $DIC->logger()->auth(), + (new DataFactory())->clock()->utc() + ) )->handle() ); $DIC->http()->sendResponse(); -$DIC->http()->close(); +$DIC->http()->close(); \ No newline at end of file diff --git a/components/ILIAS/Awareness/Awareness.php b/components/ILIAS/Awareness/Awareness.php index b0d3798aa996..e5bc96737335 100644 --- a/components/ILIAS/Awareness/Awareness.php +++ b/components/ILIAS/Awareness/Awareness.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Awareness.js"); } } diff --git a/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php b/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php index 17e0bc16df82..e5076206c3e0 100755 --- a/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php +++ b/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php @@ -93,7 +93,7 @@ public function initJS(): void { $ilUser = $this->user; // init js - $this->main_tpl->addJavaScript("./components/ILIAS/Awareness/js/Awareness.js"); + $this->main_tpl->addJavaScript("./assets/js/Awareness.js"); $this->ctrl->setParameter($this, "ref_id", $this->ref_id); $this->main_tpl->addOnLoadCode("il.Awareness.setBaseUrl('" . $this->ctrl->getLinkTarget( $this, diff --git a/public/components/ILIAS/Awareness/js/Awareness.js b/components/ILIAS/Awareness/resources/Awareness.js similarity index 100% rename from public/components/ILIAS/Awareness/js/Awareness.js rename to components/ILIAS/Awareness/resources/Awareness.js diff --git a/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php b/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php index 9846f3784d6d..30f7ba592d82 100644 --- a/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php +++ b/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "background_task_refresh.js"); } } diff --git a/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php b/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php index 8ca9ba52011d..7afddc8c8414 100755 --- a/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php +++ b/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php @@ -39,7 +39,7 @@ public function getNotifications(): array return []; } - $this->dic->ui()->mainTemplate()->addJavaScript("./components/ILIAS/BackgroundTasks_/js/background_task_refresh.js"); + $this->dic->ui()->mainTemplate()->addJavaScript("assets/js/background_task_refresh.js"); $this->dic->language()->loadLanguageModule('background_tasks'); $id = fn (string $id): IdentificationInterface => $this->if->identifier($id); diff --git a/components/ILIAS/BackgroundTasks_/js/background_task_refresh.js b/components/ILIAS/BackgroundTasks_/resources/background_task_refresh.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/BackgroundTasks_/js/background_task_refresh.js rename to components/ILIAS/BackgroundTasks_/resources/background_task_refresh.js diff --git a/components/ILIAS/Block/Block.php b/components/ILIAS/Block/Block.php index 62673485af23..19ea49e12a65 100644 --- a/components/ILIAS/Block/Block.php +++ b/components/ILIAS/Block/Block.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilblockcallback.js"); } } diff --git a/components/ILIAS/Block/classes/class.ilBlockGUI.php b/components/ILIAS/Block/classes/class.ilBlockGUI.php index 6d397bb37817..d4e3f470024f 100755 --- a/components/ILIAS/Block/classes/class.ilBlockGUI.php +++ b/components/ILIAS/Block/classes/class.ilBlockGUI.php @@ -122,7 +122,7 @@ public function __construct() $this->ui = $DIC->ui(); ilYuiUtil::initConnection(); - $this->main_tpl->addJavaScript("./components/ILIAS/Block/js/ilblockcallback.js"); + $this->main_tpl->addJavaScript("./assets/js/ilblockcallback.js"); $this->setLimit((int) $this->user->getPref("hits_per_page")); diff --git a/public/components/ILIAS/Block/js/ilblockcallback.js b/components/ILIAS/Block/resources/ilblockcallback.js similarity index 100% rename from public/components/ILIAS/Block/js/ilblockcallback.js rename to components/ILIAS/Block/resources/ilblockcallback.js diff --git a/components/ILIAS/BookingManager/BookingManager.php b/components/ILIAS/BookingManager/BookingManager.php index 84a338c2947f..75a3252a24f1 100644 --- a/components/ILIAS/BookingManager/BookingManager.php +++ b/components/ILIAS/BookingManager/BookingManager.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\BookingManager\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ScheduleInput.js"); } } diff --git a/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php b/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php index 194b5b2b2f6a..c9d72e714f2c 100755 --- a/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php +++ b/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php @@ -241,7 +241,7 @@ public function insert(ilTemplate $a_tpl): void { $tpl = $this->tpl; - $tpl->addJavascript("components/ILIAS/BookingManager/js/ScheduleInput.js"); + $tpl->addJavascript("assets/js/ScheduleInput.js"); $html = $this->render(); diff --git a/components/ILIAS/BookingManager/js/ScheduleInput.js b/components/ILIAS/BookingManager/resources/ScheduleInput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/BookingManager/js/ScheduleInput.js rename to components/ILIAS/BookingManager/resources/ScheduleInput.js diff --git a/components/ILIAS/COPage/COPage.php b/components/ILIAS/COPage/COPage.php index a65fd3ea83f5..a3d974ce4533 100644 --- a/components/ILIAS/COPage/COPage.php +++ b/components/ILIAS/COPage/COPage.php @@ -36,5 +36,49 @@ public function init( new \ILIAS\COPage\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + // This is included via anonymous classes as a testament to the fact, that + // the js and css of the COPage should be restructured according to the target + // structure in the component directory and the public directory. + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/PC/InteractiveImage/js"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/PC/InteractiveImage/js"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/Editor/js"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/Editor/js"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/js"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/js"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/css"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/css"; + } + }; } } diff --git a/components/ILIAS/COPage/Editor/UI/Init.php b/components/ILIAS/COPage/Editor/UI/Init.php index 889af1daded0..b4d35d5b655d 100755 --- a/components/ILIAS/COPage/Editor/UI/Init.php +++ b/components/ILIAS/COPage/Editor/UI/Init.php @@ -56,13 +56,13 @@ public function initUI( } if (DEVMODE == 1) { - $main_tpl->addJavaScript("./node_modules/tinymce/tinymce.js"); + $main_tpl->addJavaScript("node_modules/tinymce/tinymce.js"); } else { - $main_tpl->addJavaScript("./node_modules/tinymce/tinymce.min.js"); + $main_tpl->addJavaScript("node_modules/tinymce/tinymce.min.js"); } \ilYuiUtil::initConnection(); - $main_tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $main_tpl->addJavaScript("assets/js/ilExplorer.js"); // ensure that form.js is loaded which is needed for file input (js that shows file names) $dummy = new \ilPropertyFormGUI(); diff --git a/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php b/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php index 6120daeb26ab..32ca25828dc9 100755 --- a/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php +++ b/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php @@ -34,8 +34,8 @@ public function __construct( iljQueryUtil::initjQueryUI(); parent::__construct($a_content_obj, $a_page, $request); - $this->main_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); - $this->main_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js"); + $this->main_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); + $this->main_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js"); ilAccordionGUI::addJavaScript(); ilAccordionGUI::addCss(); diff --git a/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php b/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php index b8d749e2aa8f..97a8580de561 100755 --- a/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php +++ b/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php @@ -1033,7 +1033,7 @@ public function editData(): void $this->displayValidationError(); $this->initEditor(); - $this->tpl->addJavaScript("./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js"); + $this->tpl->addJavaScript("assets/js/AdvancedSelectionList.js"); $this->tpl->addCss(ilObjStyleSheet::getBaseContentStylePath()); $this->tpl->setContent($this->getEditDataTable(true)); } diff --git a/components/ILIAS/COPage/Resources/ResourcesCollector.php b/components/ILIAS/COPage/Resources/ResourcesCollector.php index 2e5a35001401..6f5a008de0f1 100755 --- a/components/ILIAS/COPage/Resources/ResourcesCollector.php +++ b/components/ILIAS/COPage/Resources/ResourcesCollector.php @@ -66,10 +66,10 @@ protected function init(\ilPageObject $pg): void if ($this->output_mode == \ilPageObjectGUI::OFFLINE) { $this->js_files[] = \iljQueryUtil::getLocaljQueryPath(); $this->js_files[] = \iljQueryUtil::getLocaljQueryUIPath(); - $this->js_files[] = './components/ILIAS/JavaScript/js/Basic.js'; + $this->js_files[] = 'assets/js/Basic.js'; } - $this->js_files[] = "./components/ILIAS/COPage/js/ilCOPagePres.js"; + $this->js_files[] = "components/ILIAS/COPage/js/ilCOPagePres.js"; // for all page components... $defs = $this->pc_definition->getPCDefinitions(); diff --git a/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php b/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php index bd5f378d2afd..a944efb9f9de 100755 --- a/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php +++ b/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php @@ -132,7 +132,7 @@ public function exportStyles(): void $this->exp_dir . "/" . ilObjStyleSheet::getBasicImageDir() ); ilFileUtils::makeDirParents($this->exp_dir . "/components/ILIAS/COPage/css"); - copy("components/ILIAS/COPage/css/content.css", $this->exp_dir . "/components/ILIAS/COPage/css/content.css"); + copy("components/ILIAS/COPage/resources/content.css", $this->exp_dir . "/components/ILIAS/COPage/css/content.css"); } else { $style = new ilObjStyleSheet($this->getContentStyleId()); $style->copyImagesToDir($this->exp_dir . "/" . $style->getImagesDirectory()); diff --git a/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php b/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php index b617e64a1c2f..b8dc5439f867 100755 --- a/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php +++ b/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php @@ -1077,7 +1077,7 @@ public function showPage(): string // $this->initSelfAssessmentRendering(); ilObjMediaObjectGUI::includePresentationJS($main_tpl); - $main_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); + $main_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); // needed for overlays in iim ilOverlayGUI::initJavascript(); @@ -2428,7 +2428,7 @@ protected function initEditing(): void $this->lng->toJS("copg_par_format_selection"); // workaroun: we need this js for the new editor version, e.g. for new section form to work // @todo: solve this in a smarter way - $this->tpl->addJavaScript("./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js"); + $this->tpl->addJavaScript("assets/js/AdvancedSelectionList.js"); \ilCalendarUtil::initDateTimePicker(); ilModalGUI::initJS(); } @@ -2599,7 +2599,7 @@ public function history(): string $this->setBackToEditTabs(); - $this->tpl->addJavaScript("./components/ILIAS/COPage/js/page_history.js"); + $this->tpl->addJavaScript("assets/js/page_history.js"); $table_gui = new ilPageHistoryTableGUI($this, "history"); $table_gui->setId("hist_table"); diff --git a/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js b/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js old mode 100755 new mode 100644 index 6dc08106ef6a..220d5bc670d6 --- a/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js +++ b/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js @@ -1,4 +1,3 @@ - /** * This file is part of ILIAS, a powerful learning management system * published by ILIAS open source e-Learning e.V. @@ -13,43 +12,38 @@ * https://www.ilias.de * https://github.com/ILIAS-eLearning * - *********************************************************************/ + ******************************************************************** */ -ilCOPagePCInteractiveImage = -{ - /** +ilCOPagePCInteractiveImage = { + /** * Basic init function */ - init: function () - { - $("a.mark_cmd").click(this.markerCommand); - $("a.ov_cmd").click(this.overlayCommand); - $("a.pop_cmd").click(this.popupCommand); - }, - - /** + init() { + $('a.mark_cmd').click(this.markerCommand); + $('a.ov_cmd').click(this.overlayCommand); + $('a.pop_cmd').click(this.popupCommand); + }, + + /** * Marker command */ - markerCommand: function (e) - { - il.COPagePres.startDraggingMarker(e.target.id.substr(5)); - }, - - /** + markerCommand(e) { + il.COPagePres.startDraggingMarker(e.target.id.substr(5)); + }, + + /** * Overlay command */ - overlayCommand: function (e) - { - il.COPagePres.startDraggingOverlay(e.target.id.substr(3)); - }, - - /** + overlayCommand(e) { + il.COPagePres.startDraggingOverlay(e.target.id.substr(3)); + }, + + /** * Popup command */ - popupCommand: function (e) - { - il.COPagePres.startDraggingPopup(e.target.id.substr(4)); - } + popupCommand(e) { + il.COPagePres.startDraggingPopup(e.target.id.substr(4)); + }, -} -il.Util.addOnLoad(function() {ilCOPagePCInteractiveImage.init();}); +}; +il.Util.addOnLoad(() => { ilCOPagePCInteractiveImage.init(); }); diff --git a/components/ILIAS/COPage/js/ilCOPagePres.js b/components/ILIAS/COPage/js/ilCOPagePres.js old mode 100755 new mode 100644 index a7712466c1a6..3a0ad22be840 --- a/components/ILIAS/COPage/js/ilCOPagePres.js +++ b/components/ILIAS/COPage/js/ilCOPagePres.js @@ -1,4 +1,3 @@ - /** * This file is part of ILIAS, a powerful learning management system * published by ILIAS open source e-Learning e.V. @@ -13,451 +12,453 @@ * https://www.ilias.de * https://github.com/ILIAS-eLearning * - *********************************************************************/ + ******************************************************************** */ -il.COPagePres = -{ - /** +il.COPagePres = { + /** * Basic init function */ - init: function () { - this.initToc(); - this.initInteractiveImages(); - this.updateQuestionOverviews(); - this.initMapAreas(); - this.initAdvancedContent(); - this.initAudioVideo(); - this.initAccordions(); - }, - - // - // Toc (as used in Wikis) - // - - /** + init() { + this.initToc(); + this.initInteractiveImages(); + this.updateQuestionOverviews(); + this.initMapAreas(); + this.initAdvancedContent(); + this.initAudioVideo(); + this.initAccordions(); + }, + + // + // Toc (as used in Wikis) + // + + /** * Init the table of content */ - initToc: function () { - // init toc - var cookiePos = document.cookie.indexOf("pg_hidetoc="); - if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) - { - this.toggleToc(); - } - }, - - initAccordions: function () { - if (typeof ilAccordionsInits !== "undefined") { - for (var i = 0; i < ilAccordionsInits.length; i++) { - il.Accordion.add(ilAccordionsInits[i]); - } - } - }, - - /** + initToc() { + // init toc + const cookiePos = document.cookie.indexOf('pg_hidetoc='); + if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) { + this.toggleToc(); + } + }, + + initAccordions() { + if (typeof ilAccordionsInits !== 'undefined') { + for (let i = 0; i < ilAccordionsInits.length; i++) { + il.Accordion.add(ilAccordionsInits[i]); + } + } + }, + + /** * Toggle the table of content */ - toggleToc: function() { - var toc_on, toc_off, toc = document.getElementById('ilPageTocContent'); - - if (!toc) { - return; - } - - toc_on = document.getElementById('ilPageTocOn'); - toc_off = document.getElementById('ilPageTocOff'); - - if (toc && toc.style.display == 'none') { - toc.style.display = 'block'; - toc_on.style.display = 'none'; - toc_off.style.display = ''; - document.cookie = "pg_hidetoc=0"; - } else { - toc_on.style.display = ''; - toc_off.style.display = 'none'; - toc.style.display = 'none'; - document.cookie = "pg_hidetoc=1"; - } - }, - - // - // Interactive Images - // - - iim_trigger: {}, - iim_area: {}, - iim_popup: {}, - iim_marker: {}, - dragging: false, - - /** + toggleToc() { + let toc_on; let toc_off; const + toc = document.getElementById('ilPageTocContent'); + + if (!toc) { + return; + } + + toc_on = document.getElementById('ilPageTocOn'); + toc_off = document.getElementById('ilPageTocOff'); + + if (toc && toc.style.display == 'none') { + toc.style.display = 'block'; + toc_on.style.display = 'none'; + toc_off.style.display = ''; + document.cookie = 'pg_hidetoc=0'; + } else { + toc_on.style.display = ''; + toc_off.style.display = 'none'; + toc.style.display = 'none'; + document.cookie = 'pg_hidetoc=1'; + } + }, + + // + // Interactive Images + // + + iim_trigger: {}, + iim_area: {}, + iim_popup: {}, + iim_marker: {}, + dragging: false, + + /** * Init interactive images */ - initInteractiveImages: function () { - - // preload overlay images (necessary?) - // add onmouseover event to all map areas - //$("map.iim > area").mouseover(this.overBaseArea); - //$("map.iim > area").mouseout(this.outBaseArea); - //$("map.iim > area").click(this.clickBaseArea); - - //$("a.ilc_marker_Marker").mouseover(this.overMarker); - //$("a.ilc_marker_Marker").mouseout(this.outMarker); - //$("a.ilc_marker_Marker").click(this.clickMarker); - - // add areas - document.querySelectorAll("[data-copg-iim-data-type='area']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMArea({ - area_id: d.copgIimAreaId, - iim_id: d.copgIimId, - tr_nr: d.copgIimTrNr, - title: d.copgIimTitle - }); - }); - - // add trigger for overlays/popups - document.querySelectorAll("[data-copg-iim-data-type='trigger']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMTrigger({ - iim_id: d.copgIimId, - type: d.copgIimType, - title: d.copgIimTitle, - ovx: d.copgIimOvx, - ovy: d.copgIimOvy, - markx: d.copgIimMarkx, - marky: d.copgIimMarky, - popup_nr: d.copgIimPopupNr, - nr: d.copgIimNr, - popx: d.copgIimPopx, - popy: d.copgIimPopy, - popwidth: d.copgIimPopwidth, - popheight: d.copgIimPopheight, - tr_id: d.copgIimTrId - }); - }); - - // add markers - document.querySelectorAll("[data-copg-iim-data-type='marker']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMMarker({ - iim_id: d.copgIimId, - m_id: d.copgIimMId, - markx: d.copgIimMarkx, - marky: d.copgIimMarky, - tr_nr: d.copgIimTrNr, - tr_id: d.copgIimTrId, - edit_mode: d.copgIimEditMode - }); - }); - - // add popups - document.querySelectorAll("[data-copg-iim-data-type='popup']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMPopup({ - iim_id: d.copgIimId, - pop_id: d.copgIimPopId, - div_id: d.copgIimDivId, - nr: d.copgIimNr, - title: d.copgIimTitle - }); - }); - - $(document).on("il.accordion.start-opening", function (ev, el) { - il.COPagePres.fixMarkerPositions(); - }); - }, - - /** + initInteractiveImages() { + // preload overlay images (necessary?) + // add onmouseover event to all map areas + // $("map.iim > area").mouseover(this.overBaseArea); + // $("map.iim > area").mouseout(this.outBaseArea); + // $("map.iim > area").click(this.clickBaseArea); + + // $("a.ilc_marker_Marker").mouseover(this.overMarker); + // $("a.ilc_marker_Marker").mouseout(this.outMarker); + // $("a.ilc_marker_Marker").click(this.clickMarker); + + // add areas + document.querySelectorAll("[data-copg-iim-data-type='area']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMArea({ + area_id: d.copgIimAreaId, + iim_id: d.copgIimId, + tr_nr: d.copgIimTrNr, + title: d.copgIimTitle, + }); + }); + + // add trigger for overlays/popups + document.querySelectorAll("[data-copg-iim-data-type='trigger']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMTrigger({ + iim_id: d.copgIimId, + type: d.copgIimType, + title: d.copgIimTitle, + ovx: d.copgIimOvx, + ovy: d.copgIimOvy, + markx: d.copgIimMarkx, + marky: d.copgIimMarky, + popup_nr: d.copgIimPopupNr, + nr: d.copgIimNr, + popx: d.copgIimPopx, + popy: d.copgIimPopy, + popwidth: d.copgIimPopwidth, + popheight: d.copgIimPopheight, + tr_id: d.copgIimTrId, + }); + }); + + // add markers + document.querySelectorAll("[data-copg-iim-data-type='marker']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMMarker({ + iim_id: d.copgIimId, + m_id: d.copgIimMId, + markx: d.copgIimMarkx, + marky: d.copgIimMarky, + tr_nr: d.copgIimTrNr, + tr_id: d.copgIimTrId, + edit_mode: d.copgIimEditMode, + }); + }); + + // add popups + document.querySelectorAll("[data-copg-iim-data-type='popup']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMPopup({ + iim_id: d.copgIimId, + pop_id: d.copgIimPopId, + div_id: d.copgIimDivId, + nr: d.copgIimNr, + title: d.copgIimTitle, + }); + }); + + $(document).on('il.accordion.start-opening', (ev, el) => { + il.COPagePres.fixMarkerPositions(); + }); + }, + + /** * Mouse over marker -> show the overlay image */ - overMarker: function (e) { - var marker_tr_nr, iim_id; - - if (this.dragging) { - return; - } - - marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; - iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; - il.COPagePres.handleOverEvent(iim_id, marker_tr_nr, true); - }, - - /** - * Mouse leaves marker -> hide the overlay image + overMarker(e) { + let marker_tr_nr; let + iim_id; + + if (this.dragging) { + return; + } + + marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; + iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; + il.COPagePres.handleOverEvent(iim_id, marker_tr_nr, true); + }, + + /** + * Mouse leaves marker -> hide the overlay image */ - outMarker: function (e) { - var marker_tr_nr, iim_id; - if (this.dragging) { - return; - } - - marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; - iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; - il.COPagePres.handleOutEvent(iim_id, marker_tr_nr); - }, - - /** + outMarker(e) { + let marker_tr_nr; let + iim_id; + if (this.dragging) { + return; + } + + marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; + iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; + il.COPagePres.handleOutEvent(iim_id, marker_tr_nr); + }, + + /** * Mouse over base image map area -> show the overlay image * and (on first time) init the image map of the overlay image */ - overBaseArea: function (e) { - var area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_area[e.target.id].iim_id; - - il.COPagePres.handleOverEvent(iim_id, area_tr_nr, false); - }, - - /** + overBaseArea(e) { + const area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_area[e.target.id]; + + il.COPagePres.handleOverEvent(iim_id, area_tr_nr, false); + }, + + /** * Mouse over base image map area or marker -> show the overlay image * and (on first time) init the image map of the overlay image */ - handleOverEvent: function (iim_id, area_tr_nr, is_marker) - { - var k, j, tr, coords, ovx, ovy, base, ov, base_map_name, c, k2, i2, tr2; - - if (this.dragging) { - return; - } - - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - - if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { - base = $("img#base_img_" + tr.iim_id); - ov = $("img#iim_ov_" + tr.tr_id); - // no overlay image? -> skip - if (ov.length == 0) { - continue; - } - - // no usamap (e.g. edit mode) -> skip) - if (typeof(base.attr('usemap')) === "undefined") { - continue; - } - - base_map_name = base.attr('usemap').substr(1); - - // display the overlay at the correct position - ov.css('position', 'absolute'); - ovx = parseInt(tr.ovx, 10); - ovy = parseInt(tr.ovy, 10); - ov.css('display', ''); - - // this fixes the position in case of the toc2win - // view, if the fixed div has been scrolled - $(ov).position({ - my: "left top", - at: "left+" + ovx + " top+" + ovy, - of: "img#base_img_" + tr.iim_id, - collision: "none" - }); - - // on first time we need to initialize the - // image map of the overlay image - if (tr.map_initialized == null && !is_marker) - { - tr.map_initialized = true; - $("map[name='" + base_map_name + "'] > area").each( - function (i,el) { - // if title is the same, add area to overlay map - if (il.COPagePres.iim_area[el.id].tr_nr == area_tr_nr) { - coords = $(el).attr("coords"); - // fix coords - switch($(el).attr("shape").toLowerCase()) { - - case "rect": - c = coords.split(","); - coords = String((parseInt(c[0], 10) - ovx) + "," + - (parseInt(c[1], 10) - ovy) + "," + - (parseInt(c[2], 10) - ovx) + "," + - (parseInt(c[3], 10) - ovy)); - break; - - case "poly": - c = coords.split(","); - coords = ""; - var sep = ""; - for (j in c) { - if (j % 2 == 0) { - coords = coords + sep + parseInt(c[j] - ovx, 10); - } else { - coords = coords + sep + parseInt(c[j] - ovy, 10); - } - sep = ","; - } - break; - - case "circle": - c = coords.split(","); - coords = String((parseInt(c[0], 10) - ovx) + "," + - (parseInt(c[1], 10) - ovy) + "," + - (parseInt(c[2], 10))); - break; - } - - // set shape and coords - $("area#iim_ov_area_" + tr.tr_id).attr("coords", coords); - $("area#iim_ov_area_" + tr.tr_id).attr("shape", $(el).attr("shape")); - - // add mouse event listeners - k2 = k; - i2 = "iim_ov_" + tr.tr_id; - tr2 = tr.tr_id; - $("area#iim_ov_area_" + tr.tr_id).mouseover( - function() {il.COPagePres.overOvArea(k2, true, i2);}); - $("area#iim_ov_area_" + tr.tr_id).mouseout( - function() {il.COPagePres.overOvArea(k2, false, i2);}); - $("area#iim_ov_area_" + tr.tr_id).click( - function(e) {il.COPagePres.clickOvArea(e, tr2);}); - } - }); - } - } - } - }, - - /** + handleOverEvent(iim_id, area_tr_nr, is_marker) { + let k; let j; let tr; let coords; let ovx; let ovy; let base; let ov; let base_map_name; let c; let k2; let i2; let + tr2; + + if (this.dragging) { + return; + } + + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + + if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { + base = $(`img#base_img_${tr.iim_id}`); + ov = $(`img#iim_ov_${tr.tr_id}`); + // no overlay image? -> skip + if (ov.length == 0) { + continue; + } + + // no usamap (e.g. edit mode) -> skip) + if (typeof (base.attr('usemap')) === 'undefined') { + continue; + } + + base_map_name = base.attr('usemap').substr(1); + + // display the overlay at the correct position + ov.css('position', 'absolute'); + ovx = parseInt(tr.ovx, 10); + ovy = parseInt(tr.ovy, 10); + ov.css('display', ''); + + // this fixes the position in case of the toc2win + // view, if the fixed div has been scrolled + $(ov).position({ + my: 'left top', + at: `left+${ovx} top+${ovy}`, + of: `img#base_img_${tr.iim_id}`, + collision: 'none', + }); + + // on first time we need to initialize the + // image map of the overlay image + if (tr.map_initialized == null && !is_marker) { + tr.map_initialized = true; + $(`map[name='${base_map_name}'] > area`).each( + (i, el) => { + // if title is the same, add area to overlay map + if (il.COPagePres.iim_area[el.id].tr_nr == area_tr_nr) { + coords = $(el).attr('coords'); + // fix coords + switch ($(el).attr('shape').toLowerCase()) { + case 'rect': + c = coords.split(','); + coords = String(`${parseInt(c[0], 10) - ovx},${ + parseInt(c[1], 10) - ovy},${ + parseInt(c[2], 10) - ovx},${ + parseInt(c[3], 10) - ovy}`); + break; + + case 'poly': + c = coords.split(','); + coords = ''; + var sep = ''; + for (j in c) { + if (j % 2 == 0) { + coords = coords + sep + parseInt(c[j] - ovx, 10); + } else { + coords = coords + sep + parseInt(c[j] - ovy, 10); + } + sep = ','; + } + break; + + case 'circle': + c = coords.split(','); + coords = String(`${parseInt(c[0], 10) - ovx},${ + parseInt(c[1], 10) - ovy},${ + parseInt(c[2], 10)}`); + break; + } + + // set shape and coords + $(`area#iim_ov_area_${tr.tr_id}`).attr('coords', coords); + $(`area#iim_ov_area_${tr.tr_id}`).attr('shape', $(el).attr('shape')); + + // add mouse event listeners + k2 = k; + i2 = `iim_ov_${tr.tr_id}`; + tr2 = tr.tr_id; + $(`area#iim_ov_area_${tr.tr_id}`).mouseover( + () => { il.COPagePres.overOvArea(k2, true, i2); }, + ); + $(`area#iim_ov_area_${tr.tr_id}`).mouseout( + () => { il.COPagePres.overOvArea(k2, false, i2); }, + ); + $(`area#iim_ov_area_${tr.tr_id}`).click( + (e) => { il.COPagePres.clickOvArea(e, tr2); }, + ); + } + }, + ); + } + } + } + }, + + /** * Leave a base image map area: hide corresponding images */ - outBaseArea: function (e) { - var area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_area[e.target.id].iim_id; - il.COPagePres.handleOutEvent(iim_id, area_tr_nr); - }, - - /** + outBaseArea(e) { + const area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_area[e.target.id]; + il.COPagePres.handleOutEvent(iim_id, area_tr_nr); + }, + + /** * Leave a base image map area: hide corresponding images */ - handleOutEvent: function (iim_id, area_tr_nr) - { - var k, tr; - - if (this.dragging) { - return; - } - - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - if (tr.nr == area_tr_nr && tr.iim_id == iim_id && - (il.COPagePres.iim_trigger[k].over_ov_area == null || - !il.COPagePres.iim_trigger[k].over_ov_area + handleOutEvent(iim_id, area_tr_nr) { + let k; let + tr; + + if (this.dragging) { + return; + } + + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + if (tr.nr == area_tr_nr && tr.iim_id == iim_id + && (il.COPagePres.iim_trigger[k].over_ov_area == null + || !il.COPagePres.iim_trigger[k].over_ov_area )) { - $("img#iim_ov_" + tr.tr_id).css('display', 'none'); - } - } - }, + $(`img#iim_ov_${tr.tr_id}`).css('display', 'none'); + } + } + }, - - /** + /** * Triggered by mouseover/out on imagemap of overlay image */ - overOvArea: function (k, value, ov_id) { - if (this.dragging) { - return; - } - - il.COPagePres.iim_trigger[k].over_ov_area = value; - if (value) { - $("img#" + ov_id).css('display', ''); - } else { - $("img#" + ov_id).css('display', 'none'); - } - }, - - /** + overOvArea(k, value, ov_id) { + if (this.dragging) { + return; + } + + il.COPagePres.iim_trigger[k].over_ov_area = value; + if (value) { + $(`img#${ov_id}`).css('display', ''); + } else { + $(`img#${ov_id}`).css('display', 'none'); + } + }, + + /** * A marker is clicked */ - clickMarker: function (e) - { - var k, tr, - marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; - - if (il.COPagePres.iim_marker[e.target.id].edit_mode == "1") { - return; - } - - if (this.dragging) { - return; - } - - // iterate through the triggers and search the correct one - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - if (tr.nr == marker_tr_nr && tr.iim_id == iim_id) { - il.COPagePres.handleAreaClick(e, tr.tr_id); - } - } - }, - - /** + clickMarker(e) { + let k; let tr; + const marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_marker[e.target.id]; + + if (il.COPagePres.iim_marker[e.target.id].edit_mode == '1') { + return; + } + + if (this.dragging) { + return; + } + + // iterate through the triggers and search the correct one + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + if (tr.nr == marker_tr_nr && tr.iim_id == iim_id) { + il.COPagePres.handleAreaClick(e, tr.tr_id); + } + } + }, + + /** * A base image map area is clicked */ - clickBaseArea: function (e) { - var k, tr, - area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_area[e.target.id].iim_id; - - if (this.dragging) { - return; - } - - // iterate through the triggers and search the correct one - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { - il.COPagePres.handleAreaClick(e, tr.tr_id); - } - } - }, - - /** + clickBaseArea(e) { + let k; let tr; + const area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_area[e.target.id]; + + if (this.dragging) { + return; + } + + // iterate through the triggers and search the correct one + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { + il.COPagePres.handleAreaClick(e, tr.tr_id); + } + } + }, + + /** * Handle area click (triggered by base or overlay image map area) */ - handleAreaClick: function (e, tr_id) { - const areaEl = e.target; - console.log(areaEl); - console.log(tr_id); - console.log(il.COPagePres.iim_trigger); - - var tr = il.COPagePres.iim_trigger[tr_id]; - var el = document.getElementById("iim_popup_" + tr.iim_id + "_" + tr.popup_nr), - base, pos, x, y; - - if (el == null || this.dragging) { - e.preventDefault(); - return; - } - - const nr = tr.popup_nr; - const popupEl = document.querySelector("[data-copg-cont-type='iim-popup'][data-copg-popup-nr='" + nr + "']"); - - const button = e.target; - const tooltip = popupEl; - - if (popupEl) { - if (popupEl.style.display == "none") { - popupEl.style.display = ''; - } else { - popupEl.style.display = 'none'; - } - e.preventDefault(); - return; - - - const signalId = popupEl.dataset.signalId; - console.log("TRIGGER"); - $(document).trigger(signalId, - { - 'id' : signalId, 'event' : 'click', - 'triggerer' : $(areaEl), - 'options' : JSON.parse('[]') - } - ); - if (tr.popup_initialized == null) { - tr.popup_initialized = true; - /* + handleAreaClick(e, tr_id) { + const areaEl = e.target; + console.log(areaEl); + console.log(tr_id); + console.log(il.COPagePres.iim_trigger); + + const tr = il.COPagePres.iim_trigger[tr_id]; + const el = document.getElementById(`iim_popup_${tr.iim_id}_${tr.popup_nr}`); + let base; let pos; let x; let + y; + + if (el == null || this.dragging) { + e.preventDefault(); + return; + } + + const nr = tr.popup_nr; + const popupEl = document.querySelector(`[data-copg-cont-type='iim-popup'][data-copg-popup-nr='${nr}']`); + + const button = e.target; + const tooltip = popupEl; + + if (popupEl) { + if (popupEl.style.display == 'none') { + popupEl.style.display = ''; + } else { + popupEl.style.display = 'none'; + } + e.preventDefault(); + return; + + const { signalId } = popupEl.dataset; + console.log('TRIGGER'); + $(document).trigger( + signalId, + { + id: signalId, + event: 'click', + triggerer: $(areaEl), + options: JSON.parse('[]'), + }, + ); + if (tr.popup_initialized == null) { + tr.popup_initialized = true; + /* console.log("TRIGGER"); $(document).trigger(signalId, { @@ -465,15 +466,15 @@ il.COPagePres = 'triggerer' : $(areaEl), 'options' : JSON.parse('[]') } - );*/ - } - } + ); */ + } + } - // on first time we need to initialize content overlay + // on first time we need to initialize content overlay - if (tr.popup_initialized == null) { - tr.popup_initialized = true; - /* + if (tr.popup_initialized == null) { + tr.popup_initialized = true; + /* if (popupEl) { $(document).trigger(signalId, { @@ -482,15 +483,14 @@ il.COPagePres = 'options': JSON.parse('[]') } ); - }*/ - /*il.Overlay.add("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, + } */ + /* il.Overlay.add("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, {"yuicfg":{"visible":false,"fixedcenter":false}, - "auto_hide":false});*/ - } - + "auto_hide":false}); */ + } - // show the overlay - /* + // show the overlay + /* base = $("img#base_img_" + il.COPagePres.iim_trigger[tr_id].iim_id); pos = base.offset(); x = pos.left + parseInt(il.COPagePres.iim_trigger[tr_id].popx, 10); @@ -499,461 +499,462 @@ il.COPagePres = il.Overlay.setHeight("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, il.COPagePres.iim_trigger[tr_id].popheight); il.Overlay.toggle(e, "iim_popup_" + tr.iim_id + "_" + tr.popup_nr, null, false, null, null, "click"); il.Overlay.setX("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, x); - il.Overlay.setY("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, y);*/ + il.Overlay.setY("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, y); */ + + e.preventDefault(); + }, - e.preventDefault(); - }, - - /** + /** * A overlay image map area is clicked */ - clickOvArea: function (e, tr_id){ - il.COPagePres.handleAreaClick(e, tr_id); - }, - - addIIMTrigger: function(tr) { - this.iim_trigger[tr.tr_id] = tr; - }, - - addIIMArea: function(a) { - this.iim_area[a.area_id] = a; - }, - - addIIMPopup: function(p) { - this.iim_popup[p.pop_id] = p; - }, - - addIIMMarker: function(m) { - var base, pos, mark, mx, my; - - this.iim_marker[m.m_id] = m; - const p = this.fixMarkerPosition; - p(m); - window.setTimeout(function() { - p(m); - }, 500); - - }, - - fixMarkerPosition: function(m) { - var base, pos, mark, mx, my; - base = $("img#base_img_" + m.iim_id); - pos = base.offset(); - mark = $("a#" + m.m_id); - // display the marker at the correct position - mark.css('position', 'absolute'); - mx = pos.left + parseInt(m.markx, 10); - my = pos.top + parseInt(m.marky, 10); - mark.css('display', ''); - il.Overlay.setX(m.m_id, mx); - il.Overlay.setY(m.m_id, my); - - }, - - fixMarkerPositions: function () { - var m, k, base, pos, mark, mx, my; - - for (k in il.COPagePres.iim_marker) { - m = il.COPagePres.iim_marker[k]; - this.fixMarkerPosition(m); - } - }, - - /** + clickOvArea(e, tr_id) { + il.COPagePres.handleAreaClick(e, tr_id); + }, + + addIIMTrigger(tr) { + this.iim_trigger[tr.tr_id] = tr; + }, + + addIIMArea(a) { + this.iim_area[a.area_id] = a; + }, + + addIIMPopup(p) { + this.iim_popup[p.pop_id] = p; + }, + + addIIMMarker(m) { + let base; let pos; let mark; let mx; let + my; + + this.iim_marker[m.m_id] = m; + const p = this.fixMarkerPosition; + p(m); + window.setTimeout(() => { + p(m); + }, 500); + }, + + fixMarkerPosition(m) { + let base; let pos; let mark; let mx; let + my; + base = $(`img#base_img_${m.iim_id}`); + pos = base.offset(); + mark = $(`a#${m.m_id}`); + // display the marker at the correct position + mark.css('position', 'absolute'); + mx = pos.left + parseInt(m.markx, 10); + my = pos.top + parseInt(m.marky, 10); + mark.css('display', ''); + il.Overlay.setX(m.m_id, mx); + il.Overlay.setY(m.m_id, my); + }, + + fixMarkerPositions() { + let m; let k; let base; let pos; let mark; let mx; let + my; + + for (k in il.COPagePres.iim_marker) { + m = il.COPagePres.iim_marker[k]; + this.fixMarkerPosition(m); + } + }, + + /** * Make marker draggable */ - startDraggingMarker: function(tr_nr) { - var k, mark; - - this.dragging = true; - for (k in il.COPagePres.iim_marker) { - if (il.COPagePres.iim_marker[k].tr_nr == tr_nr) { - mark = il.COPagePres.iim_marker[k]; - $("a#" + il.COPagePres.iim_marker[k].m_id).css("display", ""); - il.COPagePres.fixMarkerPositions(); - $("a#" + il.COPagePres.iim_marker[k].m_id).draggable({ - drag: function(event, ui) { - var base, bpos, marker, mpos, position; - - base = $("img#base_img_" + mark.iim_id); - bpos = base.position(); - marker = $("a#" + mark.m_id); - mpos = marker.position(); - //position = (Math.round(mpos.left) - Math.round(bpos.left)) + "," + - // (Math.round(mpos.top) - Math.round(bpos.top)); - position = (Math.round(marker.offset().left) - Math.round(base.offset().left)) + "," + - (Math.round(marker.offset().top) - Math.round(base.offset().top)); - - $("input#markpos_" + mark.tr_nr).attr("value", position); - } - }); - - il.COPagePres.initDragToolbar(); - } - else - { - $("a#" + il.COPagePres.iim_marker[k].m_id).css("display", "none"); - } - } - }, - - stopDraggingMarker: function() { - this.dragging = false; - }, - - /** + startDraggingMarker(tr_nr) { + let k; let + mark; + + this.dragging = true; + for (k in il.COPagePres.iim_marker) { + if (il.COPagePres.iim_marker[k].tr_nr == tr_nr) { + mark = il.COPagePres.iim_marker[k]; + $(`a#${il.COPagePres.iim_marker[k].m_id}`).css('display', ''); + il.COPagePres.fixMarkerPositions(); + $(`a#${il.COPagePres.iim_marker[k].m_id}`).draggable({ + drag(event, ui) { + let base; let bpos; let marker; let mpos; let + position; + + base = $(`img#base_img_${mark.iim_id}`); + bpos = base.position(); + marker = $(`a#${mark.m_id}`); + mpos = marker.position(); + // position = (Math.round(mpos.left) - Math.round(bpos.left)) + "," + + // (Math.round(mpos.top) - Math.round(bpos.top)); + position = `${Math.round(marker.offset().left) - Math.round(base.offset().left)},${ + Math.round(marker.offset().top) - Math.round(base.offset().top)}`; + + $(`input#markpos_${mark.tr_nr}`).attr('value', position); + }, + }); + + il.COPagePres.initDragToolbar(); + } else { + $(`a#${il.COPagePres.iim_marker[k].m_id}`).css('display', 'none'); + } + } + }, + + stopDraggingMarker() { + this.dragging = false; + }, + + /** * Make overlay draggable */ - startDraggingOverlay: function(tr_nr) { - var k, trigger, dtr, ov, base, bpos, ovx, ovy; - - this.dragging = true; - - for (k in il.COPagePres.iim_trigger) { - trigger = il.COPagePres.iim_trigger[k]; - - if (trigger.nr == tr_nr) { - dtr = trigger; - ov = $("img#iim_ov_" + dtr.tr_id); - - // remove map for dragging - ov.attr('usemap',''); - - il.COPagePres.initDragToolbar(); - - base = $("img#base_img_" + dtr.iim_id); - bpos = base.offset(); - ovx = bpos.left + parseInt(dtr.ovx, 10); - ovy = bpos.top + parseInt(dtr.ovy, 10); - ov.css('display', ''); - ov.css("position", "absolute"); - il.Overlay.setX("iim_ov_" + dtr.tr_id, ovx); - il.Overlay.setY("iim_ov_" + dtr.tr_id, ovy); - - dtr = trigger; - ov.draggable({ - stop: function(event, ui) { - var ovpos, position; - - ovpos = ov.position(); - position = (Math.round(ov.offset().left) - Math.round(base.offset().left)) + "," + - (Math.round(ov.offset().top) - Math.round(base.offset().top)); - - $("input#ovpos_" + dtr.nr).attr("value", position); - } - }); - } - } - }, - - /** + startDraggingOverlay(tr_nr) { + let k; let trigger; let dtr; let ov; let base; let bpos; let ovx; let + ovy; + + this.dragging = true; + + for (k in il.COPagePres.iim_trigger) { + trigger = il.COPagePres.iim_trigger[k]; + + if (trigger.nr == tr_nr) { + dtr = trigger; + ov = $(`img#iim_ov_${dtr.tr_id}`); + + // remove map for dragging + ov.attr('usemap', ''); + + il.COPagePres.initDragToolbar(); + + base = $(`img#base_img_${dtr.iim_id}`); + bpos = base.offset(); + ovx = bpos.left + parseInt(dtr.ovx, 10); + ovy = bpos.top + parseInt(dtr.ovy, 10); + ov.css('display', ''); + ov.css('position', 'absolute'); + il.Overlay.setX(`iim_ov_${dtr.tr_id}`, ovx); + il.Overlay.setY(`iim_ov_${dtr.tr_id}`, ovy); + + dtr = trigger; + ov.draggable({ + stop(event, ui) { + let ovpos; let + position; + + ovpos = ov.position(); + position = `${Math.round(ov.offset().left) - Math.round(base.offset().left)},${ + Math.round(ov.offset().top) - Math.round(base.offset().top)}`; + + $(`input#ovpos_${dtr.nr}`).attr('value', position); + }, + }); + } + } + }, + + /** * Make popup draggable */ - startDraggingPopup: function(tr_nr) { - var i, k, dtr, cpop, pdummy, base, bpos, popx, popy; - - this.dragging = true; - - // get correct trigger - for (k in il.COPagePres.iim_trigger) { - if (il.COPagePres.iim_trigger[k].nr == tr_nr) { - dtr = il.COPagePres.iim_trigger[k]; - - // get correct popup - for (i in il.COPagePres.iim_popup) { - if (il.COPagePres.iim_popup[i].nr == - il.COPagePres.iim_trigger[k].popup_nr) { - - cpop = il.COPagePres.iim_popup[i]; - pdummy = document.getElementById("popupdummy"); - if (pdummy == null) { - $('div#il_center_col').append('
'); - pdummy = $("div#popupdummy"); - } else { - pdummy = $("div#popupdummy"); - } - - il.COPagePres.initDragToolbar(); - - base = $("img#base_img_" + cpop.iim_id); - bpos = base.offset(); - popx = bpos.left + parseInt(dtr.popx, 10); - popy = bpos.top + parseInt(dtr.popy, 10); - pdummy.css("position", "absolute"); - pdummy.css('width', dtr.popwidth); - pdummy.css('height', dtr.popheight); - pdummy.css('display', ''); - il.Overlay.setX("popupdummy", popx); - il.Overlay.setY("popupdummy", popy); - - - pdummy.draggable({ - stop: function(event, ui) { - var pdpos, position; - - pdpos = pdummy.position(); - position = (Math.round(pdummy.offset().left) - Math.round(base.offset().left)) + "," + - (Math.round(pdummy.offset().top) - Math.round(base.offset().top)); - $("input#poppos_" + dtr.nr).attr("value", position); - } - }); - } - } - } - } - }, - - /** + startDraggingPopup(tr_nr) { + let i; let k; let dtr; let cpop; let pdummy; let base; let bpos; let popx; let + popy; + + this.dragging = true; + + // get correct trigger + for (k in il.COPagePres.iim_trigger) { + if (il.COPagePres.iim_trigger[k].nr == tr_nr) { + dtr = il.COPagePres.iim_trigger[k]; + + // get correct popup + for (i in il.COPagePres.iim_popup) { + if (il.COPagePres.iim_popup[i].nr + == il.COPagePres.iim_trigger[k].popup_nr) { + cpop = il.COPagePres.iim_popup[i]; + pdummy = document.getElementById('popupdummy'); + if (pdummy == null) { + $('div#il_center_col').append('
'); + pdummy = $('div#popupdummy'); + } else { + pdummy = $('div#popupdummy'); + } + + il.COPagePres.initDragToolbar(); + + base = $(`img#base_img_${cpop.iim_id}`); + bpos = base.offset(); + popx = bpos.left + parseInt(dtr.popx, 10); + popy = bpos.top + parseInt(dtr.popy, 10); + pdummy.css('position', 'absolute'); + pdummy.css('width', dtr.popwidth); + pdummy.css('height', dtr.popheight); + pdummy.css('display', ''); + il.Overlay.setX('popupdummy', popx); + il.Overlay.setY('popupdummy', popy); + + pdummy.draggable({ + stop(event, ui) { + let pdpos; let + position; + + pdpos = pdummy.position(); + position = `${Math.round(pdummy.offset().left) - Math.round(base.offset().left)},${ + Math.round(pdummy.offset().top) - Math.round(base.offset().top)}`; + $(`input#poppos_${dtr.nr}`).attr('value', position); + }, + }); + } + } + } + } + }, + + /** * Init drag toolbar */ - initDragToolbar: function() { - // show the toolbar - $("#drag_toolbar").removeClass("ilNoDisplay"); - this.fixMarkerPositions(); - $("#save_pos_button").click(function () { - $("input#update_tr_button").trigger("click"); - }); - }, - - - // - // Question Overviews - // - - qover: {}, - ganswer_data: {}, - - addQuestionOverview: function(conf) { - this.qover[conf.id] = conf; - }, - - updateQuestionOverviews: function() { - var correct = {}, - incorrect = {}, - correct_cnt = 0, - incorrect_cnt = 0, - answered_correctly, index, k, i, ov_el,ul, j, qtext; - - if (typeof questions === 'undefined') { - - // #17532 - question overview does not work in copage editor / preview - for (i in this.qover) { - ov_el = $('div#' + this.qover[i].div_id); - $(ov_el).addClass('ilBox'); - $(ov_el).css('margin', '5px'); - ov_el.empty(); - ov_el.append('
' + ilias.questions.txt.ov_preview + '
'); - } - - return; - } - - for (k in questions) { - answered_correctly = true; - index=parseInt(k, 10); - if (!isNaN(index)) { - if (!answers[index]) { - answered_correctly = false; - } else { - if (answers[index].passed!=true) { - answered_correctly = false; - } - } - if (!answered_correctly) { - incorrect[k] = k; - incorrect_cnt++; - } else { - correct[k] = k; - correct_cnt++; - } - } - } - - // iterate all question overview elements - for (i in this.qover) { - ov_el = $('div#' + this.qover[i].div_id); - - // remove all children - ov_el.empty(); - - // show success message, if all questions have been answered - if (incorrect_cnt == 0) { - ov_el.attr("class", 'ilc_qover_Correct'); - ov_el.append( - ilias.questions.txt.ov_all_correct); - } else { - ov_el.attr("class", 'ilc_qover_Incorrect'); - // show message including of number of not - // correctly answered questions - if (this.qover[i].short_message == "y") { - ov_el.append('
' + - ilias.questions.txt.ov_some_correct.split("[x]").join(String(correct_cnt)) - .split("[y]").join(String(incorrect_cnt + correct_cnt)) + - "
" - ); - } - - if (this.qover[i].list_wrong_questions == "y") { - ov_el.append( - '
' + - ilias.questions.txt.ov_wrong_answered + ":" + '
' - ); - - // list all incorrect answered questions - ov_el.append(''); - ul = $('div#' + this.qover[i].div_id + " > ul"); - for (j in incorrect) { - qtext = questions[j].question; - - if (questions[j].type == "assClozeTest") { - qtext = questions[j].title; - } - - ul.append( - '
  • ' + - '' + qtext + '' - + '
  • '); - } - } - } - } - }, - - // jump to a question - jumpToQuestion: function(qid) { - if (typeof pager !== "undefined") { - pager.jumpToElement("container" + qid); - } - return false; - }, - - setGivenAnswerData: function (data) { - ilCOPagePres.ganswer_data = data; - }, - - // - // Map area functions - // - - // init map areas - initMapAreas: function() { - - $('img[usemap^="#map_il_"][class!="ilIim"]').maphilight({"neverOn":true}); - }, - - //// - //// Handle advanced content - //// - showadvcont: true, - initAdvancedContent: function() { - var c = $("div.ilc_section_AdvancedKnowledge"), - b = $("#ilPageShowAdvContent"), cookiePos; - if (c.length > 0 && b.length > 0) { - cookiePos = document.cookie.indexOf("pg_hideadv="); - if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) { - this.showadvcont = false; - } - - $("#ilPageShowAdvContent").css("display", "block"); - if (il.COPagePres.showadvcont) { - $("div.ilc_section_AdvancedKnowledge").css("display", ""); - $("#ilPageShowAdvContent > span:nth-child(1)").css("display", "none"); - } else { - $("div.ilc_section_AdvancedKnowledge").css("display", "none"); - $("#ilPageShowAdvContent > span:nth-child(2)").css("display", "none"); - } - $("#ilPageShowAdvContent").click(function () { - if (il.COPagePres.showadvcont) { - $("div.ilc_section_AdvancedKnowledge").css("display", "none"); - $("#ilPageShowAdvContent > span:nth-child(1)").css("display", ""); - $("#ilPageShowAdvContent > span:nth-child(2)").css("display", "none"); - il.COPagePres.showadvcont = false; - document.cookie = "pg_hideadv=1"; - } else { - $("div.ilc_section_AdvancedKnowledge").css("display", ""); - $("#ilPageShowAdvContent > span:nth-child(1)").css("display", "none"); - $("#ilPageShowAdvContent > span:nth-child(2)").css("display", ""); - il.COPagePres.showadvcont = true; - document.cookie = "pg_hideadv=0"; - } - return false; - }); - } - }, - - //// - //// Audio/Video - //// - - initAudioVideo: function (acc_el) { - var $elements; - if (acc_el) { - $elements = $(acc_el).find('video.ilPageVideo,audio.ilPageAudio'); - } else { - $elements = $('video.ilPageVideo,audio.ilPageAudio'); - } - - if ($elements.mediaelementplayer) { - $elements.each(function(i, el) { - var def, cfg; - - def = $(el).find("track[default='default']").first().attr("srclang"); - cfg = {}; - if (def != ""){ - cfg.startLanguage = def; - } - $(el).mediaelementplayer(cfg); - }); - } - }, - - accordionRerender: function (acc_el) { - $(acc_el).find('video.ilPageVideo,audio.ilPageAudio').each(function(i, el) { - if (el.player) el.player.remove(); - }); - - il.COPagePres.initAudioVideo(acc_el); - }, - - setFullscreenModalShowSignal: function (signal, suffix) { - il.COPagePres.fullscreen_signal = signal; - il.COPagePres.fullscreen_suffix = suffix - $('#il-copg-mob-fullscreen' + suffix).closest(".modal").on('shown.bs.modal', function () { - il.COPagePres.resizeFullScreenModal(suffix); - }).on('hidden.bs.modal', function () { - $("#il-copg-mob-fullscreen" + suffix).attr("src", ""); - }); - }, - - inIframe: function () { - try { - return window.self !== window.top; - } catch (e) { - return true; - } - }, - - openFullScreenModal: function (target) { - // see 32198 - if (il.COPagePres.inIframe()) { - window.parent.il.COPagePres.openFullScreenModal(target); - return; - } - $("#il-copg-mob-fullscreen" + il.COPagePres.fullscreen_suffix).attr("src", target); - $(document).trigger(il.COPagePres.fullscreen_signal, { - id: il.COPagePres.fullscreen_signal, - event: 'click', - triggerer: $(document), - options: JSON.parse('[]') - }); - }, - - resizeFullScreenModal: function (suffix) { - var vp = il.Util.getViewportRegion(); - var ifr = il.Util.getRegion('#il-copg-mob-fullscreen' + suffix); - $('.il-copg-mob-fullscreen').css("height", (vp.height - ifr.top + vp.top - 120) + "px"); - } - + initDragToolbar() { + // show the toolbar + $('#drag_toolbar').removeClass('ilNoDisplay'); + this.fixMarkerPositions(); + $('#save_pos_button').click(() => { + $('input#update_tr_button').trigger('click'); + }); + }, + + // + // Question Overviews + // + + qover: {}, + ganswer_data: {}, + + addQuestionOverview(conf) { + this.qover[conf.id] = conf; + }, + + updateQuestionOverviews() { + const correct = {}; + const incorrect = {}; + let correct_cnt = 0; + let incorrect_cnt = 0; + let answered_correctly; let index; let k; let i; let ov_el; let ul; let j; let + qtext; + + if (typeof questions === 'undefined') { + // #17532 - question overview does not work in copage editor / preview + for (i in this.qover) { + ov_el = $(`div#${this.qover[i].div_id}`); + $(ov_el).addClass('ilBox'); + $(ov_el).css('margin', '5px'); + ov_el.empty(); + ov_el.append(`
    ${ilias.questions.txt.ov_preview}
    `); + } + + return; + } + + for (k in questions) { + answered_correctly = true; + index = parseInt(k, 10); + if (!isNaN(index)) { + if (!answers[index]) { + answered_correctly = false; + } else if (answers[index].passed != true) { + answered_correctly = false; + } + if (!answered_correctly) { + incorrect[k] = k; + incorrect_cnt++; + } else { + correct[k] = k; + correct_cnt++; + } + } + } + + // iterate all question overview elements + for (i in this.qover) { + ov_el = $(`div#${this.qover[i].div_id}`); + + // remove all children + ov_el.empty(); + + // show success message, if all questions have been answered + if (incorrect_cnt == 0) { + ov_el.attr('class', 'ilc_qover_Correct'); + ov_el.append( + ilias.questions.txt.ov_all_correct, + ); + } else { + ov_el.attr('class', 'ilc_qover_Incorrect'); + // show message including of number of not + // correctly answered questions + if (this.qover[i].short_message == 'y') { + ov_el.append(`
    ${ + ilias.questions.txt.ov_some_correct.split('[x]').join(String(correct_cnt)) + .split('[y]').join(String(incorrect_cnt + correct_cnt)) + }
    `); + } + + if (this.qover[i].list_wrong_questions == 'y') { + ov_el.append( + `
    ${ + ilias.questions.txt.ov_wrong_answered}:` + '
    ', + ); + + // list all incorrect answered questions + ov_el.append(''); + ul = $(`div#${this.qover[i].div_id} > ul`); + for (j in incorrect) { + qtext = questions[j].question; + + if (questions[j].type == 'assClozeTest') { + qtext = questions[j].title; + } + + ul.append( + '
  • ' + + `${qtext}` + + '
  • ', + ); + } + } + } + } + }, + + // jump to a question + jumpToQuestion(qid) { + if (typeof pager !== 'undefined') { + pager.jumpToElement(`container${qid}`); + } + return false; + }, + + setGivenAnswerData(data) { + ilCOPagePres.ganswer_data = data; + }, + + // + // Map area functions + // + + // init map areas + initMapAreas() { + $('img[usemap^="#map_il_"][class!="ilIim"]').maphilight({ neverOn: true }); + }, + + /// / + /// / Handle advanced content + /// / + showadvcont: true, + initAdvancedContent() { + const c = $('div.ilc_section_AdvancedKnowledge'); + const b = $('#ilPageShowAdvContent'); let + cookiePos; + if (c.length > 0 && b.length > 0) { + cookiePos = document.cookie.indexOf('pg_hideadv='); + if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) { + this.showadvcont = false; + } + + $('#ilPageShowAdvContent').css('display', 'block'); + if (il.COPagePres.showadvcont) { + $('div.ilc_section_AdvancedKnowledge').css('display', ''); + $('#ilPageShowAdvContent > span:nth-child(1)').css('display', 'none'); + } else { + $('div.ilc_section_AdvancedKnowledge').css('display', 'none'); + $('#ilPageShowAdvContent > span:nth-child(2)').css('display', 'none'); + } + $('#ilPageShowAdvContent').click(() => { + if (il.COPagePres.showadvcont) { + $('div.ilc_section_AdvancedKnowledge').css('display', 'none'); + $('#ilPageShowAdvContent > span:nth-child(1)').css('display', ''); + $('#ilPageShowAdvContent > span:nth-child(2)').css('display', 'none'); + il.COPagePres.showadvcont = false; + document.cookie = 'pg_hideadv=1'; + } else { + $('div.ilc_section_AdvancedKnowledge').css('display', ''); + $('#ilPageShowAdvContent > span:nth-child(1)').css('display', 'none'); + $('#ilPageShowAdvContent > span:nth-child(2)').css('display', ''); + il.COPagePres.showadvcont = true; + document.cookie = 'pg_hideadv=0'; + } + return false; + }); + } + }, + + /// / + /// / Audio/Video + /// / + + initAudioVideo(acc_el) { + let $elements; + if (acc_el) { + $elements = $(acc_el).find('video.ilPageVideo,audio.ilPageAudio'); + } else { + $elements = $('video.ilPageVideo,audio.ilPageAudio'); + } + + if ($elements.mediaelementplayer) { + $elements.each((i, el) => { + let def; let + cfg; + + def = $(el).find("track[default='default']").first().attr('srclang'); + cfg = {}; + if (def != '') { + cfg.startLanguage = def; + } + $(el).mediaelementplayer(cfg); + }); + } + }, + + accordionRerender(acc_el) { + $(acc_el).find('video.ilPageVideo,audio.ilPageAudio').each((i, el) => { + if (el.player) el.player.remove(); + }); + + il.COPagePres.initAudioVideo(acc_el); + }, + + setFullscreenModalShowSignal(signal, suffix) { + il.COPagePres.fullscreen_signal = signal; + il.COPagePres.fullscreen_suffix = suffix; + $(`#il-copg-mob-fullscreen${suffix}`).closest('.modal').on('shown.bs.modal', () => { + il.COPagePres.resizeFullScreenModal(suffix); + }).on('hidden.bs.modal', () => { + $(`#il-copg-mob-fullscreen${suffix}`).attr('src', ''); + }); + }, + + inIframe() { + try { + return window.self !== window.top; + } catch (e) { + return true; + } + }, + + openFullScreenModal(target) { + // see 32198 + if (il.COPagePres.inIframe()) { + window.parent.il.COPagePres.openFullScreenModal(target); + return; + } + $(`#il-copg-mob-fullscreen${il.COPagePres.fullscreen_suffix}`).attr('src', target); + $(document).trigger(il.COPagePres.fullscreen_signal, { + id: il.COPagePres.fullscreen_signal, + event: 'click', + triggerer: $(document), + options: JSON.parse('[]'), + }); + }, + + resizeFullScreenModal(suffix) { + const vp = il.Util.getViewportRegion(); + const ifr = il.Util.getRegion(`#il-copg-mob-fullscreen${suffix}`); + $('.il-copg-mob-fullscreen').css('height', `${vp.height - ifr.top + vp.top - 120}px`); + }, }; -il.Util.addOnLoad(function() {il.COPagePres.init();}); +il.Util.addOnLoad(() => { il.COPagePres.init(); }); diff --git a/components/ILIAS/COPage/js/page_history.js b/components/ILIAS/COPage/js/page_history.js old mode 100755 new mode 100644 index 44520f6971f8..75f9c6734fd3 --- a/components/ILIAS/COPage/js/page_history.js +++ b/components/ILIAS/COPage/js/page_history.js @@ -1,100 +1,96 @@ // for enhanced RecentChanges function toggleVisibility(_levelId, _otherId, _linkId) { - var thisLevel = document.getElementById(_levelId); - var otherLevel = document.getElementById(_otherId); - var linkLevel = document.getElementById(_linkId); - if (thisLevel.style.display == 'none') { - thisLevel.style.display = 'block'; - otherLevel.style.display = 'none'; - linkLevel.style.display = 'inline'; - } else { - thisLevel.style.display = 'none'; - otherLevel.style.display = 'inline'; - linkLevel.style.display = 'none'; - } + const thisLevel = document.getElementById(_levelId); + const otherLevel = document.getElementById(_otherId); + const linkLevel = document.getElementById(_linkId); + if (thisLevel.style.display == 'none') { + thisLevel.style.display = 'block'; + otherLevel.style.display = 'none'; + linkLevel.style.display = 'inline'; + } else { + thisLevel.style.display = 'none'; + otherLevel.style.display = 'inline'; + linkLevel.style.display = 'none'; + } } function historyRadios(parent) { - var inputs = parent.getElementsByTagName('input'); - var radios = []; - for (var i = 0; i < inputs.length; i++) { - if (inputs[i].name == "left" || inputs[i].name == "right") { - radios[radios.length] = inputs[i]; - } - } - return radios; + const inputs = parent.getElementsByTagName('input'); + const radios = []; + for (let i = 0; i < inputs.length; i++) { + if (inputs[i].name == 'left' || inputs[i].name == 'right') { + radios[radios.length] = inputs[i]; + } + } + return radios; } // check selection and tweak visibility/class onclick function diffcheck() { - var dli = false; // the li where the diff radio is checked - var oli = false; // the li where the oldid radio is checked - - var htable = document.getElementById('hist_table'); - if (!htable) - { - return; - } - var rows = htable.getElementsByTagName('tr'); - for (var i=0;i + new Component\Resource\Endpoint($this, "calendar.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "recurrence_input.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "toggle_notification.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "calendar_appointment.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("moment/min/moment-with-locales.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"); } } diff --git a/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php b/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php index c775aabfadb3..7573ef268084 100755 --- a/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php +++ b/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php @@ -47,7 +47,7 @@ public function __construct(string $a_title, string $a_postvar) { global $DIC; - $DIC->ui()->mainTemplate()->addJavaScript("./components/ILIAS/Calendar/js/recurrence_input.js"); + $DIC->ui()->mainTemplate()->addJavaScript("assets/js/recurrence_input.js"); $this->user = $DIC->user(); $this->user_settings = ilCalendarUserSettings::_getInstanceByUserId($this->user->getId()); $this->recurrence = new ilCalendarRecurrence(); diff --git a/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php b/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php index c01d3dc47089..a07a22052aec 100755 --- a/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php +++ b/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php @@ -310,7 +310,7 @@ protected function initForm(string $a_mode, bool $a_edit_single_app = false): il } } - $this->tpl->addJavaScript('./components/ILIAS/Calendar/js/toggle_notification.js'); + $this->tpl->addJavaScript('assets/js/toggle_notification.js'); $not = new ilCheckboxInputGUI($this->lng->txt('cal_cg_notification'), 'not'); $not->setInfo($this->lng->txt('cal_notification_info')); $not->setValue('1'); diff --git a/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php b/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php index e3673b5e265a..1c4c8ebe898a 100755 --- a/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php +++ b/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php @@ -508,11 +508,11 @@ public static function initDateTimePicker(): void $tpl = $DIC->ui()->mainTemplate(); if (!self::$init_datetimepicker) { - $tpl->addJavaScript("./node_modules/moment/min/moment-with-locales.min.js"); + $tpl->addJavaScript("assets/js/moment-with-locales.min.js"); // unminified version does not work with jQuery 3.0 // https://github.com/Eonasdan/bootstrap-datetimepicker/issues/1684 - $tpl->addJavaScript("./node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"); - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); // see ilPropertyFormGUI + $tpl->addJavaScript("assets/js/bootstrap-datetimepicker.min.js"); + $tpl->addJavaScript("assets/js/Form.js"); // see ilPropertyFormGUI self::$init_datetimepicker = true; } } diff --git a/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php b/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php index 61e1ffbb1833..123b3e3199e6 100755 --- a/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php +++ b/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php @@ -95,7 +95,7 @@ public function initialize(int $a_calendar_presentation_type): void if ($this->presentation_type == self::CAL_PRESENTATION_DAY || $this->presentation_type == self::CAL_PRESENTATION_WEEK) { iljQueryUtil::initjQuery($this->main_tpl); - $this->main_tpl->addJavaScript('./components/ILIAS/Calendar/js/calendar_appointment.js'); + $this->main_tpl->addJavaScript('assets/js/calendar_appointment.js'); } $this->http = $DIC->http(); $this->refinery = $DIC->refinery(); diff --git a/public/calendar.php b/components/ILIAS/Calendar/resources/calendar.php old mode 100755 new mode 100644 similarity index 100% rename from public/calendar.php rename to components/ILIAS/Calendar/resources/calendar.php diff --git a/components/ILIAS/Calendar/js/calendar_appointment.js b/components/ILIAS/Calendar/resources/calendar_appointment.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Calendar/js/calendar_appointment.js rename to components/ILIAS/Calendar/resources/calendar_appointment.js diff --git a/components/ILIAS/Calendar/js/recurrence_input.js b/components/ILIAS/Calendar/resources/recurrence_input.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Calendar/js/recurrence_input.js rename to components/ILIAS/Calendar/resources/recurrence_input.js diff --git a/components/ILIAS/Calendar/js/toggle_notification.js b/components/ILIAS/Calendar/resources/toggle_notification.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Calendar/js/toggle_notification.js rename to components/ILIAS/Calendar/resources/toggle_notification.js diff --git a/components/ILIAS/Chart/Chart.php b/components/ILIAS/Chart/Chart.php index 4a3ff0853279..cda4b660f5ee 100644 --- a/components/ILIAS/Chart/Chart.php +++ b/components/ILIAS/Chart/Chart.php @@ -32,6 +32,19 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "excanvas.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.resize.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.stack.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.pie.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.highlighter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.spider.js"); } } diff --git a/components/ILIAS/Chart/classes/class.ilChart.php b/components/ILIAS/Chart/classes/class.ilChart.php index 598fe7c77855..83e485db35b2 100755 --- a/components/ILIAS/Chart/classes/class.ilChart.php +++ b/components/ILIAS/Chart/classes/class.ilChart.php @@ -195,16 +195,16 @@ protected function initJS(): void iljQueryUtil::initjQuery(); - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/excanvas.min.js"); - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.min.js"); + $tpl->addJavaScript("assets/js/excanvas.min.js"); + $tpl->addJavaScript("assets/js/jquery.flot.min.js"); if ($this->auto_resize) { // #13108 - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.resize.min.js"); + $tpl->addJavaScript("assets/js/jquery.flot.resize.min.js"); } if ($this->stacked) { - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.stack.min.js"); + $tpl->addJavaScript("assets/js/jquery.flot.stack.min.js"); } $this->addCustomJS(); diff --git a/components/ILIAS/Chart/classes/class.ilChartPie.php b/components/ILIAS/Chart/classes/class.ilChartPie.php index 06a9740fabac..e3eb1a271472 100755 --- a/components/ILIAS/Chart/classes/class.ilChartPie.php +++ b/components/ILIAS/Chart/classes/class.ilChartPie.php @@ -33,7 +33,7 @@ protected function addCustomJS(): void { $tpl = $this->tpl; - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.pie.js"); + $tpl->addJavaScript("assets/js/jquery.flot.pie.js"); } public function parseGlobalOptions(stdClass $a_options): void diff --git a/components/ILIAS/Chart/classes/class.ilChartSpider.php b/components/ILIAS/Chart/classes/class.ilChartSpider.php index 71e8c82a5e17..79d418f0ad31 100755 --- a/components/ILIAS/Chart/classes/class.ilChartSpider.php +++ b/components/ILIAS/Chart/classes/class.ilChartSpider.php @@ -73,8 +73,8 @@ protected function addCustomJS(): void { $tpl = $this->tpl; - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.highlighter.js"); - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.spider.js"); + $tpl->addJavaScript("assets/js/jquery.flot.highlighter.js"); + $tpl->addJavaScript("assets/js/jquery.flot.spider.js"); } public function parseGlobalOptions(stdClass $a_options): void diff --git a/components/ILIAS/Chart/js/flot/excanvas.js b/components/ILIAS/Chart/resources/excanvas.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/excanvas.js rename to components/ILIAS/Chart/resources/excanvas.js diff --git a/components/ILIAS/Chart/js/flot/excanvas.min.js b/components/ILIAS/Chart/resources/excanvas.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/excanvas.min.js rename to components/ILIAS/Chart/resources/excanvas.min.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.highlighter.js b/components/ILIAS/Chart/resources/jquery.flot.highlighter.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.highlighter.js rename to components/ILIAS/Chart/resources/jquery.flot.highlighter.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.js b/components/ILIAS/Chart/resources/jquery.flot.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.js rename to components/ILIAS/Chart/resources/jquery.flot.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.min.js b/components/ILIAS/Chart/resources/jquery.flot.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.min.js rename to components/ILIAS/Chart/resources/jquery.flot.min.js diff --git a/components/ILIAS/Chart/resources/jquery.flot.pie.js b/components/ILIAS/Chart/resources/jquery.flot.pie.js new file mode 100755 index 000000000000..2907057767c3 --- /dev/null +++ b/components/ILIAS/Chart/resources/jquery.flot.pie.js @@ -0,0 +1,800 @@ +/* Flot plugin for rendering pie charts. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +The plugin assumes that each series has a single data value, and that each +value is a positive integer or zero. Negative numbers don't make sense for a +pie chart, and have unpredictable results. The values do NOT need to be +passed in as percentages; the plugin will calculate the total and per-slice +percentages internally. + +* Created by Brian Medendorp + +* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars + +The plugin supports these options: + + series: { + pie: { + show: true/false + radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto' + innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect + startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result + tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show) + offset: { + top: integer value to move the pie up or down + left: integer value to move the pie left or right, or 'auto' + }, + stroke: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF') + width: integer pixel width of the stroke + }, + label: { + show: true/false, or 'auto' + formatter: a user-defined function that modifies the text/style of the label text + radius: 0-1 for percentage of fullsize, or a specified pixel length + background: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000') + opacity: 0-1 + }, + threshold: 0-1 for the percentage value at which to hide labels (if they're too small) + }, + combine: { + threshold: 0-1 for the percentage value at which to combine slices (if they're too small) + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined + label: any text value of what the combined slice should be labeled + } + highlight: { + opacity: 0-1 + } + } + } + +More detail and specific examples can be found in the included HTML file. + +*/ + +(function ($) { + // Maximum redraw attempts when fitting labels within the plot + + const REDRAW_ATTEMPTS = 10; + + // Factor by which to shrink the pie when fitting labels within the plot + + const REDRAW_SHRINK = 0.95; + + function init(plot) { + let canvas = null; + let target = null; + let options = null; + let maxRadius = null; + let centerLeft = null; + let centerTop = null; + let processed = false; + let ctx = null; + + // interactive variables + + let highlights = []; + + // add hook to determine if pie plugin in enabled, and then perform necessary operations + + plot.hooks.processOptions.push((plot, options) => { + if (options.series.pie.show) { + options.grid.show = false; + + // set labels.show + + if (options.series.pie.label.show == 'auto') { + if (options.legend.show) { + options.series.pie.label.show = false; + } else { + options.series.pie.label.show = true; + } + } + + // set radius + + if (options.series.pie.radius == 'auto') { + if (options.series.pie.label.show) { + options.series.pie.radius = 3 / 4; + } else { + options.series.pie.radius = 1; + } + } + + // ensure sane tilt + + if (options.series.pie.tilt > 1) { + options.series.pie.tilt = 1; + } else if (options.series.pie.tilt < 0) { + options.series.pie.tilt = 0; + } + } + }); + + plot.hooks.bindEvents.push((plot, eventHolder) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + if (options.grid.hoverable) { + eventHolder.unbind('mousemove').mousemove(onMouseMove); + } + if (options.grid.clickable) { + eventHolder.unbind('click').click(onClick); + } + } + }); + + plot.hooks.processDatapoints.push((plot, series, data, datapoints) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + processDatapoints(plot, series, data, datapoints); + } + }); + + plot.hooks.drawOverlay.push((plot, octx) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + drawOverlay(plot, octx); + } + }); + + plot.hooks.draw.push((plot, newCtx) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + draw(plot, newCtx); + } + }); + + function processDatapoints(plot, series, datapoints) { + if (!processed) { + processed = true; + canvas = plot.getCanvas(); + target = $(canvas).parent(); + options = plot.getOptions(); + plot.setData(combine(plot.getData())); + } + } + + function combine(data) { + let total = 0; + let combined = 0; + let numCombined = 0; + let { color } = options.series.pie.combine; + const newdata = []; + + // Fix up the raw data from Flot, ensuring the data is numeric + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data; + + // If the data is an array, we'll assume that it's a standard + // Flot x-y pair, and are concerned only with the second value. + + // Note how we use the original array, rather than creating a + // new one; this is more efficient and preserves any extra data + // that the user may have stored in higher indexes. + + if ($.isArray(value) && value.length == 1) { + value = value[0]; + } + + if ($.isArray(value)) { + // Equivalent to $.isNumeric() but compatible with jQuery < 1.7 + if (!isNaN(parseFloat(value[1])) && isFinite(value[1])) { + value[1] = +value[1]; + } else { + value[1] = 0; + } + } else if (!isNaN(parseFloat(value)) && isFinite(value)) { + value = [1, +value]; + } else { + value = [1, 0]; + } + + data[i].data = [value]; + } + + // Sum up all the slices, so we can calculate percentages for each + + for (var i = 0; i < data.length; ++i) { + total += data[i].data[0][1]; + } + + // Count the number of slices with percentages below the combine + // threshold; if it turns out to be just one, we won't combine. + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data[0][1]; + if (value / total <= options.series.pie.combine.threshold) { + combined += value; + numCombined++; + if (!color) { + color = data[i].color; + } + } + } + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data[0][1]; + if (numCombined < 2 || value / total > options.series.pie.combine.threshold) { + newdata.push( + $.extend(data[i], { /* extend to allow keeping all other original data values + and using them e.g. in labelFormatter. */ + data: [[1, value]], + color: data[i].color, + label: data[i].label, + angle: value * Math.PI * 2 / total, + percent: value / (total / 100), + }), + ); + } + } + + if (numCombined > 1) { + newdata.push({ + data: [[1, combined]], + color, + label: options.series.pie.combine.label, + angle: combined * Math.PI * 2 / total, + percent: combined / (total / 100), + }); + } + + return newdata; + } + + function draw(plot, newCtx) { + if (!target) { + return; // if no series were passed + } + + const canvasWidth = plot.getPlaceholder().width(); + const canvasHeight = plot.getPlaceholder().height(); + const legendWidth = target.children().filter('.legend').children().width() || 0; + + ctx = newCtx; + + // WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE! + + // When combining smaller slices into an 'other' slice, we need to + // add a new series. Since Flot gives plugins no way to modify the + // list of series, the pie plugin uses a hack where the first call + // to processDatapoints results in a call to setData with the new + // list of series, then subsequent processDatapoints do nothing. + + // The plugin-global 'processed' flag is used to control this hack; + // it starts out false, and is set to true after the first call to + // processDatapoints. + + // Unfortunately this turns future setData calls into no-ops; they + // call processDatapoints, the flag is true, and nothing happens. + + // To fix this we'll set the flag back to false here in draw, when + // all series have been processed, so the next sequence of calls to + // processDatapoints once again starts out with a slice-combine. + // This is really a hack; in 0.9 we need to give plugins a proper + // way to modify series before any processing begins. + + processed = false; + + // calculate maximum radius and center point + + maxRadius = Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2; + centerTop = canvasHeight / 2 + options.series.pie.offset.top; + centerLeft = canvasWidth / 2; + + if (options.series.pie.offset.left == 'auto') { + if (options.legend.position.match('w')) { + centerLeft += legendWidth / 2; + } else { + centerLeft -= legendWidth / 2; + } + if (centerLeft < maxRadius) { + centerLeft = maxRadius; + } else if (centerLeft > canvasWidth - maxRadius) { + centerLeft = canvasWidth - maxRadius; + } + } else { + centerLeft += options.series.pie.offset.left; + } + + const slices = plot.getData(); + let attempts = 0; + + // Keep shrinking the pie's radius until drawPie returns true, + // indicating that all the labels fit, or we try too many times. + + do { + if (attempts > 0) { + maxRadius *= REDRAW_SHRINK; + } + attempts += 1; + clear(); + if (options.series.pie.tilt <= 0.8) { + drawShadow(); + } + } while (!drawPie() && attempts < REDRAW_ATTEMPTS); + + if (attempts >= REDRAW_ATTEMPTS) { + clear(); + target.prepend("
    Could not draw pie with labels contained inside canvas
    "); + } + + if (plot.setSeries && plot.insertLegend) { + plot.setSeries(slices); + plot.insertLegend(); + } + + // we're actually done at this point, just defining internal functions at this point + + function clear() { + ctx.clearRect(0, 0, canvasWidth, canvasHeight); + target.children().filter('.pieLabel, .pieLabelBackground').remove(); + } + + function drawShadow() { + const shadowLeft = options.series.pie.shadow.left; + const shadowTop = options.series.pie.shadow.top; + const edge = 10; + const { alpha } = options.series.pie.shadow; + let radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + if (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) { + return; // shadow would be outside canvas, so don't draw it + } + + ctx.save(); + ctx.translate(shadowLeft, shadowTop); + ctx.globalAlpha = alpha; + ctx.fillStyle = '#000'; + + // center and rotate to starting position + + ctx.translate(centerLeft, centerTop); + ctx.scale(1, options.series.pie.tilt); + + // radius -= edge; + + for (let i = 1; i <= edge; i++) { + ctx.beginPath(); + ctx.arc(0, 0, radius, 0, Math.PI * 2, false); + ctx.fill(); + radius -= i; + } + + ctx.restore(); + } + + function drawPie() { + const startAngle = Math.PI * options.series.pie.startAngle; + const radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + // center and rotate to starting position + + ctx.save(); + ctx.translate(centerLeft, centerTop); + ctx.scale(1, options.series.pie.tilt); + // ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera + + // draw slices + + ctx.save(); + let currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) { + slices[i].startAngle = currentAngle; + drawSlice(slices[i].angle, slices[i].color, true); + } + ctx.restore(); + + // draw slice outlines + + if (options.series.pie.stroke.width > 0) { + ctx.save(); + ctx.lineWidth = options.series.pie.stroke.width; + currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) { + drawSlice(slices[i].angle, options.series.pie.stroke.color, false); + } + ctx.restore(); + } + + // draw donut hole + + drawDonutHole(ctx); + + ctx.restore(); + + // Draw the labels, returning true if they fit within the plot + + if (options.series.pie.label.show) { + return drawLabels(); + } return true; + + function drawSlice(angle, color, fill) { + if (angle <= 0 || isNaN(angle)) { + return; + } + + if (fill) { + ctx.fillStyle = color; + } else { + ctx.strokeStyle = color; + ctx.lineJoin = 'round'; + } + + ctx.beginPath(); + if (Math.abs(angle - Math.PI * 2) > 0.000000001) { + ctx.moveTo(0, 0); // Center of the pie + } + + // ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera + ctx.arc(0, 0, radius, currentAngle, currentAngle + angle / 2, false); + ctx.arc(0, 0, radius, currentAngle + angle / 2, currentAngle + angle, false); + ctx.closePath(); + // ctx.rotate(angle); // This doesn't work properly in Opera + currentAngle += angle; + + if (fill) { + ctx.fill(); + } else { + ctx.stroke(); + } + } + + function drawLabels() { + let currentAngle = startAngle; + const radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius; + + for (let i = 0; i < slices.length; ++i) { + if (slices[i].percent >= options.series.pie.label.threshold * 100) { + if (!drawLabel(slices[i], currentAngle, i)) { + return false; + } + } + currentAngle += slices[i].angle; + } + + return true; + + function drawLabel(slice, startAngle, index) { + if (slice.data[0][1] == 0) { + return true; + } + + // format label text + + const lf = options.legend.labelFormatter; let text; const + plf = options.series.pie.label.formatter; + + if (lf) { + text = lf(slice.label, slice); + } else { + text = slice.label; + } + + if (plf) { + text = plf(text, slice); + } + + const halfAngle = ((startAngle + slice.angle) + startAngle) / 2; + const x = centerLeft + Math.round(Math.cos(halfAngle) * radius); + const y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt; + + const html = `${text}`; + target.append(html); + + const label = target.children(`#pieLabel${index}`); + const labelTop = (y - label.height() / 2); + const labelLeft = (x - label.width() / 2); + + label.css('top', labelTop); + label.css('left', labelLeft); + + // check to make sure that the label is not outside the canvas + + if (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) { + return false; + } + + if (options.series.pie.label.background.opacity != 0) { + // put in the transparent background separately to avoid blended labels and label boxes + + let c = options.series.pie.label.background.color; + + if (c == null) { + c = slice.color; + } + + const pos = `top:${labelTop}px;left:${labelLeft}px;`; + $(`
    `) + .css('opacity', options.series.pie.label.background.opacity) + .insertBefore(label); + } + + return true; + } // end individual label function + } // end drawLabels function + } // end drawPie function + } // end draw function + + // Placed here because it needs to be accessed from multiple locations + + function drawDonutHole(layer) { + if (options.series.pie.innerRadius > 0) { + // subtract the center + + layer.save(); + const innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius; + layer.globalCompositeOperation = 'destination-out'; // this does not work with excanvas, but it will fall back to using the stroke color + layer.beginPath(); + layer.fillStyle = options.series.pie.stroke.color; + layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); + layer.fill(); + layer.closePath(); + layer.restore(); + + // add inner stroke + + layer.save(); + layer.beginPath(); + layer.strokeStyle = options.series.pie.stroke.color; + layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); + layer.stroke(); + layer.closePath(); + layer.restore(); + + // TODO: add extra shadow inside hole (with a mask) if the pie is tilted. + } + } + + // -- Additional Interactive related functions -- + + function isPointInPoly(poly, pt) { + for (var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) { + ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1] < poly[i][1])) + && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) + && (c = !c); + } + return c; + } + + function findNearbySlice(mouseX, mouseY) { + const slices = plot.getData(); + const options = plot.getOptions(); + const radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + let x; let + y; + + for (let i = 0; i < slices.length; ++i) { + const s = slices[i]; + + if (s.pie.show) { + ctx.save(); + ctx.beginPath(); + ctx.moveTo(0, 0); // Center of the pie + // ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here. + ctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false); + ctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false); + ctx.closePath(); + x = mouseX - centerLeft; + y = mouseY - centerTop; + + if (ctx.isPointInPath) { + if (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) { + ctx.restore(); + return { + datapoint: [s.percent, s.data], + dataIndex: 0, + series: s, + seriesIndex: i, + }; + } + } else { + // excanvas for IE doesn;t support isPointInPath, this is a workaround. + + const p1X = radius * Math.cos(s.startAngle); + const p1Y = radius * Math.sin(s.startAngle); + const p2X = radius * Math.cos(s.startAngle + s.angle / 4); + const p2Y = radius * Math.sin(s.startAngle + s.angle / 4); + const p3X = radius * Math.cos(s.startAngle + s.angle / 2); + const p3Y = radius * Math.sin(s.startAngle + s.angle / 2); + const p4X = radius * Math.cos(s.startAngle + s.angle / 1.5); + const p4Y = radius * Math.sin(s.startAngle + s.angle / 1.5); + const p5X = radius * Math.cos(s.startAngle + s.angle); + const p5Y = radius * Math.sin(s.startAngle + s.angle); + const arrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]]; + const arrPoint = [x, y]; + + // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt? + + if (isPointInPoly(arrPoly, arrPoint)) { + ctx.restore(); + return { + datapoint: [s.percent, s.data], + dataIndex: 0, + series: s, + seriesIndex: i, + }; + } + } + + ctx.restore(); + } + } + + return null; + } + + function onMouseMove(e) { + triggerClickHoverEvent('plothover', e); + } + + function onClick(e) { + triggerClickHoverEvent('plotclick', e); + } + + // trigger click or hover event (they send the same parameters so we share their code) + + function triggerClickHoverEvent(eventname, e) { + const offset = plot.offset(); + const canvasX = parseInt(e.pageX - offset.left); + const canvasY = parseInt(e.pageY - offset.top); + const item = findNearbySlice(canvasX, canvasY); + + if (options.grid.autoHighlight) { + // clear auto-highlights + + for (let i = 0; i < highlights.length; ++i) { + const h = highlights[i]; + if (h.auto == eventname && !(item && h.series == item.series)) { + unhighlight(h.series); + } + } + } + + // highlight the slice + + if (item) { + highlight(item.series, eventname); + } + + // trigger any hover bind events + + const pos = { pageX: e.pageX, pageY: e.pageY }; + target.trigger(eventname, [pos, item]); + } + + function highlight(s, auto) { + // if (typeof s == "number") { + // s = series[s]; + // } + + const i = indexOfHighlight(s); + + if (i == -1) { + highlights.push({ series: s, auto }); + plot.triggerRedrawOverlay(); + } else if (!auto) { + highlights[i].auto = false; + } + } + + function unhighlight(s) { + if (s == null) { + highlights = []; + plot.triggerRedrawOverlay(); + } + + // if (typeof s == "number") { + // s = series[s]; + // } + + const i = indexOfHighlight(s); + + if (i != -1) { + highlights.splice(i, 1); + plot.triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s) { + for (let i = 0; i < highlights.length; ++i) { + const h = highlights[i]; + if (h.series == s) return i; + } + return -1; + } + + function drawOverlay(plot, octx) { + const options = plot.getOptions(); + + const radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + octx.save(); + octx.translate(centerLeft, centerTop); + octx.scale(1, options.series.pie.tilt); + + for (let i = 0; i < highlights.length; ++i) { + drawHighlight(highlights[i].series); + } + + drawDonutHole(octx); + + octx.restore(); + + function drawHighlight(series) { + if (series.angle <= 0 || isNaN(series.angle)) { + return; + } + + // octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString(); + octx.fillStyle = `rgba(255, 255, 255, ${options.series.pie.highlight.opacity})`; // this is temporary until we have access to parseColor + octx.beginPath(); + if (Math.abs(series.angle - Math.PI * 2) > 0.000000001) { + octx.moveTo(0, 0); // Center of the pie + } + octx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false); + octx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false); + octx.closePath(); + octx.fill(); + } + } + } // end init (plugin body) + + // define pie specific options and their default values + + const options = { + series: { + pie: { + show: false, + radius: 'auto', // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value) + innerRadius: 0, /* for donut */ + startAngle: 3 / 2, + tilt: 1, + shadow: { + left: 5, // shadow left offset + top: 15, // shadow top offset + alpha: 0.02, // shadow alpha + }, + offset: { + top: 0, + left: 'auto', + }, + stroke: { + color: '#fff', + width: 1, + }, + label: { + show: 'auto', + formatter(label, slice) { + return `
    ${label}
    ${Math.round(slice.percent)}%
    `; + }, // formatter function + radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value) + background: { + color: null, + opacity: 0, + }, + threshold: 0, // percentage at which to hide the label (i.e. the slice is too narrow) + }, + combine: { + threshold: -1, // percentage at which to combine little slices into one larger slice + color: null, // color to give the new slice (auto-generated if null) + label: 'Other', // label to give the new slice + }, + highlight: { + // color: "#fff", // will add this functionality once parseColor is available + opacity: 0.5, + }, + }, + }, + }; + + $.plot.plugins.push({ + init, + options, + name: 'pie', + version: '1.1', + }); +}(jQuery)); diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.resize.js b/components/ILIAS/Chart/resources/jquery.flot.resize.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.resize.js rename to components/ILIAS/Chart/resources/jquery.flot.resize.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.resize.min.js b/components/ILIAS/Chart/resources/jquery.flot.resize.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.resize.min.js rename to components/ILIAS/Chart/resources/jquery.flot.resize.min.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.spider.js b/components/ILIAS/Chart/resources/jquery.flot.spider.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.spider.js rename to components/ILIAS/Chart/resources/jquery.flot.spider.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.stack.js b/components/ILIAS/Chart/resources/jquery.flot.stack.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.stack.js rename to components/ILIAS/Chart/resources/jquery.flot.stack.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.stack.min.js b/components/ILIAS/Chart/resources/jquery.flot.stack.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.stack.min.js rename to components/ILIAS/Chart/resources/jquery.flot.stack.min.js diff --git a/components/ILIAS/Chatroom/Chatroom.php b/components/ILIAS/Chatroom/Chatroom.php index 10917b81b9aa..82af8a886012 100644 --- a/components/ILIAS/Chatroom/Chatroom.php +++ b/components/ILIAS/Chatroom/Chatroom.php @@ -36,5 +36,11 @@ public function init( new \ilChatroomSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "chatroom.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "iliaschat.jquery.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "chatroom.css"); } } diff --git a/components/ILIAS/Chatroom/README.md b/components/ILIAS/Chatroom/README.md index 26717f1c283b..ab7c1535584f 100755 --- a/components/ILIAS/Chatroom/README.md +++ b/components/ILIAS/Chatroom/README.md @@ -324,7 +324,7 @@ The following is the command to start a chat server for a single client. ```bash cd [ILIAS_ROOT_DIRECTORY] -node Modules/Chatroom/chat/chat.js \ +node Modules/Chatroom/resources/chatroom.js \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID]/chatroom/server.cfg \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID]/chatroom/client.cfg & ``` @@ -335,7 +335,7 @@ The following shows the command that can be used to start a multi-client chat se ```bash cd [ILIAS_ROOT_DIRECTORY] -node Modules/Chatroom/chat/chat.js \ +node Modules/Chatroom/resources/chatroom.js \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[ANY_CLIENT_ID]/chatroom/server.cfg \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID_1]/chatroom/client.cfg \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID_2]/chatroom/client.cfg ... & diff --git a/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php b/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php index b7155c0cd348..6bfed23fdd1c 100755 --- a/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php +++ b/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php @@ -78,11 +78,11 @@ public function joinWithCustomName(): void */ private function setupTemplate(): void { - $this->mainTpl->addJavaScript('components/ILIAS/Chatroom/js/chat.js'); - $this->mainTpl->addJavaScript('components/ILIAS/Chatroom/js/iliaschat.jquery.js'); - $this->mainTpl->addJavaScript('./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js'); + $this->mainTpl->addJavaScript('assets/js/chatroom.js'); + $this->mainTpl->addJavaScript('assets/js/iliaschat.jquery.js'); + $this->mainTpl->addJavaScript('assets/js/AdvancedSelectionList.js'); - $this->mainTpl->addCss('components/ILIAS/Chatroom/templates/default/style.css'); + $this->mainTpl->addCss('assets/css/chatroom.css'); $this->mainTpl->setPermanentLink($this->gui->getObject()->getType(), $this->gui->getObject()->getRefId()); } diff --git a/components/ILIAS/Chatroom/templates/default/style.css b/components/ILIAS/Chatroom/resources/chatroom.css similarity index 100% rename from components/ILIAS/Chatroom/templates/default/style.css rename to components/ILIAS/Chatroom/resources/chatroom.css diff --git a/components/ILIAS/Chatroom/js/chat.js b/components/ILIAS/Chatroom/resources/chatroom.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chatroom/js/chat.js rename to components/ILIAS/Chatroom/resources/chatroom.js diff --git a/components/ILIAS/Chatroom/js/iliaschat.jquery.js b/components/ILIAS/Chatroom/resources/iliaschat.jquery.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chatroom/js/iliaschat.jquery.js rename to components/ILIAS/Chatroom/resources/iliaschat.jquery.js diff --git a/components/ILIAS/Component/Component.php b/components/ILIAS/Component/Component.php index a69870fb6ff8..256f16c4b471 100644 --- a/components/ILIAS/Component/Component.php +++ b/components/ILIAS/Component/Component.php @@ -36,7 +36,11 @@ public function init( $contribute[\ILIAS\Setup\Agent::class] = fn() => new \ilComponentsSetupAgent( - $pull[\ILIAS\Refinery\Factory::class] + $internal[Component\Resource\PublicAssetManager::class], + $seek[Component\Resource\PublicAsset::class] ); + + $internal[Component\Resource\PublicAssetManager::class] = fn() => + new Component\Resource\PublicAssetManager(); } } diff --git a/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php b/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php index 259e4a536341..1eb35cc584e2 100755 --- a/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php +++ b/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php @@ -35,7 +35,7 @@ public function getHash(): string */ public function getLabel(): string { - return "ilComponentRepository is initialized and stored into the environment."; + return "ilComponentRepository (with database) is initialized and stored into the environment."; } /** diff --git a/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php b/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php index 6d91aa36877c..5c58bb667478 100755 --- a/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php +++ b/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php @@ -21,11 +21,19 @@ use ILIAS\Setup; use ILIAS\Refinery\Transformation; +use ILIAS\Component\Resource\PublicAssetManager; +use ILIAS\Component\Setup\PublicAssetsBuildObjective; class ilComponentsSetupAgent implements Setup\Agent { use Setup\Agent\HasNoNamedObjective; + public function __construct( + protected PublicAssetManager $public_asset_manager, + protected array $public_assets + ) { + } + /** * @inheritdoc */ @@ -71,10 +79,18 @@ public function getUpdateObjective(Setup\Config $config = null): Setup\Objective public function getBuildObjective(): Setup\Objective { return new Setup\ObjectiveCollection( - "Artifacts for Services/Component", + "Build Objectives of \\ILIAS\\Component", false, - new ilComponentBuildComponentInfoObjective(), - new ilComponentBuildPluginInfoObjective() + new Setup\ObjectiveCollection( + "Artifacts for \\ILIAS\\Component", + false, + new ilComponentBuildComponentInfoObjective(), + new ilComponentBuildPluginInfoObjective() + ), + new PublicAssetsBuildObjective( + $this->public_asset_manager, + $this->public_assets + ) ); } diff --git a/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php b/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php index 21b665ae1e81..702d974dcb7e 100755 --- a/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php +++ b/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php @@ -35,7 +35,7 @@ public function getHash(): string */ public function getLabel(): string { - return "ilComponentRepository is initialized and stored into the environment."; + return "ilComponentRepository (static) is initialized and stored into the environment."; } /** diff --git a/components/ILIAS/Component/src/Resource/ComponentCSS.php b/components/ILIAS/Component/src/Resource/ComponentCSS.php new file mode 100644 index 000000000000..986a29055495 --- /dev/null +++ b/components/ILIAS/Component/src/Resource/ComponentCSS.php @@ -0,0 +1,40 @@ +source)) { + throw new \InvalidArgumentException( + "'{$this->source}' is not a valid source path for a public asset." + ); + } + } + + public function getSource(): string + { + return "node_modules/{$this->source}"; + } + + public function getTarget(): string + { + $source = explode("/", $this->source); + if (str_ends_with($this->source, ".js")) { + return ComponentJS::TARGET . "/" . array_pop($source); + } + if (str_ends_with($this->source, ".css")) { + return ComponentCSS::TARGET . "/" . array_pop($source); + } + throw new \LogicException("Don't know where to put {$this->source}"); + } +} diff --git a/components/ILIAS/Component/src/Resource/OfComponent.php b/components/ILIAS/Component/src/Resource/OfComponent.php new file mode 100644 index 000000000000..694c497e893f --- /dev/null +++ b/components/ILIAS/Component/src/Resource/OfComponent.php @@ -0,0 +1,68 @@ +source)) { + throw new \InvalidArgumentException( + "'{$this->source}' is not a valid source path for a public asset." + ); + } + if (!preg_match(self::REGEXP_TARGET, $this->target)) { + throw new \InvalidArgumentException( + "'{$this->target}' is not a valid target path for a public asset." + ); + } + } + + public function getSource(): string + { + list($vendor, $component) = explode("\\", get_class($this->component)); + + return "components/$vendor/$component/resources/{$this->source}"; + } + + public function getTarget(): string + { + $source = explode("/", $this->source); + if ($this->target === ".") { + return array_pop($source); + } + return $this->target . "/" . array_pop($source); + } +} diff --git a/components/ILIAS/Component/src/Resource/PublicAsset.php b/components/ILIAS/Component/src/Resource/PublicAsset.php new file mode 100644 index 000000000000..9a9956498e4e --- /dev/null +++ b/components/ILIAS/Component/src/Resource/PublicAsset.php @@ -0,0 +1,32 @@ +insertInto($this->assets, explode("/", $asset->getTarget()), $asset); + } + } + + protected function insertInto(array &$assets, array $path, PublicAsset $asset): void + { + $key = array_shift($path); + $key_exists = array_key_exists($key, $assets); + $target_reached = count($path) === 0; + + if (!$key_exists && $target_reached) { + $assets[$key] = $asset; + return; + } + + if (!$target_reached && (!$key_exists || is_array($assets[$key]))) { + if (!$key_exists) { + $assets[$key] = []; + } + $this->insertInto($assets[$key], $path, $asset); + return; + } + + $first_asset = $assets[$key]; + while(!$first_asset instanceof PublicAsset) { + $first_asset = array_shift($first_asset); + } + + throw new \LogicException( + "There are (at least) two assets for the same target '{$asset->getTarget()}': " . + "'{$first_asset->getSource()}' and '{$asset->getSource()}'" + ); + } + + /** + * @param string $ilias_base full path to ILIAS base folder + * @param string $target full path to public folder + */ + public function buildPublicFolder(string $ilias_base, string $target): void + { + if (!preg_match(self::REGEXP, $ilias_base)) { + throw new \InvalidArgumentException( + "'{$ilias_base}' is not a valid path to ILIAS base folder." + ); + } + if (!preg_match(self::REGEXP, $target)) { + throw new \InvalidArgumentException( + "'{$target}' is not a valid target path for public assets." + ); + } + + $this->purge($target, array_map(fn($v) => $target . "/" . $v, self::DONT_PURGE)); + $this->makeDir($target); + $this->buildPublicFolderRecursivelyArray($ilias_base, $target, $this->assets); + } + + protected function buildPublicFolderRecursively(string $ilias_base, string $target, PublicAsset|array $asset): void + { + if (is_array($asset)) { + $this->makeDir("$target"); + $this->buildPublicFolderRecursivelyArray($ilias_base, $target, $asset); + } else { + $targets = explode("/", $asset->getTarget()); + $this->copy("$ilias_base/{$asset->getSource()}", "$target"); + } + } + + protected function buildPublicFolderRecursivelyArray(string $ilias_base, string $target, array $assets): void + { + foreach ($assets as $key => $asset) { + $this->buildPublicFolderRecursively($ilias_base, "$target/$key", $asset); + } + } + + protected function copy(string $source, string $target): void + { + if (is_file($source)) { + copy($source, $target); + } elseif (is_dir($source)) { + $dir = new \RecursiveDirectoryIterator($source, \FilesystemIterator::SKIP_DOTS); + $this->makeDir($target); + foreach($dir as $d) { + $name = $d->getBasename(); + $this->copy("$source/$name", "$target/$name"); + } + } else { + throw new \RuntimeException( + "Cannot copy $source, not a file or directory." + ); + } + } + + protected function purge(string $path, array $dont_purge): bool + { + if (in_array($path, $dont_purge)) { + return false; + } + + if (!file_exists($path)) { + return true; + } + + if (is_file($path)) { + unlink($path); + return true; + } + + if (is_dir($path)) { + $purged = true; + foreach(array_diff(scandir($path), ['.', '..']) as $item) { + $purged = $this->purge($path . "/" . $item, $dont_purge) && $purged; + } + if ($purged) { + rmdir($path); + } + return $purged; + } + + throw new \LogicException("Don't know how to purge $path"); + } + + protected function makeDir(string $path): void + { + if (!file_exists($path)) { + mkdir($path, 0755); + } + } +} diff --git a/components/ILIAS/Component/src/Setup/PublicAssetsBuildObjective.php b/components/ILIAS/Component/src/Setup/PublicAssetsBuildObjective.php new file mode 100644 index 000000000000..e6403d57ada1 --- /dev/null +++ b/components/ILIAS/Component/src/Setup/PublicAssetsBuildObjective.php @@ -0,0 +1,70 @@ +public_asset_manager->addAssets(...$this->public_assets); + $this->public_asset_manager->buildPublicFolder($base_dir, $target); + + return $environment; + } + + public function isApplicable(Setup\Environment $environment): bool + { + return true; + } + +} diff --git a/components/ILIAS/Component/tests/Resource/ComponentResourceTest.php b/components/ILIAS/Component/tests/Resource/ComponentResourceTest.php new file mode 100644 index 000000000000..3012f5f51590 --- /dev/null +++ b/components/ILIAS/Component/tests/Resource/ComponentResourceTest.php @@ -0,0 +1,94 @@ +assertEquals("some/target/asset.png", $public_asset->getTarget()); + } + + public function testTarget2() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "directory/asset.png", + "some/target" + ); + + $this->assertEquals("some/target/asset.png", $public_asset->getTarget()); + } + + public function testTarget3() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "directory/asset.png", + "some/target" + ); + + $this->assertEquals("some/target/asset.png", $public_asset->getTarget()); + } + + public function testHtaccessIsAllowedAsSource() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + ".htaccess", + "target" + ); + + $this->assertTrue(true); + } + + public function testDotIsAllowedAsTarget() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "foo.php", + "." + ); + + $this->assertTrue(true); + } + + public function testSource() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "directory/asset.png", + "some/target" + ); + + $this->assertEquals("components/ILIAS/Component/resources/directory/asset.png", $public_asset->getSource()); + } +} diff --git a/components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php b/components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php new file mode 100644 index 000000000000..bf1b8b4bb999 --- /dev/null +++ b/components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php @@ -0,0 +1,128 @@ +source; + } + + public function getTarget(): string + { + return $this->target; + } + }; + } + + public function setUp(): void + { + $this->manager = new class () extends R\PublicAssetManager { + public $copied = []; + public $purged = []; + public $madeDir = []; + + protected function copy(string $source, $target): void + { + $this->copied[] = [$source, $target]; + } + + protected function purge(string $path, array $dont_purge): bool + { + $this->purged[] = $path; + return true; + } + + protected function makeDir(string $path): void + { + $this->madeDir[] = $path; + } + }; + } + + public function testTargetCanOnlyBeUsedOnce() + { + $this->expectException(\LogicException::class); + + $asset1 = $this->newPublicAsset("some/source", "target"); + $asset2 = $this->newPublicAsset("some/other/source", "target"); + + $this->manager->addAssets($asset1, $asset2); + } + + public function testTargetCanNotBeWithinOtherTarget1() + { + $this->expectException(\LogicException::class); + + $asset1 = $this->newPublicAsset("some/source", "target"); + $asset2 = $this->newPublicAsset("some/other/source", "target/sub"); + + $this->manager->addAssets($asset1, $asset2); + } + + public function testTargetCanNotBeWithinOtherTarget2() + { + $this->expectException(\LogicException::class); + + $asset1 = $this->newPublicAsset("some/source", "target/sub"); + $asset2 = $this->newPublicAsset("some/other/source", "target"); + + $this->manager->addAssets($asset1, $asset2); + } + + public function testBuildAssetFolderEmpty() + { + $this->manager->buildPublicFolder("/base", "/target"); + $this->assertEquals([], $this->manager->copied); + $this->assertEquals(["/target"], $this->manager->purged); + $this->assertEquals(["/target"], $this->manager->madeDir); + } + + public function testBuildAssetFolder() + { + $this->manager->addAssets( + $this->newPublicAsset("source1", "target1"), + $this->newPublicAsset("source2", "second/target") + ); + + $this->manager->buildPublicFolder("/base", "/public"); + + $this->assertEquals(["/public"], $this->manager->purged); + $this->assertEquals(["/public", "/public/second"], $this->manager->madeDir); + $this->assertEquals([["/base/source1", "/public/target1"], ["/base/source2", "/public/second/target"]], $this->manager->copied); + } +} diff --git a/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php b/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php index ecd1cbe358b2..a5fdcadaf11c 100755 --- a/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php +++ b/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php @@ -67,7 +67,7 @@ public static function initializeFrontend(ilGlobalTemplateInterface $page): void ) { $DIC->language()->loadLanguageModule('buddysystem'); - $page->addJavaScript('./components/ILIAS/Contact/BuddySystem/js/buddy_system.js'); + $page->addJavaScript('./assets/js/buddy_system.js'); $config = new stdClass(); $config->http_post_url = $DIC->ctrl()->getFormActionByClass([ diff --git a/components/ILIAS/Contact/Contact.php b/components/ILIAS/Contact/Contact.php index e04b5d92ca2f..746cf07cc47c 100644 --- a/components/ILIAS/Contact/Contact.php +++ b/components/ILIAS/Contact/Contact.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "buddy_system.js"); } } diff --git a/public/components/ILIAS/Contact/BuddySystem/js/buddy_system.js b/components/ILIAS/Contact/resources/buddy_system.js similarity index 100% rename from public/components/ILIAS/Contact/BuddySystem/js/buddy_system.js rename to components/ILIAS/Contact/resources/buddy_system.js diff --git a/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php b/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php index a197e4dad93a..addebb227743 100755 --- a/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php +++ b/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php @@ -124,7 +124,7 @@ public function getHTML(): string return ""; } - $tpl->addJavaScript("components/ILIAS/Container/Classification/js/ilClassification.js"); + $tpl->addJavaScript("assets/js/ilClassification.js"); return parent::getHTML(); } diff --git a/components/ILIAS/Container/Container.php b/components/ILIAS/Container/Container.php index 7ae009734100..3f3091917d7d 100644 --- a/components/ILIAS/Container/Container.php +++ b/components/ILIAS/Container/Container.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Container.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilClassification.js"); } } diff --git a/components/ILIAS/Container/Content/class.ilContainerContentGUI.php b/components/ILIAS/Container/Content/class.ilContainerContentGUI.php index eefd327c507d..8dab910de8b3 100755 --- a/components/ILIAS/Container/Content/class.ilContainerContentGUI.php +++ b/components/ILIAS/Container/Content/class.ilContainerContentGUI.php @@ -89,7 +89,7 @@ public function __construct( $obj = $this->container_gui->getObject(); $this->container_obj = $obj; - $tpl->addJavaScript("./components/ILIAS/Container/js/Container.js"); + $tpl->addJavaScript("assets/js/Container.js"); $this->log = ilLoggerFactory::getLogger('cont'); diff --git a/components/ILIAS/Container/js/Container.js b/components/ILIAS/Container/resources/Container.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Container/js/Container.js rename to components/ILIAS/Container/resources/Container.js diff --git a/components/ILIAS/Container/Classification/js/ilClassification.js b/components/ILIAS/Container/resources/ilClassification.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Container/Classification/js/ilClassification.js rename to components/ILIAS/Container/resources/ilClassification.js diff --git a/components/ILIAS/CopyWizard/CopyWizard.php b/components/ILIAS/CopyWizard/CopyWizard.php index 4ae74416e65e..0fd325108a32 100644 --- a/components/ILIAS/CopyWizard/CopyWizard.php +++ b/components/ILIAS/CopyWizard/CopyWizard.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilContainer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilCopyRedirection.js"); } } diff --git a/components/ILIAS/CopyWizard/js/ilContainer.js b/components/ILIAS/CopyWizard/resources/ilContainer.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/CopyWizard/js/ilContainer.js rename to components/ILIAS/CopyWizard/resources/ilContainer.js diff --git a/components/ILIAS/CopyWizard/js/ilCopyRedirection.js b/components/ILIAS/CopyWizard/resources/ilCopyRedirection.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/CopyWizard/js/ilCopyRedirection.js rename to components/ILIAS/CopyWizard/resources/ilCopyRedirection.js diff --git a/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php b/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php index eede8f5fc286..fe825fa9fcd3 100755 --- a/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php +++ b/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php @@ -159,7 +159,7 @@ public function getViewForm(string $mode): ?StandardForm public function getViewSectionSorting(int $view, string $title): Section { - $this->tpl->addJavaScript('components/ILIAS/Dashboard/Administration/js/SortationUserInputHandler.js'); + $this->tpl->addJavaScript("assets/js/SortationUserInputHandler.js"); $lng = $this->lng; $availabe_sort_options = $this->viewSettings->getAvailableSortOptionsByView($view); $options = array_reduce( diff --git a/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php b/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php index ef2e1f33904e..651d8eb6b7a5 100755 --- a/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php +++ b/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php @@ -169,7 +169,7 @@ public function init(): void $this->lng->loadLanguageModule('rep'); $this->lng->loadLanguageModule('pd'); $this->initViewSettings(); - $this->main_tpl->addJavaScript('components/ILIAS/Dashboard/Block/js/ReplaceModalContent.js'); + $this->main_tpl->addJavaScript('assets/js/ReplaceModalContent.js'); $this->viewSettings->parse(); $this->requested_item_ref_id = (int) ($this->http->request()->getQueryParams()['item_ref_id'] ?? 0); $this->initData(); diff --git a/components/ILIAS/Dashboard/Dashboard.php b/components/ILIAS/Dashboard/Dashboard.php index 641518aaf384..8c695e9a4c85 100644 --- a/components/ILIAS/Dashboard/Dashboard.php +++ b/components/ILIAS/Dashboard/Dashboard.php @@ -36,5 +36,10 @@ public function init( new \ILIAS\Dashboard\Setup\ilDashboardUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ReplaceModalContent.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "SortationUserInputHandler.js"); } } diff --git a/public/components/ILIAS/Dashboard/Block/js/ReplaceModalContent.js b/components/ILIAS/Dashboard/resources/ReplaceModalContent.js similarity index 100% rename from public/components/ILIAS/Dashboard/Block/js/ReplaceModalContent.js rename to components/ILIAS/Dashboard/resources/ReplaceModalContent.js diff --git a/components/ILIAS/Dashboard/Administration/js/SortationUserInputHandler.js b/components/ILIAS/Dashboard/resources/SortationUserInputHandler.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Dashboard/Administration/js/SortationUserInputHandler.js rename to components/ILIAS/Dashboard/resources/SortationUserInputHandler.js diff --git a/components/ILIAS/DataCollection/DataCollection.php b/components/ILIAS/DataCollection/DataCollection.php index 05ebe065e048..e2067aee703f 100644 --- a/components/ILIAS/DataCollection/DataCollection.php +++ b/components/ILIAS/DataCollection/DataCollection.php @@ -36,5 +36,9 @@ public function init( new \ilDataCollectionSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "datacollection.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "generic_multi_line_input.js"); } } diff --git a/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php b/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php index 218fe45d23ed..4298334824b9 100755 --- a/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php +++ b/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php @@ -175,7 +175,7 @@ public function renderRecord(bool $editComments = false): void ); $html = $pageObj->getHTML(); - $rctpl->addCss("../components/ILIAS/COPage/css/content.css"); + $rctpl->addCss("./assets/css/content.css"); $rctpl->fillCssFiles(); $table = ilDclCache::getTableCache($this->record_obj->getTableId()); foreach ($table->getRecordFields() as $field) { diff --git a/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php b/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php index d282d4323aa5..82c95dd5409a 100755 --- a/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php +++ b/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php @@ -357,7 +357,7 @@ public function insert(ilTemplate $a_tpl): void if ($this->getMulti()) { $output = '
    ' . $output . '
    '; - $this->global_tpl->addJavaScript('components/ILIAS/DataCollection/js/generic_multi_line_input.js'); + $this->global_tpl->addJavaScript('assets/js/generic_multi_line_input.js'); $id = $this->getFieldId(); $element_config = json_encode($this->input_options); $options = json_encode(['limit' => $this->limit, diff --git a/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php b/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php index 7285b07a9239..d50eb6a5d3ba 100755 --- a/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php +++ b/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php @@ -184,17 +184,17 @@ private function getMessageTextForType(string $m): string * List of JS-Files that should be included. * @var array */ - protected array $js_files = [0 => "./components/ILIAS/JavaScript/js/Basic.js"]; + protected array $js_files = [0 => "assets/js/Basic.js"]; /** * Stores if a version parameter should be appended to the js-file to force reloading. * @var array */ - protected array $js_files_vp = ["./components/ILIAS/JavaScript/js/Basic.js" => true]; + protected array $js_files_vp = ["assets/js/Basic.js" => true]; /** * Stores the order in which js-files should be included. * @var array */ - protected array $js_files_batch = ["./components/ILIAS/JavaScript/js/Basic.js" => 1]; + protected array $js_files_batch = ["assets/js/Basic.js" => 1]; /** * Add a javascript file that should be included in the header. diff --git a/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php b/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php index 5a5dd3ddb4f5..d4afd46715f0 100755 --- a/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php +++ b/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php @@ -98,8 +98,8 @@ private function addJavaScript(): void ilYuiUtil::initConnection(); ilOverlayGUI::initJavascript(); // # see https://mantis.ilias.de/view.php?id=26463 - $this->tpl->addJavaScript("./components/ILIAS/UIComponent/Modal/js/Modal.js"); - $this->tpl->addJavaScript("components/ILIAS/DataCollection/js/datacollection.js"); + $this->tpl->addJavaScript("assets/js/Modal.js"); + $this->tpl->addJavaScript("assets/js/datacollection.js"); } public function getStandardCmd(): string diff --git a/components/ILIAS/DataCollection/js/datacollection.js b/components/ILIAS/DataCollection/resources/datacollection.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/DataCollection/js/datacollection.js rename to components/ILIAS/DataCollection/resources/datacollection.js diff --git a/components/ILIAS/DataCollection/js/generic_multi_line_input.js b/components/ILIAS/DataCollection/resources/generic_multi_line_input.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/DataCollection/js/generic_multi_line_input.js rename to components/ILIAS/DataCollection/resources/generic_multi_line_input.js diff --git a/components/ILIAS/Exercise/Exercise.php b/components/ILIAS/Exercise/Exercise.php index 935c65157254..86ff9d8064ae 100644 --- a/components/ILIAS/Exercise/Exercise.php +++ b/components/ILIAS/Exercise/Exercise.php @@ -36,5 +36,13 @@ public function init( new \ilExerciseSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcIDl.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcPresentation.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcPeerReview.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcManagement.js"); } } diff --git a/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php b/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php index 6ecab5885deb..fabeda3d0469 100755 --- a/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php +++ b/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php @@ -57,7 +57,7 @@ public function addToPeerReviewForm($a_value = null): void $tpl = $this->tpl; $ilCtrl = $this->ctrl; - $tpl->addJavaScript("components/ILIAS/Exercise/js/ilExcPeerReview.js"); + $tpl->addJavaScript("assets/js/ilExcPeerReview.js"); $tpl->addOnLoadCode("il.ExcPeerReview.setAjax('" . $ilCtrl->getLinkTargetByClass("ilExPeerReviewGUI", "updateCritAjax", "", true, false) . "')"); diff --git a/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php b/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php index 52fc7bbc49f7..a6919a35d605 100755 --- a/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php +++ b/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php @@ -657,7 +657,7 @@ public function render(): string $url = $ilCtrl->getLinkTarget($this->getParentObject(), "saveCommentForLearners", "", true, false); - $tpl->addJavaScript("components/ILIAS/Exercise/js/ilExcManagement.js"); + $tpl->addJavaScript("assets/js/ilExcManagement.js"); $tpl->addOnLoadCode('il.ExcManagement.init("' . $url . '");'); return parent::render() . diff --git a/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php b/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php index a45019d3834c..f6f7ca0c6b7e 100755 --- a/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php +++ b/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php @@ -1950,7 +1950,7 @@ protected function initIndividualDeadlineModal(): string $ajax_url = $this->ctrl->getLinkTarget($this, "handleIndividualDeadlineCalls", "", true, false); - $tpl->addJavaScript("./components/ILIAS/Exercise/js/ilExcIDl.js", true, 3); + $tpl->addJavaScript("assets/js/ilExcIDl.js", true, 3); $tpl->addOnLoadCode('il.ExcIDl.init("' . $ajax_url . '");'); ilCalendarUtil::initDateTimePicker(); diff --git a/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php b/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php index 9e05989cadc3..350f9a0d45fc 100755 --- a/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php +++ b/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php @@ -896,7 +896,7 @@ public function showOverviewObject(): void return; } - //$tpl->addJavaScript("./components/ILIAS/Exercise/js/ilExcPresentation.js"); + //$tpl->addJavaScript("assets/js/ilExcPresentation.js"); $exc = $this->object; diff --git a/components/ILIAS/Exercise/js/ilExcIDl.js b/components/ILIAS/Exercise/resources/ilExcIDl.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcIDl.js rename to components/ILIAS/Exercise/resources/ilExcIDl.js diff --git a/components/ILIAS/Exercise/js/ilExcManagement.js b/components/ILIAS/Exercise/resources/ilExcManagement.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcManagement.js rename to components/ILIAS/Exercise/resources/ilExcManagement.js diff --git a/components/ILIAS/Exercise/js/ilExcPeerReview.js b/components/ILIAS/Exercise/resources/ilExcPeerReview.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcPeerReview.js rename to components/ILIAS/Exercise/resources/ilExcPeerReview.js diff --git a/components/ILIAS/Exercise/js/ilExcPresentation.js b/components/ILIAS/Exercise/resources/ilExcPresentation.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcPresentation.js rename to components/ILIAS/Exercise/resources/ilExcPresentation.js diff --git a/components/ILIAS/Export/Export.php b/components/ILIAS/Export/Export.php index f1dc35f92353..af290a7ca9f1 100644 --- a/components/ILIAS/Export/Export.php +++ b/components/ILIAS/Export/Export.php @@ -32,6 +32,5 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... } } diff --git a/components/ILIAS/Export/Print/class.PrintProcessGUI.php b/components/ILIAS/Export/Print/class.PrintProcessGUI.php index 236f8c6f4a51..0ea74ea93dba 100755 --- a/components/ILIAS/Export/Print/class.PrintProcessGUI.php +++ b/components/ILIAS/Export/Print/class.PrintProcessGUI.php @@ -89,7 +89,7 @@ public function getModalElements( $ui = $this->ui; $lng = $this->lng; - $ui->mainTemplate()->addJavaScript("./components/ILIAS/Form/js/Form.js"); + $ui->mainTemplate()->addJavaScript("assets/js/Form.js"); $modal = $ui->factory()->modal()->roundtrip( $this->lng->txt("exp_print_pdf"), $ui->factory()->legacy('some modal') diff --git a/components/ILIAS/Export/classes/class.ilExportGUI.php b/components/ILIAS/Export/classes/class.ilExportGUI.php index 50a0a2155ff5..3fb3a4199bc3 100755 --- a/components/ILIAS/Export/classes/class.ilExportGUI.php +++ b/components/ILIAS/Export/classes/class.ilExportGUI.php @@ -383,7 +383,7 @@ public function handleCustomMultiCommand(): void */ protected function showItemSelection(): void { - $this->tpl->addJavaScript('./components/ILIAS/CopyWizard/js/ilContainer.js'); + $this->tpl->addJavaScript('assets/js/ilContainer.js'); $this->tpl->setVariable('BODY_ATTRIBUTES', 'onload="ilDisableChilds(\'cmd\');"'); $table = new ilExportSelectionTableGUI($this, 'listExportFiles'); diff --git a/components/ILIAS/Feeds/Feeds.php b/components/ILIAS/Feeds/Feeds.php index 0d931aef436d..2894dfeec92b 100644 --- a/components/ILIAS/Feeds/Feeds.php +++ b/components/ILIAS/Feeds/Feeds.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "privfeed.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "feed.php"); } } diff --git a/public/feed.php b/components/ILIAS/Feeds/resources/feed.php old mode 100755 new mode 100644 similarity index 99% rename from public/feed.php rename to components/ILIAS/Feeds/resources/feed.php index 2259db7d2e42..4a21d2772e80 --- a/public/feed.php +++ b/components/ILIAS/Feeds/resources/feed.php @@ -48,4 +48,4 @@ $writer->showFeed(); } elseif ($requested_blog_id > 0) { ilObjBlog::deliverRSS($requested_blog_id); -} +} \ No newline at end of file diff --git a/public/privfeed.php b/components/ILIAS/Feeds/resources/privfeed.php old mode 100755 new mode 100644 similarity index 92% rename from public/privfeed.php rename to components/ILIAS/Feeds/resources/privfeed.php index 4892448afb70..a7e7ad4785c0 --- a/public/privfeed.php +++ b/components/ILIAS/Feeds/resources/privfeed.php @@ -3,11 +3,11 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* News feed script. -* -* @author Alex Killing -* @version $Id$ -*/ + * News feed script. + * + * @author Alex Killing + * @version $Id$ + */ ilContext::init(ilContext::CONTEXT_RSS_AUTH); @@ -25,8 +25,8 @@ exit; } else { if ($_GET["user_id"] != "" && ilObjUser::_getFeedPass($_GET["user_id"]) != "" && - (md5($_SERVER['PHP_AUTH_PW']) == ilObjUser::_getFeedPass($_GET["user_id"]) && - $_SERVER['PHP_AUTH_USER'] == ilObjUser::_lookupLogin($_GET["user_id"])) + (md5($_SERVER['PHP_AUTH_PW']) == ilObjUser::_getFeedPass($_GET["user_id"]) && + $_SERVER['PHP_AUTH_USER'] == ilObjUser::_lookupLogin($_GET["user_id"])) && $feed_set->get("enable_private_feed")) { include_once("./Services/Feeds/classes/class.ilUserFeedWriter.php"); // Third parameter is true for private feed @@ -84,4 +84,4 @@ $blankFeedWriter->addItem($feed_item); $blankFeedWriter->showFeed(); } -} +} \ No newline at end of file diff --git a/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php b/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php index 3659821db037..e967744559be 100755 --- a/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php +++ b/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php @@ -29,7 +29,7 @@ */ class ilObjFileDefaultIconsObjective implements \ILIAS\Setup\Objective { - private const PATH_DEFAULT_ICON_DIR = __DIR__ . "/../../../../../public/templates/default/images/default_file_icons/"; + private const PATH_DEFAULT_ICON_DIR = __DIR__ . "/../../../../../public/assets/images/default_file_icons/"; public function __construct( private bool $reset_default = false, diff --git a/components/ILIAS/FileDelivery/FileDelivery.php b/components/ILIAS/FileDelivery/FileDelivery.php index 6c5a004f398c..c09dbef87ad8 100644 --- a/components/ILIAS/FileDelivery/FileDelivery.php +++ b/components/ILIAS/FileDelivery/FileDelivery.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\FileDelivery\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "deliver.php"); } } diff --git a/public/deliver.php b/components/ILIAS/FileDelivery/resources/deliver.php similarity index 100% rename from public/deliver.php rename to components/ILIAS/FileDelivery/resources/deliver.php diff --git a/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php b/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php index 68c465998f18..3e1e7baf5901 100755 --- a/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php +++ b/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php @@ -111,12 +111,12 @@ public function testSaneSVG(): void private function provideSomeComplexSaneSVG(): array { return [ - [__DIR__ . '/../../../../../public/templates/default/images/media/bigplay.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/nav/jstree.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/media/loader.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/object/col.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/logo/HeaderIcon.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/object/answered_not.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/media/bigplay.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/nav/jstree.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/media/loader.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/object/col.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/logo/HeaderIcon.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/object/answered_not.svg'], ]; } diff --git a/components/ILIAS/Form/Form.php b/components/ILIAS/Form/Form.php index 1c0408182d5d..62e0e8e991a2 100644 --- a/components/ILIAS/Form/Form.php +++ b/components/ILIAS/Form/Form.php @@ -32,6 +32,19 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormWizardInput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "filewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormHierarchyForm.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormImageFileCapture.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Form.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormMulti.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "textwizard.js"); } } diff --git a/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php b/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php index ccb4c536aeb4..9ebcfc59ffc9 100755 --- a/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php @@ -231,7 +231,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $main_tpl = $this->tpl; - $main_tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $main_tpl->addJavascript("./components/ILIAS/Form/templates/default/filewizard.js"); + $main_tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + $main_tpl->addJavascript("assets/filewizard.js"); } } diff --git a/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php b/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php index 94bce4fda082..845f785c97f8 100755 --- a/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php +++ b/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php @@ -79,7 +79,7 @@ public function __construct() $this->help_items = array(); ilYuiUtil::initDragDrop(); - $this->main_tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormHierarchyForm.js"); + $this->main_tpl->addJavascript("assets/js/ServiceFormHierarchyForm.js"); $this->http = $DIC->http(); diff --git a/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php b/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php index 86bd9c2c949c..699cf381d81c 100755 --- a/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php @@ -119,7 +119,7 @@ public function insert(ilTemplate $a_tpl): void $i_tpl->setVariable("TXT_TAKE_SNAPSHOT", $lng->txt("form_take_snapshot")); $i_tpl->parseCurrentBlock(); $main_tpl = $this->tpl; - $main_tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormImageFileCapture.js"); + $main_tpl->addJavascript("assets/js/ServiceFormImageFileCapture.js"); } if ($this->getImage() != "") { diff --git a/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php b/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php index 8a08d5268318..8c876981b7d5 100755 --- a/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php +++ b/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php @@ -492,8 +492,8 @@ public function getContent(): string ilYuiUtil::initEvent(); ilYuiUtil::initDom(); - $tpl->addJavaScript("./components/ILIAS/JavaScript/js/Basic.js"); - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); + $tpl->addJavaScript("assets/js/Basic.js"); + $tpl->addJavaScript("assets/js/Form.js"); $this->tpl = new ilTemplate("tpl.property_form.html", true, true, "components/ILIAS/Form"); @@ -645,7 +645,7 @@ public function insertItem( //if(method_exists($item, "getMulti") && $item->getMulti()) if ($item instanceof ilMultiValuesItem && $item->getMulti()) { - $tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormMulti.js"); + $tpl->addJavascript("assets/js/ServiceFormMulti.js"); $this->tpl->setCurrentBlock("multi_in"); $this->tpl->setVariable("ID", $item->getFieldId()); diff --git a/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php b/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php index b95016d7ff07..4c4dd590dc61 100755 --- a/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php @@ -167,7 +167,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $tpl = $this->tpl; - $tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $tpl->addJavascript("./components/ILIAS/Form/templates/default/textwizard.js"); + $tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + $tpl->addJavascript("assets/js/textwizard.js"); } } diff --git a/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php b/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php index da10db68e70b..46ab0eaa0b2a 100755 --- a/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php @@ -150,8 +150,8 @@ public function render(string $a_mode = ""): string $tpl->setVariable("ELEMENT_ID", $this->getFieldId()); if (!$this->getDisabled()) { - $this->tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $this->tpl->addJavascript("./components/ILIAS/Form/templates/default/textwizard.js"); + $this->tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + $this->tpl->addJavascript("assets/js/textwizard.js"); } return $tpl->get(); diff --git a/components/ILIAS/Form/js/Form.js b/components/ILIAS/Form/resources/Form.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/Form.js rename to components/ILIAS/Form/resources/Form.js diff --git a/components/ILIAS/Form/js/ServiceFormHierarchyForm.js b/components/ILIAS/Form/resources/ServiceFormHierarchyForm.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormHierarchyForm.js rename to components/ILIAS/Form/resources/ServiceFormHierarchyForm.js diff --git a/components/ILIAS/Form/js/ServiceFormImageFileCapture.js b/components/ILIAS/Form/resources/ServiceFormImageFileCapture.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormImageFileCapture.js rename to components/ILIAS/Form/resources/ServiceFormImageFileCapture.js diff --git a/components/ILIAS/Form/js/ServiceFormMulti.js b/components/ILIAS/Form/resources/ServiceFormMulti.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormMulti.js rename to components/ILIAS/Form/resources/ServiceFormMulti.js diff --git a/components/ILIAS/Form/js/ServiceFormWizardInput.js b/components/ILIAS/Form/resources/ServiceFormWizardInput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormWizardInput.js rename to components/ILIAS/Form/resources/ServiceFormWizardInput.js diff --git a/components/ILIAS/Form/templates/default/filewizard.js b/components/ILIAS/Form/resources/filewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/templates/default/filewizard.js rename to components/ILIAS/Form/resources/filewizard.js diff --git a/components/ILIAS/Form/templates/default/textwizard.js b/components/ILIAS/Form/resources/textwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/templates/default/textwizard.js rename to components/ILIAS/Form/resources/textwizard.js diff --git a/components/ILIAS/Forum/Forum.php b/components/ILIAS/Forum/Forum.php index fba2781c4374..85abed9df536 100644 --- a/components/ILIAS/Forum/Forum.php +++ b/components/ILIAS/Forum/Forum.php @@ -36,5 +36,7 @@ public function init( new \ilForumSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "autosave_forum.js"); } } diff --git a/components/ILIAS/Forum/classes/class.ilObjForumGUI.php b/components/ILIAS/Forum/classes/class.ilObjForumGUI.php index 2df2ef7e5e21..050aaa47eb1a 100755 --- a/components/ILIAS/Forum/classes/class.ilObjForumGUI.php +++ b/components/ILIAS/Forum/classes/class.ilObjForumGUI.php @@ -110,7 +110,7 @@ public function __construct($data, int $id = 0, bool $call_by_reference = true, $this->type = 'frm'; parent::__construct($data, $id, $call_by_reference, false); - $this->tpl->addJavaScript('./components/ILIAS/JavaScript/js/Basic.js'); + $this->tpl->addJavaScript('assets/js/Basic.js'); $this->lng->loadLanguageModule('forum'); $this->lng->loadLanguageModule('content'); @@ -234,7 +234,7 @@ private function decorateWithAutosave(ilPropertyFormGUI $form): void if (ilForumPostDraft::isAutoSavePostDraftAllowed()) { $interval = ilForumPostDraft::lookupAutosaveInterval(); - $this->tpl->addJavaScript('./components/ILIAS/Forum/js/autosave.js'); + $this->tpl->addJavaScript('assets/js/autosave_forum.js'); $autosave_cmd = 'autosaveDraftAsync'; if ($this->objCurrentPost->getId() === 0 && $this->objCurrentPost->getThreadId() === 0) { $autosave_cmd = 'autosaveThreadDraftAsync'; diff --git a/components/ILIAS/Forum/js/autosave.js b/components/ILIAS/Forum/js/autosave.js deleted file mode 100755 index 468dea897de3..000000000000 --- a/components/ILIAS/Forum/js/autosave.js +++ /dev/null @@ -1,104 +0,0 @@ - -(function (root, scope, factory) { - scope.ForumDraftsAutosave = factory(root, root.jQuery); -}(window, il, function(root, $) { - - "use strict"; - - var pub = {}, pro = {}, draft_as_handle = null, autosave_active = true ; - - pub.disableAutosave = function() - { - autosave_active = false; - }; - - pub.enableAutosave = function() - { - autosave_active = true; - }; - - pub.init = function(options) { - var settings = $.extend({ - interval: 1000 * 10, - url: "", - loading_img_src: "", - draft_id: 0, - selectors: { - form: "" - } - }, options), draft_id = settings.draft_id; - - var $form = $(settings.selectors.form); - - var saveDraftCallback = function saveDraftCallback() { - if (typeof tinyMCE !== "undefined") { - if (tinyMCE) tinyMCE.triggerSave(); - } - - if (autosave_active && $('#subject').val() != '' && $('#message').val() != '') { - var data = $form.serialize(); - - $form.find(".ilFrmLoadingImg").remove(); - $form.find("input[type=submit]").attr("disabled", "disabled"); - $form.find(".ilFormCmds").each(function () { - $('') - .css("paddingRight", "10px") - .insertBefore($(this).find("input[type=submit]:first")); - }); - $('#ilsaving').removeClass("ilNoDisplay"); - - il.ForumDraftsAutosave.disableAutosave(); - $.ajax({ - type: "POST", - url: settings.url, - data: data, - dataType: "json", - success: function (response) { - $form.find("input[type=submit]").attr("disabled", false); - $form.find(".ilFrmLoadingImg").remove(); - $('#ilsaving').addClass("ilNoDisplay"); - - if (typeof response.draft_id !== "undefined" && response.draft_id > 0) { - $draft_id.val(response.draft_id); - } - - il.ForumDraftsAutosave.enableAutosave(); - } - }); - } - }; - - if ($("#ilsaving").size() === 0) { - $('
    ' + il.Language.txt("saving") + '
    ').appendTo($("body")); - } - $("#ilsaving").css("zIndex", 10000); - var $draft_id = $form.find("#draft_id"); - if ($draft_id.size() === 0) { - $draft_id = $(''); - $form.append($draft_id); - } - - $(function() { - draft_as_handle = root.setInterval(saveDraftCallback, settings.interval); - - $form.on("submit", function() { - root.clearInterval(draft_as_handle); - }); - }); - }; - - return pub; -})); - -$( document ).ready(function() { - if($('.found_threat_history_to_restore').length > 0) - { - var $modal = $("#frm_autosave_restore"); - il.ForumDraftsAutosave.disableAutosave(); - $modal.modal("show"); - $modal.on('hidden.bs.modal', function () { - il.ForumDraftsAutosave.enableAutosave(); - }) - - } -}); diff --git a/components/ILIAS/Forum/resources/autosave_forum.js b/components/ILIAS/Forum/resources/autosave_forum.js new file mode 100644 index 000000000000..2bcdb5e98595 --- /dev/null +++ b/components/ILIAS/Forum/resources/autosave_forum.js @@ -0,0 +1,98 @@ +(function (root, scope, factory) { + scope.ForumDraftsAutosave = factory(root, root.jQuery); +}(window, il, (root, $) => { + const pub = {}; const pro = {}; let draft_as_handle = null; let + autosave_active = true; + + pub.disableAutosave = function () { + autosave_active = false; + }; + + pub.enableAutosave = function () { + autosave_active = true; + }; + + pub.init = function (options) { + const settings = $.extend({ + interval: 1000 * 10, + url: '', + loading_img_src: '', + draft_id: 0, + selectors: { + form: '', + }, + }, options); const + { draft_id } = settings; + + const $form = $(settings.selectors.form); + + const saveDraftCallback = function saveDraftCallback() { + if (typeof tinyMCE !== 'undefined') { + if (tinyMCE) tinyMCE.triggerSave(); + } + + if (autosave_active && $('#subject').val() != '' && $('#message').val() != '') { + const data = $form.serialize(); + + $form.find('.ilFrmLoadingImg').remove(); + $form.find('input[type=submit]').attr('disabled', 'disabled'); + $form.find('.ilFormCmds').each(function () { + $(``) + .css('paddingRight', '10px') + .insertBefore($(this).find('input[type=submit]:first')); + }); + $('#ilsaving').removeClass('ilNoDisplay'); + + il.ForumDraftsAutosave.disableAutosave(); + $.ajax({ + type: 'POST', + url: settings.url, + data, + dataType: 'json', + success(response) { + $form.find('input[type=submit]').attr('disabled', false); + $form.find('.ilFrmLoadingImg').remove(); + $('#ilsaving').addClass('ilNoDisplay'); + + if (typeof response.draft_id !== 'undefined' && response.draft_id > 0) { + $draft_id.val(response.draft_id); + } + + il.ForumDraftsAutosave.enableAutosave(); + }, + }); + } + }; + + if ($('#ilsaving').size() === 0) { + $(`
    ${il.Language.txt('saving')}
    `).appendTo($('body')); + } + $('#ilsaving').css('zIndex', 10000); + var $draft_id = $form.find('#draft_id'); + if ($draft_id.size() === 0) { + $draft_id = $(''); + $form.append($draft_id); + } + + $(() => { + draft_as_handle = root.setInterval(saveDraftCallback, settings.interval); + + $form.on('submit', () => { + root.clearInterval(draft_as_handle); + }); + }); + }; + + return pub; +})); + +$(document).ready(() => { + if ($('.found_threat_history_to_restore').length > 0) { + const $modal = $('#frm_autosave_restore'); + il.ForumDraftsAutosave.disableAutosave(); + $modal.modal('show'); + $modal.on('hidden.bs.modal', () => { + il.ForumDraftsAutosave.enableAutosave(); + }); + } +}); diff --git a/components/ILIAS/GlobalScreen/GlobalScreen.php b/components/ILIAS/GlobalScreen/GlobalScreen.php index e00f762fa530..fb941b93a21b 100644 --- a/components/ILIAS/GlobalScreen/GlobalScreen.php +++ b/components/ILIAS/GlobalScreen/GlobalScreen.php @@ -36,5 +36,11 @@ public function init( new \ilGlobalScreenSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "gs_content.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "GS.js"); } } diff --git a/public/components/ILIAS/GlobalScreen/src/Client/dist/GS.js b/components/ILIAS/GlobalScreen/resources/GS.js similarity index 100% rename from public/components/ILIAS/GlobalScreen/src/Client/dist/GS.js rename to components/ILIAS/GlobalScreen/resources/GS.js diff --git a/public/gs_content.php b/components/ILIAS/GlobalScreen/resources/gs_content.php old mode 100755 new mode 100644 similarity index 99% rename from public/gs_content.php rename to components/ILIAS/GlobalScreen/resources/gs_content.php index a7b203abf55a..6dc0912fdd98 --- a/public/gs_content.php +++ b/components/ILIAS/GlobalScreen/resources/gs_content.php @@ -43,4 +43,4 @@ public function run() if (php_sapi_name() !== 'cli') { (new ContentRenderer())->run(); -} +} \ No newline at end of file diff --git a/components/ILIAS/GlobalScreen/src/Client/Client.php b/components/ILIAS/GlobalScreen/src/Client/Client.php index 7f85b4ed2a84..8d9b3d39036c 100755 --- a/components/ILIAS/GlobalScreen/src/Client/Client.php +++ b/components/ILIAS/GlobalScreen/src/Client/Client.php @@ -40,7 +40,7 @@ public function __construct(ClientSettings $settings) public function init(MetaContent $content): void { - $content->addJs("./components/ILIAS/GlobalScreen/src/Client/dist/GS.js", true, 1); + $content->addJs("assets/js/GS.js", true, 1); $init_script = "il.GS.Client.init('" . json_encode($this->settings) . "');"; $content->addOnloadCode($init_script, 1); } diff --git a/components/ILIAS/GlobalScreen/src/Client/tsconfig.json b/components/ILIAS/GlobalScreen/src/Client/tsconfig.json index c35de717cbe4..4dfb64cc1d4b 100755 --- a/components/ILIAS/GlobalScreen/src/Client/tsconfig.json +++ b/components/ILIAS/GlobalScreen/src/Client/tsconfig.json @@ -5,7 +5,7 @@ "removeComments": true, "preserveConstEnums": true, "declaration": false, - "outDir": "./dist", + "outDir": "../../resources", "rootDir": "./src", "sourceMap": false, "target": "es5" diff --git a/components/ILIAS/Help/Help.php b/components/ILIAS/Help/Help.php index 9e5722b4ee90..b62b6a0ded94 100644 --- a/components/ILIAS/Help/Help.php +++ b/components/ILIAS/Help/Help.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\Help\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilHelp.js"); } } diff --git a/components/ILIAS/Help/classes/class.ilHelpGUI.php b/components/ILIAS/Help/classes/class.ilHelpGUI.php index 078323f8882d..14153a346919 100755 --- a/components/ILIAS/Help/classes/class.ilHelpGUI.php +++ b/components/ILIAS/Help/classes/class.ilHelpGUI.php @@ -311,10 +311,10 @@ public function initHelp( $ilSetting = $DIC->settings(); $ctrl = $DIC->ctrl(); - $a_tpl->addJavaScript("./components/ILIAS/Help/js/ilHelp.js"); - $a_tpl->addJavaScript("./components/ILIAS/Accordion/js/accordion.js"); + $a_tpl->addJavaScript("assets/js/ilHelp.js"); + $a_tpl->addJavaScript("assets/js/accordion.js"); iljQueryUtil::initMaphilight(); - $a_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); + $a_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); $this->setCtrlPar(); $a_tpl->addOnLoadCode( diff --git a/components/ILIAS/Help/js/ilHelp.js b/components/ILIAS/Help/resources/ilHelp.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Help/js/ilHelp.js rename to components/ILIAS/Help/resources/ilHelp.js diff --git a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php index a0d921ab9672..d171ba043610 100755 --- a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php +++ b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php @@ -809,7 +809,7 @@ protected function showItemSelection(bool $copy_page = false): void $this->log->debug('Target(s): ' . print_r($this->getTargets(), true)); $this->tpl->setOnScreenMessage('info', $this->lng->txt($this->getType() . '_copy_threads_info')); - $this->tpl->addJavaScript('./components/ILIAS/CopyWizard/js/ilContainer.js'); + $this->tpl->addJavaScript('assets/js/ilContainer.js'); $this->tpl->setVariable('BODY_ATTRIBUTES', 'onload="ilDisableChilds(\'cmd\');"'); $table = new ilObjectCopySelectionTableGUI($this, 'showItemSelection', $this->getType(), $copy_page); diff --git a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php index fe09a4e96165..5773a68d148f 100755 --- a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php +++ b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php @@ -50,7 +50,7 @@ public function setRedirectionUrl(?string $url): void public function init(): void { - $this->main_tpl->addJavaScript('./components/ILIAS/CopyWizard/js/ilCopyRedirection.js'); + $this->main_tpl->addJavaScript('assets/js/ilCopyRedirection.js'); $this->main_tpl->addOnLoadCode('il.CopyRedirection.checkDone()'); $this->setExternalSorting(true); $this->setFormAction($this->ctrl->getFormAction($this->getParentObject())); diff --git a/components/ILIAS/Init/Init.php b/components/ILIAS/Init/Init.php index 4b448ef9c4ce..7ccd822e9194 100644 --- a/components/ILIAS/Init/Init.php +++ b/components/ILIAS/Init/Init.php @@ -32,6 +32,31 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "register.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "pwassist.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "login.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "logout.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "index.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "ilias.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "error.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "sso/index.php", "sso"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, ".htaccess", "."); } } diff --git a/public/.htaccess b/components/ILIAS/Init/resources/.htaccess similarity index 100% rename from public/.htaccess rename to components/ILIAS/Init/resources/.htaccess diff --git a/public/error.php b/components/ILIAS/Init/resources/error.php old mode 100755 new mode 100644 similarity index 99% rename from public/error.php rename to components/ILIAS/Init/resources/error.php index 25cb80f8f557..021593526b23 --- a/public/error.php +++ b/components/ILIAS/Init/resources/error.php @@ -29,4 +29,4 @@ if (!($e instanceof \PDOException)) { die($e->getMessage()); } -} +} \ No newline at end of file diff --git a/public/ilias.php b/components/ILIAS/Init/resources/ilias.php old mode 100755 new mode 100644 similarity index 100% rename from public/ilias.php rename to components/ILIAS/Init/resources/ilias.php diff --git a/public/index.php b/components/ILIAS/Init/resources/index.php old mode 100755 new mode 100644 similarity index 87% rename from public/index.php rename to components/ILIAS/Init/resources/index.php index 91133a2a88f9..f0bb349e46ab --- a/public/index.php +++ b/components/ILIAS/Init/resources/index.php @@ -3,13 +3,13 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* start page of ilias -* -* @author Peter Gabriel -* @version $Id$ -* -* @package ilias -*/ + * start page of ilias + * + * @author Peter Gabriel + * @version $Id$ + * + * @package ilias + */ require_once '../vendor/composer/vendor/autoload.php'; // jump to setup if ILIAS3 is not installed @@ -30,7 +30,7 @@ // Block WebDAV Requests from Microsoft WebDAV MiniRedir client. if ($_SERVER['REQUEST_METHOD'] == 'PROPFIND' -|| $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { + || $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { $status = '404 Not Found'; header("HTTP/1.1 $status"); header("X-WebDAV-Status: $status", true); @@ -41,4 +41,4 @@ ilInitialisation::initILIAS(); $ilCtrl->callBaseClass('ilStartUpGUI'); -$ilBench->save(); +$ilBench->save(); \ No newline at end of file diff --git a/public/login.php b/components/ILIAS/Init/resources/login.php old mode 100755 new mode 100644 similarity index 74% rename from public/login.php rename to components/ILIAS/Init/resources/login.php index 245675c749ea..843be6692910 --- a/public/login.php +++ b/components/ILIAS/Init/resources/login.php @@ -3,14 +3,14 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* login script for ilias -* -* @author Sascha Hofmann -* @author Peter Gabriel -* @version $Id$ -* -* @package ilias-layout -*/ + * login script for ilias + * + * @author Sascha Hofmann + * @author Peter Gabriel + * @version $Id$ + * + * @package ilias-layout + */ require_once '../vendor/composer/vendor/autoload.php'; @@ -27,4 +27,4 @@ $ilCtrl->callBaseClass('ilStartUpGUI'); $ilBench->save(); -exit; +exit; \ No newline at end of file diff --git a/public/logout.php b/components/ILIAS/Init/resources/logout.php old mode 100755 new mode 100644 similarity index 86% rename from public/logout.php rename to components/ILIAS/Init/resources/logout.php index 6f73f4e92af1..2e6c6e80928c --- a/public/logout.php +++ b/components/ILIAS/Init/resources/logout.php @@ -17,13 +17,13 @@ *********************************************************************/ /** -* logout script for ilias -* -* @author Sascha Hofmann -* @version $Id$ -* -* @package ilias-core -*/ + * logout script for ilias + * + * @author Sascha Hofmann + * @version $Id$ + * + * @package ilias-core + */ require_once("../vendor/composer/vendor/autoload.php"); ilInitialisation::initILIAS(); @@ -33,4 +33,4 @@ $ilCtrl->callBaseClass('ilStartUpGUI'); $ilBench->save(); -exit; +exit; \ No newline at end of file diff --git a/public/pwassist.php b/components/ILIAS/Init/resources/pwassist.php old mode 100755 new mode 100644 similarity index 56% rename from public/pwassist.php rename to components/ILIAS/Init/resources/pwassist.php index 003615a26f75..2038cd14747a --- a/public/pwassist.php +++ b/components/ILIAS/Init/resources/pwassist.php @@ -3,14 +3,14 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* Password assistance facility for users who have forgotten their password -* or for users for whom no password has been assigned yet. -* -* @author Werner Randelshofer -* @version $Id$ -* -* @package ilias-core -*/ + * Password assistance facility for users who have forgotten their password + * or for users for whom no password has been assigned yet. + * + * @author Werner Randelshofer + * @version $Id$ + * + * @package ilias-core + */ ilInitialisation::initILIAS(); @@ -19,4 +19,4 @@ $ilCtrl->callBaseClass('ilStartUpGUI'); $ilBench->save(); -exit; +exit; \ No newline at end of file diff --git a/public/register.php b/components/ILIAS/Init/resources/register.php old mode 100755 new mode 100644 similarity index 65% rename from public/register.php rename to components/ILIAS/Init/resources/register.php index d4d917c8fed2..59cc654d4edc --- a/public/register.php +++ b/components/ILIAS/Init/resources/register.php @@ -3,17 +3,17 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* registration form for new users -* -* @author Sascha Hofmann -* @version $Id$ -* -* @package ilias-core -*/ + * registration form for new users + * + * @author Sascha Hofmann + * @version $Id$ + * + * @package ilias-core + */ ilInitialisation::initILIAS(); // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $ilCtrl->setCmd("jumpToRegistration"); $ilCtrl->callBaseClass('ilStartUpGUI'); -$ilBench->save(); +$ilBench->save(); \ No newline at end of file diff --git a/public/sso/index.php b/components/ILIAS/Init/resources/sso/index.php old mode 100755 new mode 100644 similarity index 94% rename from public/sso/index.php rename to components/ILIAS/Init/resources/sso/index.php index c7a60b5b68a6..a01505a0310e --- a/public/sso/index.php +++ b/components/ILIAS/Init/resources/sso/index.php @@ -16,7 +16,7 @@ if ($cookie_path == "\\") { $cookie_path = '/'; } - + setcookie("ilClientId", $_GET["client_id"], 0, $cookie_path, ''); $_COOKIE["ilClientId"] = $_GET["client_id"]; } @@ -29,4 +29,4 @@ // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $ilCtrl->setCmd('doApacheAuthentication'); -$ilCtrl->callBaseClass('ilStartUpGUI'); +$ilCtrl->callBaseClass('ilStartUpGUI'); \ No newline at end of file diff --git a/components/ILIAS/JavaScript/JavaScript.php b/components/ILIAS/JavaScript/JavaScript.php index 415fa428a537..5fd3daf863d5 100644 --- a/components/ILIAS/JavaScript/JavaScript.php +++ b/components/ILIAS/JavaScript/JavaScript.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Basic.js"); } } diff --git a/public/components/ILIAS/JavaScript/js/Basic.js b/components/ILIAS/JavaScript/resources/Basic.js similarity index 100% rename from public/components/ILIAS/JavaScript/js/Basic.js rename to components/ILIAS/JavaScript/resources/Basic.js diff --git a/components/ILIAS/LTI/LTI.php b/components/ILIAS/LTI/LTI.php index 397cb8506163..49f811acb559 100644 --- a/components/ILIAS/LTI/LTI.php +++ b/components/ILIAS/LTI/LTI.php @@ -36,5 +36,8 @@ public function init( new \ilLTISetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "lti.php"); } } diff --git a/public/lti.php b/components/ILIAS/LTI/resources/lti.php old mode 100755 new mode 100644 similarity index 100% rename from public/lti.php rename to components/ILIAS/LTI/resources/lti.php diff --git a/components/ILIAS/LearningHistory/LearningHistory.php b/components/ILIAS/LearningHistory/LearningHistory.php index 86dc35c97b65..49b1fe1df643 100644 --- a/components/ILIAS/LearningHistory/LearningHistory.php +++ b/components/ILIAS/LearningHistory/LearningHistory.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "LearningHistory.js"); } } diff --git a/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php b/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php index ac511d0c4083..037e927a32be 100755 --- a/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php +++ b/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php @@ -68,7 +68,7 @@ public function __construct() ? $to : null; - $this->main_tpl->addJavaScript("./components/ILIAS/LearningHistory/js/LearningHistory.js"); + $this->main_tpl->addJavaScript("assets/js/LearningHistory.js"); $this->http = $DIC->http(); } diff --git a/components/ILIAS/LearningHistory/js/LearningHistory.js b/components/ILIAS/LearningHistory/resources/LearningHistory.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/LearningHistory/js/LearningHistory.js rename to components/ILIAS/LearningHistory/resources/LearningHistory.js diff --git a/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php b/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php index d952544e1b3e..88445703a9d9 100755 --- a/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php +++ b/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php @@ -399,23 +399,23 @@ protected function getSupplyingExportFiles(string $a_target_dir = "."): array // check, why these do not come with the gs meta collector $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js", + "source" => "assets/js/mainbar.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/MainControls/metabar.js", + "source" => "assets/js/metabar.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/MainControls/slate.js", + "source" => "assets/js/slate.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/Page/stdpage.js", + "source" => "assets/js/stdpage.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/GlobalScreen/src/Client/dist/GS.js", + "source" => "assets/js/GS.js", "type" => "js" ]; diff --git a/components/ILIAS/LearningModule/LearningModule.php b/components/ILIAS/LearningModule/LearningModule.php index 77413b3aba4c..7523dd26420e 100644 --- a/components/ILIAS/LearningModule/LearningModule.php +++ b/components/ILIAS/LearningModule/LearningModule.php @@ -36,10 +36,12 @@ public function init( new \ilLearningModuleSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); - $contribute[\ILIAS\Setup\Agent::class] = fn() => new \ILIAS\LearningModule\Setup\DBUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "LearningModule.js"); } } diff --git a/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php b/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php index 077ac2686a1b..4c71104332d9 100755 --- a/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php +++ b/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php @@ -624,7 +624,7 @@ protected function addResourceFiles(): void ilAccordionGUI::addJavaScript(); ilAccordionGUI::addCss(); - $this->tpl->addJavaScript("./components/ILIAS/LearningModule/js/LearningModule.js"); + $this->tpl->addJavaScript("assets/js/LearningModule.js"); // handle initial content if ($this->requested_frame == "") { @@ -645,7 +645,7 @@ protected function addResourceFiles(): void } // from main menu - // $this->tpl->addJavascript("./components/ILIAS/JavaScript/js/Basic.js"); + // $this->tpl->addJavascript("assets/js/Basic.js"); ilYuiUtil::initConnection($this->tpl); } } diff --git a/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php b/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php index e602942dacb5..9a8c34603244 100755 --- a/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php +++ b/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php @@ -64,7 +64,7 @@ public function getEntries(): array // print selection if ($this->lm->isActivePrintView() && $access->checkAccess("read", "", $this->lm->getRefId())) { if (!$this->offline) { - $ui->mainTemplate()->addJavaScript("./components/ILIAS/Form/js/Form.js"); + $ui->mainTemplate()->addJavaScript("assets/js/Form.js"); $modal = $ui->factory()->modal()->roundtrip( $lng->txt("cont_print_view"), $ui->factory()->legacy('some modal') diff --git a/components/ILIAS/LearningModule/js/LearningModule.js b/components/ILIAS/LearningModule/resources/LearningModule.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/LearningModule/js/LearningModule.js rename to components/ILIAS/LearningModule/resources/LearningModule.js diff --git a/components/ILIAS/LearningModule/templates/default/tpl.blank.html b/components/ILIAS/LearningModule/templates/default/tpl.blank.html index d51c2560be3b..adeec0ee6422 100755 --- a/components/ILIAS/LearningModule/templates/default/tpl.blank.html +++ b/components/ILIAS/LearningModule/templates/default/tpl.blank.html @@ -4,7 +4,7 @@ {WINDOW_TITLE} {PAGETITLE} - + diff --git a/components/ILIAS/LegalDocuments/LegalDocuments.php b/components/ILIAS/LegalDocuments/LegalDocuments.php index 9869a306837b..52e57c2dc239 100644 --- a/components/ILIAS/LegalDocuments/LegalDocuments.php +++ b/components/ILIAS/LegalDocuments/LegalDocuments.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Setup\Agent::class] = fn() => + new LegalDocuments\Setup\Agent( + $pull[\ILIAS\Refinery\Factory::class] + ); } } diff --git a/components/ILIAS/LegalDocuments/classes/Legacy/Table.php b/components/ILIAS/LegalDocuments/classes/Legacy/Table.php index c925c3cff548..262ebc1dd002 100755 --- a/components/ILIAS/LegalDocuments/classes/Legacy/Table.php +++ b/components/ILIAS/LegalDocuments/classes/Legacy/Table.php @@ -64,7 +64,7 @@ public function __construct(?object $gui, string $command, TableInterface $table iljQueryUtil::initjQuery($DIC->ui()->mainTemplate()); ilYuiUtil::initPanel(false, $DIC->ui()->mainTemplate()); ilYuiUtil::initOverlay($DIC->ui()->mainTemplate()); - $DIC->ui()->mainTemplate()->addJavaScript('./components/ILIAS/Form/js/Form.js'); + $DIC->ui()->mainTemplate()->addJavaScript('assets/js/Form.js'); $this->determineOffsetAndOrder(); $this->setData($table->rows($this)); } diff --git a/components/ILIAS/Like/Like.php b/components/ILIAS/Like/Like.php index 99162d51ee93..9dd7388ae5c9 100644 --- a/components/ILIAS/Like/Like.php +++ b/components/ILIAS/Like/Like.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Like.js"); } } diff --git a/components/ILIAS/Like/classes/class.ilLikeGUI.php b/components/ILIAS/Like/classes/class.ilLikeGUI.php index a2883c1e26ce..fc0b529be5e0 100755 --- a/components/ILIAS/Like/classes/class.ilLikeGUI.php +++ b/components/ILIAS/Like/classes/class.ilLikeGUI.php @@ -67,7 +67,7 @@ public function __construct( protected function initJavascript(): void { ilYuiUtil::initConnection(); - $this->main_tpl->addJavaScript("./components/ILIAS/Like/js/Like.js"); + $this->main_tpl->addJavaScript("assets/js/Like.js"); } public function setObject( diff --git a/components/ILIAS/Like/js/Like.js b/components/ILIAS/Like/resources/Like.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Like/js/Like.js rename to components/ILIAS/Like/resources/Like.js diff --git a/components/ILIAS/Link/Link.php b/components/ILIAS/Link/Link.php index 58ce7a52e02f..61d0941e28ca 100644 --- a/components/ILIAS/Link/Link.php +++ b/components/ILIAS/Link/Link.php @@ -36,5 +36,14 @@ public function init( new \ILIAS\Link\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilIntLink.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExtLink.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("linkifyjs/dist/linkify.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("linkifyjs/dist/linkify-jquery.min.js"); } } diff --git a/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php b/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php index 38d5cd40eded..bcb8087de8c0 100755 --- a/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php +++ b/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php @@ -924,12 +924,12 @@ public static function getInitHTML(string $a_url): string $lng->loadLanguageModule("link"); - $tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $tpl->addJavaScript("assets/js/ilExplorer.js"); ilExplorerBaseGUI::init(); - $tpl->addJavascript("./components/ILIAS/Link/js/ilIntLink.js"); + $tpl->addJavascript("assets/js/ilIntLink.js"); // #18721 - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); + $tpl->addJavaScript("assets/js/Form.js"); $modal = ilModalGUI::getInstance(); $modal->setHeading($lng->txt("link_link")); diff --git a/components/ILIAS/Link/classes/class.ilLinkifyUtil.php b/components/ILIAS/Link/classes/class.ilLinkifyUtil.php index 5519bb68c8ca..d61e244ee29e 100755 --- a/components/ILIAS/Link/classes/class.ilLinkifyUtil.php +++ b/components/ILIAS/Link/classes/class.ilLinkifyUtil.php @@ -49,9 +49,9 @@ public static function initLinkify(?ilGlobalTemplateInterface $a_tpl = null): vo public static function getLocalJsPaths(): array { return [ - "./node_modules/linkifyjs/dist/linkify.min.js", - "./node_modules/linkifyjs/dist/linkify-jquery.min.js", - "./components/ILIAS/Link/js/ilExtLink.js" + "assets/js/linkify.min.js", + "assets/js/linkify-jquery.min.js", + "assets/js/ilExtLink.js" ]; } } diff --git a/components/ILIAS/Link/js/ilExtLink.js b/components/ILIAS/Link/resources/ilExtLink.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Link/js/ilExtLink.js rename to components/ILIAS/Link/resources/ilExtLink.js diff --git a/components/ILIAS/Link/js/ilIntLink.js b/components/ILIAS/Link/resources/ilIntLink.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Link/js/ilIntLink.js rename to components/ILIAS/Link/resources/ilIntLink.js diff --git a/components/ILIAS/Mail/Mail.php b/components/ILIAS/Mail/Mail.php index 4ee492005fb8..a262ea410363 100644 --- a/components/ILIAS/Mail/Mail.php +++ b/components/ILIAS/Mail/Mail.php @@ -36,5 +36,7 @@ public function init( new \ilMailSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilMailComposeFunctions.js"); } } diff --git a/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php b/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php index 80ff783f4bf3..547146213dab 100755 --- a/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php +++ b/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php @@ -49,7 +49,7 @@ public function __construct(string $label, string $http_post_param_name, protect parent::__construct($label, $http_post_param_name); - $this->tpl->addJavaScript('components/ILIAS/Mail/js/ilMailComposeFunctions.js'); + $this->tpl->addJavaScript('assets/js/ilMailComposeFunctions.js'); } public function getRerenderUrl(): ?string diff --git a/components/ILIAS/Mail/classes/class.ilMailFormGUI.php b/components/ILIAS/Mail/classes/class.ilMailFormGUI.php index 9368618064d4..1c44f05072b8 100755 --- a/components/ILIAS/Mail/classes/class.ilMailFormGUI.php +++ b/components/ILIAS/Mail/classes/class.ilMailFormGUI.php @@ -931,7 +931,7 @@ public function showForm(): void $this->tpl->setVariable('FORM', $form_gui->getHTML()); - $this->tpl->addJavaScript('components/ILIAS/Mail/js/ilMailComposeFunctions.js'); + $this->tpl->addJavaScript('assets/js/ilMailComposeFunctions.js'); $this->tpl->printToStdout(); } diff --git a/components/ILIAS/Mail/js/ilMailComposeFunctions.js b/components/ILIAS/Mail/resources/ilMailComposeFunctions.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Mail/js/ilMailComposeFunctions.js rename to components/ILIAS/Mail/resources/ilMailComposeFunctions.js diff --git a/components/ILIAS/Maps/Maps.php b/components/ILIAS/Maps/Maps.php index 9d37f401be46..d35912def45d 100644 --- a/components/ILIAS/Maps/Maps.php +++ b/components/ILIAS/Maps/Maps.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceOpenLayers.js"); } } diff --git a/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php b/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php index 71acacea5d7f..5d8a753a43b3 100755 --- a/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php +++ b/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php @@ -63,7 +63,7 @@ public function getHtml(): string $this->lng->loadLanguageModule("maps"); $this->tpl->addCss("public/node_modules/ol/ol.css"); $this->tpl->addCss("components/ILIAS/Maps/css/service_openlayers.css"); - $this->tpl->addJavaScript("components/ILIAS/Maps/js/dist/ServiceOpenLayers.js"); + $this->tpl->addJavaScript("assets/js/ServiceOpenLayers.js"); // add user markers $cnt = 0; diff --git a/components/ILIAS/Maps/js/dist/ServiceOpenLayers.js b/components/ILIAS/Maps/resources/ServiceOpenLayers.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Maps/js/dist/ServiceOpenLayers.js rename to components/ILIAS/Maps/resources/ServiceOpenLayers.js diff --git a/components/ILIAS/MediaCast/MediaCast.php b/components/ILIAS/MediaCast/MediaCast.php index efbb27cabcf6..28b766f8b727 100644 --- a/components/ILIAS/MediaCast/MediaCast.php +++ b/components/ILIAS/MediaCast/MediaCast.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\MediaCast\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "video_widget.js"); } } diff --git a/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php b/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php index d9733721815b..469a80e5ca9c 100755 --- a/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php +++ b/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php @@ -35,7 +35,7 @@ public function __construct( ) { global $DIC; - $main_tpl->addJavaScript("components/ILIAS/MediaCast/Video/js/video_widget.js"); + $main_tpl->addJavaScript("assets/js/video_widget.js"); $this->main_tpl = $main_tpl; $this->dom_wrapper_id = $dom_wrapper_id; $this->ui = $DIC->ui(); diff --git a/components/ILIAS/MediaCast/Video/js/video_widget.js b/components/ILIAS/MediaCast/resources/video_widget.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaCast/Video/js/video_widget.js rename to components/ILIAS/MediaCast/resources/video_widget.js diff --git a/components/ILIAS/MediaObjects/MediaObjects.php b/components/ILIAS/MediaObjects/MediaObjects.php index 2945a7d0e793..9d05c441fef5 100644 --- a/components/ILIAS/MediaObjects/MediaObjects.php +++ b/components/ILIAS/MediaObjects/MediaObjects.php @@ -40,5 +40,18 @@ public function init( new \ILIAS\MediaObjects\Setup\DBUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "MediaObjectsCompletion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceMediaObjectPropWidthHeight.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("mediaelement/build/mediaelement-and-player.min.js"); + /* This is missing in the node-modules-build, but added in PHP code. + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("mediaelement/build/vimeo.min.js"); + */ + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("mediaelement/build/mediaelementplayer.min.css"); } } diff --git a/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php b/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php index a7a00510bc36..9f099f81700d 100755 --- a/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php +++ b/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php @@ -92,7 +92,7 @@ public function audio( $mcst_settings = ilMediaCastSettings::_getInstance(); $treshold = (int) $mcst_settings->getVideoCompletionThreshold(); - $main_tpl->addJavaScript("./components/ILIAS/MediaObjects/js/MediaObjectsCompletion.js"); + $main_tpl->addJavaScript("assets/js/MediaObjectsCompletion.js"); $ctrl->setParameter($this, "mob_tracking_ref_id", $tracking_container_ref_id); $ctrl->setParameter($this, "mob_tracking_mob_id", $mob->getId()); $url = $ctrl->getLinkTarget($this, "saveCompletion"); diff --git a/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php b/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php index 398187328149..9433d146db49 100755 --- a/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php +++ b/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php @@ -1575,7 +1575,7 @@ public static function includePresentationJS( iljQueryUtil::initjQuery($a_tpl); $a_tpl->addJavaScript(iljQueryUtil::getLocalMaphilightPath()); - $a_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); + $a_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); ilPlayerUtil::initMediaElementJs($a_tpl); } diff --git a/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php b/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php index 569a80e496d4..b2dac61d56bc 100755 --- a/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php +++ b/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php @@ -27,8 +27,8 @@ class ilPlayerUtil public static function getLocalMediaElementJsPath(): array { return [ - "./node_modules/mediaelement/build/mediaelement-and-player.min.js", - "./node_modules/mediaelement/build/renderers/vimeo.min.js" + "./assets/js/mediaelement-and-player.min.js", + "./assets/js/renderers/vimeo.min.js" ]; } @@ -37,7 +37,7 @@ public static function getLocalMediaElementJsPath(): array */ public static function getLocalMediaElementCssPath(): string { - return "./node_modules/mediaelement/build/mediaelementplayer.min.css"; + return "./assets/css/mediaelementplayer.min.css"; } /** diff --git a/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php b/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php index 4c96c4217d06..1ff33bb06972 100755 --- a/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php +++ b/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php @@ -138,7 +138,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $this->main_tpl - ->addJavaScript("./components/ILIAS/MediaObjects/js/ServiceMediaObjectPropWidthHeight.js"); + ->addJavaScript("assets/js/ServiceMediaObjectPropWidthHeight.js"); $this->main_tpl->addOnLoadCode( 'prop_width_height["prop_' . $this->getPostVar() . '"] = ' . $ratio . ';' ); diff --git a/components/ILIAS/MediaObjects/js/MediaObjectsCompletion.js b/components/ILIAS/MediaObjects/resources/MediaObjectsCompletion.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaObjects/js/MediaObjectsCompletion.js rename to components/ILIAS/MediaObjects/resources/MediaObjectsCompletion.js diff --git a/components/ILIAS/MediaObjects/js/ServiceMediaObjectPropWidthHeight.js b/components/ILIAS/MediaObjects/resources/ServiceMediaObjectPropWidthHeight.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaObjects/js/ServiceMediaObjectPropWidthHeight.js rename to components/ILIAS/MediaObjects/resources/ServiceMediaObjectPropWidthHeight.js diff --git a/components/ILIAS/MediaPool/MediaPool.php b/components/ILIAS/MediaPool/MediaPool.php index 14beeee22e6a..5427b10b3453 100644 --- a/components/ILIAS/MediaPool/MediaPool.php +++ b/components/ILIAS/MediaPool/MediaPool.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilMediaPool.js"); } } diff --git a/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php b/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php index cf5b92602436..0c009d310721 100755 --- a/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php +++ b/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php @@ -1630,7 +1630,7 @@ public static function getPreviewModalHTML( ilObjMediaObjectGUI::includePresentationJS($a_tpl); - $tpl->addJavaScript("./components/ILIAS/MediaPool/js/ilMediaPool.js"); + $tpl->addJavaScript("assets/js/ilMediaPool.js"); $ilCtrl->setParameterByClass("ilobjmediapoolgui", "mepitem_id", ""); $ilCtrl->setParameterByClass("ilobjmediapoolgui", "ref_id", $a_mpool_ref_id); diff --git a/components/ILIAS/MediaPool/js/ilMediaPool.js b/components/ILIAS/MediaPool/resources/ilMediaPool.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaPool/js/ilMediaPool.js rename to components/ILIAS/MediaPool/resources/ilMediaPool.js diff --git a/components/ILIAS/News/News.php b/components/ILIAS/News/News.php index 489ee32d034b..0550ab950bc2 100644 --- a/components/ILIAS/News/News.php +++ b/components/ILIAS/News/News.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Timeline.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "News.js"); } } diff --git a/components/ILIAS/News/Timeline/class.ilTimelineGUI.php b/components/ILIAS/News/Timeline/class.ilTimelineGUI.php index f6b12d6d8ebf..6e0a1ae68db6 100755 --- a/components/ILIAS/News/Timeline/class.ilTimelineGUI.php +++ b/components/ILIAS/News/Timeline/class.ilTimelineGUI.php @@ -49,7 +49,7 @@ public function addItem(ilTimelineItemInt $a_item): void public function render( bool $a_items_only = false ): string { - $this->tpl->addJavaScript("./components/ILIAS/News/Timeline/js/Timeline.js"); + $this->tpl->addJavaScript("assets/js/Timeline.js"); $this->tpl->addJavaScript("./components/ILIAS/News/Timeline/libs/jquery-dynamic-max-height-master/src/jquery.dynamicmaxheight.js"); $t = new ilTemplate("tpl.timeline.html", true, true, "components/ILIAS/News/Timeline"); diff --git a/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php b/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php index 2788b65d52e9..58db935c74c2 100755 --- a/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php +++ b/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php @@ -262,9 +262,8 @@ public function getHTML(ilPropertyFormGUI $form = null): string $this->lng->toJS("update"); $this->lng->toJS("save"); - $this->tpl->addJavaScript("./components/ILIAS/News/js/News.js"); + $this->tpl->addJavaScript("assets/js/News.js"); $this->notes->gui()->initJavascript(); - return $html; } diff --git a/components/ILIAS/News/js/News.js b/components/ILIAS/News/resources/News.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/News/js/News.js rename to components/ILIAS/News/resources/News.js diff --git a/components/ILIAS/News/Timeline/js/Timeline.js b/components/ILIAS/News/resources/Timeline.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/News/Timeline/js/Timeline.js rename to components/ILIAS/News/resources/Timeline.js diff --git a/components/ILIAS/Notes/Notes.php b/components/ILIAS/Notes/Notes.php index d58a1ba52617..e23c5cede39d 100644 --- a/components/ILIAS/Notes/Notes.php +++ b/components/ILIAS/Notes/Notes.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\Notes\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilNotes.js"); } } diff --git a/components/ILIAS/Notes/Service/class.InternalGUIService.php b/components/ILIAS/Notes/Service/class.InternalGUIService.php index b07df52c3c2c..f99b48c5abbc 100755 --- a/components/ILIAS/Notes/Service/class.InternalGUIService.php +++ b/components/ILIAS/Notes/Service/class.InternalGUIService.php @@ -77,7 +77,7 @@ public function initJavascript( \ilModalGUI::initJS($tpl); $lng->toJS(array("private_notes", "notes_public_comments", "cancel", "notes_messages"), $tpl); - $tpl->addJavaScript("./components/ILIAS/Notes/js/ilNotes.js"); + $tpl->addJavaScript("assets/js/ilNotes.js"); $tpl->addOnLoadCode("ilNotes.setAjaxUrl('" . $ajax_url . "');"); } diff --git a/components/ILIAS/Notes/js/ilNotes.js b/components/ILIAS/Notes/resources/ilNotes.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Notes/js/ilNotes.js rename to components/ILIAS/Notes/resources/ilNotes.js diff --git a/components/ILIAS/Notifications/Notifications.php b/components/ILIAS/Notifications/Notifications.php index cf038baef7a2..4b90e587f171 100644 --- a/components/ILIAS/Notifications/Notifications.php +++ b/components/ILIAS/Notifications/Notifications.php @@ -36,5 +36,16 @@ public function init( new \ilNotificationUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "notifications.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "browser_notifications.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "osd.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "receive.mp3", "assets/sounds"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "receive.ogg", "assets/sounds"); } } diff --git a/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php b/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php index 8d75ac46a941..c2e4bb6fc731 100755 --- a/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php +++ b/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php @@ -66,8 +66,8 @@ public function populatePage(): void iljQueryUtil::initjQuery($this->page); ilPlayerUtil::initMediaElementJs($this->page); - $this->page->addJavaScript('components/ILIAS/Notifications/templates/default/notifications.js'); - $this->page->addCSS('components/ILIAS/Notifications/templates/default/osd.css'); + $this->page->addJavaScript('assets/js/notifications.js'); + $this->page->addCSS('assets/css/osd.css'); $this->page->addOnLoadCode($osdTemplate->get()); } } diff --git a/components/ILIAS/Notifications/js/browser_notifications.js b/components/ILIAS/Notifications/resources/browser_notifications.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Notifications/js/browser_notifications.js rename to components/ILIAS/Notifications/resources/browser_notifications.js diff --git a/components/ILIAS/Notifications/resources/notifications.js b/components/ILIAS/Notifications/resources/notifications.js new file mode 100755 index 000000000000..7a52d8aa0d20 --- /dev/null +++ b/components/ILIAS/Notifications/resources/notifications.js @@ -0,0 +1,78 @@ +let OSDNotifier; const + OSDNotifications = (settings) => { + const evalInCleanEnv = (codeAsString) => new Function('', codeAsString).call(); + + const playSound = () => { + const sound = document.createElement('audio'); + + const mp3 = document.createElement('source'); + mp3.src = 'assets/sounds/receive.mp3'; + mp3.type = 'audio/mp3'; + sound.append(mp3); + + const ogg = document.createElement('source'); + ogg.src = 'assets/sounds/receive.ogg'; + ogg.type = 'audio/ogg'; + sound.append(ogg); + document.querySelector('body').append(sound); + + sound.play().then(() => { + console.debug('Played sound successfully!'); + }).catch((e) => { + console.info('Could not play sound, autoplay policy changes: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes'); + console.warn(e); + }); + }; + + const createContentSetter = (container) => (html) => { + container.innerHTML = html; + container.querySelectorAll('script').forEach((element) => { + evalInCleanEnv(element.innerHTML); + }); + container.querySelectorAll('.il-toast-wrapper').forEach((element) => { + element.querySelectorAll('a').forEach((link) => { + link.addEventListener('click', () => { + il.UI.toast.closeToast(element.querySelector('.il-toast'), true); + }); + }); + element.addEventListener('removeToast', () => { + document.dispatchEvent(new Event('rerenderNotificationCenter')); + }); + }); + }; + + const poll = (container) => { + let lastRequest = parseInt(new Date().getTime() / 1000); + + return () => { + const time = parseInt(new Date().getTime() / 1000); + const max_age = time - lastRequest; + const xhr = new XMLHttpRequest(); + const setContent = createContentSetter(container); + xhr.open('GET', `ilias.php?baseClass=ilNotificationGUI&cmd=getOSDNotifications&cmdMode=asynch&max_age=${max_age}`); + xhr.onload = () => { + if (xhr.status === 200) { + setContent(xhr.responseText); + if (settings.playSound && xhr.responseText !== '') { + playSound(); + } + lastRequest = time; + } else { + container.innerHTML = ''; + console.error(`${xhr.status}: ${xhr.responseText}`); + } + }; + xhr.send(); + }; + }; + + const init = () => { + const container = il.UI.page.getOverlay().querySelector('.il-toast-container'); + const interval = settings.pollingInterval; + if (interval) { + window.setInterval(poll(container), interval); + } + }; + + return init(); + }; diff --git a/public/components/ILIAS/Notifications/templates/default/osd.css b/components/ILIAS/Notifications/resources/osd.css similarity index 100% rename from public/components/ILIAS/Notifications/templates/default/osd.css rename to components/ILIAS/Notifications/resources/osd.css diff --git a/components/ILIAS/Chatroom/sounds/receive.mp3 b/components/ILIAS/Notifications/resources/receive.mp3 similarity index 100% rename from components/ILIAS/Chatroom/sounds/receive.mp3 rename to components/ILIAS/Notifications/resources/receive.mp3 diff --git a/components/ILIAS/Chatroom/sounds/receive.ogg b/components/ILIAS/Notifications/resources/receive.ogg similarity index 100% rename from components/ILIAS/Chatroom/sounds/receive.ogg rename to components/ILIAS/Notifications/resources/receive.ogg diff --git a/components/ILIAS/OnScreenChat/OnScreenChat.php b/components/ILIAS/OnScreenChat/OnScreenChat.php index c930586c93f1..1ffe47b10ecd 100644 --- a/components/ILIAS/OnScreenChat/OnScreenChat.php +++ b/components/ILIAS/OnScreenChat/OnScreenChat.php @@ -32,6 +32,13 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "chat.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "moment.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "onscreenchat.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "onscreenchat-notifications.js"); } } diff --git a/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php b/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php index ebb8dfd6b794..90744ab21e46 100755 --- a/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php +++ b/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php @@ -288,15 +288,15 @@ public static function initializeFrontend(ilGlobalTemplateInterface $page): void iljQueryUtil::initjQueryUI($page); ilLinkifyUtil::initLinkify($page); - $page->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); - $page->addJavascript('./components/ILIAS/UIComponent/Modal/js/Modal.js'); - $page->addJavascript('./node_modules/moment/min/moment-with-locales.min.js'); - $page->addJavascript('./components/ILIAS/Notifications/js/browser_notifications.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/onscreenchat-notifications.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/moment.js'); - $page->addJavascript('./components/ILIAS/Chatroom/chat/node_modules/socket.io-client/dist/socket.io.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/chat.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/onscreenchat.js'); + $page->addJavaScript('assets/js/jquery.ui.touch-punch.js'); + $page->addJavascript('assets/js/Modal.js'); + $page->addJavascript('assets/js/moment-with-locales.min.js'); + $page->addJavascript('assets/js/browser_notifications.js'); + $page->addJavascript('assets/js/onscreenchat-notifications.js'); + $page->addJavascript('assets/js/moment.js'); + $page->addJavascript('assets/js/socket.io-client/dist/socket.io.js'); + $page->addJavascript('assets/js/chat.js'); + $page->addJavascript('assets/js/onscreenchat.js'); $page->addOnLoadCode("il.Chat.setConfig(" . json_encode($chatConfig, JSON_THROW_ON_ERROR) . ");"); $page->addOnLoadCode("il.OnScreenChat.setConfig(" . json_encode($guiConfig, JSON_THROW_ON_ERROR) . ");"); $page->addOnLoadCode("il.OnScreenChat.init();"); diff --git a/components/ILIAS/OnScreenChat/js/chat.js b/components/ILIAS/OnScreenChat/resources/chat.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/chat.js rename to components/ILIAS/OnScreenChat/resources/chat.js diff --git a/components/ILIAS/OnScreenChat/js/moment.js b/components/ILIAS/OnScreenChat/resources/moment.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/moment.js rename to components/ILIAS/OnScreenChat/resources/moment.js diff --git a/components/ILIAS/OnScreenChat/js/onscreenchat-notifications.js b/components/ILIAS/OnScreenChat/resources/onscreenchat-notifications.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/onscreenchat-notifications.js rename to components/ILIAS/OnScreenChat/resources/onscreenchat-notifications.js diff --git a/components/ILIAS/OnScreenChat/js/onscreenchat.js b/components/ILIAS/OnScreenChat/resources/onscreenchat.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/onscreenchat.js rename to components/ILIAS/OnScreenChat/resources/onscreenchat.js diff --git a/components/ILIAS/OpenIdConnect/OpenIdConnect.php b/components/ILIAS/OpenIdConnect/OpenIdConnect.php index 69df034a5dfe..681e4c9fdf6a 100644 --- a/components/ILIAS/OpenIdConnect/OpenIdConnect.php +++ b/components/ILIAS/OpenIdConnect/OpenIdConnect.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "openidconnect.php"); } } diff --git a/public/openidconnect.php b/components/ILIAS/OpenIdConnect/resources/openidconnect.php old mode 100755 new mode 100644 similarity index 94% rename from public/openidconnect.php rename to components/ILIAS/OpenIdConnect/resources/openidconnect.php index 8cece9447b25..81c8bc69881c --- a/public/openidconnect.php +++ b/components/ILIAS/OpenIdConnect/resources/openidconnect.php @@ -23,4 +23,4 @@ // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $DIC->ctrl()->setCmd('doOpenIdConnectAuthentication'); $DIC->ctrl()->setTargetScript('ilias.php'); -$DIC->ctrl()->callBaseClass(ilStartUpGUI::class); +$DIC->ctrl()->callBaseClass(ilStartUpGUI::class); \ No newline at end of file diff --git a/components/ILIAS/OrgUnit/OrgUnit.php b/components/ILIAS/OrgUnit/OrgUnit.php index be8280cc39d4..addfe34fa923 100644 --- a/components/ILIAS/OrgUnit/OrgUnit.php +++ b/components/ILIAS/OrgUnit/OrgUnit.php @@ -36,5 +36,7 @@ public function init( new \ilOrgUnitSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "authority.js"); } } diff --git a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php index f908344ae045..e42d24c74450 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php @@ -179,7 +179,7 @@ protected function initJS(): void * @var $globalTpl \ilTemplate */ $globalTpl = $GLOBALS['DIC'] ? $GLOBALS['DIC']['tpl'] : $GLOBALS['tpl']; - $globalTpl->addJavascript("./components/ILIAS/OrgUnit/templates/default/authority.js"); + $globalTpl->addJavascript("assets/js/authority.js"); $config = json_encode(array()); diff --git a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php index bf9a4f29c660..db75cfcacdc0 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php @@ -332,7 +332,7 @@ public function render(int|string $iterator_id = 0, bool $clean_render = false): public function initCSSandJS() { global $tpl; - $tpl->addJavascript('components/ILIAS/OrgUnit/js/generic_multi_line_input.js'); + $tpl->addJavascript('assets/js/generic_multi_line_input.js'); } /** diff --git a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php index 4d2f6be92104..4aff5de6868b 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php @@ -44,7 +44,7 @@ public function __construct(object $a_parent_obj, string $a_parent_cmd, ilOrgUni $this->dic() ->ui() ->mainTemplate() - ->addJavaScript('./components/ILIAS/AccessControl/js/ilPermSelect.js'); + ->addJavaScript('assets/js/ilPermSelect.js'); $this->setTitle( $this->dic()->language()->txt('orgu_permission_settings_' diff --git a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php index 39aaeb97ef3a..5d22d6c01afe 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php @@ -45,7 +45,7 @@ public function __construct(object $a_parent_obj, string $a_parent_cmd, int $a_r $this->setId('objpositionperm_' . $this->ref_id); - $tpl->addJavaScript('./components/ILIAS/AccessControl/js/ilPermSelect.js'); + $tpl->addJavaScript('assets/js/ilPermSelect.js'); $this->setTitle($this->lng->txt('org_permission_settings')); $this->setEnableHeader(true); diff --git a/components/ILIAS/OrgUnit/js/generic_multi_line_input.js b/components/ILIAS/OrgUnit/js/generic_multi_line_input.js deleted file mode 100755 index da3038734761..000000000000 --- a/components/ILIAS/OrgUnit/js/generic_multi_line_input.js +++ /dev/null @@ -1,125 +0,0 @@ -(function ($) { - $.fn.extend({ - multi_line_input: function (element_config, options) { - var settings = $.extend({ - unique_values: false - }, options); - - var element_config = element_config; - var element = this; - var self = this; - var counter = 0; - var clone_line = $(this).find('.multi_input_line').first(); - var calc_width = function (clone_line) { - var calced_width = clone_line.find('.multi_icons_wrapper').last().width(); - clone_line.find('.ml-input').each(function () { - calced_width = calced_width + $(this).width(); - }); - calced_width = calced_width - clone_line.find('.ml-input').last().width(); - clone_line.find('.ml-input').last().width(clone_line.width() - calced_width - 100); - }; - $(this).find('.multi_input_line').each(function () { - calc_width($(this)); - }); - - var empty_id = "empty"; - - var setup_clone_line = function (clone_line) { - clone_line.hide(); - clone_line.removeClass('multi_input_line'); - - clone_line.find("textarea[name^='" + element.attr('id') + "'], input[name^='" + element.attr( - 'id') + "'], select[name^='" + element.attr('id') + "']").each(function () { - var name = $(this).attr('name'); - var id = element.attr('id'); - var regex = new RegExp('^' + id + '\[[0-9]+\](.*)$', 'g'); - var matches = regex.exec(name); - name = empty_id + '[' + counter + ']' + matches[1]; - $(this).attr('name', name); - }); - }; - - setup_clone_line(clone_line); - /** - * - * @param line - * @param init - */ - var setup_line = function (line, init) { - var init = init || false; - var $line = line; - - - $(line).find('.add_button').on('click', function (e) { - var new_line = clone_line.clone(); - new_line.show(); - $(new_line).addClass("multi_input_line"); - setup_line(new_line); - $(element).append(new_line); - $(element).change(); - $(document).trigger('multi_line_add_button', [$line, new_line]); - $(element).find("textarea, input[type='text']").last().focus(); - $('#multi_line_add_button').hide(); - return false; - }); - - $(line).find('.up_button').on('click', function (e) { - $(this).parents('.multi_input_line').insertBefore($(this) - .parents('.multi_input_line') - .prev()); - return false; - }); - - $(line).find('.down_button').on('click', function (e) { - $(this).parents('.multi_input_line').insertAfter($(this) - .parents('.multi_input_line') - .next()); - return false; - }); - - $(line).find('.remove_button').on('click', function (e) { - var siblings = $line.siblings('.multi_input_line').length; - if (siblings <= 1) $('#multi_line_add_button').show(); - $line.remove(); - $(element).change(); - $(document).trigger('multi_line_remove_button', $line); - return false; - }); - - // If element is added by plus button - if (!init) { - $line.find("textarea[name^='" + empty_id + "'], input[name^='" + empty_id + "'], select[name^='" + empty_id + "']") - .each(function () { - var name = $(this).attr('name'); - var id = element.attr('id'); - $(this).val(''); - var regex = new RegExp('^' + empty_id + '\[[0-9]+\](.*)$', 'g'); - var matches = regex.exec(name); - name = id + '[' + counter + ']' + matches[1]; - $(this).attr('name', name); - }); - } - counter++; - }; - - // hide/show delete icons - //$(element).on('change', function (e) { - // var remove_buttons = $(element).find('.multi_input_line .remove_button'); - // - // if (remove_buttons.length > 1) { - // remove_buttons.show().first().hide(); - // } else { - // remove_buttons.hide(); - // } - //}); - - $(this).find('.multi_input_line').each(function () { - setup_line($(this), true); - }); - $(element).change(); - - return element; - } - }); - -}(jQuery)); \ No newline at end of file diff --git a/components/ILIAS/OrgUnit/templates/default/authority.js b/components/ILIAS/OrgUnit/resources/authority.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OrgUnit/templates/default/authority.js rename to components/ILIAS/OrgUnit/resources/authority.js diff --git a/components/ILIAS/Poll/Poll.php b/components/ILIAS/Poll/Poll.php index e6b4124cdfe4..5d2dbe7c3825 100644 --- a/components/ILIAS/Poll/Poll.php +++ b/components/ILIAS/Poll/Poll.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilPoll.js"); } } diff --git a/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php b/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php index bbc5529f3ea0..5d74c9595b0e 100755 --- a/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php +++ b/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php @@ -208,7 +208,7 @@ protected function initContentRenderer(): ilPollContentRenderer protected function initJS(): void { if (!self::$js_init) { - $this->main_tpl->addJavaScript("components/ILIAS/Poll/js/ilPoll.js"); + $this->main_tpl->addJavaScript("assets/js/ilPoll.js"); self::$js_init = true; } } diff --git a/components/ILIAS/Poll/js/ilPoll.js b/components/ILIAS/Poll/resources/ilPoll.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Poll/js/ilPoll.js rename to components/ILIAS/Poll/resources/ilPoll.js diff --git a/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php b/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php index 9b28c5f1f74e..ccfe491503c6 100755 --- a/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php +++ b/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php @@ -659,7 +659,7 @@ protected function renderConsultationHours( $filter = new ilCalendarScheduleFilterBookings($user_id, $a_group_ids); $month_gui->addScheduleFilter($filter); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('filesystem', 'delos.css', 'components/ILIAS/Calendar')); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('filesystem', 'delos.css')); $this->lng->loadLanguageModule("dateplaner"); return '

    ' . $this->lng->txt("app_consultation_hours") . '

    ' . @@ -879,7 +879,7 @@ protected function renderMyCourses( // #15508 if (!self::$initialized) { - $GLOBALS["tpl"]->addJavaScript("components/ILIAS/Portfolio/js/ilPortfolio.js"); + $GLOBALS["tpl"]->addJavaScript("assets/js/ilPortfolio.js"); $GLOBALS["tpl"]->addOnLoadCode("ilPortfolio.init()"); } self::$initialized++; diff --git a/components/ILIAS/Portfolio/Portfolio.php b/components/ILIAS/Portfolio/Portfolio.php index f21b592c9e51..d1b07f714acd 100644 --- a/components/ILIAS/Portfolio/Portfolio.php +++ b/components/ILIAS/Portfolio/Portfolio.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\Portfolio\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilPortfolio.js"); } } diff --git a/components/ILIAS/Portfolio/js/ilPortfolio.js b/components/ILIAS/Portfolio/resources/ilPortfolio.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Portfolio/js/ilPortfolio.js rename to components/ILIAS/Portfolio/resources/ilPortfolio.js diff --git a/components/ILIAS/RTE/RTE.php b/components/ILIAS/RTE/RTE.php index 4ffece32d94e..707869421129 100644 --- a/components/ILIAS/RTE/RTE.php +++ b/components/ILIAS/RTE/RTE.php @@ -32,6 +32,17 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + // This is included via anonymous classes as a testament to the fact, that + // TinyMCE isn't a good citizen of the ILIAS system. + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "node_modules/tinymce"; + } + public function getTarget(): string + { + return "node_modules/tinymce"; + } + }; } } diff --git a/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php b/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php index 8c09361c3ad6..4ce679368897 100755 --- a/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php +++ b/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php @@ -35,19 +35,19 @@ class ilRTEGlobalTemplate implements ilGlobalTemplateInterface * List of JS-Files that should be included. * @var array */ - protected array $js_files = [0 => './components/ILIAS/JavaScript/js/Basic.js']; + protected array $js_files = [0 => 'assets/js/Basic.js']; /** * Stores if a version parameter should be appended to the js-file to force reloading. * @var array */ - protected array $js_files_vp = ['./components/ILIAS/JavaScript/js/Basic.js' => true]; + protected array $js_files_vp = ['assets/js/Basic.js' => true]; /** * Stores the order in which js-files should be included. * @var array */ - protected array $js_files_batch = ['./components/ILIAS/JavaScript/js/Basic.js' => 1]; + protected array $js_files_batch = ['assets/js/Basic.js' => 1]; public function __construct( string $file, diff --git a/components/ILIAS/RTE/classes/class.ilTinyMCE.php b/components/ILIAS/RTE/classes/class.ilTinyMCE.php index ca54e3dee375..8da922e8f3f7 100755 --- a/components/ILIAS/RTE/classes/class.ilTinyMCE.php +++ b/components/ILIAS/RTE/classes/class.ilTinyMCE.php @@ -238,7 +238,7 @@ public function addRTESupport( $tpl->parseCurrentBlock(); if (!self::$renderedToGlobalTemplate) { - $this->tpl->addJavaScript('public/node_modules/tinymce/tinymce.js'); + $this->tpl->addJavaScript('node_modules/tinymce/tinymce.js'); $this->tpl->addOnLoadCode($tpl->get()); self::$renderedToGlobalTemplate = true; } @@ -306,7 +306,7 @@ public function addCustomRTESupport(int $obj_id, string $obj_type, array $tags): $tpl->parseCurrentBlock(); if (!self::$renderedToGlobalTemplate) { - $this->tpl->addJavaScript('public/node_modules/tinymce/tinymce.js'); + $this->tpl->addJavaScript('node_modules/tinymce/tinymce.js'); $this->tpl->addOnLoadCode($tpl->get()); self::$renderedToGlobalTemplate = true; } @@ -336,7 +336,7 @@ public function addUserTextEditor(string $editor_selector): void $template->setVariable('LANG', $this->_getEditorLanguage()); $template->parseCurrentBlock(); - $this->tpl->addJavaScript('public/node_modules/tinymce/tinymce.js'); + $this->tpl->addJavaScript('components/tinymce/tinymce.js'); $this->tpl->addOnLoadCode($template->get()); } diff --git a/components/ILIAS/Registration/Registration.php b/components/ILIAS/Registration/Registration.php index 17a48df540c5..16a81f956e52 100644 --- a/components/ILIAS/Registration/Registration.php +++ b/components/ILIAS/Registration/Registration.php @@ -36,5 +36,8 @@ public function init( new \ilRegistrationAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "confirmReg.php"); } } diff --git a/public/confirmReg.php b/components/ILIAS/Registration/resources/confirmReg.php similarity index 100% rename from public/confirmReg.php rename to components/ILIAS/Registration/resources/confirmReg.php diff --git a/components/ILIAS/Repository/Repository.php b/components/ILIAS/Repository/Repository.php index f6a8a177a673..4bbacc88a302 100644 --- a/components/ILIAS/Repository/Repository.php +++ b/components/ILIAS/Repository/Repository.php @@ -40,5 +40,8 @@ public function init( new \ILIAS\Repository\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "repository.js"); } } diff --git a/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php b/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php index 03c3f062dad7..252c047b67d5 100755 --- a/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php +++ b/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php @@ -107,7 +107,7 @@ public static function initJavascript(): void $r = $DIC->ui()->renderer(); if (!self::$initialised) { $main_tpl = $DIC->ui()->mainTemplate(); - $main_tpl->addJavaScript("./components/ILIAS/Repository/js/repository.js"); + $main_tpl->addJavaScript("assets/js/repository.js"); $main_tpl->addOnLoadCode(self::getOnLoadCode()); // render dummy components to load the necessary .js needed for async processing diff --git a/public/components/ILIAS/Repository/js/repository.js b/components/ILIAS/Repository/resources/repository.js similarity index 100% rename from public/components/ILIAS/Repository/js/repository.js rename to components/ILIAS/Repository/resources/repository.js diff --git a/components/ILIAS/Saml/Saml.php b/components/ILIAS/Saml/Saml.php index 8e748b62a219..36767d1d2487 100644 --- a/components/ILIAS/Saml/Saml.php +++ b/components/ILIAS/Saml/Saml.php @@ -32,6 +32,17 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "metadata.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "module.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml1-acs.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml2-acs.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml2-logout.php"); } } diff --git a/components/ILIAS/Saml/lib/authsources.php.dist b/components/ILIAS/Saml/resources/authsources.php.dist similarity index 100% rename from components/ILIAS/Saml/lib/authsources.php.dist rename to components/ILIAS/Saml/resources/authsources.php.dist diff --git a/components/ILIAS/Saml/lib/config.php.dist b/components/ILIAS/Saml/resources/config.php.dist similarity index 100% rename from components/ILIAS/Saml/lib/config.php.dist rename to components/ILIAS/Saml/resources/config.php.dist diff --git a/components/ILIAS/Saml/lib/metadata.php b/components/ILIAS/Saml/resources/metadata.php similarity index 100% rename from components/ILIAS/Saml/lib/metadata.php rename to components/ILIAS/Saml/resources/metadata.php diff --git a/components/ILIAS/Saml/lib/module.php b/components/ILIAS/Saml/resources/module.php similarity index 100% rename from components/ILIAS/Saml/lib/module.php rename to components/ILIAS/Saml/resources/module.php diff --git a/public/saml.php b/components/ILIAS/Saml/resources/saml.php old mode 100755 new mode 100644 similarity index 100% rename from public/saml.php rename to components/ILIAS/Saml/resources/saml.php diff --git a/components/ILIAS/Saml/lib/saml1-acs.php b/components/ILIAS/Saml/resources/saml1-acs.php similarity index 100% rename from components/ILIAS/Saml/lib/saml1-acs.php rename to components/ILIAS/Saml/resources/saml1-acs.php diff --git a/components/ILIAS/Saml/lib/saml2-acs.php b/components/ILIAS/Saml/resources/saml2-acs.php similarity index 100% rename from components/ILIAS/Saml/lib/saml2-acs.php rename to components/ILIAS/Saml/resources/saml2-acs.php diff --git a/components/ILIAS/Saml/lib/saml2-logout.php b/components/ILIAS/Saml/resources/saml2-logout.php similarity index 100% rename from components/ILIAS/Saml/lib/saml2-logout.php rename to components/ILIAS/Saml/resources/saml2-logout.php diff --git a/components/ILIAS/Scorm2004/Scorm2004.php b/components/ILIAS/Scorm2004/Scorm2004.php index 38f528f7f7d0..24e54dda58b2 100644 --- a/components/ILIAS/Scorm2004/Scorm2004.php +++ b/components/ILIAS/Scorm2004/Scorm2004.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "storeScorm2004.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "storeScorm.php"); } } diff --git a/public/storeScorm.php b/components/ILIAS/Scorm2004/resources/storeScorm.php old mode 100755 new mode 100644 similarity index 100% rename from public/storeScorm.php rename to components/ILIAS/Scorm2004/resources/storeScorm.php diff --git a/public/storeScorm2004.php b/components/ILIAS/Scorm2004/resources/storeScorm2004.php old mode 100755 new mode 100644 similarity index 99% rename from public/storeScorm2004.php rename to components/ILIAS/Scorm2004/resources/storeScorm2004.php index f4cd3f68f70e..a33c6cc36cb4 --- a/public/storeScorm2004.php +++ b/components/ILIAS/Scorm2004/resources/storeScorm2004.php @@ -58,4 +58,4 @@ } else { // $data = file_get_contents('php://input'); ilSCORM2004StoreData::persistCMIData($packageId, $refId, $defaultLessonMode, $comments, $interactions, $objectives, $time_from_lms, null, null); -} +} \ No newline at end of file diff --git a/components/ILIAS/Search/Search.php b/components/ILIAS/Search/Search.php index ae6f0157f711..bd999909464c 100644 --- a/components/ILIAS/Search/Search.php +++ b/components/ILIAS/Search/Search.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "SearchMainMenu.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Search.js"); } } diff --git a/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php b/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php index ccaf1fdcd99a..4a1d00451091 100755 --- a/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php +++ b/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php @@ -521,7 +521,7 @@ protected function showSearchForm(): void $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.lucene_search.html', 'components/ILIAS/Search'); ilOverlayGUI::initJavascript(); - $this->tpl->addJavascript("./components/ILIAS/Search/js/Search.js"); + $this->tpl->addJavascript("assets/js/Search.js"); $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this, 'performSearch')); diff --git a/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php b/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php index e5eaef43542f..de1690a04dad 100755 --- a/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php +++ b/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php @@ -241,7 +241,7 @@ protected function showSearchForm() $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.lucene_usr_search.html', 'components/ILIAS/Search'); ilOverlayGUI::initJavascript(); - $this->tpl->addJavascript("./components/ILIAS/Search/js/Search.js"); + $this->tpl->addJavascript("assets/js/Search.js"); $this->tpl->setVariable('FORM_ACTION', $this->ctrl->getFormAction($this, 'performSearch')); $this->tpl->setVariable("TERM", ilLegacyFormElementsUtil::prepareFormOutput($this->search_cache->getQuery())); diff --git a/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php b/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php index ff20638d2099..c5f70998c78f 100755 --- a/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php +++ b/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php @@ -56,7 +56,7 @@ public function __construct() $this->http = $DIC->http(); $this->refinery = $DIC->refinery(); - $DIC->ui()->mainTemplate()->addJavascript('components/ILIAS/Search/js/SearchMainMenu.js'); + $DIC->ui()->mainTemplate()->addJavascript('assets/js/SearchMainMenu.js'); $this->initRefIdFromQuery(); } diff --git a/components/ILIAS/Search/classes/class.ilSearchGUI.php b/components/ILIAS/Search/classes/class.ilSearchGUI.php index 5cf6f28373df..97792feb244b 100755 --- a/components/ILIAS/Search/classes/class.ilSearchGUI.php +++ b/components/ILIAS/Search/classes/class.ilSearchGUI.php @@ -337,7 +337,7 @@ public function autoComplete(): void public function showSearch(): void { ilOverlayGUI::initJavascript(); - $this->tpl->addJavascript("./components/ILIAS/Search/js/Search.js"); + $this->tpl->addJavascript("assets/js/Search.js"); $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.search.html', 'components/ILIAS/Search'); diff --git a/components/ILIAS/Search/js/Search.js b/components/ILIAS/Search/resources/Search.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Search/js/Search.js rename to components/ILIAS/Search/resources/Search.js diff --git a/public/components/ILIAS/Search/js/SearchMainMenu.js b/components/ILIAS/Search/resources/SearchMainMenu.js similarity index 100% rename from public/components/ILIAS/Search/js/SearchMainMenu.js rename to components/ILIAS/Search/resources/SearchMainMenu.js diff --git a/components/ILIAS/Setup/tests/ilSetupAgentTest.php b/components/ILIAS/Setup/tests/ilCommonSetupAgentTest.php similarity index 88% rename from components/ILIAS/Setup/tests/ilSetupAgentTest.php rename to components/ILIAS/Setup/tests/ilCommonSetupAgentTest.php index 98365f34f3e8..20945597a737 100755 --- a/components/ILIAS/Setup/tests/ilSetupAgentTest.php +++ b/components/ILIAS/Setup/tests/ilCommonSetupAgentTest.php @@ -23,7 +23,7 @@ use ILIAS\Setup\NullConfig; use ILIAS\Setup\ObjectiveCollection; use ILIAS\Setup\Objective; -use ilSetupAgent; +use ilCommonSetupAgent; use ILIAS\Refinery\Factory as Refinery; use ILIAS\Data\Factory as DataFactory; use ilLanguage; @@ -33,9 +33,9 @@ * @package ILIAS\Tests\Setup * @author Marvin Beym */ -class ilSetupAgentTest extends TestCase +class ilCommonSetupAgentTest extends TestCase { - private ilSetupAgent $testObj; + private ilCommonSetupAgent $testObj; protected function setUp(): void { @@ -45,7 +45,7 @@ protected function setUp(): void ); parent::setUp(); - $this->testObj = new ilSetupAgent($refinery, $this->createMock(DataFactory::class)); + $this->testObj = new ilCommonSetupAgent($refinery, $this->createMock(DataFactory::class)); } public function testGetNamedObjectives(): void diff --git a/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php b/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php index 1a4f9999ae9b..56154f372cf7 100755 --- a/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php +++ b/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php @@ -510,7 +510,7 @@ public function getSkillHTML( $skill_html = $this->renderSkillHTML($a_top_skill_id, $a_user_id, $a_edit, $a_tref_id); } $skill_html = $uip->getHTML($skill_html); - $main_tpl->addJavaScript("./components/ILIAS/Skill/js/SkillEntries.js"); + $main_tpl->addJavaScript("assets/js/SkillEntries.js"); return $skill_html; } diff --git a/components/ILIAS/Skill/Skill.php b/components/ILIAS/Skill/Skill.php index 79dab88e0866..dbcd9d334653 100644 --- a/components/ILIAS/Skill/Skill.php +++ b/components/ILIAS/Skill/Skill.php @@ -36,5 +36,7 @@ public function init( new \ilSkillSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "SkillEntries.js"); } } diff --git a/components/ILIAS/Skill/js/SkillEntries.js b/components/ILIAS/Skill/resources/SkillEntries.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Skill/js/SkillEntries.js rename to components/ILIAS/Skill/resources/SkillEntries.js diff --git a/components/ILIAS/StaticURL/StaticURL.php b/components/ILIAS/StaticURL/StaticURL.php index f4ce746465f3..d9b0b08733a2 100644 --- a/components/ILIAS/StaticURL/StaticURL.php +++ b/components/ILIAS/StaticURL/StaticURL.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\StaticURL\SetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "goto.php"); } } diff --git a/public/goto.php b/components/ILIAS/StaticURL/resources/goto.php old mode 100755 new mode 100644 similarity index 99% rename from public/goto.php rename to components/ILIAS/StaticURL/resources/goto.php index 163ddc4cd4a2..a29cd7dbb9d6 --- a/public/goto.php +++ b/components/ILIAS/StaticURL/resources/goto.php @@ -29,4 +29,4 @@ $static_url = $DIC['static_url']; $static_url->handler()->performRedirect( $static_url->builder()->getBaseURI() -); +); \ No newline at end of file diff --git a/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php b/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php index a07c03d83a01..17e40ac1be67 100755 --- a/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php +++ b/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php @@ -81,7 +81,7 @@ public function __construct( // Add this js manually here because the modal contains a form that is // loaded asynchronously later on, and this JS won't be pulled then for // some reason. - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); + $tpl->addJavaScript("assets/js/Form.js"); } public function executeCommand(): void { diff --git a/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php b/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php index b511db1481db..c15425b87d43 100755 --- a/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php +++ b/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php @@ -268,7 +268,7 @@ protected function addJavaScript() } iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript("./components/ILIAS/Accordion/js/accordion.js", true, 3); + $this->tpl->addJavaScript("assets/js/accordion.js", true, 3); $this->js_added = true; } diff --git a/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php b/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php index 64dae0a15404..39e708cbdd59 100755 --- a/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php +++ b/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php @@ -63,7 +63,7 @@ public static function addJavascript(): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $tpl->addJavaScript("assets/js/ilExplorer.js"); } /** diff --git a/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php b/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php index f3425b534fcd..4afb4adb45b7 100755 --- a/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php +++ b/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php @@ -1615,23 +1615,23 @@ public static function getContentStylePath( return $path; } else { // todo: work this out - return "../components/ILIAS/COPage/css/content.css"; + return "./components/ILIAS/COPage/css/content.css"; } } public static function getContentPrintStyle(): string { - return "../components/ILIAS/COPage/css/print_content.css"; + return "./components/ILIAS/COPage/css/print_content.css"; } public static function getSyntaxStylePath(): string { - return "../components/ILIAS/COPage/css/syntaxhighlight.css"; + return "./components/ILIAS/COPage/css/syntaxhighlight.css"; } public static function getBaseContentStylePath(): string { - return "../components/ILIAS/COPage/css/content_base.css"; + return "./components/ILIAS/COPage/css/content_base.css"; } public function update(): bool diff --git a/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php b/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php index efe0232be64e..34dfd99701a3 100755 --- a/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php +++ b/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php @@ -24,6 +24,29 @@ class ilImagePathResolver implements ImagePathResolver { public function resolveImagePath(string $image_path): string { - return ilUtil::getImagePath($image_path); + global $DIC; + + $styleDefinition = $DIC["styleDefinition"] ?? null; + + // default image + $default_img = "./assets/images/" . $image_path; + + // use ilStyleDefinition instead of account to get the current skin and style + $current_skin = ilStyleDefinition::getCurrentSkin(); + $current_style = ilStyleDefinition::getCurrentStyle(); + + $skin_img = ""; + + if (is_object($styleDefinition) && $current_skin != "default") { + $image_dir = $styleDefinition->getImageDirectory($current_style); + $skin_img = "./Customizing/global/skin/" . + $current_skin . "/" . $current_style . "/" . $image_dir . "/" . $image_path; + } + + if (file_exists($skin_img)) { + return $skin_img; // found image for skin and style + } + + return $default_img; // take image in default } } diff --git a/components/ILIAS/Survey/Survey.php b/components/ILIAS/Survey/Survey.php index 31c7eb5cefa4..ad72be6ccc39 100644 --- a/components/ILIAS/Survey/Survey.php +++ b/components/ILIAS/Survey/Survey.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "survey.css"); } } diff --git a/components/ILIAS/Survey/templates/default/survey.css b/components/ILIAS/Survey/resources/survey.css similarity index 100% rename from components/ILIAS/Survey/templates/default/survey.css rename to components/ILIAS/Survey/resources/survey.css diff --git a/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php b/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php index c951cda7ff93..c55a835adc2c 100755 --- a/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php +++ b/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php @@ -393,7 +393,7 @@ public function insert( $a_tpl->parseCurrentBlock(); $tpl = $this->tpl; - $tpl->addJavaScript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $tpl->addJavaScript("./components/ILIAS/SurveyQuestionPool/Categories/js/categorywizard.js"); + $tpl->addJavaScript("assets/js/ServiceFormWizardInput.js"); + $tpl->addJavaScript("assets/js/categorywizard.js"); } } diff --git a/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php b/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php index b40703fa3ca3..33a88c8be437 100644 --- a/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php +++ b/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "categorywizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "matrixrowwizard.js"); } } diff --git a/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php b/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php index 084cbdd8500d..b884c070d4b7 100755 --- a/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php +++ b/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php @@ -228,7 +228,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $tpl = $this->tpl; - $tpl->addJavaScript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $tpl->addJavaScript("./components/ILIAS/SurveyQuestionPool/js/matrixrowwizard.js"); + $tpl->addJavaScript("assets/js/ServiceFormWizardInput.js"); + $tpl->addJavaScript("assets/js/matrixrowwizard.js"); } } diff --git a/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php b/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php index c9809941c7a6..5cecf3548165 100755 --- a/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php +++ b/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php @@ -91,7 +91,7 @@ public function executeCommand(): void ); } - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css", "components/ILIAS/Survey"), "screen"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css"), "screen"); $this->prepareOutput(); $cmd = $this->ctrl->getCmd("questions"); diff --git a/components/ILIAS/SurveyQuestionPool/Categories/js/categorywizard.js b/components/ILIAS/SurveyQuestionPool/resources/categorywizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/SurveyQuestionPool/Categories/js/categorywizard.js rename to components/ILIAS/SurveyQuestionPool/resources/categorywizard.js diff --git a/components/ILIAS/SurveyQuestionPool/js/matrixrowwizard.js b/components/ILIAS/SurveyQuestionPool/resources/matrixrowwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/SurveyQuestionPool/js/matrixrowwizard.js rename to components/ILIAS/SurveyQuestionPool/resources/matrixrowwizard.js diff --git a/components/ILIAS/Table/Table.php b/components/ILIAS/Table/Table.php index 6fa6dbe8096a..8e5717dffbb6 100644 --- a/components/ILIAS/Table/Table.php +++ b/components/ILIAS/Table/Table.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceTable.js"); } } diff --git a/components/ILIAS/Table/classes/class.ilTable2GUI.php b/components/ILIAS/Table/classes/class.ilTable2GUI.php index a34c03a105d0..842a408af543 100755 --- a/components/ILIAS/Table/classes/class.ilTable2GUI.php +++ b/components/ILIAS/Table/classes/class.ilTable2GUI.php @@ -1515,7 +1515,7 @@ private function renderFilter(): void $filter = $this->getFilterItems(); $opt_filter = $this->getFilterItems(true); - $main_tpl->addJavascript("./components/ILIAS/Table/js/ServiceTable.js"); + $main_tpl->addJavascript("assets/js/ServiceTable.js"); if (count($filter) == 0 && count($opt_filter) == 0) { return; diff --git a/components/ILIAS/Table/js/ServiceTable.js b/components/ILIAS/Table/resources/ServiceTable.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Table/js/ServiceTable.js rename to components/ILIAS/Table/resources/ServiceTable.js diff --git a/components/ILIAS/Tagging/Tagging.php b/components/ILIAS/Tagging/Tagging.php index 5b1fd8554f87..a93fa95ae2ac 100644 --- a/components/ILIAS/Tagging/Tagging.php +++ b/components/ILIAS/Tagging/Tagging.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTagging.js"); } } diff --git a/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php b/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php index 081f6b59af3d..d755dc877c81 100755 --- a/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php +++ b/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php @@ -276,7 +276,7 @@ public static function initJavascript( ilYuiUtil::initConnection($tpl); iljQueryUtil::initjQuery($tpl); - $tpl->addJavaScript("./components/ILIAS/Tagging/js/ilTagging.js"); + $tpl->addJavaScript("assets/js/ilTagging.js"); $tpl->addOnLoadCode("ilTagging.setAjaxUrl('" . $a_ajax_url . "');"); } diff --git a/components/ILIAS/Tagging/js/ilTagging.js b/components/ILIAS/Tagging/resources/ilTagging.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Tagging/js/ilTagging.js rename to components/ILIAS/Tagging/resources/ilTagging.js diff --git a/components/ILIAS/Test/Test.php b/components/ILIAS/Test/Test.php index e24d8cdf6c2d..7c704965098f 100644 --- a/components/ILIAS/Test/Test.php +++ b/components/ILIAS/Test/Test.php @@ -36,5 +36,17 @@ public function init( new \ilTestSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTestPlayerQuestionEditControl.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "settings_confirmation.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_kiosk_header.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_pdf.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_print.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_print_hide_content.css"); } } diff --git a/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php b/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php index f2f2ed0a2928..7acdcdada68a 100755 --- a/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php +++ b/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php @@ -310,7 +310,7 @@ private function populateConfirmationModal( $message .= '

    ' . $this->lng->txt('tst_nonpool_questions_get_lost_warning'); } - $this->tpl->addJavaScript('./components/ILIAS/Test/templates/default/settings_confirmation.js'); + $this->tpl->addJavaScript('assets/js/settings_confirmation.js'); $on_load_code = static function (string $id): string { return 'il.test.confirmSettings.init(' . $id . ')'; }; diff --git a/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php b/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php index 04fa8fc41788..154c4b05927b 100755 --- a/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php +++ b/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php @@ -51,7 +51,7 @@ public function __construct(ilTestScoringByQuestionsGUI $parent_obj, private ilA $this->setFilterCommand(self::PARENT_APPLY_FILTER_CMD); $this->setResetCommand(self::PARENT_RESET_FILTER_CMD); - $this->main_tpl->addJavaScript('./node_modules/tinymce/tinymce.js'); + $this->main_tpl->addJavaScript('node_modules/tinymce/tinymce.js'); $this->setFormAction($this->ctrl->getFormAction($parent_obj, self::PARENT_DEFAULT_CMD)); diff --git a/components/ILIAS/Test/classes/class.ilObjTestGUI.php b/components/ILIAS/Test/classes/class.ilObjTestGUI.php index 8a77fe22b6a2..29c07ae5090c 100755 --- a/components/ILIAS/Test/classes/class.ilObjTestGUI.php +++ b/components/ILIAS/Test/classes/class.ilObjTestGUI.php @@ -2334,7 +2334,7 @@ public function printObject() $template->setVariable("BUTTON_PRINT", $this->lng->txt("print")); $template->parseCurrentBlock(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); $print_date = mktime((int) date("H"), (int) date("i"), (int) date("s"), (int) date("m"), (int) date("d"), (int) date("Y")); $max_points = 0; @@ -2393,7 +2393,7 @@ public function reviewobject() $this->getTabsManager()->getQuestionsSubTabs(); $template = new ilTemplate("tpl.il_as_tst_print_test_confirm.html", true, true, "components/ILIAS/Test"); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); $max_points = 0; $counter = 1; diff --git a/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php b/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php index 34aa378a1341..d2f1eda2a9b8 100755 --- a/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php +++ b/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php @@ -392,10 +392,10 @@ private function showUserResults($show_pass_details, $show_answers, $show_reache if ($template instanceof ilTemplate) { $this->main_tpl->setVariable("ADM_CONTENT", $template->get()); - $this->main_tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->main_tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->getTestObj()->getShowSolutionAnswersOnly()) { $this->main_tpl->addCss( - ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), + ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print" ); } diff --git a/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php b/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php index 2e4f48484b1f..24879c851bd7 100755 --- a/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php @@ -315,7 +315,7 @@ public function detailedEvaluation() $this->ctrl->redirect($this, 'outEvaluation'); } - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css', 'components/ILIAS/Test'), 'print'); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css'), 'print'); $backBtn = $this->ui_factory->button()->standard($this->lng->txt('back'), $this->ctrl->getLinkTarget($this, 'outEvaluation')); $this->toolbar->addComponent($backBtn); @@ -964,9 +964,9 @@ public function outParticipantsPassDetails() protected function setCss(): void { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } $this->tpl->addCss(ilObjStyleSheet::getContentStylePath(0)); } @@ -2047,7 +2047,7 @@ protected function prepareContentForPrint(string $question_title, string $questi $tpl->addCss(\ilUtil::getStyleSheetLocation("filesystem")); $tpl->addCss(\ilObjStyleSheet::getContentPrintStyle()); $tpl->addCss(\ilObjStyleSheet::getSyntaxStylePath()); - $tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); ilMathJax::getInstance()->includeMathJax($tpl); diff --git a/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php b/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php index c1a6d77b4a28..6fcfa841de52 100755 --- a/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php @@ -1376,9 +1376,9 @@ public function outCorrectSolution(): void $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET", ilObjStyleSheet::getSyntaxStylePath()); $this->tpl->parseCurrentBlock(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } $this->tpl->setCurrentBlock("adm_content"); @@ -1438,9 +1438,9 @@ public function showListOfAnswers($active_id, $pass = null, $top_data = "", $bot } } - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } if (strlen($top_data)) { $this->tpl->setCurrentBlock("top_data"); @@ -2433,7 +2433,7 @@ protected function populateQuestionEditControl(assQuestionGUI $question_gui): vo $config['questionLocked'] = $this->isParticipantsAnswerFixed($question_gui->object->getId()); $config['nextQuestionLocks'] = $this->object->isFollowupQuestionAnswerFixationEnabled(); - $this->tpl->addJavascript('./components/ILIAS/Test/js/ilTestPlayerQuestionEditControl.js'); + $this->tpl->addJavascript('assets/js/ilTestPlayerQuestionEditControl.js'); $this->tpl->addOnLoadCode('il.TestPlayerQuestionEditControl.init(' . json_encode($config) . ')'); } // fau. diff --git a/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php b/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php index 0ee665bbbdf5..ca4543793699 100755 --- a/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php @@ -78,9 +78,9 @@ protected function showManScoringByQuestionParticipantsTable($manPointsPost = [] $this->tpl->addJavaScript($mathJaxSetting->get("path_to_mathjax")); } - $this->tpl->addJavaScript("./components/ILIAS/JavaScript/js/Basic.js"); - $this->tpl->addJavaScript("./components/ILIAS/Form/js/Form.js"); - $this->tpl->addJavascript('./components/ILIAS/UIComponent/Modal/js/Modal.js'); + $this->tpl->addJavaScript("assets/js/Basic.js"); + $this->tpl->addJavaScript("assets/js/Form.js"); + $this->tpl->addJavascript('assets/js/Modal.js'); $this->lng->toJSMap(['answer' => $this->lng->txt('answer')]); $table = new ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI($this, $this->access); diff --git a/components/ILIAS/Test/classes/class.ilTestServiceGUI.php b/components/ILIAS/Test/classes/class.ilTestServiceGUI.php index 4e295d152426..07daaada8017 100755 --- a/components/ILIAS/Test/classes/class.ilTestServiceGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestServiceGUI.php @@ -1145,9 +1145,9 @@ protected function outCorrectSolution(): void $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET", ilObjStyleSheet::getSyntaxStylePath()); $this->tpl->parseCurrentBlock(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } $solution = $this->getCorrectSolutionOutput($active_id, $active_id, $pass, $objectives_list); diff --git a/components/ILIAS/Test/js/ilTestPlayerQuestionEditControl.js b/components/ILIAS/Test/resources/ilTestPlayerQuestionEditControl.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Test/js/ilTestPlayerQuestionEditControl.js rename to components/ILIAS/Test/resources/ilTestPlayerQuestionEditControl.js diff --git a/components/ILIAS/Test/templates/default/settings_confirmation.js b/components/ILIAS/Test/resources/settings_confirmation.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Test/templates/default/settings_confirmation.js rename to components/ILIAS/Test/resources/settings_confirmation.js diff --git a/components/ILIAS/Test/templates/default/test_kiosk_header.css b/components/ILIAS/Test/resources/test_kiosk_header.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_kiosk_header.css rename to components/ILIAS/Test/resources/test_kiosk_header.css diff --git a/components/ILIAS/Test/templates/default/test_pdf.css b/components/ILIAS/Test/resources/test_pdf.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_pdf.css rename to components/ILIAS/Test/resources/test_pdf.css diff --git a/components/ILIAS/Test/templates/default/test_print.css b/components/ILIAS/Test/resources/test_print.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_print.css rename to components/ILIAS/Test/resources/test_print.css diff --git a/components/ILIAS/Test/templates/default/test_print_hide_content.css b/components/ILIAS/Test/resources/test_print_hide_content.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_print_hide_content.css rename to components/ILIAS/Test/resources/test_print_hide_content.css diff --git a/components/ILIAS/Test/templates/default/autosave.js b/components/ILIAS/Test/templates/default/autosave.js deleted file mode 100755 index f3be699cd2a1..000000000000 --- a/components/ILIAS/Test/templates/default/autosave.js +++ /dev/null @@ -1,47 +0,0 @@ -var handleSuccess = function(o) -{ - if (o.responseText !== undefined) - { - if ((o.responseText.indexOf("http") == 0) || (o.responseText.indexOf("ilias.php") == 0)) - { - window.location.href = o.responseText; - } - else if(o.responseText != '-IGNORE-') - { - document.getElementById("autosavemessage").innerHTML = o.responseText; - var stay = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 1 } }, 4); - var fadeOut = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 0 } }, 1); - stay.onComplete.subscribe(function() { fadeOut.animate(); }); - stay.animate(); - } - } -}; - -var handleFailure = function(o) -{ - if (o.responseText !== undefined) - { - document.getElementById("autosavemessage").innerHTML = o.responseText; - var stay = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 1 } }, 4); - var fadeOut = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 0 } }, 1); - stay.onComplete.subscribe(function() { fadeOut.animate(); }); - stay.animate(); - } -}; - -var callback = -{ - success:handleSuccess, - failure:handleFailure -}; - -function autosave(sUrl) -{ - if (typeof tinyMCE != 'undefined') - { - if (tinyMCE) tinyMCE.triggerSave(); - } - formObject = document.getElementById('taForm'); - YAHOO.util.Connect.setForm(formObject); - YAHOO.util.Connect.asyncRequest('POST', sUrl, callback); -} diff --git a/components/ILIAS/TestQuestionPool/TestQuestionPool.php b/components/ILIAS/TestQuestionPool/TestQuestionPool.php index 19138ef9a455..3adc095d0317 100644 --- a/components/ILIAS/TestQuestionPool/TestQuestionPool.php +++ b/components/ILIAS/TestQuestionPool/TestQuestionPool.php @@ -36,5 +36,53 @@ public function init( new \ilTestQuestionPoolSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "answerwizardinput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "answerwizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "essaykeywordwizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "multiplechoicewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "singlechoicewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "imagemap.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "kprimchoicewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilAssKprimChoice.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "orderinghorizontal.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "matchingpairwizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "identifiedwizardinput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilMatchingQuestion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilAssMultipleChoice.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "nested_ordering.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "testQuestionPoolTagInput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "errortext.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "longMenuQuestionGapBuilder.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "longMenuQuestion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "longMenuQuestionPlayer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "matchinginput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "bootstrap-tagsinput_2015_25_03.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "typeahead_0.11.1.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("nestable2/dist/jquery.nestable.min.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php index 3f592c5fb613..33e555cc0fad 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php @@ -371,7 +371,7 @@ private function generateQuestionOutput($selections, $show_question_only): strin $template->setVariable("ERRORTEXT_VALUE", join(',', $selections['user'])); $this->tpl->addOnLoadCode('il.test.player.errortext.init()'); - $this->tpl->addJavascript('./components/ILIAS/TestQuestionPool/templates/default/errortext.js'); + $this->tpl->addJavascript('assets/js/errortext.js'); $questionoutput = $template->get(); if ($show_question_only) { diff --git a/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php index 01867fba4fda..b2e9898d756e 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php @@ -288,8 +288,8 @@ public function populateQuestionSpecificFormPart(ilPropertyFormGUI $form): ilPro $answers = $this->request->raw('hidden_text_files'); } - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionGapBuilder.js'); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/longMenuQuestion.js'); + $this->tpl->addJavaScript('assets/js/longMenuQuestionGapBuilder.js'); + $this->tpl->addJavaScript('assets/js/longMenuQuestion.js'); $tpl = new ilTemplate("tpl.il_as_qpl_longmenu_question_gap.html", true, true, "components/ILIAS/TestQuestionPool"); $tpl->setVariable('MAX_INPUT_FIELDS', assLongMenu::MAX_INPUT_FIELDS); $tpl->setVariable('GAP_PLACEHOLDER', assLongMenu::GAP_PLACEHOLDER); @@ -446,7 +446,7 @@ public function getTestOutput( protected function getTemplateForPreviewAndTest(array $user_solution): ilTemplate { $template = new ilTemplate("tpl.il_as_qpl_longmenu_question_output.html", true, true, "components/ILIAS/TestQuestionPool"); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionPlayer.js'); + $this->tpl->addJavaScript('assets/js/longMenuQuestionPlayer.js'); $this->tpl->addOnLoadCode('il.test.player.longmenu.init(' . $this->object->getMinAutoComplete() . ', ' . json_encode($this->object->getAvailableAnswerOptions()) diff --git a/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php index 1dfee257219b..9582a72751b1 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php @@ -635,11 +635,11 @@ public function getPreview($show_question_only = false, $showInlineFeedback = fa if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js'); + $this->tpl->addJavaScript('assets/js/ilMatchingQuestion.js'); $this->tpl->addOnLoadCode('ilMatchingQuestionInit();'); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css', 'components/ILIAS/TestQuestionPool')); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css')); $template = new ilTemplate("tpl.il_as_qpl_matching_output.html", true, true, "components/ILIAS/TestQuestionPool"); @@ -806,11 +806,11 @@ public function getTestOutput($active_id, $pass, $is_postponed = false, $user_po if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js'); + $this->tpl->addJavaScript('assets/js/ilMatchingQuestion.js'); $this->tpl->addOnLoadCode('ilMatchingQuestionInit();'); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css', 'components/ILIAS/TestQuestionPool')); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css')); $template = new ilTemplate("tpl.il_as_qpl_matching_output.html", true, true, "components/ILIAS/TestQuestionPool"); diff --git a/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php index 76c7b7427e40..29ff9b34bebb 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php @@ -532,7 +532,7 @@ public function getTestOutput( } } // generate the question output - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js'); + $this->tpl->addJavaScript('assets/js/ilAssMultipleChoice.js'); $this->tpl->addOnLoadCode('ilAssMultipleChoiceCharCounterInit();'); $template = new ilTemplate("tpl.il_as_qpl_mc_mr_output.html", true, true, "components/ILIAS/TestQuestionPool"); @@ -619,7 +619,7 @@ public function setUseEmptySolutionInputChecked($useEmptySolutionInputChecked): protected function getUseUnchangedAnswerCheckboxHtml(): string { // hey: prevPassSolutions - use abstracted template to share with other purposes of this kind - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js'); + $this->tpl->addJavaScript('assets/js/ilAssMultipleChoice.js'); $tpl = new ilTemplate('tpl.tst_question_additional_behaviour_checkbox.html', true, true, 'components/ILIAS/TestQuestionPool'); diff --git a/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php index 9e08a12bf922..e1c23ee30133 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php @@ -273,9 +273,9 @@ public function getPreview($show_question_only = false, $showInlineFeedback = fa if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js"); + $this->tpl->addJavascript("assets/js/orderinghorizontal.js"); return $questionoutput; } @@ -335,9 +335,9 @@ public function getTestOutput($active_id, $pass, $is_postponed = false, $use_pos if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js"); + $this->tpl->addJavascript("assets/js/orderinghorizontal.js"); $questionoutput = $template->get(); $pageoutput = $this->outQuestionPage("", $is_postponed, $active_id, $questionoutput); return $pageoutput; diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php index 7d36b425c0c7..da0aeae19a56 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php @@ -369,8 +369,8 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/answerwizard.js"); } /** diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php index 32b452caaf8e..09085655ca66 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php @@ -616,7 +616,7 @@ private function buildSkillSelectorToolbarGUI(): ilToolbarGUI private function buildQuestionPage(assQuestionGUI $questionGUI) { - $this->tpl->addCss('../components/ILIAS/COPage/css/content.css'); + $this->tpl->addCss('./assets/css/content.css'); $pageGUI = new ilAssQuestionPageGUI($questionGUI->object->getId()); diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php index d67138f4c1bb..f49e03166abf 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php @@ -179,7 +179,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/essaykeywordwizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/essaykeywordwizard.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php index a309d4282e76..d748b2f5e021 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php @@ -316,9 +316,9 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->setVariable("PROP_GENERIC", $tpl->get()); $a_tpl->parseCurrentBlock(); - $this->tpl->addJavascript("components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("components/ILIAS/TestQuestionPool/templates/default/kprimchoicewizard.js"); - $this->tpl->addJavascript('components/ILIAS/TestQuestionPool/js/ilAssKprimChoice.js'); + $this->tpl->addJavascript("assets/js/answerwizardinput.js"); + $this->tpl->addJavascript("assets/js/kprimchoicewizard.js"); + $this->tpl->addJavascript('assets/js/ilAssKprimChoice.js'); } public function checkUploads($foundvalues): bool diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php index 6d8846e81aab..ae4fdd7456a7 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php @@ -201,8 +201,8 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $lng = $DIC['lng']; $global_tpl = $DIC['tpl']; - $global_tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $global_tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/matchingpairwizard.js"); + $global_tpl->addJavascript("asserts/js/answerwizardinput.js"); + $global_tpl->addJavascript("asserts/js/matchingpairwizard.js"); $tpl = new ilTemplate("tpl.prop_matchingpairinput.html", true, true, "components/ILIAS/TestQuestionPool"); $i = 0; diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php index 5014dd11ef0b..b989ecd71dda 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php @@ -273,7 +273,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $lng = $DIC['lng']; $global_tpl = $DIC['tpl']; - $global_tpl->addJavascript('./components/ILIAS/TestQuestionPool/templates/default/matchinginput.js'); + $global_tpl->addJavascript('assets/js/matchinginput.js'); $global_tpl->addOnLoadCode('il.test.matchingquestion.init();'); $tpl = new ilTemplate("tpl.prop_matchingwizardinput.html", true, true, "components/ILIAS/TestQuestionPool"); diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php index 3052458d437e..a3137778e880 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php @@ -375,8 +375,8 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/multiplechoicewizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/multiplechoicewizard.js"); } public function setPending(string $a_val): void diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php index 526373c68406..307a890e487d 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php @@ -190,7 +190,7 @@ public function executeCommand(): void $this->prepareOutput(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css', 'components/ILIAS/Test'), 'print'); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css'), 'print'); $q_type = ''; if (!(in_array($next_class, ['', 'ilobjquestionpoolgui']) && $cmd == 'questions') && $q_id < 1) { diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php index c7357f56ca15..c779363edfda 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php @@ -536,7 +536,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/singlechoicewizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/singlechoicewizard.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php index 3ffb7d646ef8..cfe23b8d35eb 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php @@ -460,8 +460,8 @@ protected function showUnitsOfCategory(): void $category = $this->getCategoryById($this->request->int('category_id'), false); - $this->tpl->addJavaScript("./components/ILIAS/JavaScript/js/Basic.js"); - $this->tpl->addJavaScript("./components/ILIAS/Form/js/Form.js"); + $this->tpl->addJavaScript("assets/js/Basic.js"); + $this->tpl->addJavaScript("assets/js/Form.js"); $this->lng->loadLanguageModule('form'); $ilToolbar->addButton( diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php index 4cca5e388c20..7827d61d8d72 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php @@ -165,7 +165,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - #$tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - #$tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/imagemap.js"); + #$tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + #$tpl->addJavascript(assets/js/imagemap.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php index 22125984ef48..5c6cc0ca9448 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php @@ -378,7 +378,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->setVariable("PROP_GENERIC", $template->get()); $a_tpl->parseCurrentBlock(); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/imagemap.js"); + $this->tpl->addJavascript("asserts/js/answerwizardinput.js"); + $this->tpl->addJavascript("asserts/js/imagemap.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php index 1cdbeaaccbc7..0df89589bfc4 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php @@ -404,8 +404,8 @@ public function render(string $a_mode = ""): string ); JS; - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js"); + $this->tpl->addJavascript("asserts/js/answerwizardinput.js"); + $this->tpl->addJavascript("asserts/js/identifiedwizardinput.js"); $this->tpl->addOnLoadCode($init_code); } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php index a098584866dc..c13622287dda 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php @@ -437,7 +437,7 @@ protected function renderJsInit(): void $config['itemClass'] = $this->getCssItemClass(); $config['handleClass'] = $this->getCssHandleClass(); - $this->global_tpl->addJavaScript('components/ILIAS/TestQuestionPool/templates/default/nested_ordering.js'); + $this->global_tpl->addJavaScript('assets/js/nested_ordering.js'); $this->global_tpl->addOnLoadCode("nested_ordering_input.init('" . $this->getInstanceId() . "', '" . $this->getPostVarSubField('indentation') . "', " @@ -448,15 +448,15 @@ protected function renderJsInit(): void public function render(string $a_mode = ""): string { if ($this->isStylingEnabled()) { - $this->getGlobalTpl()->addCss('components/ILIAS/Form/css/nested_ordering.css'); - $this->getGlobalTpl()->addCss('components/ILIAS/COPage/css/content.css'); + $this->getGlobalTpl()->addCss('assets/css/nested_ordering.css'); + $this->getGlobalTpl()->addCss('assets/css/content.css'); } if ($this->isInteractionEnabled()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->getGlobalTpl()->addJavaScript('./node_modules/nestable2/dist/jquery.nestable.min.js'); + $this->getGlobalTpl()->addJavaScript('assets/js/jquery.nestable.min.js'); $this->renderJsInit(); return $this->renderMainList(); diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php index 136b08b0cc23..4607dfce6909 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php @@ -184,8 +184,8 @@ public function render(string $a_mode = ""): string . '"reindexingRequiredElementsSelectors": ["input:text", "button"], ' . '"handleRowCleanUpCallback": function(rowElem) {$(rowElem).find("input:text").val("")}' . '}'; - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js"); + $this->tpl->addJavascript("asserts/js/answerwizardinput.js"); + $this->tpl->addJavascript("asserts/js/identifiedwizardinput.js"); $this->tpl->addOnLoadCode("$.extend({}, AnswerWizardInput, IdentifiedWizardInput).init({$config});"); } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php index b74ba9dd2956..fd22164cbc32 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php @@ -142,8 +142,8 @@ public function __construct($a_title = "", $a_postvar = "") $this->lng = $DIC->language(); parent::__construct($a_title, $a_postvar); $this->setType("tag_input"); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.js'); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/typeahead_0.11.1.js'); + $this->tpl->addJavaScript('assets/js/bootstrap-tagsinput_2015_25_03.js'); + $this->tpl->addJavaScript('assets/js/typeahead_0.11.1.js'); $this->tpl->addCss('./components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.css'); } @@ -183,7 +183,7 @@ public function checkInput(): bool */ public function render(): string { - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/templates/default/tagInput.js'); + $this->tpl->addJavaScript('assets/js/testQuestionPoolTagInput.js'); $config = [ 'min_length' => $this->type_ahead_min_length, 'limit' => $this->type_ahead_limit, diff --git a/components/ILIAS/TestQuestionPool/templates/default/answerwizard.js b/components/ILIAS/TestQuestionPool/resources/answerwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/answerwizard.js rename to components/ILIAS/TestQuestionPool/resources/answerwizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js b/components/ILIAS/TestQuestionPool/resources/answerwizardinput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js rename to components/ILIAS/TestQuestionPool/resources/answerwizardinput.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.js b/components/ILIAS/TestQuestionPool/resources/bootstrap-tagsinput_2015_25_03.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.js rename to components/ILIAS/TestQuestionPool/resources/bootstrap-tagsinput_2015_25_03.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/errortext.js b/components/ILIAS/TestQuestionPool/resources/errortext.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/errortext.js rename to components/ILIAS/TestQuestionPool/resources/errortext.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/essaykeywordwizard.js b/components/ILIAS/TestQuestionPool/resources/essaykeywordwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/essaykeywordwizard.js rename to components/ILIAS/TestQuestionPool/resources/essaykeywordwizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js b/components/ILIAS/TestQuestionPool/resources/identifiedwizardinput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js rename to components/ILIAS/TestQuestionPool/resources/identifiedwizardinput.js diff --git a/components/ILIAS/TestQuestionPool/js/ilAssKprimChoice.js b/components/ILIAS/TestQuestionPool/resources/ilAssKprimChoice.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/js/ilAssKprimChoice.js rename to components/ILIAS/TestQuestionPool/resources/ilAssKprimChoice.js diff --git a/components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js b/components/ILIAS/TestQuestionPool/resources/ilAssMultipleChoice.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js rename to components/ILIAS/TestQuestionPool/resources/ilAssMultipleChoice.js diff --git a/components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js b/components/ILIAS/TestQuestionPool/resources/ilMatchingQuestion.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js rename to components/ILIAS/TestQuestionPool/resources/ilMatchingQuestion.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/imagemap.js b/components/ILIAS/TestQuestionPool/resources/imagemap.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/imagemap.js rename to components/ILIAS/TestQuestionPool/resources/imagemap.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/kprimchoicewizard.js b/components/ILIAS/TestQuestionPool/resources/kprimchoicewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/kprimchoicewizard.js rename to components/ILIAS/TestQuestionPool/resources/kprimchoicewizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/longMenuQuestion.js b/components/ILIAS/TestQuestionPool/resources/longMenuQuestion.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/longMenuQuestion.js rename to components/ILIAS/TestQuestionPool/resources/longMenuQuestion.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionGapBuilder.js b/components/ILIAS/TestQuestionPool/resources/longMenuQuestionGapBuilder.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionGapBuilder.js rename to components/ILIAS/TestQuestionPool/resources/longMenuQuestionGapBuilder.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionPlayer.js b/components/ILIAS/TestQuestionPool/resources/longMenuQuestionPlayer.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionPlayer.js rename to components/ILIAS/TestQuestionPool/resources/longMenuQuestionPlayer.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/matchinginput.js b/components/ILIAS/TestQuestionPool/resources/matchinginput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/matchinginput.js rename to components/ILIAS/TestQuestionPool/resources/matchinginput.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/matchingpairwizard.js b/components/ILIAS/TestQuestionPool/resources/matchingpairwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/matchingpairwizard.js rename to components/ILIAS/TestQuestionPool/resources/matchingpairwizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/multiplechoicewizard.js b/components/ILIAS/TestQuestionPool/resources/multiplechoicewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/multiplechoicewizard.js rename to components/ILIAS/TestQuestionPool/resources/multiplechoicewizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/nested_ordering.js b/components/ILIAS/TestQuestionPool/resources/nested_ordering.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/nested_ordering.js rename to components/ILIAS/TestQuestionPool/resources/nested_ordering.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js b/components/ILIAS/TestQuestionPool/resources/orderinghorizontal.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js rename to components/ILIAS/TestQuestionPool/resources/orderinghorizontal.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/singlechoicewizard.js b/components/ILIAS/TestQuestionPool/resources/singlechoicewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/singlechoicewizard.js rename to components/ILIAS/TestQuestionPool/resources/singlechoicewizard.js diff --git a/components/ILIAS/TestQuestionPool/resources/testQuestionPoolTagInput.js b/components/ILIAS/TestQuestionPool/resources/testQuestionPoolTagInput.js new file mode 100644 index 000000000000..0c53eb2b7918 --- /dev/null +++ b/components/ILIAS/TestQuestionPool/resources/testQuestionPoolTagInput.js @@ -0,0 +1,115 @@ +const ilBootstrapTaggingOnLoad = (() => { + const pub = {}; + const pri = {}; + pub.terms = []; + pub.ids = []; + pub.selected_terms = []; + pub.callbackItemAdded = {}; + pub.callbackItemRemoved = {}; + + pub.appendId = (id) => { + const pos = $.inArray(id, pub.ids); + if (pos === -1) { + pub.ids.push(id); + } + }; + + pub.appendTerms = (id, terms) => { + if (typeof pub.terms === 'undefined') { + pub.terms = []; + } + const pos = $.inArray(id, pub.terms); + if (pos === -1) { + pub.terms[id] = terms; + } + }; + + pub.initConfig = (config) => { + pri.config = config; + }; + + pub.Init = () => { + $.each(pub.ids, (key, element) => { + let { terms } = pub; + + if (!Array.isArray(terms) || !terms.every((x) => typeof x === 'string')) { + terms = pub.terms[key]; + } + + $(element).tagsinput({ + typeaheadjs: [{ + minLength: parseInt(pri.config.min_length, 10), + highlight: pri.config.highlight, + }, { + limit: parseInt(pri.config.limit, 10), + source: pri.substringMatcher(terms, key), + + }], + freeInput: false, + maxTags: pri.config.maxtags, + maxChars: pri.config.maxchars, + allowDuplicates: pri.config.allow_duplicates, + }); + + pri.preventFormSubmissionOnEnterInTypeahead(); + + $(element).on('itemAdded', (elem) => { + if (typeof pub.callbackItemAdded === 'function') { + pub.callbackItemAdded(); + if ($(element).tagsinput()[0].options.allowDuplicates !== true) { + if (pub.selected_terms[key] === undefined) { + pub.selected_terms[key] = []; + } + const pos = $.inArray(elem.item, pub.selected_terms[key]); + if (pos === -1) { + pub.selected_terms[key].push(elem.item); + } + } + } + }); + + $(element).on('itemRemoved', (elem) => { + if (typeof pub.callbackItemRemoved === 'function') { + pub.callbackItemRemoved(); + if ($(element).tagsinput()[0].options.allowDuplicates !== true) { + const pos = $.inArray(elem.item, pub.selected_terms[key]); + + if (pos > -1) { + pub.selected_terms[key].splice(pos, 1); + } + } + } + }); + }); + }; + + pri.substringMatcher = (strings, key) => function findMatches(query, callback) { + let matches; let substringRegex; let + pos; + matches = []; + substringRegex = new RegExp(query, pri.config.case); + $.each(strings, (i, str) => { + if (substringRegex.test(str)) { + pos = $.inArray(str, pub.selected_terms[key]); + if (pos === -1) { + matches.push(str); + } + } + }); + callback(matches); + }; + + pri.preventFormSubmissionOnEnterInTypeahead = () => { + $(document).ready(() => { + $('.twitter-typeahead').keydown((event) => { + if ((event.keyCode === 13)) { + event.preventDefault(); + return false; + } + }); + }); + }; + + return pub; +} +)(); diff --git a/components/ILIAS/TestQuestionPool/templates/default/typeahead_0.11.1.js b/components/ILIAS/TestQuestionPool/resources/typeahead_0.11.1.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/typeahead_0.11.1.js rename to components/ILIAS/TestQuestionPool/resources/typeahead_0.11.1.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/tagInput.js b/components/ILIAS/TestQuestionPool/templates/default/tagInput.js deleted file mode 100755 index a81b390da5ac..000000000000 --- a/components/ILIAS/TestQuestionPool/templates/default/tagInput.js +++ /dev/null @@ -1,131 +0,0 @@ -var ilBootstrapTaggingOnLoad = (() => - { - 'use strict'; - let pub = {}, - pri = {}; - pub.terms = []; - pub.ids = []; - pub.selected_terms = []; - pub.callbackItemAdded = {}; - pub.callbackItemRemoved = {}; - - pub.appendId = (id) => - { - let pos = $.inArray(id, pub.ids); - if (pos === -1) - { - pub.ids.push(id); - } - - }; - - pub.appendTerms = (id, terms) => - { - if (typeof pub.terms === "undefined") - { - pub.terms = []; - } - let pos = $.inArray(id, pub.terms); - if (pos === -1) - { - pub.terms[id] = terms; - } - }; - - pub.initConfig = (config) => { - pri.config = config; - }; - - pub.Init = () => - { - $.each(pub.ids, function(key, element){ - let terms = pub.terms; - - if (!Array.isArray(terms) || !terms.every(x => typeof x === 'string')) { - terms = pub.terms[key]; - } - - $(element).tagsinput({ - typeaheadjs: [{ - minLength: parseInt(pri.config.min_length , 10), - highlight: pri.config.highlight - },{ - limit: parseInt(pri.config.limit, 10), - source: pri.substringMatcher(terms, key) - - }], - freeInput : false, - maxTags : pri.config.maxtags, - maxChars : pri.config.maxchars, - allowDuplicates : pri.config.allow_duplicates - }); - - pri.preventFormSubmissionOnEnterInTypeahead(); - - $(element).on('itemAdded', function(elem) { - if (typeof pub.callbackItemAdded === 'function') { - pub.callbackItemAdded(); - if($(element).tagsinput()[0].options.allowDuplicates !== true) - { - if(pub.selected_terms[key] === undefined) - { - pub.selected_terms[key] = []; - } - let pos = $.inArray(elem.item, pub.selected_terms[key]); - if (pos === -1) { - pub.selected_terms[key].push(elem.item); - } - } - } - }); - - $(element).on('itemRemoved', function(elem) { - if (typeof pub.callbackItemRemoved === 'function') { - pub.callbackItemRemoved(); - if($(element).tagsinput()[0].options.allowDuplicates !== true) - { - let pos = $.inArray(elem.item, pub.selected_terms[key]); - - if (pos > -1) { - pub.selected_terms[key].splice(pos, 1); - } - } - } - }); - }); - }; - - pri.substringMatcher = (strings, key) => - { - return function findMatches(query, callback) { - let matches, substringRegex, pos; - matches = []; - substringRegex = new RegExp(query, pri.config.case); - $.each(strings, function(i, str) { - if (substringRegex.test(str)) { - pos = $.inArray(str, pub.selected_terms[key]); - if(pos === -1) - { - matches.push(str); - } - } - }); - callback(matches); - }; - }; - - pri.preventFormSubmissionOnEnterInTypeahead = () => - { - $(document).ready(function() { - $('.twitter-typeahead').keydown(function(event){ - if( (event.keyCode === 13)) { - event.preventDefault(); - return false; - } - }); - }); - }; - - return pub; - } -)(); \ No newline at end of file diff --git a/components/ILIAS/Tracking/Tracking.php b/components/ILIAS/Tracking/Tracking.php index cdfb2de9e224..c9f82ddf7636 100644 --- a/components/ILIAS/Tracking/Tracking.php +++ b/components/ILIAS/Tracking/Tracking.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilObjStat.js"); } } diff --git a/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php b/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php index e202f6c2ff16..45c76ca77888 100755 --- a/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php +++ b/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php @@ -716,6 +716,6 @@ protected function initLearningProgressDetailsLayer(): void ilYuiUtil::initOverlay(); iljQueryUtil::initjQuery(); - $tpl->addJavascript("./components/ILIAS/Tracking/js/ilObjStat.js"); + $tpl->addJavascript("assets/js/ilObjStat.js"); } } diff --git a/components/ILIAS/Tracking/js/ilObjStat.js b/components/ILIAS/Tracking/resources/ilObjStat.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Tracking/js/ilObjStat.js rename to components/ILIAS/Tracking/resources/ilObjStat.js diff --git a/components/ILIAS/UI/UI.php b/components/ILIAS/UI/UI.php index c364bf3c9b9e..52012548ac20 100644 --- a/components/ILIAS/UI/UI.php +++ b/components/ILIAS/UI/UI.php @@ -32,6 +32,88 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Button/button.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Chart/Bar/dist/bar.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Core/dist/core.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Counter/dist/counter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Dropdown/dropdown.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Dropzone/File/dropzone.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Image/dist/image.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Container/dist/filter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/dist/input.factory.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/dynamic_inputs_renderer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/file.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/groups.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/input.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/tagInput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Item/dist/notification.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/MainControls/dist/mainbar.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/MainControls/dist/maincontrols.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/MainControls/system_info.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Menu/dist/drilldown.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Modal/modal.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Page/stdpage.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Popover/popover.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Table/dist/table.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Toast/toast.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Tree/tree.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/ViewControl/dist/viewcontrols.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "images", "assets"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "fonts", "assets"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("@yaireo/tagify/dist/tagify.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("@yaireo/tagify/dist/tagify.css"); + + // This is included via anonymous classes as a testament to the fact, that + // the templates-folder should probably be move to some component. + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "templates/default/delos.css"; + } + public function getTarget(): string + { + return "assets/css/delos.css"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "templates/default/delos_cont.css"; + } + public function getTarget(): string + { + return "assets/css/delos_cont.css"; + } + }; } } diff --git a/public/templates/default/fonts/Iconfont/Readme.md b/components/ILIAS/UI/resources/fonts/Iconfont/Readme.md similarity index 100% rename from public/templates/default/fonts/Iconfont/Readme.md rename to components/ILIAS/UI/resources/fonts/Iconfont/Readme.md diff --git a/public/templates/default/fonts/Iconfont/il-icons.eot b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.eot similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.eot rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.eot diff --git a/public/templates/default/fonts/Iconfont/il-icons.json b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.json similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.json rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.json diff --git a/public/templates/default/fonts/Iconfont/il-icons.svg b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.svg similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.svg rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.svg diff --git a/public/templates/default/fonts/Iconfont/il-icons.ttf b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.ttf similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.ttf rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.ttf diff --git a/public/templates/default/fonts/Iconfont/il-icons.woff b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.woff similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.woff rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.woff diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Bold.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Bold.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Bold.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Bold.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-BoldItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-BoldItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-ExtraBold.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBold.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-ExtraBold.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBold.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Italic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Italic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Italic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Italic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Light.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Light.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Light.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Light.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-LightItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-LightItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-LightItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-LightItalic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Regular.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Regular.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Regular.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Regular.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Semibold.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Semibold.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Semibold.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Semibold.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-SemiboldItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-SemiboldItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-SemiboldItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-SemiboldItalic.ttf diff --git a/public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.otf b/components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.otf similarity index 100% rename from public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.otf rename to components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.otf diff --git a/public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.ttf b/components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.ttf similarity index 100% rename from public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.ttf rename to components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.ttf diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/README.txt b/components/ILIAS/UI/resources/fonts/OpenSansWeb/README.txt similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/README.txt rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/README.txt diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.eot b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.eot similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.eot rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.eot diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.svg b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.svg similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.svg rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.svg diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.ttf b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.ttf similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.ttf rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.ttf diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff2 similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff2 rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff2 diff --git a/public/templates/default/images/README.md b/components/ILIAS/UI/resources/images/README.md similarity index 100% rename from public/templates/default/images/README.md rename to components/ILIAS/UI/resources/images/README.md diff --git a/public/templates/default/images/ROADMAP.md b/components/ILIAS/UI/resources/images/ROADMAP.md similarity index 100% rename from public/templates/default/images/ROADMAP.md rename to components/ILIAS/UI/resources/images/ROADMAP.md diff --git a/public/templates/default/images/auth/cas_login_button.png b/components/ILIAS/UI/resources/images/auth/cas_login_button.png similarity index 100% rename from public/templates/default/images/auth/cas_login_button.png rename to components/ILIAS/UI/resources/images/auth/cas_login_button.png diff --git a/public/templates/default/images/auth/shib_login_button.svg b/components/ILIAS/UI/resources/images/auth/shib_login_button.svg similarity index 100% rename from public/templates/default/images/auth/shib_login_button.svg rename to components/ILIAS/UI/resources/images/auth/shib_login_button.svg diff --git a/public/templates/default/images/browser/blank.png b/components/ILIAS/UI/resources/images/browser/blank.png similarity index 100% rename from public/templates/default/images/browser/blank.png rename to components/ILIAS/UI/resources/images/browser/blank.png diff --git a/public/templates/default/images/browser/forceexp.png b/components/ILIAS/UI/resources/images/browser/forceexp.png similarity index 100% rename from public/templates/default/images/browser/forceexp.png rename to components/ILIAS/UI/resources/images/browser/forceexp.png diff --git a/public/templates/default/images/browser/minus.png b/components/ILIAS/UI/resources/images/browser/minus.png similarity index 100% rename from public/templates/default/images/browser/minus.png rename to components/ILIAS/UI/resources/images/browser/minus.png diff --git a/public/templates/default/images/browser/plus.png b/components/ILIAS/UI/resources/images/browser/plus.png similarity index 100% rename from public/templates/default/images/browser/plus.png rename to components/ILIAS/UI/resources/images/browser/plus.png diff --git a/public/templates/default/images/cont_tile/cont_tile_default.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_bibl.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_bibl.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_bibl.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_bibl.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_blog.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_blog.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_blog.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_blog.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_book.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_book.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_book.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_book.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_cat.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cat.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_cat.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cat.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_catr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_catr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_catr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_catr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_chatr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_chatr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_chatr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_chatr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_cld.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cld.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_cld.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cld.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_crs.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crs.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_crs.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crs.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_crsr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crsr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_crsr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crsr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_dcl.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_dcl.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_dcl.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_dcl.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_exc.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_exc.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_exc.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_exc.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_file.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_file.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_file.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_file.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_fold.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_fold.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_fold.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_fold.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_frm.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_frm.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_frm.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_frm.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_glo.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_glo.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_glo.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_glo.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_grp.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grp.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_grp.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grp.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_grpr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grpr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_grpr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grpr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_htlm.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_htlm.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_htlm.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_htlm.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_iass.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_iass.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_iass.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_iass.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_lres.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lres.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_lres.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lres.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_lso.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lso.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_lso.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lso.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_mcst.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mcst.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_mcst.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mcst.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_mep.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mep.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_mep.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mep.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_prg.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prg.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_prg.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prg.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_prtt.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prtt.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_prtt.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prtt.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_sess.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_sess.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_sess.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_sess.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_spl.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_spl.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_spl.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_spl.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_tst.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_tst.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_tst.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_tst.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_webr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_webr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_webr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_webr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_wiki.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_wiki.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_wiki.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_wiki.svg diff --git a/public/templates/default/images/contentstyle/FramedBack.png b/components/ILIAS/UI/resources/images/contentstyle/FramedBack.png similarity index 100% rename from public/templates/default/images/contentstyle/FramedBack.png rename to components/ILIAS/UI/resources/images/contentstyle/FramedBack.png diff --git a/public/templates/default/images/contentstyle/advknow.png b/components/ILIAS/UI/resources/images/contentstyle/advknow.png similarity index 100% rename from public/templates/default/images/contentstyle/advknow.png rename to components/ILIAS/UI/resources/images/contentstyle/advknow.png diff --git a/public/templates/default/images/copyrights/all_rights_reserved.svg b/components/ILIAS/UI/resources/images/copyrights/all_rights_reserved.svg similarity index 100% rename from public/templates/default/images/copyrights/all_rights_reserved.svg rename to components/ILIAS/UI/resources/images/copyrights/all_rights_reserved.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_avi.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_avi.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_avi.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_avi.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_bmp.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_bmp.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_bmp.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_bmp.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_csv.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_csv.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_csv.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_csv.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_docx.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_docx.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_docx.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_docx.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_flv.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_flv.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_flv.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_flv.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_gif.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_gif.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_gif.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_gif.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_ico.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_ico.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_ico.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_ico.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_jpg.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_jpg.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_jpg.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_jpg.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_md.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_md.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_md.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_md.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_mov.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_mov.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_mov.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_mov.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_mp3.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp3.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_mp3.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp3.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_mp4.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp4.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_mp4.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp4.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_odp.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_odp.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_odp.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_odp.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_ods.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_ods.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_ods.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_ods.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_odt.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_odt.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_odt.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_odt.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_pdf.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_pdf.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_pdf.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_pdf.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_png.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_png.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_png.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_png.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_pptx.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_pptx.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_pptx.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_pptx.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_rtf.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_rtf.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_rtf.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_rtf.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_svg.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_svg.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_svg.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_svg.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_tiff.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_tiff.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_tiff.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_tiff.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_txt.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_txt.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_txt.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_txt.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_wav.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_wav.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_wav.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_wav.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_wma.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_wma.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_wma.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_wma.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_xlsx.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_xlsx.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_xlsx.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_xlsx.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_xml.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_xml.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_xml.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_xml.svg diff --git a/public/templates/default/images/learning_progress/completed.svg b/components/ILIAS/UI/resources/images/learning_progress/completed.svg similarity index 100% rename from public/templates/default/images/learning_progress/completed.svg rename to components/ILIAS/UI/resources/images/learning_progress/completed.svg diff --git a/public/templates/default/images/learning_progress/failed.svg b/components/ILIAS/UI/resources/images/learning_progress/failed.svg similarity index 100% rename from public/templates/default/images/learning_progress/failed.svg rename to components/ILIAS/UI/resources/images/learning_progress/failed.svg diff --git a/public/templates/default/images/learning_progress/in_progress.svg b/components/ILIAS/UI/resources/images/learning_progress/in_progress.svg similarity index 100% rename from public/templates/default/images/learning_progress/in_progress.svg rename to components/ILIAS/UI/resources/images/learning_progress/in_progress.svg diff --git a/public/templates/default/images/learning_progress/not_attempted.svg b/components/ILIAS/UI/resources/images/learning_progress/not_attempted.svg similarity index 100% rename from public/templates/default/images/learning_progress/not_attempted.svg rename to components/ILIAS/UI/resources/images/learning_progress/not_attempted.svg diff --git a/public/templates/default/images/learning_progress/short/asset.svg b/components/ILIAS/UI/resources/images/learning_progress/short/asset.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/asset.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/asset.svg diff --git a/public/templates/default/images/learning_progress/short/completed.svg b/components/ILIAS/UI/resources/images/learning_progress/short/completed.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/completed.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/completed.svg diff --git a/public/templates/default/images/learning_progress/short/failed.svg b/components/ILIAS/UI/resources/images/learning_progress/short/failed.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/failed.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/failed.svg diff --git a/public/templates/default/images/learning_progress/short/in_progress.svg b/components/ILIAS/UI/resources/images/learning_progress/short/in_progress.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/in_progress.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/in_progress.svg diff --git a/public/templates/default/images/learning_progress/short/not_attempted.svg b/components/ILIAS/UI/resources/images/learning_progress/short/not_attempted.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/not_attempted.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/not_attempted.svg diff --git a/public/templates/default/images/learning_progress/short/running.svg b/components/ILIAS/UI/resources/images/learning_progress/short/running.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/running.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/running.svg diff --git a/public/templates/default/images/license.txt b/components/ILIAS/UI/resources/images/license.txt similarity index 100% rename from public/templates/default/images/license.txt rename to components/ILIAS/UI/resources/images/license.txt diff --git a/public/templates/default/images/logo/HeaderIcon.svg b/components/ILIAS/UI/resources/images/logo/HeaderIcon.svg similarity index 100% rename from public/templates/default/images/logo/HeaderIcon.svg rename to components/ILIAS/UI/resources/images/logo/HeaderIcon.svg diff --git a/public/templates/default/images/logo/HeaderIconAvatar.svg b/components/ILIAS/UI/resources/images/logo/HeaderIconAvatar.svg similarity index 100% rename from public/templates/default/images/logo/HeaderIconAvatar.svg rename to components/ILIAS/UI/resources/images/logo/HeaderIconAvatar.svg diff --git a/public/templates/default/images/logo/HeaderIconResponsive.svg b/components/ILIAS/UI/resources/images/logo/HeaderIconResponsive.svg similarity index 100% rename from public/templates/default/images/logo/HeaderIconResponsive.svg rename to components/ILIAS/UI/resources/images/logo/HeaderIconResponsive.svg diff --git a/public/templates/default/images/logo/Sharing.jpg b/components/ILIAS/UI/resources/images/logo/Sharing.jpg similarity index 100% rename from public/templates/default/images/logo/Sharing.jpg rename to components/ILIAS/UI/resources/images/logo/Sharing.jpg diff --git a/public/templates/default/images/logo/favicon.ico b/components/ILIAS/UI/resources/images/logo/favicon.ico similarity index 100% rename from public/templates/default/images/logo/favicon.ico rename to components/ILIAS/UI/resources/images/logo/favicon.ico diff --git a/public/templates/default/images/logo/ilias_logo_114x114-precomposed.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_114x114-precomposed.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_114x114-precomposed.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_114x114-precomposed.png diff --git a/public/templates/default/images/logo/ilias_logo_114x114.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_114x114.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_114x114.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_114x114.png diff --git a/public/templates/default/images/logo/ilias_logo_57x57-precomposed.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_57x57-precomposed.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_57x57-precomposed.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_57x57-precomposed.png diff --git a/public/templates/default/images/logo/ilias_logo_57x57.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_57x57.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_57x57.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_57x57.png diff --git a/public/templates/default/images/logo/ilias_logo_72x72-precomposed.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_72x72-precomposed.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_72x72-precomposed.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_72x72-precomposed.png diff --git a/public/templates/default/images/logo/ilias_logo_72x72.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_72x72.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_72x72.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_72x72.png diff --git a/public/templates/default/images/logo/ilias_logo_startup_320x460.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_startup_320x460.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_startup_320x460.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_startup_320x460.png diff --git a/public/templates/default/images/media/bigplay.svg b/components/ILIAS/UI/resources/images/media/bigplay.svg similarity index 100% rename from public/templates/default/images/media/bigplay.svg rename to components/ILIAS/UI/resources/images/media/bigplay.svg diff --git a/public/templates/default/images/media/black60.png b/components/ILIAS/UI/resources/images/media/black60.png similarity index 100% rename from public/templates/default/images/media/black60.png rename to components/ILIAS/UI/resources/images/media/black60.png diff --git a/public/templates/default/images/media/enlarge.svg b/components/ILIAS/UI/resources/images/media/enlarge.svg similarity index 100% rename from public/templates/default/images/media/enlarge.svg rename to components/ILIAS/UI/resources/images/media/enlarge.svg diff --git a/public/templates/default/images/media/loader.svg b/components/ILIAS/UI/resources/images/media/loader.svg similarity index 100% rename from public/templates/default/images/media/loader.svg rename to components/ILIAS/UI/resources/images/media/loader.svg diff --git a/public/templates/default/images/media/loading.gif b/components/ILIAS/UI/resources/images/media/loading.gif similarity index 100% rename from public/templates/default/images/media/loading.gif rename to components/ILIAS/UI/resources/images/media/loading.gif diff --git a/public/templates/default/images/media/mcst_preview.svg b/components/ILIAS/UI/resources/images/media/mcst_preview.svg similarity index 100% rename from public/templates/default/images/media/mcst_preview.svg rename to components/ILIAS/UI/resources/images/media/mcst_preview.svg diff --git a/public/templates/default/images/media/play.svg b/components/ILIAS/UI/resources/images/media/play.svg similarity index 100% rename from public/templates/default/images/media/play.svg rename to components/ILIAS/UI/resources/images/media/play.svg diff --git a/public/templates/default/images/media/spacer.png b/components/ILIAS/UI/resources/images/media/spacer.png similarity index 100% rename from public/templates/default/images/media/spacer.png rename to components/ILIAS/UI/resources/images/media/spacer.png diff --git a/public/templates/default/images/media/time_warn.svg b/components/ILIAS/UI/resources/images/media/time_warn.svg similarity index 100% rename from public/templates/default/images/media/time_warn.svg rename to components/ILIAS/UI/resources/images/media/time_warn.svg diff --git a/public/templates/default/images/nav/arrow_downright.svg b/components/ILIAS/UI/resources/images/nav/arrow_downright.svg similarity index 100% rename from public/templates/default/images/nav/arrow_downright.svg rename to components/ILIAS/UI/resources/images/nav/arrow_downright.svg diff --git a/public/templates/default/images/nav/arrow_upright.svg b/components/ILIAS/UI/resources/images/nav/arrow_upright.svg similarity index 100% rename from public/templates/default/images/nav/arrow_upright.svg rename to components/ILIAS/UI/resources/images/nav/arrow_upright.svg diff --git a/public/templates/default/images/nav/jstree.svg b/components/ILIAS/UI/resources/images/nav/jstree.svg similarity index 100% rename from public/templates/default/images/nav/jstree.svg rename to components/ILIAS/UI/resources/images/nav/jstree.svg diff --git a/public/templates/default/images/nav/nav_arr2_L.png b/components/ILIAS/UI/resources/images/nav/nav_arr2_L.png similarity index 100% rename from public/templates/default/images/nav/nav_arr2_L.png rename to components/ILIAS/UI/resources/images/nav/nav_arr2_L.png diff --git a/public/templates/default/images/nav/nav_arr_L.png b/components/ILIAS/UI/resources/images/nav/nav_arr_L.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_L.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_L.png diff --git a/public/templates/default/images/nav/nav_arr_L_s.png b/components/ILIAS/UI/resources/images/nav/nav_arr_L_s.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_L_s.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_L_s.png diff --git a/public/templates/default/images/nav/nav_arr_R.png b/components/ILIAS/UI/resources/images/nav/nav_arr_R.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_R.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_R.png diff --git a/public/templates/default/images/nav/nav_arr_R_s.png b/components/ILIAS/UI/resources/images/nav/nav_arr_R_s.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_R_s.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_R_s.png diff --git a/public/templates/default/images/nav/tree_col.svg b/components/ILIAS/UI/resources/images/nav/tree_col.svg similarity index 100% rename from public/templates/default/images/nav/tree_col.svg rename to components/ILIAS/UI/resources/images/nav/tree_col.svg diff --git a/public/templates/default/images/nav/tree_exp.svg b/components/ILIAS/UI/resources/images/nav/tree_exp.svg similarity index 100% rename from public/templates/default/images/nav/tree_exp.svg rename to components/ILIAS/UI/resources/images/nav/tree_exp.svg diff --git a/public/templates/default/images/object/answered.svg b/components/ILIAS/UI/resources/images/object/answered.svg similarity index 100% rename from public/templates/default/images/object/answered.svg rename to components/ILIAS/UI/resources/images/object/answered.svg diff --git a/public/templates/default/images/object/answered_not.svg b/components/ILIAS/UI/resources/images/object/answered_not.svg similarity index 100% rename from public/templates/default/images/object/answered_not.svg rename to components/ILIAS/UI/resources/images/object/answered_not.svg diff --git a/public/templates/default/images/object/cell.svg b/components/ILIAS/UI/resources/images/object/cell.svg similarity index 100% rename from public/templates/default/images/object/cell.svg rename to components/ILIAS/UI/resources/images/object/cell.svg diff --git a/public/templates/default/images/object/checkbox_checked.png b/components/ILIAS/UI/resources/images/object/checkbox_checked.png similarity index 100% rename from public/templates/default/images/object/checkbox_checked.png rename to components/ILIAS/UI/resources/images/object/checkbox_checked.png diff --git a/public/templates/default/images/object/checkbox_unchecked.png b/components/ILIAS/UI/resources/images/object/checkbox_unchecked.png similarity index 100% rename from public/templates/default/images/object/checkbox_unchecked.png rename to components/ILIAS/UI/resources/images/object/checkbox_unchecked.png diff --git a/public/templates/default/images/object/col.svg b/components/ILIAS/UI/resources/images/object/col.svg similarity index 100% rename from public/templates/default/images/object/col.svg rename to components/ILIAS/UI/resources/images/object/col.svg diff --git a/public/templates/default/images/object/marked.svg b/components/ILIAS/UI/resources/images/object/marked.svg similarity index 100% rename from public/templates/default/images/object/marked.svg rename to components/ILIAS/UI/resources/images/object/marked.svg diff --git a/public/templates/default/images/object/marked_.svg b/components/ILIAS/UI/resources/images/object/marked_.svg similarity index 100% rename from public/templates/default/images/object/marked_.svg rename to components/ILIAS/UI/resources/images/object/marked_.svg diff --git a/public/templates/default/images/object/notification_off.svg b/components/ILIAS/UI/resources/images/object/notification_off.svg similarity index 100% rename from public/templates/default/images/object/notification_off.svg rename to components/ILIAS/UI/resources/images/object/notification_off.svg diff --git a/public/templates/default/images/object/notification_on.svg b/components/ILIAS/UI/resources/images/object/notification_on.svg similarity index 100% rename from public/templates/default/images/object/notification_on.svg rename to components/ILIAS/UI/resources/images/object/notification_on.svg diff --git a/public/templates/default/images/object/radiobutton_checked.png b/components/ILIAS/UI/resources/images/object/radiobutton_checked.png similarity index 100% rename from public/templates/default/images/object/radiobutton_checked.png rename to components/ILIAS/UI/resources/images/object/radiobutton_checked.png diff --git a/public/templates/default/images/object/radiobutton_unchecked.png b/components/ILIAS/UI/resources/images/object/radiobutton_unchecked.png similarity index 100% rename from public/templates/default/images/object/radiobutton_unchecked.png rename to components/ILIAS/UI/resources/images/object/radiobutton_unchecked.png diff --git a/public/templates/default/images/object/row.svg b/components/ILIAS/UI/resources/images/object/row.svg similarity index 100% rename from public/templates/default/images/object/row.svg rename to components/ILIAS/UI/resources/images/object/row.svg diff --git a/public/templates/default/images/object/target.svg b/components/ILIAS/UI/resources/images/object/target.svg similarity index 100% rename from public/templates/default/images/object/target.svg rename to components/ILIAS/UI/resources/images/object/target.svg diff --git a/public/templates/default/images/object/wizard.svg b/components/ILIAS/UI/resources/images/object/wizard.svg similarity index 100% rename from public/templates/default/images/object/wizard.svg rename to components/ILIAS/UI/resources/images/object/wizard.svg diff --git a/public/templates/default/images/page_editor/icon_peac.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peac.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peac.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peac.svg diff --git a/public/templates/default/images/page_editor/icon_peadl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peadl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peadl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peadl.svg diff --git a/public/templates/default/images/page_editor/icon_peadt.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peadt.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peadt.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peadt.svg diff --git a/public/templates/default/images/page_editor/icon_pean.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pean.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pean.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pean.svg diff --git a/public/templates/default/images/page_editor/icon_pecd.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecd.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecd.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecd.svg diff --git a/public/templates/default/images/page_editor/icon_pech.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pech.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pech.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pech.svg diff --git a/public/templates/default/images/page_editor/icon_pecl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecl.svg diff --git a/public/templates/default/images/page_editor/icon_peclp.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peclp.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peclp.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peclp.svg diff --git a/public/templates/default/images/page_editor/icon_pecom.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecom.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecom.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecom.svg diff --git a/public/templates/default/images/page_editor/icon_pecrs.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecrs.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecrs.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecrs.svg diff --git a/public/templates/default/images/page_editor/icon_pecrt.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecrt.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecrt.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecrt.svg diff --git a/public/templates/default/images/page_editor/icon_pecs.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecs.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecs.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecs.svg diff --git a/public/templates/default/images/page_editor/icon_pedt.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pedt.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pedt.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pedt.svg diff --git a/public/templates/default/images/page_editor/icon_pefl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pefl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pefl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pefl.svg diff --git a/public/templates/default/images/page_editor/icon_peim.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peim.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peim.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peim.svg diff --git a/public/templates/default/images/page_editor/icon_pelh.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pelh.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pelh.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pelh.svg diff --git a/public/templates/default/images/page_editor/icon_pemed.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pemed.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pemed.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pemed.svg diff --git a/public/templates/default/images/page_editor/icon_pemp.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pemp.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pemp.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pemp.svg diff --git a/public/templates/default/images/page_editor/icon_pepd.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pepd.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pepd.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pepd.svg diff --git a/public/templates/default/images/page_editor/icon_pepe.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pepe.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pepe.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pepe.svg diff --git a/public/templates/default/images/page_editor/icon_pepl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pepl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pepl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pepl.svg diff --git a/public/templates/default/images/page_editor/icon_peplh.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peplh.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peplh.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peplh.svg diff --git a/public/templates/default/images/page_editor/icon_pequ.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pequ.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pequ.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pequ.svg diff --git a/public/templates/default/images/page_editor/icon_perl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_perl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_perl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_perl.svg diff --git a/public/templates/default/images/page_editor/icon_personal_settings.svg b/components/ILIAS/UI/resources/images/page_editor/icon_personal_settings.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_personal_settings.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_personal_settings.svg diff --git a/public/templates/default/images/page_editor/icon_pesc.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pesc.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pesc.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pesc.svg diff --git a/public/templates/default/images/page_editor/icon_petmp.svg b/components/ILIAS/UI/resources/images/page_editor/icon_petmp.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_petmp.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_petmp.svg diff --git a/public/templates/default/images/page_editor/icon_peusr.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peusr.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peusr.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peusr.svg diff --git a/public/templates/default/images/page_editor/icon_pewl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pewl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pewl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pewl.svg diff --git a/public/templates/default/images/placeholder/file_placeholder.svg b/components/ILIAS/UI/resources/images/placeholder/file_placeholder.svg similarity index 100% rename from public/templates/default/images/placeholder/file_placeholder.svg rename to components/ILIAS/UI/resources/images/placeholder/file_placeholder.svg diff --git a/public/templates/default/images/placeholder/media_placeholder.png b/components/ILIAS/UI/resources/images/placeholder/media_placeholder.png similarity index 100% rename from public/templates/default/images/placeholder/media_placeholder.png rename to components/ILIAS/UI/resources/images/placeholder/media_placeholder.png diff --git a/public/templates/default/images/placeholder/media_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/media_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/media_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/media_placeholder_thumb.png diff --git a/public/templates/default/images/placeholder/no_photo_xsmall.jpg b/components/ILIAS/UI/resources/images/placeholder/no_photo_xsmall.jpg similarity index 100% rename from public/templates/default/images/placeholder/no_photo_xsmall.jpg rename to components/ILIAS/UI/resources/images/placeholder/no_photo_xsmall.jpg diff --git a/public/templates/default/images/placeholder/no_photo_xxsmall.jpg b/components/ILIAS/UI/resources/images/placeholder/no_photo_xxsmall.jpg similarity index 100% rename from public/templates/default/images/placeholder/no_photo_xxsmall.jpg rename to components/ILIAS/UI/resources/images/placeholder/no_photo_xxsmall.jpg diff --git a/public/templates/default/images/placeholder/pred_text_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/pred_text_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/pred_text_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/pred_text_placeholder_thumb.png diff --git a/public/templates/default/images/placeholder/question_placeholder.png b/components/ILIAS/UI/resources/images/placeholder/question_placeholder.png similarity index 100% rename from public/templates/default/images/placeholder/question_placeholder.png rename to components/ILIAS/UI/resources/images/placeholder/question_placeholder.png diff --git a/public/templates/default/images/placeholder/question_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/question_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/question_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/question_placeholder_thumb.png diff --git a/public/templates/default/images/placeholder/text_placeholder.png b/components/ILIAS/UI/resources/images/placeholder/text_placeholder.png similarity index 100% rename from public/templates/default/images/placeholder/text_placeholder.png rename to components/ILIAS/UI/resources/images/placeholder/text_placeholder.png diff --git a/public/templates/default/images/placeholder/text_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/text_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/text_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/text_placeholder_thumb.png diff --git a/public/templates/default/images/scorm/asset.png b/components/ILIAS/UI/resources/images/scorm/asset.png similarity index 100% rename from public/templates/default/images/scorm/asset.png rename to components/ILIAS/UI/resources/images/scorm/asset.png diff --git a/public/templates/default/images/scorm/asset.svg b/components/ILIAS/UI/resources/images/scorm/asset.svg similarity index 100% rename from public/templates/default/images/scorm/asset.svg rename to components/ILIAS/UI/resources/images/scorm/asset.svg diff --git a/public/templates/default/images/scorm/asset_s.png b/components/ILIAS/UI/resources/images/scorm/asset_s.png similarity index 100% rename from public/templates/default/images/scorm/asset_s.png rename to components/ILIAS/UI/resources/images/scorm/asset_s.png diff --git a/public/templates/default/images/scorm/browsed.png b/components/ILIAS/UI/resources/images/scorm/browsed.png similarity index 100% rename from public/templates/default/images/scorm/browsed.png rename to components/ILIAS/UI/resources/images/scorm/browsed.png diff --git a/public/templates/default/images/scorm/browsed_s.png b/components/ILIAS/UI/resources/images/scorm/browsed_s.png similarity index 100% rename from public/templates/default/images/scorm/browsed_s.png rename to components/ILIAS/UI/resources/images/scorm/browsed_s.png diff --git a/public/templates/default/images/scorm/complete.png b/components/ILIAS/UI/resources/images/scorm/complete.png similarity index 100% rename from public/templates/default/images/scorm/complete.png rename to components/ILIAS/UI/resources/images/scorm/complete.png diff --git a/public/templates/default/images/scorm/complete.svg b/components/ILIAS/UI/resources/images/scorm/complete.svg similarity index 100% rename from public/templates/default/images/scorm/complete.svg rename to components/ILIAS/UI/resources/images/scorm/complete.svg diff --git a/public/templates/default/images/scorm/complete_s.png b/components/ILIAS/UI/resources/images/scorm/complete_s.png similarity index 100% rename from public/templates/default/images/scorm/complete_s.png rename to components/ILIAS/UI/resources/images/scorm/complete_s.png diff --git a/public/templates/default/images/scorm/completed.png b/components/ILIAS/UI/resources/images/scorm/completed.png similarity index 100% rename from public/templates/default/images/scorm/completed.png rename to components/ILIAS/UI/resources/images/scorm/completed.png diff --git a/public/templates/default/images/scorm/completed.svg b/components/ILIAS/UI/resources/images/scorm/completed.svg similarity index 100% rename from public/templates/default/images/scorm/completed.svg rename to components/ILIAS/UI/resources/images/scorm/completed.svg diff --git a/public/templates/default/images/scorm/completed_s.png b/components/ILIAS/UI/resources/images/scorm/completed_s.png similarity index 100% rename from public/templates/default/images/scorm/completed_s.png rename to components/ILIAS/UI/resources/images/scorm/completed_s.png diff --git a/public/templates/default/images/scorm/empty.png b/components/ILIAS/UI/resources/images/scorm/empty.png similarity index 100% rename from public/templates/default/images/scorm/empty.png rename to components/ILIAS/UI/resources/images/scorm/empty.png diff --git a/public/templates/default/images/scorm/failed.png b/components/ILIAS/UI/resources/images/scorm/failed.png similarity index 100% rename from public/templates/default/images/scorm/failed.png rename to components/ILIAS/UI/resources/images/scorm/failed.png diff --git a/public/templates/default/images/scorm/failed.svg b/components/ILIAS/UI/resources/images/scorm/failed.svg similarity index 100% rename from public/templates/default/images/scorm/failed.svg rename to components/ILIAS/UI/resources/images/scorm/failed.svg diff --git a/public/templates/default/images/scorm/failed_s.png b/components/ILIAS/UI/resources/images/scorm/failed_s.png similarity index 100% rename from public/templates/default/images/scorm/failed_s.png rename to components/ILIAS/UI/resources/images/scorm/failed_s.png diff --git a/public/templates/default/images/scorm/in_progress.png b/components/ILIAS/UI/resources/images/scorm/in_progress.png similarity index 100% rename from public/templates/default/images/scorm/in_progress.png rename to components/ILIAS/UI/resources/images/scorm/in_progress.png diff --git a/public/templates/default/images/scorm/incomplete.png b/components/ILIAS/UI/resources/images/scorm/incomplete.png similarity index 100% rename from public/templates/default/images/scorm/incomplete.png rename to components/ILIAS/UI/resources/images/scorm/incomplete.png diff --git a/public/templates/default/images/scorm/incomplete.svg b/components/ILIAS/UI/resources/images/scorm/incomplete.svg similarity index 100% rename from public/templates/default/images/scorm/incomplete.svg rename to components/ILIAS/UI/resources/images/scorm/incomplete.svg diff --git a/public/templates/default/images/scorm/incomplete_s.png b/components/ILIAS/UI/resources/images/scorm/incomplete_s.png similarity index 100% rename from public/templates/default/images/scorm/incomplete_s.png rename to components/ILIAS/UI/resources/images/scorm/incomplete_s.png diff --git a/public/templates/default/images/scorm/not_attempted.png b/components/ILIAS/UI/resources/images/scorm/not_attempted.png similarity index 100% rename from public/templates/default/images/scorm/not_attempted.png rename to components/ILIAS/UI/resources/images/scorm/not_attempted.png diff --git a/public/templates/default/images/scorm/not_attempted.svg b/components/ILIAS/UI/resources/images/scorm/not_attempted.svg similarity index 100% rename from public/templates/default/images/scorm/not_attempted.svg rename to components/ILIAS/UI/resources/images/scorm/not_attempted.svg diff --git a/public/templates/default/images/scorm/not_attempted_s.png b/components/ILIAS/UI/resources/images/scorm/not_attempted_s.png similarity index 100% rename from public/templates/default/images/scorm/not_attempted_s.png rename to components/ILIAS/UI/resources/images/scorm/not_attempted_s.png diff --git a/public/templates/default/images/scorm/passed.png b/components/ILIAS/UI/resources/images/scorm/passed.png similarity index 100% rename from public/templates/default/images/scorm/passed.png rename to components/ILIAS/UI/resources/images/scorm/passed.png diff --git a/public/templates/default/images/scorm/passed.svg b/components/ILIAS/UI/resources/images/scorm/passed.svg similarity index 100% rename from public/templates/default/images/scorm/passed.svg rename to components/ILIAS/UI/resources/images/scorm/passed.svg diff --git a/public/templates/default/images/scorm/passed_s.png b/components/ILIAS/UI/resources/images/scorm/passed_s.png similarity index 100% rename from public/templates/default/images/scorm/passed_s.png rename to components/ILIAS/UI/resources/images/scorm/passed_s.png diff --git a/public/templates/default/images/scorm/running.png b/components/ILIAS/UI/resources/images/scorm/running.png similarity index 100% rename from public/templates/default/images/scorm/running.png rename to components/ILIAS/UI/resources/images/scorm/running.png diff --git a/public/templates/default/images/scorm/running.svg b/components/ILIAS/UI/resources/images/scorm/running.svg similarity index 100% rename from public/templates/default/images/scorm/running.svg rename to components/ILIAS/UI/resources/images/scorm/running.svg diff --git a/public/templates/default/images/scorm/running_s.png b/components/ILIAS/UI/resources/images/scorm/running_s.png similarity index 100% rename from public/templates/default/images/scorm/running_s.png rename to components/ILIAS/UI/resources/images/scorm/running_s.png diff --git a/public/templates/default/images/standard/icon_accs.svg b/components/ILIAS/UI/resources/images/standard/icon_accs.svg similarity index 100% rename from public/templates/default/images/standard/icon_accs.svg rename to components/ILIAS/UI/resources/images/standard/icon_accs.svg diff --git a/public/templates/default/images/standard/icon_achv.svg b/components/ILIAS/UI/resources/images/standard/icon_achv.svg similarity index 100% rename from public/templates/default/images/standard/icon_achv.svg rename to components/ILIAS/UI/resources/images/standard/icon_achv.svg diff --git a/public/templates/default/images/standard/icon_achva.svg b/components/ILIAS/UI/resources/images/standard/icon_achva.svg similarity index 100% rename from public/templates/default/images/standard/icon_achva.svg rename to components/ILIAS/UI/resources/images/standard/icon_achva.svg diff --git a/public/templates/default/images/standard/icon_adm.svg b/components/ILIAS/UI/resources/images/standard/icon_adm.svg similarity index 100% rename from public/templates/default/images/standard/icon_adm.svg rename to components/ILIAS/UI/resources/images/standard/icon_adm.svg diff --git a/public/templates/default/images/standard/icon_adma.svg b/components/ILIAS/UI/resources/images/standard/icon_adma.svg similarity index 100% rename from public/templates/default/images/standard/icon_adma.svg rename to components/ILIAS/UI/resources/images/standard/icon_adma.svg diff --git a/public/templates/default/images/standard/icon_adn.svg b/components/ILIAS/UI/resources/images/standard/icon_adn.svg similarity index 100% rename from public/templates/default/images/standard/icon_adn.svg rename to components/ILIAS/UI/resources/images/standard/icon_adn.svg diff --git a/public/templates/default/images/standard/icon_adve.svg b/components/ILIAS/UI/resources/images/standard/icon_adve.svg similarity index 100% rename from public/templates/default/images/standard/icon_adve.svg rename to components/ILIAS/UI/resources/images/standard/icon_adve.svg diff --git a/public/templates/default/images/standard/icon_alert.svg b/components/ILIAS/UI/resources/images/standard/icon_alert.svg similarity index 100% rename from public/templates/default/images/standard/icon_alert.svg rename to components/ILIAS/UI/resources/images/standard/icon_alert.svg diff --git a/public/templates/default/images/standard/icon_appr.svg b/components/ILIAS/UI/resources/images/standard/icon_appr.svg similarity index 100% rename from public/templates/default/images/standard/icon_appr.svg rename to components/ILIAS/UI/resources/images/standard/icon_appr.svg diff --git a/public/templates/default/images/standard/icon_ass.svg b/components/ILIAS/UI/resources/images/standard/icon_ass.svg similarity index 100% rename from public/templates/default/images/standard/icon_ass.svg rename to components/ILIAS/UI/resources/images/standard/icon_ass.svg diff --git a/public/templates/default/images/standard/icon_assf.svg b/components/ILIAS/UI/resources/images/standard/icon_assf.svg similarity index 100% rename from public/templates/default/images/standard/icon_assf.svg rename to components/ILIAS/UI/resources/images/standard/icon_assf.svg diff --git a/public/templates/default/images/standard/icon_auth.svg b/components/ILIAS/UI/resources/images/standard/icon_auth.svg similarity index 100% rename from public/templates/default/images/standard/icon_auth.svg rename to components/ILIAS/UI/resources/images/standard/icon_auth.svg diff --git a/public/templates/default/images/standard/icon_avatar.svg b/components/ILIAS/UI/resources/images/standard/icon_avatar.svg similarity index 100% rename from public/templates/default/images/standard/icon_avatar.svg rename to components/ILIAS/UI/resources/images/standard/icon_avatar.svg diff --git a/public/templates/default/images/standard/icon_awra.svg b/components/ILIAS/UI/resources/images/standard/icon_awra.svg similarity index 100% rename from public/templates/default/images/standard/icon_awra.svg rename to components/ILIAS/UI/resources/images/standard/icon_awra.svg diff --git a/public/templates/default/images/standard/icon_bdg.svg b/components/ILIAS/UI/resources/images/standard/icon_bdg.svg similarity index 100% rename from public/templates/default/images/standard/icon_bdg.svg rename to components/ILIAS/UI/resources/images/standard/icon_bdg.svg diff --git a/public/templates/default/images/standard/icon_bdga.svg b/components/ILIAS/UI/resources/images/standard/icon_bdga.svg similarity index 100% rename from public/templates/default/images/standard/icon_bdga.svg rename to components/ILIAS/UI/resources/images/standard/icon_bdga.svg diff --git a/public/templates/default/images/standard/icon_bgtk.svg b/components/ILIAS/UI/resources/images/standard/icon_bgtk.svg similarity index 100% rename from public/templates/default/images/standard/icon_bgtk.svg rename to components/ILIAS/UI/resources/images/standard/icon_bgtk.svg diff --git a/public/templates/default/images/standard/icon_bibl.svg b/components/ILIAS/UI/resources/images/standard/icon_bibl.svg similarity index 100% rename from public/templates/default/images/standard/icon_bibl.svg rename to components/ILIAS/UI/resources/images/standard/icon_bibl.svg diff --git a/public/templates/default/images/standard/icon_bibs.svg b/components/ILIAS/UI/resources/images/standard/icon_bibs.svg similarity index 100% rename from public/templates/default/images/standard/icon_bibs.svg rename to components/ILIAS/UI/resources/images/standard/icon_bibs.svg diff --git a/public/templates/default/images/standard/icon_blga.svg b/components/ILIAS/UI/resources/images/standard/icon_blga.svg similarity index 100% rename from public/templates/default/images/standard/icon_blga.svg rename to components/ILIAS/UI/resources/images/standard/icon_blga.svg diff --git a/public/templates/default/images/standard/icon_blog.svg b/components/ILIAS/UI/resources/images/standard/icon_blog.svg similarity index 100% rename from public/templates/default/images/standard/icon_blog.svg rename to components/ILIAS/UI/resources/images/standard/icon_blog.svg diff --git a/public/templates/default/images/standard/icon_book.svg b/components/ILIAS/UI/resources/images/standard/icon_book.svg similarity index 100% rename from public/templates/default/images/standard/icon_book.svg rename to components/ILIAS/UI/resources/images/standard/icon_book.svg diff --git a/public/templates/default/images/standard/icon_cadm.svg b/components/ILIAS/UI/resources/images/standard/icon_cadm.svg similarity index 100% rename from public/templates/default/images/standard/icon_cadm.svg rename to components/ILIAS/UI/resources/images/standard/icon_cadm.svg diff --git a/public/templates/default/images/standard/icon_cal.svg b/components/ILIAS/UI/resources/images/standard/icon_cal.svg similarity index 100% rename from public/templates/default/images/standard/icon_cal.svg rename to components/ILIAS/UI/resources/images/standard/icon_cal.svg diff --git a/public/templates/default/images/standard/icon_calch.svg b/components/ILIAS/UI/resources/images/standard/icon_calch.svg similarity index 100% rename from public/templates/default/images/standard/icon_calch.svg rename to components/ILIAS/UI/resources/images/standard/icon_calch.svg diff --git a/public/templates/default/images/standard/icon_calg.svg b/components/ILIAS/UI/resources/images/standard/icon_calg.svg similarity index 100% rename from public/templates/default/images/standard/icon_calg.svg rename to components/ILIAS/UI/resources/images/standard/icon_calg.svg diff --git a/public/templates/default/images/standard/icon_cals.svg b/components/ILIAS/UI/resources/images/standard/icon_cals.svg similarity index 100% rename from public/templates/default/images/standard/icon_cals.svg rename to components/ILIAS/UI/resources/images/standard/icon_cals.svg diff --git a/public/templates/default/images/standard/icon_cat.svg b/components/ILIAS/UI/resources/images/standard/icon_cat.svg similarity index 100% rename from public/templates/default/images/standard/icon_cat.svg rename to components/ILIAS/UI/resources/images/standard/icon_cat.svg diff --git a/public/templates/default/images/standard/icon_catr.svg b/components/ILIAS/UI/resources/images/standard/icon_catr.svg similarity index 100% rename from public/templates/default/images/standard/icon_catr.svg rename to components/ILIAS/UI/resources/images/standard/icon_catr.svg diff --git a/public/templates/default/images/standard/icon_cert.svg b/components/ILIAS/UI/resources/images/standard/icon_cert.svg similarity index 100% rename from public/templates/default/images/standard/icon_cert.svg rename to components/ILIAS/UI/resources/images/standard/icon_cert.svg diff --git a/public/templates/default/images/standard/icon_chap.svg b/components/ILIAS/UI/resources/images/standard/icon_chap.svg similarity index 100% rename from public/templates/default/images/standard/icon_chap.svg rename to components/ILIAS/UI/resources/images/standard/icon_chap.svg diff --git a/public/templates/default/images/standard/icon_checked.svg b/components/ILIAS/UI/resources/images/standard/icon_checked.svg similarity index 100% rename from public/templates/default/images/standard/icon_checked.svg rename to components/ILIAS/UI/resources/images/standard/icon_checked.svg diff --git a/public/templates/default/images/standard/icon_chp.svg b/components/ILIAS/UI/resources/images/standard/icon_chp.svg similarity index 100% rename from public/templates/default/images/standard/icon_chp.svg rename to components/ILIAS/UI/resources/images/standard/icon_chp.svg diff --git a/public/templates/default/images/standard/icon_chta.png b/components/ILIAS/UI/resources/images/standard/icon_chta.png similarity index 100% rename from public/templates/default/images/standard/icon_chta.png rename to components/ILIAS/UI/resources/images/standard/icon_chta.png diff --git a/public/templates/default/images/standard/icon_chta.svg b/components/ILIAS/UI/resources/images/standard/icon_chta.svg similarity index 100% rename from public/templates/default/images/standard/icon_chta.svg rename to components/ILIAS/UI/resources/images/standard/icon_chta.svg diff --git a/public/templates/default/images/standard/icon_chtr.svg b/components/ILIAS/UI/resources/images/standard/icon_chtr.svg similarity index 100% rename from public/templates/default/images/standard/icon_chtr.svg rename to components/ILIAS/UI/resources/images/standard/icon_chtr.svg diff --git a/public/templates/default/images/standard/icon_cld.svg b/components/ILIAS/UI/resources/images/standard/icon_cld.svg similarity index 100% rename from public/templates/default/images/standard/icon_cld.svg rename to components/ILIAS/UI/resources/images/standard/icon_cld.svg diff --git a/public/templates/default/images/standard/icon_cmis.svg b/components/ILIAS/UI/resources/images/standard/icon_cmis.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmis.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmis.svg diff --git a/public/templates/default/images/standard/icon_cmix.svg b/components/ILIAS/UI/resources/images/standard/icon_cmix.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmix.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmix.svg diff --git a/public/templates/default/images/standard/icon_cmps.svg b/components/ILIAS/UI/resources/images/standard/icon_cmps.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmps.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmps.svg diff --git a/public/templates/default/images/standard/icon_cmxv.svg b/components/ILIAS/UI/resources/images/standard/icon_cmxv.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmxv.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmxv.svg diff --git a/public/templates/default/images/standard/icon_coma.svg b/components/ILIAS/UI/resources/images/standard/icon_coma.svg similarity index 100% rename from public/templates/default/images/standard/icon_coma.svg rename to components/ILIAS/UI/resources/images/standard/icon_coma.svg diff --git a/public/templates/default/images/standard/icon_comp.svg b/components/ILIAS/UI/resources/images/standard/icon_comp.svg similarity index 100% rename from public/templates/default/images/standard/icon_comp.svg rename to components/ILIAS/UI/resources/images/standard/icon_comp.svg diff --git a/public/templates/default/images/standard/icon_coms.svg b/components/ILIAS/UI/resources/images/standard/icon_coms.svg similarity index 100% rename from public/templates/default/images/standard/icon_coms.svg rename to components/ILIAS/UI/resources/images/standard/icon_coms.svg diff --git a/public/templates/default/images/standard/icon_comu.svg b/components/ILIAS/UI/resources/images/standard/icon_comu.svg similarity index 100% rename from public/templates/default/images/standard/icon_comu.svg rename to components/ILIAS/UI/resources/images/standard/icon_comu.svg diff --git a/public/templates/default/images/standard/icon_con.svg b/components/ILIAS/UI/resources/images/standard/icon_con.svg similarity index 100% rename from public/templates/default/images/standard/icon_con.svg rename to components/ILIAS/UI/resources/images/standard/icon_con.svg diff --git a/public/templates/default/images/standard/icon_con_VAR.svg b/components/ILIAS/UI/resources/images/standard/icon_con_VAR.svg similarity index 100% rename from public/templates/default/images/standard/icon_con_VAR.svg rename to components/ILIAS/UI/resources/images/standard/icon_con_VAR.svg diff --git a/public/templates/default/images/standard/icon_copa.svg b/components/ILIAS/UI/resources/images/standard/icon_copa.svg similarity index 100% rename from public/templates/default/images/standard/icon_copa.svg rename to components/ILIAS/UI/resources/images/standard/icon_copa.svg diff --git a/public/templates/default/images/standard/icon_cpad.svg b/components/ILIAS/UI/resources/images/standard/icon_cpad.svg similarity index 100% rename from public/templates/default/images/standard/icon_cpad.svg rename to components/ILIAS/UI/resources/images/standard/icon_cpad.svg diff --git a/public/templates/default/images/standard/icon_crgr.svg b/components/ILIAS/UI/resources/images/standard/icon_crgr.svg similarity index 100% rename from public/templates/default/images/standard/icon_crgr.svg rename to components/ILIAS/UI/resources/images/standard/icon_crgr.svg diff --git a/public/templates/default/images/standard/icon_crs.svg b/components/ILIAS/UI/resources/images/standard/icon_crs.svg similarity index 100% rename from public/templates/default/images/standard/icon_crs.svg rename to components/ILIAS/UI/resources/images/standard/icon_crs.svg diff --git a/public/templates/default/images/standard/icon_crsr.svg b/components/ILIAS/UI/resources/images/standard/icon_crsr.svg similarity index 100% rename from public/templates/default/images/standard/icon_crsr.svg rename to components/ILIAS/UI/resources/images/standard/icon_crsr.svg diff --git a/public/templates/default/images/standard/icon_crss.svg b/components/ILIAS/UI/resources/images/standard/icon_crss.svg similarity index 100% rename from public/templates/default/images/standard/icon_crss.svg rename to components/ILIAS/UI/resources/images/standard/icon_crss.svg diff --git a/public/templates/default/images/standard/icon_crst.svg b/components/ILIAS/UI/resources/images/standard/icon_crst.svg similarity index 100% rename from public/templates/default/images/standard/icon_crst.svg rename to components/ILIAS/UI/resources/images/standard/icon_crst.svg diff --git a/public/templates/default/images/standard/icon_crsv.svg b/components/ILIAS/UI/resources/images/standard/icon_crsv.svg similarity index 100% rename from public/templates/default/images/standard/icon_crsv.svg rename to components/ILIAS/UI/resources/images/standard/icon_crsv.svg diff --git a/public/templates/default/images/standard/icon_dcl.svg b/components/ILIAS/UI/resources/images/standard/icon_dcl.svg similarity index 100% rename from public/templates/default/images/standard/icon_dcl.svg rename to components/ILIAS/UI/resources/images/standard/icon_dcl.svg diff --git a/public/templates/default/images/standard/icon_dcl_file.svg b/components/ILIAS/UI/resources/images/standard/icon_dcl_file.svg similarity index 100% rename from public/templates/default/images/standard/icon_dcl_file.svg rename to components/ILIAS/UI/resources/images/standard/icon_dcl_file.svg diff --git a/public/templates/default/images/standard/icon_dcl_fold.svg b/components/ILIAS/UI/resources/images/standard/icon_dcl_fold.svg similarity index 100% rename from public/templates/default/images/standard/icon_dcl_fold.svg rename to components/ILIAS/UI/resources/images/standard/icon_dcl_fold.svg diff --git a/public/templates/default/images/standard/icon_ddp.svg b/components/ILIAS/UI/resources/images/standard/icon_ddp.svg similarity index 100% rename from public/templates/default/images/standard/icon_ddp.svg rename to components/ILIAS/UI/resources/images/standard/icon_ddp.svg diff --git a/public/templates/default/images/standard/icon_default.svg b/components/ILIAS/UI/resources/images/standard/icon_default.svg similarity index 100% rename from public/templates/default/images/standard/icon_default.svg rename to components/ILIAS/UI/resources/images/standard/icon_default.svg diff --git a/public/templates/default/images/standard/icon_disq.svg b/components/ILIAS/UI/resources/images/standard/icon_disq.svg similarity index 100% rename from public/templates/default/images/standard/icon_disq.svg rename to components/ILIAS/UI/resources/images/standard/icon_disq.svg diff --git a/public/templates/default/images/standard/icon_dpro.svg b/components/ILIAS/UI/resources/images/standard/icon_dpro.svg similarity index 100% rename from public/templates/default/images/standard/icon_dpro.svg rename to components/ILIAS/UI/resources/images/standard/icon_dpro.svg diff --git a/public/templates/default/images/standard/icon_drafts.svg b/components/ILIAS/UI/resources/images/standard/icon_drafts.svg similarity index 100% rename from public/templates/default/images/standard/icon_drafts.svg rename to components/ILIAS/UI/resources/images/standard/icon_drafts.svg diff --git a/public/templates/default/images/standard/icon_dsha.svg b/components/ILIAS/UI/resources/images/standard/icon_dsha.svg similarity index 100% rename from public/templates/default/images/standard/icon_dsha.svg rename to components/ILIAS/UI/resources/images/standard/icon_dsha.svg diff --git a/public/templates/default/images/standard/icon_dshs.svg b/components/ILIAS/UI/resources/images/standard/icon_dshs.svg similarity index 100% rename from public/templates/default/images/standard/icon_dshs.svg rename to components/ILIAS/UI/resources/images/standard/icon_dshs.svg diff --git a/public/templates/default/images/standard/icon_ecss.svg b/components/ILIAS/UI/resources/images/standard/icon_ecss.svg similarity index 100% rename from public/templates/default/images/standard/icon_ecss.svg rename to components/ILIAS/UI/resources/images/standard/icon_ecss.svg diff --git a/public/templates/default/images/standard/icon_edtr.svg b/components/ILIAS/UI/resources/images/standard/icon_edtr.svg similarity index 100% rename from public/templates/default/images/standard/icon_edtr.svg rename to components/ILIAS/UI/resources/images/standard/icon_edtr.svg diff --git a/public/templates/default/images/standard/icon_enrl.svg b/components/ILIAS/UI/resources/images/standard/icon_enrl.svg similarity index 100% rename from public/templates/default/images/standard/icon_enrl.svg rename to components/ILIAS/UI/resources/images/standard/icon_enrl.svg diff --git a/public/templates/default/images/standard/icon_etal.svg b/components/ILIAS/UI/resources/images/standard/icon_etal.svg similarity index 100% rename from public/templates/default/images/standard/icon_etal.svg rename to components/ILIAS/UI/resources/images/standard/icon_etal.svg diff --git a/public/templates/default/images/standard/icon_exc.svg b/components/ILIAS/UI/resources/images/standard/icon_exc.svg similarity index 100% rename from public/templates/default/images/standard/icon_exc.svg rename to components/ILIAS/UI/resources/images/standard/icon_exc.svg diff --git a/public/templates/default/images/standard/icon_excs.svg b/components/ILIAS/UI/resources/images/standard/icon_excs.svg similarity index 100% rename from public/templates/default/images/standard/icon_excs.svg rename to components/ILIAS/UI/resources/images/standard/icon_excs.svg diff --git a/public/templates/default/images/standard/icon_excv.svg b/components/ILIAS/UI/resources/images/standard/icon_excv.svg similarity index 100% rename from public/templates/default/images/standard/icon_excv.svg rename to components/ILIAS/UI/resources/images/standard/icon_excv.svg diff --git a/public/templates/default/images/standard/icon_exta.svg b/components/ILIAS/UI/resources/images/standard/icon_exta.svg similarity index 100% rename from public/templates/default/images/standard/icon_exta.svg rename to components/ILIAS/UI/resources/images/standard/icon_exta.svg diff --git a/public/templates/default/images/standard/icon_extt.svg b/components/ILIAS/UI/resources/images/standard/icon_extt.svg similarity index 100% rename from public/templates/default/images/standard/icon_extt.svg rename to components/ILIAS/UI/resources/images/standard/icon_extt.svg diff --git a/public/templates/default/images/standard/icon_facs.svg b/components/ILIAS/UI/resources/images/standard/icon_facs.svg similarity index 100% rename from public/templates/default/images/standard/icon_facs.svg rename to components/ILIAS/UI/resources/images/standard/icon_facs.svg diff --git a/public/templates/default/images/standard/icon_faq.svg b/components/ILIAS/UI/resources/images/standard/icon_faq.svg similarity index 100% rename from public/templates/default/images/standard/icon_faq.svg rename to components/ILIAS/UI/resources/images/standard/icon_faq.svg diff --git a/public/templates/default/images/standard/icon_fav.svg b/components/ILIAS/UI/resources/images/standard/icon_fav.svg similarity index 100% rename from public/templates/default/images/standard/icon_fav.svg rename to components/ILIAS/UI/resources/images/standard/icon_fav.svg diff --git a/public/templates/default/images/standard/icon_feed.svg b/components/ILIAS/UI/resources/images/standard/icon_feed.svg similarity index 100% rename from public/templates/default/images/standard/icon_feed.svg rename to components/ILIAS/UI/resources/images/standard/icon_feed.svg diff --git a/public/templates/default/images/standard/icon_file.svg b/components/ILIAS/UI/resources/images/standard/icon_file.svg similarity index 100% rename from public/templates/default/images/standard/icon_file.svg rename to components/ILIAS/UI/resources/images/standard/icon_file.svg diff --git a/public/templates/default/images/standard/icon_file_inline.svg b/components/ILIAS/UI/resources/images/standard/icon_file_inline.svg similarity index 100% rename from public/templates/default/images/standard/icon_file_inline.svg rename to components/ILIAS/UI/resources/images/standard/icon_file_inline.svg diff --git a/public/templates/default/images/standard/icon_fils.svg b/components/ILIAS/UI/resources/images/standard/icon_fils.svg similarity index 100% rename from public/templates/default/images/standard/icon_fils.svg rename to components/ILIAS/UI/resources/images/standard/icon_fils.svg diff --git a/public/templates/default/images/standard/icon_fldm.svg b/components/ILIAS/UI/resources/images/standard/icon_fldm.svg similarity index 100% rename from public/templates/default/images/standard/icon_fldm.svg rename to components/ILIAS/UI/resources/images/standard/icon_fldm.svg diff --git a/public/templates/default/images/standard/icon_fold.svg b/components/ILIAS/UI/resources/images/standard/icon_fold.svg similarity index 100% rename from public/templates/default/images/standard/icon_fold.svg rename to components/ILIAS/UI/resources/images/standard/icon_fold.svg diff --git a/public/templates/default/images/standard/icon_foldt.svg b/components/ILIAS/UI/resources/images/standard/icon_foldt.svg similarity index 100% rename from public/templates/default/images/standard/icon_foldt.svg rename to components/ILIAS/UI/resources/images/standard/icon_foldt.svg diff --git a/public/templates/default/images/standard/icon_frm.svg b/components/ILIAS/UI/resources/images/standard/icon_frm.svg similarity index 100% rename from public/templates/default/images/standard/icon_frm.svg rename to components/ILIAS/UI/resources/images/standard/icon_frm.svg diff --git a/public/templates/default/images/standard/icon_frma.svg b/components/ILIAS/UI/resources/images/standard/icon_frma.svg similarity index 100% rename from public/templates/default/images/standard/icon_frma.svg rename to components/ILIAS/UI/resources/images/standard/icon_frma.svg diff --git a/public/templates/default/images/standard/icon_gcon.svg b/components/ILIAS/UI/resources/images/standard/icon_gcon.svg similarity index 100% rename from public/templates/default/images/standard/icon_gcon.svg rename to components/ILIAS/UI/resources/images/standard/icon_gcon.svg diff --git a/public/templates/default/images/standard/icon_glo.svg b/components/ILIAS/UI/resources/images/standard/icon_glo.svg similarity index 100% rename from public/templates/default/images/standard/icon_glo.svg rename to components/ILIAS/UI/resources/images/standard/icon_glo.svg diff --git a/public/templates/default/images/standard/icon_grp.svg b/components/ILIAS/UI/resources/images/standard/icon_grp.svg similarity index 100% rename from public/templates/default/images/standard/icon_grp.svg rename to components/ILIAS/UI/resources/images/standard/icon_grp.svg diff --git a/public/templates/default/images/standard/icon_grpr.svg b/components/ILIAS/UI/resources/images/standard/icon_grpr.svg similarity index 100% rename from public/templates/default/images/standard/icon_grpr.svg rename to components/ILIAS/UI/resources/images/standard/icon_grpr.svg diff --git a/public/templates/default/images/standard/icon_grps.svg b/components/ILIAS/UI/resources/images/standard/icon_grps.svg similarity index 100% rename from public/templates/default/images/standard/icon_grps.svg rename to components/ILIAS/UI/resources/images/standard/icon_grps.svg diff --git a/public/templates/default/images/standard/icon_hlp.svg b/components/ILIAS/UI/resources/images/standard/icon_hlp.svg similarity index 100% rename from public/templates/default/images/standard/icon_hlp.svg rename to components/ILIAS/UI/resources/images/standard/icon_hlp.svg diff --git a/public/templates/default/images/standard/icon_hlps.svg b/components/ILIAS/UI/resources/images/standard/icon_hlps.svg similarity index 100% rename from public/templates/default/images/standard/icon_hlps.svg rename to components/ILIAS/UI/resources/images/standard/icon_hlps.svg diff --git a/public/templates/default/images/standard/icon_htlm.svg b/components/ILIAS/UI/resources/images/standard/icon_htlm.svg similarity index 100% rename from public/templates/default/images/standard/icon_htlm.svg rename to components/ILIAS/UI/resources/images/standard/icon_htlm.svg diff --git a/public/templates/default/images/standard/icon_i.svg b/components/ILIAS/UI/resources/images/standard/icon_i.svg similarity index 100% rename from public/templates/default/images/standard/icon_i.svg rename to components/ILIAS/UI/resources/images/standard/icon_i.svg diff --git a/public/templates/default/images/standard/icon_iass.svg b/components/ILIAS/UI/resources/images/standard/icon_iass.svg similarity index 100% rename from public/templates/default/images/standard/icon_iass.svg rename to components/ILIAS/UI/resources/images/standard/icon_iass.svg diff --git a/public/templates/default/images/standard/icon_impr.svg b/components/ILIAS/UI/resources/images/standard/icon_impr.svg similarity index 100% rename from public/templates/default/images/standard/icon_impr.svg rename to components/ILIAS/UI/resources/images/standard/icon_impr.svg diff --git a/public/templates/default/images/standard/icon_inbox.svg b/components/ILIAS/UI/resources/images/standard/icon_inbox.svg similarity index 100% rename from public/templates/default/images/standard/icon_inbox.svg rename to components/ILIAS/UI/resources/images/standard/icon_inbox.svg diff --git a/public/templates/default/images/standard/icon_info.svg b/components/ILIAS/UI/resources/images/standard/icon_info.svg similarity index 100% rename from public/templates/default/images/standard/icon_info.svg rename to components/ILIAS/UI/resources/images/standard/icon_info.svg diff --git a/public/templates/default/images/standard/icon_itgr.svg b/components/ILIAS/UI/resources/images/standard/icon_itgr.svg similarity index 100% rename from public/templates/default/images/standard/icon_itgr.svg rename to components/ILIAS/UI/resources/images/standard/icon_itgr.svg diff --git a/public/templates/default/images/standard/icon_lglntc.svg b/components/ILIAS/UI/resources/images/standard/icon_lglntc.svg similarity index 100% rename from public/templates/default/images/standard/icon_lglntc.svg rename to components/ILIAS/UI/resources/images/standard/icon_lglntc.svg diff --git a/public/templates/default/images/standard/icon_lhist.svg b/components/ILIAS/UI/resources/images/standard/icon_lhist.svg similarity index 100% rename from public/templates/default/images/standard/icon_lhist.svg rename to components/ILIAS/UI/resources/images/standard/icon_lhist.svg diff --git a/public/templates/default/images/standard/icon_lht.svg b/components/ILIAS/UI/resources/images/standard/icon_lht.svg similarity index 100% rename from public/templates/default/images/standard/icon_lht.svg rename to components/ILIAS/UI/resources/images/standard/icon_lht.svg diff --git a/public/templates/default/images/standard/icon_lhts.svg b/components/ILIAS/UI/resources/images/standard/icon_lhts.svg similarity index 100% rename from public/templates/default/images/standard/icon_lhts.svg rename to components/ILIAS/UI/resources/images/standard/icon_lhts.svg diff --git a/public/templates/default/images/standard/icon_lm.svg b/components/ILIAS/UI/resources/images/standard/icon_lm.svg similarity index 100% rename from public/templates/default/images/standard/icon_lm.svg rename to components/ILIAS/UI/resources/images/standard/icon_lm.svg diff --git a/public/templates/default/images/standard/icon_lng.svg b/components/ILIAS/UI/resources/images/standard/icon_lng.svg similarity index 100% rename from public/templates/default/images/standard/icon_lng.svg rename to components/ILIAS/UI/resources/images/standard/icon_lng.svg diff --git a/public/templates/default/images/standard/icon_lngf.svg b/components/ILIAS/UI/resources/images/standard/icon_lngf.svg similarity index 100% rename from public/templates/default/images/standard/icon_lngf.svg rename to components/ILIAS/UI/resources/images/standard/icon_lngf.svg diff --git a/public/templates/default/images/standard/icon_lobj.svg b/components/ILIAS/UI/resources/images/standard/icon_lobj.svg similarity index 100% rename from public/templates/default/images/standard/icon_lobj.svg rename to components/ILIAS/UI/resources/images/standard/icon_lobj.svg diff --git a/public/templates/default/images/standard/icon_local.svg b/components/ILIAS/UI/resources/images/standard/icon_local.svg similarity index 100% rename from public/templates/default/images/standard/icon_local.svg rename to components/ILIAS/UI/resources/images/standard/icon_local.svg diff --git a/public/templates/default/images/standard/icon_login.svg b/components/ILIAS/UI/resources/images/standard/icon_login.svg similarity index 100% rename from public/templates/default/images/standard/icon_login.svg rename to components/ILIAS/UI/resources/images/standard/icon_login.svg diff --git a/public/templates/default/images/standard/icon_logout.svg b/components/ILIAS/UI/resources/images/standard/icon_logout.svg similarity index 100% rename from public/templates/default/images/standard/icon_logout.svg rename to components/ILIAS/UI/resources/images/standard/icon_logout.svg diff --git a/public/templates/default/images/standard/icon_logs.svg b/components/ILIAS/UI/resources/images/standard/icon_logs.svg similarity index 100% rename from public/templates/default/images/standard/icon_logs.svg rename to components/ILIAS/UI/resources/images/standard/icon_logs.svg diff --git a/public/templates/default/images/standard/icon_lreg.svg b/components/ILIAS/UI/resources/images/standard/icon_lreg.svg similarity index 100% rename from public/templates/default/images/standard/icon_lreg.svg rename to components/ILIAS/UI/resources/images/standard/icon_lreg.svg diff --git a/public/templates/default/images/standard/icon_lres.svg b/components/ILIAS/UI/resources/images/standard/icon_lres.svg similarity index 100% rename from public/templates/default/images/standard/icon_lres.svg rename to components/ILIAS/UI/resources/images/standard/icon_lres.svg diff --git a/public/templates/default/images/standard/icon_lrss.svg b/components/ILIAS/UI/resources/images/standard/icon_lrss.svg similarity index 100% rename from public/templates/default/images/standard/icon_lrss.svg rename to components/ILIAS/UI/resources/images/standard/icon_lrss.svg diff --git a/public/templates/default/images/standard/icon_lso.svg b/components/ILIAS/UI/resources/images/standard/icon_lso.svg similarity index 100% rename from public/templates/default/images/standard/icon_lso.svg rename to components/ILIAS/UI/resources/images/standard/icon_lso.svg diff --git a/public/templates/default/images/standard/icon_lsos.svg b/components/ILIAS/UI/resources/images/standard/icon_lsos.svg similarity index 100% rename from public/templates/default/images/standard/icon_lsos.svg rename to components/ILIAS/UI/resources/images/standard/icon_lsos.svg diff --git a/public/templates/default/images/standard/icon_lstv.svg b/components/ILIAS/UI/resources/images/standard/icon_lstv.svg similarity index 100% rename from public/templates/default/images/standard/icon_lstv.svg rename to components/ILIAS/UI/resources/images/standard/icon_lstv.svg diff --git a/public/templates/default/images/standard/icon_lti.svg b/components/ILIAS/UI/resources/images/standard/icon_lti.svg similarity index 100% rename from public/templates/default/images/standard/icon_lti.svg rename to components/ILIAS/UI/resources/images/standard/icon_lti.svg diff --git a/public/templates/default/images/standard/icon_lti_large.svg b/components/ILIAS/UI/resources/images/standard/icon_lti_large.svg similarity index 100% rename from public/templates/default/images/standard/icon_lti_large.svg rename to components/ILIAS/UI/resources/images/standard/icon_lti_large.svg diff --git a/public/templates/default/images/standard/icon_ltis.svg b/components/ILIAS/UI/resources/images/standard/icon_ltis.svg similarity index 100% rename from public/templates/default/images/standard/icon_ltis.svg rename to components/ILIAS/UI/resources/images/standard/icon_ltis.svg diff --git a/public/templates/default/images/standard/icon_ltiv.svg b/components/ILIAS/UI/resources/images/standard/icon_ltiv.svg similarity index 100% rename from public/templates/default/images/standard/icon_ltiv.svg rename to components/ILIAS/UI/resources/images/standard/icon_ltiv.svg diff --git a/public/templates/default/images/standard/icon_mail.svg b/components/ILIAS/UI/resources/images/standard/icon_mail.svg similarity index 100% rename from public/templates/default/images/standard/icon_mail.svg rename to components/ILIAS/UI/resources/images/standard/icon_mail.svg diff --git a/public/templates/default/images/standard/icon_mailf.svg b/components/ILIAS/UI/resources/images/standard/icon_mailf.svg similarity index 100% rename from public/templates/default/images/standard/icon_mailf.svg rename to components/ILIAS/UI/resources/images/standard/icon_mailf.svg diff --git a/public/templates/default/images/standard/icon_mcst.svg b/components/ILIAS/UI/resources/images/standard/icon_mcst.svg similarity index 100% rename from public/templates/default/images/standard/icon_mcst.svg rename to components/ILIAS/UI/resources/images/standard/icon_mcst.svg diff --git a/public/templates/default/images/standard/icon_mcts.svg b/components/ILIAS/UI/resources/images/standard/icon_mcts.svg similarity index 100% rename from public/templates/default/images/standard/icon_mcts.svg rename to components/ILIAS/UI/resources/images/standard/icon_mcts.svg diff --git a/public/templates/default/images/standard/icon_mdia.svg b/components/ILIAS/UI/resources/images/standard/icon_mdia.svg similarity index 100% rename from public/templates/default/images/standard/icon_mdia.svg rename to components/ILIAS/UI/resources/images/standard/icon_mdia.svg diff --git a/public/templates/default/images/standard/icon_mds.svg b/components/ILIAS/UI/resources/images/standard/icon_mds.svg similarity index 100% rename from public/templates/default/images/standard/icon_mds.svg rename to components/ILIAS/UI/resources/images/standard/icon_mds.svg diff --git a/public/templates/default/images/standard/icon_mep.svg b/components/ILIAS/UI/resources/images/standard/icon_mep.svg similarity index 100% rename from public/templates/default/images/standard/icon_mep.svg rename to components/ILIAS/UI/resources/images/standard/icon_mep.svg diff --git a/public/templates/default/images/standard/icon_mme.svg b/components/ILIAS/UI/resources/images/standard/icon_mme.svg similarity index 100% rename from public/templates/default/images/standard/icon_mme.svg rename to components/ILIAS/UI/resources/images/standard/icon_mme.svg diff --git a/public/templates/default/images/standard/icon_mob.svg b/components/ILIAS/UI/resources/images/standard/icon_mob.svg similarity index 100% rename from public/templates/default/images/standard/icon_mob.svg rename to components/ILIAS/UI/resources/images/standard/icon_mob.svg diff --git a/public/templates/default/images/standard/icon_mobs.svg b/components/ILIAS/UI/resources/images/standard/icon_mobs.svg similarity index 100% rename from public/templates/default/images/standard/icon_mobs.svg rename to components/ILIAS/UI/resources/images/standard/icon_mobs.svg diff --git a/public/templates/default/images/standard/icon_more.svg b/components/ILIAS/UI/resources/images/standard/icon_more.svg similarity index 100% rename from public/templates/default/images/standard/icon_more.svg rename to components/ILIAS/UI/resources/images/standard/icon_more.svg diff --git a/public/templates/default/images/standard/icon_mostly_ok.svg b/components/ILIAS/UI/resources/images/standard/icon_mostly_ok.svg similarity index 100% rename from public/templates/default/images/standard/icon_mostly_ok.svg rename to components/ILIAS/UI/resources/images/standard/icon_mostly_ok.svg diff --git a/public/templates/default/images/standard/icon_not_ok.svg b/components/ILIAS/UI/resources/images/standard/icon_not_ok.svg similarity index 100% rename from public/templates/default/images/standard/icon_not_ok.svg rename to components/ILIAS/UI/resources/images/standard/icon_not_ok.svg diff --git a/public/templates/default/images/standard/icon_not_ok_monochrome.svg b/components/ILIAS/UI/resources/images/standard/icon_not_ok_monochrome.svg similarity index 100% rename from public/templates/default/images/standard/icon_not_ok_monochrome.svg rename to components/ILIAS/UI/resources/images/standard/icon_not_ok_monochrome.svg diff --git a/public/templates/default/images/standard/icon_nota.svg b/components/ILIAS/UI/resources/images/standard/icon_nota.svg similarity index 100% rename from public/templates/default/images/standard/icon_nota.svg rename to components/ILIAS/UI/resources/images/standard/icon_nota.svg diff --git a/public/templates/default/images/standard/icon_nots.svg b/components/ILIAS/UI/resources/images/standard/icon_nots.svg similarity index 100% rename from public/templates/default/images/standard/icon_nots.svg rename to components/ILIAS/UI/resources/images/standard/icon_nots.svg diff --git a/public/templates/default/images/standard/icon_ntfctn.svg b/components/ILIAS/UI/resources/images/standard/icon_ntfctn.svg similarity index 100% rename from public/templates/default/images/standard/icon_ntfctn.svg rename to components/ILIAS/UI/resources/images/standard/icon_ntfctn.svg diff --git a/public/templates/default/images/standard/icon_nwss.svg b/components/ILIAS/UI/resources/images/standard/icon_nwss.svg similarity index 100% rename from public/templates/default/images/standard/icon_nwss.svg rename to components/ILIAS/UI/resources/images/standard/icon_nwss.svg diff --git a/public/templates/default/images/standard/icon_obj.svg b/components/ILIAS/UI/resources/images/standard/icon_obj.svg similarity index 100% rename from public/templates/default/images/standard/icon_obj.svg rename to components/ILIAS/UI/resources/images/standard/icon_obj.svg diff --git a/public/templates/default/images/standard/icon_ok.svg b/components/ILIAS/UI/resources/images/standard/icon_ok.svg similarity index 100% rename from public/templates/default/images/standard/icon_ok.svg rename to components/ILIAS/UI/resources/images/standard/icon_ok.svg diff --git a/public/templates/default/images/standard/icon_ok_monochrome.svg b/components/ILIAS/UI/resources/images/standard/icon_ok_monochrome.svg similarity index 100% rename from public/templates/default/images/standard/icon_ok_monochrome.svg rename to components/ILIAS/UI/resources/images/standard/icon_ok_monochrome.svg diff --git a/public/templates/default/images/standard/icon_orga.svg b/components/ILIAS/UI/resources/images/standard/icon_orga.svg similarity index 100% rename from public/templates/default/images/standard/icon_orga.svg rename to components/ILIAS/UI/resources/images/standard/icon_orga.svg diff --git a/public/templates/default/images/standard/icon_orgu.svg b/components/ILIAS/UI/resources/images/standard/icon_orgu.svg similarity index 100% rename from public/templates/default/images/standard/icon_orgu.svg rename to components/ILIAS/UI/resources/images/standard/icon_orgu.svg diff --git a/public/templates/default/images/standard/icon_otpl.svg b/components/ILIAS/UI/resources/images/standard/icon_otpl.svg similarity index 100% rename from public/templates/default/images/standard/icon_otpl.svg rename to components/ILIAS/UI/resources/images/standard/icon_otpl.svg diff --git a/public/templates/default/images/standard/icon_page.svg b/components/ILIAS/UI/resources/images/standard/icon_page.svg similarity index 100% rename from public/templates/default/images/standard/icon_page.svg rename to components/ILIAS/UI/resources/images/standard/icon_page.svg diff --git a/public/templates/default/images/standard/icon_pays.svg b/components/ILIAS/UI/resources/images/standard/icon_pays.svg similarity index 100% rename from public/templates/default/images/standard/icon_pays.svg rename to components/ILIAS/UI/resources/images/standard/icon_pays.svg diff --git a/public/templates/default/images/standard/icon_pcht.svg b/components/ILIAS/UI/resources/images/standard/icon_pcht.svg similarity index 100% rename from public/templates/default/images/standard/icon_pcht.svg rename to components/ILIAS/UI/resources/images/standard/icon_pcht.svg diff --git a/public/templates/default/images/standard/icon_pd.svg b/components/ILIAS/UI/resources/images/standard/icon_pd.svg similarity index 100% rename from public/templates/default/images/standard/icon_pd.svg rename to components/ILIAS/UI/resources/images/standard/icon_pd.svg diff --git a/public/templates/default/images/standard/icon_pdfg.svg b/components/ILIAS/UI/resources/images/standard/icon_pdfg.svg similarity index 100% rename from public/templates/default/images/standard/icon_pdfg.svg rename to components/ILIAS/UI/resources/images/standard/icon_pdfg.svg diff --git a/public/templates/default/images/standard/icon_pdts.svg b/components/ILIAS/UI/resources/images/standard/icon_pdts.svg similarity index 100% rename from public/templates/default/images/standard/icon_pdts.svg rename to components/ILIAS/UI/resources/images/standard/icon_pdts.svg diff --git a/public/templates/default/images/standard/icon_pg.svg b/components/ILIAS/UI/resources/images/standard/icon_pg.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg.svg diff --git a/public/templates/default/images/standard/icon_pg_d.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_d.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_d.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_d.svg diff --git a/public/templates/default/images/standard/icon_pg_d_sc.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_d_sc.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_d_sc.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_d_sc.svg diff --git a/public/templates/default/images/standard/icon_pg_del.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_del.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_del.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_del.svg diff --git a/public/templates/default/images/standard/icon_pg_del_sc.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_del_sc.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_del_sc.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_del_sc.svg diff --git a/public/templates/default/images/standard/icon_pg_sc.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_sc.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_sc.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_sc.svg diff --git a/public/templates/default/images/standard/icon_pin.svg b/components/ILIAS/UI/resources/images/standard/icon_pin.svg similarity index 100% rename from public/templates/default/images/standard/icon_pin.svg rename to components/ILIAS/UI/resources/images/standard/icon_pin.svg diff --git a/public/templates/default/images/standard/icon_pin_on.png b/components/ILIAS/UI/resources/images/standard/icon_pin_on.png similarity index 100% rename from public/templates/default/images/standard/icon_pin_on.png rename to components/ILIAS/UI/resources/images/standard/icon_pin_on.png diff --git a/public/templates/default/images/standard/icon_poll.svg b/components/ILIAS/UI/resources/images/standard/icon_poll.svg similarity index 100% rename from public/templates/default/images/standard/icon_poll.svg rename to components/ILIAS/UI/resources/images/standard/icon_poll.svg diff --git a/public/templates/default/images/standard/icon_prfa.svg b/components/ILIAS/UI/resources/images/standard/icon_prfa.svg similarity index 100% rename from public/templates/default/images/standard/icon_prfa.svg rename to components/ILIAS/UI/resources/images/standard/icon_prfa.svg diff --git a/public/templates/default/images/standard/icon_prfl.svg b/components/ILIAS/UI/resources/images/standard/icon_prfl.svg similarity index 100% rename from public/templates/default/images/standard/icon_prfl.svg rename to components/ILIAS/UI/resources/images/standard/icon_prfl.svg diff --git a/public/templates/default/images/standard/icon_prg.svg b/components/ILIAS/UI/resources/images/standard/icon_prg.svg similarity index 100% rename from public/templates/default/images/standard/icon_prg.svg rename to components/ILIAS/UI/resources/images/standard/icon_prg.svg diff --git a/public/templates/default/images/standard/icon_prgr.svg b/components/ILIAS/UI/resources/images/standard/icon_prgr.svg similarity index 100% rename from public/templates/default/images/standard/icon_prgr.svg rename to components/ILIAS/UI/resources/images/standard/icon_prgr.svg diff --git a/public/templates/default/images/standard/icon_prgs.svg b/components/ILIAS/UI/resources/images/standard/icon_prgs.svg similarity index 100% rename from public/templates/default/images/standard/icon_prgs.svg rename to components/ILIAS/UI/resources/images/standard/icon_prgs.svg diff --git a/public/templates/default/images/standard/icon_profile.svg b/components/ILIAS/UI/resources/images/standard/icon_profile.svg similarity index 100% rename from public/templates/default/images/standard/icon_profile.svg rename to components/ILIAS/UI/resources/images/standard/icon_profile.svg diff --git a/public/templates/default/images/standard/icon_prss.svg b/components/ILIAS/UI/resources/images/standard/icon_prss.svg similarity index 100% rename from public/templates/default/images/standard/icon_prss.svg rename to components/ILIAS/UI/resources/images/standard/icon_prss.svg diff --git a/public/templates/default/images/standard/icon_prst.svg b/components/ILIAS/UI/resources/images/standard/icon_prst.svg similarity index 100% rename from public/templates/default/images/standard/icon_prst.svg rename to components/ILIAS/UI/resources/images/standard/icon_prst.svg diff --git a/public/templates/default/images/standard/icon_prtf.svg b/components/ILIAS/UI/resources/images/standard/icon_prtf.svg similarity index 100% rename from public/templates/default/images/standard/icon_prtf.svg rename to components/ILIAS/UI/resources/images/standard/icon_prtf.svg diff --git a/public/templates/default/images/standard/icon_prtt.svg b/components/ILIAS/UI/resources/images/standard/icon_prtt.svg similarity index 100% rename from public/templates/default/images/standard/icon_prtt.svg rename to components/ILIAS/UI/resources/images/standard/icon_prtt.svg diff --git a/public/templates/default/images/standard/icon_ps.svg b/components/ILIAS/UI/resources/images/standard/icon_ps.svg similarity index 100% rename from public/templates/default/images/standard/icon_ps.svg rename to components/ILIAS/UI/resources/images/standard/icon_ps.svg diff --git a/public/templates/default/images/standard/icon_pwsa.svg b/components/ILIAS/UI/resources/images/standard/icon_pwsa.svg similarity index 100% rename from public/templates/default/images/standard/icon_pwsa.svg rename to components/ILIAS/UI/resources/images/standard/icon_pwsa.svg diff --git a/public/templates/default/images/standard/icon_qpl.svg b/components/ILIAS/UI/resources/images/standard/icon_qpl.svg similarity index 100% rename from public/templates/default/images/standard/icon_qpl.svg rename to components/ILIAS/UI/resources/images/standard/icon_qpl.svg diff --git a/public/templates/default/images/standard/icon_ques.svg b/components/ILIAS/UI/resources/images/standard/icon_ques.svg similarity index 100% rename from public/templates/default/images/standard/icon_ques.svg rename to components/ILIAS/UI/resources/images/standard/icon_ques.svg diff --git a/public/templates/default/images/standard/icon_rate_0.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_0.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_0.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_0.svg diff --git a/public/templates/default/images/standard/icon_rate_1.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_1.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_1.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_1.svg diff --git a/public/templates/default/images/standard/icon_rate_10.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_10.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_10.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_10.svg diff --git a/public/templates/default/images/standard/icon_rate_2.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_2.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_2.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_2.svg diff --git a/public/templates/default/images/standard/icon_rate_3.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_3.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_3.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_3.svg diff --git a/public/templates/default/images/standard/icon_rate_4.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_4.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_4.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_4.svg diff --git a/public/templates/default/images/standard/icon_rate_5.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_5.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_5.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_5.svg diff --git a/public/templates/default/images/standard/icon_rate_6.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_6.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_6.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_6.svg diff --git a/public/templates/default/images/standard/icon_rate_7.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_7.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_7.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_7.svg diff --git a/public/templates/default/images/standard/icon_rate_8.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_8.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_8.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_8.svg diff --git a/public/templates/default/images/standard/icon_rate_9.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_9.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_9.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_9.svg diff --git a/public/templates/default/images/standard/icon_rate_marker.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_marker.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_marker.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_marker.svg diff --git a/public/templates/default/images/standard/icon_rate_off.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_off.svg diff --git a/public/templates/default/images/standard/icon_rate_on.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_on.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_on.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_on.svg diff --git a/public/templates/default/images/standard/icon_rate_on_user.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_on_user.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_on_user.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_on_user.svg diff --git a/public/templates/default/images/standard/icon_rcat.svg b/components/ILIAS/UI/resources/images/standard/icon_rcat.svg similarity index 100% rename from public/templates/default/images/standard/icon_rcat.svg rename to components/ILIAS/UI/resources/images/standard/icon_rcat.svg diff --git a/public/templates/default/images/standard/icon_rcrs.svg b/components/ILIAS/UI/resources/images/standard/icon_rcrs.svg similarity index 100% rename from public/templates/default/images/standard/icon_rcrs.svg rename to components/ILIAS/UI/resources/images/standard/icon_rcrs.svg diff --git a/public/templates/default/images/standard/icon_recf.svg b/components/ILIAS/UI/resources/images/standard/icon_recf.svg similarity index 100% rename from public/templates/default/images/standard/icon_recf.svg rename to components/ILIAS/UI/resources/images/standard/icon_recf.svg diff --git a/public/templates/default/images/standard/icon_rep.svg b/components/ILIAS/UI/resources/images/standard/icon_rep.svg similarity index 100% rename from public/templates/default/images/standard/icon_rep.svg rename to components/ILIAS/UI/resources/images/standard/icon_rep.svg diff --git a/public/templates/default/images/standard/icon_repa.svg b/components/ILIAS/UI/resources/images/standard/icon_repa.svg similarity index 100% rename from public/templates/default/images/standard/icon_repa.svg rename to components/ILIAS/UI/resources/images/standard/icon_repa.svg diff --git a/public/templates/default/images/standard/icon_repo.svg b/components/ILIAS/UI/resources/images/standard/icon_repo.svg similarity index 100% rename from public/templates/default/images/standard/icon_repo.svg rename to components/ILIAS/UI/resources/images/standard/icon_repo.svg diff --git a/public/templates/default/images/standard/icon_reps.svg b/components/ILIAS/UI/resources/images/standard/icon_reps.svg similarity index 100% rename from public/templates/default/images/standard/icon_reps.svg rename to components/ILIAS/UI/resources/images/standard/icon_reps.svg diff --git a/public/templates/default/images/standard/icon_reptr.svg b/components/ILIAS/UI/resources/images/standard/icon_reptr.svg similarity index 100% rename from public/templates/default/images/standard/icon_reptr.svg rename to components/ILIAS/UI/resources/images/standard/icon_reptr.svg diff --git a/public/templates/default/images/standard/icon_rfil.svg b/components/ILIAS/UI/resources/images/standard/icon_rfil.svg similarity index 100% rename from public/templates/default/images/standard/icon_rfil.svg rename to components/ILIAS/UI/resources/images/standard/icon_rfil.svg diff --git a/public/templates/default/images/standard/icon_rglo.svg b/components/ILIAS/UI/resources/images/standard/icon_rglo.svg similarity index 100% rename from public/templates/default/images/standard/icon_rglo.svg rename to components/ILIAS/UI/resources/images/standard/icon_rglo.svg diff --git a/public/templates/default/images/standard/icon_rgrp.svg b/components/ILIAS/UI/resources/images/standard/icon_rgrp.svg similarity index 100% rename from public/templates/default/images/standard/icon_rgrp.svg rename to components/ILIAS/UI/resources/images/standard/icon_rgrp.svg diff --git a/public/templates/default/images/standard/icon_rlm.svg b/components/ILIAS/UI/resources/images/standard/icon_rlm.svg similarity index 100% rename from public/templates/default/images/standard/icon_rlm.svg rename to components/ILIAS/UI/resources/images/standard/icon_rlm.svg diff --git a/public/templates/default/images/standard/icon_role.svg b/components/ILIAS/UI/resources/images/standard/icon_role.svg similarity index 100% rename from public/templates/default/images/standard/icon_role.svg rename to components/ILIAS/UI/resources/images/standard/icon_role.svg diff --git a/public/templates/default/images/standard/icon_rolf.svg b/components/ILIAS/UI/resources/images/standard/icon_rolf.svg similarity index 100% rename from public/templates/default/images/standard/icon_rolf.svg rename to components/ILIAS/UI/resources/images/standard/icon_rolf.svg diff --git a/public/templates/default/images/standard/icon_rolt.svg b/components/ILIAS/UI/resources/images/standard/icon_rolt.svg similarity index 100% rename from public/templates/default/images/standard/icon_rolt.svg rename to components/ILIAS/UI/resources/images/standard/icon_rolt.svg diff --git a/public/templates/default/images/standard/icon_root.svg b/components/ILIAS/UI/resources/images/standard/icon_root.svg similarity index 100% rename from public/templates/default/images/standard/icon_root.svg rename to components/ILIAS/UI/resources/images/standard/icon_root.svg diff --git a/public/templates/default/images/standard/icon_rtst.svg b/components/ILIAS/UI/resources/images/standard/icon_rtst.svg similarity index 100% rename from public/templates/default/images/standard/icon_rtst.svg rename to components/ILIAS/UI/resources/images/standard/icon_rtst.svg diff --git a/public/templates/default/images/standard/icon_rwik.svg b/components/ILIAS/UI/resources/images/standard/icon_rwik.svg similarity index 100% rename from public/templates/default/images/standard/icon_rwik.svg rename to components/ILIAS/UI/resources/images/standard/icon_rwik.svg diff --git a/public/templates/default/images/standard/icon_safa.svg b/components/ILIAS/UI/resources/images/standard/icon_safa.svg similarity index 100% rename from public/templates/default/images/standard/icon_safa.svg rename to components/ILIAS/UI/resources/images/standard/icon_safa.svg diff --git a/public/templates/default/images/standard/icon_sahs.svg b/components/ILIAS/UI/resources/images/standard/icon_sahs.svg similarity index 100% rename from public/templates/default/images/standard/icon_sahs.svg rename to components/ILIAS/UI/resources/images/standard/icon_sahs.svg diff --git a/public/templates/default/images/standard/icon_sahs_offline.svg b/components/ILIAS/UI/resources/images/standard/icon_sahs_offline.svg similarity index 100% rename from public/templates/default/images/standard/icon_sahs_offline.svg rename to components/ILIAS/UI/resources/images/standard/icon_sahs_offline.svg diff --git a/public/templates/default/images/standard/icon_scat.svg b/components/ILIAS/UI/resources/images/standard/icon_scat.svg similarity index 100% rename from public/templates/default/images/standard/icon_scat.svg rename to components/ILIAS/UI/resources/images/standard/icon_scat.svg diff --git a/public/templates/default/images/standard/icon_scat_off.svg b/components/ILIAS/UI/resources/images/standard/icon_scat_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_scat_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_scat_off.svg diff --git a/public/templates/default/images/standard/icon_sco.svg b/components/ILIAS/UI/resources/images/standard/icon_sco.svg similarity index 100% rename from public/templates/default/images/standard/icon_sco.svg rename to components/ILIAS/UI/resources/images/standard/icon_sco.svg diff --git a/public/templates/default/images/standard/icon_scov.svg b/components/ILIAS/UI/resources/images/standard/icon_scov.svg similarity index 100% rename from public/templates/default/images/standard/icon_scov.svg rename to components/ILIAS/UI/resources/images/standard/icon_scov.svg diff --git a/public/templates/default/images/standard/icon_sctp.svg b/components/ILIAS/UI/resources/images/standard/icon_sctp.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctp.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctp.svg diff --git a/public/templates/default/images/standard/icon_sctp_off.svg b/components/ILIAS/UI/resources/images/standard/icon_sctp_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctp_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctp_off.svg diff --git a/public/templates/default/images/standard/icon_sctr.svg b/components/ILIAS/UI/resources/images/standard/icon_sctr.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctr.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctr.svg diff --git a/public/templates/default/images/standard/icon_sctr_off.svg b/components/ILIAS/UI/resources/images/standard/icon_sctr_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctr_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctr_off.svg diff --git a/public/templates/default/images/standard/icon_sea.svg b/components/ILIAS/UI/resources/images/standard/icon_sea.svg similarity index 100% rename from public/templates/default/images/standard/icon_sea.svg rename to components/ILIAS/UI/resources/images/standard/icon_sea.svg diff --git a/public/templates/default/images/standard/icon_seas.svg b/components/ILIAS/UI/resources/images/standard/icon_seas.svg similarity index 100% rename from public/templates/default/images/standard/icon_seas.svg rename to components/ILIAS/UI/resources/images/standard/icon_seas.svg diff --git a/public/templates/default/images/standard/icon_send.svg b/components/ILIAS/UI/resources/images/standard/icon_send.svg similarity index 100% rename from public/templates/default/images/standard/icon_send.svg rename to components/ILIAS/UI/resources/images/standard/icon_send.svg diff --git a/public/templates/default/images/standard/icon_sent.svg b/components/ILIAS/UI/resources/images/standard/icon_sent.svg similarity index 100% rename from public/templates/default/images/standard/icon_sent.svg rename to components/ILIAS/UI/resources/images/standard/icon_sent.svg diff --git a/public/templates/default/images/standard/icon_sess.svg b/components/ILIAS/UI/resources/images/standard/icon_sess.svg similarity index 100% rename from public/templates/default/images/standard/icon_sess.svg rename to components/ILIAS/UI/resources/images/standard/icon_sess.svg diff --git a/public/templates/default/images/standard/icon_skee.svg b/components/ILIAS/UI/resources/images/standard/icon_skee.svg similarity index 100% rename from public/templates/default/images/standard/icon_skee.svg rename to components/ILIAS/UI/resources/images/standard/icon_skee.svg diff --git a/public/templates/default/images/standard/icon_skll.svg b/components/ILIAS/UI/resources/images/standard/icon_skll.svg similarity index 100% rename from public/templates/default/images/standard/icon_skll.svg rename to components/ILIAS/UI/resources/images/standard/icon_skll.svg diff --git a/public/templates/default/images/standard/icon_skll_off.svg b/components/ILIAS/UI/resources/images/standard/icon_skll_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_skll_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_skll_off.svg diff --git a/public/templates/default/images/standard/icon_skmg.svg b/components/ILIAS/UI/resources/images/standard/icon_skmg.svg similarity index 100% rename from public/templates/default/images/standard/icon_skmg.svg rename to components/ILIAS/UI/resources/images/standard/icon_skmg.svg diff --git a/public/templates/default/images/standard/icon_skrt.svg b/components/ILIAS/UI/resources/images/standard/icon_skrt.svg similarity index 100% rename from public/templates/default/images/standard/icon_skrt.svg rename to components/ILIAS/UI/resources/images/standard/icon_skrt.svg diff --git a/public/templates/default/images/standard/icon_sktp.svg b/components/ILIAS/UI/resources/images/standard/icon_sktp.svg similarity index 100% rename from public/templates/default/images/standard/icon_sktp.svg rename to components/ILIAS/UI/resources/images/standard/icon_sktp.svg diff --git a/public/templates/default/images/standard/icon_sktr.svg b/components/ILIAS/UI/resources/images/standard/icon_sktr.svg similarity index 100% rename from public/templates/default/images/standard/icon_sktr.svg rename to components/ILIAS/UI/resources/images/standard/icon_sktr.svg diff --git a/public/templates/default/images/standard/icon_sktr_off.svg b/components/ILIAS/UI/resources/images/standard/icon_sktr_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_sktr_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_sktr_off.svg diff --git a/public/templates/default/images/standard/icon_slm_offline.svg b/components/ILIAS/UI/resources/images/standard/icon_slm_offline.svg similarity index 100% rename from public/templates/default/images/standard/icon_slm_offline.svg rename to components/ILIAS/UI/resources/images/standard/icon_slm_offline.svg diff --git a/public/templates/default/images/standard/icon_spl.svg b/components/ILIAS/UI/resources/images/standard/icon_spl.svg similarity index 100% rename from public/templates/default/images/standard/icon_spl.svg rename to components/ILIAS/UI/resources/images/standard/icon_spl.svg diff --git a/public/templates/default/images/standard/icon_src.svg b/components/ILIAS/UI/resources/images/standard/icon_src.svg similarity index 100% rename from public/templates/default/images/standard/icon_src.svg rename to components/ILIAS/UI/resources/images/standard/icon_src.svg diff --git a/public/templates/default/images/standard/icon_st.svg b/components/ILIAS/UI/resources/images/standard/icon_st.svg similarity index 100% rename from public/templates/default/images/standard/icon_st.svg rename to components/ILIAS/UI/resources/images/standard/icon_st.svg diff --git a/public/templates/default/images/standard/icon_stff.svg b/components/ILIAS/UI/resources/images/standard/icon_stff.svg similarity index 100% rename from public/templates/default/images/standard/icon_stff.svg rename to components/ILIAS/UI/resources/images/standard/icon_stff.svg diff --git a/public/templates/default/images/standard/icon_sty.svg b/components/ILIAS/UI/resources/images/standard/icon_sty.svg similarity index 100% rename from public/templates/default/images/standard/icon_sty.svg rename to components/ILIAS/UI/resources/images/standard/icon_sty.svg diff --git a/public/templates/default/images/standard/icon_stys.svg b/components/ILIAS/UI/resources/images/standard/icon_stys.svg similarity index 100% rename from public/templates/default/images/standard/icon_stys.svg rename to components/ILIAS/UI/resources/images/standard/icon_stys.svg diff --git a/public/templates/default/images/standard/icon_svy.svg b/components/ILIAS/UI/resources/images/standard/icon_svy.svg similarity index 100% rename from public/templates/default/images/standard/icon_svy.svg rename to components/ILIAS/UI/resources/images/standard/icon_svy.svg diff --git a/public/templates/default/images/standard/icon_svyf.svg b/components/ILIAS/UI/resources/images/standard/icon_svyf.svg similarity index 100% rename from public/templates/default/images/standard/icon_svyf.svg rename to components/ILIAS/UI/resources/images/standard/icon_svyf.svg diff --git a/public/templates/default/images/standard/icon_sysc.svg b/components/ILIAS/UI/resources/images/standard/icon_sysc.svg similarity index 100% rename from public/templates/default/images/standard/icon_sysc.svg rename to components/ILIAS/UI/resources/images/standard/icon_sysc.svg diff --git a/public/templates/default/images/standard/icon_tag.svg b/components/ILIAS/UI/resources/images/standard/icon_tag.svg similarity index 100% rename from public/templates/default/images/standard/icon_tag.svg rename to components/ILIAS/UI/resources/images/standard/icon_tag.svg diff --git a/public/templates/default/images/standard/icon_tags.svg b/components/ILIAS/UI/resources/images/standard/icon_tags.svg similarity index 100% rename from public/templates/default/images/standard/icon_tags.svg rename to components/ILIAS/UI/resources/images/standard/icon_tags.svg diff --git a/public/templates/default/images/standard/icon_tala.svg b/components/ILIAS/UI/resources/images/standard/icon_tala.svg similarity index 100% rename from public/templates/default/images/standard/icon_tala.svg rename to components/ILIAS/UI/resources/images/standard/icon_tala.svg diff --git a/public/templates/default/images/standard/icon_talt.svg b/components/ILIAS/UI/resources/images/standard/icon_talt.svg similarity index 100% rename from public/templates/default/images/standard/icon_talt.svg rename to components/ILIAS/UI/resources/images/standard/icon_talt.svg diff --git a/public/templates/default/images/standard/icon_task.svg b/components/ILIAS/UI/resources/images/standard/icon_task.svg similarity index 100% rename from public/templates/default/images/standard/icon_task.svg rename to components/ILIAS/UI/resources/images/standard/icon_task.svg diff --git a/public/templates/default/images/standard/icon_tax.svg b/components/ILIAS/UI/resources/images/standard/icon_tax.svg similarity index 100% rename from public/templates/default/images/standard/icon_tax.svg rename to components/ILIAS/UI/resources/images/standard/icon_tax.svg diff --git a/public/templates/default/images/standard/icon_taxn.svg b/components/ILIAS/UI/resources/images/standard/icon_taxn.svg similarity index 100% rename from public/templates/default/images/standard/icon_taxn.svg rename to components/ILIAS/UI/resources/images/standard/icon_taxn.svg diff --git a/public/templates/default/images/standard/icon_taxs.svg b/components/ILIAS/UI/resources/images/standard/icon_taxs.svg similarity index 100% rename from public/templates/default/images/standard/icon_taxs.svg rename to components/ILIAS/UI/resources/images/standard/icon_taxs.svg diff --git a/public/templates/default/images/standard/icon_time.svg b/components/ILIAS/UI/resources/images/standard/icon_time.svg similarity index 100% rename from public/templates/default/images/standard/icon_time.svg rename to components/ILIAS/UI/resources/images/standard/icon_time.svg diff --git a/public/templates/default/images/standard/icon_toc.svg b/components/ILIAS/UI/resources/images/standard/icon_toc.svg similarity index 100% rename from public/templates/default/images/standard/icon_toc.svg rename to components/ILIAS/UI/resources/images/standard/icon_toc.svg diff --git a/public/templates/default/images/standard/icon_tool.svg b/components/ILIAS/UI/resources/images/standard/icon_tool.svg similarity index 100% rename from public/templates/default/images/standard/icon_tool.svg rename to components/ILIAS/UI/resources/images/standard/icon_tool.svg diff --git a/public/templates/default/images/standard/icon_tos.svg b/components/ILIAS/UI/resources/images/standard/icon_tos.svg similarity index 100% rename from public/templates/default/images/standard/icon_tos.svg rename to components/ILIAS/UI/resources/images/standard/icon_tos.svg diff --git a/public/templates/default/images/standard/icon_trac.svg b/components/ILIAS/UI/resources/images/standard/icon_trac.svg similarity index 100% rename from public/templates/default/images/standard/icon_trac.svg rename to components/ILIAS/UI/resources/images/standard/icon_trac.svg diff --git a/public/templates/default/images/standard/icon_trash.svg b/components/ILIAS/UI/resources/images/standard/icon_trash.svg similarity index 100% rename from public/templates/default/images/standard/icon_trash.svg rename to components/ILIAS/UI/resources/images/standard/icon_trash.svg diff --git a/public/templates/default/images/standard/icon_tst.svg b/components/ILIAS/UI/resources/images/standard/icon_tst.svg similarity index 100% rename from public/templates/default/images/standard/icon_tst.svg rename to components/ILIAS/UI/resources/images/standard/icon_tst.svg diff --git a/public/templates/default/images/standard/icon_tstt.svg b/components/ILIAS/UI/resources/images/standard/icon_tstt.svg similarity index 100% rename from public/templates/default/images/standard/icon_tstt.svg rename to components/ILIAS/UI/resources/images/standard/icon_tstt.svg diff --git a/public/templates/default/images/standard/icon_tstv.svg b/components/ILIAS/UI/resources/images/standard/icon_tstv.svg similarity index 100% rename from public/templates/default/images/standard/icon_tstv.svg rename to components/ILIAS/UI/resources/images/standard/icon_tstv.svg diff --git a/public/templates/default/images/standard/icon_tt.svg b/components/ILIAS/UI/resources/images/standard/icon_tt.svg similarity index 100% rename from public/templates/default/images/standard/icon_tt.svg rename to components/ILIAS/UI/resources/images/standard/icon_tt.svg diff --git a/public/templates/default/images/standard/icon_unchecked.svg b/components/ILIAS/UI/resources/images/standard/icon_unchecked.svg similarity index 100% rename from public/templates/default/images/standard/icon_unchecked.svg rename to components/ILIAS/UI/resources/images/standard/icon_unchecked.svg diff --git a/public/templates/default/images/standard/icon_usr.svg b/components/ILIAS/UI/resources/images/standard/icon_usr.svg similarity index 100% rename from public/templates/default/images/standard/icon_usr.svg rename to components/ILIAS/UI/resources/images/standard/icon_usr.svg diff --git a/public/templates/default/images/standard/icon_usra.svg b/components/ILIAS/UI/resources/images/standard/icon_usra.svg similarity index 100% rename from public/templates/default/images/standard/icon_usra.svg rename to components/ILIAS/UI/resources/images/standard/icon_usra.svg diff --git a/public/templates/default/images/standard/icon_usrf.svg b/components/ILIAS/UI/resources/images/standard/icon_usrf.svg similarity index 100% rename from public/templates/default/images/standard/icon_usrf.svg rename to components/ILIAS/UI/resources/images/standard/icon_usrf.svg diff --git a/public/templates/default/images/standard/icon_wbdv.svg b/components/ILIAS/UI/resources/images/standard/icon_wbdv.svg similarity index 100% rename from public/templates/default/images/standard/icon_wbdv.svg rename to components/ILIAS/UI/resources/images/standard/icon_wbdv.svg diff --git a/public/templates/default/images/standard/icon_wbrs.svg b/components/ILIAS/UI/resources/images/standard/icon_wbrs.svg similarity index 100% rename from public/templates/default/images/standard/icon_wbrs.svg rename to components/ILIAS/UI/resources/images/standard/icon_wbrs.svg diff --git a/public/templates/default/images/standard/icon_webr.svg b/components/ILIAS/UI/resources/images/standard/icon_webr.svg similarity index 100% rename from public/templates/default/images/standard/icon_webr.svg rename to components/ILIAS/UI/resources/images/standard/icon_webr.svg diff --git a/public/templates/default/images/standard/icon_wfld.svg b/components/ILIAS/UI/resources/images/standard/icon_wfld.svg similarity index 100% rename from public/templates/default/images/standard/icon_wfld.svg rename to components/ILIAS/UI/resources/images/standard/icon_wfld.svg diff --git a/public/templates/default/images/standard/icon_wiki.svg b/components/ILIAS/UI/resources/images/standard/icon_wiki.svg similarity index 100% rename from public/templates/default/images/standard/icon_wiki.svg rename to components/ILIAS/UI/resources/images/standard/icon_wiki.svg diff --git a/public/templates/default/images/standard/icon_wikis.svg b/components/ILIAS/UI/resources/images/standard/icon_wikis.svg similarity index 100% rename from public/templates/default/images/standard/icon_wikis.svg rename to components/ILIAS/UI/resources/images/standard/icon_wikis.svg diff --git a/public/templates/default/images/standard/icon_wiks.svg b/components/ILIAS/UI/resources/images/standard/icon_wiks.svg similarity index 100% rename from public/templates/default/images/standard/icon_wiks.svg rename to components/ILIAS/UI/resources/images/standard/icon_wiks.svg diff --git a/public/templates/default/images/standard/icon_wksp.svg b/components/ILIAS/UI/resources/images/standard/icon_wksp.svg similarity index 100% rename from public/templates/default/images/standard/icon_wksp.svg rename to components/ILIAS/UI/resources/images/standard/icon_wksp.svg diff --git a/public/templates/default/images/standard/icon_wsrt.svg b/components/ILIAS/UI/resources/images/standard/icon_wsrt.svg similarity index 100% rename from public/templates/default/images/standard/icon_wsrt.svg rename to components/ILIAS/UI/resources/images/standard/icon_wsrt.svg diff --git a/public/templates/default/images/standard/icon_x.svg b/components/ILIAS/UI/resources/images/standard/icon_x.svg similarity index 100% rename from public/templates/default/images/standard/icon_x.svg rename to components/ILIAS/UI/resources/images/standard/icon_x.svg diff --git a/public/templates/default/images/standard/icon_xlet.svg b/components/ILIAS/UI/resources/images/standard/icon_xlet.svg similarity index 100% rename from public/templates/default/images/standard/icon_xlet.svg rename to components/ILIAS/UI/resources/images/standard/icon_xlet.svg diff --git a/public/components/ILIAS/UI/src/templates/js/Button/button.js b/components/ILIAS/UI/resources/js/Button/button.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Button/button.js rename to components/ILIAS/UI/resources/js/Button/button.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/dist/bar.js b/components/ILIAS/UI/resources/js/Chart/Bar/dist/bar.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/dist/bar.js rename to components/ILIAS/UI/resources/js/Chart/Bar/dist/bar.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/rollup.config.js b/components/ILIAS/UI/resources/js/Chart/Bar/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/rollup.config.js rename to components/ILIAS/UI/resources/js/Chart/Bar/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.horizontal.js b/components/ILIAS/UI/resources/js/Chart/Bar/src/bar.horizontal.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.horizontal.js rename to components/ILIAS/UI/resources/js/Chart/Bar/src/bar.horizontal.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.js b/components/ILIAS/UI/resources/js/Chart/Bar/src/bar.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.js rename to components/ILIAS/UI/resources/js/Chart/Bar/src/bar.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.vertical.js b/components/ILIAS/UI/resources/js/Chart/Bar/src/bar.vertical.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.vertical.js rename to components/ILIAS/UI/resources/js/Chart/Bar/src/bar.vertical.js diff --git a/public/components/ILIAS/UI/src/templates/js/Core/dist/core.js b/components/ILIAS/UI/resources/js/Core/dist/core.js old mode 100755 new mode 100644 similarity index 95% rename from public/components/ILIAS/UI/src/templates/js/Core/dist/core.js rename to components/ILIAS/UI/resources/js/Core/dist/core.js index 0c881b2a9411..18db788e5c04 --- a/public/components/ILIAS/UI/src/templates/js/Core/dist/core.js +++ b/components/ILIAS/UI/resources/js/Core/dist/core.js @@ -15,11 +15,6 @@ (function (il, $) { 'use strict'; - function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - - var il__default = /*#__PURE__*/_interopDefaultLegacy(il); - var $__default = /*#__PURE__*/_interopDefaultLegacy($); - /** * Replace a component or parts of a component using ajax call * @@ -59,6 +54,23 @@ }; /** + * This file is part of ILIAS, a powerful learning management system + * published by ILIAS open source e-Learning e.V. + * + * ILIAS is licensed with the GPL-3.0, + * see https://www.gnu.org/licenses/gpl-3.0.en.html + * You should have received a copy of said license along with the + * source code, too. + * + * If this is not the case or you just want to try ILIAS, you'll find + * us at: + * https://www.ilias.de + * https://github.com/ILIAS-eLearning + * + ******************************************************************** + */ + + /** * This represents one tooltip on the page. */ class Tooltip { @@ -375,6 +387,7 @@ ******************************************************************** */ + const URLBuilderUrlMaxLength = 2048; const URLBuilderSeparator = '_'; @@ -625,12 +638,13 @@ ******************************************************************** */ - il__default["default"].UI = il__default["default"].UI || {}; - il__default["default"].UI.core = il__default["default"].UI.core || {}; - il__default["default"].UI.core.replaceContent = replaceContent($__default["default"]); - il__default["default"].UI.core.Tooltip = Tooltip; - il__default["default"].UI.core.URLBuilder = URLBuilder; - il__default["default"].UI.core.URLBuilderToken = URLBuilderToken; + il.UI = il.UI || {}; + il.UI.core = il.UI.core || {}; + + il.UI.core.replaceContent = replaceContent($); + il.UI.core.Tooltip = Tooltip; + il.UI.core.URLBuilder = URLBuilder; + il.UI.core.URLBuilderToken = URLBuilderToken; })(il, $); diff --git a/components/ILIAS/UI/src/templates/js/Core/rollup.config.js b/components/ILIAS/UI/resources/js/Core/rollup.config.js similarity index 89% rename from components/ILIAS/UI/src/templates/js/Core/rollup.config.js rename to components/ILIAS/UI/resources/js/Core/rollup.config.js index 04a562cc0d13..5c378d221e98 100755 --- a/components/ILIAS/UI/src/templates/js/Core/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Core/rollup.config.js @@ -13,7 +13,7 @@ * https://github.com/ILIAS-eLearning */ -import copyright from '../../../../../CI/Copyright-Checker/copyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; export default { external: [ diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.Tooltip.js b/components/ILIAS/UI/resources/js/Core/src/core.Tooltip.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.Tooltip.js rename to components/ILIAS/UI/resources/js/Core/src/core.Tooltip.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilder.js b/components/ILIAS/UI/resources/js/Core/src/core.URLBuilder.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilder.js rename to components/ILIAS/UI/resources/js/Core/src/core.URLBuilder.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilderToken.js b/components/ILIAS/UI/resources/js/Core/src/core.URLBuilderToken.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilderToken.js rename to components/ILIAS/UI/resources/js/Core/src/core.URLBuilderToken.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.js b/components/ILIAS/UI/resources/js/Core/src/core.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.js rename to components/ILIAS/UI/resources/js/Core/src/core.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.replaceContent.js b/components/ILIAS/UI/resources/js/Core/src/core.replaceContent.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.replaceContent.js rename to components/ILIAS/UI/resources/js/Core/src/core.replaceContent.js diff --git a/public/components/ILIAS/UI/src/templates/js/Counter/dist/counter.js b/components/ILIAS/UI/resources/js/Counter/dist/counter.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/Counter/dist/counter.js rename to components/ILIAS/UI/resources/js/Counter/dist/counter.js index 7063ef9b1b01..2c25814f492d --- a/public/components/ILIAS/UI/src/templates/js/Counter/dist/counter.js +++ b/components/ILIAS/UI/resources/js/Counter/dist/counter.js @@ -379,4 +379,4 @@ */ il.UI.counter = counterFactory($); -}()); +})(); diff --git a/components/ILIAS/UI/src/templates/js/Counter/rollup.config.js b/components/ILIAS/UI/resources/js/Counter/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Counter/rollup.config.js rename to components/ILIAS/UI/resources/js/Counter/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Counter/src/counter.js b/components/ILIAS/UI/resources/js/Counter/src/counter.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Counter/src/counter.js rename to components/ILIAS/UI/resources/js/Counter/src/counter.js diff --git a/components/ILIAS/UI/src/templates/js/Counter/src/counter.main.js b/components/ILIAS/UI/resources/js/Counter/src/counter.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Counter/src/counter.main.js rename to components/ILIAS/UI/resources/js/Counter/src/counter.main.js diff --git a/public/components/ILIAS/UI/src/templates/js/Dropdown/dropdown.js b/components/ILIAS/UI/resources/js/Dropdown/dropdown.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Dropdown/dropdown.js rename to components/ILIAS/UI/resources/js/Dropdown/dropdown.js diff --git a/public/components/ILIAS/UI/src/templates/js/Dropzone/File/dropzone.js b/components/ILIAS/UI/resources/js/Dropzone/File/dropzone.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Dropzone/File/dropzone.js rename to components/ILIAS/UI/resources/js/Dropzone/File/dropzone.js diff --git a/components/ILIAS/UI/resources/js/Image/dist/image.min.js b/components/ILIAS/UI/resources/js/Image/dist/image.min.js new file mode 100644 index 000000000000..5ad247cca8e2 --- /dev/null +++ b/components/ILIAS/UI/resources/js/Image/dist/image.min.js @@ -0,0 +1,15 @@ +/** + * This file is part of ILIAS, a powerful learning management system + * published by ILIAS open source e-Learning e.V. + * + * ILIAS is licensed with the GPL-3.0, + * see https://www.gnu.org/licenses/gpl-3.0.en.html + * You should have received a copy of said license along with the + * source code, too. + * + * If this is not the case or you just want to try ILIAS, you'll find + * us at: + * https://www.ilias.de + * https://github.com/ILIAS-eLearning + */ +!function(e,n){"use strict";e.UI=e.UI||{},e.UI.image=e.UI.image||{},e.UI.image.getImageElement=e=>function(e,n){const t=e.getElementById(n);return null===t?null:t instanceof e.defaultView.HTMLImageElement?t:t.querySelector("img")}(n,e),e.UI.image.loadHighResolutionSource=function(e,n){const t=function(e,n){let t=null,l=null;return e.forEach(((e,i)=>{i<=n&&i>l&&(l=i,t=e)})),t}(n,e.width);if(null!==t){const n=e.cloneNode();n.addEventListener("load",(()=>{e.replaceWith(n)})),n.src=t}}}(il,document); diff --git a/components/ILIAS/UI/src/templates/js/Image/rollup.config.js b/components/ILIAS/UI/resources/js/Image/rollup.config.js similarity index 83% rename from components/ILIAS/UI/src/templates/js/Image/rollup.config.js rename to components/ILIAS/UI/resources/js/Image/rollup.config.js index d2a13a8fa333..f4cffabad2c4 100755 --- a/components/ILIAS/UI/src/templates/js/Image/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Image/rollup.config.js @@ -14,8 +14,8 @@ */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../CI/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../CI/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default { external: [ diff --git a/components/ILIAS/UI/src/templates/js/Image/src/getImageElement.js b/components/ILIAS/UI/resources/js/Image/src/getImageElement.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Image/src/getImageElement.js rename to components/ILIAS/UI/resources/js/Image/src/getImageElement.js diff --git a/components/ILIAS/UI/src/templates/js/Image/src/image.js b/components/ILIAS/UI/resources/js/Image/src/image.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Image/src/image.js rename to components/ILIAS/UI/resources/js/Image/src/image.js diff --git a/components/ILIAS/UI/src/templates/js/Image/src/loadHighResolutionSource.js b/components/ILIAS/UI/resources/js/Image/src/loadHighResolutionSource.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Image/src/loadHighResolutionSource.js rename to components/ILIAS/UI/resources/js/Image/src/loadHighResolutionSource.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/dist/filter.js b/components/ILIAS/UI/resources/js/Input/Container/dist/filter.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/dist/filter.js rename to components/ILIAS/UI/resources/js/Input/Container/dist/filter.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/rollup.config.js b/components/ILIAS/UI/resources/js/Input/Container/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/rollup.config.js rename to components/ILIAS/UI/resources/js/Input/Container/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/src/filter.js b/components/ILIAS/UI/resources/js/Input/Container/src/filter.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/src/filter.js rename to components/ILIAS/UI/resources/js/Input/Container/src/filter.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/src/filter.main.js b/components/ILIAS/UI/resources/js/Input/Container/src/filter.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/src/filter.main.js rename to components/ILIAS/UI/resources/js/Input/Container/src/filter.main.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js b/components/ILIAS/UI/resources/js/Input/Field/dist/input.factory.min.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js rename to components/ILIAS/UI/resources/js/Input/Field/dist/input.factory.min.js index 791f9b2183db..283584afd168 --- a/public/components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js +++ b/components/ILIAS/UI/resources/js/Input/Field/dist/input.factory.min.js @@ -924,6 +924,7 @@ class MarkdownFactory { * other and are bundled into separate files. */ + var il = il || {}; il.UI = il.UI || {}; il.UI.Input = il.UI.Input || {}; diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/dynamic_inputs_renderer.js b/components/ILIAS/UI/resources/js/Input/Field/dynamic_inputs_renderer.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/dynamic_inputs_renderer.js rename to components/ILIAS/UI/resources/js/Input/Field/dynamic_inputs_renderer.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/file.js b/components/ILIAS/UI/resources/js/Input/Field/file.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/file.js rename to components/ILIAS/UI/resources/js/Input/Field/file.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/groups.js b/components/ILIAS/UI/resources/js/Input/Field/groups.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/groups.js rename to components/ILIAS/UI/resources/js/Input/Field/groups.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/input.js b/components/ILIAS/UI/resources/js/Input/Field/input.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/input.js rename to components/ILIAS/UI/resources/js/Input/Field/input.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/rollup.config.js b/components/ILIAS/UI/resources/js/Input/Field/rollup.config.js similarity index 55% rename from components/ILIAS/UI/src/templates/js/Input/Field/rollup.config.js rename to components/ILIAS/UI/resources/js/Input/Field/rollup.config.js index 4e523fdee19d..0086b65aac55 100755 --- a/components/ILIAS/UI/src/templates/js/Input/Field/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Input/Field/rollup.config.js @@ -1,10 +1,7 @@ -import {terser} from "rollup-plugin-terser"; - export default { input: './src/input.factory.js', output: { file: './dist/input.factory.min.js', - format: 'es', - // plugins: [terser()], + format: 'es' }, }; diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.class.js b/components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.class.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.class.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.factory.js b/components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.factory.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/preview.renderer.js b/components/ILIAS/UI/resources/js/Input/Field/src/Markdown/preview.renderer.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/preview.renderer.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Markdown/preview.renderer.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.class.js b/components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.class.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.class.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.factory.js b/components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.factory.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/input.factory.js b/components/ILIAS/UI/resources/js/Input/Field/src/input.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/input.factory.js rename to components/ILIAS/UI/resources/js/Input/Field/src/input.factory.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/tagInput.js b/components/ILIAS/UI/resources/js/Input/Field/tagInput.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/tagInput.js rename to components/ILIAS/UI/resources/js/Input/Field/tagInput.js diff --git a/components/ILIAS/UI/src/templates/js/Item/dist/notification.js b/components/ILIAS/UI/resources/js/Item/dist/notification.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/dist/notification.js rename to components/ILIAS/UI/resources/js/Item/dist/notification.js diff --git a/components/ILIAS/UI/src/templates/js/Item/rollup.config.js b/components/ILIAS/UI/resources/js/Item/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/rollup.config.js rename to components/ILIAS/UI/resources/js/Item/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Item/src/notification.js b/components/ILIAS/UI/resources/js/Item/src/notification.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/src/notification.js rename to components/ILIAS/UI/resources/js/Item/src/notification.js diff --git a/components/ILIAS/UI/src/templates/js/Item/src/notification.main.js b/components/ILIAS/UI/resources/js/Item/src/notification.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/src/notification.main.js rename to components/ILIAS/UI/resources/js/Item/src/notification.main.js diff --git a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js b/components/ILIAS/UI/resources/js/MainControls/dist/mainbar.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js rename to components/ILIAS/UI/resources/js/MainControls/dist/mainbar.js index a829bc0c1ceb..4d5fd5702da8 --- a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js +++ b/components/ILIAS/UI/resources/js/MainControls/dist/mainbar.js @@ -438,8 +438,8 @@ var model = function() { if(!state.entries[entry_id]) { //tools return true; } - var hops = entry_id.split(':'), - entries = state.entries; + var hops = entry_id.split(':'); + state.entries; while (hops.length > 1) { entry_id = hops.join(':'); if(!state.entries[entry_id].engaged) { diff --git a/components/ILIAS/UI/resources/js/MainControls/dist/maincontrols.min.js b/components/ILIAS/UI/resources/js/MainControls/dist/maincontrols.min.js new file mode 100644 index 000000000000..6db53062af85 --- /dev/null +++ b/components/ILIAS/UI/resources/js/MainControls/dist/maincontrols.min.js @@ -0,0 +1,15 @@ +/** + * This file is part of ILIAS, a powerful learning management system + * published by ILIAS open source e-Learning e.V. + * + * ILIAS is licensed with the GPL-3.0, + * see https://www.gnu.org/licenses/gpl-3.0.en.html + * You should have received a copy of said license along with the + * source code, too. + * + * If this is not the case or you just want to try ILIAS, you'll find + * us at: + * https://www.ilias.de + * https://github.com/ILIAS-eLearning + */ +!function(t,e){"use strict";const n="engaged",s="il-maincontrols-metabar",a="il-metabar-slates",i="il-metabar-more-button",o="il-metabar-more-slate",r="il-maincontrols-slate";function l(t){t.removeClass(n),t.attr("aria-expanded",!1)}class c{#t;#e;#n;#s;#a;#i;#o;constructor(t,e,n,s,a,i){this.#t=t,this.#e=e,this.#s=n,this.#a=s,this.#i=a,this.#o=i}registerSignals(t,e){this.#t(document).on(t,((t,e)=>(this.#r(t,e),this.#s()&&this.#i(),!1))),this.#t(document).on(e,(()=>(this.onClickDisengageAll(),!1))),this.#t(`.${s}`).on("click",(()=>{this.#n=!0})),this.#t("body").on("click",(()=>{this.#n?this.#n=!1:this.onClickDisengageAll()})),this.#t(`.${a} > .${r}`).on("focusout",(t=>{if(!this.#s()){const e=t.relatedTarget,n=t.currentTarget;this.#t.contains(n,e)||this.onClickDisengageAll()}}))}#r(t,e){const s=e.triggerer;!function(t){return t.hasClass(n)}(s)?(this.disengageAllSlates(),this.disengageAllButtons(),0===s.parents(`.${o}`).length&&function(t){t.addClass(n),t.attr("aria-expanded",!0)}(s)):l(s)}onClickDisengageAll(){this.disengageAllButtons(),this.disengageAllSlates()}disengageAllButtons(){this.#t(`#${this.#e}.${s}`).children("li").children(`.btn.${n}`).each(((t,e)=>{l(this.#t(e))}))}disengageAllSlates(){this.getEngagedSlates().each(((t,e)=>{this.#o(this.#t(e))}))}disengageAll(){this.disengageAllSlates(),this.disengageAllButtons()}getEngagedSlates(){const t=`#${this.#e} .${r}.engaged`;return this.#t(t)}init(){this.#l(),this.#c(),this.#s()?this.#u():this.#h(),this.#t(`.${s}`).css("visibility","visible"),this.#t(`#${this.#e} .${a}`).children(`.${r}`).attr("aria-hidden",!0)}#u(){this.#g(),this.#d().hide(),this.getMoreButton().show(),this.#y()}#h(){this.getMoreButton().hide(),this.#d().show()}#l(){if(0===this.getMoreButton().length){const t=this.#t(`#${this.#e}.${s}`).find(".btn, .il-link").last();this.#t(t).addClass(i)}}#c(){if(0===this.#S().length){const t=this.#t(`#${this.#e} .${a}`).children(`.${r}`).last();this.#t(t).addClass(o)}}getMoreButton(){return this.#t(`.${i}`)}#S(){return this.#t(`.${o}`)}#d(){return this.#t(`#${this.#e}.${s}`).children("li").children(".btn, .il-link").not(`.${i}`)}#g(){const t=this.#S().children(".il-maincontrols-slate-content");0===t.children().length&&this.#d().clone(!0,!0).appendTo(t)}#y(){const t=this.#a.getCounterObjectOrNull(this.#S());t&&this.#a.getCounterObject(this.getMoreButton()).setNoveltyTo(t.getNoveltyCount()).setStatusTo(t.getStatusCount())}}const u="engaged",h="disengaged";function g(t){return t.hasClass(u)}function d(t){t.removeClass(h),t.addClass(u),t.attr("aria-expanded","true"),t.attr("aria-hidden","false")}function y(t){t.removeClass(u),t.addClass(h),t.attr("aria-expanded","false"),t.attr("aria-hidden","true")}function S(t){g(t)?y(t):d(t)}var m=function(t){var e="il-counter",n={getCounterObject:function(t){let e;return e=s(t),console.assert(e.length>0,"Passed jQuery Object does not contain a counter"),a(e)},getCounterObjectOrNull:function(t){let e;return e=s(t),0===e.length?null:a(e)}},s=function(n){console.assert(n instanceof t,"$object_containing_counter is not a jQuery Object, param: "+n);var s=n;return n.hasClass(e)||(s=n.find("."+e)),s},a=function(e){return b.bind({})(e,t)};return n},b=function(t,e){const n=" Counter does not exist in the DOM. Make sure the respective Counter type has been rendered before applying this operations.",s=" is not a number";this.getStatusCount=function(){return r(o(t))},this.getNoveltyCount=function(){return r(i(t))},this.hasNoveltyObject=function(){return i(t).length>0},this.hasStatusObject=function(){return o(t).length>0},this.setNoveltyTo=function(e){console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s);var a=i(t);return a.html(e),0===e?a.hide():a.show(),this},this.setStatusTo=function(e){console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s);var a=o(t);return a.html(e),0===e?a.hide():a.show(),this},this.incrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()+e)}),t),this},this.decrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()-e)}),t),this},this.incrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()+e)}),t),this},this.decrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()-e)}),t),this},this.setTotalNoveltyToStatusCount=function(){return console.assert(this.hasStatusObject(),"Status "+n),console.assert(this.hasNoveltyObject(),"Novelty "+n),this.incrementStatusCount(this.getNoveltyCount()).setNoveltyTo(0)};var a={getNoveltyCount:this.getNoveltyCount,getStatusCount:this.getStatusCount,hasNoveltyObject:this.hasNoveltyObject,hasStatusObject:this.hasStatusObject,setNoveltyTo:this.setNoveltyTo,setStatusTo:this.setStatusTo,incrementNoveltyCount:this.incrementNoveltyCount,decrementNoveltyCount:this.decrementNoveltyCount,incrementStatusCount:this.incrementStatusCount,decrementStatusCount:this.decrementStatusCount,setTotalNoveltyToStatusCount:this.setTotalNoveltyToStatusCount},i=function(t){return t.find(".il-counter-novelty")},o=function(t){return t.find(".il-counter-status")},r=function(t){var n=0;return t.each((function(){var t=e(this).text();n+=parseInt(t)})),n},l=function(t,n){n.each((function(){var n=m(e).getCounterObject(e(this));t(n,e(this))}))};return a};t.UI=t.UI||{},t.UI.maincontrols=t.UI.maincontrols||{},t.UI.maincontrols.metabar=new class{#t;#m=[];#s;#a;#i;#o;constructor(t,e,n,s,a){this.#t=t,this.#s=e,this.#a=n,this.#i=s,this.#o=a}init(t){if(void 0!==this.#m[t])throw new Error(`Metabar with id '${t}' has already been initialized.`);this.#m[t]=new c(this.#t,t,this.#s,this.#a,this.#i,this.#o)}get(t){return this.#m[t]??null}disengageAll(){Object.values(this.#m).forEach((t=>t.disengageAll()))}}(e,t.UI.page.isSmallScreen,m(e),(()=>t.UI.maincontrols.mainbar.disengageAll()),(e=>t.UI.maincontrols.slate.disengage(e))),t.UI.maincontrols.slate=new class{#t;#b;#f;constructor(t,e,n){this.#t=t,this.#b=e,this.#f=n}onSignal(t,e,n,s){const a=this.#t(`#${s}`),{triggerer:i}=n,o=i.parents(".il-metabar-more-slate").length>0;if("toggle"===t)this.#C(a,i,o);else if("engage"===t)d(a);else{if("replace"!==t)throw new Error(`No such SignalType: ${t}`);this.#p(s,n)}}#C(t,e,n){const s=t.closest(".il-maincontrols-metabar").attr("id"),a=this.#f.get(s);e.attr("id")!==a.getMoreButton().attr("id")?(S(t),n||(g(t)?(e.addClass(u),e.removeClass(h),t.trigger("in_view")):(e.removeClass(u),e.addClass(h)))):a.getEngagedSlates().length>0?a.disengageAllSlates():S(t)}disengage=y;#p(t,e){const{url:n}=e.options;this.#b(t,n,"content")}}(e,function(t){return function(e,n,s){t.ajax({url:n,dataType:"html"}).done((function(n){var a=t("
    "+n+"
    "),i=a.find("[data-replace-marker='"+s+"']").first();0==i.length?t("#"+e+" [data-replace-marker='"+s+"']").html(n):(t("#"+e+" [data-replace-marker='"+s+"']").first().replaceWith(i),t("#"+e+" [data-replace-marker='"+s+"']").first().after(a.find("[data-replace-marker='script']")))}))}}(e),t.UI.maincontrols.metabar)}(il,$); diff --git a/components/ILIAS/UI/src/templates/js/MainControls/rollup.config.js b/components/ILIAS/UI/resources/js/MainControls/rollup.config.js similarity index 86% rename from components/ILIAS/UI/src/templates/js/MainControls/rollup.config.js rename to components/ILIAS/UI/resources/js/MainControls/rollup.config.js index 4fdbcdfa686b..15aa4c1f47f4 100755 --- a/components/ILIAS/UI/src/templates/js/MainControls/rollup.config.js +++ b/components/ILIAS/UI/resources/js/MainControls/rollup.config.js @@ -15,8 +15,8 @@ ******************************************************************** */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../CI/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../CI/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default [ { diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.main.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.main.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.main.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.model.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.model.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.model.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.model.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.persistence.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.persistence.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.persistence.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.persistence.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.renderer.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.renderer.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.renderer.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.renderer.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/maincontrols.js b/components/ILIAS/UI/resources/js/MainControls/src/maincontrols.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/maincontrols.js rename to components/ILIAS/UI/resources/js/MainControls/src/maincontrols.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/metabar.class.js b/components/ILIAS/UI/resources/js/MainControls/src/metabar.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/metabar.class.js rename to components/ILIAS/UI/resources/js/MainControls/src/metabar.class.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/metabar.factory.js b/components/ILIAS/UI/resources/js/MainControls/src/metabar.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/metabar.factory.js rename to components/ILIAS/UI/resources/js/MainControls/src/metabar.factory.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/slate.class.js b/components/ILIAS/UI/resources/js/MainControls/src/slate.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/slate.class.js rename to components/ILIAS/UI/resources/js/MainControls/src/slate.class.js diff --git a/public/components/ILIAS/UI/src/templates/js/MainControls/system_info.js b/components/ILIAS/UI/resources/js/MainControls/system_info.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/MainControls/system_info.js rename to components/ILIAS/UI/resources/js/MainControls/system_info.js diff --git a/public/components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js b/components/ILIAS/UI/resources/js/Menu/dist/drilldown.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js rename to components/ILIAS/UI/resources/js/Menu/dist/drilldown.js index 86df853dc8bc..acfae9df5fd9 --- a/public/components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js +++ b/components/ILIAS/UI/resources/js/Menu/dist/drilldown.js @@ -271,4 +271,4 @@ dd ); -}()); +})(); diff --git a/components/ILIAS/UI/src/templates/js/Menu/rollup.config.js b/components/ILIAS/UI/resources/js/Menu/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/rollup.config.js rename to components/ILIAS/UI/resources/js/Menu/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.instances.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.instances.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.instances.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.instances.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.main.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.main.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.main.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.mapping.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.mapping.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.mapping.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.mapping.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.model.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.model.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.model.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.model.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.persistence.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.persistence.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.persistence.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.persistence.js diff --git a/public/components/ILIAS/UI/src/templates/js/Modal/modal.js b/components/ILIAS/UI/resources/js/Modal/modal.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Modal/modal.js rename to components/ILIAS/UI/resources/js/Modal/modal.js diff --git a/public/components/ILIAS/UI/src/templates/js/Page/stdpage.js b/components/ILIAS/UI/resources/js/Page/stdpage.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Page/stdpage.js rename to components/ILIAS/UI/resources/js/Page/stdpage.js diff --git a/components/ILIAS/UI/src/templates/js/Popover/popover.js b/components/ILIAS/UI/resources/js/Popover/popover.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Popover/popover.js rename to components/ILIAS/UI/resources/js/Popover/popover.js diff --git a/public/components/ILIAS/UI/src/templates/js/Table/table.min.js b/components/ILIAS/UI/resources/js/Table/dist/table.min.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Table/table.min.js rename to components/ILIAS/UI/resources/js/Table/dist/table.min.js diff --git a/components/ILIAS/UI/src/templates/js/Table/rollup.config.js b/components/ILIAS/UI/resources/js/Table/rollup.config.js similarity index 76% rename from components/ILIAS/UI/src/templates/js/Table/rollup.config.js rename to components/ILIAS/UI/resources/js/Table/rollup.config.js index 1d050d679190..bb2138fe319a 100755 --- a/components/ILIAS/UI/src/templates/js/Table/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Table/rollup.config.js @@ -15,13 +15,13 @@ ******************************************************************** */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../../../scripts/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../../../scripts/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default { input: './src/table.js', output: { - file: '../../../../../../../public/components/ILIAS/UI/src/templates/js/Table/table.min.js', + file: './dist/table.min.js', format: 'iife', banner: copyright, plugins: [ diff --git a/components/ILIAS/UI/src/templates/js/Table/src/datatable.class.js b/components/ILIAS/UI/resources/js/Table/src/datatable.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/datatable.class.js rename to components/ILIAS/UI/resources/js/Table/src/datatable.class.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/datatable.factory.js b/components/ILIAS/UI/resources/js/Table/src/datatable.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/datatable.factory.js rename to components/ILIAS/UI/resources/js/Table/src/datatable.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/presentationtable.class.js b/components/ILIAS/UI/resources/js/Table/src/presentationtable.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/presentationtable.class.js rename to components/ILIAS/UI/resources/js/Table/src/presentationtable.class.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/presentationtable.factory.js b/components/ILIAS/UI/resources/js/Table/src/presentationtable.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/presentationtable.factory.js rename to components/ILIAS/UI/resources/js/Table/src/presentationtable.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/table.js b/components/ILIAS/UI/resources/js/Table/src/table.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/table.js rename to components/ILIAS/UI/resources/js/Table/src/table.js diff --git a/public/components/ILIAS/UI/src/templates/js/Toast/toast.js b/components/ILIAS/UI/resources/js/Toast/toast.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Toast/toast.js rename to components/ILIAS/UI/resources/js/Toast/toast.js diff --git a/components/ILIAS/UI/src/templates/js/Tree/tree.js b/components/ILIAS/UI/resources/js/Tree/tree.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Tree/tree.js rename to components/ILIAS/UI/resources/js/Tree/tree.js diff --git a/public/components/ILIAS/UI/src/templates/js/ViewControl/viewcontrols.min.js b/components/ILIAS/UI/resources/js/ViewControl/dist/viewcontrols.min.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/ViewControl/viewcontrols.min.js rename to components/ILIAS/UI/resources/js/ViewControl/dist/viewcontrols.min.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/rollup.config.js b/components/ILIAS/UI/resources/js/ViewControl/rollup.config.js similarity index 75% rename from components/ILIAS/UI/src/templates/js/ViewControl/rollup.config.js rename to components/ILIAS/UI/resources/js/ViewControl/rollup.config.js index 051716cd2dbc..ec8cdde48db4 100644 --- a/components/ILIAS/UI/src/templates/js/ViewControl/rollup.config.js +++ b/components/ILIAS/UI/resources/js/ViewControl/rollup.config.js @@ -15,13 +15,13 @@ ******************************************************************** */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../../../scripts/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../../../scripts/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default { input: './src/viewcontrols.js', output: { - file: '../../../../../../../public/components/ILIAS/UI/src/templates/js/ViewControl/viewcontrols.min.js', + file: './dist/viewcontrols.min.js', format: 'iife', banner: copyright, plugins: [ diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/jqueryeventdispatcher.js b/components/ILIAS/UI/resources/js/ViewControl/src/jqueryeventdispatcher.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/jqueryeventdispatcher.js rename to components/ILIAS/UI/resources/js/ViewControl/src/jqueryeventdispatcher.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.class.js b/components/ILIAS/UI/resources/js/ViewControl/src/pagination.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.class.js rename to components/ILIAS/UI/resources/js/ViewControl/src/pagination.class.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.factory.js b/components/ILIAS/UI/resources/js/ViewControl/src/pagination.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.factory.js rename to components/ILIAS/UI/resources/js/ViewControl/src/pagination.factory.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.class.js b/components/ILIAS/UI/resources/js/ViewControl/src/sortation.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.class.js rename to components/ILIAS/UI/resources/js/ViewControl/src/sortation.class.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.factory.js b/components/ILIAS/UI/resources/js/ViewControl/src/sortation.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.factory.js rename to components/ILIAS/UI/resources/js/ViewControl/src/sortation.factory.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/viewcontrols.js b/components/ILIAS/UI/resources/js/ViewControl/src/viewcontrols.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/viewcontrols.js rename to components/ILIAS/UI/resources/js/ViewControl/src/viewcontrols.js diff --git a/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php index ce77be110a76..fb7a711e6aac 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php @@ -101,7 +101,7 @@ protected function renderButton(Component\Button\Button $component, RendererInte } if ($component instanceof Component\Button\LoadingAnimationOnClick && $component->hasLoadingAnimationOnClick()) { - $component = $component->withAdditionalOnLoadCode(fn ($id) => "$('#$id').click(function(e) { il.UI.button.activateLoadingAnimation('$id')});"); + $component = $component->withAdditionalOnLoadCode(fn($id) => "$('#$id').click(function(e) { il.UI.button.activateLoadingAnimation('$id')});"); } } else { $tpl->touchBlock("disabled"); @@ -164,9 +164,9 @@ protected function renderButton(Component\Button\Button $component, RendererInte public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Button/button.js'); - $registry->register("./node_modules/moment/min/moment-with-locales.min.js"); - $registry->register("./node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"); + $registry->register('assets/js/button.js'); + $registry->register("./assets/js/moment-with-locales.min.js"); + $registry->register("./assets/js/bootstrap-datetimepicker.min.js"); } protected function renderClose(Component\Button\Close $component): string @@ -221,7 +221,7 @@ protected function renderToggle(Component\Button\Toggle $component): string } if ($component->isActive()) { - $component = $component->withAdditionalOnLoadCode(fn ($id) => "$('#$id').on('click', function(event) { + $component = $component->withAdditionalOnLoadCode(fn($id) => "$('#$id').on('click', function(event) { il.UI.button.handleToggleClick(event, '$id', '$on_url', '$off_url', $signals); return false; // stop event propagation });"); @@ -298,7 +298,7 @@ protected function renderMonth(Component\Button\Month $component): string } $tpl->setVariable("LANG", $lang_key); - $component = $component->withAdditionalOnLoadCode(fn ($id) => "il.UI.button.initMonth('$id');"); + $component = $component->withAdditionalOnLoadCode(fn($id) => "il.UI.button.initMonth('$id');"); $id = $this->bindJavaScript($component); $tpl->setVariable("ID", $id); diff --git a/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php index e4b5f537c87f..a7e08351130b 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php @@ -417,7 +417,7 @@ public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); $registry->register('./node_modules/chart.js/dist/chart.min.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Chart/Bar/dist/bar.js'); + $registry->register('assets/js/bar.js'); } protected function getComponentInterfaceName(): array diff --git a/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php index e550a4c8b8f2..68dc9a200a8a 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php @@ -50,7 +50,7 @@ public function render(Component\Component $component, RendererInterface $defaul public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Counter/dist/counter.js'); + $registry->register('assets/js/counter.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php index f98b46280c47..00d2770d3038 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php @@ -98,7 +98,7 @@ protected function renderId( $id = $this->createId(); } $tpl->setVariable("ID", $id); - $tpl->setVariable("ID_MENU", $id."_menu"); + $tpl->setVariable("ID_MENU", $id . "_menu"); } @@ -108,7 +108,7 @@ protected function renderId( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Dropdown/dropdown.js'); + $registry->register('assets/js/dropdown.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php index 918c925aac0b..f2812fdda514 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php @@ -50,7 +50,7 @@ public function render(Component $component, RenderInterface $default_renderer): public function registerResources(ResourceRegistry $registry): void { - $registry->register("./components/ILIAS/UI/src/templates/js/Dropzone/File/dropzone.js"); + $registry->register("assets/js/dropzone.js"); parent::registerResources($registry); } diff --git a/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php index 95e11d3d8fab..86aec551af7e 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php @@ -107,7 +107,7 @@ protected function getComponentInterfaceName(): array public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Image/dist/image.min.js'); + $registry->register('assets/js/image.min.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php b/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php index 453d5737919b..fe70e3cde82c 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php @@ -294,9 +294,9 @@ protected function renderMultiSelectField(F\MultiSelect $component, RendererInte public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Container/dist/filter.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/input.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/groups.js'); + $registry->register('assets/js/filter.js'); + $registry->register('assets/js/input.js'); + $registry->register('assets/js/groups.js'); } protected function setSignals(FilterInput $input): FilterInput diff --git a/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php index 5785da5cf320..f9c43d2cde3d 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php @@ -832,16 +832,16 @@ protected function renderHiddenField(F\Hidden $input): string public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./node_modules/@yaireo/tagify/dist/tagify.min.js'); - $registry->register('./node_modules/@yaireo/tagify/dist/tagify.css'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/tagInput.js'); - - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/input.js'); - $registry->register('./node_modules/dropzone/dist/dropzone.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/file.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/groups.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/dynamic_inputs_renderer.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js'); + $registry->register('assets/js/tagify.min.js'); + $registry->register('assets/css/tagify.css'); + $registry->register('assets/js/tagInput.js'); + + $registry->register('assets/js/input.js'); + $registry->register('assets/js/dropzone.js'); + $registry->register('assets/js/file.js'); + $registry->register('assets/js/groups.js'); + $registry->register('assets/js/dynamic_inputs_renderer.js'); + $registry->register('assets/js/input.factory.min.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php index 2ccadab9b4b9..3824b7c60370 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php @@ -363,7 +363,7 @@ protected function renderProperties(Item $component, RendererInterface $default_ public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Item/dist/notification.js'); + $registry->register('assets/js/notification.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php index 64766013cd62..46f736b02058 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php @@ -170,7 +170,7 @@ protected function setHeaderVars(Template $tpl, bool $for_ui_demo = false): Temp if ($for_ui_demo) { $additional_js_files = [ iljQueryUtil::getLocaljQueryPath(), - './components/ILIAS/JavaScript/js/Basic.js', + 'assets/js/Basic.js', ilUIFramework::BOOTSTRAP_JS, './node_modules/jquery-migrate/jquery-migrate.min.js', ]; @@ -203,7 +203,7 @@ protected function setHeaderVars(Template $tpl, bool $for_ui_demo = false): Temp public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Page/stdpage.js'); + $registry->register('assets/js/stdpage.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php index b9a5fe9a7db0..3fd7fdc80f33 100755 --- a/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php @@ -456,10 +456,10 @@ protected function renderFooter(Footer $component, RendererInterface $default_re public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js'); - $registry->register('./components/ILIAS/GlobalScreen/src/Client/dist/GS.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/system_info.js'); + $registry->register('assets/js/mainbar.js'); + $registry->register('assets/js/maincontrols.min.js'); + $registry->register('assets/js/GS.js'); + $registry->register('assets/js/system_info.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php index 6e312026148a..5ad5d1c7a21b 100755 --- a/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php @@ -174,7 +174,7 @@ protected function renderNotificationSlate( public function registerResources(\ILIAS\UI\Implementation\Render\ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js'); + $registry->register('assets/js/maincontrols.min.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php index 5e27692bb86f..a5e9511a2dc9 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php @@ -107,7 +107,7 @@ protected function renderMenu( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js'); + $registry->register('assets/js/drilldown.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php index f8731a90397f..8cfde5e9dabc 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php @@ -65,7 +65,7 @@ public function render(Component\Component $component, RendererInterface $defaul public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Modal/modal.js'); + $registry->register('assets/js/modal.js'); } protected function registerSignals(Component\Modal\Modal $modal): Component\JavaScriptBindable diff --git a/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php index c37068aed18a..fc4b61b67090 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php @@ -107,7 +107,7 @@ public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); $registry->register('./node_modules/webui-popover/dist/jquery.webui-popover.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Popover/popover.js'); + $registry->register('assets/js/popover.js'); } protected function renderStandardPopover( diff --git a/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php index b4eb78f4a406..58661b32fe5f 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php @@ -556,8 +556,8 @@ protected function getSingleActionsForRow(string $row_id, array $actions): \ILIA public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Table/table.min.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Modal/modal.js'); + $registry->register('assets/js/table.min.js'); + $registry->register('assets/js/modal.js'); } protected function registerSignals(Component\Table\PresentationRow $component): Component\JavaScriptBindable diff --git a/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php index 33265eb4f1ec..9b7e2a3f5506 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php @@ -82,7 +82,7 @@ protected function renderToast(Component\Toast\Toast $component, RendererInterfa $tpl->setVariable("ICON", $default_renderer->render($component->getIcon())); $tpl->setVariable("CLOSE", $default_renderer->render($this->getUIFactory()->button()->close())); - $component = $component->withAdditionalOnLoadCode(fn ($id) => " + $component = $component->withAdditionalOnLoadCode(fn($id) => " il.UI.toast.setToastSettings($id); il.UI.toast.showToast($id); "); @@ -104,7 +104,7 @@ protected function renderContainer(Component\Toast\Container $component, Rendere public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Toast/toast.js'); + $registry->register('assets/js/toast.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php index aa400e98ba17..c3d2595e06f5 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php @@ -63,7 +63,7 @@ public function render(Component\Component $component, RendererInterface $defaul $highlight_node_on_click = $component->getHighlightOnNodeClick(); $component = $component->withAdditionalOnLoadCode( - fn ($id) => "il.UI.tree.init('$id', $highlight_node_on_click)" + fn($id) => "il.UI.tree.init('$id', $highlight_node_on_click)" ); $id = $this->bindJavaScript($component); @@ -103,7 +103,7 @@ protected function buildNode( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Tree/tree.js'); + $registry->register('assets/js/tree.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php index 4597ecd6ac30..1e5fe7054a34 100644 --- a/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php @@ -373,8 +373,7 @@ protected function setPaginationFirstLast( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./src/UI/templates/js/ViewControl/sortation.js'); - $registry->register('./src/UI/templates/js/ViewControl/pagination.js'); + $registry->register('assets/js/viewcontrols.min.js'); } protected function renderId( diff --git a/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php b/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php index 5e72bb85ce95..8cfed8412b7a 100755 --- a/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php +++ b/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php @@ -61,7 +61,7 @@ final public function __construct( */ public function registerResources(ResourceRegistry $registry): void { - $registry->register('./components/ILIAS/UI/src/templates/js/Core/dist/core.js'); + $registry->register('assets/js/core.js'); } /** diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php index 6e1d2fdae15d..d09c2b229028 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php @@ -14,7 +14,7 @@ function base() $renderer = $DIC->ui()->renderer(); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php index 9df91836b212..4fb0b9d6745d 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php @@ -16,7 +16,7 @@ function with_object_icon() $icon = $f->symbol()->icon()->standard("crs", 'Course'); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php index 71248b2cf7ac..994caf11a855 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php @@ -32,7 +32,7 @@ function with_object_icon_and_actions() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php index c74f9b0f8155..06d0de6b06c7 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php @@ -23,7 +23,7 @@ function with_object_icon_and_certificate() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php index b75382732769..069c6f00900a 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php @@ -24,7 +24,7 @@ function with_object_icon_and_progressmeter_mini() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/Standard/base.php b/components/ILIAS/UI/src/examples/Card/Standard/base.php index 19e8c7f328bc..3a9a7c2aa242 100755 --- a/components/ILIAS/UI/src/examples/Card/Standard/base.php +++ b/components/ILIAS/UI/src/examples/Card/Standard/base.php @@ -21,7 +21,7 @@ function base() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php b/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php index 8fd9ec06c089..376a5ee6656b 100755 --- a/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php +++ b/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php @@ -21,7 +21,7 @@ function with_sections() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php b/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php index 8f2db2fb1174..96e24424d899 100755 --- a/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php +++ b/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php @@ -14,7 +14,7 @@ function with_title_action() $renderer = $DIC->ui()->renderer(); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/base.php b/components/ILIAS/UI/src/examples/Deck/base.php index 9b91e89afa76..c91b93e60d7a 100755 --- a/components/ILIAS/UI/src/examples/Deck/base.php +++ b/components/ILIAS/UI/src/examples/Deck/base.php @@ -23,7 +23,7 @@ function base() //Define the some responsive image $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/repository.php b/components/ILIAS/UI/src/examples/Deck/repository.php index ab26fd3c6f05..07c914060bcf 100755 --- a/components/ILIAS/UI/src/examples/Deck/repository.php +++ b/components/ILIAS/UI/src/examples/Deck/repository.php @@ -33,7 +33,7 @@ function repository() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/user.php b/components/ILIAS/UI/src/examples/Deck/user.php index 0e9a2e6b533b..de1d4f74d637 100755 --- a/components/ILIAS/UI/src/examples/Deck/user.php +++ b/components/ILIAS/UI/src/examples/Deck/user.php @@ -23,7 +23,7 @@ function user() //Define the some responsive image $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/xl_card.php b/components/ILIAS/UI/src/examples/Deck/xl_card.php index 11ce02ce9fe3..826ab6179aea 100755 --- a/components/ILIAS/UI/src/examples/Deck/xl_card.php +++ b/components/ILIAS/UI/src/examples/Deck/xl_card.php @@ -23,7 +23,7 @@ function xl_card() //Define the some responsive image $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php index f1beb2dca041..af38745e07d7 100755 --- a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php +++ b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php @@ -44,7 +44,7 @@ function renderFullDemoPage(\ILIAS\DI\Container $dic) $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pagedemoCrumbs($f); $metabar = pagedemoMetabar($f); diff --git a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php index e424ad973602..5c3916e15302 100755 --- a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php +++ b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php @@ -227,7 +227,7 @@ function getRenderedPage(Container $dic, MainBar $mainbar): string $f = $dic->ui()->factory(); list($page_title, $content) = getUIContent($f, $dic->http()->request()); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = null; diff --git a/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php b/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php index 9f985227fc2c..a69a5b4a2855 100755 --- a/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php +++ b/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php @@ -57,7 +57,7 @@ function renderFooterInFullscreenMode(Container $dic): string { $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pageFooterDemoCrumbs($f); $metabar = pageFooterDemoMetabar($f); diff --git a/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php b/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php index c7edb5f9ec0f..044c6d2affe3 100755 --- a/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php +++ b/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php @@ -53,7 +53,7 @@ function renderFooterWithModalsInFullscreenMode(Container $dic): string $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pageFooterDemoCrumbs($f); $metabar = pageFooterDemoMetabar($f); diff --git a/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php b/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php index dc6a65950772..303efca1c1e4 100755 --- a/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php +++ b/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php @@ -61,7 +61,7 @@ function renderMetaBarInFullscreenMode(Container $dic): string { $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pageMetabarDemoCrumbs($f); $metabar = buildMetabar($f); diff --git a/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php b/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php index da31b94207f5..ba4935006f02 100755 --- a/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php +++ b/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php @@ -64,7 +64,7 @@ function renderModeInfoFullscreenMode(\ILIAS\DI\Container $dic) ), $f->mainControls()->mainBar()->withAdditionalEntry("entry1", $slate), $f->breadcrumbs([]), - $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"), + $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"), $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"), "./templates/default/images/logo/favicon.ico", $dic->ui()->factory()->toast()->container(), diff --git a/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php index 7ea3dc108440..b1330aed6699 100755 --- a/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php @@ -95,7 +95,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php index 2504ac05eea4..ed5c3f6c6b09 100755 --- a/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php @@ -94,7 +94,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php index 88bf6ae5b20b..6842185b7ce4 100755 --- a/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php @@ -95,7 +95,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php index 5d6aecfbeba6..4a4a11c593a5 100755 --- a/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php @@ -94,7 +94,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php b/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php index c3e74ba86449..6d874c0876d3 100755 --- a/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php +++ b/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php @@ -12,7 +12,7 @@ function show_card_in_popover() $factory = $DIC->ui()->factory(); $renderer = $DIC->ui()->renderer(); - $image = $factory->image()->responsive("./templates/default/images/logo/HeaderIcon.svg", "Thumbnail Example"); + $image = $factory->image()->responsive("./assets/images/logo/HeaderIcon.svg", "Thumbnail Example"); $card = $factory->card()->standard("Title", $image)->withSections(array($factory->legacy("Hello World, I'm a card"))); $popover = $factory->popover()->standard($card)->withTitle('Card'); $button = $factory->button()->standard('Show Card', '#') diff --git a/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php b/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php index 487caf7f877e..362060587c0c 100755 --- a/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php +++ b/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php @@ -27,7 +27,7 @@ function custom_icon() //Note that the svg needs to contain strictly valid xml to work with abbreviations. //Some exports e.g. form illustrator seem to be not properly formatted by default. - $path = './templates/default/images/standard/icon_fold.svg'; + $path = './assets/images/standard/icon_fold.svg'; $ico = $f->symbol()->icon()->custom($path, 'Example') ->withAbbreviation('FD'); diff --git a/components/ILIAS/UI/tests/Client/Chart/Bar/bar.test.js b/components/ILIAS/UI/tests/Client/Chart/Bar/bar.test.js index 8adbda157c16..0ea253082675 100755 --- a/components/ILIAS/UI/tests/Client/Chart/Bar/bar.test.js +++ b/components/ILIAS/UI/tests/Client/Chart/Bar/bar.test.js @@ -1,23 +1,21 @@ import { expect } from 'chai'; -import horizontal from "../../../../../../../components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.horizontal"; -import vertical from "../../../../../../../components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.vertical"; +import horizontal from '../../../../resources/js/Chart/Bar/src/bar.horizontal'; +import vertical from '../../../../resources/js/Chart/Bar/src/bar.vertical'; - -describe('bar', function() { - it('components are defined', function() { +describe('bar', () => { + it('components are defined', () => { expect(horizontal).to.not.be.undefined; expect(vertical).to.not.be.undefined; }); - var hl = horizontal(); - var vl = vertical(); + const hl = horizontal(); + const vl = vertical(); - it('public interface is defined on horizontal', function() { + it('public interface is defined on horizontal', () => { expect(hl.init).to.be.a('function'); }); - it('public interface is defined on vertical', function() { + it('public interface is defined on vertical', () => { expect(vl.init).to.be.a('function'); }); - -}); \ No newline at end of file +}); diff --git a/components/ILIAS/UI/tests/Client/Counter/counter.test.js b/components/ILIAS/UI/tests/Client/Counter/counter.test.js index d7821c98a086..98aee7bc1bce 100755 --- a/components/ILIAS/UI/tests/Client/Counter/counter.test.js +++ b/components/ILIAS/UI/tests/Client/Counter/counter.test.js @@ -2,7 +2,7 @@ import { expect } from 'chai'; import { JSDOM } from 'jsdom'; import fs from 'fs'; -import { counterFactory, counterObject } from '../../../src/templates/js/Counter/src/counter.main'; +import { counterFactory, counterObject } from '../../../resources/js/Counter/src/counter.main'; const test_dom_string = fs.readFileSync('./components/ILIAS/UI/tests/Client/Counter/CounterTest.html').toString(); const test_document = new JSDOM(test_dom_string); diff --git a/components/ILIAS/UI/tests/Client/Image/getImageElement.js b/components/ILIAS/UI/tests/Client/Image/getImageElement.js index e2e5bad20302..05bd7fc0db5d 100755 --- a/components/ILIAS/UI/tests/Client/Image/getImageElement.js +++ b/components/ILIAS/UI/tests/Client/Image/getImageElement.js @@ -16,7 +16,7 @@ */ import { assert } from 'chai'; -import getImageElement from '../../../../../../components/ILIAS/UI/src/templates/js/Image/src/getImageElement'; +import getImageElement from '../../../resources/js/Image/src/getImageElement'; class HTMLImageElementMock { constructor(id) { diff --git a/components/ILIAS/UI/tests/Client/Image/loadHighResolutionSource.js b/components/ILIAS/UI/tests/Client/Image/loadHighResolutionSource.js index 5fd0f8f50ef8..97d9c6270923 100755 --- a/components/ILIAS/UI/tests/Client/Image/loadHighResolutionSource.js +++ b/components/ILIAS/UI/tests/Client/Image/loadHighResolutionSource.js @@ -17,7 +17,7 @@ import { assert } from 'chai'; import loadHighResolutionSource - from '../../../../../../components/ILIAS/UI/src/templates/js/Image/src/loadHighResolutionSource'; + from '../../../resources/js/Image/src/loadHighResolutionSource'; describe('loadHighResolutionSource', () => { it('should choose the best possible source.', () => { diff --git a/components/ILIAS/UI/tests/Client/Input/Container/filter.test.js b/components/ILIAS/UI/tests/Client/Input/Container/filter.test.js index e143d687c105..25246a222695 100755 --- a/components/ILIAS/UI/tests/Client/Input/Container/filter.test.js +++ b/components/ILIAS/UI/tests/Client/Input/Container/filter.test.js @@ -1,9 +1,9 @@ import { expect } from 'chai'; -import filter from "../../../../../../../components/ILIAS/UI/src/templates/js/Input/Container/src/filter.main.js"; +import filter from '../../../../resources/js/Input/Container/src/filter.main.js'; -describe('filter components are there', function() { - it('filter', function() { +describe('filter components are there', () => { + it('filter', () => { expect(filter).to.not.be.undefined; }); -}); \ No newline at end of file +}); diff --git a/components/ILIAS/UI/tests/Client/Input/Field/markdown.test.js b/components/ILIAS/UI/tests/Client/Input/Field/markdown.test.js index a2a2beddd088..8ab7b7230b53 100755 --- a/components/ILIAS/UI/tests/Client/Input/Field/markdown.test.js +++ b/components/ILIAS/UI/tests/Client/Input/Field/markdown.test.js @@ -5,11 +5,11 @@ * @author Thibeau Fuhrer */ -import MarkdownFactory from "../../../../../../../components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.factory"; -import PreviewRenderer from "../../../../../../../components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/preview.renderer"; -import Markdown from "../../../../../../../components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.class"; -import {assert, expect} from "chai"; -import {JSDOM} from "jsdom"; +import { assert, expect } from 'chai'; +import { JSDOM } from 'jsdom'; +import MarkdownFactory from '../../../../resources/js/Input/Field/src/Markdown/markdown.factory'; +import PreviewRenderer from '../../../../resources/js/Input/Field/src/Markdown/preview.renderer'; +import Markdown from '../../../../resources/js/Input/Field/src/Markdown/markdown.class'; /** * Input-ID that should be used to initialize instances, it will be used when @@ -26,8 +26,8 @@ const test_input_id = 'test_input_id'; * @return {void} */ function initMockedDom() { - let dom = new JSDOM( - ` + const dom = new JSDOM( + `
    @@ -49,218 +49,210 @@ function initMockedDom() {
    `, - { - url: 'https://localhost', - } - ); - - global.window = dom.window; - global.document = dom.window.document; - - // otherwise instanceof HTMLCollection checks fail, due to - // not being in an actual "window". - global.HTMLCollection = dom.window.HTMLCollection; - // same goes for HTMLSpanElement instanceof checks. - global.HTMLSpanElement = dom.window.HTMLSpanElement; + { + url: 'https://localhost', + }, + ); + + global.window = dom.window; + global.document = dom.window.document; + + // otherwise instanceof HTMLCollection checks fail, due to + // not being in an actual "window". + global.HTMLCollection = dom.window.HTMLCollection; + // same goes for HTMLSpanElement instanceof checks. + global.HTMLSpanElement = dom.window.HTMLSpanElement; } -describe('Markdown input', function () { +describe('Markdown input', () => { + beforeEach(initMockedDom); - beforeEach(initMockedDom); + it('can insert characters before and after the current selection.', () => { + const input = new Markdown({}, test_input_id); - it('can insert characters before and after the current selection.', function () { - const input = new Markdown({}, test_input_id); + const content_before_selection = 'wo'; + const content_after_selection = 'rd'; + const selected_content = 'x'; - const content_before_selection = 'wo'; - const content_after_selection = 'rd'; - const selected_content = 'x'; + input.textarea.value = content_before_selection + selected_content + content_after_selection; + input.textarea.selectionStart = content_before_selection.length; + input.textarea.selectionEnd = input.textarea.selectionStart + selected_content.length; - input.textarea.value = content_before_selection + selected_content + content_after_selection; - input.textarea.selectionStart = content_before_selection.length; - input.textarea.selectionEnd = input.textarea.selectionStart + selected_content.length; + const before_characters = 'ab'; + const after_characters = 'yz'; - const before_characters = 'ab'; - const after_characters = 'yz'; + input.insertCharactersAroundSelection(before_characters, after_characters); - input.insertCharactersAroundSelection(before_characters, after_characters); + const expected_content = content_before_selection + + before_characters + + selected_content + + after_characters + + content_after_selection; - const expected_content = - content_before_selection + - before_characters + - selected_content + - after_characters + - content_after_selection; + const expected_selection_start = content_before_selection.length + before_characters.length; + const expected_selection_end = content_before_selection.length + + before_characters.length + + selected_content.length; - const expected_selection_start = content_before_selection.length + before_characters.length; - const expected_selection_end = - content_before_selection.length + - before_characters.length + - selected_content.length; + assert.strictEqual(input.textarea.value, expected_content); + assert.strictEqual(input.textarea.selectionStart, expected_selection_start); + assert.strictEqual(input.textarea.selectionEnd, expected_selection_end); + }); - assert.strictEqual(input.textarea.value, expected_content); - assert.strictEqual(input.textarea.selectionStart, expected_selection_start); - assert.strictEqual(input.textarea.selectionEnd, expected_selection_end); - }); + it('can toggle bullet-points of all currently selected lines.', () => { + const input = new Markdown({}, test_input_id); - it('can toggle bullet-points of all currently selected lines.', function () { - const input = new Markdown({}, test_input_id); + const line_1 = 'this is line 1'; + const line_2 = 'this is line 2'; + const line_3 = 'this is line 3'; + const line_4 = 'this is line 4'; - const line_1 = 'this is line 1'; - const line_2 = 'this is line 2'; - const line_3 = 'this is line 3'; - const line_4 = 'this is line 4'; + input.textarea.value = `${line_1}\n${line_2}\n${line_3}\n${line_4}`; - input.textarea.value = line_1 + '\n' + line_2 + '\n' + line_3 + '\n' + line_4; + // selection starts at the begining of line_2 and ends at the begining of line_3. + input.textarea.selectionStart = line_1.length + 1; + input.textarea.selectionEnd = input.textarea.selectionStart + line_2.length + 1; - // selection starts at the begining of line_2 and ends at the begining of line_3. - input.textarea.selectionStart = line_1.length + 1; - input.textarea.selectionEnd = input.textarea.selectionStart + line_2.length + 1; + const expected_prefix = '- '; + const expected_line_1 = line_1; + const expected_line_2 = expected_prefix + line_2; + const expected_line_3 = expected_prefix + line_3; + const expected_line_4 = line_4; + const expected_selection_start = line_1.length + 1; + const expected_selection_end = expected_selection_start + expected_line_2.length + 1 + expected_line_3.length; - const expected_prefix = '- '; - const expected_line_1 = line_1; - const expected_line_2 = expected_prefix + line_2; - const expected_line_3 = expected_prefix + line_3; - const expected_line_4 = line_4; - const expected_selection_start = line_1.length + 1; - const expected_selection_end = expected_selection_start + expected_line_2.length + 1 + expected_line_3.length; + input.applyTransformationToSelection(input.getBulletPointTransformation()); - input.applyTransformationToSelection(input.getBulletPointTransformation()); + expect(input.getLinesBeforeSelection()).to.have.ordered.members([expected_line_1]); + expect(input.getLinesOfSelection()).to.have.ordered.members([expected_line_2, expected_line_3]); + expect(input.getLinesAfterSelection()).to.have.ordered.members([expected_line_4]); - expect(input.getLinesBeforeSelection()).to.have.ordered.members([expected_line_1]); - expect(input.getLinesOfSelection()).to.have.ordered.members([expected_line_2, expected_line_3]); - expect(input.getLinesAfterSelection()).to.have.ordered.members([expected_line_4]); + assert.strictEqual(input.textarea.selectionStart, expected_selection_start); + assert.strictEqual(input.textarea.selectionEnd, expected_selection_end); + }); - assert.strictEqual(input.textarea.selectionStart, expected_selection_start); - assert.strictEqual(input.textarea.selectionEnd, expected_selection_end); - }); + it('can toggle the enumeration of all currently selected lines.', () => { + const input = new Markdown({}, test_input_id); - it('can toggle the enumeration of all currently selected lines.', function () { - const input = new Markdown({}, test_input_id); + const line_1 = 'this is line 1'; + const line_2 = 'this is line 2'; + const line_3 = 'this is line 3'; + const line_4 = 'this is line 4'; - const line_1 = 'this is line 1'; - const line_2 = 'this is line 2'; - const line_3 = 'this is line 3'; - const line_4 = 'this is line 4'; + input.textarea.value = `${line_1}\n${line_2}\n${line_3}\n${line_4}`; - input.textarea.value = line_1 + '\n' + line_2 + '\n' + line_3 + '\n' + line_4; + // selection starts at the begining of line_2 and ends at the begining of line_3. + input.textarea.selectionStart = line_1.length + 1; + input.textarea.selectionEnd = input.textarea.selectionStart + line_2.length + 1; - // selection starts at the begining of line_2 and ends at the begining of line_3. - input.textarea.selectionStart = line_1.length + 1; - input.textarea.selectionEnd = input.textarea.selectionStart + line_2.length + 1; + const expected_line_1 = line_1; + const expected_line_2 = `1. ${line_2}`; + const expected_line_3 = `2. ${line_3}`; + const expected_line_4 = line_4; + const expected_selection_start = expected_line_1.length + 1; + const expected_selection_end = expected_selection_start + expected_line_2.length + 1 + expected_line_3.length; - const expected_line_1 = line_1; - const expected_line_2 = '1. ' + line_2; - const expected_line_3 = '2. ' + line_3; - const expected_line_4 = line_4; - const expected_selection_start = expected_line_1.length + 1; - const expected_selection_end = expected_selection_start + expected_line_2.length + 1 + expected_line_3.length; + input.applyTransformationToSelection(input.getEnumerationTransformation()); - input.applyTransformationToSelection(input.getEnumerationTransformation()); + expect(input.getLinesBeforeSelection()).to.have.ordered.members([expected_line_1]); + expect(input.getLinesOfSelection()).to.have.ordered.members([expected_line_2, expected_line_3]); + expect(input.getLinesAfterSelection()).to.have.ordered.members([expected_line_4]); - expect(input.getLinesBeforeSelection()).to.have.ordered.members([expected_line_1]); - expect(input.getLinesOfSelection()).to.have.ordered.members([expected_line_2, expected_line_3]); - expect(input.getLinesAfterSelection()).to.have.ordered.members([expected_line_4]); + assert.strictEqual(input.textarea.selectionStart, expected_selection_start); + assert.strictEqual(input.textarea.selectionEnd, expected_selection_end); + }); - assert.strictEqual(input.textarea.selectionStart, expected_selection_start); - assert.strictEqual(input.textarea.selectionEnd, expected_selection_end); - }); + it('can insert a single enumeration on the current line.', () => { + const input = new Markdown({}, test_input_id); - it('can insert a single enumeration on the current line.', function () { - const input = new Markdown({}, test_input_id); + const line_content = 'this is a line'; + const line_1 = `1. ${line_content}`; + const line_2 = ''; + const line_3 = `2. ${line_content}`; + const line_4 = `3. ${line_content}`; - const line_content = 'this is a line'; - const line_1 = '1. ' + line_content; - const line_2 = ''; - const line_3 = '2. ' + line_content; - const line_4 = '3. ' + line_content; + input.textarea.value = `${line_1}\n${line_2}\n${line_3}\n${line_4}`; - input.textarea.value = line_1 + '\n' + line_2 + '\n' + line_3 + '\n' + line_4; + // selection starts at the begining of line_2. + input.textarea.selectionStart = input.textarea.selectionEnd = line_1.length + 1; - // selection starts at the begining of line_2. - input.textarea.selectionStart = input.textarea.selectionEnd = line_1.length + 1; + const expected_line_1 = line_1; + const expected_line_2 = '2. '; + const expected_line_3 = `3. ${line_content}`; + const expected_line_4 = `4. ${line_content}`; + const expected_selection_start = expected_line_1.length + 1 + expected_line_2.length; - const expected_line_1 = line_1; - const expected_line_2 = '2. '; - const expected_line_3 = '3. ' + line_content; - const expected_line_4 = '4. ' + line_content; - const expected_selection_start = expected_line_1.length + 1 + expected_line_2.length; + input.insertSingleEnumeration(); - input.insertSingleEnumeration(); + expect(input.getLinesBeforeSelection()).to.have.ordered.members([expected_line_1]); + expect(input.getLinesOfSelection()).to.have.ordered.members([expected_line_2]); + expect(input.getLinesAfterSelection()).to.have.ordered.members([expected_line_3, expected_line_4]); - expect(input.getLinesBeforeSelection()).to.have.ordered.members([expected_line_1]); - expect(input.getLinesOfSelection()).to.have.ordered.members([expected_line_2]); - expect(input.getLinesAfterSelection()).to.have.ordered.members([expected_line_3, expected_line_4]); + assert.strictEqual(input.textarea.selectionStart, expected_selection_start); + assert.strictEqual(input.textarea.selectionEnd, expected_selection_start); + }); - assert.strictEqual(input.textarea.selectionStart, expected_selection_start); - assert.strictEqual(input.textarea.selectionEnd, expected_selection_start); - }); + it('cannot insert any more characters if the max-limit is reached.', () => { + const max_limit = 10; - it('cannot insert any more characters if the max-limit is reached.', function () { - const max_limit = 10; + // serverside rendering automatically adds this attribute, + // in this unit test however, we append it manually. + document.getElementById(test_input_id)?.setAttribute('maxLength', max_limit); - // serverside rendering automatically adds this attribute, - // in this unit test however, we append it manually. - document.getElementById(test_input_id)?.setAttribute('maxLength', max_limit); + const input = new Markdown({}, test_input_id); - const input = new Markdown({}, test_input_id); + const content = '0123456789'; + const postion = 5; - const content = '0123456789'; - const postion = 5; + input.textarea.value = content; + // selection is in the middle of the characters. + input.textarea.selectionStart = input.textarea.selectionEnd = postion; - input.textarea.value = content; - // selection is in the middle of the characters. - input.textarea.selectionStart = input.textarea.selectionEnd = postion; - - input.insertCharactersAroundSelection('a', 'b'); - - assert.strictEqual(input.textarea.value, content); - }); + input.insertCharactersAroundSelection('a', 'b'); + assert.strictEqual(input.textarea.value, content); + }); }); -describe('Markdown factory', function () { - - beforeEach(initMockedDom); +describe('Markdown factory', () => { + beforeEach(initMockedDom); - it('can initialize markdown instances.', function () { - const factory = new MarkdownFactory(); + it('can initialize markdown instances.', () => { + const factory = new MarkdownFactory(); - factory.init(test_input_id, null, null); + factory.init(test_input_id, null, null); - expect(factory.instances[test_input_id]).to.be.an.instanceOf(Markdown); - }); + expect(factory.instances[test_input_id]).to.be.an.instanceOf(Markdown); + }); - it('can only instantiate the same ID once.', function () { - const factory = new MarkdownFactory(); + it('can only instantiate the same ID once.', () => { + const factory = new MarkdownFactory(); - factory.init(test_input_id, null, null); + factory.init(test_input_id, null, null); - expect(function () { - factory.init(test_input_id, null, null); - }).to.throw(Error); - }); + expect(() => { + factory.init(test_input_id, null, null); + }).to.throw(Error); + }); - it('can return an already created instance.', function () { - const factory = new MarkdownFactory(); + it('can return an already created instance.', () => { + const factory = new MarkdownFactory(); - factory.init(test_input_id, null, null); + factory.init(test_input_id, null, null); - const instance = factory.get(test_input_id); - - expect(instance).to.be.an.instanceOf(Markdown); - }); + const instance = factory.get(test_input_id); + expect(instance).to.be.an.instanceOf(Markdown); + }); }); -describe('Markdown preview-renderer', function () { - - it('can handle empty strings without request.', async function () { - const funny_url = '"Hey, if you can read this, the test obviously failed (as it should\'ve!)."' - const renderer = new PreviewRenderer('p', funny_url); - - const preview_html = await renderer.getPreviewHtmlOf(''); +describe('Markdown preview-renderer', () => { + it('can handle empty strings without request.', async () => { + const funny_url = '"Hey, if you can read this, the test obviously failed (as it should\'ve!)."'; + const renderer = new PreviewRenderer('p', funny_url); - assert.strictEqual(preview_html, ''); - }); + const preview_html = await renderer.getPreviewHtmlOf(''); + assert.strictEqual(preview_html, ''); + }); }); diff --git a/components/ILIAS/UI/tests/Client/Input/Field/textarea.test.js b/components/ILIAS/UI/tests/Client/Input/Field/textarea.test.js index ddd84a0c9bcd..7e7689094d67 100755 --- a/components/ILIAS/UI/tests/Client/Input/Field/textarea.test.js +++ b/components/ILIAS/UI/tests/Client/Input/Field/textarea.test.js @@ -2,10 +2,10 @@ * @author Thibeau Fuhrer */ -import TextareaFactory from "../../../../../../../components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.factory"; -import Textarea from "../../../../../../../components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.class"; -import {assert, expect} from "chai"; -import {JSDOM} from "jsdom"; +import { assert, expect } from 'chai'; +import { JSDOM } from 'jsdom'; +import TextareaFactory from '../../../../resources/js/Input/Field/src/Textarea/textarea.factory'; +import Textarea from '../../../../resources/js/Input/Field/src/Textarea/textarea.class'; /** * Input-ID that should be used to initialize instances, it will be used when @@ -23,8 +23,8 @@ const test_input_id = 'test_input_id'; * @return {void} */ function initMockedDom() { - let dom = new JSDOM( - ` + const dom = new JSDOM( + `
    @@ -32,143 +32,139 @@ function initMockedDom() {
    `, - { - url: 'https://localhost', - } - ); + { + url: 'https://localhost', + }, + ); - global.window = dom.window; - global.document = dom.window.document; + global.window = dom.window; + global.document = dom.window.document; - // otherwise instanceof HTMLSpanElement checks fail, due to - // not being in an actual "window". - global.HTMLSpanElement = dom.window.HTMLSpanElement; + // otherwise instanceof HTMLSpanElement checks fail, due to + // not being in an actual "window". + global.HTMLSpanElement = dom.window.HTMLSpanElement; } -describe('Textarea input', function () { +describe('Textarea input', () => { + beforeEach(initMockedDom); - beforeEach(initMockedDom); + it('can return lines relative to the current selection.', () => { + const input = new Textarea(test_input_id); - it('can return lines relative to the current selection.', function () { - const input = new Textarea(test_input_id); + const line_1 = 'this is line 1'; + const line_2 = 'this is line 2'; + const line_3 = 'this is line 3'; - const line_1 = 'this is line 1'; - const line_2 = 'this is line 2'; - const line_3 = 'this is line 3'; + input.textarea.value = `${line_1}\n${line_2}\n${line_3}`; - input.textarea.value = line_1 + '\n' + line_2 + '\n' + line_3; + // selection or cursor is at the begining of line_2. + input.textarea.selectionStart = input.textarea.selectionEnd = line_1.length + 1; - // selection or cursor is at the begining of line_2. - input.textarea.selectionStart = input.textarea.selectionEnd = line_1.length + 1; + expect(input.getLinesBeforeSelection()).to.have.ordered.members([line_1]); + expect(input.getLinesOfSelection()).to.have.ordered.members([line_2]); + expect(input.getLinesAfterSelection()).to.have.ordered.members([line_3]); + }); - expect(input.getLinesBeforeSelection()).to.have.ordered.members([line_1]); - expect(input.getLinesOfSelection()).to.have.ordered.members([line_2]); - expect(input.getLinesAfterSelection()).to.have.ordered.members([line_3]); - }); + it('can return lines relative to the current multiline selection.', () => { + const input = new Textarea(test_input_id); - it('can return lines relative to the current multiline selection.', function () { - const input = new Textarea(test_input_id); + const line_1 = 'this is line 1'; + const line_2 = 'this is line 2'; + const line_3 = 'this is line 3'; + const line_4 = 'this is line 4'; - const line_1 = 'this is line 1'; - const line_2 = 'this is line 2'; - const line_3 = 'this is line 3'; - const line_4 = 'this is line 4'; + input.textarea.value = `${line_1}\n${line_2}\n${line_3}\n${line_4}`; - input.textarea.value = line_1 + '\n' + line_2 + '\n' + line_3 + '\n' + line_4; + // selection starts at the begining of line_2 and ends before the newline on line_3. + input.textarea.selectionStart = line_1.length + 1; + input.textarea.selectionEnd = input.textarea.selectionStart + line_2.length + 1; - // selection starts at the begining of line_2 and ends before the newline on line_3. - input.textarea.selectionStart = line_1.length + 1; - input.textarea.selectionEnd = input.textarea.selectionStart + line_2.length + 1; + expect(input.getLinesBeforeSelection()).to.have.ordered.members([line_1]); + expect(input.getLinesOfSelection()).to.have.ordered.members([line_2, line_3]); + expect(input.getLinesAfterSelection()).to.have.ordered.members([line_4]); + }); - expect(input.getLinesBeforeSelection()).to.have.ordered.members([line_1]); - expect(input.getLinesOfSelection()).to.have.ordered.members([line_2, line_3]); - expect(input.getLinesAfterSelection()).to.have.ordered.members([line_4]); - }); + it('can update the textarea content and selection.', () => { + const input = new Textarea(test_input_id); - it('can update the textarea content and selection.', function () { - const input = new Textarea(test_input_id); + const content = '0123456789'; + const position = 5; - const content = '0123456789'; - const position = 5; + input.textarea.value = ''; + input.textarea.selectionStart = input.textarea.selectionEnd = 0; - input.textarea.value = ''; - input.textarea.selectionStart = input.textarea.selectionEnd = 0; + input.updateTextareaContent(content, position, position); - input.updateTextareaContent(content, position, position); + assert.strictEqual(input.textarea.value, content); + assert.strictEqual(input.textarea.selectionStart, position); + assert.strictEqual(input.textarea.selectionEnd, position); + }); - assert.strictEqual(input.textarea.value, content); - assert.strictEqual(input.textarea.selectionStart, position); - assert.strictEqual(input.textarea.selectionEnd, position); - }); + it('can update the remainder if the content is updated programaticaly.', () => { + const content = '12345'; + const max_limit = 10; + const remainder = 5; - it('can update the remainder if the content is updated programaticaly.', function () { - const content = '12345'; - const max_limit = 10; - const remainder = 5; + // serverside rendering automatically adds this attribute, + // in this unit test however, we append it manually. + document.getElementById(test_input_id)?.setAttribute('maxLength', max_limit); - // serverside rendering automatically adds this attribute, - // in this unit test however, we append it manually. - document.getElementById(test_input_id)?.setAttribute('maxLength', max_limit); + const input = new Textarea(test_input_id); - const input = new Textarea(test_input_id); + input.updateTextareaContent(content); - input.updateTextareaContent(content); + assert.isNotNull(input.remainder); + assert.equal(input.remainder.innerHTML, remainder); + }); - assert.isNotNull(input.remainder); - assert.equal(input.remainder.innerHTML, remainder); - }); + it('can update the remainder according to the current value.', () => { + const content = '123456789'; + const max_limit = 10; + const remainder = 1; - it('can update the remainder according to the current value.', function () { - const content = '123456789'; - const max_limit = 10; - const remainder = 1; + // serverside rendering automatically adds this attribute, + // in this unit test however, we append it manually. + document.getElementById(test_input_id)?.setAttribute('maxLength', max_limit); - // serverside rendering automatically adds this attribute, - // in this unit test however, we append it manually. - document.getElementById(test_input_id)?.setAttribute('maxLength', max_limit); + const input = new Textarea(test_input_id); - const input = new Textarea(test_input_id); + assert.equal(input.remainder.innerHTML, 0); - assert.equal(input.remainder.innerHTML, 0); - - input.textarea.value = content; - input.updateRemainderCountHook({}); - - assert.equal(input.remainder.innerHTML, remainder); - }); + input.textarea.value = content; + input.updateRemainderCountHook({}); + assert.equal(input.remainder.innerHTML, remainder); + }); }); -describe('Textarea factory', function () { - - beforeEach(initMockedDom); - - it('can initialize textarea instances.', function () { - const factory = new TextareaFactory(); +describe('Textarea factory', () => { + beforeEach(initMockedDom); - factory.init(test_input_id, null, null); + it('can initialize textarea instances.', () => { + const factory = new TextareaFactory(); - expect(factory.instances[test_input_id]).to.be.an.instanceOf(Textarea); - }); + factory.init(test_input_id, null, null); - it('can only instantiate the same ID once.', function () { - const factory = new TextareaFactory(); + expect(factory.instances[test_input_id]).to.be.an.instanceOf(Textarea); + }); - factory.init(test_input_id, null, null); + it('can only instantiate the same ID once.', () => { + const factory = new TextareaFactory(); - expect(function () { - factory.init(test_input_id, null, null); - }).to.throw(Error); - }); + factory.init(test_input_id, null, null); - it('can return an already created instance.', function () { - const factory = new TextareaFactory(); + expect(() => { + factory.init(test_input_id, null, null); + }).to.throw(Error); + }); - factory.init(test_input_id, null, null); + it('can return an already created instance.', () => { + const factory = new TextareaFactory(); - const instance = factory.get(test_input_id); + factory.init(test_input_id, null, null); - expect(instance).to.be.an.instanceOf(Textarea); - }); + const instance = factory.get(test_input_id); + expect(instance).to.be.an.instanceOf(Textarea); + }); }); diff --git a/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html b/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html index 11f28755a137..45663ead4302 100755 --- a/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html +++ b/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html @@ -20,7 +20,7 @@
    - aria_label + aria_label

    item title

    @@ -48,7 +48,7 @@

    item title

    - aria_label + aria_label

    item title

    @@ -82,7 +82,7 @@

    item title

    - aria_label + aria_label

    item title

    @@ -138,4 +138,4 @@

    item title

    - \ No newline at end of file + diff --git a/components/ILIAS/UI/tests/Client/Item/Notification/notificationItem.test.js b/components/ILIAS/UI/tests/Client/Item/Notification/notificationItem.test.js index 9cc91d8f81a5..ff770fd5eca9 100755 --- a/components/ILIAS/UI/tests/Client/Item/Notification/notificationItem.test.js +++ b/components/ILIAS/UI/tests/Client/Item/Notification/notificationItem.test.js @@ -2,8 +2,8 @@ import { expect } from 'chai'; import { JSDOM } from 'jsdom'; import fs from 'fs'; -import { notificationItemFactory, notificationItemObject } from '../../../../src/templates/js/Item/src/notification.main'; -import { counterFactory } from '../../../../src/templates/js/Counter/src/counter.main'; +import { notificationItemFactory, notificationItemObject } from '../../../../resources/js/Item/src/notification.main'; +import { counterFactory } from '../../../../resources/js/Counter/src/counter.main'; const test_dom_string = fs.readFileSync('./components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html').toString(); const test_document = new JSDOM(test_dom_string); diff --git a/components/ILIAS/UI/tests/Client/MainControls/mainbar.test.js b/components/ILIAS/UI/tests/Client/MainControls/mainbar.test.js index b7063c78ec70..905c3c5bafc8 100755 --- a/components/ILIAS/UI/tests/Client/MainControls/mainbar.test.js +++ b/components/ILIAS/UI/tests/Client/MainControls/mainbar.test.js @@ -1,161 +1,157 @@ -//'use strict'; +// 'use strict'; import { expect } from 'chai'; -//import { assert } from 'chai'; -import mainbar from "../../../../../../components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.main.js"; -import model from "../../../../../../components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.model.js"; -import persistence from "../../../../../../components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.persistence.js"; -import renderer from "../../../../../../components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.renderer.js"; - -describe('mainbar components are there', function() { - it('mainbar', function() { - expect(mainbar).to.not.be.undefined; - }); - it('model', function() { - expect(model).to.not.be.undefined; - }); - it('persistence', function() { - expect(persistence).to.not.be.undefined; - }); - it('renderer', function() { - expect(renderer).to.not.be.undefined; - }); +// import { assert } from 'chai'; +import mainbar from '../../../resources/js/MainControls/src/mainbar.main.js'; +import model from '../../../resources/js/MainControls/src/mainbar.model.js'; +import persistence from '../../../resources/js/MainControls/src/mainbar.persistence.js'; +import renderer from '../../../resources/js/MainControls/src/mainbar.renderer.js'; + +describe('mainbar components are there', () => { + it('mainbar', () => { + expect(mainbar).to.not.be.undefined; + }); + it('model', () => { + expect(model).to.not.be.undefined; + }); + it('persistence', () => { + expect(persistence).to.not.be.undefined; + }); + it('renderer', () => { + expect(renderer).to.not.be.undefined; + }); }); - -describe('mainbar model', function() { - var m = model(), - state, - entry, - entry_id = '0:1', - sub_entry, - sub_entry_id = '0:1:1.1', - tool_entry, - tool_entry_id = 't:0'; - - it('initializes with (empty) state', function() { - state = m.getState(); - expect(state).to.be.an('object'); - expect(state.entries).to.be.an('object'); - expect(state.tools).to.be.an('object'); - //.... - }); - - it('factors and adds entries/tools', function() { - m.actions.addEntry(entry_id); - m.actions.addEntry(sub_entry_id); - m.actions.addTool(tool_entry_id); - state = m.getState(); - entry = state.entries[entry_id]; - sub_entry = state.entries[sub_entry_id]; - - expect(entry).to.be.an('object'); - expect([ - entry.id, - entry.engaged, - entry.hidden - ]).to.eql([ - entry_id, - false, - false - ]); - - tool_entry = state.tools[tool_entry_id]; - expect(tool_entry).to.be.an('object'); - - }); - - it('entries have (top-)levels and model filters properly', function() { - expect([ - entry.isTopLevel(), - sub_entry.isTopLevel() - ]).to.eql([ - true, - false - ]); - - expect(m.getTopLevelEntries()).to.eql([entry]); - }); - - it('actions engage and disengage entries', function() { - m.actions.engageEntry(entry_id); - state = m.getState(); - - expect([ - state.entries[entry_id].engaged, - state.entries[sub_entry_id].engaged, - state.tools[tool_entry_id].engaged - ]).to.eql([ - true, - false, - false - ]); - - m.actions.disengageEntry(entry_id); - state = m.getState(); - expect([ - state.entries[entry_id].engaged, - state.entries[sub_entry_id].engaged, - state.tools[tool_entry_id].engaged - ]).to.eql([ - false, - false, - false - ]); - - m.actions.engageEntry(sub_entry_id); - state = m.getState(); - expect([ - state.entries[entry_id].engaged, - state.entries[sub_entry_id].engaged, - state.tools[tool_entry_id].engaged - ]).to.eql([ - true, - true, - false - ]); - - m.actions.engageTool(tool_entry_id); - state = m.getState(); - expect([ - state.entries[entry_id].engaged, - state.entries[sub_entry_id].engaged, - state.tools[tool_entry_id].engaged - ]).to.eql([ - false, - true, //subentry, still engaged. - true - ]); - - - m.actions.engageEntry(entry_id); - state = m.getState(); - expect([ - state.entries[entry_id].engaged, - state.entries[sub_entry_id].engaged, - state.tools[tool_entry_id].engaged - ]).to.eql([ - true, - true, //subentry, still engaged. - false - ]); - - }); - - it('calculates engaged path correctly', function() { - m.actions.addEntry('xx:1'); - m.actions.addEntry('xx:1:1'); - state = m.getState(); - - state.entries['xx:1'].engaged = true; - state.entries['xx:1:1'].engaged = true; - expect(m.isInView('xx:1')).to.be.true; - expect(m.isInView('xx:1:1')).to.be.true; - - state.entries['xx:1'].engaged = false; - state.entries['xx:1:1'].engaged = true; - expect(m.isInView('xx:1')).to.be.false; - expect(m.isInView('xx:1:1')).to.be.false; - - expect(m.isInView('apparently_nonsense')).to.be.true; - }); +describe('mainbar model', () => { + const m = model(); + let state; + let entry; + const entry_id = '0:1'; + let sub_entry; + const sub_entry_id = '0:1:1.1'; + let tool_entry; + const tool_entry_id = 't:0'; + + it('initializes with (empty) state', () => { + state = m.getState(); + expect(state).to.be.an('object'); + expect(state.entries).to.be.an('object'); + expect(state.tools).to.be.an('object'); + // .... + }); + + it('factors and adds entries/tools', () => { + m.actions.addEntry(entry_id); + m.actions.addEntry(sub_entry_id); + m.actions.addTool(tool_entry_id); + state = m.getState(); + entry = state.entries[entry_id]; + sub_entry = state.entries[sub_entry_id]; + + expect(entry).to.be.an('object'); + expect([ + entry.id, + entry.engaged, + entry.hidden, + ]).to.eql([ + entry_id, + false, + false, + ]); + + tool_entry = state.tools[tool_entry_id]; + expect(tool_entry).to.be.an('object'); + }); + + it('entries have (top-)levels and model filters properly', () => { + expect([ + entry.isTopLevel(), + sub_entry.isTopLevel(), + ]).to.eql([ + true, + false, + ]); + + expect(m.getTopLevelEntries()).to.eql([entry]); + }); + + it('actions engage and disengage entries', () => { + m.actions.engageEntry(entry_id); + state = m.getState(); + + expect([ + state.entries[entry_id].engaged, + state.entries[sub_entry_id].engaged, + state.tools[tool_entry_id].engaged, + ]).to.eql([ + true, + false, + false, + ]); + + m.actions.disengageEntry(entry_id); + state = m.getState(); + expect([ + state.entries[entry_id].engaged, + state.entries[sub_entry_id].engaged, + state.tools[tool_entry_id].engaged, + ]).to.eql([ + false, + false, + false, + ]); + + m.actions.engageEntry(sub_entry_id); + state = m.getState(); + expect([ + state.entries[entry_id].engaged, + state.entries[sub_entry_id].engaged, + state.tools[tool_entry_id].engaged, + ]).to.eql([ + true, + true, + false, + ]); + + m.actions.engageTool(tool_entry_id); + state = m.getState(); + expect([ + state.entries[entry_id].engaged, + state.entries[sub_entry_id].engaged, + state.tools[tool_entry_id].engaged, + ]).to.eql([ + false, + true, // subentry, still engaged. + true, + ]); + + m.actions.engageEntry(entry_id); + state = m.getState(); + expect([ + state.entries[entry_id].engaged, + state.entries[sub_entry_id].engaged, + state.tools[tool_entry_id].engaged, + ]).to.eql([ + true, + true, // subentry, still engaged. + false, + ]); + }); + + it('calculates engaged path correctly', () => { + m.actions.addEntry('xx:1'); + m.actions.addEntry('xx:1:1'); + state = m.getState(); + + state.entries['xx:1'].engaged = true; + state.entries['xx:1:1'].engaged = true; + expect(m.isInView('xx:1')).to.be.true; + expect(m.isInView('xx:1:1')).to.be.true; + + state.entries['xx:1'].engaged = false; + state.entries['xx:1:1'].engaged = true; + expect(m.isInView('xx:1')).to.be.false; + expect(m.isInView('xx:1:1')).to.be.false; + + expect(m.isInView('apparently_nonsense')).to.be.true; + }); }); diff --git a/components/ILIAS/UI/tests/Client/Menu/Drilldown/drilldown.test.js b/components/ILIAS/UI/tests/Client/Menu/Drilldown/drilldown.test.js index a2f6836222a6..c9699ae9442d 100755 --- a/components/ILIAS/UI/tests/Client/Menu/Drilldown/drilldown.test.js +++ b/components/ILIAS/UI/tests/Client/Menu/Drilldown/drilldown.test.js @@ -2,11 +2,11 @@ import { expect } from 'chai'; import { JSDOM } from 'jsdom'; import fs from 'fs'; -import ddmodel from '../../../../src/templates/js/Menu/src/drilldown.model.js'; -import ddmapping from '../../../../src/templates/js/Menu/src/drilldown.mapping.js'; -import ddpersistence from '../../../../src/templates/js/Menu/src/drilldown.persistence.js'; -import dd from '../../../../src/templates/js/Menu/src/drilldown.main.js'; -import drilldown from '../../../../src/templates/js/Menu/src/drilldown.instances.js'; +import ddmodel from '../../../../resources/js/Menu/src/drilldown.model.js'; +import ddmapping from '../../../../resources/js/Menu/src/drilldown.mapping.js'; +import ddpersistence from '../../../../resources/js/Menu/src/drilldown.persistence.js'; +import dd from '../../../../resources/js/Menu/src/drilldown.main.js'; +import drilldown from '../../../../resources/js/Menu/src/drilldown.instances.js'; describe('drilldown', () => { beforeEach(() => { diff --git a/components/ILIAS/UI/tests/Client/Table/Data/data.table.test.js b/components/ILIAS/UI/tests/Client/Table/Data/data.table.test.js index 3526cceab992..0d5252627f08 100755 --- a/components/ILIAS/UI/tests/Client/Table/Data/data.table.test.js +++ b/components/ILIAS/UI/tests/Client/Table/Data/data.table.test.js @@ -18,8 +18,8 @@ import { expect } from 'chai'; import { JSDOM } from 'jsdom'; -import DataTableFactory from '../../../../../../../components/ILIAS/UI/src/templates/js/Table/src/datatable.factory'; -import DataTable from '../../../../../../../components/ILIAS/UI/src/templates/js/Table/src/datatable.class'; +import DataTableFactory from '../../../../resources/js/Table/src/datatable.factory'; +import DataTable from '../../../../resources/js/Table/src/datatable.class'; function initMockedDom() { const dom = new JSDOM( diff --git a/components/ILIAS/UI/tests/Client/Table/Presentation/presentation.table.test.js b/components/ILIAS/UI/tests/Client/Table/Presentation/presentation.table.test.js index 2a897d6dc618..571a255fe8d3 100755 --- a/components/ILIAS/UI/tests/Client/Table/Presentation/presentation.table.test.js +++ b/components/ILIAS/UI/tests/Client/Table/Presentation/presentation.table.test.js @@ -17,8 +17,8 @@ import { expect } from 'chai'; import { JSDOM } from 'jsdom'; import fs from 'fs'; -import PresentationTableFactory from '../../../../src/templates/js/Table/src/presentationtable.factory'; -import PresentationTable from '../../../../src/templates/js/Table/src/presentationtable.class'; +import PresentationTableFactory from '../../../../resources/js/Table/src/presentationtable.factory'; +import PresentationTable from '../../../../resources/js/Table/src/presentationtable.class'; describe('Presentation Table', () => { beforeEach(() => { diff --git a/components/ILIAS/UI/tests/Client/Toast/ToastTest.html b/components/ILIAS/UI/tests/Client/Toast/ToastTest.html index 9fe40713295d..c0375ebbcaac 100755 --- a/components/ILIAS/UI/tests/Client/Toast/ToastTest.html +++ b/components/ILIAS/UI/tests/Client/Toast/ToastTest.html @@ -1,6 +1,6 @@ Toast Test HTML - + @@ -8,7 +8,7 @@
    - Test + Test
    Title
    '; @@ -209,7 +209,7 @@ public function testRenderButtonWithAriaRoleMenuitemNotEngageable(): void $expected = '' . ''; @@ -228,7 +228,7 @@ public function testRenderButtonWithAriaRoleMenuitemIsEngageable(): void $expected = '' . ''; @@ -247,7 +247,7 @@ public function testRenderWithLabelAndAltImageSame(): void $expected = '' . ''; @@ -267,7 +267,7 @@ public function testRenderWithHelpTopics(): void $expected = <<
    diff --git a/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php b/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php index 1121df79f5e7..548a2792e52b 100755 --- a/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php +++ b/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php @@ -170,7 +170,7 @@ public function testRenderWithObjectIcon(): void
    - Course + Course
    @@ -206,7 +206,7 @@ public function testRenderWithCertificateIcon(): void
    - Certificate + Certificate
    diff --git a/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php b/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php index a31144e6040d..03a03ad171e2 100755 --- a/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php +++ b/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php @@ -230,7 +230,7 @@ public function getOnLoadCodeAsync(): string
    - aria_label + aria_label

    @@ -278,7 +278,7 @@ public function getOnLoadCodeAsync(): string
    - aria_label + aria_label

    title_aggregate

    diff --git a/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php b/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php index e74c88ba5630..e6280c60b754 100755 --- a/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php +++ b/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php @@ -160,7 +160,7 @@ public function testRenderWithLeadIcon(): void $expected = << - aria_label + aria_label
    shy
    diff --git a/components/ILIAS/UI/tests/Component/Item/ItemTest.php b/components/ILIAS/UI/tests/Component/Item/ItemTest.php index b745fb5f391f..7d27a2502d47 100755 --- a/components/ILIAS/UI/tests/Component/Item/ItemTest.php +++ b/components/ILIAS/UI/tests/Component/Item/ItemTest.php @@ -143,7 +143,7 @@ public function testWithLeadPictureAvatar(): void { $f = $this->getFactory(); - $avatar = new Picture('./templates/default/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); + $avatar = new Picture('./assets/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); $c = $f->standard("title")->withLeadAvatar($avatar); @@ -298,7 +298,7 @@ public function testRenderLeadIcon(): void
    - aria_label + aria_label

    title

    @@ -350,7 +350,7 @@ public function testRenderLeadPictureAvatar(): void $f = $this->getFactory(); $r = $this->getDefaultRenderer(); - $avatar = new Picture('./templates/default/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); + $avatar = new Picture('./assets/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); $c = $f->standard("title")->withLeadAvatar($avatar); @@ -360,7 +360,7 @@ public function testRenderLeadPictureAvatar(): void
    - user_avatar + user_avatar
    @@ -491,7 +491,7 @@ public function testRenderProgressAndLeadIcon(): void
    - aria_label + aria_label

    title

    @@ -604,7 +604,7 @@ public function testShyTitleAndVariousProperties(): void
    Property Icon - aria_label + aria_label
    diff --git a/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php b/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php index e85321722f03..68cecd13f3e8 100755 --- a/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php +++ b/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php @@ -214,7 +214,7 @@ public function testLauncherInlineRendering(): void
    $msg_html
    -
    some icon
    +
    some icon
    some description diff --git a/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php b/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php index 1d5c48d89178..58ee4d912c58 100755 --- a/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php +++ b/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php @@ -142,7 +142,7 @@ public function testRenderingIcon(): void $expected = '' . '' - . ' ' + . ' ' . ' label' . ''; @@ -161,7 +161,7 @@ public function testRenderingWithId(): void $expected = '' . '' - . '' + . '' . ' label' . ''; @@ -179,7 +179,7 @@ public function testRenderWithAriaRoleMenuitem(): void $expected = '' . '' - . '' + . '' . ' label' . ''; @@ -197,7 +197,7 @@ public function testRenderWithLabelAndAltImageSame(): void $expected = '' . '' - . '' + . '' . ' Example' . ''; @@ -221,7 +221,7 @@ public function testRenderWithLanguage(): void $expected = '' . '' - . '' + . '' . ' label' . ''; @@ -241,7 +241,7 @@ public function testRenderWithHelpTopic(): void $expected_html = << - + label @@ -260,7 +260,7 @@ public function testRenderWithRelationships(): void $expected_html = << - + label EXP; @@ -279,7 +279,7 @@ public function testRenderWithDuplicateRelationship(): void $expected_html = << - + label EXP; diff --git a/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php b/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php index f0709ae8dc52..cca96681cbee 100755 --- a/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php +++ b/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php @@ -130,7 +130,7 @@ public function testRenderingWithSubslateAndButton(): void
    - aria_label + aria_label

    item title

    diff --git a/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php b/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php index 257be201cd93..408d63bde71e 100755 --- a/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php +++ b/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php @@ -30,8 +30,8 @@ */ class IconTest extends ILIAS_UI_TestBase { - public const ICON_PATH = __DIR__ . '/../../../../../../../public/templates/default/images/standard/'; - public const ICON_PATH_REL = './templates/default/images/'; + public const ICON_PATH = __DIR__ . '/../../../../../../../public/assets/images/standard/'; + public const ICON_PATH_REL = './assets/images/'; private function getIconFactory(): I\Component\Symbol\Icon\Factory { diff --git a/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php b/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php index 6d55ca07dee3..913447bf2e9d 100755 --- a/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php +++ b/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php @@ -53,7 +53,7 @@ public function testRenderClientHtml(): void $rendered_html = ' Toast Test HTML - + diff --git a/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php b/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php index 200dbee3e75c..48668f3d73c7 100755 --- a/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php +++ b/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php @@ -80,7 +80,7 @@ public function testRenderingWithIcon(): void
  • - + My Label diff --git a/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php b/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php index 8d215dfa8a0b..13b4f3bf6ebc 100755 --- a/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php +++ b/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php @@ -80,7 +80,7 @@ public function testRenderingWithIcon(): void
  • - + Label Value diff --git a/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php b/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php index 9184addb3cbc..41d27279f8d5 100755 --- a/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php +++ b/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php @@ -187,7 +187,7 @@ public function testRenderingWithIcon(C\Tree\Node\Simple $node): void
  • - + label @@ -215,7 +215,7 @@ public function testRenderingWithIconAndAltAttribute(C\Tree\Node\Simple $node):
  • - Different Icon Label + Different Icon Label label diff --git a/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php b/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php index 7ee443b1b064..d5a7fa04797e 100755 --- a/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php +++ b/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php @@ -450,7 +450,7 @@ public function getHTML(bool $a_only_cmd_list_asynch = false): string return ""; } - $this->global_tpl->addJavaScript("./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js"); + $this->global_tpl->addJavaScript("assets/js/AdvancedSelectionList.js"); $tpl = new ilTemplate( "tpl.adv_selection_list.html", diff --git a/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php b/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php index 6a8f71ee1c36..b7e10522861c 100755 --- a/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php +++ b/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php @@ -532,7 +532,7 @@ public function getOutput(): string } ilYuiUtil::initConnection(); - $tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $tpl->addJavaScript("assets/js/ilExplorer.js"); //echo "hh"; // set global body class diff --git a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php index d19c838c6f05..619fbade84e9 100755 --- a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php +++ b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php @@ -32,10 +32,10 @@ abstract class ilExplorerBaseGUI protected ilCtrl $ctrl; protected ?ilGlobalTemplateInterface $tpl; - protected static string $js_tree_path = "./node_modules/jstree/dist/jstree.js"; + protected static string $js_tree_path = "./assets/js/jstree.js"; protected static string $js_tree_path_css = "./node_modules/jstree/dist/themes/default/style.min.css"; - protected static string $js_expl_path = "./components/ILIAS/UIComponent/Explorer2/js/Explorer2.js"; + protected static string $js_expl_path = "assets/js/Explorer2.js"; protected bool $skip_root_node = false; protected bool $ajax = false; protected array $custom_open_nodes = array(); diff --git a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php index 09729e2c7100..f1ee151837a7 100755 --- a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php +++ b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php @@ -152,8 +152,8 @@ public function render(string $a_mode = "property_form"): string { $lng = $this->lng; - $this->global_tpl->addJavascript("./components/ILIAS/UIComponent/Explorer2/js/Explorer2.js"); - $this->global_tpl->addJavascript("./components/ILIAS/UIComponent/Modal/js/Modal.js"); + $this->global_tpl->addJavascript("assets/js/Explorer2.js"); + $this->global_tpl->addJavascript("asserts/js/Modal.js"); $this->global_tpl->addOnLoadCode( "il.Explorer2.initSelect('" . $this->getFieldId() . "');" ); diff --git a/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php b/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php index a98b7589984b..dfd5f61e2366 100755 --- a/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php +++ b/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php @@ -143,6 +143,6 @@ public static function initJS(ilGlobalTemplateInterface $a_main_tpl = null): voi $tpl = $a_main_tpl ?? $DIC["tpl"]; - $tpl->addJavaScript("./components/ILIAS/UIComponent/Modal/js/Modal.js"); + $tpl->addJavaScript("assets/js/Modal.js"); } } diff --git a/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php b/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php index 88557a3ce2be..218fca2192b8 100755 --- a/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php +++ b/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php @@ -157,7 +157,7 @@ public static function initJavascript(): void $tpl = $DIC->ui()->mainTemplate(); ilYuiUtil::initOverlay($tpl); - $tpl->addJavaScript("./components/ILIAS/UIComponent/Overlay/js/ilOverlay.js"); + $tpl->addJavaScript("assets/js/ilOverlay.js"); } public function getTriggerOnLoadCode( diff --git a/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php b/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php index 038807a153f8..b9ffd7c034d8 100755 --- a/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php +++ b/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php @@ -158,7 +158,7 @@ public function render(): string } if ($this->ajax_url !== '' && $this->ajax_timeout) { - $this->main_tpl->addJavaScript("components/ILIAS/UIComponent/ProgressBar/js/progress_bar.js"); + $this->main_tpl->addJavaScript("assets/js/progress_bar.js"); $tpl->setCurrentBlock('async_status'); $tpl->setVariable('ASYNC_STATUS_ID', $this->unique_id); $tpl->setVariable('ICON_OK', ilUtil::getImagePath('standard/icon_ok.svg')); diff --git a/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php b/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php index 8adfd393ee98..07938742e5ab 100755 --- a/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php +++ b/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php @@ -44,7 +44,7 @@ public static function highlight( if ($a_tpl === null) { $a_tpl = $tpl; } - $a_tpl->addJavaScript("./components/ILIAS/UIComponent/TextHighlighter/js/ilTextHighlighter.js"); + $a_tpl->addJavaScript("assets/js/ilTextHighlighter.js"); $a_tpl->addOnLoadCode("il.TextHighlighter.highlight('" . $a_dom_node_id . "','" . $a_text . "');"); } } diff --git a/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php b/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php index ff6cec759398..85f1893d22b4 100755 --- a/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php +++ b/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php @@ -416,7 +416,7 @@ public function getHTML(): string // form? if ($this->getFormAction() !== "") { // #18947 - $GLOBALS["tpl"]->addJavaScript("components/ILIAS/Form/js/Form.js"); + $GLOBALS["tpl"]->addJavaScript("assets/js/Form.js"); if ($this->getOpenFormTag()) { $tpl->setCurrentBlock("form_open"); diff --git a/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php b/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php index 371c7010b2f7..3e2952a35544 100755 --- a/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php +++ b/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php @@ -95,8 +95,8 @@ public static function init(): void if (!self::$initialized) { $tpl->addCss("./node_modules/qtip2/dist/jquery.qtip.min.css"); - $tpl->addJavascript("./node_modules/qtip2/dist/jquery.qtip.min.js"); - $tpl->addJavascript("./components/ILIAS/UIComponent/Tooltip/js/ilTooltip.js"); + $tpl->addJavascript("assets/js/jquery.qtip.min.js"); + $tpl->addJavascript("assets/js/ilTooltip.js"); // use setTimeout as a workaround, since the last parameter is ignored $tpl->addOnLoadCode('setTimeout(function() {il.Tooltip.init();}, 500);', 3); diff --git a/components/ILIAS/UIComponent/UIComponent.php b/components/ILIAS/UIComponent/UIComponent.php index 79906f7d6c40..c369c7f5e86f 100644 --- a/components/ILIAS/UIComponent/UIComponent.php +++ b/components/ILIAS/UIComponent/UIComponent.php @@ -32,6 +32,25 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Explorer2.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilOverlay.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Modal.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExplorer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTooltip.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "progress_bar.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "AdvancedSelectionList.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTextHighlighter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("qtip2/dist/jquery.qtip.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jstree/dist/jstree.js"); } } diff --git a/components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js b/components/ILIAS/UIComponent/resources/AdvancedSelectionList.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js rename to components/ILIAS/UIComponent/resources/AdvancedSelectionList.js diff --git a/public/components/ILIAS/UIComponent/Explorer2/js/Explorer2.js b/components/ILIAS/UIComponent/resources/Explorer2.js similarity index 100% rename from public/components/ILIAS/UIComponent/Explorer2/js/Explorer2.js rename to components/ILIAS/UIComponent/resources/Explorer2.js diff --git a/components/ILIAS/UIComponent/Modal/js/Modal.js b/components/ILIAS/UIComponent/resources/Modal.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/Modal/js/Modal.js rename to components/ILIAS/UIComponent/resources/Modal.js diff --git a/components/ILIAS/UIComponent/Explorer/js/ilExplorer.js b/components/ILIAS/UIComponent/resources/ilExplorer.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/Explorer/js/ilExplorer.js rename to components/ILIAS/UIComponent/resources/ilExplorer.js diff --git a/public/components/ILIAS/UIComponent/Overlay/js/ilOverlay.js b/components/ILIAS/UIComponent/resources/ilOverlay.js similarity index 100% rename from public/components/ILIAS/UIComponent/Overlay/js/ilOverlay.js rename to components/ILIAS/UIComponent/resources/ilOverlay.js diff --git a/components/ILIAS/UIComponent/TextHighlighter/js/ilTextHighlighter.js b/components/ILIAS/UIComponent/resources/ilTextHighlighter.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/TextHighlighter/js/ilTextHighlighter.js rename to components/ILIAS/UIComponent/resources/ilTextHighlighter.js diff --git a/components/ILIAS/UIComponent/Tooltip/js/ilTooltip.js b/components/ILIAS/UIComponent/resources/ilTooltip.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/Tooltip/js/ilTooltip.js rename to components/ILIAS/UIComponent/resources/ilTooltip.js diff --git a/components/ILIAS/UIComponent/ProgressBar/js/progress_bar.js b/components/ILIAS/UIComponent/resources/progress_bar.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/ProgressBar/js/progress_bar.js rename to components/ILIAS/UIComponent/resources/progress_bar.js diff --git a/components/ILIAS/UICore/UICore.php b/components/ILIAS/UICore/UICore.php index e0c429d331f4..628e4c7eac57 100644 --- a/components/ILIAS/UICore/UICore.php +++ b/components/ILIAS/UICore/UICore.php @@ -36,5 +36,8 @@ public function init( new \ilUICoreSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("bootstrap/dist/js/bootstrap.min.js"); } } diff --git a/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php b/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php index bb10f7916213..964cef7b6fe2 100755 --- a/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php +++ b/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php @@ -97,7 +97,7 @@ protected function prepareBasicJS(): void { iljQueryUtil::initjQuery($this); iljQueryUtil::initjQueryUI($this); - $this->gs->layout()->meta()->addJs("./components/ILIAS/JavaScript/js/Basic.js", true, 1); + $this->gs->layout()->meta()->addJs("assets/js/Basic.js", true, 1); ilUIFramework::init($this); ilBuddySystemGUI::initializeFrontend($this); ilOnScreenChatGUI::initializeFrontend($this); diff --git a/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php b/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php index 3c888332ee2f..790487e1a657 100755 --- a/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php +++ b/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php @@ -36,7 +36,7 @@ class ilGlobalTemplate implements ilGlobalTemplateInterface * @var string[] */ protected array $js_files = [ - "./components/ILIAS/JavaScript/js/Basic.js", + "assets/js/Basic.js", ]; /** @@ -44,7 +44,7 @@ class ilGlobalTemplate implements ilGlobalTemplateInterface * @var array */ protected array $js_files_vp = [ - "./components/ILIAS/JavaScript/js/Basic.js" => true, + "assets/js/Basic.js" => true, ]; /** @@ -52,7 +52,7 @@ class ilGlobalTemplate implements ilGlobalTemplateInterface * @var array */ protected array $js_files_batch = [ - "./components/ILIAS/JavaScript/js/Basic.js" => 1, + "assets/js/Basic.js" => 1, ]; /** diff --git a/components/ILIAS/UICore/classes/class.ilUIFramework.php b/components/ILIAS/UICore/classes/class.ilUIFramework.php index cc60e60b05a1..5a1fac6dcd97 100755 --- a/components/ILIAS/UICore/classes/class.ilUIFramework.php +++ b/components/ILIAS/UICore/classes/class.ilUIFramework.php @@ -24,7 +24,7 @@ */ class ilUIFramework { - public const BOOTSTRAP_JS = "./node_modules/bootstrap/dist/js/bootstrap.min.js"; + public const BOOTSTRAP_JS = "./assets/js/bootstrap.min.js"; public static function init(ilGlobalTemplateInterface $template = null): void { diff --git a/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php b/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php index 4e50c51a37de..f7b87d8ac888 100755 --- a/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php +++ b/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php @@ -497,7 +497,7 @@ protected function appendChatJsToTemplate( ): ilTemplate { $tpl = new ilTemplate('tpl.personal_chat_settings_form.html', true, true, 'components/ILIAS/Chatroom'); if ($this->shouldShowOnScreenChatOptions() && $this->chatSettings->get('enable_browser_notifications', '0')) { - $pageTemplate->addJavaScript('./components/ILIAS/Notifications/js/browser_notifications.js'); + $pageTemplate->addJavaScript('assets/js/browser_notifications.js'); $tpl->setVariable('ALERT_IMAGE_SRC', ilUtil::getImagePath('standard/icon_alert.svg')); $tpl->setVariable('BROWSER_NOTIFICATION_TOGGLE_LABEL', $this->lng->txt('osc_enable_browser_notifications_label')); diff --git a/components/ILIAS/Utilities/classes/class.ilUtil.php b/components/ILIAS/Utilities/classes/class.ilUtil.php index 6a5adfd2e837..fc98e53db979 100755 --- a/components/ILIAS/Utilities/classes/class.ilUtil.php +++ b/components/ILIAS/Utilities/classes/class.ilUtil.php @@ -63,51 +63,40 @@ public static function getImageTagByType(string $a_type, string $a_path, bool $a * */ public static function getImagePath( - string $img, - string $module_path = "", - string $mode = "output", + string $image_name, + string $module_path = "", // this parameter only supports "" value + string $mode = "output", // this parameter does not control anything anymore bool $offline = false ): string { - global $DIC; - - $styleDefinition = null; - if (isset($DIC["styleDefinition"])) { - $styleDefinition = $DIC["styleDefinition"]; - } - - if ($module_path != "") { - $module_path = "/" . $module_path; + if ($offline) { + return "./images/" . $image_name; } - // default image - $default_img = "." . $module_path . "/templates/default/images/" . $img; - - // use ilStyleDefinition instead of account to get the current skin and style - $current_skin = ilStyleDefinition::getCurrentSkin(); - $current_style = ilStyleDefinition::getCurrentStyle(); + global $DIC; + $styleDefinition = $DIC["styleDefinition"] ?? null; - if (is_object($styleDefinition)) { - $image_dir = $styleDefinition->getImageDirectory($current_style); - } else { - $image_dir = "images"; + if ($module_path != "") { + throw new \LogicException( + "\$module_path only supports '' as value." + ); } - $skin_img = ""; + $use_custom_skin = (ilStyleDefinition::getCurrentSkin() !== "default"); - if ($current_skin == "default") { - $skin_img = "." . $module_path . "/templates/default/" . $image_dir . "/" . $img; - } elseif (is_object($styleDefinition) && $current_skin != "default") { - $skin_img = "./Customizing/global/skin/" . - $current_skin . "/". $current_style. "/". $module_path . $image_dir . "/" . $img; - } + if ($use_custom_skin) { + $filename = + "./Customizing/global/skin/" + . ilStyleDefinition::getCurrentSkin() . "/" + . ilStyleDefinition::getCurrentStyle() . "/" + . (!is_object($styleDefinition) ? "images" : $styleDefinition->getImageDirectory(ilStyleDefinition::getCurrentStyle())) . "/" + . $image_name; - if ($offline) { - return "./images/" . $img; - } elseif (file_exists($skin_img)) { - return $skin_img; // found image for skin and style + if ($file_exists("./public/" . $filename)) { + return $filename; + } } - return $default_img; // take image in default + return "./assets/images/" . $image_name; } /** @@ -140,41 +129,46 @@ public static function getHtmlPath(string $relative_path): string */ public static function getStyleSheetLocation( string $mode = "output", - string $a_css_name = "", - string $a_css_location = "" + string $a_css_name = "" ): string { - global $DIC; + $force_reload = ($mode !== "filesystem"); + $use_default_style_file = ($a_css_name === ""); + $use_custom_skin = (ilStyleDefinition::getCurrentSkin() !== "default"); - $ilSetting = $DIC->settings(); - - // add version as parameter to force reload for new releases // use ilStyleDefinition instead of account to get the current style - $stylesheet_name = (strlen($a_css_name)) - ? $a_css_name - : ilStyleDefinition::getCurrentStyle() . ".css"; - if (strlen($a_css_location) && (strcmp(substr($a_css_location, -1), "/") != 0)) { - $a_css_location = $a_css_location . "/"; + if ($use_default_style_file) { + $stylesheet_name = ilStyleDefinition::getCurrentStyle() . ".css"; + } else { + $stylesheet_name = $a_css_name; } - $filename = ""; - // use ilStyleDefinition instead of account to get the current skin - if (ilStyleDefinition::getCurrentSkin() != "default") { - $filename = "./Customizing/global/skin/" . ilStyleDefinition::getCurrentSkin( - ) . "/" . ilStyleDefinition::getCurrentStyle() . "/" . $a_css_location . $stylesheet_name; + if ($use_custom_skin) { + $filename = + "./Customizing/global/skin/" + . ilStyleDefinition::getCurrentSkin() . "/" + . ilStyleDefinition::getCurrentStyle() . "/" + . $stylesheet_name; + } else { + $filename = "./assets/css/" . $stylesheet_name; } - if (strlen($filename) == 0 || !file_exists($filename)) { - $filename = "./" . $a_css_location . "templates/default/" . $stylesheet_name; + + if (!$force_reload) { + return $filename; } - $skin_version_appendix = ""; - if ($mode !== "filesystem") { - // use version from template xml to force reload on changes - $skin = ilStyleDefinition::getSkins()[ilStyleDefinition::getCurrentSkin()]; - $skin_version = $skin->getVersion(); - $skin_version_appendix .= ($skin_version !== '' ? str_replace(".", "-", $skin_version) : '0'); - $skin_version_appendix = "?skin_version=" . $skin_version_appendix; + + // add version as parameter to force reload for new releases + + // use version from template xml to force reload on changes + $skin = ilStyleDefinition::getSkins()[ilStyleDefinition::getCurrentSkin()]; + $skin_version = $skin->getVersion(); + if ($skin_version !== "") { + $skin_version_appendix = str_replace(".", "-", $skin_version); + } else { + $skin_version_appendix = '0'; } - return $filename . $skin_version_appendix; + + return $filename . "?skin_version=" . $skin_version_appendix; } /** @@ -197,7 +191,7 @@ public static function getNewContentStyleSheetLocation(string $mode = "output"): if (is_file("./" . $in_style)) { return $in_style; } else { - return "templates/default/delos_cont.css"; + return "assets/css/delos_cont.css"; } } @@ -458,13 +452,13 @@ public static function secureString(string $a_str, bool $a_strip_html = true, st $a_str = strip_tags($a_str); // strip all other tags $a_str = ilUtil::unmaskSecureTags($a_str, $allow_array); - // a possible solution could be something like: - // $a_str = str_replace("<", "<", $a_str); - // $a_str = str_replace(">", ">", $a_str); - // $a_str = ilUtil::unmaskSecureTags($a_str, $allow_array); + // a possible solution could be something like: + // $a_str = str_replace("<", "<", $a_str); + // $a_str = str_replace(">", ">", $a_str); + // $a_str = ilUtil::unmaskSecureTags($a_str, $allow_array); // - // output would be ok then, but input fields would show - // "a <= b" for input "a <= b" if data is brought back to a form + // output would be ok then, but input fields would show + // "a <= b" for input "a <= b" if data is brought back to a form } else { // only for scripts, that need to allow more/other tags and parameters if ($a_strip_html) { diff --git a/components/ILIAS/WOPI/WOPI.php b/components/ILIAS/WOPI/WOPI.php index eef1052b06ba..7eedc7c23187 100644 --- a/components/ILIAS/WOPI/WOPI.php +++ b/components/ILIAS/WOPI/WOPI.php @@ -36,5 +36,8 @@ public function init( new \ilWOPISetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "wopi/index.php", "wopi"); } } diff --git a/public/wopi/index.php b/components/ILIAS/WOPI/resources/wopi/index.php old mode 100755 new mode 100644 similarity index 94% rename from public/wopi/index.php rename to components/ILIAS/WOPI/resources/wopi/index.php index d250c3265c64..7037e5f7bbb9 --- a/public/wopi/index.php +++ b/components/ILIAS/WOPI/resources/wopi/index.php @@ -16,4 +16,4 @@ // handle all requests behind /public/wopi/index.php/ $handler = new RequestHandler(); -$handler->handleRequest(); +$handler->handleRequest(); \ No newline at end of file diff --git a/components/ILIAS/WebAccessChecker/WebAccessChecker.php b/components/ILIAS/WebAccessChecker/WebAccessChecker.php index df639dd1937b..e5f25d4407ed 100644 --- a/components/ILIAS/WebAccessChecker/WebAccessChecker.php +++ b/components/ILIAS/WebAccessChecker/WebAccessChecker.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "wac.php"); } } diff --git a/components/ILIAS/WebAccessChecker/implement-wac.md b/components/ILIAS/WebAccessChecker/implement-wac.md index 0944b996e240..edf110cc8a4a 100755 --- a/components/ILIAS/WebAccessChecker/implement-wac.md +++ b/components/ILIAS/WebAccessChecker/implement-wac.md @@ -10,7 +10,7 @@ The new WebAccessChecker allows fast and secure delivery of files in the /data d All requests to /data are now redirected to the WAC-Script per default, the .htaccess-File has a new entry: -`RewriteRule ^data/.*/.*/.*$ Services/WebAccessChecker/wac.php [L]` +`RewriteRule ^data/.*/.*/.*$ wac.php [L]` The WAC delivers the file after the following decisions: @@ -109,4 +109,4 @@ Additionally in the .htaccess the following rule activated the X-SendFile Module XSendFile On -``` \ No newline at end of file +``` diff --git a/public/components/ILIAS/WebAccessChecker/wac.php b/components/ILIAS/WebAccessChecker/resources/wac.php similarity index 53% rename from public/components/ILIAS/WebAccessChecker/wac.php rename to components/ILIAS/WebAccessChecker/resources/wac.php index 2c2bed2eddb8..e6d3df361a1b 100755 --- a/public/components/ILIAS/WebAccessChecker/wac.php +++ b/components/ILIAS/WebAccessChecker/resources/wac.php @@ -14,19 +14,19 @@ $container = new \ILIAS\DI\Container(); //manually init http service -$container['http.request_factory'] = static fn ($c) => new \ILIAS\HTTP\Request\RequestFactoryImpl(); +$container['http.request_factory'] = static fn($c) => new \ILIAS\HTTP\Request\RequestFactoryImpl(); -$container['http.response_factory'] = static fn ($c) => new \ILIAS\HTTP\Response\ResponseFactoryImpl(); +$container['http.response_factory'] = static fn($c) => new \ILIAS\HTTP\Response\ResponseFactoryImpl(); -$container['http.cookie_jar_factory'] = static fn ($c) => new \ILIAS\HTTP\Cookies\CookieJarFactoryImpl(); +$container['http.cookie_jar_factory'] = static fn($c) => new \ILIAS\HTTP\Cookies\CookieJarFactoryImpl(); -$container['http.response_sender_strategy'] = static fn ($c) => new \ILIAS\HTTP\Response\Sender\DefaultResponseSenderStrategy(); +$container['http.response_sender_strategy'] = static fn($c) => new \ILIAS\HTTP\Response\Sender\DefaultResponseSenderStrategy(); -$container['http.duration_factory'] = static fn ($c) => new \ILIAS\HTTP\Duration\DurationFactory( +$container['http.duration_factory'] = static fn($c) => new \ILIAS\HTTP\Duration\DurationFactory( new \ILIAS\HTTP\Duration\Increment\IncrementFactory() ); -$container['http'] = static fn ($c) => new \ILIAS\HTTP\Services($c); +$container['http'] = static fn($c) => new \ILIAS\HTTP\Services($c); $GLOBALS["DIC"] = $container; diff --git a/components/ILIAS/WebDAV/WebDAV.php b/components/ILIAS/WebDAV/WebDAV.php index 23a0d208c3f1..33a26393f81d 100644 --- a/components/ILIAS/WebDAV/WebDAV.php +++ b/components/ILIAS/WebDAV/WebDAV.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "webdav.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "rootindex.php"); } } diff --git a/public/rootindex.php b/components/ILIAS/WebDAV/resources/rootindex.php old mode 100755 new mode 100644 similarity index 92% rename from public/rootindex.php rename to components/ILIAS/WebDAV/resources/rootindex.php index a28186027645..8ca0659b7593 --- a/public/rootindex.php +++ b/components/ILIAS/WebDAV/resources/rootindex.php @@ -10,7 +10,7 @@ // If we don't do this, the client will display a non-working login-dialog. if ($_SERVER['REQUEST_METHOD'] == 'PROPFIND' -|| $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { + || $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { // Block WebDAV Requests from "Microsoft WebDAV MiniRedir" client. $status = '404 Not Found'; header("HTTP/1.1 $status"); @@ -21,4 +21,4 @@ header("Location: /ilias/index.php"); exit; } -// END WebDAV +// END WebDAV \ No newline at end of file diff --git a/public/webdav.php b/components/ILIAS/WebDAV/resources/webdav.php old mode 100755 new mode 100644 similarity index 89% rename from public/webdav.php rename to components/ILIAS/WebDAV/resources/webdav.php index 24261d8fcac1..8c71ec55055e --- a/public/webdav.php +++ b/components/ILIAS/WebDAV/resources/webdav.php @@ -47,9 +47,9 @@ header("HTTP/1.1 403 Forbidden"); header("X-WebDAV-Status: 403 Forbidden", true); echo '

    Sorry

    ' . - '

    Please enable the WebDAV plugin in the ILIAS Administration panel.

    ' . - '

    You can only access this page, if WebDAV is enabled on this server.

    ' . - ''; + '

    Please enable the WebDAV plugin in the ILIAS Administration panel.

    ' . + '

    You can only access this page, if WebDAV is enabled on this server.

    ' . + ''; exit; } @@ -62,4 +62,4 @@ } else { $server = new ilWebDAVRequestHandler($webdav_dic); $server->handleRequest($post_array); -} +} \ No newline at end of file diff --git a/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php b/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php index 2d7297053a86..ec1da6e29176 100755 --- a/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php +++ b/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php @@ -1224,8 +1224,8 @@ protected function manage(): void $js = ilInternalLinkGUI::getInitHTML(""); - $this->tpl->addJavaScript("components/ILIAS/WebResource/js/intLink.js"); - $this->tpl->addJavascript("components/ILIAS/Form/js/Form.js"); + $this->tpl->addJavaScript("assets/js/intLink.js"); + $this->tpl->addJavascript("assets/js/Form.js"); $this->tpl->setVariable('TABLE_LINKS', $table->getHTML() . $js); } diff --git a/components/ILIAS/Wiki/Wiki.php b/components/ILIAS/Wiki/Wiki.php index 2c433582a4ee..bde59c66c056 100644 --- a/components/ILIAS/Wiki/Wiki.php +++ b/components/ILIAS/Wiki/Wiki.php @@ -36,5 +36,10 @@ public function init( new \ILIAS\Wiki\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "WikiPres.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "WikiEdit.js"); } } diff --git a/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php b/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php index 1d5f6d772f22..b59e9e186bf1 100755 --- a/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php +++ b/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php @@ -1481,7 +1481,7 @@ public static function renderSideBlock( $ilAccess = $DIC->access(); $ilCtrl = $DIC->ctrl(); - $tpl->addJavaScript("./components/ILIAS/Wiki/js/WikiPres.js"); + $tpl->addJavaScript("assets/js/WikiPres.js"); // setting asynch to false fixes #0019457, since otherwise ilBlockGUI would act on asynch and output html when side blocks // being processed during the export. This is a flaw in ilCtrl and/or ilBlockGUI. diff --git a/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php b/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php index 1d7276c62ec6..fd21c453e724 100755 --- a/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php +++ b/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php @@ -1134,7 +1134,7 @@ public static function initEditingJS(ilGlobalTemplateInterface $a_tpl): void $lng = $DIC->language(); - $a_tpl->addJavaScript("./components/ILIAS/Wiki/js/WikiEdit.js"); + $a_tpl->addJavaScript("assets/js/WikiEdit.js"); $a_tpl->addOnLoadCode("il.Wiki.Edit.txt.page_exists = '" . $lng->txt("wiki_page_exists") . "';"); $a_tpl->addOnLoadCode("il.Wiki.Edit.txt.new_page = '" . $lng->txt("wiki_new_page") . "';"); } diff --git a/components/ILIAS/Wiki/js/WikiEdit.js b/components/ILIAS/Wiki/resources/WikiEdit.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Wiki/js/WikiEdit.js rename to components/ILIAS/Wiki/resources/WikiEdit.js diff --git a/components/ILIAS/Wiki/js/WikiPres.js b/components/ILIAS/Wiki/resources/WikiPres.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Wiki/js/WikiPres.js rename to components/ILIAS/Wiki/resources/WikiPres.js diff --git a/components/ILIAS/YUI/YUI.php b/components/ILIAS/YUI/YUI.php index 4d62f8eb09e2..db1fd32271dd 100644 --- a/components/ILIAS/YUI/YUI.php +++ b/components/ILIAS/YUI/YUI.php @@ -32,6 +32,27 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/yahoo-dom-event/yahoo-dom-event.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/connection/connection-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/dragdrop/dragdrop-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/element/element-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/container/container-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/utilities/utilities.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/resize/resize-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/container/container_core-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/menu/menu-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/button/button-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/cookie/cookie.js"); } } diff --git a/components/ILIAS/YUI/classes/class.ilYuiUtil.php b/components/ILIAS/YUI/classes/class.ilYuiUtil.php index 015bb64257f3..92ba4200d4dc 100755 --- a/components/ILIAS/YUI/classes/class.ilYuiUtil.php +++ b/components/ILIAS/YUI/classes/class.ilYuiUtil.php @@ -38,8 +38,8 @@ public static function initConnection( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/connection/connection-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/connection-min.js"); } @@ -50,7 +50,7 @@ public static function initEvent( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); } @@ -61,7 +61,7 @@ public static function initDom( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); } @@ -74,9 +74,9 @@ public static function initDragDrop( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/dragdrop/dragdrop-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/element/element-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/dragdrop-min.js"); + $tpl->addJavaScript("assets/js/element-min.js"); } @@ -89,7 +89,7 @@ public static function initDomEvent( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); } /** @@ -102,15 +102,15 @@ public static function initPanel( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/container/container-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/container-min.js"); self::addContainerCss($tpl); $tpl->addCss("./components/ILIAS/Calendar/css/panel_min.css"); if ($a_resize) { $tpl->addCss(self::YUI_BASE . "/resize/assets/skins/sam/resize.css"); - $tpl->addJavaScript(self::YUI_BASE . "/utilities/utilities-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/resize/resize-min.js"); + $tpl->addJavaScript("assets/js/utilities.js"); + $tpl->addJavaScript("assets/js/resize-min.js"); } } @@ -123,9 +123,9 @@ public static function initPanel( public static function initConnectionWithAnimation(): void { $tpl = self::ensureGlobalTemplate(); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/animation/animation-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/connection/connection-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/animation-min.js"); + $tpl->addJavaScript("assets/js/connection-min.js"); } @@ -139,8 +139,8 @@ public static function initOverlay( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/container/container_core-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/container_core-min.js"); self::addContainerCss($tpl); } @@ -152,13 +152,13 @@ public static function initOverlay( public static function initButtonControl(): void { $tpl = self::ensureGlobalTemplate(); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/element/element-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/element-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/container/container_core-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/menu/menu-min.js"); + $tpl->addJavaScript("assets/js/container_core-min.js"); + $tpl->addJavaScript("assets/js/menu-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/button/button-min.js"); + $tpl->addJavaScript("assets/js/button-min.js"); $tpl->addCss(self::YUI_BASE . "/button/assets/skins/sam/button.css"); $tpl->addCss(self::YUI_BASE . "/menu/assets/skins/sam/menu.css"); @@ -171,8 +171,8 @@ public static function initButtonControl(): void public static function initCookie(): void { $tpl = self::ensureGlobalTemplate(); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo/yahoo-min.js", 1); - $tpl->addJavaScript(self::YUI_BASE . "/cookie/cookie.js", 1); + $tpl->addJavaScript("assets/js/yahoo-min.js", 1); + $tpl->addJavaScript("assets/js/cookie.js", 1); } diff --git a/components/ILIAS/jQuery/classes/class.iljQueryUtil.php b/components/ILIAS/jQuery/classes/class.iljQueryUtil.php index 94ca52db7ad4..3b714a33e57c 100755 --- a/components/ILIAS/jQuery/classes/class.iljQueryUtil.php +++ b/components/ILIAS/jQuery/classes/class.iljQueryUtil.php @@ -44,7 +44,7 @@ public static function initjQuery(ilGlobalTemplateInterface $a_tpl = null): void } $a_tpl->addJavaScript(self::getLocaljQueryPath(), true, 0); - $a_tpl->addJavaScript('./node_modules/jquery-migrate/dist/jquery-migrate.min.js', true, 0); + $a_tpl->addJavaScript('assets/js/jquery-migrate.min.js', true, 0); } @@ -70,7 +70,7 @@ public static function initjQueryUI(ilGlobalTemplateInterface $a_tpl = null): vo */ public static function getLocaljQueryPath(): string { - return "./node_modules/jquery/dist/jquery" . self::$min . ".js"; + return "assets/js/jquery" . self::$min . ".js"; } @@ -79,7 +79,7 @@ public static function getLocaljQueryPath(): string */ public static function getLocaljQueryUIPath(): string { - return "./node_modules/jquery-ui-dist/jquery-ui" . self::$min . ".js"; + return "./assets/js/jquery-ui" . self::$min . ".js"; } // @@ -104,6 +104,6 @@ public static function initMaphilight(): void */ public static function getLocalMaphilightPath(): string { - return "./node_modules/maphilight/jquery.maphilight.min.js"; + return "./assets/js/jquery.maphilight.min.js"; } } diff --git a/components/ILIAS/jQuery/jQuery.php b/components/ILIAS/jQuery/jQuery.php index 2d31218c47ff..cd5a363f58c5 100644 --- a/components/ILIAS/jQuery/jQuery.php +++ b/components/ILIAS/jQuery/jQuery.php @@ -32,6 +32,13 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jquery-migrate/dist/jquery-migrate.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jquery/dist/jquery.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jquery-ui-dist/jquery-ui.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("maphilight/jquery.maphilight.min.js"); } } diff --git a/public/soap/nusoapserver.php b/components/ILIAS/soap/resources/soap/nusoapserver.php old mode 100755 new mode 100644 similarity index 92% rename from public/soap/nusoapserver.php rename to components/ILIAS/soap/resources/soap/nusoapserver.php index 86a36ed92c1f..14fb6d60917f --- a/public/soap/nusoapserver.php +++ b/components/ILIAS/soap/resources/soap/nusoapserver.php @@ -23,13 +23,13 @@ /** -* soap server -* -* @author Stefan Meyer -* @version $Id: server.php 14977 2007-10-12 11:58:35Z rkuester $ -* -* @package ilias -*/ + * soap server + * + * @author Stefan Meyer + * @version $Id: server.php 14977 2007-10-12 11:58:35Z rkuester $ + * + * @package ilias + */ if (!defined('ILIAS_MODULE') || (defined('ILIAS_MODULE') && ILIAS_MODULE !== "components/ILIAS/soap")) { //direct call to this endpoint @@ -41,4 +41,4 @@ } $server = new ilNusoapUserAdministrationAdapter(true); -$server->start(); +$server->start(); \ No newline at end of file diff --git a/public/soap/server.php b/components/ILIAS/soap/resources/soap/server.php old mode 100755 new mode 100644 similarity index 94% rename from public/soap/server.php rename to components/ILIAS/soap/resources/soap/server.php index b20b82c53bd1..911c2aa5df80 --- a/public/soap/server.php +++ b/components/ILIAS/soap/resources/soap/server.php @@ -3,13 +3,13 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* SOAP server -* -* @author Stefan Meyer -* @version $Id$ -* -* @package ilias -*/ + * SOAP server + * + * @author Stefan Meyer + * @version $Id$ + * + * @package ilias + */ chdir("../.."); const ILIAS_MODULE = "components/ILIAS/soap"; @@ -50,4 +50,4 @@ } else { // This is a request to display the available SOAP methods or WSDL... include('public/soap/nusoapserver.php'); -} +} \ No newline at end of file diff --git a/components/ILIAS/soap/soap.php b/components/ILIAS/soap/soap.php index 088fd7d22e9e..f2bac809dce6 100644 --- a/components/ILIAS/soap/soap.php +++ b/components/ILIAS/soap/soap.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "soap/nusoapserver.php", "soap"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "soap/server.php", "soap"); } } diff --git a/docs/configuration/nginx_shibboleth.md b/docs/configuration/nginx_shibboleth.md index e03ef00846dd..9645ca9bc1d6 100755 --- a/docs/configuration/nginx_shibboleth.md +++ b/docs/configuration/nginx_shibboleth.md @@ -288,7 +288,7 @@ to manually add them to your nginx virtual host config: rewrite ^/goto_(.*)_(wiki_([0-9]+|wpage)(.*)).html$ /goto.php?client_id=$1&target=$2 last; rewrite ^/([^\/]*)_user_(.*)$ /goto.php?client_id=$1&target=usr_n$2 last; rewrite ^/goto_(.*)_([a-z]+_[0-9]+(.*)).html$ /goto.php?client_id=$1&target=$2 last; -rewrite ^/data/.*/.*/.*$ /Services/WebAccessChecker/wac.php last; +rewrite ^/data/.*/.*/.*$ /wac.php last; ``` ### File delivery via X-Accel diff --git a/docs/configuration/secure.md b/docs/configuration/secure.md index 64c39521d2dc..aa163184c661 100755 --- a/docs/configuration/secure.md +++ b/docs/configuration/secure.md @@ -632,7 +632,7 @@ This is a NGINX recommended configuration. (note: inside the `%DOCROOT%/data` no [...] set $root $document_root; location ~ /data/ { - rewrite ^/data/(.*)/(.*)/(.*)$ /Services/WebAccessChecker/wac.php last; + rewrite ^/data/(.*)/(.*)/(.*)$ /wac.php last; location ~ [^/]\.php(/|$) { access_log off; log_not_found off; deny all; } } diff --git a/public/package-lock.json b/package-lock.json old mode 100755 new mode 100644 similarity index 99% rename from public/package-lock.json rename to package-lock.json index 5db3108dc6c6..2613be0c7d5e --- a/public/package-lock.json +++ b/package-lock.json @@ -47,7 +47,7 @@ "eslint-plugin-import": "^2.27.5", "jsdom": "19.0.0", "less": "^4.1.1", - "mocha": "^10.2.0", + "mocha": "^10.4.0", "rollup": "^2.18.0" } }, @@ -5141,9 +5141,9 @@ } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", + "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", "dev": true, "dependencies": { "ansi-colors": "4.1.1", @@ -5153,13 +5153,12 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -5174,10 +5173,6 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/brace-expansion": { @@ -5224,6 +5219,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/mocha/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5299,18 +5313,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", diff --git a/public/package.json b/package.json old mode 100755 new mode 100644 similarity index 99% rename from public/package.json rename to package.json index 221e8fd4e859..0bd95fd83684 --- a/public/package.json +++ b/package.json @@ -46,7 +46,7 @@ "eslint-plugin-import": "^2.27.5", "jsdom": "19.0.0", "less": "^4.1.1", - "mocha": "^10.2.0", + "mocha": "^10.4.0", "rollup": "^2.18.0" }, "scripts": { diff --git a/public/components/ILIAS/Notifications/templates/default/notifications.js b/public/components/ILIAS/Notifications/templates/default/notifications.js deleted file mode 100755 index b9601c4a77c9..000000000000 --- a/public/components/ILIAS/Notifications/templates/default/notifications.js +++ /dev/null @@ -1,79 +0,0 @@ -var OSDNotifier, OSDNotifications = settings => { - const evalInCleanEnv = codeAsString => new Function('', codeAsString).call(); - - const playSound = () => { - const sound = document.createElement('audio'); - - const mp3 = document.createElement('source'); - mp3.src = 'Modules/Chatroom/sounds/receive.mp3'; - mp3.type = 'audio/mp3'; - sound.append(mp3); - - const ogg = document.createElement('source'); - ogg.src = 'Modules/Chatroom/sounds/receive.ogg'; - ogg.type = 'audio/ogg'; - sound.append(ogg); - document.querySelector('body').append(sound); - - sound.play().then(() => { - console.debug("Played sound successfully!"); - }).catch((e) => { - console.info("Could not play sound, autoplay policy changes: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes"); - console.warn(e); - }); - }; - - const createContentSetter = container => { - return html => { - container.innerHTML = html; - container.querySelectorAll('script').forEach(element => { - evalInCleanEnv(element.innerHTML); - }); - container.querySelectorAll('.il-toast-wrapper').forEach(element => { - element.querySelectorAll('a').forEach(link => { - link.addEventListener('click', () => { - il.UI.toast.closeToast(element.querySelector('.il-toast'), true); - }); - }); - element.addEventListener('removeToast', () => { - document.dispatchEvent(new Event('rerenderNotificationCenter')); - }); - }); - }; - }; - - const poll = (container) => { - let lastRequest = parseInt(new Date().getTime() / 1000); - - return () => { - const time = parseInt(new Date().getTime() / 1000); - const max_age = time - lastRequest; - const xhr = new XMLHttpRequest(); - const setContent = createContentSetter(container); - xhr.open('GET', 'ilias.php?baseClass=ilNotificationGUI&cmd=getOSDNotifications&cmdMode=asynch&max_age=' + max_age); - xhr.onload = () => { - if (xhr.status === 200) { - setContent(xhr.responseText); - if (settings.playSound && xhr.responseText !== '') { - playSound(); - } - lastRequest = time; - } else { - container.innerHTML = ''; - console.error(xhr.status + ': ' + xhr.responseText); - } - }; - xhr.send(); - }; - }; - - const init = () => { - const container = il.UI.page.getOverlay().querySelector('.il-toast-container'); - const interval = settings.pollingInterval; - if (interval) { - window.setInterval(poll(container), interval); - } - }; - - return init(); -}; diff --git a/public/components/ILIAS/UI/src/templates/js/Image/dist/image.min.js b/public/components/ILIAS/UI/src/templates/js/Image/dist/image.min.js deleted file mode 100755 index 2a957f9ea454..000000000000 --- a/public/components/ILIAS/UI/src/templates/js/Image/dist/image.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file is part of ILIAS, a powerful learning management system - * published by ILIAS open source e-Learning e.V. - * - * ILIAS is licensed with the GPL-3.0, - * see https://www.gnu.org/licenses/gpl-3.0.en.html - * You should have received a copy of said license along with the - * source code, too. - * - * If this is not the case or you just want to try ILIAS, you'll find - * us at: - * https://www.ilias.de - * https://github.com/ILIAS-eLearning - */ -!function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=n(e),u=n(t);l.default.UI=l.default.UI||{},l.default.UI.image=l.default.UI.image||{},l.default.UI.image.getImageElement=e=>function(e,t){const n=e.getElementById(t);return null===n?null:n instanceof e.defaultView.HTMLImageElement?n:n.querySelector("img")}(u.default,e),l.default.UI.image.loadHighResolutionSource=function(e,t){const n=function(e,t){let n=null,l=null;return e.forEach(((e,u)=>{u<=t&&u>l&&(l=u,n=e)})),n}(t,e.width);if(null!==n){const t=e.cloneNode();t.addEventListener("load",(()=>{e.replaceWith(t)})),t.src=n}}}(il,document); diff --git a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js b/public/components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js deleted file mode 100755 index 181e82ead6b4..000000000000 --- a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file is part of ILIAS, a powerful learning management system - * published by ILIAS open source e-Learning e.V. - * - * ILIAS is licensed with the GPL-3.0, - * see https://www.gnu.org/licenses/gpl-3.0.en.html - * You should have received a copy of said license along with the - * source code, too. - * - * If this is not the case or you just want to try ILIAS, you'll find - * us at: - * https://www.ilias.de - * https://github.com/ILIAS-eLearning - */ -!function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=n(t),a=n(e);const i="engaged",o="il-maincontrols-metabar",r="il-metabar-slates",l="il-metabar-more-button",u="il-metabar-more-slate",c="il-maincontrols-slate",h="engaged";function g(t){t.removeClass(i),t.attr("aria-expanded",!1)}class d{#t;#e;#n;#s;#a;#i;#o;constructor(t,e,n,s,a,i){this.#t=t,this.#e=e,this.#s=n,this.#a=s,this.#i=a,this.#o=i}registerSignals(t,e){this.#t(document).on(t,((t,e)=>(this.#r(t,e),this.#s()&&this.#i(),!1))),this.#t(document).on(e,(()=>(this.onClickDisengageAll(),!1))),this.#t(`.${o}`).on("click",(()=>{this.#n=!0})),this.#t("body").on("click",(()=>{this.#n?this.#n=!1:this.onClickDisengageAll()})),this.#t(`.${r} > .${c}`).on("focusout",(t=>{if(!this.#s()){const e=t.relatedTarget,n=t.currentTarget;this.#t.contains(n,e)||this.onClickDisengageAll()}}))}#r(t,e){const n=e.triggerer;!function(t){return t.hasClass(i)}(n)?(this.disengageAll(),function(t){t.addClass(i),t.attr("aria-expanded",!0)}(n),setTimeout((()=>{const t=n[0];this.focusInEngagedSlate(t)}),10)):g(n)}onClickDisengageAll(){this.disengageAllButtons(),this.disengageAllSlates()}disengageAllButtons(){document.querySelectorAll(`#${this.#e}.${o} > li > .btn.${i}`).forEach((t=>{g($(t))}));document.querySelectorAll(`#${this.#e}.${o} > li > .${r} > .${u} > .il-maincontrols-slate-content > .btn.${i}`).forEach((t=>{g($(t))}))}disengageAllSlates(){this.getEngagedSlates().each(((t,e)=>{this.#o(this.#t(e))}))}disengageAll(){this.disengageAllSlates(),this.disengageAllButtons()}getEngagedSlates(){const t=`#${this.#e} .${c}.${h}`;return this.#t(t)}focusInEngagedSlate(t){const e=function(t,e){let n=t.parentElement;for(;n&&!n.classList.contains(e);)n=n.parentElement;return n||console.warn(`No parent element with class "${e}" found.`),n}(t,o);if(e){const t=e.querySelector(`.${c}.${h}`);if(t){const e=t.querySelector("input, button");e&&e.focus()}}}init(){this.#l(),this.#u(),this.#s()?this.#c():this.#h(),this.#t(`.${o}`).css("visibility","visible"),this.#t(`#${this.#e} .${r}`).children(`.${c}`).attr("aria-hidden",!0)}#c(){this.#g(),this.#d().hide(),this.getMoreButton().show(),this.#f()}#h(){this.getMoreButton().hide(),this.#d().show()}#l(){if(0===this.getMoreButton().length){const t=this.#t(`#${this.#e}.${o}`).find(".btn, .il-link").last();this.#t(t).addClass(l)}}#u(){if(0===this.#y().length){const t=this.#t(`#${this.#e} .${r}`).children(`.${c}`).last();this.#t(t).addClass(u)}}getMoreButton(){return this.#t(`.${l}`)}#y(){return this.#t(`.${u}`)}#d(){return this.#t(`#${this.#e}.${o}`).children("li").children(".btn, .il-link").not(`.${l}`)}#g(){const t=this.#y().children(".il-maincontrols-slate-content");0===t.children().length&&this.#d().clone(!0,!0).appendTo(t)}#f(){const t=this.#a.getCounterObjectOrNull(this.#y());t&&this.#a.getCounterObject(this.getMoreButton()).setNoveltyTo(t.getNoveltyCount()).setStatusTo(t.getStatusCount())}}const f="engaged",y="disengaged";function S(t){return t.hasClass(f)}function m(t){t.removeClass(y),t.addClass(f),t.attr("aria-expanded","true"),t.attr("aria-hidden","false")}function b(t){t.removeClass(f),t.addClass(y),t.attr("aria-expanded","false"),t.attr("aria-hidden","true")}function p(t){S(t)?b(t):m(t)}var C=function(t){var e="il-counter",n={getCounterObject:function(t){let e;return e=s(t),console.assert(e.length>0,"Passed jQuery Object does not contain a counter"),a(e)},getCounterObjectOrNull:function(t){let e;return e=s(t),0===e.length?null:a(e)}},s=function(n){console.assert(n instanceof t,"$object_containing_counter is not a jQuery Object, param: "+n);var s=n;return n.hasClass(e)||(s=n.find("."+e)),s},a=function(e){return v.bind({})(e,t)};return n},v=function(t,e){const n=" Counter does not exist in the DOM. Make sure the respective Counter type has been rendered before applying this operations.",s=" is not a number";this.getStatusCount=function(){return r(o(t))},this.getNoveltyCount=function(){return r(i(t))},this.hasNoveltyObject=function(){return i(t).length>0},this.hasStatusObject=function(){return o(t).length>0},this.setNoveltyTo=function(e){console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s);var a=i(t);return a.html(e),0===e?a.hide():a.show(),this},this.setStatusTo=function(e){console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s);var a=o(t);return a.html(e),0===e?a.hide():a.show(),this},this.incrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()+e)}),t),this},this.decrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()-e)}),t),this},this.incrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()+e)}),t),this},this.decrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()-e)}),t),this},this.setTotalNoveltyToStatusCount=function(){return console.assert(this.hasStatusObject(),"Status "+n),console.assert(this.hasNoveltyObject(),"Novelty "+n),this.incrementStatusCount(this.getNoveltyCount()).setNoveltyTo(0)};var a={getNoveltyCount:this.getNoveltyCount,getStatusCount:this.getStatusCount,hasNoveltyObject:this.hasNoveltyObject,hasStatusObject:this.hasStatusObject,setNoveltyTo:this.setNoveltyTo,setStatusTo:this.setStatusTo,incrementNoveltyCount:this.incrementNoveltyCount,decrementNoveltyCount:this.decrementNoveltyCount,incrementStatusCount:this.incrementStatusCount,decrementStatusCount:this.decrementStatusCount,setTotalNoveltyToStatusCount:this.setTotalNoveltyToStatusCount},i=function(t){return t.find(".il-counter-novelty")},o=function(t){return t.find(".il-counter-status")},r=function(t){var n=0;return t.each((function(){var t=e(this).text();n+=parseInt(t)})),n},l=function(t,n){n.each((function(){var n=C(e).getCounterObject(e(this));t(n,e(this))}))};return a};s.default.UI=s.default.UI||{},s.default.UI.maincontrols=s.default.UI.maincontrols||{},s.default.UI.maincontrols.metabar=new class{#t;#S=[];#s;#a;#i;#o;constructor(t,e,n,s,a){this.#t=t,this.#s=e,this.#a=n,this.#i=s,this.#o=a}init(t){if(void 0!==this.#S[t])throw new Error(`Metabar with id '${t}' has already been initialized.`);this.#S[t]=new d(this.#t,t,this.#s,this.#a,this.#i,this.#o)}get(t){return this.#S[t]??null}disengageAll(){Object.values(this.#S).forEach((t=>t.disengageAll()))}}(a.default,s.default.UI.page.isSmallScreen,C(a.default),(()=>s.default.UI.maincontrols.mainbar.disengageAll()),(t=>s.default.UI.maincontrols.slate.disengage(t))),s.default.UI.maincontrols.slate=new class{#t;#m;#b;constructor(t,e,n){this.#t=t,this.#m=e,this.#b=n}onSignal(t,e,n,s){const a=this.#t(`#${s}`),{triggerer:i}=n,o=i.parents(".il-metabar-more-slate").length>0;if("toggle"===t)this.#p(a,i,o);else if("engage"===t)m(a);else{if("replace"!==t)throw new Error(`No such SignalType: ${t}`);this.#C(s,n)}}#p(t,e,n){const s=t.closest(".il-maincontrols-metabar").attr("id"),a=this.#b.get(s);e.attr("id")!==a.getMoreButton().attr("id")?(p(t),n||(S(t)?(e.addClass(f),e.removeClass(y),t.trigger("in_view")):(e.removeClass(f),e.addClass(y)))):a.getEngagedSlates().length>0?a.disengageAllSlates():p(t)}disengage=b;#C(t,e){const{url:n}=e.options;this.#m(t,n,"content")}}(a.default,function(t){return function(e,n,s){t.ajax({url:n,dataType:"html"}).done((function(n){var a=t("
    "+n+"
    "),i=a.find("[data-replace-marker='"+s+"']").first();0==i.length?t("#"+e+" [data-replace-marker='"+s+"']").html(n):(t("#"+e+" [data-replace-marker='"+s+"']").first().replaceWith(i),t("#"+e+" [data-replace-marker='"+s+"']").first().after(a.find("[data-replace-marker='script']")))}))}}(a.default),s.default.UI.maincontrols.metabar)}(il,$); diff --git a/public/components/ILIAS/UI/src/templates/js/Tree/tree.js b/public/components/ILIAS/UI/src/templates/js/Tree/tree.js deleted file mode 100755 index bce8245b069d..000000000000 --- a/public/components/ILIAS/UI/src/templates/js/Tree/tree.js +++ /dev/null @@ -1,535 +0,0 @@ -il = il || {}; -il.UI = il.UI || {}; - -(function($, UI) { - UI.tree = (function($) { - var toogle_node_actions = []; - - this.init = function (component_id, highlight_nodes) { - var tree_dom = document.querySelector('#' + component_id); - initNodesForActions($(tree_dom)); - var tree = new TreeLinks(tree_dom); - tree.init(); - } - - this.registerToggleNodeAsyncAction = function (id, action, state_param) { - action += (action.indexOf("?") !== -1 ? "&" : "?") + encodeURIComponent(state_param) + "="; - toogle_node_actions[id] = action; - } - - this.toggleNodeState = function (id, was_expanded) { - var action = toogle_node_actions[id]+was_expanded; - - $.ajax({ - type: 'POST', - url: action - }); - } - - /** - * Interface returned by this function for public use (see return statement bellow) - * The contained functions are implemented bellow - */ - var public_interface = { - init: this.init, - registerToggleNodeAsyncAction: this.registerToggleNodeAsyncAction, - toggleNodeState: this.toggleNodeState - } - - /** - * @private - */ - var initNodesForActions = function (tree_dom) { - tree_dom.find('.c-tree__node .c-tree__node__line .tree__node__line a').click( - function(e) { - let href = $(this).attr('href'); - - if (typeof href === typeof undefined || href === false || href === "#") { - return false; - } - - // Don't propagate event to prevent expanding the node on click - e.stopPropagation(); - } - ); - } - - /** - * The following section contains helper functions and scopes to deal with the keyboard handling as specified in: - * https://www.w3.org/TR/wai-aria-practices/examples/treeview/treeview-2/treeview-2a.html . The code has been - * heavily adapted to fit into the context of trees in ILIAS including async loading. The original version is licensed - * according to the W3C Software License at https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document - * - * Note that the in the following code is only used internally by UI.tree - */ - - /** - * @private - */ - var TreeLinks = function (node) { - this.domNode = node; - - this.treeitems = []; - this.firstChars = []; - - this.firstTreeitem = null; - this.lastTreeitem = null; - - }; - - TreeLinks.prototype.init = function () { - // Check whether node is a DOM element - if (!this.domNode) { - return; - } - let items = []; - let chars = []; - this.findAndInitItems(this.domNode, this, false, items, chars); - this.treeitems = items; - this.firstChars = chars; - - this.updateVisibleTreeitems(); - - this.firstTreeitem.domNode.tabIndex = 0; - - }; - - TreeLinks.prototype.insert = function (self, currentItem) { - let items = []; - let chars = []; - self.findAndInitItems(currentItem.domNode, self, false,items,chars); - let current_index = self.getIndexOfItem(self,currentItem); - - items.forEach(function(item,id){ - self.treeitems.splice(current_index+1,0,item); - self.firstChars.splice(current_index+1,0,chars[id]); - current_index++; - }); - }; - - TreeLinks.prototype.findAndInitItems = function findTreeitems (node, tree, group,items,chars) { - var elem = node.firstElementChild; - var ti = group; - - while (elem) { - let is_valid_list_item = (elem.tagName.toLowerCase() === 'li' - && elem.firstElementChild.tagName.toLowerCase() === 'span' - && elem.getAttribute("role")!="none"); - let is_link = elem.tagName.toLowerCase() === 'a'; - if (is_valid_list_item || is_link) { - ti = new TreeitemLink(elem, tree, group); - ti.init(); - items.push(ti); - chars.push(ti.label.substring(0, 1).toLowerCase()); - } - - if (elem.firstElementChild) { - tree.findAndInitItems(elem, tree, ti,items,chars); - } - - elem = elem.nextElementSibling; - } - } - - TreeLinks.prototype.getIndexOfItem = function (tree, treeitem){ - let index_of_item = undefined; - tree.treeitems.forEach(function(item, id){ - if (item === treeitem) { - index_of_item = id; - } - }); - return index_of_item; - } - - - TreeLinks.prototype.setFocusToItem = function (treeitem) { - this.treeitems.forEach(function(item, id){ - if (item === treeitem) { - item.domNode.tabIndex = 0; - item.domNode.focus(); - } - else { - item.domNode.tabIndex = -1; - } - }); - }; - - TreeLinks.prototype.setFocusToNextItem = function (currentItem) { - let next_index = this.getIndexOfItem(this,currentItem)+1; - while(next_index < this.treeitems.length){ - let nextItem = this.treeitems[next_index]; - if(nextItem.isVisible){ - this.setFocusToItem(nextItem); - return; - } - next_index++; - } - }; - - TreeLinks.prototype.setFocusToPreviousItem = function (currentItem) { - let prev_index = this.getIndexOfItem(this,currentItem)-1; - while(prev_index >= 0){ - let prevItem = this.treeitems[prev_index]; - if(prevItem.isVisible){ - this.setFocusToItem(prevItem); - return; - } - prev_index--; - } - }; - - TreeLinks.prototype.setFocusToParentItem = function (currentItem) { - if (currentItem.groupTreeitem) { - this.setFocusToItem(currentItem.groupTreeitem); - } - }; - - TreeLinks.prototype.setFocusToFirstItem = function () { - this.setFocusToItem(this.firstTreeitem); - }; - - TreeLinks.prototype.setFocusToLastItem = function () { - this.setFocusToItem(this.lastTreeitem); - }; - - TreeLinks.prototype.expandTreeitem = function (currentItem) { - if (currentItem.isExpandable) { - currentItem.domNode.setAttribute('aria-expanded', true); - if(currentItem.domNode.getAttribute('data-async_loaded') === "false"){ - this.loadSubTreeAsync(this,currentItem); - }else{ - this.updateVisibleTreeitems(); - } - il.UI.tree.toggleNodeState(currentItem.domNode.id,0); - } - }; - - TreeLinks.prototype.loadSubTreeAsync = function (tree, currentItem){ - $.ajax({ - url: currentItem.domNode.getAttribute('data-async_url'), - dataType: 'html' - }).done( - function(html) { - currentItem.domNode.setAttribute('data-async_loaded', "true"); - - if(!html) { - currentItem.domNode.classList.remove('expandable'); - currentItem.domNode.removeAttribute('data-async_loaded'); - } - $(currentItem.domNode).children('ul').append(html); - tree.insert(tree, currentItem); - tree.updateVisibleTreeitems(); - } - ); - } - - TreeLinks.prototype.expandAllSiblingItems = function (currentItem) { - let self = this; - self.treeitems.forEach(function(item){ - if ((item.groupTreeitem === currentItem.groupTreeitem) && item.isExpandable) { - self.expandTreeitem(item); - } - }); - }; - - TreeLinks.prototype.collapseTreeitem = function (currentItem) { - - var groupTreeitem = false; - - if (currentItem.isExpanded()) { - groupTreeitem = currentItem; - } - else { - groupTreeitem = currentItem.groupTreeitem; - } - - if (groupTreeitem) { - groupTreeitem.domNode.setAttribute('aria-expanded', false); - this.updateVisibleTreeitems(); - this.setFocusToItem(groupTreeitem); - il.UI.tree.toggleNodeState(groupTreeitem.domNode.id,1); - } - }; - - TreeLinks.prototype.updateVisibleTreeitems = function () { - - this.firstTreeitem = this.treeitems[0]; - - for (var i = 0; i < this.treeitems.length; i++) { - var ti = this.treeitems[i]; - - var parent = ti.domNode.parentNode; - - ti.isVisible = true; - - while (parent && (parent !== this.domNode)) { - - if (parent.getAttribute('aria-expanded') == 'false') { - ti.isVisible = false; - } - parent = parent.parentNode; - } - - if (ti.isVisible) { - this.lastTreeitem = ti; - } - } - - }; - - TreeLinks.prototype.setFocusByFirstCharacter = function (currentItem, char) { - var start, index, char = char.toLowerCase(); - - // Get start index for search based on position of currentItem - start = this.treeitems.indexOf(currentItem) + 1; - if (start === this.treeitems.length) { - start = 0; - } - - // Check remaining slots in the menu - index = this.getIndexFirstChars(start, char); - - // If not found in remaining slots, check from beginning - if (index === -1) { - index = this.getIndexFirstChars(0, char); - } - - // If match was found... - if (index > -1) { - this.setFocusToItem(this.treeitems[index]); - } - }; - - TreeLinks.prototype.getIndexFirstChars = function (startIndex, char) { - for (var i = startIndex; i < this.firstChars.length; i++) { - if (this.treeitems[i].isVisible) { - if (char === this.firstChars[i]) { - return i; - } - } - } - return -1; - }; - - /** - * @private - */ - var TreeitemLink = function (node, treeObj, group) { - - // Check whether node is a DOM element - if (typeof node !== 'object') { - return; - } - - node.tabIndex = -1; - this.tree = treeObj; - this.groupTreeitem = group; - this.domNode = node; - this.label = node.textContent.trim(); - this.stopDefaultClick = false; - - if (node.getAttribute('aria-label')) { - this.label = node.getAttribute('aria-label').trim(); - } - - this.isExpandable = false; - this.isVisible = false; - this.inGroup = false; - - if (group) { - this.inGroup = true; - } - - var elem = node.firstElementChild; - - while (elem) { - - if (elem.tagName.toLowerCase() == 'ul') { - elem.setAttribute('role', 'group'); - this.isExpandable = true; - break; - } - - elem = elem.nextElementSibling; - } - - - if(node.getAttribute("data-async_loaded") !== null){ - this.isExpandable = true; - } - - this.keyCode = Object.freeze({ - RETURN: 13, - SPACE: 32, - PAGEUP: 33, - PAGEDOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40 - }); - }; - - TreeitemLink.prototype.init = function () { - this.domNode.tabIndex = -1; - - if (!this.domNode.getAttribute('role')) { - this.domNode.setAttribute('role', 'treeitem'); - } - - this.domNode.addEventListener('keydown', this.handleKeydown.bind(this)); - this.domNode.addEventListener('click', this.handleClick.bind(this)); - }; - - TreeitemLink.prototype.isExpanded = function () { - if (this.isExpandable) { - return this.domNode.getAttribute('aria-expanded') === 'true'; - } - - return false; - - }; - - TreeitemLink.prototype.handleKeydown = function (event) { - var tgt = event.currentTarget, - flag = false, - char = event.key, - clickEvent; - - function isPrintableCharacter (str) { - return str.length === 1 && str.match(/\S/); - } - - function printableCharacter (item) { - if (char == '*') { - item.tree.expandAllSiblingItems(item); - flag = true; - } - else { - if (isPrintableCharacter(char)) { - item.tree.setFocusByFirstCharacter(item, char); - flag = true; - } - } - } - - this.stopDefaultClick = false; - - if (event.altKey || event.ctrlKey || event.metaKey) { - return; - } - - if (event.shift) { - if (event.keyCode == this.keyCode.SPACE || event.keyCode == this.keyCode.RETURN) { - event.stopPropagation(); - this.stopDefaultClick = true; - } - else { - if (isPrintableCharacter(char)) { - printableCharacter(this); - } - } - } - else { - switch (event.keyCode) { - case this.keyCode.SPACE: - case this.keyCode.RETURN: - if (this.isExpandable) { - if (this.isExpanded()) { - this.tree.collapseTreeitem(this); - } - else { - this.tree.expandTreeitem(this); - } - flag = true; - } - else { - event.stopPropagation(); - this.stopDefaultClick = true; - } - break; - - case this.keyCode.UP: - this.tree.setFocusToPreviousItem(this); - flag = true; - break; - - case this.keyCode.DOWN: - this.tree.setFocusToNextItem(this); - flag = true; - break; - - case this.keyCode.RIGHT: - if (this.isExpandable) { - if (this.isExpanded()) { - this.tree.setFocusToNextItem(this); - } - else { - this.tree.expandTreeitem(this); - } - } - flag = true; - break; - - case this.keyCode.LEFT: - if (this.isExpandable && this.isExpanded()) { - this.tree.collapseTreeitem(this); - flag = true; - } - else { - if (this.inGroup) { - this.tree.setFocusToParentItem(this); - flag = true; - } - } - break; - - case this.keyCode.HOME: - this.tree.setFocusToFirstItem(); - flag = true; - break; - - case this.keyCode.END: - this.tree.setFocusToLastItem(); - flag = true; - break; - - default: - if (isPrintableCharacter(char)) { - printableCharacter(this); - } - break; - } - } - - if (flag) { - event.stopPropagation(); - event.preventDefault(); - } - }; - - TreeitemLink.prototype.handleClick = function (event) { - if (event.target !== this.domNode - && event.target !== this.domNode.firstElementChild - && this.domNode.getAttribute("data-async_loaded") !== undefined) { - return; - } - - if (this.isExpandable) { - if (this.isExpanded()) { - this.tree.collapseTreeitem(this); - } - else { - this.tree.expandTreeitem(this); - } - } - }; - - /** - * End of section concerning keyboard handling for wcag specs. - */ - return public_interface; - })($); -})($, il.UI); \ No newline at end of file diff --git a/public/components/ILIAS/WebAccessChecker/web_access_attach.php b/public/components/ILIAS/WebAccessChecker/web_access_attach.php deleted file mode 100755 index d24d9d290604..000000000000 --- a/public/components/ILIAS/WebAccessChecker/web_access_attach.php +++ /dev/null @@ -1,4 +0,0 @@ - li:before { @font-face { font-family: "Glyphicons Halflings"; - src: url("./fonts/bootstrap/glyphicons-halflings-regular.eot"); - src: url("./fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("./fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("./fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("./fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("./fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); + src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot"); + src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); } .glyphicon { position: relative; @@ -9849,7 +9844,6 @@ td.c-table-data__cell--highlighted { width: 5rem; } -/* Component parts from old delos.scss */ div#agreement { width: 100%; height: 375px; @@ -10542,7 +10536,6 @@ div.il_info { border-color: #dddddd; } -/* Adapted from Bootstrap 3 */ .fade { opacity: 0; -webkit-transition: opacity 0.15s linear; @@ -11175,7 +11168,6 @@ tbody.collapse.in { clip: auto; } -/* Legacy Modules & Services */ /* Modules/Bibliographic */ span.bibl_text_inline_Emph { font-style: italic; @@ -18538,6 +18530,13 @@ img.ilUserXXSmall { outline: 3px solid #0078D7; } +/* +* Components +*/ +/* UI Framework */ +/* Component parts from old delos.scss */ +/* Adapted from Bootstrap 3 */ +/* Legacy Modules & Services */ /* These classes are used to limit the number of rows when displaying larger chunks of text. The mixin receives $height-in-rows as an integer. The classes il-multi-line-cap-2,3,5,10 diff --git a/templates/default/delos.css.map b/templates/default/delos.css.map index 07353f682527..7beb26d85b2d 100644 --- a/templates/default/delos.css.map +++ b/templates/default/delos.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["020-dependencies/_index.scss","020-dependencies/modifications/datetimepicker/bootstrap-datetimepicker.scss","030-tools/_tool_browser-prefixes.scss","010-settings/_settings_typography.scss","030-tools/_tool_screen-reader-only.scss","010-settings/_settings_borders.scss","010-settings/_settings_color-palette.scss","010-settings/_settings_button.scss","010-settings/legacy-settings/_legacy-settings_menu.scss","070-components/UI-framework/Dropdown/_ui-component_dropdown.scss","030-tools/legacy-bootstrap-mixins/_nav-divider.scss","050-layout/basics/_layout_spacing-variables.scss","020-dependencies/modifications/_jquery-autocomplete.scss","020-dependencies/modifications/_additions_tinymce.scss","020-dependencies/modifications/_additions_yui2.scss","040-normalize/_index.scss","040-normalize/_normalize_print.scss","040-normalize/_normalize_typography.scss","040-normalize/_normalize_input.scss","040-normalize/_normalize_structure.scss","040-normalize/_normalize_table.scss","050-layout/_layout_grid.scss","050-layout/_layout_container.scss","050-layout/_layout_element-bar.scss","050-layout/_layout_visibility-utilities.scss","060-elements/_index.scss","060-elements/_elements_html-body.scss","060-elements/_elements_input.scss","010-settings/legacy-settings/_legacy-settings_form.scss","060-elements/_elements_lists.scss","060-elements/_elements_media.scss","060-elements/_elements_objects.scss","060-elements/_elements_tables.scss","060-elements/_elements_typography.scss","030-tools/_tool_focus-outline.scss","070-components/_index.scss","070-components/UI-framework/_ui-component_tooltip.scss","030-tools/_tool_typography-mixins.scss","070-components/UI-framework/Breadcrumbs/_ui-component_breadcrumbs.scss","050-layout/standardpage/_layout_standardpage.scss","070-components/UI-framework/Button/_ui-component_button.scss","030-tools/_tool_buttons.scss","070-components/UI-framework/Button/_ui-component_tag.scss","070-components/UI-framework/Button/_ui-component_toggle.scss","070-components/UI-framework/Card/_ui-component_card.scss","010-settings/legacy-settings/_legacy-settings_panel.scss","070-components/UI-framework/Chart/_ui-component_chart.scss","010-settings/legacy-settings/_legacy-settings_chart.scss","070-components/UI-framework/Counter/_ui-component_counter.scss","070-components/UI-framework/Deck/_ui-component_deck.scss","070-components/UI-framework/Divider/_ui-component_divider.scss","070-components/UI-framework/Dropzone/_ui-component_dropzone.scss","010-settings/legacy-settings/_legacy-settings_dropzone.scss","070-components/UI-framework/Entity/_ui-component_entity.scss","070-components/UI-framework/Input/_ui-component_tag.scss","070-components/UI-framework/Input/_ui-component_password.scss","070-components/UI-framework/Input/_ui-component_radio.scss","070-components/UI-framework/Input/_ui-component_multiselect.scss","070-components/UI-framework/Input/_ui-component_textarea.scss","070-components/UI-framework/Input/_ui-component_filter.scss","070-components/UI-framework/Input/_ui-component_duration.scss","070-components/UI-framework/Input/_ui-component_file.scss","010-settings/legacy-settings/_legacy-settings_ui-input-file.scss","070-components/UI-framework/Input/_ui-component_markdown.scss","070-components/UI-framework/Input/_ui-component_rating.scss","070-components/UI-framework/Input/_ui-component_input.scss","070-components/UI-framework/Item/_ui-component_item.scss","070-components/UI-framework/Launcher/_ui-component_launcher.scss","010-settings/legacy-settings/_legacy-settings_symbol.scss","070-components/UI-framework/Layout/_ui-component_standardpage.scss","010-settings/_settings_header.scss","010-settings/_settings_footer.scss","050-layout/standardpage/_layout_standardpage-mobile.scss","070-components/UI-framework/Layout/_ui-component_alignment.scss","070-components/UI-framework/Link/_ui-component_link.scss","070-components/UI-framework/Listing/_ui-component_properties.scss","030-tools/_tool_clearfix.scss","070-components/UI-framework/Listing/_ui-component_characteristic_value.scss","050-layout/basics/_layout_positioning.scss","070-components/UI-framework/Listing/_ui-component_workflow.scss","070-components/UI-framework/Listing/_ui-component_entitylisting.scss","070-components/UI-framework/MainControls/Slate/_ui-component_slate.scss","070-components/UI-framework/MainControls/_ui-component_metabar.scss","030-tools/_tool_multi-line-cap.scss","070-components/legacy/_component_screen-reader-only.scss","070-components/UI-framework/MainControls/_ui-component_mainbar.scss","070-components/UI-framework/MainControls/_ui-component_footer.scss","070-components/UI-framework/MainControls/_ui-component_mode_info.scss","070-components/UI-framework/MainControls/_ui-component_system_info.scss","070-components/UI-framework/Menu/_ui-component_drilldown.scss","070-components/UI-framework/MessageBox/_ui-component_messagebox.scss","070-components/UI-framework/Modal/_ui-component_modal.scss","070-components/UI-framework/Panel/_ui-component_panel.scss","030-tools/_tool_border-radius.scss","050-layout/_layout_breakpoints.scss","070-components/UI-framework/Player/_ui-component_player.scss","020-dependencies/modifications/webui-popover/jquery.webui-popover.scss","070-components/UI-framework/Popover/_ui-component_popover.scss","070-components/UI-framework/Symbol/_ui-component_icon.scss","070-components/UI-framework/Symbol/_ui-component_glyph.scss","070-components/UI-framework/Symbol/_ui-component_avatar.scss","070-components/UI-framework/Table/_ui-component_table.scss","030-tools/_tool_highlighted-box.scss","070-components/UI-framework/Toast/_ui-component_toast.scss","070-components/UI-framework/Tree/_ui-component_tree.scss","010-settings/legacy-settings/_legacy-settings_tree.scss","070-components/UI-framework/ViewControl/_ui-component_viewcontrol.scss","070-components/legacy/_component_agreement.scss","070-components/legacy/_component_alert.scss","070-components/legacy/_component_bottom-center-area.scss","070-components/legacy/_component_headline.scss","070-components/legacy/_component_helpsidebar.scss","070-components/legacy/_component_icon.scss","070-components/legacy/_component_LeftNavSpace.scss","070-components/legacy/_component_link.scss","070-components/legacy/_component_map.scss","070-components/legacy/_component_media-object.scss","070-components/legacy/_component_overlay.scss","070-components/legacy/_component_rightPanel.scss","070-components/legacy/_component_delostable.scss","070-components/legacy/_component_well.scss","070-components/legacy/_component_php.scss","070-components/legacy/_component_animated-collapse-fade.scss","070-components/legacy/_component_btn-group.scss","050-layout/_layout_responsive-img.scss","070-components/legacy/_component_carousel.scss","070-components/legacy/_component_input-group.scss","070-components/legacy/Modules/_component_bibliographic.scss","070-components/legacy/Modules/_component_blog.scss","070-components/legacy/Modules/_component_bookingmanager.scss","070-components/legacy/Modules/_component_chatroom.scss","070-components/legacy/Modules/_component_course.scss","070-components/legacy/Modules/_component_datacollection.scss","070-components/legacy/Modules/_component_excercise.scss","070-components/legacy/Modules/_component_forum.scss","070-components/legacy/Modules/_component_learningmodule.scss","070-components/legacy/Modules/_component_learningsequence.scss","070-components/legacy/Modules/_component_lticonsumer.scss","070-components/legacy/Modules/_component_mediacast.scss","070-components/legacy/Modules/_component_mediapool.scss","070-components/legacy/Modules/_component_orgunit.scss","070-components/legacy/Modules/_component_poll.scss","070-components/legacy/Modules/_component_portfolio.scss","070-components/legacy/Modules/_component_scormaicc.scss","070-components/legacy/Modules/_component_survey.scss","070-components/legacy/Modules/_component_test_legacy.scss","070-components/legacy/Modules/_component_test.scss","070-components/legacy/Modules/_component_wiki.scss","070-components/legacy/Modules/_component_workspacefolder.scss","070-components/legacy/Modules/_component_studyprogramme.scss","070-components/legacy/Services/_component_accesscontrol.scss","070-components/legacy/Services/_component_accordion.scss","070-components/legacy/Services/_component_awareness.scss","070-components/legacy/Services/_component_badge.scss","070-components/legacy/Services/_component_block.scss","070-components/legacy/Services/_component_bookmarks.scss","070-components/legacy/Services/_component_calendar.scss","070-components/legacy/Services/_component_chart.scss","070-components/legacy/Services/_component_container.scss","070-components/legacy/Services/_component_copage.scss","070-components/legacy/Services/_component_fileupload.scss","070-components/legacy/Services/_component_form.scss","070-components/legacy/Services/_component_help.scss","070-components/legacy/Services/_component_infoscreen.scss","070-components/legacy/Services/_component_init.scss","070-components/legacy/Services/_component_learninghistory.scss","070-components/legacy/Services/_component_like.scss","070-components/legacy/Services/_component_mail.scss","070-components/legacy/Services/_component_mediaobjects.scss","070-components/legacy/Services/_component_membership.scss","070-components/legacy/Services/_component_navigation.scss","070-components/legacy/Services/_component_news.scss","070-components/legacy/Services/_component_notes.scss","070-components/legacy/Services/_component_object.scss","070-components/legacy/Services/_component_onscreenchat.scss","070-components/legacy/Services/_component_rating.scss","070-components/legacy/Services/_component_search.scss","070-components/legacy/Services/_component_skill.scss","070-components/legacy/Services/_component_style.scss","070-components/legacy/Services/_component_table.scss","070-components/legacy/Services/_component_tags.scss","070-components/legacy/Services/_component_termsofservice.scss","070-components/legacy/Services/UIComponent/_component_advancedselectionlist.scss","070-components/legacy/Services/UIComponent/_component_checklist.scss","070-components/legacy/Services/UIComponent/_component_explorer2.scss","070-components/legacy/Services/UIComponent/_component_groupedlist.scss","070-components/legacy/Services/UIComponent/_component_lightbox.scss","070-components/legacy/Services/UIComponent/_component_modal.scss","070-components/legacy/Services/UIComponent/_component_progressbar.scss","070-components/legacy/Services/UIComponent/_component_tabs.scss","070-components/legacy/Services/UIComponent/_component_toolbar.scss","010-settings/_settings_layout.scss","070-components/legacy/Services/UIComponent/_component_tooltip.scss","070-components/legacy/Services/_component_user.scss","070-components/legacy/Services/_component_webdav.scss","080-hacks/_index.scss","050-layout/_layout_pull-float.scss"],"names":[],"mappings":"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D;AACA;EACC;;;AEjFD;EACC;EACA;EACA,YhCoBY;;AgClBZ;EACC;EACA;EACA;EACA;EACA;EACA;EACA,anCwBuB;EmCvBvB,WnCHoB;EmCIpB;EACA,cCNiC;;ADQjC;EACC,OhChBa;;AgCiBb;EACC,OhC2BkB;;A4BfrB;EACC,SAjCuB;EAkCvB;;AAEC;EACC;;AIZF;EACC,SCYsC;EDXtC,OhCPsB;EgCQtB;EACA;;;AA4BH;AAEA;EACC;EACA,WnCnDqB;;AmCqDrB;EACC;;AAGD;EARD;IASE;IACA;;;;AAIF;AACA;EACC;;AAEA;EACC;;AAED;EACC;EACA,OhC9DuB;EgC+DvB,SC7CuC;ED8CvC;;;AEpDF;AAAA;ECmFY;EACA;EAQJ;EACA;EACA,QA3BW;EA4BX;EACA;EAGA,atChIoB;EsCiIpB;EACA,aD3HQ;EC4HR;EACA,atCrGiB;EsCsGjB,iBDlIY;ECsIZ,YbzGc;Ea6GV,Wb7GU;Ea+Gd,WtCxIc;EsC0Id;EACA,K9BnIsB;;A8BqGtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,aAfa;;;ADpEvB;AAAA;AAAA;AAAA;EAEE;;;AAKJ;AAAA;EACE,WZb0B;;AYe1B;EAHF;AAAA;IAII;;;;AAIJ;ECwFQ,YbzGc;Ea6GV,Wb7GU;Ea+Gd,WtCxIc;EsC0Id;EACA,K9BnIsB;E8BwItB,kBnCxJQ;EmCyJR,OlCnJgB;EkCoJhB,cDpJS;ECqJT;EACA,cnC5JQ;EmC8JJ,epC5JY;;AoCgKhB;EACI,iBD/JQ;ECiKR,kBArGS;EAsGT,OlChKY;EkCiKZ,cDjKK;ECkKL;EACA,cAzGS;;APlCpB;EACC,SAjCuB;EAkCvB;;AOgJM;EACI,WDjKgB;ECmKhB,kBAvGU;EAwGV,OlC9KY;EkC+KZ,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;AAAA;EAEI,kBlC1JS;EkC2JT,cDxLK;ECyLL;EACA,clC5Ja;EkC6Jb,OlC/JY;EkCgKZ,QA7FU;EA8FV;;AAqBJ;EACI,kBlCpMQ;EkCqMR,cDzJe;EC0Jf;EACA,cnC5NI;EmC6NJ,OnC9LI;;;AkC0ChB;ECiEQ,YbzGc;Ea6GV,Wb7GU;Ea+Gd,WtCxIc;EsC0Id;EACA,K9BnIsB;E8BwItB,kBlCzIY;EkC0IZ,OlC5Ie;EkC6If,cDpJS;ECqJT;EACA,clC3IgB;EkC6IZ,epC5JY;;AoCgKhB;EACI,iBD/JQ;ECiKR,kBArGS;EAsGT,OlCzJW;EkC0JX,cDjKK;ECkKL;EACA,cAzGS;;APlCpB;EACC,SAjCuB;EAkCvB;;AOgJM;EACI,WDjKgB;ECmKhB,kBAvGU;EAwGV,OlCvKW;EkCwKX,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;EAEI,kBlC1JS;EkC2JT,cDxLK;ECyLL;EACA,clC5Ja;EkC6Jb,OlC/JY;EkCgKZ,QA7FU;EA8FV;;AAqBJ;EACI,kBlCpMQ;EkCqMR,cDlIe;ECmIf;EACA,clC3MY;EkC4MZ,OnC9LI;;;AkC4DhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECsBY;EACA;EAQJ;EACA;EACA,QA3BW;EA4BX;EACA;EAGA,atChIoB;EsCiIpB;EACA,aD3HQ;EC4HR;EACA,atCrGiB;EsCsGjB,iBDlIY;ECsIZ,YlC5GmB;EkCgHf,WlChHe;EkCkHnB,WtCxIc;EsC0Id;EACA,K9BnIsB;E8BwItB,kBnC5HU;EmC6HV,OnCzJQ;EmC0JR,cDpJS;ECqJT;EACA,cnChIU;EmCkIN,epCvJuB;;AoC8G3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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;EACA;;AAEA;EACE,OCdgC;;ADiBlC;EACE;EACA,WClD+B;EDmD/B,WCjD+B;EDkD/B;EACA;;AAEA;EACE;EACA;EACA,WC1D6B;ED2D7B,YCzD6B;;AD2D7B;EACE,QClD0B;EDmD1B;EACA,cC5DiC;ED6DjC;;AAGF;EACE;EACA;;AAGA;EACE,cClEkC;;ADsEpC;EACE,cCrEiC;;ADyErC;EACE,QChE4B;;ADkE9B;EACE,QCrEyB;;ADuE3B;EACE,QCpE4B;;ADsE9B;EACE,QCrEwB;;ADwE1B;EACE;;AAGA;EACE,W3CnGa;E2CoGb,a3CxEe;E2C0Ef,MC9EgC;;ADgFlC;EACE;EACA,MClFgC;;ADoFlC;AAAA;EAEE;EACA,MCrF+B;;ADyFnC;EAEE;;AAEA;EACE,QC1GmC;ED2GnC;;AAEF;EACE,MChH4B;EDiH5B;;AAIJ;EACE;;AAOJ;EACE,WC1GkC;ED2GlC,WCzGkC;;AD2GlC;EACE,WC9GgC;ED+GhC,YC7GgC;;AD+GhC;EACE,QC1G6B;ED2G7B,cC/IoC;;ADkJtC;EACE,cCnJoC;;ADsJtC;EACE,QC/G+B;;ADiHjC;EACE,QChH4B;;ADmH9B;EACE,QCxHiC;EDyHjC;EACA,cC9HwC;ED+HxC;EAEA;;AAEF;EACE;;;AAQV;AACA;AACA;AACA;EACE,anCxL4B;EmCyL5B,gBnCzL4B;;;AmC4L9B;EACE,anC7L4B;EmC8L5B,gBnC9L4B;;;AqCa9B;EACE;EACA,W7CbqB;E6CcrB,aAjBuB;EAkBvB;EACA;EACA;EACA;EACA,O1CJW;E0CKX;EACA,e3CpBiC;;A2CqBjC;EACE;;;AAIJ;EACE;EACA,W7CzBqB;;;A6C4BvB;EACE,SAtCmB;EAuCnB;EACA,KA1BgC;EA2BhC,kB1ClCiB;;;A0CoCnB;EACE,SA5CmB;EA6CnB;EACA,QAtCkC;EAuClC,kB1C9BuB;;;A0CkCvB;EACA,aAlDuB;EAmDvB,W7ChDqB;E6CiDrB,SAtDmB;EAuDnB;;;AC3DA;EACE;EACA;EACA,etCS0B;;AsCP1B;EACE,ctCgBqB;EsCfrB,etCeqB;EsCdrB,etCFsB;;AsCMtB;EACE;;AAGF;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EACA,WlE5GqB;EkE6GrB;EACA;EACA,O/D5Fe;;;A+D+FhB;EACC;;;AAGD;EACC;EACA;EACA,SAjIsC;;;AAqIvC;EACC;EACA;EACA;EACA;EACA,O9B/HsB;;A8BsIvB;EACC;EACA;EACA,SAnJiC;;;AAuJlC;EACC;EACA;;;AAID;EACC;;;AAGD;EAIC;EACA;EACA;;AALA;EACC;;AAKD;EACI;EACA;;;AAIL;AACA;EACC,kB/DhKY;E+DiKZ;EACA;EACA,QE1LkB;;;AF8LnB;AAAA;AAAA;AAAA;AAAA;AASC;EADD;IAEE;;;;AAGF;EAEE;IACC;;;AAKH;EAEE;IACC;;EAED;AAAA;IAEC;IACA;;;AAKH;EAEC;IACC,Y/D5MW;I+D6MX;IACA;IACA;;EACA;IACC;IACA;IACA,SApOoC;IAqOpC;;EACA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAED;IACC;IACA;IACA;IACA;IACA,Y9B7MmB;;E8B+MpB;IACC;IACA;IACA;IACA;;EAIH;IACC;IACA;;EACA;IACC;IACA;IACA;IACA;IACA;;EACA;IACC;IACG;IACH;IACA;IACA;IACA;;EACA;IACC,Y9BxOkB;;E8B2OnB;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SA7RmC;;EA8RnC;IACC;;EAIF;IAEC;;EAQL;IACC;IACA;IACA;IACA;IACA;;EAID;IACC;IACG,QGpUkC;IHqUlC;IACA;IACH,Y9BlRsC;;E8BsRvC;IACC,OG1UkC;;EH8UnC;IACC;;EAID;IACC;;EAGD;IACC;;EAEA;IACC;;EAED;IACC;IACA;;EAGD;IACC;IACA;IACA,O/DpVgB;I+DqVhB,WlEtVmB;IkEuVnB;IACA;IACA;IACA;;EACA;IACI;IACA;IACA,WlE9Ve;IkE+Vf,c1D7WW;;E0DiXhB;IACC;;EAED;AAAA;AAAA;AAAA;AAAA;AAAA;IAOC,Y/DpWU;I+DqWV,c/DrWU;I+DsWV,O/D9WgB;I+D+WhB;;EAGD;IACC;;EAKF;IACC;IACA;;EAID;IACC;IACA;IACA;IACA,YGpZsC;IH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EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AASX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AAMjD;EACC,O7F1Te;;A6F4Tf;EACC,O7FrTiB;;A6FsTjB;EACC,O7FvTgB;;A6F2TlB;EACC,O7FlTuB;E6FmTvB;;AAGD;EACC,O7F5RoB;E6F6RpB;;;AAKD;EACC;;;AAIF;AAAA;EAEC;;;AAGD;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAID;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;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ACA;EACA;;AACA;EACC,ctHTgB;;;AsHkBlB;EAHC;;;AAMD;EANC;;;AASD;EATC;;;AAYD;EAZC;;;AAeD;EAfC;;;AAkBD;EAlBC;;;AAqBD;EArBC;;;AAwBD;EAxBC;;;AA2BD;EA3BC;;;AAsCD;EANC;EACA;EACA;EAlCA;;;AAyCD;EATC;EACA;EACA;EAlCA;;;AA4CD;EAZC;EACA;EACA;EAlCA;;;AA+CD;EAfC;EACA;EACA;EAlCA;;;AAkDD;EAlBC;EACA;EACA;EAlCA;;;AAqDD;EArBC;EACA;EACA;EAlCA;;;AAwDD;EAxBC;EACA;EACA;EAlCA;;;AA2DD;EA3BC;EACA;EACA;EAlCA;;;AA8DD;EA9BC;EACA;EACA;EAlCA;;;AChBD;AAEA;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAKH;EAIC;EACA;EACA;EACA;;AANA;EACC;;;AAQF;EACC;IACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,O5HvDoB;E4HwDpB,W/HtFoB;E+HuFpB;EACA;EACA;;AAGD;EACC;EACA,O5HhEoB;E4HiEpB;EACA;EACA;;AAGD;EACC,kB5HtFgB;E4HuFhB;EACA,W/HvGoB;;A+H0GrB;EACC,O5HpFc;;A4HuFf;EACC,O5HnFoB;;A4HsFrB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,kB5HzGgB;;A4H4GjB;EACC;EACA;EhIzEA,oBgI0EA;EhIzEQ,YgIyER;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;;ACzKF;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,O7HmBe;E6HlBf;EACA;EACA;;;AAED;EACC;EACA,O7HYe;E6HXf;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC,WhIxCqB;;;AgI2CtB;EACC,WhIxCqB;EgIyCrB;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAID;AAEA;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EjIfE,oBiIgBD;EjIfS,YiIeT;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kB7H3EwB;;;A6H8EzB;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AC7GD;AAEA;EACC;;;AAGD;EACC;EACA,WjIIqB;;;AiIDtB;EACC;EACA,WjICsB;;;AiIEvB;EACE;;;AAGF;EACC,ajIewB;EiIdxB;EACA,WjIXqB;EiIYlB;EACA;;;AAGJ;EACE;;;AAGF;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AChDD;AAEA;EACC,c1HU+B;E0HT/B,e1HS+B;;;A0HNhC;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,WlIbqB;;;AkIgBtB;EACC;EACA;EACA;;;AAED;EACC,kB/HPiB;E+HQjB;;;AAGD;EACC;;AACA;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA,O/H7DwB;E+H8DxB;EACA;EACA;EACA;;;ACtFD;AAQA;EACC,anI0BwB;;;AmIvBzB;EACC,anIwBwB;;;AmIrBzB;EACC;EACA,anImBwB;;;AmIhBzB;EACC;EACA;EACA;EACA,WnIdqB;;;AmIiBtB;EACC,anIQwB;EmIPxB,WnInBqB;EmIoBrB;;;AAGD;AACA;EACC;EACA;EACA;EACA,kBhIfY;;;AgIkBb;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;;AAKH;EACC;EACA;EACA;EACA;;;AAGD;EACC,Y3HnD8B;E2HoD9B,WnIpDqB;;AmIqDrB;EAHD;IAIE,Y3H/D0B;I2HgE1B,WnIzDqB;;;;AmI6DvB;EACC,OhIlCqB;;;AgIqCtB;EACC;EACA;EACA;;AACA;EAJD;IAKE,c3HhE4B;I2HiE5B;;;AAGA;EADD;IAEE;IACA;;;;AAKH;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;;AAIF;EACC,Y3HrG8B;;;A2HwG/B;EACC;EACA,e3H1G8B;E2H2G9B;;AAEA;EACC,kBhIrGW;EgIsGX;;AAGD;EACC;EACA;;AACA;EACC;;AAED;EACC;;AAGA;EADD;IAEE;;;AAKF;EADD;IAEE;IACA;;;;AAKH;EAEE;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;;AAKH;EACC;EACA;EACA,anItJwB;EmIuJxB,OhIjLkB;;;AgIoLnB;EACC;EACA,anI5JwB;;AmI6JxB;EACC,anIhKuB;;AmIkKxB;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC,Y3HzM8B;;;A2H4M/B;EACC;;;AAGD;EACC,OhIrNkB;;;AgIwNnB;EACC,anI/LwB;;;AmIkMzB;EACC;EACA;EACA;EACA;EACA;EACA;EACA,OhI5Me;EgI6Mf;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;ACrQD;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;AACA;EACA,kBjINiB;EiIOjB;AACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAID;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AC7GD;EACI,kBlIqBS;EkIpBT,oB3FFc;E2FGd,Y3FHc;;A2FIjB;AAAA;EAEC;EACA;EACA;;;AAKD;EACC;;;AAGF;EACC;EACA,kBlIKiB;;AkIJjB;EACC;;AAED;EACC;;;AAMA;EACC;;;AAKH;EACC,kBlIbiB;;AkIejB;EACC;;;AAGF;AAEA;EACC;;;AClDD;AAUA;EACE;EACA;;;AAEF;EACE;EACA,SARmB;EASnB,OAfiB;EAgBjB,QAfkB;;;AAiBpB;ACpBA;EACE;;AACA;EACE;;;AAKF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAIA;EACE;EACA;EACA;;AAGF;EACE;EAIA;;AAHA;EACE;;AAKJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIA;EACE;;AAIJ;EACE;;;ACjEJ;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC,kBrIkBiB;EqIjBjB;;;AAGD;EACC;;;AChBC;EACD;EACA;EACA;;AAGC;EACD;;AAGC;EACD;EACA;;AAGC;EACD;EACA;;AAGC;EACD;EACA;EACA;;;AAID;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;ACtDF;AAEA;EACC;EACA,W1ISqB;E0IRrB,OvIQkB;;;AuILnB;EACC;EACA,W1IGqB;E0IFrB,OvIgCqB;;;AuI7BtB;EACC;EACA;EACA;EACA,W1ILqB;E0IMrB;;;AAGD;EACC;EACA;EACA;EACA,W1IbqB;E0IcrB,OvIgBqB;;;AuIbtB;EACC;EACA;;;AAGD;EACC;EACA,W1IxBqB;;;A0I2BtB;EACC;;;AAGD;EACC;EACA,W1IjCqB;;;A0IoCtB;EACC;;;AAGD;EACC,kBvIjDe;;;AuIoDhB;EACC;;;AAGD;EACC,W1I7CqB;;;A2IjBtB;AAEA;EACC;;AACA;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,W3IRqB;A2ISrB;;;AAGD;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EAKC;;AAJA;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;;;AC7DD;AAEA;EACC,OzIiCe;EyIhCf,kBzIwBiB;EyIvBjB;EACA;;;AAGD;EACC,kBzIkBiB;EyIjBjB,OzIyBe;EyIxBf;EACA;EACA;;;AAGD;EACC;EACA,OzIiBe;EyIhBf;EACA;EACA;;;ACpBD;AAEA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IAEC;IACA;AACA;AAAA;AAAA;;EAKD;IAEC;IACA;IACA;;EAGD;IAEC;IACA,erI9C4B;;EqIiD7B;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA,a7ItCuB;I6IuCvB;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA,a7I1EuB;I6I2EvB;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA;IACA,a7IjGuB;I6IkGvB;IACA;;;AAIF;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA,kB1I3IiB;E0I4IjB;;;AAGD;EACC;EACA;;;AAGD;EACC;;AACA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAMA;EACC;;;ACjMH;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EAEI;EACH;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAEI;EACA;EACA;;;AAGJ;EACC;EACA;EACA;EAEA,StIxH+B;;AsIyH/B;EACC,ctI1H8B;EsI2H9B,etI3H8B;;;AsI+HhC;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAEA;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EAEC;EACA;EACA;;;AAGD;EAEC;EACA;EACA;;;AAGD;EAEC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASI;;;AAEJ;AAAA;EAGI;;;AAEJ;EAEI;EACA;;;AAEJ;EAEI;EACA;EACA;;;AAKJ;EAEI;;;AAEJ;EAEI;;;AAEJ;AAAA;EAGI;;;AAGJ;EAEC;;;AAED;EAEC;;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BsJrBD;EtJsBS,YsJtBT;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA,kBlJrCY;;A4BjBZ;EACC;EACG;;AAEJ;EACC;EACA,SAZuB;EAavB;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA,QArBsB;EAsBtB,SAvBsB;;AsHkExB;EACC;EACA;;AAEA;EACC;EACA;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC,OlJ/CqB;EkJgDrB,WrJ9EqB;EqJ+ErB;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kBlJ9EiB;EkJ+EjB;EACA,WrJ/FqB;;;AqJkGtB;EACC,OlJ5Ee;;;AkJ+EhB;EACC,OlJ3EqB;;;AkJ8EtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;AACC;EACA;EACA;EACA;AACA;AACA;AACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAIA;EACC;EACA;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC,kBlJ9JiB;EkJ+JjB,OlJrJqB;;;AkJwJtB;EACC;;;AAGD;AACA;EACC;EACA;EACA;;;AAGD;EACC;;;ACjND;AAEA;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAIF;EACC;EACA;EACA;;;AAKD;EACC;EACA;EACA;;;ACnDF;AAEA;EACC;EACA;EACA;EACA,evJoByB;EuJnBzB;EACA;EACA;EACA,kBpJiBiB;EoJhBjB;EACA;EACA,S/IXiB;;;A+IclB;EACC,kBpJUiB;;;AoJPlB;AAAA;AAEC;EACA,avJewB;EuJdxB;EACA;EACA;EACA,OpJVkB;EoJWlB;AACA;;;AAGD;EACC,WvJnBsB;;;AuJsBvB;EACC,avJCwB;EuJAxB;EAC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AAA;AAAA;AAAA;AAAA;EAGC;;AAED;EACC;;;AAIF;EACC,kBzJ9JoB;;;AyJkKrB;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC,OzJtKkB;EyJuKlB;EACA,W5JxKqB;E4JyKrB;EACA;EACA,kBzJ5JiB;;;AyJgKlB;EACC;EACA;EACA;;;AAGD;EACC,czJ5LoB;;;AyJ+LrB;EAEC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC,kBzJxLY;EyJyLZ;EACA;EACA;EACA;EACA;EACA,W5JzMsB;E4J0MtB;;;AAGD;EACC;;;AAMD;EACC;EACA;;;AAGD;EACC,kBzJ/MY;EyJgNZ;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA,kBzJ9NY;;;AyJiOb;EACC;;;AAED;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;AACA;AACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;;AAIF;EACC;EACA,YzJjQY;EyJkQZ;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;AAGE;EACC;EACA;EACA;EACA;EACA;;AAED;EACC,OzJvRkB;EyJwRlB;;AAKF;EACC;;AAIF;EACC;;;AAOF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC,W5JzWqB;E4J0WrB;EACA,kBzJ5ViB;EyJ6VjB;EACA;;;AAGD;EACC;EACA,W5JhXsB;E4JiXtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC,kBzJrZY;EyJsZZ;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kBzJzbY;EyJ0bZ;EACA;EACA;EACA;;;AAGD;EACC,kBzJjcY;;;AyJocb;EACC;EACA,W5J/cqB;E4JgdrB;;;AAGD;EACC;EACA,kBzJ5cY;EyJ6cZ;EACA;;;AAGD;AAEA;EACC;EACA;;;AAGD;EACC,czJ9ee;;;AyJifhB;EACC,czJ1ekB;;;AyJ6enB;EACC,czJpfoB;;;AyJufrB;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,OzJreqB;;;AyJwetB;EACC,OzJzeqB;;;AyJ4etB;EACC;;;AAGD;EACC;;;AAGD;EACC,cpJlhB8B;EoJmhB9B,epJnhB8B;EoJohB9B;;AACA;EACC;;AAGA;EACC;EACA;EACA;EACA;EACA,kBzJ9gBe;EyJ+gBf;EACA;;AAIF;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA,W5JvjBqB;E4JwjBrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA,kBzJ1jBiB;EyJ2jBjB;;;AAGD;EACC,kBzJ1jBiB;;;AyJ6jBlB;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AAAA;AAAA;EAGC;;;AAGD;EACC;;;AAID;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AACA;EAHD;IAIE;;;AAIF;EACC,W5JtsBoB;E4JusBpB,YpJvsB6B;EoJwsB7B,epJjtB0B;;AoJotB3B;EACC;;AAED;EACC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C;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;ACnBD;AAEA;EACC;EACA;EACA;EACA;EACA;EACA,WvKGsB;;;AuKAvB;EACC;EACA;EACA;EACA;EACA;EACA,kBpKamB;;;AoKVpB;EACC;EACA;EACA;EACA;;;ACtBD;AAEA;EACC;;AACA;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;EACA;;AAED;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC,kBrKlBkB;EqKmBlB;EACA;EACA,WxKvBsB;EwKwBtB;EACA;EACA;;AACA;EACC;EACA;;;AAIF;AAEA;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA,kBtKpD0B;EsKqD1B;EACA;;AACA;EATD;IAUE;;;AAGF;EACC;EACA;EACA;;AACA;EACC;EACA;;AACA;EAHD;IAIE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;AAIH;EArBD;IAsBE;;;AAED;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;EACA;EACA;EACA,YrKvEe;EqKwEf,Q9H/Fe;;A8HgGf;EAPD;IAQE;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA,WxK9GoB;EwK+GpB;EACA;EACA;EACA,kBrK1GsB;EqK2GtB;EACA;EACA;EACA;;AACA;EAfD;IAgBE;IACA;IACA;;;AAED;EACC,WxK7HmB;;AwK+HpB;EACC,WxKpImB;;AwKsIpB;EACC;EACA;;AAGF;EACC;;AACA;EAFD;IAGE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAGF;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAKJ;EACC;EACA;;AAED;EACC,kBrK9JgB;;;AqKkKlB;AACC;AAAA;AAAA;;;AAKD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EALD;IAME;;;;AAIF;EACC;EACA;;AAEA;EAJD;IAKE;IACA;;;;AAIF;EACC;;AACA;EAFD;IAGE;;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;EACA;EzK9DC,oByK+DD;EzK9DM,eyK8DN;EzK7DS,YyK6DT;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AClRD;AAEA;AACI;;;AAEJ;EACI;;;AAEJ;EACC,kBtKeY;EsKdZ;;;AAGD;EACC,kBtKUY;;;AsKPb;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AACA;EACC;EACA;;;AAIF;EACC,WzKzBqB;EyK0BrB;;;AAGD;EACC,kBtKfiB;EsKgBjB;EACA;;AAEC;EACC;EACA;;;AAMF;EACC;;;AAIF;EACC;;;AAGD;EACC,WzKhDqB;EyKiDrB,OtK9Be;EsK+Bf;;;AAGD;EACC,WzKxDsB;EyKyDtB;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC;;;AAIF;EACC,ejKzF4B;;;AiK6F5B;EACC;EACA;;;AAIF;EACC,Y/H1GiB;;A+H2GjB;EACC;;;AAIF;EACC;;;ACtHD;AAcA;EACC;EACA;;;AAID;EACC,W1KVsB;E0KWtB;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC,exK7BgB;EwK8BhB,kBvKTY;;AuKUT;EACI;;;AAKR;EACI;;AAEI;EACI,kBvKpBC;;AuKuBD;EACI;;AAGA;EACI;;;ACtDpB;EACC;;;AAIA;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AACA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA,kBxKjCW;;AwKmCX;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA,kBxK1Ia;;AwK4Ib;EACC,W3K5JgB;E2K6JhB;EACA;;AAIF;EACC;EACA;;AAIA;EACC;EACA;EACA;;AAKD;EACC;EACA;;AAMA;EACC,W3K3LgB;;A2K+LlB;EACC;EACA,OxKjKgB;EwKkKhB,W3KhMgB;;A2KsMpB;EACC;EACA;EACA;;AAEA;EACC,W3K9MmB;E2K+MnB;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;;;AAOH;EACC;;AAED;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AChTD;AAEA;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACG;EACA;EACA;;;ACdH;EACC;;AACA;EACC,a7K+BuB;;;A6K1BxB;EACC;EACA;EACA,W7KGoB;E6KFpB;;AAED;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA,O1KCe;E0KAf;EACA;EACA;EACA;EACA;E9K8BC,oB8K7BE;E9K8BM,Y8K9BN;EACH;;;AAGD;EACC,kB1KlBiB;E0KmBjB;EACA,W7KrCsB;;A6KsCtB;EACC;;AAED;EACC;EA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A;IACC;;EAED;AAAA;AAAA;AAAA;IACC;;;AAGF;EAZD;AAAA;AAAA;AAAA;IAaE;IACA;;;;AAKD;EAFD;IAGE;;;AAED;EALD;IAME;;;AAED;EARD;IASE;;;;AAID;EADD;IAEE;IACA,kBhLvEW;;;;AgL2Eb;EACC;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;;AACA;EACC;;;AAOH;EACC;;;AC9HF;AAEA;EACC;EACA;EACA;;;AAGD;EACC;EACA,WpLGqB;;;AoLAtB;EACC;EACA;EACA;;;AAGD;EACC;EACA,OjLhBe;;;AiLmBhB;EACC,kBjLQiB;;;AiLLlB;EACC,OjLcqB;EiLbrB,WpLnBsB;EoLoBtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;ACzCD;AAEA;EACC;EACA,kBlLsBiB;;;AkLblB;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA,kBlLJiB;;;AkLOlB;EACC;EACA;EACA;EACA;EACA;EACA,arLFwB;EqLGxB,WrL7BqB;;;AqLgCtB;EACC,WrLjCqB;;;AqLoCtB;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAID;EACC,kBlLpCiB;EkLqCjB;;;AAGD;EACC;EACA;EACA;;;AAID;EACC;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC,WrLhFsB;EqLiFtB;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;EACA;EtL7CC,oBsL8CE;EtL7CM,YsL6CN;;;AAKJ;EACC;;;AAGD;AAAA;EAEC;EACA;EACA;EACA,OlLzFqB;EkL0FrB,enLtHkC;;;AmLyHnC;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACI;;;AAGJ;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC,arLrKqB;EqLsKrB;;;ACnLF;AAEA;EACC;EACG,OnL8BY;;;AmL3BhB;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA,WtLLqB;;;AsLQtB;EACC;EACA;;;AAGD;EACC;;;AC3BD;AAEA;EACC;EACA;EACA;EACA;EACA;EACA,kBpLUkB;EoLTlB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA,OpLkBe;EoLjBf;;;AAGD;EACC,OpLkBqB;EoLjBrB;;;AAGD;EACC;EACA;EACA;;;AAIA;EACC;EACA;;;ACpCF;AACA;EACC;EACA;;;AAGD;EACC;;;AAED;EACC,OrL0Be;;AqLtBd;EACC;;AAED;EACC;;;ACdH;EACC;EACA;EACA;;;AAGD;EACC,WzLEqB;EyLDrB;EACA;EACA;EACA,OtLemB;;;AsLZpB;EACC,kBtLZoB;;;AuLFrB;AAEA;EACC;EACA;EACA;EACA,eAPiB;;AASjB;EACC;EAEA;;AAGA;EACC;EACA;EACA,W1LPoB;E0LQpB,a1LGoB;E0LFpB;EACA;EACA;;AAEA;EACC;;AAOD;EAGC,OvLbS;EuLcT;EACA,kBvLLY;EuLMZ;EACA;;;AAMJ;EACC;;;AAID;AACA;EACC;EACA;;AAEA;EACC,clLnD4B;;AkLuD7B;EACC;;AAEA;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAID;EAGC,OvL5EY;EuL6EZ;EACA;;;AAMJ;EACC,elL5E6B;;;AmLP9B;AAyBA;EACC;EACA;EACA;;AlHpCC;EACE;EACA;EACA;;AkHoCH;EACC;EACA;;AAEA;EACC;EACA;EACA,SA/BgB;;AAiChB;EAEC;EACA,kBxLpBgB;;AwLyBlB;EACC,OxL5Be;;AwL8Bf;EAEC,OxLhCc;EwLiCd;EACA,QA5Cc;EA6Cd;;AAQF;EAGC,kBxL5CiB;EwL6CjB,cxLtEa;;AwL+Ef;EpL9EC;EACA;EACA;EACA,kBAJyB;;AoLsF1B;EACC;;;AAQF;EAEC;EjGrGC,wBiGuG0B;EjGtG1B,yBiGsG0B;;;AAO3B;EACC;;AAGD;EACC;EACA,kBxLzFgB;;A4BnBjB;EACC;EACG;;AAEJ;EACC;EACA,SAZuB;EAavB;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA,QArBsB;EAsBtB,SAvBsB;;A4JyHxB;EACC;;AAGD;EACC;EACA;EACA;;AAED;EACC;EACA;;AACA;EACC;;AAIF;EACC;;AAGD;EACC;EACA,cnLvI6B;;AmLyI7B;EACC;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA,OxL5Ha;;AwL+Hd;EACC;;AAGD;EACC,aAlJiB;EAmJjB,QCvKiB;;AD4KjB;AAAA;EAEC;;AAEA;AAAA;EACC;;AAIF;EACC;;AAIH;EACC;;AAGD;EACC;;AAGD;EACC;EACA,anL1L6B;;AmL4L7B;EACC;EACA;;AAEA;EACC,cnLpM0B;;AmLwM5B;EACC;EACA,cnLvM4B;;AmLyM5B;EACC;;AAGD;EACC;;AAOD;EACC;EACA;;AAMF;EACC;EACA;;AAED;EAIC;;AAHA;EACC;;;AASJ;EACC;;;AAGD;EAEE;IACC,cnLnP4B;;EmLsP7B;IACC,eA7OiB;IA8OjB;;EAKC;IACC;;;AA+CL;EACC;EACA,YCzTmB;ED0TnB,e3LjSyB;E2LkSzB;;AlH9TC;EACE;EACA;EACA;;AkHgUH;EATD;IAUE,ezL5TsB;;;;AuERtB;EACE;EACA;EACA;;AkH8UH;EAHD;IAIE;;;;AAeF;EACC;EACA,enL/ViB;EmLgWjB,cnLhWiB;EmLiWjB;EACA;EAEA;;AlHxWC;EACE;EACA;EACA;;AkHuWH;EACC;;AAGD;EAbD;IAcE;IACA;IACA;;EAEA;IACC;IACA;IACA;IACA;;EAGD;IACC;;;;AAaF;AAAA;AAAA;AAAA;EAEC;EACA;;AAEA;EALD;AAAA;AAAA;AAAA;IAME;IACA;;;;AAaH;EACC,SA3He;EA4Hf;;AAEA;EAJD;IAKE;;;;AAOF;EACC;EACA;EACA,W3LzZqB;E2L0ZrB,a3LhZyB;E2LiZzB,QC1amB;;AD4anB;EAEC;;AAGD;EACC;;AAGD;EAEC;IAEC;;;;AAWH;EACC;EACA;EACA,cnLtciB;EmLucjB;EAEA;EACA;EACA;EACA,ezLxcuB;;AyL4cvB;EACC;;AAID;EACC;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EA7BD;IA8BE;;;;AAUF;EACC;;AAEA;EACC;EACA;EACA,a3LzdwB;;A2L4dzB;EAGC;IACC;IACA;IACA;IACA;IACA;;EAEA;AAAA;IAEC;;EAGD;IACC,a3L5esB;;E2L8etB;IAEC;;;AAOJ;EApCD;IAqCE;IACA;;EAEA;IACC;;EAEA;IACC,anLrhBuB;ImLshBvB,gBnLthBuB;;;;AmLkiB3B;EACC;EACA;EACA;EACA;EACA;EACA,YnLriB2B;EmLsiB3B,enLtiB2B;ET8D1B,oB4L2eD;E5L1eS,Y4L0eT;;AAMC;EADD;IAEE;;EAEA;IACC;;;AASH;EA7BD;IA8BE;IACA;IACA;IACA;IACA;IACA;I5LpgBA,oB4LqgBA;I5LpgBQ,Y4LogBR;;;;AAQF;EACC;EjGnlBC,wBiGolB0B;EjGnlB1B,yBiGmlB0B;;;AAU3B;EAHD;IAIE;IACA,anL9lBgB;ImL+lBhB,cnL/lBgB;;;;AmL4mBlB;EACC;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;;AAUH;EACC,kBxLxmBiB;EwLymBjB,czLnoBsB;;AyLqoBtB;EACC,OAjWyC;;AAmWzC;EAEC,OA3VwC;EA4VxC,kBA3VwC;;AA+V1C;EACC,OxL9mBc;;AwLknBd;EACC,OAhXwC;;AAkXxC;EAEC,OAnXuC;EAoXvC,kBAnXuC;;AAyXxC;EAGC,OA3XuC;EA4XvC,kBA3XuC;;AAiYxC;EAGC,OAnYuC;EAoYvC,kBAnYuC;;AAwY1C;EACC,cA/XyC;;AAiYzC;EAEC,kBArYwC;;AAwYzC;EACC,kBxLzrBa;;AwL6rBf;AAAA;EAEC,czLlsBqB;;AyL2sBpB;EAGC,kBArauC;EAsavC,OAvauC;;AA2azC;EAIE;IACC,OAnbsC;;EAqbtC;IAEC,OAtbqC;IAubrC,kBAtbqC;;EA4btC;IAGC,OA9bqC;IA+brC,kBA9bqC;;EAoctC;IAGC,OAtcqC;IAucrC,kBAtcqC;;;AAkd1C;EACC,OAzdyC;;AA2dzC;EACC,OA3dwC;;AA+d1C;EACC,OAjeyC;;AAmezC;EAEC,OApewC;;AA0exC;EAEC,OAxeuC;;;AAmf1C;EADD;IAGE;;;;AElxBF;AACA;EACC,W7LJqB;E6LKrB,a7LasB;E6LXtB,kB1Lfe;E0LgBf,c1LhBe;E0LiBf,OAjBkB;E9LiEjB,oB8L9CD;E9L+CS,Y8L/CT;EAEA,uB3LfiC;E2LgBjC,oB3LhBiC;E2LiBjC,e3LjBiC;;;A4LVlC;AAEA;EACC;EACA;EACA,kB3LsBiB;E2LrBjB,StLU8B;;AsLT9B;EACC,YtLQ6B;;AsLL9B;EACC,YtLI6B;;AsLH7B;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;EACA,a9LUwB;E8LTxB,W9LTwB;;;A8LYzB;EACC,YtLf8B;EsLgB9B,W9LpBqB;E8LqBrB,O3LSqB;;;A2LNtB;EACC;EACA;EACA,a9LHwB;E8LIxB,W9LxBqB;E8LyBrB,O3LNe;;;A2LShB;EACC,kB3LpBY;;;A2LuBb;EACC;;;AClDD;EACC;;AhKQA;EACC;EACG;;AAEJ;EACC;EACA,SAZuB;EAavB;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA,QArBsB;EAsBtB,SAvBsB;;;AiDFzB;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AgHKA;AAAA;AAAA;AAMA;AACA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AvHpCC;EACE;EACA;EACA;;;AuHwCJ;AAAA;EC3CI;;;ADgDJ;AAAA;EC5CI;;;ADiDJ;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;;;AAGD;EACC;;;AAGD;AAAA;AAEA;EACC;;;AAED;AAEA;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;AACA;EAHD;IAIE;;;;AAIF;AACA;EACC;;;AAKA;EADD;IAEE;;;;AAKF;EACC;EACA;EACA;EACA,WhMrGqB;EgMsGrB;EACA;;;AAED;EACC,c7LlEgB;;;A6LuEhB;EACC,cxLxG4B;EwLyG5B;;;AAKF;EACI;EACA;;;AAIJ;EACI;;;AAIJ;EACC;EACA;EACA;;;AAID;EACI,WhMzIkB;EgM0IrB;;;AAKD;EACC;;;AAUD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwEA;EACC;EACA;EACA;EACA;EjM7KC,oBiM8KE;EjM7KM,YiM6KN;EACH;EACA,kB7L1NiB;E6L2NjB;;AACA;EATD;IAUE;IACA;;;;AASC;EACC;;;AAQJ;AhH/OC;AAeA;;AAjCA;EACC;EACA;EACA;EACA,ahFgBqB;;AgFbtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;IACC;IACA;IACA;IACA,oBgH0O+B;IhHzO/B;;EAGD;IACC;;;AAKF;EACC;IACC;IACA;IACA;IACA,iBgH2N+B;IhH1N/B;;EAGD;IACC;;;;AgHyNH;AhHnPC;AAeA;;AAjCA;EACC;EACA;EACA;EACA,ahFgBqB;;AgFbtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;IACC;IACA;IACA;IACA,oBgH8O+B;IhH7O/B;;EAGD;IACC;;;AAKF;EACC;IACC;IACA;IACA;IACA,iBgH+N+B;IhH9N/B;;EAGD;IACC;;;;AgH6NH;AhHvPC;AAeA;;AAjCA;EACC;EACA;EACA;EACA,ahFgBqB;;AgFbtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;IACC;IACA;IACA;IACA,oBgHkP+B;IhHjP/B;;EAGD;IACC;;;AAKF;EACC;IACC;IACA;IACA;IACA,iBgHmO+B;IhHlO/B;;EAGD;IACC;;;;AgHiOH;AhH3PC;AAeA;;AAjCA;EACC;EACA;EACA;EACA,ahFgBqB;;AgFbtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;IACC;IACA;IACA;IACA,oBgHsP+B;IhHrP/B;;EAGD;IACC;;;AAKF;EACC;IACC;IACA;IACA;IACA,iBgHuO+B;IhHtO/B;;EAGD;IACC;;;;AgHwOH;E9J5QC;;;A8JgRD;E9JxRC;;;A8J4RD;E9JxRC;;;A8J4RD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA,WhMnTsB;;;AgMsTvB;EACC;EACA,WhM1TqB;;;AgM6TtB;EACC;EACA,WhMjUsB;;;AgMoUvB;EACC;EACA,WhMpUqB;EgMqUrB;;;AAGD;EACC;EACA,WhM1UqB;EgM2UrB,O7LzUiB;;;A6L4UlB;EACC,ahMvTwB;EgMwTxB;EACA;;;AAGD;EACC;EACA,ahM5TwB;EgM6TxB,O7LrViB;;;A6LwVlB;EACC;EACA,ahMlUwB;EgMmUxB;EACA,O7L5ViB;;;A6L+VlB;EACC,O7LhWiB;E6LiWjB,WhMnWqB;;;AgMsWtB;EACC;EACA,ahMhVwB;;;AgMoVzB;EACC;EACA,ahMtVwB;;;AgMyVzB;EACC;EACA,ahM3VwB;EgM4VxB,WhMpXqB;;;AgMuXtB;EACC,ahM9VwB;;;AgMiWzB;EACC,ahMlWwB;;;AgMqWzB;EACC,O7LlWqB","file":"delos.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["020-dependencies/modifications/datetimepicker/bootstrap-datetimepicker.scss","030-tools/_tool_browser-prefixes.scss","010-settings/_settings_typography.scss","030-tools/_tool_screen-reader-only.scss","010-settings/_settings_borders.scss","010-settings/_settings_color-palette.scss","010-settings/_settings_button.scss","010-settings/legacy-settings/_legacy-settings_menu.scss","070-components/UI-framework/Dropdown/_ui-component_dropdown.scss","030-tools/legacy-bootstrap-mixins/_nav-divider.scss","050-layout/basics/_layout_spacing-variables.scss","020-dependencies/modifications/_jquery-autocomplete.scss","020-dependencies/modifications/_additions_tinymce.scss","020-dependencies/modifications/_additions_yui2.scss","020-dependencies/_index.scss","040-normalize/_normalize_print.scss","040-normalize/_normalize_typography.scss","040-normalize/_normalize_input.scss","040-normalize/_normalize_structure.scss","040-normalize/_normalize_table.scss","040-normalize/_index.scss","050-layout/_layout_grid.scss","050-layout/_layout_container.scss","050-layout/_layout_element-bar.scss","050-layout/_layout_visibility-utilities.scss","060-elements/_elements_html-body.scss","060-elements/_elements_input.scss","010-settings/legacy-settings/_legacy-settings_form.scss","060-elements/_elements_lists.scss","060-elements/_elements_media.scss","060-elements/_elements_objects.scss","060-elements/_elements_tables.scss","060-elements/_elements_typography.scss","030-tools/_tool_focus-outline.scss","060-elements/_index.scss","070-components/UI-framework/_ui-component_tooltip.scss","030-tools/_tool_typography-mixins.scss","070-components/UI-framework/Breadcrumbs/_ui-component_breadcrumbs.scss","050-layout/standardpage/_layout_standardpage.scss","070-components/UI-framework/Button/_ui-component_button.scss","030-tools/_tool_buttons.scss","070-components/UI-framework/Button/_ui-component_tag.scss","070-components/UI-framework/Button/_ui-component_toggle.scss","070-components/UI-framework/Card/_ui-component_card.scss","010-settings/legacy-settings/_legacy-settings_panel.scss","070-components/UI-framework/Chart/_ui-component_chart.scss","010-settings/legacy-settings/_legacy-settings_chart.scss","070-components/UI-framework/Counter/_ui-component_counter.scss","070-components/UI-framework/Deck/_ui-component_deck.scss","070-components/UI-framework/Divider/_ui-component_divider.scss","070-components/UI-framework/Dropzone/_ui-component_dropzone.scss","010-settings/legacy-settings/_legacy-settings_dropzone.scss","070-components/UI-framework/Entity/_ui-component_entity.scss","070-components/UI-framework/Input/_ui-component_tag.scss","070-components/UI-framework/Input/_ui-component_password.scss","070-components/UI-framework/Input/_ui-component_radio.scss","070-components/UI-framework/Input/_ui-component_multiselect.scss","070-components/UI-framework/Input/_ui-component_textarea.scss","070-components/UI-framework/Input/_ui-component_filter.scss","070-components/UI-framework/Input/_ui-component_duration.scss","070-components/UI-framework/Input/_ui-component_file.scss","010-settings/legacy-settings/_legacy-settings_ui-input-file.scss","070-components/UI-framework/Input/_ui-component_markdown.scss","070-components/UI-framework/Input/_ui-component_rating.scss","070-components/UI-framework/Input/_ui-component_input.scss","070-components/UI-framework/Item/_ui-component_item.scss","070-components/UI-framework/Launcher/_ui-component_launcher.scss","010-settings/legacy-settings/_legacy-settings_symbol.scss","070-components/UI-framework/Layout/_ui-component_standardpage.scss","010-settings/_settings_header.scss","010-settings/_settings_footer.scss","050-layout/standardpage/_layout_standardpage-mobile.scss","070-components/UI-framework/Layout/_ui-component_alignment.scss","070-components/UI-framework/Link/_ui-component_link.scss","070-components/UI-framework/Listing/_ui-component_properties.scss","030-tools/_tool_clearfix.scss","070-components/UI-framework/Listing/_ui-component_characteristic_value.scss","050-layout/basics/_layout_positioning.scss","070-components/UI-framework/Listing/_ui-component_workflow.scss","070-components/UI-framework/Listing/_ui-component_entitylisting.scss","070-components/UI-framework/MainControls/Slate/_ui-component_slate.scss","070-components/UI-framework/MainControls/_ui-component_metabar.scss","030-tools/_tool_multi-line-cap.scss","070-components/legacy/_component_screen-reader-only.scss","070-components/UI-framework/MainControls/_ui-component_mainbar.scss","070-components/UI-framework/MainControls/_ui-component_footer.scss","070-components/UI-framework/MainControls/_ui-component_mode_info.scss","010-settings/_settings_shadows.scss","070-components/UI-framework/MainControls/_ui-component_system_info.scss","070-components/UI-framework/Menu/_ui-component_drilldown.scss","070-components/UI-framework/MessageBox/_ui-component_messagebox.scss","070-components/UI-framework/Modal/_ui-component_modal.scss","070-components/UI-framework/Panel/_ui-component_panel.scss","030-tools/_tool_border-radius.scss","050-layout/_layout_breakpoints.scss","070-components/UI-framework/Player/_ui-component_player.scss","020-dependencies/modifications/webui-popover/jquery.webui-popover.scss","070-components/UI-framework/Popover/_ui-component_popover.scss","070-components/UI-framework/Symbol/_ui-component_icon.scss","070-components/UI-framework/Symbol/_ui-component_glyph.scss","070-components/UI-framework/Symbol/_ui-component_avatar.scss","070-components/UI-framework/Table/_ui-component_table.scss","030-tools/_tool_highlighted-box.scss","070-components/UI-framework/Toast/_ui-component_toast.scss","070-components/UI-framework/Tree/_ui-component_tree.scss","010-settings/legacy-settings/_legacy-settings_tree.scss","070-components/UI-framework/ViewControl/_ui-component_viewcontrol.scss","070-components/legacy/_component_agreement.scss","070-components/legacy/_component_alert.scss","070-components/legacy/_component_bottom-center-area.scss","070-components/legacy/_component_headline.scss","070-components/legacy/_component_helpsidebar.scss","070-components/legacy/_component_icon.scss","070-components/legacy/_component_LeftNavSpace.scss","070-components/legacy/_component_link.scss","070-components/legacy/_component_map.scss","070-components/legacy/_component_media-object.scss","070-components/legacy/_component_overlay.scss","070-components/legacy/_component_rightPanel.scss","070-components/legacy/_component_delostable.scss","070-components/legacy/_component_well.scss","070-components/legacy/_component_php.scss","070-components/legacy/_component_animated-collapse-fade.scss","070-components/legacy/_component_btn-group.scss","050-layout/_layout_responsive-img.scss","070-components/legacy/_component_carousel.scss","070-components/legacy/_component_input-group.scss","070-components/legacy/Modules/_component_bibliographic.scss","070-components/legacy/Modules/_component_blog.scss","070-components/legacy/Modules/_component_bookingmanager.scss","070-components/legacy/Modules/_component_chatroom.scss","070-components/legacy/Modules/_component_course.scss","070-components/legacy/Modules/_component_datacollection.scss","070-components/legacy/Modules/_component_excercise.scss","070-components/legacy/Modules/_component_forum.scss","070-components/legacy/Modules/_component_learningmodule.scss","070-components/legacy/Modules/_component_learningsequence.scss","070-components/legacy/Modules/_component_lticonsumer.scss","070-components/legacy/Modules/_component_mediacast.scss","070-components/legacy/Modules/_component_mediapool.scss","070-components/legacy/Modules/_component_orgunit.scss","070-components/legacy/Modules/_component_poll.scss","070-components/legacy/Modules/_component_portfolio.scss","070-components/legacy/Modules/_component_scormaicc.scss","070-components/legacy/Modules/_component_survey.scss","070-components/legacy/Modules/_component_test_legacy.scss","070-components/legacy/Modules/_component_test.scss","070-components/legacy/Modules/_component_wiki.scss","070-components/legacy/Modules/_component_workspacefolder.scss","070-components/legacy/Modules/_component_studyprogramme.scss","070-components/legacy/Services/_component_accesscontrol.scss","070-components/legacy/Services/_component_accordion.scss","070-components/legacy/Services/_component_awareness.scss","070-components/legacy/Services/_component_badge.scss","070-components/legacy/Services/_component_block.scss","070-components/legacy/Services/_component_bookmarks.scss","070-components/legacy/Services/_component_calendar.scss","070-components/legacy/Services/_component_chart.scss","070-components/legacy/Services/_component_container.scss","070-components/legacy/Services/_component_copage.scss","070-components/legacy/Services/_component_fileupload.scss","070-components/legacy/Services/_component_form.scss","070-components/legacy/Services/_component_help.scss","070-components/legacy/Services/_component_infoscreen.scss","070-components/legacy/Services/_component_init.scss","070-components/legacy/Services/_component_learninghistory.scss","070-components/legacy/Services/_component_like.scss","070-components/legacy/Services/_component_mail.scss","070-components/legacy/Services/_component_mediaobjects.scss","070-components/legacy/Services/_component_membership.scss","070-components/legacy/Services/_component_navigation.scss","070-components/legacy/Services/_component_news.scss","070-components/legacy/Services/_component_notes.scss","070-components/legacy/Services/_component_object.scss","070-components/legacy/Services/_component_onscreenchat.scss","070-components/legacy/Services/_component_rating.scss","070-components/legacy/Services/_component_search.scss","070-components/legacy/Services/_component_skill.scss","070-components/legacy/Services/_component_style.scss","070-components/legacy/Services/_component_table.scss","070-components/legacy/Services/_component_tags.scss","070-components/legacy/Services/_component_termsofservice.scss","070-components/legacy/Services/UIComponent/_component_advancedselectionlist.scss","070-components/legacy/Services/UIComponent/_component_checklist.scss","070-components/legacy/Services/UIComponent/_component_explorer2.scss","070-components/legacy/Services/UIComponent/_component_groupedlist.scss","070-components/legacy/Services/UIComponent/_component_lightbox.scss","070-components/legacy/Services/UIComponent/_component_modal.scss","070-components/legacy/Services/UIComponent/_component_progressbar.scss","070-components/legacy/Services/UIComponent/_component_tabs.scss","070-components/legacy/Services/UIComponent/_component_toolbar.scss","070-components/legacy/Services/UIComponent/_component_tooltip.scss","070-components/legacy/Services/_component_user.scss","070-components/legacy/Services/_component_webdav.scss","070-components/_index.scss","080-hacks/_index.scss","050-layout/_layout_pull-float.scss"],"names":[],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,aAfa;;APtExB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC,SApCuB;EAqCvB;;AOkIM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,iBDlKQ;ECoKR,kBAxGS;EAyGT,OnCzKI;EmC0KJ,cDpKK;ECqKL;EACA,cnC5KI;;AmCgLR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,WDjKgB;ECmKhB,kBAvGU;EAwGV,OnCpLI;EmCqLJ,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,OnC5LI;EmC6LJ,iBDzLQ;;AC6LZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEI,kBA/HY;EAgIZ,cD9LK;EC+LL;EACA,cAhIgB;EAiIhB,OAlIc;EAmId,QAnGU;EAoGV;;AAqBJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,kBA/IW;EAgJX,cAvIe;EAwIf;EACA,cnCtMM;EmCuMN,OAlJa;;ADiBvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,kBlChFS;;AkCkFX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;;AAKF;AAAA;AAAA;EAGE,a7B7FuB;;;A6BuG3B;EACE;EACD;EACA;EACC;EACA;EACA,arChGuB;EqCiGvB,OlCjIc;;AkCmId;EAKE;EtCvEF,oBsCwEE;EtCvEM,YsCuEN;;AAEF;EAGE;;AAEF;EACE,OlCpGkB;EkCqGlB,iBrCzGuB;EqC0GvB;;AAEF;EAEE,kBjCpHiB;EiCqHjB,OjCtHoB;EiCuHpB;;AACA;EACE;;AAGJ;EACE,OlChIY;EkCiIZ,kBlCpIc;;;AkC8IlB;AAAA;EC7BQ,YDtHiB;ECwHb;EAIJ,WtCzIe;EsC2If;EACA,K9BnJoB;E8BwJpB,kBnClIY;EmCmIZ,OnC7HQ;EmC8HR,cDvJS;ECwJT;EACA,cnCtIY;EmCwIR,epC/JY;;AoCmKhB;AAAA;EACI,iBDlKQ;ECoKR,kBnC5IM;EmC6IN,OnC1II;EmC2IJ,cDpKK;ECqKL;EACA,cnChJM;;AmCoJV;AAAA;EAGI,kBAvGU;EAwGV,OnCrJI;EmCsJJ,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;EACI,OnC7JI;EmC8JJ,iBDzLQ;;AC6LZ;AAAA;AAAA;AAAA;AAAA;EAEI,kBlChKS;EkCiKT,cD9LK;EC+LL;EACA,clClKa;EkCmKb,OlCrKY;EkCsKZ,QAnGU;;AAyHd;AAAA;EACI,kBnCnMM;EmCoMN,cD9Be;EC+Bf;EACA,cnCzMQ;EmC0MR,ODnCa;;ACmDb;AAAA;EACI;EACA;EACA,K9BnPY;E8BoPZ;;AAGJ;AAAA;EACI;;AP3Lf;AAAA;EACC;EACA,QApEuB;EAqEvB;;;AM4IA;AAAA;AAAA;AAAA;AAAA;EAEE,eDjLuB;;ACkLvB;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAQN;EC/EQ,YDtHiB;EC0Hb,WD1Ha;EC4HjB,WtCvIc;EsCyId;EACA,K9BtIsB;;;A6BoN9B;ECvFQ,YD2Fe;ECvFX,WDuFW;ECrFf,WtC7Ie;EsC+If;EACA,K9BtIsB;;;A6B8N9B;EACE;;;AAGF;EACE;;;AAOF;EACC;EACC,kBjCzNmB;EiC0NnB,cjCzNuB;EiC8NxB;EACA;EACA;;AANC;EACE,kBjC5NiB;EiC6NjB,cjC5NqB;;;AiCmOzB;EACE;EACA,arCvOuB;EqCwOvB;EACA,OlCzPuB;EkC0PvB;EACA;;AAEA;EAEE,OlCpQe;EkCqQf;;AAGF;EACE;EACA;EA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E,QCrEwB;;ADwE1B;EACE;;AAGA;EACE,W3CnGa;E2CoGb,a3CxEe;E2C0Ef,MC9EgC;;ADgFlC;EACE;EACA,MClFgC;;ADoFlC;AAAA;EAEE;EACA,MCrF+B;;ADyFnC;EAEE;;AAEA;EACE,QC1GmC;ED2GnC;;AAEF;EACE,MChH4B;EDiH5B;;AAIJ;EACE;;AAOJ;EACE,WC1GkC;ED2GlC,WCzGkC;;AD2GlC;EACE,WC9GgC;ED+GhC,YC7GgC;;AD+GhC;EACE,QC1G6B;ED2G7B,cC/IoC;;ADkJtC;EACE,cCnJoC;;ADsJtC;EACE,QC/G+B;;ADiHjC;EACE,QChH4B;;ADmH9B;EACE,QCxHiC;EDyHjC;EACA,cC9HwC;ED+HxC;EAEA;;AAEF;EACE;;;AAQV;AACA;AACA;AACA;EACE,anCxL4B;EmCyL5B,gBnCzL4B;;;AmC4L9B;EACE,anC7L4B;EmC8L5B,gBnC9L4B;;;AqCa9B;EACE;EACA,W7CbqB;E6CcrB,aAjBuB;EAkBvB;EACA;EACA;EACA;EACA,O1CJW;E0CKX;EACA,e3CpBiC;;A2CqBjC;EACE;;;AAIJ;EACE;EACA,W7CzBqB;;;A6C4BvB;EACE,SAtCmB;EAuCnB;EACA,KA1BgC;EA2BhC,kB1ClCiB;;;A0CoCnB;EACE,SA5CmB;EA6CnB;EACA,QAtCkC;EAuClC,kB1C9BuB;;;A0CkCvB;EACA,aAlDuB;EAmDvB,W7ChDqB;E6CiDrB,SAtDmB;EAuDnB;;;AC3DA;EACE;EACA;EACA,etCS0B;;AsCP1B;EACE,ctCgBqB;EsCfrB,etCeqB;EsCdrB,etCFsB;;AsCMtB;EACE;;AAGF;EACE;;;AAMR;EAEE;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AC1BJ;EACC;EACA;EACA,kB5CeY;E4CdZ;EACA;EACA,a/CiBsB;E+ChBtB,O5CqBe;;;A4ClBhB;EACC;;;AAGD;EACC;EACA,cvCH6B;EuCI7B,evCJ6B;;;AwCb9B;EACC;EACA,eCF2B;EDG3B,Y7CeY;E6CdZ;EACA,exCW0B;EwCV1B;;AACA;EACC;EACA,e9CNgC;E8COhC,kB7CUgB;E6CThB,axCJ8B;EwC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E;IACC;;EAED;AAAA;IAEC;IACA;;;AAKH;EAEC;IACC,Y/D5MW;I+D6MX;IACA;IACA;;EACA;IACC;IACA;IACA,SApOoC;IAqOpC;;EACA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAED;IACC;IACA;IACA;IACA;IACA,Y9B7MmB;;E8B+MpB;IACC;IACA;IACA;IACA;;EAIH;IACC;IACA;;EACA;IACC;IACA;IACA;IACA;IACA;;EACA;IACC;IACG;IACH;IACA;IACA;IACA;;EACA;IACC,Y9BxOkB;;E8B2OnB;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SA7RmC;;EA8RnC;IACC;;EAIF;IAEC;;EAQL;IACC;IACA;IACA;IACA;IACA;;EAID;IACC;IACG,QGpUkC;IHqUlC;IACH,Y9BjRsC;;E8BqRvC;IACC,OGzUkC;;EH6UnC;IACC;;EAID;IACC;;EAGD;IACC;;EAEA;IACC;;EAED;IACC;IACA;;EAGD;IACC;IACA;IACA,O/DnVgB;I+DoVhB,WlErVmB;IkEsVnB;IACA;IACA;IACA;;EACA;IACI;IACA;IACA,WlE7Ve;IkE8Vf,c1D5WW;;E0DgXhB;IACC;;EAED;AAAA;AAAA;AAAA;AAAA;AAAA;IAOC,Y/DnWU;I+DoWV,c/DpWU;I+DqWV,O/D7WgB;I+D8WhB;;EAGD;IACC;;EAKF;IACC;IACA;;EAID;IACC;IACA;IACA;IACA,YGnZsC;IHoZtC,YAhZyD;IAiZzD;IACA,SA5YgC;;EAgZjC;IACC;IACG;IACH;IACG;;EAGJ;IACC,QGha4B;IHia5B,OGha2B;;EHoa3B;IACC,QGta2B;IHua3B,OGta0B;;EHwa3B;IACC;IACA;IACA;IACA;;EAGD;IACI,QGjbwB;;EH4b7B;IACC;IACA;IACA;IACA;;EAQD;IACC;;EACA;IACC;;EAKF;IACC;;EAGD;IACC;IACA;IACA;IACA,gBG1dsC;;EH2dtC;IACC;;EAIF;IACC,e9BvdwB;;;A8B2d1B;AAAA;AAAA;AAAA;AAAA;AAMA;EACC;IACC;IACA;;EAEA;IACC;IA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W;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AASX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AAMjD;EACC,O9F1Te;;A8F4Tf;EACC,O9FrTiB;;A8FsTjB;EACC,O9FvTgB;;A8F2TlB;EACC,O9FlTuB;E8FmTvB;;AAGD;EACC,O9F5RoB;E8F6RpB;;;AAKD;EACC;;;AAIF;AAAA;EAEC;;;AAGD;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAID;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;EACC;EACA;;;AC3cD;EACC,QjC3BoB;EiC4BpB,OjC5BoB;EiC8BpB;EAEA,eA5ByB;EA6BzB,cAxBwB;EAyBxB,cA5BuB;EA8BvB;EACA;EACA;EACA;;AAGA;EACC,chGhDqB;;AgGkDrB;EACC,QjC9CkB;EiC+ClB,OjC/CkB;EiCgDlB;EACA,QA7CuB;EA8CvB;EACA;;AAKD;EACC,alG7BuB;EkG8BvB,gBAxC4C;EAyC5C;EACA;EACA;EACA;;AAIA;EAGC,kBAFQ;EAGR,cAFW;EAGX;;AALD;EAGC,kBA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;;AuGwFnB;EACC,OvGzFkB;;;AuG4FnB;EACC,W1G7FqB;E0G8FrB;EACA,OvG/FkB;;;AuGmGlB;EACC;;;AAID;EACC;;;ACtHF;AACA;EACC;EACA;EACA;EACA;EACA,kBxGoBY;EwGnBZ;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;ACrCD;AACA;EACC,OzGekB;EyGdlB;EACA,W5GkBoB;E4GjBpB,a5GiCwB;;A4GhCxB;EALD;IAMQ,W5GakB;;;;A4GT1B;EACC;;AACA;EAFD;IAGQ;;;;AAIR;EACI;EACA;;;AAGJ;EACC,a5GcwB;E4GbxB;EACA;EACA;EACA,W5GVwB;E4GWxB,OzGZkB;;;AyGenB;EACC;EACA;EACA,YpG5B2B;EoG6B3B,cpGhB6B;EoGiB7B,epG9B2B;EoG+B3B;;AACA;EAPD;IAQQ;IACN;IACA;IACA;;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC,W5GrDsB;E4GsDtB;EACA,OzGlCe;;;AyGqChB;EACC;EACA;EACA;;AACA;EAJD;IAKE,OzG1Cc;;;AyG4Cf;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AACA;AACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;AACA;EAHD;IAIE;IACA;IACA;;;;AAIF;EACC;;;AAGD;EACC;;;ACjID;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC,W7GGqB;E6GFrB,O1GqBe;E0GpBf;EACA;;;AAGD;EACC;;;AAED;AACA;EACC,W7GZqB;E6GarB,a7GWwB;;;A8GvCzB;AACA;EACC;EACA;;;AAGD;AACA;EACC;EACA;;;ACPD;AACC;EACA;;AACA;EAHD;IAIE;;;;ACNF;AACA;EACC;EACA;;;AAGD;EACC;;;ACJA;EADD;IAKE;;;;AAKD;EADD;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A;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAKH;EAIC;EACA;EACA;EACA;;AANA;EACC;;;AAQF;EACC;IACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,O7HvDoB;E6HwDpB,WhItFoB;EgIuFpB;EACA;EACA;;AAGD;EACC;EACA,O7HhEoB;E6HiEpB;EACA;EACA;;AAGD;EACC,kB7HtFgB;E6HuFhB;EACA,WhIvGoB;;AgI0GrB;EACC,O7HpFc;;A6HuFf;EACC,O7HnFoB;;A6HsFrB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,kB7HzGgB;;A6H4GjB;EACC;EACA;EjIzEA,oBiI0EA;EjIzEQ,YiIyER;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;;ACzKF;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,O9HmBe;E8HlBf;EACA;EACA;;;AAED;EACC;EACA,O9HYe;E8HXf;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC,WjIxCqB;;;AiI2CtB;EACC,WjIxCqB;EiIyCrB;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAID;AAEA;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;ElIfE,oBkIgBD;ElIfS,YkIeT;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kB9H3EwB;;;A8H8EzB;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AC7GD;AAEA;EACC;;;AAGD;EACC;EACA,WlIIqB;;;AkIDtB;EACC;EACA,WlICsB;;;AkIEvB;EACE;;;AAGF;EACC,alIewB;EkIdxB;EACA,WlIXqB;EkIYlB;EACA;;;AAGJ;EACE;;;AAGF;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AChDD;AAEA;EACC,c3HU+B;E2HT/B,e3HS+B;;;A2HNhC;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,WnIbqB;;;AmIgBtB;EACC;EACA;EACA;;;AAED;EACC,kBhIPiB;EgIQjB;;;AAGD;EACC;;AACA;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA,OhI7DwB;EgI8DxB;EACA;EACA;EACA;;;ACtFD;AAQA;EACC,apI0BwB;;;AoIvBzB;EACC,apIwBwB;;;AoIrBzB;EACC;EACA,apImBwB;;;AoIhBzB;EACC;EACA;EACA;EACA,WpIdqB;;;AoIiBtB;EACC,apIQwB;EoIPxB,WpInBqB;EoIoBrB;;;AAGD;AACA;EACC;EACA;EACA;EACA,kBjIfY;;;AiIkBb;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;;AAKH;EACC;EACA;EACA;EACA;;;AAGD;EACC,Y5HnD8B;E4HoD9B,WpIpDqB;;AoIqDrB;EAHD;IAIE,Y5H/D0B;I4HgE1B,WpIzDqB;;;;AoI6DvB;EACC,OjIlCqB;;;AiIqCtB;EACC;EACA;EACA;;AACA;EAJD;IAKE,c5HhE4B;I4HiE5B;;;AAGA;EADD;IAEE;IACA;;;;AAKH;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;;AAIF;EACC,Y5HrG8B;;;A4HwG/B;EACC;EACA,e5H1G8B;E4H2G9B;;AAEA;EACC,kBjIrGW;EiIsGX;;AAGD;EACC;EACA;;AACA;EACC;;AAED;EACC;;AAGA;EADD;IAEE;;;AAKF;EADD;IAEE;IACA;;;;AAKH;EAEE;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;;AAKH;EACC;EACA;EACA,apItJwB;EoIuJxB,OjIjLkB;;;AiIoLnB;EACC;EACA,apI5JwB;;AoI6JxB;EACC,apIhKuB;;AoIkKxB;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC,Y5HzM8B;;;A4H4M/B;EACC;;;AAGD;EACC,OjIrNkB;;;AiIwNnB;EACC,apI/LwB;;;AoIkMzB;EACC;EACA;EACA;EACA;EACA;EACA;EACA,OjI5Me;EiI6Mf;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;ACrQD;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;AACA;EACA,kBlINiB;EkIOjB;AACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAID;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AC7GD;EACI,kBnIqBS;EmIpBT,oB5FFc;E4FGd,Y5FHc;;A4FIjB;AAAA;EAEC;EACA;EACA;;;AAKD;EACC;;;AAGF;EACC;EACA,kBnIKiB;;AmIJjB;EACC;;AAED;EACC;;;AAMA;EACC;;;AAKH;EACC,kBnIbiB;;AmIejB;EACC;;;AAGF;AAEA;EACC;;;AClDD;AAUA;EACE;EACA;;;AAEF;EACE;EACA,SARmB;EASnB,OAfiB;EAgBjB,QAfkB;;;AAiBpB;ACpBA;EACE;;AACA;EACE;;;AAKF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAIA;EACE;EACA;EACA;;AAGF;EACE;EAIA;;AAHA;EACE;;AAKJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIA;EACE;;AAIJ;EACE;;;ACjEJ;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC,kBtIkBiB;EsIjBjB;;;AAGD;EACC;;;AChBC;EACD;EACA;EACA;;AAGC;EACD;;AAGC;EACD;EACA;;AAGC;EACD;EACA;;AAGC;EACD;EACA;EACA;;;AAID;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;ACtDF;AAEA;EACC;EACA,W3ISqB;E2IRrB,OxIQkB;;;AwILnB;EACC;EACA,W3IGqB;E2IFrB,OxIgCqB;;;AwI7BtB;EACC;EACA;EACA;EACA,W3ILqB;E2IMrB;;;AAGD;EACC;EACA;EACA;EACA,W3IbqB;E2IcrB,OxIgBqB;;;AwIbtB;EACC;EACA;;;AAGD;EACC;EACA,W3IxBqB;;;A2I2BtB;EACC;;;AAGD;EACC;EACA,W3IjCqB;;;A2IoCtB;EACC;;;AAGD;EACC,kBxIjDe;;;AwIoDhB;EACC;;;AAGD;EACC,W3I7CqB;;;A4IjBtB;AAEA;EACC;;AACA;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,W5IRqB;A4ISrB;;;AAGD;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EAKC;;AAJA;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;;;AC7DD;AAEA;EACC,O1IiCe;E0IhCf,kB1IwBiB;E0IvBjB;EACA;;;AAGD;EACC,kB1IkBiB;E0IjBjB,O1IyBe;E0IxBf;EACA;EACA;;;AAGD;EACC;EACA,O1IiBe;E0IhBf;EACA;EACA;;;ACpBD;AAEA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IAEC;IACA;AACA;AAAA;AAAA;;EAKD;IAEC;IACA;IACA;;EAGD;IAEC;IACA,etI9C4B;;EsIiD7B;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA,a9ItCuB;I8IuCvB;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA,a9I1EuB;I8I2EvB;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA;IACA,a9IjGuB;I8IkGvB;IACA;;;AAIF;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA,kB3I3IiB;E2I4IjB;;;AAGD;EACC;EACA;;;AAGD;EACC;;AACA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAMA;EACC;;;AChMH;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EAEI;EACH;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAEI;EACA;EACA;;;AAGJ;EACC;EACA;EACA;EAEA,SvIzH+B;;AuI0H/B;EACC,cvI3H8B;EuI4H9B,evI5H8B;;;AuIgIhC;EACC;EACA;EA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EACA,kBvJnPY;EuJoPZ;EACA;EACA;EACA;EACA,cxJhRsB;EwJiRtB;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA,cxJ3RsB;;;AwJ+RvB;EACC;EACA;EACA;EACA;EACA;EACA;EACA,cxJtSsB;;;AwJySvB;EACC;EACA,kBvJjRiB;EuJkRjB;EACA;EACA;EACA;EACA,cxJhTsB;;;AwJmTvB;EACC;EACA,kBvJ3RiB;EuJ4RjB;EACA;EACA;EACA;EACA,cxJ1TsB;;;AwJ6TvB;EACC;EACA;EACA;EACA;EACA,W1JrTsB;;A0JuTtB;EACC;EACA;EACA;;;AAIF;EACC,W1J/TsB;;;A0JkUvB;EAEC;AACA;EACA;EACA;EACA;EACA;EACA,cxJvVsB;EwJwVtB,W1J3UsB;A0J4UtB;;;AAGD;EACC,W1JhVsB;E0JiVtB;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA,a1JvUwB;;;A0J0UzB;EACC;EACA;;;AAID;EAEC;;;AAID;EACC,OvJxVe;EuJyVf,kBvJjWiB;;;AuJoWlB;EACC;EACA,W1JrXqB;E0JsXrB,a1J9VwB;E0J+VxB,kBvJ1WY;;;AuJgXb;EACC,a1JlWyB;;;A0JqW1B;EACC;EACA;;;AAGD;EACC;EACA;EACA,kBvJ5XY;EuJ6XZ;EACA;EACA;EACA,cxJxZsB;EwJyZtB,W1J9YqB;E0J+YrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA,cxJnasB;EwJoatB,W1JzZqB;E0J0ZrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA,cxJ9asB;EwJ+atB,W1JpaqB;E0JqarB;EACA;;;AAGD;EACC;EACA,kBvJ5ZiB;EuJ6ZjB;EACA;EACA,cxJzbsB;EwJ0btB,W1J/aqB;E0JgbrB;EACA;;;AAGD;EACC;EACA,kBvJvaiB;EuJwajB;EACA;EACA,cxJpcsB;EwJqctB,W1J1bqB;E0J2brB;EACA;;;AAGD;EACC;EACA,kBvJpbY;EuJqbZ,W1JpcsB;E0JqctB;EACA;;;AAGD;EACC,OvJ9bwB;;;AuJgczB;EACC;EACA;;;AAGD;EACC;EACA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EACA;EACA;;AAEA;EACC;EACA;EACA;;;AAIF;EACC;EACA,Y1JjQY;E0JkQZ;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;AAGE;EACC;EACA;EACA;EACA;EACA;;AAED;EACC,O1JvRkB;E0JwRlB;;AAKF;EACC;;AAIF;EACC;;;AAOF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC,W7JzWqB;E6J0WrB;EACA,kB1J5ViB;E0J6VjB;EACA;;;AAGD;EACC;EACA,W7JhXsB;E6JiXtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC,kB1JrZY;E0JsZZ;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kB1JzbY;E0J0bZ;EACA;EACA;EACA;;;AAGD;EACC,kB1JjcY;;;A0Jocb;EACC;EACA,W7J/cqB;E6JgdrB;;;AAGD;EACC;EACA,kB1J5cY;E0J6cZ;EACA;;;AAGD;AAEA;EACC;EACA;;;AAGD;EACC,c1J9ee;;;A0JifhB;EACC,c1J1ekB;;;A0J6enB;EACC,c1JpfoB;;;A0JufrB;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,O1JreqB;;;A0JwetB;EACC,O1JzeqB;;;A0J4etB;EACC;;;AAGD;EACC;;;AAGD;EACC,crJlhB8B;EqJmhB9B,erJnhB8B;EqJohB9B;;AACA;EACC;;AAGA;EACC;EACA;EACA;EACA;EACA,kB1J9gBe;E0J+gBf;EACA;;AAIF;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA,W7JvjBqB;E6JwjBrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA,kB1J1jBiB;E0J2jBjB;;;AAGD;EACC,kB1J1jBiB;;;A0J6jBlB;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AAAA;AAAA;EAGC;;;AAGD;EACC;;;AAID;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AACA;EAHD;IAIE;;;AAIF;EACC,W7JtsBoB;E6JusBpB,YrJvsB6B;EqJwsB7B,erJjtB0B;;AqJotB3B;EACC;;AAED;EACC,erJrtB2B;;AqJstB3B;EACC;;AACA;EACC,W7JrtBmB;;A6JwtBrB;EACC;;AAED;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA,kB1JztBU;;A0J6tBZ;EACC;;;AAIF;AAAA;EAEC;;;AAGD;EACC,YrJpvB6B;;;AqJuvB9B;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAED;EACC;;;AAID;AACA;EACC;;AAEA;EACC;EACA;EACA;;AACA;EACC;EACA;;;AAKH;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;;;AAGD;EAEC,kB1JtxBY;;A0JwxBZ;EACC,kB1JvxBgB;;A0JwxBhB;EACC,kB1JzxBe;E0J0xBf;EACA,O1JnxBa;E0JoxBb;EACA;;AAIF;EACC;;AAGD;EACC;;;AAIF;AAAA;EAEC;EACA,O1J9xBqB;E0J+xBrB;;;AAGD;EACC;EACA;EAC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EACC;;AACA;EACC;;;AAIF;EACC,QxHzCiB;EwH0CjB,ehKlCkC;EgK6ClC;EACA;;AAVA;EACC;EACA,kB/JvBgB;;A+J0BjB;EACC;;AAKD;EAfD;IAgBE;;;;AC5DF;EACC;;;AAGD;EACC,kBhKoBY;EgKnBZ;;;ACPD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,WpKbsB;EoKctB;EACA;;;AAGD;EACC;AACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;AACA;EACA,kBjKrBmB;;;AiKwBpB;EACC;EACA;;;ACxDD;AAEA;EACC,arKkCwB;;;AqK/BzB;EACC,arKgCwB;;;AqK7BzB;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAIA;EACC;;AAED;EACC;EACA;;;AAOC;EACC;EACA;EACA;EACA;;;ACrDJ;AAEA;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA,WtKFqB;EsKGrB;EACA;EACA;AACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;ACtDD;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;ACnBD;AAEA;EACC;EACA;EACA;EACA;EACA;EACA,WxKGsB;;;AwKAvB;EACC;EACA;EACA;EACA;EACA;EACA,kBrKamB;;;AqKVpB;EACC;EACA;EACA;EACA;;;ACtBD;AAEA;EACC;;AACA;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;EACA;;AAED;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC,kBtKlBkB;EsKmBlB;EACA;EACA,WzKvBsB;EyKwBtB;EACA;EACA;;AACA;EACC;EACA;;;AAIF;AAEA;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA,kBvKpD0B;EuKqD1B;EACA;;AACA;EATD;IAUE;;;AAGF;EACC;EACA;EACA;;AACA;EACC;EACA;;AACA;EAHD;IAIE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;AAIH;EArBD;IAsBE;;;AAED;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;EACA;EACA;EACA,YtKvEe;EsKwEf,Q/H/Fe;;A+HgGf;EAPD;IAQE;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA,WzK9GoB;EyK+GpB;EACA;EACA;EACA,kBtK1GsB;EsK2GtB;EACA;EACA;EACA;;AACA;EAfD;IAgBE;IACA;IACA;;;AAED;EACC,WzK7HmB;;AyK+HpB;EACC,WzKpImB;;AyKsIpB;EACC;EACA;;AAGF;EACC;;AACA;EAFD;IAGE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAGF;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAKJ;EACC;EACA;;AAED;EACC,kBtK9JgB;;;AsKkKlB;AACC;AAAA;AAAA;;;AAKD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EALD;IAME;;;;AAIF;EACC;EACA;;AAEA;EAJD;IAKE;IACA;;;;AAIF;EACC;;AACA;EAFD;IAGE;;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;EACA;E1K9DC,oB0K+DD;E1K9DM,e0K8DN;E1K7DS,Y0K6DT;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AClRD;AAEA;AACI;;;AAEJ;EACI;;;AAEJ;EACC,kBvKeY;EuKdZ;;;AAGD;EACC,kBvKUY;;;AuKPb;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AACA;EACC;EACA;;;AAIF;EACC,W1KzBqB;E0K0BrB;;;AAGD;EACC,kBvKfiB;EuKgBjB;EACA;;AAEC;EACC;EACA;;;AAMF;EACC;;;AAIF;EACC;;;AAGD;EACC,W1KhDqB;E0KiDrB,OvK9Be;EuK+Bf;;;AAGD;EACC,W1KxDsB;E0KyDtB;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC;;;AAIF;EACC,elKzF4B;;;AkK6F5B;EACC;EACA;;;AAIF;EACC,YhI1GiB;;AgI2GjB;EACC;;;AAIF;EACC;;;ACtHD;AAcA;EACC;EACA;;;AAID;EACC,W3KVsB;E2KWtB;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC,ezK7BgB;EyK8BhB,kBxKTY;;AwKUT;EACI;;;AAKR;EACI;;AAEI;EACI,kBxKpBC;;AwKuBD;EACI;;AAGA;EACI;;;ACtDpB;EACC;;;AAIA;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AACA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA,kBzKjCW;;AyKmCX;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA,kBzK1Ia;;AyK4Ib;EACC,W5K5JgB;E4K6JhB;EACA;;AAIF;EACC;EACA;;AAIA;EACC;EACA;EACA;;AAKD;EACC;EACA;;AAMA;EACC,W5K3LgB;;A4K+LlB;EACC;EACA,OzKjKgB;EyKkKhB,W5KhMgB;;A4KsMpB;EACC;EACA;EACA;;AAEA;EACC,W5K9MmB;E4K+MnB;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;;;AAOH;EACC;;AAED;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AChTD;AAEA;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACG;EACA;EACA;;;ACdH;EACC;;AACA;EACC,a9K+BuB;;;A8K1BxB;EACC;EACA;EACA,W9KGoB;E8KFpB;;AAED;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA,O3KCe;E2KAf;EACA;EACA;EACA;EACA;E/K8BC,oB+K7BE;E/K8BM,Y+K9BN;EACH;;;AAGD;EACC,kB3KlBiB;E2KmBjB;EACA,W9KrCsB;;A8KsCtB;EACC;;AAED;EACC;EACA;;;AAKD;EACC,atKpD0B;;AsKsD3B;EACC;;AAED;EACC;;;AAIF;EACC;E/KDC,oB+KEE;E/KDM,Y+KCN;EACH,O3KrCe;;;A2KwChB;EACC,a9KtCwB;;;A8KyCzB;EACC;EACA,W9KvEsB;E8KwEtB,a9K9CwB;E8K+CxB;;;AAGD;EACC;;;AAGD;EACC;;AACA;EACC;;;AC9FF;AAEA;EACC,Y5KyBiB;E4KxBjB;EACA;EACA;;;AAGD;EACC;EACA;EACA,W/KKqB;E+KJrB;;;AAGD;EACC;EACA;EACA,W/KJsB;E+KKtB,O5KuBqB;E4KtBrB;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,W/KrCsB;E+KsCtB;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC,kB5KnCiB;;;A4KsClB;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;AAEA;EACC;EACA;;;AAKF;EACC,c5KbqB;;;A4KgBtB;EACC,c5KnBqB;;;A4KsBtB;EACC;;AACA;EACC;EACA;;;AAKD;EACC;;AAED;EACC;;AACA;EACC;EACA;;;AAOH;EACC;;;AAGD;EACC,O5KhDqB;;;A4KmDtB;EACC,O5KtDqB;;;A4KyDtB;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;AACA;EACC;EACA;;;AAIF;EACC;;;AC9JD;AAEA;EACC;;;AAGD;AAEA;EACC;EACA;EACA,QxKP0B;EwKQ1B,kB7KaY;E6KZZ;EACA;;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA,WhLdsB;EgLetB;EACA,kB7KDY;E6KEZ,ahLWwB;;;AgLRzB;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC,WhL/BqB;EgLgCrB,ahLNwB;EgLOxB;EACA;EACA,O7KZe;E6Kaf;;;AChCD;EACI;;AAMA;EACI;EACA;EACA;;AAKA;AAAA;EACI;EACA;EACA;;;AAKZ;EACI,azKtCc;EyKuCd,gBzKvCc;EyKwCd,O9KzBe;E8K0Bf;;;AAGJ;EACI;;;AAKF;EACD;EACA;EACA;;AAMC;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE,SzK7Dc;EyK8Dd,ajLvCmB;EiLwCnB;EACA;;AAKH;EACE;EACA;;AAOD;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAKH;EACE;;AAIF;EACE,kB9KpEU;;;A8KgFX;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE,SzKvF0B;;;AyKkG7B;EACE,kB9K9FU;;;A8KwGX;EACD;EACA;;AAEA;EAJC;IAKC;IACA;IACA;IACA;IACA;;EAGA;IACD;;EAOC;AAAA;AAAA;AAAA;AAAA;AAAA;IAEE;;;;AAWL;AAEA;EACC,ajLjIwB;EiLkIxB,kB9K3IiB;E8K4IjB;EACA,WjL9JsB;EiL+JtB;;;AAGD;EACC,ajLzIwB;EiL0IxB,ezKvK2B;EyKwK3B;EACA,WjLtKsB;EiLuKtB;EAEA,ajLzJyB;;AiL4JxB;EACC;;AAED;EACC;;AAIF;EACC;;AAED;EAEC;;AAED;EAEC;;;AAIF;EACC,O9KzKe;E8K0Kf,ajLzKwB;EiL0KxB,kB9KnLiB;E8KoLjB;;;AAGD;EACC;EACA;EACA,kB9K1LiB;;;A8K6LlB;EACC,ajLnLwB;EiLoLxB;EACA,WjL/MqB;EiLgNrB,O9KzLe;E8K0Lf;;;AAGD;EACC;EACA;;AACA;EACC;;;AAIF;EACC,ajLnMwB;EiLoMxB,WjL5NsB;EiL6NtB;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,kB9K3NiB;;;A8K8NlB;EACC,kB9KjOY;E8KkOZ;EACA,WjLhPqB;EiLiPrB;;;AAGD;EACC;;;AAGD;EACC,kB9K1OiB;E8K2OjB;EACA,WjL3PqB;;;AiL8PtB;EACC,O9KxOe;;;A8K2OhB;EACC;;;AAGD;EACC;;;AAID;EACC;EACA;;;AAGD;EACC,WjLnRsB;EiLoRtB;EACA;EACA;EACA,ajL7PwB;EiL8PxB;;AACA;EACC;EACA;EACA;;;AAIF;EACC,kB9KhRiB;E8KiRjB;EACA;;;AAGD;EACC;EACA,kB9KvRiB;E8KwRjB;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA,WjLjUsB;EiLkUtB;EACA;EACA;;;AAID;EACC,WjLzUsB;EiL0UtB,ajL9SwB;EiL+SxB;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC,ajL3TwB;;;AiL8TzB;EACC,ajL/TwB;EiLgUxB,kB9KzUiB;E8K0UjB,WjLzVqB;EiL0VrB;;;AAGD;AACA;EACC,kB9K9UmB;E8K+UnB,O9KzUe;E8K0Uf;;;AAGD;EACC,kB9KxVY;E8KyVZ,O9K/Ue;E8KgVf;;;AAGD;EACC;;;AAGD;EACC,kB9K3ViB;E8K4VjB,O9KzVe;E8K0Vf;;;AAGD;EACC,kB9KpWmB;E8KqWnB,O9K/Ve;E8KgWf;EACA;;;AAGD;EACC,kB9K/WY;E8KgXZ,O9KtWe;E8KuWf;EACA;;;AAGD;EACC,kB9K/WiB;E8KgXjB,O9K7We;E8K8Wf;EACA;;;AAMD;EACC;EACA,kB9KjYY;;;A8KoYb;EACC,kB9KrYY;;A8KwYX;EACC,czKvZ4B;;;AyK4Z/B;EACI;;;AAKF;EACC;;;AAeH;EACC;IACC;IACA;;;AAIF;EACC;IACC;;;ACpcF;AAEA;EACC,WlLOqB;EkLNrB;;;AAGA;EACC;;;AAGF;EACC,kB9K6Be;A8K5Bf;EACA;EACA;EACA;EACA;EACA;EACA,ehLTkC;;AgLclC;EACC;EACA;;AAED;EACC;EACA;;AAED;EACC;EACA;;AAED;EACC;EACA;;AAGD;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;;;AAGD;EACC;;;AC9DC;EACE;;;ACEJ;AAEA;EACC;ErLiEC,oBqLhEE;ErLiEM,YqLjEN;;;AAGJ;EACC,OjL0Be;EiLzBf,kBjLeY;EiLdZ;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA,apLMwB;;;AoLHzB;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA,kBjLhCY;EiLiCZ;EACA;EACA;;;AAQA;EACC;AAAA;AAAA;AAAA;IACC;;EAED;AAAA;AAAA;AAAA;IACC;;;AAGF;EAZD;AAAA;AAAA;AAAA;IAaE;IACA;;;;AAKD;EAFD;IAGE;;;AAED;EALD;IAME;;;AAED;EARD;IASE;;;;AAID;EADD;IAEE;IACA,kBjLvEW;;;;AiL2Eb;EACC;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;;AACA;EACC;;;AAOH;EACC;;;AC9HF;AAEA;EACC;EACA;EACA;;;AAGD;EACC;EACA,WrLGqB;;;AqLAtB;EACC;EACA;EACA;;;AAGD;EACC;EACA,OlLhBe;;;AkLmBhB;EACC,kBlLQiB;;;AkLLlB;EACC,OlLcqB;EkLbrB,WrLnBsB;EqLoBtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;ACzCD;AAEA;EACC;EACA,kBnLsBiB;;;AmLblB;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA,kBnLJiB;;;AmLOlB;EACC;EACA;EACA;EACA;EACA;EACA,atLFwB;EsLGxB,WtL7BqB;;;AsLgCtB;EACC,WtLjCqB;;;AsLoCtB;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAID;EACC,kBnLpCiB;EmLqCjB;;;AAGD;EACC;EACA;EACA;;;AAID;EACC;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC,WtLhFsB;EsLiFtB;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;EACA;EvL7CC,oBuL8CE;EvL7CM,YuL6CN;;;AAKJ;EACC;;;AAGD;AAAA;EAEC;EACA;EACA;EACA,OnLzFqB;EmL0FrB,epLtHkC;;;AoLyHnC;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACI;;;AAGJ;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC,atLrKqB;EsLsKrB;;;ACnLF;AAEA;EACC;EACG,OpL8BY;;;AoL3BhB;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA,WvLLqB;;;AuLQtB;EACC;EACA;;;AAGD;EACC;;;AC3BD;AAEA;EACC;EACA;EACA;EACA;EACA;EACA,kBrLUkB;EqLTlB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA,OrLkBe;EqLjBf;;;AAGD;EACC,OrLkBqB;EqLjBrB;;;AAGD;EACC;EACA;EACA;;;AAIA;EACC;EACA;;;ACpCF;AACA;EACC;EACA;;;AAGD;EACC;;;AAED;EACC,OtL0Be;;AsLtBd;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ACA;EACA,ahFgBqB;;AgFbtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;IACC;IACA;IACA;IACA,oBiH8O+B;IjH7O/B;;EAGD;IACC;;;AAKF;EACC;IACC;IACA;IACA;IACA,iBiH+N+B;IjH9N/B;;EAGD;IACC;;;;AiHgOH;E/JpQC;;;A+JwQD;E/JhRC;;;A+JoRD;E/JhRC;;;A+JoRD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA,WjM3SsB;;;AiM8SvB;EACC;EACA,WjMlTqB;;;AiMqTtB;EACC;EACA,WjMzTsB;;;AiM4TvB;EACC;EACA,WjM5TqB;EiM6TrB;;;AAGD;EACC;EACA,WjMlUqB;EiMmUrB,O9LjUiB;;;A8LoUlB;EACC,ajM/SwB;EiMgTxB;EACA;;;AAGD;EACC;EACA,ajMpTwB;EiMqTxB,O9L7UiB;;;A8LgVlB;EACC;EACA,ajM1TwB;EiM2TxB;EACA,O9LpViB;;;A8LuVlB;EACC,O9LxViB;E8LyVjB,WjM3VqB;;;AiM8VtB;EACC;EACA,ajMxUwB;;;AiM4UzB;EACC;EACA,ajM9UwB;;;AiMiVzB;EACC;EACA,ajMnVwB;EiMoVxB,WjM5WqB;;;AiM+WtB;EACC,ajMtVwB;;;AiMyVzB;EACC,ajM1VwB;;;AiM6VzB;EACC,O9L1VqB","file":"delos.css"} \ No newline at end of file