@clickview/lite 0.0.18-dev.2 → 0.0.18-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/0.chunk.css.map +1 -0
- package/dist/css/1.chunk.css +144 -2
- package/dist/css/1.chunk.css.map +1 -0
- package/dist/css/10.chunk.css +10 -12
- package/dist/css/10.chunk.css.map +1 -0
- package/dist/css/11.chunk.css +5 -9
- package/dist/css/11.chunk.css.map +1 -0
- package/dist/css/12.chunk.css.map +1 -0
- package/dist/css/13.chunk.css.map +1 -0
- package/dist/css/14.chunk.css.map +1 -0
- package/dist/css/16.chunk.css.map +1 -0
- package/dist/css/18.chunk.css.map +1 -0
- package/dist/css/19.chunk.css +6 -2
- package/dist/css/19.chunk.css.map +1 -0
- package/dist/css/2.chunk.css +14 -0
- package/dist/css/20.chunk.css +2 -6
- package/dist/css/21.chunk.css +1 -3
- package/dist/css/21.chunk.css.map +1 -0
- package/dist/css/22.chunk.css +2 -2
- package/dist/css/22.chunk.css.map +1 -0
- package/dist/css/23.chunk.css +3 -1
- package/dist/css/23.chunk.css.map +1 -0
- package/dist/css/24.chunk.css +1 -3
- package/dist/css/24.chunk.css.map +1 -0
- package/dist/css/25.chunk.css +2 -2
- package/dist/css/25.chunk.css.map +1 -0
- package/dist/css/26.chunk.css +3 -1
- package/dist/css/26.chunk.css.map +1 -0
- package/dist/css/27.chunk.css +66 -2
- package/dist/css/27.chunk.css.map +1 -0
- package/dist/css/28.chunk.css +48 -2
- package/dist/css/28.chunk.css.map +1 -0
- package/dist/css/29.chunk.css +43 -4
- package/dist/css/29.chunk.css.map +1 -0
- package/dist/css/3.chunk.css +13 -7
- package/dist/css/3.chunk.css.map +1 -0
- package/dist/css/30.chunk.css +1 -3
- package/dist/css/30.chunk.css.map +1 -0
- package/dist/css/31.chunk.css +5 -2
- package/dist/css/31.chunk.css.map +1 -0
- package/dist/css/32.chunk.css +4 -1
- package/dist/css/32.chunk.css.map +1 -0
- package/dist/css/34.chunk.css +4 -2
- package/dist/css/34.chunk.css.map +1 -0
- package/dist/css/35.chunk.css +7 -0
- package/dist/css/35.chunk.css.map +1 -0
- package/dist/css/36.chunk.css +4 -0
- package/dist/css/36.chunk.css.map +1 -0
- package/dist/css/37.chunk.css +3 -1
- package/dist/css/37.chunk.css.map +1 -0
- package/dist/css/38.chunk.css +36 -2
- package/dist/css/38.chunk.css.map +1 -0
- package/dist/css/4.chunk.css +5 -13
- package/dist/css/4.chunk.css.map +1 -0
- package/dist/css/44.chunk.css +1 -1
- package/dist/css/45.chunk.css +9 -0
- package/dist/css/45.chunk.css.map +1 -0
- package/dist/css/5.chunk.css +2 -8
- package/dist/css/5.chunk.css.map +1 -0
- package/dist/css/9.chunk.css +15 -7
- package/dist/css/lite-app.css.map +1 -0
- package/dist/libs/analytics/src/AnalyticsService.d.ts +52 -0
- package/dist/libs/analytics/src/clients/BaseAnalyticsClient.d.ts +24 -0
- package/dist/libs/analytics/src/clients/CollectionApiClient.d.ts +48 -0
- package/dist/libs/analytics/src/clients/DebuggerClient.d.ts +7 -0
- package/dist/libs/analytics/src/constants/ApplicationOptionsKey.d.ts +1 -0
- package/dist/libs/analytics/src/constants/CountryRegionMapping.d.ts +7 -0
- package/dist/libs/analytics/src/constants/Regions.d.ts +6 -0
- package/dist/libs/analytics/src/enrichers/BaseAnalyticsEnricher.d.ts +19 -0
- package/dist/libs/analytics/src/enrichers/CoreContextEnricher.d.ts +22 -0
- package/dist/libs/analytics/src/enrichers/UserDataEnricher.d.ts +10 -0
- package/dist/libs/analytics/src/enums/CountryCode.d.ts +5 -0
- package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +49 -5
- package/dist/libs/analytics/src/interfaces/VersionData.d.ts +4 -0
- package/dist/libs/analytics/src/models/CollectionEvent.d.ts +55 -0
- package/dist/libs/analytics/src/transport/EventTransport.d.ts +39 -0
- package/dist/libs/analytics/src/utils/CollectionApiClientHelper.d.ts +6 -0
- package/dist/libs/analytics/src/utils/DataFormatHelper.d.ts +14 -0
- package/dist/libs/analytics/src/utils/EventWhitelistHelper.d.ts +19 -0
- package/dist/libs/analytics/src/utils/TypeHelper.d.ts +4 -0
- package/dist/libs/analytics/src/utils/UploadDataFormatHelper.d.ts +10 -0
- package/dist/libs/analytics/src/utils/UserAgentHelper.d.ts +10 -0
- package/dist/libs/analytics/src/utils/VideoDataFormatHelper.d.ts +42 -0
- package/dist/libs/common/src/backbone/core/BaseAppRouter.d.ts +5 -1
- package/dist/libs/common/src/react/constants/ViewModelActions.d.ts +3 -0
- package/dist/libs/common/src/react/hooks/useViewModel.d.ts +4 -0
- package/dist/libs/common/src/react/interfaces/ApplicationState.d.ts +3 -1
- package/dist/libs/common/src/react/interfaces/ViewModelAction.d.ts +5 -0
- package/dist/libs/common/src/react/interfaces/ViewModelPayload.d.ts +5 -0
- package/dist/libs/common/src/react/reducers/ViewModelReducer.d.ts +3 -0
- package/dist/libs/common/src/react/utils/ArrayHelper.d.ts +1 -2
- package/dist/libs/shared/src/apps/content-updates/interfaces/VideoClassificationMapping.d.ts +2 -1
- package/dist/libs/shared/src/apps/upload/services/UploadService.d.ts +3 -2
- package/dist/libs/shared/src/components/lazy-image/LazyImage.d.ts +1 -1
- package/dist/libs/shared/src/components/search-bar/SearchBar.d.ts +5 -0
- package/dist/libs/shared/src/components/widgets/fixed-widget/FixedWidget.d.ts +4 -2
- package/dist/libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.d.ts +4 -3
- package/dist/libs/shared/src/constants/BootstrapKeys.d.ts +1 -0
- package/dist/libs/shared/src/constants/WithStatements.d.ts +1 -1
- package/dist/libs/shared/src/enums/CountryCode.d.ts +5 -0
- package/dist/libs/shared/src/enums/SubtitleExtractionOptions.d.ts +4 -0
- package/dist/libs/shared/src/enums/WidgetContents.d.ts +2 -1
- package/dist/libs/shared/src/flight-requests/FavouriteVideoRequests.d.ts +1 -1
- package/dist/libs/shared/src/flight-requests/PreferenceRequests.d.ts +4 -4
- package/dist/libs/shared/src/hooks/UseReorderedItems.d.ts +9 -0
- package/dist/libs/shared/src/interfaces/models/Config.d.ts +3 -1
- package/dist/libs/shared/src/interfaces/models/UserChannel.d.ts +7 -0
- package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
- package/dist/libs/shared/src/services/ConfigDataService.d.ts +1 -0
- package/dist/libs/shared/src/utils/AudienceHelper.d.ts +5 -1
- package/dist/projects/lite/src/apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown.d.ts +3 -2
- package/dist/projects/lite/src/apps/classrooms/components/tile-actions/TileActions.d.ts +1 -0
- package/dist/projects/lite/src/apps/classrooms/flight-requests/ClassroomRequests.d.ts +1 -1
- package/dist/projects/lite/src/apps/classrooms/views/add-students-to-classroom/AddStudentsToClassroomView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/create-classroom/CreateClassroomView.d.ts +3 -4
- package/dist/projects/lite/src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/delete-classroom/DeleteClassroomView.d.ts +4 -4
- package/dist/projects/lite/src/apps/classrooms/views/delete-classroom-group/DeleteClassroomGroupView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/edit-classroom/EditClassroomView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/remove-students-from-classroom/RemoveStudentsFromClassroomView.d.ts +3 -3
- package/dist/projects/lite/src/apps/content-updates/LiteContentUpdatesApplication.d.ts +1 -1
- package/dist/projects/lite/src/apps/default/LiteDefaultApplication.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/LitePlaylistsApplication.d.ts +2 -1
- package/dist/projects/lite/src/apps/playlists/views/delete-playlist/DeletePlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/views/edit-playlist/EditPlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/views/new-playlist/NewPlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/views/playlist/PlaylistViewUtils.d.ts +0 -8
- package/dist/projects/lite/src/apps/playlists/views/remove-video-from-playlist/RemoveVideoFromPlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/search/components/filter-actions/FilterActions.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-button/FilterButton.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/RadioFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/reset-button/ResetButton.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/search-filters/SearchFilters.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/interfaces/FilterProps.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/utils/FilterHelper.d.ts +4 -2
- package/dist/projects/lite/src/apps/subjects/LiteSubjectApplication.d.ts +2 -2
- package/dist/projects/lite/src/apps/upload/services/FlightVideoUploadDataService.d.ts +5 -0
- package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-student-popup/DeleteUploadedStudentPopup.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-teacher-popup/DeleteUploadedTeacherPopup.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/components/edit-uploaded-user-popup/EditUploadedUserPopup.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/components/manage-users-list/ManageUsersList.d.ts +3 -2
- package/dist/projects/lite/src/apps/user-manager/flight-requests/SchoolUserRequests.d.ts +3 -3
- package/dist/projects/lite/src/apps/user-manager/views/create-student/CreateStudentView.d.ts +3 -4
- package/dist/projects/lite/src/apps/user-manager/views/create-teacher/CreateTeacherView.d.ts +3 -4
- package/dist/projects/lite/src/apps/user-manager/views/edit-student/EditStudentView.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/views/edit-teacher/EditTeacherView.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/views/remove-user/RemoveUserView.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/views/student-upload-review/StudentUploadReviewView.d.ts +4 -2
- package/dist/projects/lite/src/apps/user-manager/views/teacher-upload-review/TeacherUploadReviewView.d.ts +4 -2
- package/dist/projects/lite/src/shared/components/immersive-reader/ImmersiveReader.d.ts +7 -2
- package/dist/projects/lite/src/shared/components/share/copy-embed-html/CopyEmbedHtml.d.ts +4 -2
- package/dist/projects/lite/src/shared/constants/LiteViewModels.d.ts +6 -0
- package/dist/projects/lite/src/shared/{contexts/player/PlayerContext.d.ts → hooks/useInitPlayerContext.d.ts} +4 -10
- package/dist/projects/lite/src/shared/hooks/useNavLock.d.ts +1 -0
- package/dist/projects/lite/src/shared/views/share/main-view/MainShareView.d.ts +3 -3
- package/dist/projects/lite/src/shared/views/share/settings-view/ShareSettingsView.d.ts +4 -3
- package/dist/projects/lite/src/startup/RegisterAnalytics.d.ts +3 -0
- package/dist/projects/lite/src/startup/index.d.ts +1 -0
- package/dist/scripts/0-525bd75473.chunk.js +1 -0
- package/dist/scripts/0.chunk.js +478 -1
- package/dist/scripts/0.chunk.js.map +1 -0
- package/dist/scripts/1-f6fa17226d.chunk.js +17 -0
- package/dist/scripts/1.chunk.js +621 -17
- package/dist/scripts/1.chunk.js.map +1 -0
- package/dist/scripts/10-f3b34b2d35.chunk.js +1 -0
- package/dist/scripts/10.chunk.js +400 -7
- package/dist/scripts/10.chunk.js.map +1 -0
- package/dist/scripts/11-a698af3f1c.chunk.js +1 -0
- package/dist/scripts/11.chunk.js +1289 -7
- package/dist/scripts/11.chunk.js.map +1 -0
- package/dist/scripts/12-9ace90fcbc.chunk.js +1 -0
- package/dist/scripts/12.chunk.js +1059 -7
- package/dist/scripts/12.chunk.js.map +1 -0
- package/dist/scripts/13-3a4f103546.chunk.js +1 -0
- package/dist/scripts/13.chunk.js +751 -7
- package/dist/scripts/13.chunk.js.map +1 -0
- package/dist/scripts/14-11868e2868.chunk.js +1 -0
- package/dist/scripts/14.chunk.js +425 -7
- package/dist/scripts/14.chunk.js.map +1 -0
- package/dist/scripts/15-78ff5e8be2.chunk.js +1 -0
- package/dist/scripts/15.chunk.js +609 -7
- package/dist/scripts/15.chunk.js.map +1 -0
- package/dist/scripts/16-22f6224811.chunk.js +1 -0
- package/dist/scripts/16.chunk.js +648 -7
- package/dist/scripts/16.chunk.js.map +1 -0
- package/dist/scripts/17-afe6281dd5.chunk.js +1 -0
- package/dist/scripts/17.chunk.js +541 -7
- package/dist/scripts/17.chunk.js.map +1 -0
- package/dist/scripts/18-47be31c0b6.chunk.js +1 -0
- package/dist/scripts/18.chunk.js +766 -7
- package/dist/scripts/18.chunk.js.map +1 -0
- package/dist/scripts/19-89c0b2c20e.chunk.js +1 -0
- package/dist/scripts/19.chunk.js +647 -7
- package/dist/scripts/19.chunk.js.map +1 -0
- package/dist/scripts/2-3b37480a80.chunk.js +7 -0
- package/dist/scripts/2.chunk.js +8259 -1
- package/dist/scripts/2.chunk.js.map +1 -0
- package/dist/scripts/20-32ac3fe0b9.chunk.js +1 -0
- package/dist/scripts/20.chunk.js +122 -7
- package/dist/scripts/20.chunk.js.map +1 -0
- package/dist/scripts/21-891207049a.chunk.js +1 -0
- package/dist/scripts/21.chunk.js +1571 -1
- package/dist/scripts/21.chunk.js.map +1 -0
- package/dist/scripts/22-24236e6723.chunk.js +1 -0
- package/dist/scripts/22.chunk.js +1387 -1
- package/dist/scripts/22.chunk.js.map +1 -0
- package/dist/scripts/23-7b425169bc.chunk.js +1 -0
- package/dist/scripts/23.chunk.js +1121 -1
- package/dist/scripts/23.chunk.js.map +1 -0
- package/dist/scripts/24-40edd30087.chunk.js +1 -0
- package/dist/scripts/24.chunk.js +1348 -1
- package/dist/scripts/24.chunk.js.map +1 -0
- package/dist/scripts/25-887b9ef587.chunk.js +1 -0
- package/dist/scripts/25.chunk.js +1137 -1
- package/dist/scripts/25.chunk.js.map +1 -0
- package/dist/scripts/26-cbe0ff0f77.chunk.js +1 -0
- package/dist/scripts/26.chunk.js +906 -1
- package/dist/scripts/26.chunk.js.map +1 -0
- package/dist/scripts/27-f26afdae78.chunk.js +1 -0
- package/dist/scripts/27.chunk.js +1143 -1
- package/dist/scripts/27.chunk.js.map +1 -0
- package/dist/scripts/28-70414fd373.chunk.js +1 -0
- package/dist/scripts/28.chunk.js +656 -1
- package/dist/scripts/28.chunk.js.map +1 -0
- package/dist/scripts/29-944b5c01a7.chunk.js +1 -0
- package/dist/scripts/29.chunk.js +616 -1
- package/dist/scripts/29.chunk.js.map +1 -0
- package/dist/scripts/3-233f573a92.chunk.js +1 -0
- package/dist/scripts/3.chunk.js +585 -1
- package/dist/scripts/3.chunk.js.map +1 -0
- package/dist/scripts/30-3a229887e9.chunk.js +1 -0
- package/dist/scripts/30.chunk.js +557 -1
- package/dist/scripts/30.chunk.js.map +1 -0
- package/dist/scripts/31-ab038bfc0c.chunk.js +1 -0
- package/dist/scripts/31.chunk.js +731 -1
- package/dist/scripts/31.chunk.js.map +1 -0
- package/dist/scripts/32-8bd6703eef.chunk.js +1 -0
- package/dist/scripts/32.chunk.js +957 -1
- package/dist/scripts/32.chunk.js.map +1 -0
- package/dist/scripts/{35-8b4ce9fc27.chunk.js → 33-4579af9cf9.chunk.js} +1 -1
- package/dist/scripts/33.chunk.js +938 -1
- package/dist/scripts/33.chunk.js.map +1 -0
- package/dist/scripts/{36-cbd8837f89.chunk.js → 34-d8b96d9f9f.chunk.js} +1 -1
- package/dist/scripts/34.chunk.js +523 -1
- package/dist/scripts/34.chunk.js.map +1 -0
- package/dist/scripts/35-666d815525.chunk.js +1 -0
- package/dist/scripts/35.chunk.js +414 -1
- package/dist/scripts/35.chunk.js.map +1 -0
- package/dist/scripts/36-02ce5f3538.chunk.js +1 -0
- package/dist/scripts/36.chunk.js +404 -1
- package/dist/scripts/36.chunk.js.map +1 -0
- package/dist/scripts/37-afd3d321e3.chunk.js +1 -0
- package/dist/scripts/37.chunk.js +245 -1
- package/dist/scripts/37.chunk.js.map +1 -0
- package/dist/scripts/{39-e2aa1689e2.chunk.js → 38-6ad53aa15b.chunk.js} +1 -1
- package/dist/scripts/38.chunk.js +343 -1
- package/dist/scripts/38.chunk.js.map +1 -0
- package/dist/scripts/{40-53d132e3b4.chunk.js → 39-46c747b1d9.chunk.js} +1 -1
- package/dist/scripts/39.chunk.js +318 -1
- package/dist/scripts/39.chunk.js.map +1 -0
- package/dist/scripts/4-6942fee782.chunk.js +1 -0
- package/dist/scripts/4.chunk.js +1030 -1
- package/dist/scripts/4.chunk.js.map +1 -0
- package/dist/scripts/{41-023d613070.chunk.js → 40-c1b8806b1c.chunk.js} +1 -1
- package/dist/scripts/40.chunk.js +236 -1
- package/dist/scripts/40.chunk.js.map +1 -0
- package/dist/scripts/{42-ba3779218d.chunk.js → 41-f4c23477e3.chunk.js} +1 -1
- package/dist/scripts/41.chunk.js +231 -1
- package/dist/scripts/41.chunk.js.map +1 -0
- package/dist/scripts/42-7a5b92d70b.chunk.js +1 -0
- package/dist/scripts/42.chunk.js +350 -1
- package/dist/scripts/42.chunk.js.map +1 -0
- package/dist/scripts/43-97193a87df.chunk.js +1 -0
- package/dist/scripts/43.chunk.js +225 -1
- package/dist/scripts/43.chunk.js.map +1 -0
- package/dist/scripts/{46-6501968ace.chunk.js → 44-7f92272274.chunk.js} +1 -1
- package/dist/scripts/44.chunk.js +318 -1
- package/dist/scripts/44.chunk.js.map +1 -0
- package/dist/scripts/45-265f1a7a42.chunk.js +1 -0
- package/dist/scripts/45.chunk.js +64 -1
- package/dist/scripts/45.chunk.js.map +1 -0
- package/dist/scripts/46-a594ad7eba.chunk.js +1 -0
- package/dist/scripts/46.chunk.js +108 -1
- package/dist/scripts/46.chunk.js.map +1 -0
- package/dist/scripts/47-99777c20cf.chunk.js +1 -0
- package/dist/scripts/47.chunk.js +110 -1
- package/dist/scripts/47.chunk.js.map +1 -0
- package/dist/scripts/48-9880523c82.chunk.js +1 -0
- package/dist/scripts/48.chunk.js +148 -1
- package/dist/scripts/48.chunk.js.map +1 -0
- package/dist/scripts/{50-00ffd5d7c6.chunk.js → 49-5e718594e5.chunk.js} +1 -1
- package/dist/scripts/49.chunk.js +142 -1
- package/dist/scripts/49.chunk.js.map +1 -0
- package/dist/scripts/5-2f631dcd74.chunk.js +1 -0
- package/dist/scripts/5.chunk.js +3262 -1
- package/dist/scripts/5.chunk.js.map +1 -0
- package/dist/scripts/50-8cb0d9cd7d.chunk.js +1 -0
- package/dist/scripts/50.chunk.js +145 -1
- package/dist/scripts/50.chunk.js.map +1 -0
- package/dist/scripts/{52-e5dfa5a640.chunk.js → 51-211b643ca5.chunk.js} +1 -1
- package/dist/scripts/51.chunk.js +176 -1
- package/dist/scripts/51.chunk.js.map +1 -0
- package/dist/scripts/{53-79d5905fc6.chunk.js → 52-bfb2683b5d.chunk.js} +1 -1
- package/dist/scripts/52.chunk.js +160 -1
- package/dist/scripts/52.chunk.js.map +1 -0
- package/dist/scripts/{54-4950ec1d52.chunk.js → 53-3cf5cd5f69.chunk.js} +1 -1
- package/dist/scripts/53.chunk.js +98 -1
- package/dist/scripts/53.chunk.js.map +1 -0
- package/dist/scripts/{55-accb81090d.chunk.js → 54-26807e3e49.chunk.js} +1 -1
- package/dist/scripts/54.chunk.js +48 -1
- package/dist/scripts/54.chunk.js.map +1 -0
- package/dist/scripts/55-d38be4860b.chunk.js +1 -0
- package/dist/scripts/55.chunk.js +99 -1
- package/dist/scripts/55.chunk.js.map +1 -0
- package/dist/scripts/56-d4abc25ec3.chunk.js +1 -0
- package/dist/scripts/56.chunk.js +64 -1
- package/dist/scripts/56.chunk.js.map +1 -0
- package/dist/scripts/57.chunk.js +72 -0
- package/dist/scripts/57.chunk.js.map +1 -0
- package/dist/scripts/58.chunk.js +73 -0
- package/dist/scripts/58.chunk.js.map +1 -0
- package/dist/scripts/59.chunk.js +70 -0
- package/dist/scripts/59.chunk.js.map +1 -0
- package/dist/scripts/6-4d72a3c3fc.chunk.js +1 -0
- package/dist/scripts/6.chunk.js +24 -1
- package/dist/scripts/6.chunk.js.map +1 -0
- package/dist/scripts/60.chunk.js +32 -0
- package/dist/scripts/60.chunk.js.map +1 -0
- package/dist/scripts/61.chunk.js +29 -0
- package/dist/scripts/61.chunk.js.map +1 -0
- package/dist/scripts/62.chunk.js +27 -0
- package/dist/scripts/62.chunk.js.map +1 -0
- package/dist/scripts/63.chunk.js +67 -0
- package/dist/scripts/63.chunk.js.map +1 -0
- package/dist/scripts/64.chunk.js +80 -0
- package/dist/scripts/64.chunk.js.map +1 -0
- package/dist/scripts/65.chunk.js +65 -0
- package/dist/scripts/65.chunk.js.map +1 -0
- package/dist/scripts/66.chunk.js +67 -0
- package/dist/scripts/66.chunk.js.map +1 -0
- package/dist/scripts/67.chunk.js +104 -0
- package/dist/scripts/67.chunk.js.map +1 -0
- package/dist/scripts/68.chunk.js +69 -0
- package/dist/scripts/68.chunk.js.map +1 -0
- package/dist/scripts/69.chunk.js +89 -0
- package/dist/scripts/69.chunk.js.map +1 -0
- package/dist/scripts/7-90ad392b55.chunk.js +1 -0
- package/dist/scripts/7.chunk.js +327 -1
- package/dist/scripts/7.chunk.js.map +1 -0
- package/dist/scripts/70.chunk.js +36 -0
- package/dist/scripts/70.chunk.js.map +1 -0
- package/dist/scripts/8.chunk.js +470 -0
- package/dist/scripts/8.chunk.js.map +1 -0
- package/dist/scripts/9-52877087ef.chunk.js +1 -0
- package/dist/scripts/9.chunk.js +471 -7
- package/dist/scripts/9.chunk.js.map +1 -0
- package/dist/scripts/bundle-99976c17a2.min.js +1 -0
- package/dist/scripts/bundle.js +34769 -1
- package/dist/scripts/bundle.js.map +1 -0
- package/dist/scripts/bundles.json +1 -1
- package/package.json +50 -49
- package/typings/libs/Trackers.d.ts +10 -0
- package/dist/css/33.chunk.css +0 -4
- package/dist/css/41.chunk.css +0 -4
- package/dist/css/46.chunk.css +0 -2
- package/dist/libs/shared/src/context/SearchAppContext.d.ts +0 -9
- package/dist/scripts/0-7ab5925809.chunk.js +0 -1
- package/dist/scripts/1-08c7a79a47.chunk.js +0 -1
- package/dist/scripts/10-20d3430ce2.chunk.js +0 -1
- package/dist/scripts/11-7a25650335.chunk.js +0 -1
- package/dist/scripts/12-6609af3add.chunk.js +0 -1
- package/dist/scripts/13-5adebd80b3.chunk.js +0 -1
- package/dist/scripts/14-dbd27fa3a5.chunk.js +0 -1
- package/dist/scripts/15-5a0e1ed526.chunk.js +0 -1
- package/dist/scripts/16-3adc733311.chunk.js +0 -1
- package/dist/scripts/17-a942a8ff32.chunk.js +0 -1
- package/dist/scripts/18-ab78fe1ad4.chunk.js +0 -1
- package/dist/scripts/19-04ba4906ea.chunk.js +0 -1
- package/dist/scripts/2-41fe2d7e77.chunk.js +0 -1
- package/dist/scripts/20-f0dcfc47a9.chunk.js +0 -1
- package/dist/scripts/21-33e50c0d6b.chunk.js +0 -1
- package/dist/scripts/22-d85dfba692.chunk.js +0 -1
- package/dist/scripts/23-90201310df.chunk.js +0 -1
- package/dist/scripts/24-bc8f0f5709.chunk.js +0 -1
- package/dist/scripts/25-317106a5da.chunk.js +0 -1
- package/dist/scripts/26-4a3372406a.chunk.js +0 -1
- package/dist/scripts/27-074f7ed617.chunk.js +0 -1
- package/dist/scripts/28-3f552efb1d.chunk.js +0 -1
- package/dist/scripts/29-3b0fed6546.chunk.js +0 -1
- package/dist/scripts/3-4c7cdc97d7.chunk.js +0 -7
- package/dist/scripts/30-efc1720b45.chunk.js +0 -1
- package/dist/scripts/31-fd10b2d2e3.chunk.js +0 -1
- package/dist/scripts/32-77df1d4c39.chunk.js +0 -1
- package/dist/scripts/33-7c092bbe19.chunk.js +0 -1
- package/dist/scripts/34-3c94a6fffe.chunk.js +0 -1
- package/dist/scripts/37-ecd001861c.chunk.js +0 -1
- package/dist/scripts/38-a42dc5fd6c.chunk.js +0 -1
- package/dist/scripts/4-9b843edce7.chunk.js +0 -1
- package/dist/scripts/43-9b84379d80.chunk.js +0 -1
- package/dist/scripts/44-1bedb97d4b.chunk.js +0 -1
- package/dist/scripts/45-b004111b2b.chunk.js +0 -1
- package/dist/scripts/47-cece788594.chunk.js +0 -1
- package/dist/scripts/48-722f37b837.chunk.js +0 -1
- package/dist/scripts/49-cb04b28057.chunk.js +0 -1
- package/dist/scripts/5-841e3d083b.chunk.js +0 -1
- package/dist/scripts/51-ed260ddadd.chunk.js +0 -1
- package/dist/scripts/56-83e51af2a6.chunk.js +0 -1
- package/dist/scripts/6-c429467dba.chunk.js +0 -1
- package/dist/scripts/7-3c52b41cbf.chunk.js +0 -1
- package/dist/scripts/9-fef5ef0698.chunk.js +0 -1
- package/dist/scripts/bundle-7782a79aa5.min.js +0 -1
package/dist/scripts/5.chunk.js
CHANGED
|
@@ -1 +1,3262 @@
|
|
|
1
|
-
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[5],{438:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(15),r=a(25),i=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function l(e,t,a){return{url:"/api/domain/v2/objects/"+t,key:`favourite:video:${t}:${e}`,data:{favouriteVideos:e},type:n.a.PUT,invalidationKeys:["favourite:videos:"+t,"video:is:favourited:"+t],error:a}}function c(e,t,a){return{url:`/api/domain/v2/objects/${t}/favouriteVideos/${e}`,key:`favourite:video:${t}:${e}`,type:n.a.DELETE,invalidationKeys:["favourite:videos:"+t,"video:is:favourited:"+t],error:a}}const s={favouriteVideos:(e,t)=>({url:`/api/domain/v2/objects/${e}/favouriteVideos?query=${`${r.a.VIDEO_COLLECTION}${function(e){return e?"&cursor="+e:""}(t)}`}`,key:`favourite:videos:${e}${t?":"+t:""}`}),updateIsVideoFavourited:(e,t,a,n)=>(a?l:c)(e,t,n),isFavourited(e,t){const a=t.slice().sort();return{url:`/api/domain/v2/objects?query=favouritedBy{id:${e}}&${a.map(e=>"id="+e).join("&")}`,key:`video:is:favourited:${e}:by:id:${a.join(",")}`,formatData:e=>{var t;if(!(null===(t=e)||void 0===t?void 0:t.length))return e;return e.map(e=>{var t,a;const{favouritedBy:n}=e,r=i(e,["favouritedBy"]);return Object.assign(Object.assign({},r),{isFavourited:!!(null===(a=null===(t=n)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)})})}}}}},444:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a(5),i=a(33),l=a(32),c=a(9);function s({backToName:e,appLink:t,color:a}){const s=e?r.a.getPhrase("shared.backButton","backTo",{backToName:e}):r.a.getPhrase("shared.backButton","back"),o="black"===a?"":"text-light";return n.createElement(l.a,{appLink:t,className:"d-inline-flex align-items-center h5 mb-0 "+o},n.createElement(i.a,{svgName:c.b.ChevronLeft,size:i.b.Medium}),n.createElement("span",{className:"ml-1"},s))}s.defaultProps={color:"black"}},483:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(64),r=a(3),i=a(10);function l(e,t){switch(t){case n.a.AddToPlaylist:return{application:r.a.PLAYLISTS,action:i.a.Playlists.ADD_TO_PLAYLIST,args:[e.id]};case n.a.Share:return{application:r.a.DEFAULT,action:i.a.Default.SHARE,args:[e.id],params:{entityType:"video"}}}}},550:function(e,t,a){"use strict";var n=a(0),r=a(31),i=a(44),l=a(444),c=a(436),s=a(123);function o(e){var t=e.video;return t.resources&&t.resources.data&&t.resources.data.length?n.createElement("div",{className:e.className},n.createElement("h2",{className:"h4"},"Resources"),t.resources.data.map((function(e,t){return n.createElement("div",{key:t},e.name)}))):n.createElement(n.Fragment,null)}var m=a(89),u=a.n(m),d=a(5),v=a(391),p=a(11),E=a(120),f=a(589),b=a.n(f);function g(e){var t=p.a.useBasicFetch(E.a.config),a=p.a.useBasicFetch({url:"/api/integrations/token/immersive-reader",key:"immersive:reader:token"});if(!t.data||!a.data)return n.createElement(n.Fragment,null);return e.title||(e.title=d.a.getPhrase("shared.immersiveReader","titleFallback")),n.createElement("div",{className:"".concat(b.a.button," ").concat(e.className||""),onClick:function(){var t={title:e.title,chunks:[{content:e.text}]},n=a.data,r=n.subdomain,i=n.token;v.launchAsync(i,r,t,{uiZIndex:5e3})}},n.createElement("svg",{viewBox:"0 0 40 37"},n.createElement("path",{d:"M37.4,0.9 L37.4,9.6 L35.4,9.6 L35.4,2.9 L24.4,2.9 C22.9,3.3 20,4.5 20,6 L20,17.2 L18,17.2 L18,6 C18,5 15.6,3.6 13.8,2.9 L2,2.9 L2,29 L12.4,29 L12.4,31 L0,31 L0,0.9 L14.1,0.9 L14.3,1 C15,1.2 17.5,2.2 18.9,3.7 C20.5,1.9 23.5,1.1 23.9,1 L24.1,1 L37.4,1 L37.4,0.9 Z",fill:"#000000"}),n.createElement("path",{d:"M27.4,37 L25.8,37 L18.4,29.4 L14,29.4 L14,21 L18.4,20.9 L26.1,13 L27.4,13 L27.4,37 Z M16,27.4 L19.2,27.4 L25.3,33.7 L25.3,16.6 L19.2,22.9 L15.9,22.9 L15.9,27.4 L16,27.4 Z",fill:"#0197F2"}),n.createElement("path",{d:"M31.3,32.7 L29.6,31.7 C29.6,31.7 31.7,28.3 31.7,25.2 C31.7,21.9 29.6,18.5 29.6,18.4 L31.3,17.4 C31.4,17.6 33.7,21.3 33.7,25.2 C33.7,28.8 31.4,32.6 31.3,32.7 Z",fill:"#0197F2"}),n.createElement("path",{d:"M36.4,36.2 L34.8,35 C34.8,35 38,30.8 38,25.2 C38,19.6 34.8,15.4 34.8,15.4 L36.4,14.2 C36.5,14.4 40,19 40,25.3 C40,31.5 36.5,36 36.4,36.2 Z",fill:"#0197F2"})))}var h=a(590),N=a.n(h);function y(e){var t=e.tags,a=e.className;return t&&t.data&&t.data.length?n.createElement("div",{className:a},n.createElement(i.b,{phrase:"tags"})," ",t.data.map((function(e,t){return n.createElement("span",{className:"badge mr-1 p-1 badge-light",key:t},e.name)}))):n.createElement(n.Fragment,null)}function L(e){var t=e.label,a=e.items,r=e.className;if(!(a&&a.data&&a.data.length))return n.createElement(n.Fragment,null);var i=a.data.map((function(e){return e.name})).join(", ");return n.createElement("div",{className:r},t,": ",i)}function k(e){var t=e.video,a=t.tags,r=t.rating,l=t.productionYear,c=t.productionCompanies,s=t.distributors,o=r&&r.code;return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(i.b,{phrase:"details"})),n.createElement("div",{className:"row no-gutters"},n.createElement("div",{className:"col-3"},o&&n.createElement("div",{className:"pb-2"},n.createElement(i.b,{phrase:"rating",options:{code:o}})),l&&n.createElement("div",{className:"pb-2"},n.createElement(i.b,{phrase:"productionYear",options:{year:l}}))),n.createElement("div",{className:"col-9"},n.createElement(L,{label:d.a.getPhrase("shared.videoDetails","productionCompanies"),items:c,className:"pb-2"}),n.createElement(L,{label:d.a.getPhrase("shared.videoDetails","distributors"),items:s,className:"pb-2"}),n.createElement(y,{tags:a,className:"pb-2"}))))}function w(e){var t=e.description,a=e.immersiveReaderTitle;return t?n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(i.b,{phrase:"description"}),n.createElement(g,{text:t,title:a,className:"pl-2"})),n.createElement("p",null,t)):n.createElement(n.Fragment,null)}function x(e){var t=e.video;return n.createElement(i.a.Provider,{value:"shared.videoDetails"},n.createElement("div",{className:"rounded border px-3 mb-3"},n.createElement(u.a,{autoHeight:!0,autoHeightMax:368},n.createElement("div",{className:"py-3"},n.createElement(k,{video:t}),n.createElement(w,{description:t.description,immersiveReaderTitle:t.name}),n.createElement("span",{className:"".concat(N.a.showGlance," cursor-pointer"),onClick:e.onClickShowSynopsis,role:"button",tabIndex:0},n.createElement("strong",null,n.createElement(i.b,{namespace:"shared.videoDetails",phrase:"showGlance"})))))))}var F=a(9),C=a(33),P=a(111),O=a(591),D=a.n(O);function T(e){var t=e.interactive,a=function(e){var t=e.owner;return t&&t.name&&t.surname?t.name.substring(0,1)+". "+t.surname:""}(t),r=function(e){var t,a,n,r,i;return null===(i=null===(r=null===(n=null===(a=null===(t=e.owner)||void 0===t?void 0:t.customers)||void 0===a?void 0:a.data)||void 0===n?void 0:n[0])||void 0===r?void 0:r.organisation)||void 0===i?void 0:i.name}(t);return n.createElement("div",{className:"border rounded w-33 py-3 px-1 d-flex align-items-center mr-3"},n.createElement("div",{className:"d-flex align-items-center w-100"},n.createElement(C.a,{className:"svg-container",svgName:F.b.Play,size:C.b.ExtraLarge}),n.createElement("span",{className:D.a.content},r&&n.createElement("small",null,a&&n.createElement(n.Fragment,null,a,", "),n.createElement("em",null,r)),n.createElement("h3",{className:"h6 mb-0 clamp-2 ".concat(D.a.clamped),title:t.name},t.name),n.createElement(C.a,{className:"svg-container align-middle mr-1",svgName:F.b.Preview}),n.createElement("span",{className:"text-info"},n.createElement(i.b,{namespace:"shared.interactives",phrase:"preview"}))),n.createElement(C.a,{className:"svg-container",svgName:F.b.More,size:C.b.ExtraLarge})))}function A(e){var t,a,r,l=e.video,c=null===(r=null===(a=null===(t=l)||void 0===t?void 0:t.interactives)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length;return n.createElement("div",{className:"pb-3"},n.createElement("h2",{className:"h4"},n.createElement(i.b,{namespace:"shared.interactives",phrase:"interactives"}),n.createElement(P.a,{className:"btn btn-outline-dark ml-3 align-middle",svgName:F.b.Plus},n.createElement(i.b,{namespace:"shared.interactives",phrase:"create"}))),n.createElement("div",{className:"d-flex align-items-stretch"},c?l.interactives.data.map((function(e){return n.createElement(T,{interactive:e,key:e.id})})):n.createElement("div",null,n.createElement(C.a,{className:"svg-container mr-2 align-top",svgName:F.b.Star}),n.createElement(i.b,{namespace:"shared.interactives",phrase:"empty"}))))}var S=a(27),_=a(125),j=a(426),I=a(592),R=a.n(I);function $(e){var t=e.clip,a=t.endTime-t.startTime,r=_.a.ToDisplayDuration(1e3*a),i=e.duration/1e3,l=t.startTime/i*100,c=a/i*100,s=n.createElement(S.Tooltip,{id:"tooltip-top"},r);return n.createElement("div",{className:"".concat(R.a.bar," rounded mt-2")},n.createElement(S.OverlayTrigger,{overlay:s},n.createElement("div",{className:"".concat(R.a.subBar," bg-primary rounded"),style:{width:"".concat(c,"%"),marginLeft:"".concat(l,"%")}})))}function M(e){var t=e.clip,a=t.endTime-t.startTime;return n.createElement("div",{className:"border rounded w-33 py-3 px-1 d-flex align-items-center mr-3 flex-wrap"},n.createElement("div",{className:"d-flex align-self-center w-100"},n.createElement(C.a,{className:"svg-container align-self-center",svgName:F.b.Play,size:C.b.ExtraLarge}),n.createElement("span",{className:R.a.content},n.createElement("div",{className:"d-flex"},n.createElement("h3",{className:"h6 mb-0 d-inline-block text-truncate",title:t.name},t.name),n.createElement("div",{className:"flex-shrink-0"},n.createElement(j.a,{type:j.b.Duration,data:1e3*a}))),t.description&&n.createElement("p",{className:"".concat(R.a.clampedDescription," mb-0 clamp-2"),title:t.description},t.description),n.createElement($,Object.assign({},e))),n.createElement(C.a,{className:"svg-container align-self-center",svgName:F.b.More,size:C.b.ExtraLarge})))}function V(e){var t,a,r,l=e.video,c=null===(r=null===(a=null===(t=l)||void 0===t?void 0:t.clips)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length;return n.createElement("div",{className:"pb-3"},n.createElement("h2",{className:"h4"},n.createElement(i.b,{namespace:"shared.clips",phrase:"clips"}),n.createElement(P.a,{className:"btn btn-outline-dark ml-3 align-middle",svgName:F.b.Plus},n.createElement(i.b,{namespace:"shared.clips",phrase:"create"}))),n.createElement("div",{className:"d-flex align-items-stretch"},c?l.clips.data.map((function(e){return n.createElement(M,{duration:l.duration,clip:e,key:e.id})})):n.createElement("div",null,n.createElement(C.a,{className:"svg-container mr-2 align-top",svgName:F.b.Star}),n.createElement(i.b,{namespace:"shared.clips",phrase:"empty"}))))}var B=a(65);function H(e){return function(t){var a=n.useCallback(t,[]);n.useEffect((function(){return window.addEventListener(e,a),function(){return window.removeEventListener(e,a)}}),[])}}var Y=H("scroll"),U=H("resize"),Z=a(483),K=a(10),z=a(3),G=a(121),q=a(451);function J(e){var t=e.video,a={application:z.a.DEFAULT,action:K.a.Default.SERIES,args:t.series?[t.series.id]:[]};return n.createElement("div",{className:"mb-2"},n.createElement("h1",{className:"h3 d-inline-block m-0"},!!t.series&&n.createElement(G.a,{video:t,appLink:a}),t.name),!!r.a.isFunction(e.setFavourite)&&n.createElement(q.a,{setFavourite:e.setFavourite,video:t,className:"d-inline-block ml-2 align-text-bottom"}))}function X(e){var t=e.video,a=t.rating,r=t.productionYear;return n.createElement("div",null,a&&n.createElement("span",{className:"badge badge-light p-1 mr-1"},a.code),r&&n.createElement("span",{className:"badge badge-light p-1 mr-1"},r))}var Q=a(64);function W(e){var t="btn btn-light float-right ml-2",a=n.useContext(s.a).getActionAppLink;return n.createElement(i.a.Provider,{value:"shared.playPage"},n.createElement("div",{className:"mt-3 clearfix"},n.createElement(P.a,{svgName:F.b.Plus,className:"btn btn-outline-secondary mr-2"},n.createElement(i.b,{phrase:"createInteractive"})),n.createElement(P.a,{svgName:F.b.Plus,className:"btn btn-outline-secondary mr-2"},n.createElement(i.b,{phrase:"createClip"})),n.createElement(P.a,{svgName:F.b.More,className:t},n.createElement(i.b,{phrase:"more"})),n.createElement(P.a,{svgName:F.b.Share,className:t,appLink:a(e.video,Q.a.Share)},n.createElement(i.b,{phrase:"share"})),n.createElement(P.a,{svgName:F.b.AddToPlaylists,className:t},n.createElement(i.b,{phrase:"addToPlaylist"})),n.createElement(P.a,{svgName:F.b.Plus,className:t},n.createElement(i.b,{phrase:"favourite"}))))}var ee=a(392),te=a(397),ae=a(593),ne=a.n(ae);function re(e){var t=e.video,a=e.onClickFullDescription;if(!t.glance||!t.glance.content||"text/markdown"!==t.glance.format)return a(),n.createElement(n.Fragment,null);var r=[{className:ne.a.topLeft,url:"https://i.imgur.com/3GafOwO.png"},{className:ne.a.topRight,url:"https://i.imgur.com/wcNZVth.png"},{className:ne.a.bottomLeft,url:"https://i.imgur.com/vUEo7H2.png"},{className:ne.a.bottomRight,url:"https://i.imgur.com/R3gcyGY.png"}];return n.createElement("div",{className:"rounded border px-3 position-relative d-flex align-items-center justify-content-center ".concat(ne.a.container)},n.createElement("div",{className:"".concat(ne.a.content," py-5")},n.createElement("h2",null,n.createElement(i.b,{namespace:"shared.synopsis",phrase:"videoAtAGlance"})),n.createElement("div",{dangerouslySetInnerHTML:{__html:ee(t.glance.content)}}),n.createElement(te.a,{onClick:e.onClickFullDescription,className:"cursor-pointer d-inline-block"},n.createElement("strong",null,n.createElement(i.b,{namespace:"shared.synopsis",phrase:"showFullDescription"})))),r.map((function(e,t){return n.createElement("div",{key:t,className:"".concat(e.className," ").concat(ne.a.background),style:{backgroundImage:"url('".concat(e.url,"')")}})})))}function ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var l,c=e[Symbol.iterator]();!(n=(l=c.next()).done)&&(a.push(l.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return le(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return le(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,"a",(function(){return oe}));var ce=function(e){return{application:z.a.DEFAULT,action:K.a.Default.PLAY_VIDEO,args:[e.id]}},se=function(e){return{application:z.a.DEFAULT,action:K.a.Default.SERIES,args:[e.id]}};function oe(e){var t=e.video,a=e.relatedVideos,m=n.useContext(B.a),u=m.setViewportPosition,d=m.setIsOnPlayPage,v=ie(n.useState(!0),2),p=v[0],E=v[1],f=n.useRef(null),b=n.useCallback((function(e){e&&(f.current=e,g())}),[]),g=n.useMemo((function(){return r.a.throttle(function(e,t){return function(){if(e.current){var a=e.current.getBoundingClientRect(),n=window.pageXOffset||document.documentElement.scrollLeft,r=window.pageYOffset||document.documentElement.scrollTop;a.top<-a.height?t(null):t({top:r+a.top,left:n+a.left,width:a.width})}}}(f,u),100,{leading:!0,trailing:!0})}),[]);return Y(g),U(g),n.useEffect((function(){return d(!0),function(){u(null),d(!1)}}),[]),n.createElement(s.a.Provider,{value:{getActionAppLink:Z.a}},n.createElement("div",{className:"d-flex justify-content-between"},n.createElement(l.a,{appLink:{application:z.a.DASHBOARD,action:K.a.Dashboard.HOME},backToName:"Home"}),n.createElement("button",{className:"btn btn-light"},n.createElement(i.b,{namespace:"shared.playPage",phrase:"classroomMode"}))),n.createElement("div",{className:"embed-responsive embed-responsive-16by9 my-3",ref:b}),n.createElement(J,{video:t,setFavourite:e.setFavourite}),n.createElement(X,{video:t}),n.createElement(W,{video:t}),n.createElement("hr",null),p?n.createElement(re,{video:t,onClickFullDescription:function(){return E(!1)}}):n.createElement(x,{video:t,onClickShowSynopsis:function(){return E(!0)}}),n.createElement(o,{video:t,className:"my-3"}),n.createElement(A,{video:t}),n.createElement(V,{video:t}),!!a&&n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4 mt-3"},n.createElement(i.b,{namespace:"shared.playPage",phrase:"relatedVideos"})),n.createElement(c.c,{videos:a,getSeriesAppLink:se,getVideoAppLink:ce,setFavourite:e.setFavourite})))}},589:function(e,t,a){e.exports={button:"_10_KK"}},590:function(e,t,a){e.exports={showGlance:"_2fhqC"}},591:function(e,t,a){e.exports={content:"_1D6Hx",clamped:"_2sHZC"}},592:function(e,t,a){e.exports={content:"_22tRu",clamped:"_LK8Q",clampedDescription:"_18yOL",bar:"_3-kb8",subBar:"_1ROlV"}},593:function(e,t,a){e.exports={container:"_1XOYA",content:"UcxNO",background:"_3gpaY",topLeft:"_2s7I6",bottomLeft:"_23UKL",topRight:"ec_-l",bottomRight:"_1xMKp"}}}]);
|
|
1
|
+
(window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[5],{
|
|
2
|
+
|
|
3
|
+
/***/ "../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx":
|
|
4
|
+
/*!**************************************************************************************************************************!*\
|
|
5
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx ***!
|
|
6
|
+
\**************************************************************************************************************************/
|
|
7
|
+
/*! exports provided: PlaylistItem */
|
|
8
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
9
|
+
|
|
10
|
+
"use strict";
|
|
11
|
+
__webpack_require__.r(__webpack_exports__);
|
|
12
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlaylistItem", function() { return PlaylistItem; });
|
|
13
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
14
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
15
|
+
/* harmony import */ var _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../utils/ImageHelper */ "../../libs/shared/src/utils/ImageHelper.ts");
|
|
16
|
+
/* harmony import */ var _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../utils/AudienceHelper */ "../../libs/shared/src/utils/AudienceHelper.ts");
|
|
17
|
+
/* harmony import */ var _enums_Images__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../enums/Images */ "../../libs/shared/src/enums/Images.ts");
|
|
18
|
+
/* harmony import */ var _components_text_Text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
|
|
19
|
+
/* harmony import */ var _components_app_link_AppLink__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../components/app-link/AppLink */ "../../libs/shared/src/components/app-link/AppLink.tsx");
|
|
20
|
+
/* harmony import */ var _components_thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../components/thumbnails/base/BaseThumbnail */ "../../libs/shared/src/components/thumbnails/base/BaseThumbnail.tsx");
|
|
21
|
+
/* harmony import */ var _components_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../components/thumbnails/base/ThumbnailFallback */ "../../libs/shared/src/components/thumbnails/base/ThumbnailFallback.tsx");
|
|
22
|
+
/* harmony import */ var _components_audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../components/audience-label/AudienceLabel */ "../../libs/shared/src/components/audience-label/AudienceLabel.tsx");
|
|
23
|
+
/* harmony import */ var _playlist_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./playlist.scss */ "../../libs/shared/src/apps/playlists/components/playlist-list/playlist.scss");
|
|
24
|
+
/* harmony import */ var _playlist_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_playlist_scss__WEBPACK_IMPORTED_MODULE_9__);
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
function PlaylistItem(props) {
|
|
36
|
+
const imageUrl = _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_1__["ImageHelper"].createUrl(props.data.cover && props.data.cover.url, {
|
|
37
|
+
size: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ImageSize"].Medium,
|
|
38
|
+
resizeType: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ResizeType"].Cover
|
|
39
|
+
});
|
|
40
|
+
const audiences = props.data.subjectPresentationAudiences && props.data.subjectPresentationAudiences.data;
|
|
41
|
+
const filteredAudiences = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__["AudienceHelper"].getSortedPresentationAudiences(audiences, props.presentationAudiences);
|
|
42
|
+
const mergedAudience = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__["AudienceHelper"].getMergedPresentationAudienceString(filteredAudiences);
|
|
43
|
+
const count = !!props.showCount && !!props.data.videos && props.data.videos.count;
|
|
44
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_app_link_AppLink__WEBPACK_IMPORTED_MODULE_5__["AppLink"], {
|
|
45
|
+
appLink: props.appLink
|
|
46
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_6__["BaseThumbnail"], {
|
|
47
|
+
data: imageUrl,
|
|
48
|
+
className: _playlist_scss__WEBPACK_IMPORTED_MODULE_9___default.a.playlistItem
|
|
49
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_7__["ThumbnailFallback"], {
|
|
50
|
+
type: _components_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_7__["ThumbnailFallbackType"].Playlist
|
|
51
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
52
|
+
className: `text-white ${_playlist_scss__WEBPACK_IMPORTED_MODULE_9___default.a.playlistMetadata}`
|
|
53
|
+
}, Number.isInteger(count) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
|
|
54
|
+
namespace: 'shared.playlistItem',
|
|
55
|
+
phrase: 'videos',
|
|
56
|
+
options: {
|
|
57
|
+
smartCount: count
|
|
58
|
+
}
|
|
59
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h5", {
|
|
60
|
+
className: 'text-shadow mb-0'
|
|
61
|
+
}, props.data.name), !!audiences && !!audiences.length && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__["AudienceLabel"], {
|
|
62
|
+
audience: mergedAudience,
|
|
63
|
+
border: 'white'
|
|
64
|
+
}))));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/***/ }),
|
|
68
|
+
|
|
69
|
+
/***/ "../../libs/shared/src/apps/playlists/components/playlist-list/playlist.scss":
|
|
70
|
+
/*!***********************************************************************************************************************!*\
|
|
71
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/playlist.scss ***!
|
|
72
|
+
\***********************************************************************************************************************/
|
|
73
|
+
/*! no static exports found */
|
|
74
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
75
|
+
|
|
76
|
+
// extracted by mini-css-extract-plugin
|
|
77
|
+
module.exports = {"basePlaylistItem":"cv--basePlaylistItem--2nvrp","playlistItem":"cv--playlistItem--6o0Z2","playlistMetadata":"cv--playlistMetadata--3MCKL","partialHeading":"cv--partialHeading--13tO6"};
|
|
78
|
+
|
|
79
|
+
/***/ }),
|
|
80
|
+
|
|
81
|
+
/***/ "../../libs/shared/src/components/audience-label/AudienceLabel.tsx":
|
|
82
|
+
/*!*************************************************************************************************************!*\
|
|
83
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/audience-label/AudienceLabel.tsx ***!
|
|
84
|
+
\*************************************************************************************************************/
|
|
85
|
+
/*! exports provided: AudienceLabel, AudienceLabelList */
|
|
86
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
87
|
+
|
|
88
|
+
"use strict";
|
|
89
|
+
__webpack_require__.r(__webpack_exports__);
|
|
90
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AudienceLabel", function() { return AudienceLabel; });
|
|
91
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AudienceLabelList", function() { return AudienceLabelList; });
|
|
92
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
93
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
94
|
+
/* harmony import */ var _audience_label_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audience-label.scss */ "../../libs/shared/src/components/audience-label/audience-label.scss");
|
|
95
|
+
/* harmony import */ var _audience_label_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_audience_label_scss__WEBPACK_IMPORTED_MODULE_1__);
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
function AudienceLabel(props) {
|
|
99
|
+
if (!props.audience) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
100
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
101
|
+
className: `border rounded-pill d-inline-block px-2 mt-1 ${'border-' + props.border}`
|
|
102
|
+
}, props.audience.name);
|
|
103
|
+
}
|
|
104
|
+
function AudienceLabelList(props) {
|
|
105
|
+
if (!props.audiences || !props.audiences.length) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
106
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, props.audiences.map((a, idx) => react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
|
|
107
|
+
key: idx,
|
|
108
|
+
className: _audience_label_scss__WEBPACK_IMPORTED_MODULE_1___default.a.audienceLabelListItem
|
|
109
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](AudienceLabel, {
|
|
110
|
+
audience: a,
|
|
111
|
+
border: props.border
|
|
112
|
+
}))));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/***/ }),
|
|
116
|
+
|
|
117
|
+
/***/ "../../libs/shared/src/components/audience-label/audience-label.scss":
|
|
118
|
+
/*!***************************************************************************************************************!*\
|
|
119
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/audience-label/audience-label.scss ***!
|
|
120
|
+
\***************************************************************************************************************/
|
|
121
|
+
/*! no static exports found */
|
|
122
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
123
|
+
|
|
124
|
+
// extracted by mini-css-extract-plugin
|
|
125
|
+
module.exports = {"audienceLabelListItem":"cv--audienceLabelListItem--2YGVO"};
|
|
126
|
+
|
|
127
|
+
/***/ }),
|
|
128
|
+
|
|
129
|
+
/***/ "../../libs/shared/src/components/forms/form-buttons/FormButtons.tsx":
|
|
130
|
+
/*!***************************************************************************************************************!*\
|
|
131
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx ***!
|
|
132
|
+
\***************************************************************************************************************/
|
|
133
|
+
/*! exports provided: FormButtons */
|
|
134
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
135
|
+
|
|
136
|
+
"use strict";
|
|
137
|
+
__webpack_require__.r(__webpack_exports__);
|
|
138
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormButtons", function() { return FormButtons; });
|
|
139
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
140
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
141
|
+
/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
|
|
142
|
+
/* harmony import */ var _hooks_UseCanSubmitForm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../hooks/UseCanSubmitForm */ "../../libs/shared/src/hooks/UseCanSubmitForm.ts");
|
|
143
|
+
/* harmony import */ var _spinner_button_SpinnerButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../spinner-button/SpinnerButton */ "../../libs/shared/src/components/spinner-button/SpinnerButton.tsx");
|
|
144
|
+
/* harmony import */ var _text_Text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../text/Text */ "../../libs/shared/src/components/text/Text.tsx");
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
const namespace = 'shared.formButtons';
|
|
151
|
+
const ENTER_KEY_CODE = 13;
|
|
152
|
+
function FormButtons(props) {
|
|
153
|
+
const formikProps = Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
|
|
154
|
+
const canSubmit = Object(_hooks_UseCanSubmitForm__WEBPACK_IMPORTED_MODULE_2__["useCanSubmitForm"])(formikProps);
|
|
155
|
+
/**
|
|
156
|
+
* This hook listens to "Enter" keypress events, and submits the form if there
|
|
157
|
+
* are no errors. This prevents any edge cases where submitting doesn't work on
|
|
158
|
+
* Enter normally, such as when a custom component is in focus.
|
|
159
|
+
*/
|
|
160
|
+
|
|
161
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
|
|
162
|
+
function onKeyPress(e) {
|
|
163
|
+
if (e.keyCode !== ENTER_KEY_CODE || !canSubmit) return;
|
|
164
|
+
formikProps.validateForm().then(errors => {
|
|
165
|
+
if (!Object.keys(errors).length) formikProps.submitForm();
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
window.addEventListener('keypress', onKeyPress);
|
|
170
|
+
return () => window.removeEventListener('keypress', onKeyPress);
|
|
171
|
+
}, [canSubmit]);
|
|
172
|
+
let phraseKey = 'save';
|
|
173
|
+
if (props.isNew) phraseKey = 'create';
|
|
174
|
+
if (props.hasNext) phraseKey = 'next';
|
|
175
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_spinner_button_SpinnerButton__WEBPACK_IMPORTED_MODULE_3__["SpinnerButton"], {
|
|
176
|
+
showSpinner: formikProps.isSubmitting,
|
|
177
|
+
type: 'submit',
|
|
178
|
+
disabled: !canSubmit
|
|
179
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
|
|
180
|
+
namespace: namespace,
|
|
181
|
+
phrase: phraseKey
|
|
182
|
+
}));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/***/ }),
|
|
186
|
+
|
|
187
|
+
/***/ "../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx":
|
|
188
|
+
/*!*************************************************************************************************************!*\
|
|
189
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-checkbox/Checkbox.tsx ***!
|
|
190
|
+
\*************************************************************************************************************/
|
|
191
|
+
/*! exports provided: Checkbox */
|
|
192
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
193
|
+
|
|
194
|
+
"use strict";
|
|
195
|
+
__webpack_require__.r(__webpack_exports__);
|
|
196
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return Checkbox; });
|
|
197
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
198
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
199
|
+
|
|
200
|
+
Checkbox.defaultProps = {
|
|
201
|
+
checked: false,
|
|
202
|
+
label: '',
|
|
203
|
+
className: ''
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Use this checkbox outside of Formik contexts
|
|
207
|
+
*/
|
|
208
|
+
|
|
209
|
+
function Checkbox(props) {
|
|
210
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
211
|
+
className: `custom-control custom-checkbox ${props.className}`
|
|
212
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", {
|
|
213
|
+
type: 'checkbox',
|
|
214
|
+
className: 'custom-control-input',
|
|
215
|
+
id: props.id,
|
|
216
|
+
name: props.name,
|
|
217
|
+
checked: props.checked,
|
|
218
|
+
onChange: props.onChange
|
|
219
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", {
|
|
220
|
+
className: 'custom-control-label cursor-pointer',
|
|
221
|
+
htmlFor: props.id
|
|
222
|
+
}, props.label));
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/***/ }),
|
|
226
|
+
|
|
227
|
+
/***/ "../../libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx":
|
|
228
|
+
/*!*****************************************************************************************************************!*\
|
|
229
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx ***!
|
|
230
|
+
\*****************************************************************************************************************/
|
|
231
|
+
/*! exports provided: FormCheckbox */
|
|
232
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
233
|
+
|
|
234
|
+
"use strict";
|
|
235
|
+
__webpack_require__.r(__webpack_exports__);
|
|
236
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormCheckbox", function() { return FormCheckbox; });
|
|
237
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
238
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
239
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
240
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
|
|
241
|
+
/* harmony import */ var _form_field_FormField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../form-field/FormField */ "../../libs/shared/src/components/forms/form-field/FormField.tsx");
|
|
242
|
+
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
243
|
+
var t = {};
|
|
244
|
+
|
|
245
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
246
|
+
|
|
247
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
248
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
249
|
+
}
|
|
250
|
+
return t;
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Use this checkbox within Formik contexts
|
|
258
|
+
*/
|
|
259
|
+
|
|
260
|
+
function FormCheckbox(props) {
|
|
261
|
+
const {
|
|
262
|
+
label
|
|
263
|
+
} = props,
|
|
264
|
+
fieldProps = __rest(props, ["label"]);
|
|
265
|
+
|
|
266
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"].Group, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
267
|
+
className: 'custom-control custom-checkbox'
|
|
268
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_form_field_FormField__WEBPACK_IMPORTED_MODULE_2__["FieldWrapper"], Object.assign({
|
|
269
|
+
className: 'custom-control-input'
|
|
270
|
+
}, fieldProps)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"].Label, {
|
|
271
|
+
className: 'custom-control-label',
|
|
272
|
+
htmlFor: fieldProps.id
|
|
273
|
+
}, label)));
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/***/ }),
|
|
277
|
+
|
|
278
|
+
/***/ "../../libs/shared/src/components/forms/form-field/CharacterCounter.tsx":
|
|
279
|
+
/*!******************************************************************************************************************!*\
|
|
280
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-field/CharacterCounter.tsx ***!
|
|
281
|
+
\******************************************************************************************************************/
|
|
282
|
+
/*! exports provided: CharacterCounter */
|
|
283
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
284
|
+
|
|
285
|
+
"use strict";
|
|
286
|
+
__webpack_require__.r(__webpack_exports__);
|
|
287
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CharacterCounter", function() { return CharacterCounter; });
|
|
288
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
289
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
290
|
+
/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
function CharacterCounter(props) {
|
|
294
|
+
const {
|
|
295
|
+
values
|
|
296
|
+
} = Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
|
|
297
|
+
const field = values[props.fieldName];
|
|
298
|
+
if (typeof field !== 'string') return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
299
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
300
|
+
className: 'float-right text-muted'
|
|
301
|
+
}, field.length, "/", props.limit);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/***/ }),
|
|
305
|
+
|
|
306
|
+
/***/ "../../libs/shared/src/components/forms/form-field/FormField.tsx":
|
|
307
|
+
/*!***********************************************************************************************************!*\
|
|
308
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-field/FormField.tsx ***!
|
|
309
|
+
\***********************************************************************************************************/
|
|
310
|
+
/*! exports provided: FieldWrapper, FormField */
|
|
311
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
312
|
+
|
|
313
|
+
"use strict";
|
|
314
|
+
__webpack_require__.r(__webpack_exports__);
|
|
315
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FieldWrapper", function() { return FieldWrapper; });
|
|
316
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormField", function() { return FormField; });
|
|
317
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
318
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
319
|
+
/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
|
|
320
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
321
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_2__);
|
|
322
|
+
/* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
|
|
323
|
+
/* harmony import */ var _utils_FormHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../utils/FormHelper */ "../../libs/shared/src/utils/FormHelper.ts");
|
|
324
|
+
/* harmony import */ var _CharacterCounter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CharacterCounter */ "../../libs/shared/src/components/forms/form-field/CharacterCounter.tsx");
|
|
325
|
+
/* harmony import */ var _form_checkbox_FormCheckbox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../form-checkbox/FormCheckbox */ "../../libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx");
|
|
326
|
+
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
327
|
+
var t = {};
|
|
328
|
+
|
|
329
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
330
|
+
|
|
331
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
332
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
333
|
+
}
|
|
334
|
+
return t;
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
function FieldWrapper(props) {
|
|
345
|
+
const {
|
|
346
|
+
children
|
|
347
|
+
} = props,
|
|
348
|
+
fieldProps = __rest(props, ["children"]);
|
|
349
|
+
|
|
350
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["Field"], Object.assign({}, fieldProps), _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__["FunctionHelper"].isFunction(children) ? f => children(f) : react__WEBPACK_IMPORTED_MODULE_0__["Children"].count(children) ? children : null);
|
|
351
|
+
}
|
|
352
|
+
function FormField(props) {
|
|
353
|
+
const {
|
|
354
|
+
label,
|
|
355
|
+
className,
|
|
356
|
+
showCharacterCounter
|
|
357
|
+
} = props,
|
|
358
|
+
fieldProps = __rest(props, ["label", "className", "showCharacterCounter"]);
|
|
359
|
+
|
|
360
|
+
const {
|
|
361
|
+
errors,
|
|
362
|
+
touched
|
|
363
|
+
} = Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
|
|
364
|
+
if (fieldProps.type === 'checkbox') return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_form_checkbox_FormCheckbox__WEBPACK_IMPORTED_MODULE_6__["FormCheckbox"], Object.assign({}, props));
|
|
365
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_2__["Form"].Group, null, !!label && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_2__["Form"].Label, {
|
|
366
|
+
htmlFor: fieldProps.id
|
|
367
|
+
}, label), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](FieldWrapper, Object.assign({
|
|
368
|
+
className: _utils_FormHelper__WEBPACK_IMPORTED_MODULE_4__["FormHelper"].getCustomFormControlClassName(errors, touched, fieldProps.name, className)
|
|
369
|
+
}, fieldProps)), !!showCharacterCounter && !!fieldProps.maxLength && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_CharacterCounter__WEBPACK_IMPORTED_MODULE_5__["CharacterCounter"], {
|
|
370
|
+
fieldName: fieldProps.name,
|
|
371
|
+
limit: fieldProps.maxLength
|
|
372
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["ErrorMessage"], {
|
|
373
|
+
name: fieldProps.name
|
|
374
|
+
}, errorMessage => react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_2__["Form"].Control.Feedback, {
|
|
375
|
+
type: 'invalid'
|
|
376
|
+
}, errorMessage)));
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/***/ }),
|
|
380
|
+
|
|
381
|
+
/***/ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx":
|
|
382
|
+
/*!***************************************************************************************************************!*\
|
|
383
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx ***!
|
|
384
|
+
\***************************************************************************************************************/
|
|
385
|
+
/*! exports provided: FormWrapper, useFormikContextWrapper */
|
|
386
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
387
|
+
|
|
388
|
+
"use strict";
|
|
389
|
+
__webpack_require__.r(__webpack_exports__);
|
|
390
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormWrapper", function() { return FormWrapper; });
|
|
391
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useFormikContextWrapper", function() { return useFormikContextWrapper; });
|
|
392
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
393
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
394
|
+
/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
|
|
395
|
+
/* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
|
|
396
|
+
/* harmony import */ var _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
|
|
397
|
+
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
398
|
+
var t = {};
|
|
399
|
+
|
|
400
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
401
|
+
|
|
402
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
403
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
404
|
+
}
|
|
405
|
+
return t;
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
function omitNullInitialValues(initialValues) {
|
|
414
|
+
const values = _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].deepClone(initialValues);
|
|
415
|
+
Object.keys(values).forEach(key => {
|
|
416
|
+
if (!values.hasOwnProperty(key)) return;
|
|
417
|
+
if (_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].isObject(values[key])) values[key] = omitNullInitialValues(values[key]);else if (values[key] === null) delete values[key];
|
|
418
|
+
});
|
|
419
|
+
return values;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
FormWrapper.defaultProps = {
|
|
423
|
+
castInitialValues: true,
|
|
424
|
+
castValuesOnSubmit: true
|
|
425
|
+
};
|
|
426
|
+
function FormWrapper(props) {
|
|
427
|
+
const {
|
|
428
|
+
castInitialValues,
|
|
429
|
+
castValuesOnSubmit,
|
|
430
|
+
initialValues,
|
|
431
|
+
onSubmit,
|
|
432
|
+
resetOnSubmit
|
|
433
|
+
} = props,
|
|
434
|
+
formikProps = __rest(props, ["castInitialValues", "castValuesOnSubmit", "initialValues", "onSubmit", "resetOnSubmit"]);
|
|
435
|
+
/**
|
|
436
|
+
* If castInitialValues is true, cast initialValues to the validationSchema.
|
|
437
|
+
* This will ensure that any data fetched from the api conforms to the expected form data shape.
|
|
438
|
+
*/
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
const formattedInitialValues = castInitialValues && props.validationSchema ? props.validationSchema.cast(omitNullInitialValues(initialValues)) : initialValues;
|
|
442
|
+
|
|
443
|
+
const onSubmitHandler = (values, {
|
|
444
|
+
setSubmitting,
|
|
445
|
+
resetForm
|
|
446
|
+
}) => {
|
|
447
|
+
/**
|
|
448
|
+
* validationSchema.cast will coerce the values to the types defined in validationSchema.
|
|
449
|
+
* This is useful for trimming inputs:
|
|
450
|
+
* e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.
|
|
451
|
+
*/
|
|
452
|
+
const formattedData = castValuesOnSubmit && props.validationSchema ? props.validationSchema.cast(values) : values;
|
|
453
|
+
onSubmit(formattedData, () => {
|
|
454
|
+
resetOnSubmit && resetForm();
|
|
455
|
+
setSubmitting(false);
|
|
456
|
+
});
|
|
457
|
+
};
|
|
458
|
+
|
|
459
|
+
const initialStatus = {
|
|
460
|
+
allowInitialSubmit: props.allowInitialSubmit
|
|
461
|
+
};
|
|
462
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["Formik"], Object.assign({
|
|
463
|
+
enableReinitialize: true
|
|
464
|
+
}, formikProps, {
|
|
465
|
+
initialValues: formattedInitialValues,
|
|
466
|
+
onSubmit: onSubmitHandler,
|
|
467
|
+
initialStatus: initialStatus
|
|
468
|
+
}), _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__["FunctionHelper"].isFunction(props.children) ? f => props.children(f) : react__WEBPACK_IMPORTED_MODULE_0__["Children"].count(props.children) ? props.children : null);
|
|
469
|
+
}
|
|
470
|
+
function useFormikContextWrapper() {
|
|
471
|
+
return Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/***/ }),
|
|
475
|
+
|
|
476
|
+
/***/ "../../libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx":
|
|
477
|
+
/*!**************************************************************************************************************************************!*\
|
|
478
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx ***!
|
|
479
|
+
\**************************************************************************************************************************************/
|
|
480
|
+
/*! exports provided: PlaylistWidgetItem */
|
|
481
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
482
|
+
|
|
483
|
+
"use strict";
|
|
484
|
+
__webpack_require__.r(__webpack_exports__);
|
|
485
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlaylistWidgetItem", function() { return PlaylistWidgetItem; });
|
|
486
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
487
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
488
|
+
/* harmony import */ var _apps_playlists_components_playlist_list_PlaylistItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../apps/playlists/components/playlist-list/PlaylistItem */ "../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx");
|
|
489
|
+
/* harmony import */ var _playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./playlist-widget-item.scss */ "../../libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss");
|
|
490
|
+
/* harmony import */ var _playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2__);
|
|
491
|
+
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
492
|
+
var t = {};
|
|
493
|
+
|
|
494
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
495
|
+
|
|
496
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
497
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
498
|
+
}
|
|
499
|
+
return t;
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
function PlaylistWidgetItem(props) {
|
|
506
|
+
const {
|
|
507
|
+
context
|
|
508
|
+
} = props,
|
|
509
|
+
otherProps = __rest(props, ["context"]);
|
|
510
|
+
|
|
511
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
512
|
+
className: `position-relative p-1 flex-shrink-0 ${_playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.width}`
|
|
513
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_apps_playlists_components_playlist_list_PlaylistItem__WEBPACK_IMPORTED_MODULE_1__["PlaylistItem"], Object.assign({}, otherProps)));
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/***/ }),
|
|
517
|
+
|
|
518
|
+
/***/ "../../libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss":
|
|
519
|
+
/*!*****************************************************************************************************************************************!*\
|
|
520
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss ***!
|
|
521
|
+
\*****************************************************************************************************************************************/
|
|
522
|
+
/*! no static exports found */
|
|
523
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
524
|
+
|
|
525
|
+
// extracted by mini-css-extract-plugin
|
|
526
|
+
module.exports = {"width":"cv--width--wNWEd"};
|
|
527
|
+
|
|
528
|
+
/***/ }),
|
|
529
|
+
|
|
530
|
+
/***/ "../../libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem.tsx":
|
|
531
|
+
/*!**********************************************************************************************************************************!*\
|
|
532
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem.tsx ***!
|
|
533
|
+
\**********************************************************************************************************************************/
|
|
534
|
+
/*! exports provided: SeriesWidgetItem */
|
|
535
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
536
|
+
|
|
537
|
+
"use strict";
|
|
538
|
+
__webpack_require__.r(__webpack_exports__);
|
|
539
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SeriesWidgetItem", function() { return SeriesWidgetItem; });
|
|
540
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
541
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
542
|
+
/* harmony import */ var _common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../common/src/react/utils/TextHelper */ "../../libs/common/src/react/utils/TextHelper.ts");
|
|
543
|
+
/* harmony import */ var _hooks_UseHover__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../hooks/UseHover */ "../../libs/shared/src/hooks/UseHover.ts");
|
|
544
|
+
/* harmony import */ var _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../utils/AudienceHelper */ "../../libs/shared/src/utils/AudienceHelper.ts");
|
|
545
|
+
/* harmony import */ var _app_link_AppLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../app-link/AppLink */ "../../libs/shared/src/components/app-link/AppLink.tsx");
|
|
546
|
+
/* harmony import */ var _thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../thumbnails/base/BaseThumbnail */ "../../libs/shared/src/components/thumbnails/base/BaseThumbnail.tsx");
|
|
547
|
+
/* harmony import */ var _thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../thumbnails/base/ThumbnailFallback */ "../../libs/shared/src/components/thumbnails/base/ThumbnailFallback.tsx");
|
|
548
|
+
/* harmony import */ var _enums_ThumbnailSize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../enums/ThumbnailSize */ "../../libs/shared/src/enums/ThumbnailSize.ts");
|
|
549
|
+
/* harmony import */ var _audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../audience-label/AudienceLabel */ "../../libs/shared/src/components/audience-label/AudienceLabel.tsx");
|
|
550
|
+
/* harmony import */ var _badges_Badge__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../badges/Badge */ "../../libs/shared/src/components/badges/Badge.tsx");
|
|
551
|
+
/* harmony import */ var _series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./series-widget-item.scss */ "../../libs/shared/src/components/widgets/items/series-widget-item/series-widget-item.scss");
|
|
552
|
+
/* harmony import */ var _series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10__);
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
function SeriesWidgetItem(props) {
|
|
565
|
+
const {
|
|
566
|
+
data: series,
|
|
567
|
+
appLink,
|
|
568
|
+
preloadImage
|
|
569
|
+
} = props;
|
|
570
|
+
const seriesAppLink = Object.assign(Object.assign({}, appLink), {
|
|
571
|
+
args: [series.id, _common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_1__["TextHelper"].slugify(series.name)]
|
|
572
|
+
});
|
|
573
|
+
/**
|
|
574
|
+
* Subject audiences currently take render precedence over rating.
|
|
575
|
+
*
|
|
576
|
+
* This means that until we properly add productionCompanies to series, we
|
|
577
|
+
* should expect only CV series to have a subject audience. Any TV series
|
|
578
|
+
* from the Exchange should only have a rating.
|
|
579
|
+
*/
|
|
580
|
+
|
|
581
|
+
let audiences = series && series.subjectPresentationAudiences && series.subjectPresentationAudiences.data || [];
|
|
582
|
+
const filteredAudiences = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_3__["AudienceHelper"].getSortedPresentationAudiences(audiences, props.audiences);
|
|
583
|
+
const mergedAudience = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_3__["AudienceHelper"].getMergedPresentationAudienceString(filteredAudiences);
|
|
584
|
+
const [hoverRef, isHovering] = Object(_hooks_UseHover__WEBPACK_IMPORTED_MODULE_2__["useHoverIntent"])(_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.hoverActive);
|
|
585
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_app_link_AppLink__WEBPACK_IMPORTED_MODULE_4__["AppLink"], {
|
|
586
|
+
key: series.id,
|
|
587
|
+
appLink: seriesAppLink,
|
|
588
|
+
className: `position-relative p-1 flex-shrink-0 ${_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.width}`
|
|
589
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
590
|
+
ref: hoverRef
|
|
591
|
+
}, isHovering && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
592
|
+
className: `p-3 text-white text-center ${_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.mask}`
|
|
593
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
|
|
594
|
+
className: 'h4'
|
|
595
|
+
}, series.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", null, series.description)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_5__["BaseThumbnail"], {
|
|
596
|
+
data: series.tallPoster,
|
|
597
|
+
aspectRatio: _thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_5__["AspectRatio"].NineBySixteen,
|
|
598
|
+
preload: preloadImage,
|
|
599
|
+
size: _enums_ThumbnailSize__WEBPACK_IMPORTED_MODULE_7__["ThumbnailSize"].Large
|
|
600
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_6__["ThumbnailFallback"], {
|
|
601
|
+
type: _thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_6__["ThumbnailFallbackType"].Series
|
|
602
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
603
|
+
className: `position-absolute text-white ${_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.labelContainer}`
|
|
604
|
+
}, !!audiences && audiences.length ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__["AudienceLabel"], {
|
|
605
|
+
audience: mergedAudience,
|
|
606
|
+
border: 'white'
|
|
607
|
+
}) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_badges_Badge__WEBPACK_IMPORTED_MODULE_9__["Badge"], {
|
|
608
|
+
type: _badges_Badge__WEBPACK_IMPORTED_MODULE_9__["BadgeType"].Rating,
|
|
609
|
+
data: series.rating
|
|
610
|
+
})))));
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
/***/ }),
|
|
614
|
+
|
|
615
|
+
/***/ "../../libs/shared/src/components/widgets/items/series-widget-item/series-widget-item.scss":
|
|
616
|
+
/*!*************************************************************************************************************************************!*\
|
|
617
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/series-widget-item.scss ***!
|
|
618
|
+
\*************************************************************************************************************************************/
|
|
619
|
+
/*! no static exports found */
|
|
620
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
621
|
+
|
|
622
|
+
// extracted by mini-css-extract-plugin
|
|
623
|
+
module.exports = {"partialLoadingHeading":"cv--partialLoadingHeading--1RLPq","partialLoading":"cv--partialLoading--oArG4","labelContainer":"cv--labelContainer--QLCgm","hoverActive":"cv--hoverActive--3Aleb","mask":"cv--mask--2M2Zz","width":"cv--width--TQg2K"};
|
|
624
|
+
|
|
625
|
+
/***/ }),
|
|
626
|
+
|
|
627
|
+
/***/ "../../libs/shared/src/hooks/UseCanSubmitForm.ts":
|
|
628
|
+
/*!*******************************************************************************************!*\
|
|
629
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseCanSubmitForm.ts ***!
|
|
630
|
+
\*******************************************************************************************/
|
|
631
|
+
/*! exports provided: useCanSubmitForm */
|
|
632
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
633
|
+
|
|
634
|
+
"use strict";
|
|
635
|
+
__webpack_require__.r(__webpack_exports__);
|
|
636
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useCanSubmitForm", function() { return useCanSubmitForm; });
|
|
637
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
638
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
639
|
+
|
|
640
|
+
/**
|
|
641
|
+
* useCanSubmitForm determines if a form can be submitted.
|
|
642
|
+
*
|
|
643
|
+
* It will return true if a form is valid and has been changed from it's initial state.
|
|
644
|
+
*
|
|
645
|
+
* A common use case for this is determining whether or not to enable
|
|
646
|
+
* a submit button in a form.
|
|
647
|
+
*/
|
|
648
|
+
|
|
649
|
+
function useCanSubmitForm(formikProps) {
|
|
650
|
+
var _a;
|
|
651
|
+
|
|
652
|
+
const [canSubmit, setCanSubmit] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false);
|
|
653
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
|
|
654
|
+
var _a;
|
|
655
|
+
|
|
656
|
+
if (!formikProps.isValid) {
|
|
657
|
+
setCanSubmit(false);
|
|
658
|
+
return;
|
|
659
|
+
} // If the form values have changed of if allowInitialSubmit is true, set canSubmit to true.
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
if (formikProps.dirty || ((_a = formikProps.initialStatus) === null || _a === void 0 ? void 0 : _a.allowInitialSubmit)) setCanSubmit(true);else setCanSubmit(false);
|
|
663
|
+
}, [formikProps.isValid, (_a = formikProps.initialStatus) === null || _a === void 0 ? void 0 : _a.allowInitialSubmit, formikProps.dirty, formikProps.values]);
|
|
664
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
|
|
665
|
+
if (formikProps.isSubmitting) setCanSubmit(false);
|
|
666
|
+
}, [formikProps.isSubmitting]);
|
|
667
|
+
return canSubmit;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
/***/ }),
|
|
671
|
+
|
|
672
|
+
/***/ "../../libs/shared/src/utils/AudienceHelper.ts":
|
|
673
|
+
/*!*****************************************************************************************!*\
|
|
674
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/AudienceHelper.ts ***!
|
|
675
|
+
\*****************************************************************************************/
|
|
676
|
+
/*! exports provided: AudienceHelper */
|
|
677
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
678
|
+
|
|
679
|
+
"use strict";
|
|
680
|
+
__webpack_require__.r(__webpack_exports__);
|
|
681
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AudienceHelper", function() { return AudienceHelper; });
|
|
682
|
+
/* harmony import */ var _common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
|
|
683
|
+
|
|
684
|
+
const DIGIT_REGEX = /([0-9]+)/ig;
|
|
685
|
+
const NAME_REGEX = /(^\w+)/ig;
|
|
686
|
+
const COUNT_OFFSET = 1;
|
|
687
|
+
|
|
688
|
+
function processAudienceRanges(audienceValues) {
|
|
689
|
+
/**
|
|
690
|
+
* Lookahead by increments of offset
|
|
691
|
+
*/
|
|
692
|
+
let offset = COUNT_OFFSET;
|
|
693
|
+
let initialVal, nextVal;
|
|
694
|
+
let isContinguous = false;
|
|
695
|
+
const ranges = []; // Audience values need to be in ascending order
|
|
696
|
+
|
|
697
|
+
audienceValues = audienceValues.sort((a, b) => a - b);
|
|
698
|
+
let i, j;
|
|
699
|
+
|
|
700
|
+
for (i = 0; i < audienceValues.length; i++) {
|
|
701
|
+
j = i + 1; // Set our lower boundary to compare against
|
|
702
|
+
|
|
703
|
+
if (!isContinguous) initialVal = audienceValues[i];
|
|
704
|
+
nextVal = audienceValues[j];
|
|
705
|
+
/**
|
|
706
|
+
* Where the next number is also the next incremental value
|
|
707
|
+
* we're going to continue iterating until the next value
|
|
708
|
+
* is no longer contiguos.
|
|
709
|
+
*/
|
|
710
|
+
|
|
711
|
+
if (audienceValues[i] + offset === nextVal) {
|
|
712
|
+
isContinguous = true;
|
|
713
|
+
} else if (isContinguous) {
|
|
714
|
+
/**
|
|
715
|
+
* Where we were tracking a contiguous set, format appropriately
|
|
716
|
+
* and store the vals
|
|
717
|
+
*/
|
|
718
|
+
ranges.push(`${initialVal} - ${audienceValues[i]}`);
|
|
719
|
+
isContinguous = false;
|
|
720
|
+
} else {
|
|
721
|
+
/**
|
|
722
|
+
* Where the values arent contiguous, just store the current value
|
|
723
|
+
*/
|
|
724
|
+
ranges.push(`${audienceValues[i]}`);
|
|
725
|
+
isContinguous = false;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
return ranges;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
const AudienceHelper = {
|
|
733
|
+
/**
|
|
734
|
+
* This is needed to sort an object's audiences, as they are not sorted by the backend.
|
|
735
|
+
* To do this, we take the presentation audiences (sorted) and filter them by the object's
|
|
736
|
+
* audiences, leaving behind a sorted array of object audiences.
|
|
737
|
+
*/
|
|
738
|
+
getSortedPresentationAudiences(objectAudiences, presentationAudiences) {
|
|
739
|
+
const objectAudienceIds = objectAudiences.map(audience => audience.id.toString());
|
|
740
|
+
/**
|
|
741
|
+
* Remove audiences that aren't relevant for the user's current presentation
|
|
742
|
+
*/
|
|
743
|
+
|
|
744
|
+
const filteredAudiences = presentationAudiences.filter(presAudience => {
|
|
745
|
+
return objectAudienceIds.includes(presAudience.masterId.toString());
|
|
746
|
+
});
|
|
747
|
+
return filteredAudiences;
|
|
748
|
+
},
|
|
749
|
+
|
|
750
|
+
getMergedPresentationAudienceString(presentationAudiences) {
|
|
751
|
+
if (presentationAudiences.length === 1) return presentationAudiences[0];
|
|
752
|
+
/**
|
|
753
|
+
* Create a string with all of the audiences
|
|
754
|
+
*/
|
|
755
|
+
|
|
756
|
+
const valuesStr = presentationAudiences.map(a => a.name).join(',');
|
|
757
|
+
/**
|
|
758
|
+
* Extract all the numbers and matches from the string
|
|
759
|
+
* Where there aren't matches, just return the first Audience.
|
|
760
|
+
*/
|
|
761
|
+
|
|
762
|
+
const valMatches = valuesStr.match(DIGIT_REGEX);
|
|
763
|
+
const nameMatches = valuesStr.match(NAME_REGEX);
|
|
764
|
+
if (!valMatches || !nameMatches) return presentationAudiences[0];
|
|
765
|
+
const audienceValues = valMatches.map(l => +l) || [];
|
|
766
|
+
/**
|
|
767
|
+
* Build set of logical audience ranges
|
|
768
|
+
*/
|
|
769
|
+
|
|
770
|
+
const audienceRange = processAudienceRanges(audienceValues);
|
|
771
|
+
/**
|
|
772
|
+
* Get matches name
|
|
773
|
+
*/
|
|
774
|
+
|
|
775
|
+
const audienceName = nameMatches[0];
|
|
776
|
+
return {
|
|
777
|
+
name: `${audienceName} ${audienceRange.join(' , ')}`
|
|
778
|
+
};
|
|
779
|
+
},
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* This function assumes the members array passed in is ordered by `name`.
|
|
783
|
+
*/
|
|
784
|
+
sortMembersWithDuplicateNamesByAudience(members) {
|
|
785
|
+
// Returns the lowest level audience out of an array of audience objects by looking at the name
|
|
786
|
+
const getLowestAudience = audiences => {
|
|
787
|
+
let lowestAudience;
|
|
788
|
+
let lowestAudienceDigit;
|
|
789
|
+
audiences.forEach(audience => {
|
|
790
|
+
const digit = +_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_0__["ArrayHelper"].first(audience.name.match(DIGIT_REGEX));
|
|
791
|
+
|
|
792
|
+
if (!lowestAudience) {
|
|
793
|
+
lowestAudience = audience;
|
|
794
|
+
lowestAudienceDigit = digit;
|
|
795
|
+
return;
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
if (digit > lowestAudienceDigit) lowestAudience = audience;
|
|
799
|
+
});
|
|
800
|
+
return lowestAudience;
|
|
801
|
+
}; // This is used to track how many times a member's name appears in the collection
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
const nameCountMap = {};
|
|
805
|
+
let sorted = [];
|
|
806
|
+
members.forEach(member => {
|
|
807
|
+
if (!nameCountMap[member.name]) {
|
|
808
|
+
nameCountMap[member.name] = 1;
|
|
809
|
+
sorted.push(member);
|
|
810
|
+
return;
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
sorted.push(member);
|
|
814
|
+
nameCountMap[member.name]++; // Take the slice of duplicates that we want to sort by audience
|
|
815
|
+
|
|
816
|
+
const slice = sorted.splice(sorted.length - nameCountMap[member.name]); // Sort the slice by lowest audience
|
|
817
|
+
|
|
818
|
+
const sortedSlice = slice.sort((a, b) => {
|
|
819
|
+
const firstObjLowestAudience = getLowestAudience(a.subjectPresentationAudiences.data);
|
|
820
|
+
const secondObjLowestAudience = getLowestAudience(b.subjectPresentationAudiences.data);
|
|
821
|
+
return firstObjLowestAudience.name.localeCompare(secondObjLowestAudience.name);
|
|
822
|
+
});
|
|
823
|
+
sorted = sorted.concat(sortedSlice);
|
|
824
|
+
});
|
|
825
|
+
return sorted;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
};
|
|
829
|
+
|
|
830
|
+
/***/ }),
|
|
831
|
+
|
|
832
|
+
/***/ "../../libs/shared/src/utils/FormHelper.ts":
|
|
833
|
+
/*!*************************************************************************************!*\
|
|
834
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/FormHelper.ts ***!
|
|
835
|
+
\*************************************************************************************/
|
|
836
|
+
/*! exports provided: FormHelper */
|
|
837
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
838
|
+
|
|
839
|
+
"use strict";
|
|
840
|
+
__webpack_require__.r(__webpack_exports__);
|
|
841
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormHelper", function() { return FormHelper; });
|
|
842
|
+
/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
|
|
843
|
+
|
|
844
|
+
const FormHelper = {
|
|
845
|
+
getCustomFormControlClassName(errors, touched, attribute, additionalClassName) {
|
|
846
|
+
let className = 'form-control'; // Using getIn as it supports dot notation
|
|
847
|
+
|
|
848
|
+
if (Object(formik__WEBPACK_IMPORTED_MODULE_0__["getIn"])(touched, attribute) && Object(formik__WEBPACK_IMPORTED_MODULE_0__["getIn"])(errors, attribute)) className += ' is-invalid';
|
|
849
|
+
if (additionalClassName) className += ` ${additionalClassName}`;
|
|
850
|
+
return className;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
};
|
|
854
|
+
|
|
855
|
+
/***/ }),
|
|
856
|
+
|
|
857
|
+
/***/ "./src/apps/search/components/filter-actions/FilterActions.tsx":
|
|
858
|
+
/*!*********************************************************************!*\
|
|
859
|
+
!*** ./src/apps/search/components/filter-actions/FilterActions.tsx ***!
|
|
860
|
+
\*********************************************************************/
|
|
861
|
+
/*! exports provided: FilterActions */
|
|
862
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
863
|
+
|
|
864
|
+
"use strict";
|
|
865
|
+
__webpack_require__.r(__webpack_exports__);
|
|
866
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterActions", function() { return FilterActions; });
|
|
867
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
868
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
869
|
+
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-intersection-observer */ "react-intersection-observer");
|
|
870
|
+
/* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__);
|
|
871
|
+
/* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
|
|
872
|
+
/* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
|
|
873
|
+
/* harmony import */ var _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/services/ContextService */ "../../libs/shared/src/services/ContextService.ts");
|
|
874
|
+
/* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
|
|
875
|
+
/* harmony import */ var _libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/div-button/DivButton */ "../../libs/shared/src/components/div-button/DivButton.tsx");
|
|
876
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
877
|
+
/* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
|
|
878
|
+
/* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
|
|
879
|
+
/* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
|
|
880
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
881
|
+
|
|
882
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
883
|
+
|
|
884
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
885
|
+
|
|
886
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
887
|
+
|
|
888
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
889
|
+
|
|
890
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
|
|
903
|
+
var namespace = 'search.filterActions';
|
|
904
|
+
|
|
905
|
+
var triggerAppLink = function triggerAppLink(stateChange) {
|
|
906
|
+
var currentQueryParams = _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].LocationUtils.GetQuery();
|
|
907
|
+
var currentAppLink = _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_4__["ContextService"].getCurrentRoute().appLink;
|
|
908
|
+
_libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].AppLinkHelper.trigger({
|
|
909
|
+
application: currentAppLink.application,
|
|
910
|
+
action: currentAppLink.action,
|
|
911
|
+
params: apps_search_utils__WEBPACK_IMPORTED_MODULE_8__["FilterHelper"].buildQueryParams(currentQueryParams, stateChange)
|
|
912
|
+
});
|
|
913
|
+
};
|
|
914
|
+
|
|
915
|
+
FilterActions.defaultProps = {
|
|
916
|
+
active: false,
|
|
917
|
+
className: ''
|
|
918
|
+
};
|
|
919
|
+
function FilterActions(props) {
|
|
920
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_7__["FilterContext"]),
|
|
921
|
+
dispatch = _React$useContext.dispatch;
|
|
922
|
+
|
|
923
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false),
|
|
924
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
925
|
+
triggerOnClose = _React$useState2[0],
|
|
926
|
+
setTriggerOnClose = _React$useState2[1];
|
|
927
|
+
|
|
928
|
+
var _ReactIntersectionObs = react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__["useInView"](),
|
|
929
|
+
_ReactIntersectionObs2 = _slicedToArray(_ReactIntersectionObs, 2),
|
|
930
|
+
ref = _ReactIntersectionObs2[0],
|
|
931
|
+
inView = _ReactIntersectionObs2[1];
|
|
932
|
+
|
|
933
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
|
|
934
|
+
if (typeof window.IntersectionObserver === 'undefined') return;
|
|
935
|
+
|
|
936
|
+
if (inView) {
|
|
937
|
+
setTriggerOnClose(true);
|
|
938
|
+
return;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
if (!inView && triggerOnClose) {
|
|
942
|
+
setTriggerOnClose(false);
|
|
943
|
+
applyFilter(false);
|
|
944
|
+
}
|
|
945
|
+
}, [inView]);
|
|
946
|
+
|
|
947
|
+
function applyFilter(applyClicked) {
|
|
948
|
+
var _a, _b; // The default value should not be set as a query param
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
var isDefaultValue = ((_a = props.selection) === null || _a === void 0 ? void 0 : _a.length) === 1 && ((_b = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_3__["ArrayHelper"].first(props.selection)) === null || _b === void 0 ? void 0 : _b["default"]);
|
|
952
|
+
_libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].logUserAction({
|
|
953
|
+
filter: props.filter.name,
|
|
954
|
+
selection: props.selection && !isDefaultValue ? props.selection : [],
|
|
955
|
+
isActive: props.active && !isDefaultValue,
|
|
956
|
+
applyClicked: applyClicked
|
|
957
|
+
}, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
|
|
958
|
+
workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["WorkflowPhase"].Complete,
|
|
959
|
+
actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["UserAction"].Filter
|
|
960
|
+
}));
|
|
961
|
+
var payload = {
|
|
962
|
+
filter: props.filter,
|
|
963
|
+
active: props.active && !isDefaultValue,
|
|
964
|
+
selection: props.selection && !isDefaultValue ? props.selection : []
|
|
965
|
+
};
|
|
966
|
+
dispatch({
|
|
967
|
+
type: 'apply',
|
|
968
|
+
payload: payload
|
|
969
|
+
});
|
|
970
|
+
triggerAppLink(payload);
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
function onClickReset(e) {
|
|
974
|
+
e.preventDefault();
|
|
975
|
+
_libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].logUserAction({
|
|
976
|
+
filter: props.filter.name
|
|
977
|
+
}, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
|
|
978
|
+
workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["WorkflowPhase"].Complete,
|
|
979
|
+
actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["UserAction"].Filter,
|
|
980
|
+
descriptor: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["FilterDescriptor"].Reset
|
|
981
|
+
}));
|
|
982
|
+
var payload = {
|
|
983
|
+
filter: props.filter,
|
|
984
|
+
active: false,
|
|
985
|
+
selection: null
|
|
986
|
+
};
|
|
987
|
+
dispatch({
|
|
988
|
+
type: 'reset',
|
|
989
|
+
payload: payload
|
|
990
|
+
});
|
|
991
|
+
triggerAppLink(payload);
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
function onClickApply(e) {
|
|
995
|
+
e.preventDefault();
|
|
996
|
+
applyFilter(true);
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
1000
|
+
ref: ref,
|
|
1001
|
+
className: "d-flex justify-content-between ".concat(props.className)
|
|
1002
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__["DivButton"], {
|
|
1003
|
+
className: 'text-muted hover-text-underline cursor-pointer',
|
|
1004
|
+
onClick: onClickReset
|
|
1005
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
|
|
1006
|
+
namespace: namespace,
|
|
1007
|
+
phrase: 'reset'
|
|
1008
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__["DivButton"], {
|
|
1009
|
+
className: 'info-link',
|
|
1010
|
+
onClick: onClickApply
|
|
1011
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
|
|
1012
|
+
namespace: namespace,
|
|
1013
|
+
phrase: 'apply'
|
|
1014
|
+
})));
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
/***/ }),
|
|
1018
|
+
|
|
1019
|
+
/***/ "./src/apps/search/components/filter-button/FilterButton.tsx":
|
|
1020
|
+
/*!*******************************************************************!*\
|
|
1021
|
+
!*** ./src/apps/search/components/filter-button/FilterButton.tsx ***!
|
|
1022
|
+
\*******************************************************************/
|
|
1023
|
+
/*! exports provided: FilterButton */
|
|
1024
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1025
|
+
|
|
1026
|
+
"use strict";
|
|
1027
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1028
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterButton", function() { return FilterButton; });
|
|
1029
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1030
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1031
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
1032
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
|
|
1033
|
+
/* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
|
|
1034
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1035
|
+
/* harmony import */ var _filter_button_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./filter-button.scss */ "./src/apps/search/components/filter-button/filter-button.scss");
|
|
1036
|
+
/* harmony import */ var _filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4__);
|
|
1037
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
1038
|
+
|
|
1039
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1040
|
+
|
|
1041
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
1042
|
+
|
|
1043
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1044
|
+
|
|
1045
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
1046
|
+
|
|
1047
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
function FilterButton(props) {
|
|
1055
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](props.filter.name),
|
|
1056
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1057
|
+
label = _React$useState2[0],
|
|
1058
|
+
setLabel = _React$useState2[1];
|
|
1059
|
+
|
|
1060
|
+
var FilterComponent = props.filter.customComponent ? props.filter.customComponent : apps_search_utils__WEBPACK_IMPORTED_MODULE_2__["FilterHelper"].mapTypeToComponent(props.filter.type);
|
|
1061
|
+
|
|
1062
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
|
|
1063
|
+
state = _React$useContext.state;
|
|
1064
|
+
|
|
1065
|
+
var filterState = state[props.filter.id];
|
|
1066
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
|
|
1067
|
+
setLabel(apps_search_utils__WEBPACK_IMPORTED_MODULE_2__["FilterHelper"].getLabel(props.filter, filterState));
|
|
1068
|
+
}, [props.filter, filterState.selection]);
|
|
1069
|
+
var baseClass = "".concat(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.filterButton, " mx-1 btn");
|
|
1070
|
+
var colorClass = filterState.active ? 'btn-info' : 'btn-light';
|
|
1071
|
+
var caretClass = props.filter.type !== 'dropdown' ? _filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.hideCaret : '';
|
|
1072
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Toggle, {
|
|
1073
|
+
id: props.filter.id,
|
|
1074
|
+
className: "".concat(baseClass, " ").concat(colorClass, " ").concat(caretClass)
|
|
1075
|
+
}, label), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Menu, {
|
|
1076
|
+
onClick: function onClick(e) {
|
|
1077
|
+
return e.stopPropagation();
|
|
1078
|
+
}
|
|
1079
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
1080
|
+
className: "".concat(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.filterItem, " mx-1 ").concat(props.filter.type !== 'dropdown' ? 'px-2 py-1' : '')
|
|
1081
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](FilterComponent, {
|
|
1082
|
+
analyticsOptions: props.analyticsOptions,
|
|
1083
|
+
filter: props.filter
|
|
1084
|
+
}))));
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
/***/ }),
|
|
1088
|
+
|
|
1089
|
+
/***/ "./src/apps/search/components/filter-button/filter-button.scss":
|
|
1090
|
+
/*!*********************************************************************!*\
|
|
1091
|
+
!*** ./src/apps/search/components/filter-button/filter-button.scss ***!
|
|
1092
|
+
\*********************************************************************/
|
|
1093
|
+
/*! no static exports found */
|
|
1094
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1095
|
+
|
|
1096
|
+
// extracted by mini-css-extract-plugin
|
|
1097
|
+
module.exports = {"filterButton":"cv--filterButton--2LJ1G","hideCaret":"cv--hideCaret--2OStB","filterItem":"cv--filterItem--13K5j"};
|
|
1098
|
+
|
|
1099
|
+
/***/ }),
|
|
1100
|
+
|
|
1101
|
+
/***/ "./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx":
|
|
1102
|
+
/*!************************************************************************************!*\
|
|
1103
|
+
!*** ./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx ***!
|
|
1104
|
+
\************************************************************************************/
|
|
1105
|
+
/*! exports provided: CheckboxFilter */
|
|
1106
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1107
|
+
|
|
1108
|
+
"use strict";
|
|
1109
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1110
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return CheckboxFilter; });
|
|
1111
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1112
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1113
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
1114
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
|
|
1115
|
+
/* harmony import */ var _libs_shared_src_components_forms_form_checkbox_Checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../libs/shared/src/components/forms/form-checkbox/Checkbox */ "../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx");
|
|
1116
|
+
/* harmony import */ var shared_hooks_useBulkCheckboxManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shared/hooks/useBulkCheckboxManager */ "./src/shared/hooks/useBulkCheckboxManager.tsx");
|
|
1117
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1118
|
+
/* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
|
|
1119
|
+
|
|
1120
|
+
|
|
1121
|
+
|
|
1122
|
+
|
|
1123
|
+
|
|
1124
|
+
|
|
1125
|
+
function CheckboxFilter(props) {
|
|
1126
|
+
var _a;
|
|
1127
|
+
|
|
1128
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterContext"]),
|
|
1129
|
+
state = _React$useContext.state;
|
|
1130
|
+
|
|
1131
|
+
var filterState = state[props.filter.id];
|
|
1132
|
+
|
|
1133
|
+
var _useBulkCheckboxManag = Object(shared_hooks_useBulkCheckboxManager__WEBPACK_IMPORTED_MODULE_3__["useBulkCheckboxManager"])(props.filter.options, {
|
|
1134
|
+
preselectedIds: ((_a = filterState.selection) === null || _a === void 0 ? void 0 : _a.map(function (s) {
|
|
1135
|
+
return s.id;
|
|
1136
|
+
})) || []
|
|
1137
|
+
}),
|
|
1138
|
+
onToggleItem = _useBulkCheckboxManag.onToggleItem,
|
|
1139
|
+
isChecked = _useBulkCheckboxManag.isChecked,
|
|
1140
|
+
getSelected = _useBulkCheckboxManag.getSelected;
|
|
1141
|
+
|
|
1142
|
+
var selections = getSelected().map(function (optionName) {
|
|
1143
|
+
return props.filter.options.find(function (o) {
|
|
1144
|
+
return o.id === optionName;
|
|
1145
|
+
});
|
|
1146
|
+
});
|
|
1147
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
|
|
1148
|
+
className: 'h6 mb-2'
|
|
1149
|
+
}, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
|
|
1150
|
+
className: 'mb-3'
|
|
1151
|
+
}, props.filter.options.map(function (option) {
|
|
1152
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_checkbox_Checkbox__WEBPACK_IMPORTED_MODULE_2__["Checkbox"], {
|
|
1153
|
+
key: option.id,
|
|
1154
|
+
label: option.name,
|
|
1155
|
+
name: option.id,
|
|
1156
|
+
id: option.id,
|
|
1157
|
+
onChange: function onChange() {
|
|
1158
|
+
return onToggleItem(option.id);
|
|
1159
|
+
},
|
|
1160
|
+
checked: isChecked(option.id),
|
|
1161
|
+
className: 'my-1'
|
|
1162
|
+
});
|
|
1163
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_5__["FilterActions"], {
|
|
1164
|
+
active: !!selections.length,
|
|
1165
|
+
filter: props.filter,
|
|
1166
|
+
selection: selections,
|
|
1167
|
+
analyticsOptions: props.analyticsOptions
|
|
1168
|
+
}));
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
/***/ }),
|
|
1172
|
+
|
|
1173
|
+
/***/ "./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx":
|
|
1174
|
+
/*!************************************************************************************!*\
|
|
1175
|
+
!*** ./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx ***!
|
|
1176
|
+
\************************************************************************************/
|
|
1177
|
+
/*! exports provided: DropdownFilter */
|
|
1178
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1179
|
+
|
|
1180
|
+
"use strict";
|
|
1181
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1182
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return DropdownFilter; });
|
|
1183
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1184
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1185
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
1186
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
|
|
1187
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1188
|
+
/* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
|
|
1189
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
1190
|
+
|
|
1191
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1192
|
+
|
|
1193
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
1194
|
+
|
|
1195
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1196
|
+
|
|
1197
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
1198
|
+
|
|
1199
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
function DropdownFilter(props) {
|
|
1206
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0___default.a.useContext(apps_search_reducers__WEBPACK_IMPORTED_MODULE_2__["FilterContext"]),
|
|
1207
|
+
state = _React$useContext.state;
|
|
1208
|
+
|
|
1209
|
+
var filterState = state[props.filter.id];
|
|
1210
|
+
|
|
1211
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState(filterState.selection),
|
|
1212
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1213
|
+
currentSelection = _React$useState2[0],
|
|
1214
|
+
setCurrentSelection = _React$useState2[1];
|
|
1215
|
+
|
|
1216
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, props.filter.options.map(function (option) {
|
|
1217
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Item, {
|
|
1218
|
+
key: option.id,
|
|
1219
|
+
onClick: function onClick() {
|
|
1220
|
+
return setCurrentSelection([option]);
|
|
1221
|
+
}
|
|
1222
|
+
}, option.name);
|
|
1223
|
+
}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__["FilterActions"], {
|
|
1224
|
+
active: !!currentSelection,
|
|
1225
|
+
filter: props.filter,
|
|
1226
|
+
selection: currentSelection,
|
|
1227
|
+
className: 'pt-1 px-2',
|
|
1228
|
+
analyticsOptions: props.analyticsOptions
|
|
1229
|
+
}));
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
/***/ }),
|
|
1233
|
+
|
|
1234
|
+
/***/ "./src/apps/search/components/filter-types/index.ts":
|
|
1235
|
+
/*!**********************************************************!*\
|
|
1236
|
+
!*** ./src/apps/search/components/filter-types/index.ts ***!
|
|
1237
|
+
\**********************************************************/
|
|
1238
|
+
/*! exports provided: CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
|
|
1239
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1240
|
+
|
|
1241
|
+
"use strict";
|
|
1242
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1243
|
+
/* harmony import */ var _checkbox_filter_CheckboxFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkbox-filter/CheckboxFilter */ "./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx");
|
|
1244
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return _checkbox_filter_CheckboxFilter__WEBPACK_IMPORTED_MODULE_0__["CheckboxFilter"]; });
|
|
1245
|
+
|
|
1246
|
+
/* harmony import */ var _more_filters_MoreFilters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./more-filters/MoreFilters */ "./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx");
|
|
1247
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return _more_filters_MoreFilters__WEBPACK_IMPORTED_MODULE_1__["MoreFilters"]; });
|
|
1248
|
+
|
|
1249
|
+
/* harmony import */ var _switch_filter_SwitchFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./switch-filter/SwitchFilter */ "./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx");
|
|
1250
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return _switch_filter_SwitchFilter__WEBPACK_IMPORTED_MODULE_2__["SwitchFilter"]; });
|
|
1251
|
+
|
|
1252
|
+
/* harmony import */ var _dropdown_filter_DropdownFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropdown-filter/DropdownFilter */ "./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx");
|
|
1253
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return _dropdown_filter_DropdownFilter__WEBPACK_IMPORTED_MODULE_3__["DropdownFilter"]; });
|
|
1254
|
+
|
|
1255
|
+
/* harmony import */ var _radio_filter_RadioFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./radio-filter/RadioFilter */ "./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx");
|
|
1256
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return _radio_filter_RadioFilter__WEBPACK_IMPORTED_MODULE_4__["RadioFilter"]; });
|
|
1257
|
+
|
|
1258
|
+
/* harmony import */ var _radio_filter_year_level_YearLevelRadioFilter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./radio-filter/year-level/YearLevelRadioFilter */ "./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx");
|
|
1259
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return _radio_filter_year_level_YearLevelRadioFilter__WEBPACK_IMPORTED_MODULE_5__["YearLevelRadioFilter"]; });
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
/***/ }),
|
|
1269
|
+
|
|
1270
|
+
/***/ "./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx":
|
|
1271
|
+
/*!******************************************************************************!*\
|
|
1272
|
+
!*** ./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx ***!
|
|
1273
|
+
\******************************************************************************/
|
|
1274
|
+
/*! exports provided: MoreFilters */
|
|
1275
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1276
|
+
|
|
1277
|
+
"use strict";
|
|
1278
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1279
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return MoreFilters; });
|
|
1280
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1281
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1282
|
+
|
|
1283
|
+
function MoreFilters(props) {
|
|
1284
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
/***/ }),
|
|
1288
|
+
|
|
1289
|
+
/***/ "./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx":
|
|
1290
|
+
/*!******************************************************************************!*\
|
|
1291
|
+
!*** ./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx ***!
|
|
1292
|
+
\******************************************************************************/
|
|
1293
|
+
/*! exports provided: RadioFilter */
|
|
1294
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1295
|
+
|
|
1296
|
+
"use strict";
|
|
1297
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1298
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return RadioFilter; });
|
|
1299
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1300
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1301
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
1302
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
|
|
1303
|
+
/* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
|
|
1304
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1305
|
+
/* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
|
|
1306
|
+
/* harmony import */ var _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./radio-filter.scss */ "./src/apps/search/components/filter-types/radio-filter/radio-filter.scss");
|
|
1307
|
+
/* harmony import */ var _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_radio_filter_scss__WEBPACK_IMPORTED_MODULE_5__);
|
|
1308
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
1309
|
+
|
|
1310
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1311
|
+
|
|
1312
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
1313
|
+
|
|
1314
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1315
|
+
|
|
1316
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
1317
|
+
|
|
1318
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
function RadioFilter(props) {
|
|
1327
|
+
var _a;
|
|
1328
|
+
|
|
1329
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
|
|
1330
|
+
state = _React$useContext.state;
|
|
1331
|
+
|
|
1332
|
+
var filterState = state[props.filter.id];
|
|
1333
|
+
|
|
1334
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.selection),
|
|
1335
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1336
|
+
currentSelection = _React$useState2[0],
|
|
1337
|
+
setCurrentSelection = _React$useState2[1];
|
|
1338
|
+
|
|
1339
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
|
|
1340
|
+
return setCurrentSelection(filterState.selection);
|
|
1341
|
+
}, [filterState.selection]);
|
|
1342
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
|
|
1343
|
+
className: 'h6 mb-2'
|
|
1344
|
+
}, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
|
|
1345
|
+
className: 'mb-3'
|
|
1346
|
+
}, props.filter.options.map(function (option) {
|
|
1347
|
+
var _a;
|
|
1348
|
+
|
|
1349
|
+
var isSelected = ((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length) && option.id === _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(currentSelection).id;
|
|
1350
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"].Check, {
|
|
1351
|
+
key: option.id,
|
|
1352
|
+
custom: true,
|
|
1353
|
+
type: 'radio',
|
|
1354
|
+
label: option.name,
|
|
1355
|
+
name: option.id,
|
|
1356
|
+
id: option.id,
|
|
1357
|
+
value: option.id,
|
|
1358
|
+
onChange: function onChange() {
|
|
1359
|
+
return setCurrentSelection([option]);
|
|
1360
|
+
},
|
|
1361
|
+
checked: isSelected,
|
|
1362
|
+
className: _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5___default.a.radioFilter
|
|
1363
|
+
});
|
|
1364
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_4__["FilterActions"], {
|
|
1365
|
+
active: !!((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length),
|
|
1366
|
+
filter: props.filter,
|
|
1367
|
+
selection: currentSelection,
|
|
1368
|
+
analyticsOptions: props.analyticsOptions
|
|
1369
|
+
}));
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
/***/ }),
|
|
1373
|
+
|
|
1374
|
+
/***/ "./src/apps/search/components/filter-types/radio-filter/radio-filter.scss":
|
|
1375
|
+
/*!********************************************************************************!*\
|
|
1376
|
+
!*** ./src/apps/search/components/filter-types/radio-filter/radio-filter.scss ***!
|
|
1377
|
+
\********************************************************************************/
|
|
1378
|
+
/*! no static exports found */
|
|
1379
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1380
|
+
|
|
1381
|
+
// extracted by mini-css-extract-plugin
|
|
1382
|
+
module.exports = {"radioFilter":"cv--radioFilter--3srm_"};
|
|
1383
|
+
|
|
1384
|
+
/***/ }),
|
|
1385
|
+
|
|
1386
|
+
/***/ "./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx":
|
|
1387
|
+
/*!**************************************************************************************************!*\
|
|
1388
|
+
!*** ./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx ***!
|
|
1389
|
+
\**************************************************************************************************/
|
|
1390
|
+
/*! exports provided: YearLevelRadioFilter */
|
|
1391
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1392
|
+
|
|
1393
|
+
"use strict";
|
|
1394
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1395
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return YearLevelRadioFilter; });
|
|
1396
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1397
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1398
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
1399
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
|
|
1400
|
+
/* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
|
|
1401
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1402
|
+
/* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
|
|
1403
|
+
/* harmony import */ var apps_user_manager_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! apps/user-manager/components */ "./src/apps/user-manager/components/index.ts");
|
|
1404
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
1405
|
+
|
|
1406
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1407
|
+
|
|
1408
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
1409
|
+
|
|
1410
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1411
|
+
|
|
1412
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
1413
|
+
|
|
1414
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1415
|
+
|
|
1416
|
+
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
|
|
1422
|
+
function YearLevelRadioFilter(props) {
|
|
1423
|
+
var _a;
|
|
1424
|
+
|
|
1425
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
|
|
1426
|
+
state = _React$useContext.state;
|
|
1427
|
+
|
|
1428
|
+
var filterState = state[props.filter.id];
|
|
1429
|
+
|
|
1430
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.selection),
|
|
1431
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1432
|
+
currentSelection = _React$useState2[0],
|
|
1433
|
+
setCurrentSelection = _React$useState2[1];
|
|
1434
|
+
|
|
1435
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
|
|
1436
|
+
return setCurrentSelection(filterState.selection);
|
|
1437
|
+
}, [filterState.selection]);
|
|
1438
|
+
|
|
1439
|
+
function onSelect(yearLevel) {
|
|
1440
|
+
setCurrentSelection([yearLevel]);
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
|
|
1444
|
+
className: 'h6 mb-2'
|
|
1445
|
+
}, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
|
|
1446
|
+
className: 'mb-3'
|
|
1447
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_user_manager_components__WEBPACK_IMPORTED_MODULE_5__["YearLevelSelect"], {
|
|
1448
|
+
yearLevels: props.filter.options,
|
|
1449
|
+
onSelect: onSelect,
|
|
1450
|
+
selected: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(currentSelection)
|
|
1451
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_4__["FilterActions"], {
|
|
1452
|
+
active: !!((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length),
|
|
1453
|
+
filter: props.filter,
|
|
1454
|
+
selection: currentSelection,
|
|
1455
|
+
analyticsOptions: props.analyticsOptions
|
|
1456
|
+
}));
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
/***/ }),
|
|
1460
|
+
|
|
1461
|
+
/***/ "./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx":
|
|
1462
|
+
/*!********************************************************************************!*\
|
|
1463
|
+
!*** ./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx ***!
|
|
1464
|
+
\********************************************************************************/
|
|
1465
|
+
/*! exports provided: SwitchFilter */
|
|
1466
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1467
|
+
|
|
1468
|
+
"use strict";
|
|
1469
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1470
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return SwitchFilter; });
|
|
1471
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1472
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1473
|
+
/* harmony import */ var shared_components_toggle_switch_ToggleSwitch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! shared/components/toggle-switch/ToggleSwitch */ "./src/shared/components/toggle-switch/ToggleSwitch.tsx");
|
|
1474
|
+
/* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
|
|
1475
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1476
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
1477
|
+
|
|
1478
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1479
|
+
|
|
1480
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
1481
|
+
|
|
1482
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1483
|
+
|
|
1484
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
1485
|
+
|
|
1486
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1487
|
+
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
function SwitchFilter(props) {
|
|
1493
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
|
|
1494
|
+
state = _React$useContext.state;
|
|
1495
|
+
|
|
1496
|
+
var filterState = state[props.filter.id];
|
|
1497
|
+
|
|
1498
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.active),
|
|
1499
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1500
|
+
active = _React$useState2[0],
|
|
1501
|
+
setActive = _React$useState2[1];
|
|
1502
|
+
|
|
1503
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
|
|
1504
|
+
className: 'h6 mb-2'
|
|
1505
|
+
}, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", {
|
|
1506
|
+
className: 'd-inline-block w-75 mr-auto'
|
|
1507
|
+
}, props.filter.description), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](shared_components_toggle_switch_ToggleSwitch__WEBPACK_IMPORTED_MODULE_1__["ToggleSwitch"], {
|
|
1508
|
+
onClick: function onClick() {
|
|
1509
|
+
return setActive(!active);
|
|
1510
|
+
},
|
|
1511
|
+
on: active
|
|
1512
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterActions"], {
|
|
1513
|
+
active: active,
|
|
1514
|
+
filter: props.filter,
|
|
1515
|
+
analyticsOptions: props.analyticsOptions
|
|
1516
|
+
}));
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
/***/ }),
|
|
1520
|
+
|
|
1521
|
+
/***/ "./src/apps/search/components/index.ts":
|
|
1522
|
+
/*!*********************************************!*\
|
|
1523
|
+
!*** ./src/apps/search/components/index.ts ***!
|
|
1524
|
+
\*********************************************/
|
|
1525
|
+
/*! exports provided: SearchFilters, PartialSearchFilters, FilterButton, FilterActions, ResetButton, CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
|
|
1526
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1527
|
+
|
|
1528
|
+
"use strict";
|
|
1529
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1530
|
+
/* harmony import */ var _search_filters_SearchFilters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./search-filters/SearchFilters */ "./src/apps/search/components/search-filters/SearchFilters.tsx");
|
|
1531
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchFilters", function() { return _search_filters_SearchFilters__WEBPACK_IMPORTED_MODULE_0__["SearchFilters"]; });
|
|
1532
|
+
|
|
1533
|
+
/* harmony import */ var _search_filters_PartialSearchFilters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search-filters/PartialSearchFilters */ "./src/apps/search/components/search-filters/PartialSearchFilters.tsx");
|
|
1534
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PartialSearchFilters", function() { return _search_filters_PartialSearchFilters__WEBPACK_IMPORTED_MODULE_1__["PartialSearchFilters"]; });
|
|
1535
|
+
|
|
1536
|
+
/* harmony import */ var _filter_button_FilterButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter-button/FilterButton */ "./src/apps/search/components/filter-button/FilterButton.tsx");
|
|
1537
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterButton", function() { return _filter_button_FilterButton__WEBPACK_IMPORTED_MODULE_2__["FilterButton"]; });
|
|
1538
|
+
|
|
1539
|
+
/* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
|
|
1540
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterActions", function() { return _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__["FilterActions"]; });
|
|
1541
|
+
|
|
1542
|
+
/* harmony import */ var _reset_button_ResetButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reset-button/ResetButton */ "./src/apps/search/components/reset-button/ResetButton.tsx");
|
|
1543
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResetButton", function() { return _reset_button_ResetButton__WEBPACK_IMPORTED_MODULE_4__["ResetButton"]; });
|
|
1544
|
+
|
|
1545
|
+
/* harmony import */ var _filter_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./filter-types */ "./src/apps/search/components/filter-types/index.ts");
|
|
1546
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["CheckboxFilter"]; });
|
|
1547
|
+
|
|
1548
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["MoreFilters"]; });
|
|
1549
|
+
|
|
1550
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["SwitchFilter"]; });
|
|
1551
|
+
|
|
1552
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["DropdownFilter"]; });
|
|
1553
|
+
|
|
1554
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["RadioFilter"]; });
|
|
1555
|
+
|
|
1556
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["YearLevelRadioFilter"]; });
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
|
|
1564
|
+
|
|
1565
|
+
/***/ }),
|
|
1566
|
+
|
|
1567
|
+
/***/ "./src/apps/search/components/reset-button/ResetButton.tsx":
|
|
1568
|
+
/*!*****************************************************************!*\
|
|
1569
|
+
!*** ./src/apps/search/components/reset-button/ResetButton.tsx ***!
|
|
1570
|
+
\*****************************************************************/
|
|
1571
|
+
/*! exports provided: ResetButton */
|
|
1572
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1573
|
+
|
|
1574
|
+
"use strict";
|
|
1575
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1576
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResetButton", function() { return ResetButton; });
|
|
1577
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1578
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1579
|
+
/* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
|
|
1580
|
+
/* harmony import */ var _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/services/ContextService */ "../../libs/shared/src/services/ContextService.ts");
|
|
1581
|
+
/* harmony import */ var _libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/div-button/DivButton */ "../../libs/shared/src/components/div-button/DivButton.tsx");
|
|
1582
|
+
/* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
|
|
1583
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1584
|
+
/* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
|
|
1585
|
+
/* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
|
|
1586
|
+
|
|
1587
|
+
|
|
1588
|
+
|
|
1589
|
+
|
|
1590
|
+
|
|
1591
|
+
|
|
1592
|
+
|
|
1593
|
+
|
|
1594
|
+
function ResetButton(props) {
|
|
1595
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_5__["FilterContext"]),
|
|
1596
|
+
dispatch = _React$useContext.dispatch;
|
|
1597
|
+
|
|
1598
|
+
var onClickReset = function onClickReset() {
|
|
1599
|
+
var currentAppLink = _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_2__["ContextService"].getCurrentRoute().appLink;
|
|
1600
|
+
var nextAppLink = {
|
|
1601
|
+
application: currentAppLink.application,
|
|
1602
|
+
action: currentAppLink.action
|
|
1603
|
+
};
|
|
1604
|
+
_libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].logUserAction({
|
|
1605
|
+
filter: 'All'
|
|
1606
|
+
}, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
|
|
1607
|
+
actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["UserAction"].Filter,
|
|
1608
|
+
descriptor: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["FilterDescriptor"].Reset,
|
|
1609
|
+
workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["WorkflowPhase"].Complete
|
|
1610
|
+
}));
|
|
1611
|
+
if (props.currentQueryParam) nextAppLink.params = {
|
|
1612
|
+
query: props.currentQueryParam
|
|
1613
|
+
};
|
|
1614
|
+
_libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__["Core"].AppLinkHelper.trigger(nextAppLink);
|
|
1615
|
+
dispatch({
|
|
1616
|
+
type: 'trigger-reset',
|
|
1617
|
+
payload: {}
|
|
1618
|
+
});
|
|
1619
|
+
};
|
|
1620
|
+
|
|
1621
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_3__["DivButton"], {
|
|
1622
|
+
onClick: onClickReset,
|
|
1623
|
+
className: 'hover-text-underline cursor-pointer d-flex align-items-center ml-2'
|
|
1624
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
|
|
1625
|
+
namespace: 'search.resetButton',
|
|
1626
|
+
phrase: 'reset'
|
|
1627
|
+
}));
|
|
1628
|
+
}
|
|
1629
|
+
|
|
1630
|
+
/***/ }),
|
|
1631
|
+
|
|
1632
|
+
/***/ "./src/apps/search/components/search-filters/PartialSearchFilters.tsx":
|
|
1633
|
+
/*!****************************************************************************!*\
|
|
1634
|
+
!*** ./src/apps/search/components/search-filters/PartialSearchFilters.tsx ***!
|
|
1635
|
+
\****************************************************************************/
|
|
1636
|
+
/*! exports provided: PartialSearchFilters */
|
|
1637
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1638
|
+
|
|
1639
|
+
"use strict";
|
|
1640
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1641
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialSearchFilters", function() { return PartialSearchFilters; });
|
|
1642
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1643
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1644
|
+
/* harmony import */ var _search_filters_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search-filters.scss */ "./src/apps/search/components/search-filters/search-filters.scss");
|
|
1645
|
+
/* harmony import */ var _search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1__);
|
|
1646
|
+
|
|
1647
|
+
|
|
1648
|
+
function PartialSearchFilters(_ref) {
|
|
1649
|
+
var _ref$count = _ref.count,
|
|
1650
|
+
count = _ref$count === void 0 ? 6 : _ref$count,
|
|
1651
|
+
hideHeading = _ref.hideHeading;
|
|
1652
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
1653
|
+
className: 'd-flex'
|
|
1654
|
+
}, !hideHeading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
1655
|
+
className: "\n ".concat(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default.a.partialFilterHeading, "\n partial-loading-background\n d-inline-block\n pr-2\n border-right\n d-flex\n align-items-center\n my-auto\n ")
|
|
1656
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
1657
|
+
className: 'd-flex pl-1'
|
|
1658
|
+
}, Array(count).fill(null).map(function (item, index) {
|
|
1659
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
1660
|
+
key: index,
|
|
1661
|
+
className: "".concat(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default.a.partialButton, " partial-loading-background mx-1")
|
|
1662
|
+
});
|
|
1663
|
+
})));
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
/***/ }),
|
|
1667
|
+
|
|
1668
|
+
/***/ "./src/apps/search/components/search-filters/SearchFilters.tsx":
|
|
1669
|
+
/*!*********************************************************************!*\
|
|
1670
|
+
!*** ./src/apps/search/components/search-filters/SearchFilters.tsx ***!
|
|
1671
|
+
\*********************************************************************/
|
|
1672
|
+
/*! exports provided: SearchFilters */
|
|
1673
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1674
|
+
|
|
1675
|
+
"use strict";
|
|
1676
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1677
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchFilters", function() { return SearchFilters; });
|
|
1678
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1679
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1680
|
+
/* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
|
|
1681
|
+
/* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
|
|
1682
|
+
/* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
|
|
1683
|
+
/* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
|
|
1684
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
1685
|
+
|
|
1686
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1687
|
+
|
|
1688
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
1689
|
+
|
|
1690
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1691
|
+
|
|
1692
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
1693
|
+
|
|
1694
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1695
|
+
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
function SearchFilters(props) {
|
|
1702
|
+
var queryParams = props.queryParams,
|
|
1703
|
+
mainFilters = props.mainFilters,
|
|
1704
|
+
moreFilters = props.moreFilters,
|
|
1705
|
+
hideHeading = props.hideHeading;
|
|
1706
|
+
var initialState = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](function () {
|
|
1707
|
+
return apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].deriveInitialStateFromQuery(queryParams, mainFilters, moreFilters);
|
|
1708
|
+
}, [queryParams]);
|
|
1709
|
+
|
|
1710
|
+
var _React$useReducer = react__WEBPACK_IMPORTED_MODULE_0__["useReducer"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterReducer"], initialState),
|
|
1711
|
+
_React$useReducer2 = _slicedToArray(_React$useReducer, 2),
|
|
1712
|
+
state = _React$useReducer2[0],
|
|
1713
|
+
dispatch = _React$useReducer2[1];
|
|
1714
|
+
|
|
1715
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
|
|
1716
|
+
if (!state.bulkReset) return;
|
|
1717
|
+
dispatch({
|
|
1718
|
+
type: 'bulk-reset',
|
|
1719
|
+
payload: apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].deriveInitialStateFromQuery({}, mainFilters, moreFilters)
|
|
1720
|
+
});
|
|
1721
|
+
}, [state]);
|
|
1722
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterContext"].Provider, {
|
|
1723
|
+
value: {
|
|
1724
|
+
state: state,
|
|
1725
|
+
dispatch: dispatch
|
|
1726
|
+
}
|
|
1727
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__["LanguageNamespaceContext"].Provider, {
|
|
1728
|
+
value: 'search.searchFilters'
|
|
1729
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("section", {
|
|
1730
|
+
className: 'd-flex'
|
|
1731
|
+
}, !hideHeading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h2", {
|
|
1732
|
+
className: 'h5 mb-0 d-inline-block pr-2 border-right d-flex align-items-center'
|
|
1733
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__["Text"], {
|
|
1734
|
+
phrase: 'heading'
|
|
1735
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
1736
|
+
className: 'd-flex'
|
|
1737
|
+
}, mainFilters.map(function (f) {
|
|
1738
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterButton"], {
|
|
1739
|
+
key: f.id,
|
|
1740
|
+
filter: f,
|
|
1741
|
+
analyticsOptions: props.analyticsOptions
|
|
1742
|
+
});
|
|
1743
|
+
}), moreFilters && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterButton"], {
|
|
1744
|
+
key: moreFilters.id,
|
|
1745
|
+
filter: moreFilters,
|
|
1746
|
+
analyticsOptions: props.analyticsOptions
|
|
1747
|
+
}), apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].hasActiveFilters(queryParams) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["ResetButton"], {
|
|
1748
|
+
currentQueryParam: queryParams.query,
|
|
1749
|
+
analyticsOptions: props.analyticsOptions
|
|
1750
|
+
})))));
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
/***/ }),
|
|
1754
|
+
|
|
1755
|
+
/***/ "./src/apps/search/components/search-filters/search-filters.scss":
|
|
1756
|
+
/*!***********************************************************************!*\
|
|
1757
|
+
!*** ./src/apps/search/components/search-filters/search-filters.scss ***!
|
|
1758
|
+
\***********************************************************************/
|
|
1759
|
+
/*! no static exports found */
|
|
1760
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1761
|
+
|
|
1762
|
+
// extracted by mini-css-extract-plugin
|
|
1763
|
+
module.exports = {"partialFilterHeading":"cv--partialFilterHeading--2zHGT","partialButton":"cv--partialButton--3Gy7Y"};
|
|
1764
|
+
|
|
1765
|
+
/***/ }),
|
|
1766
|
+
|
|
1767
|
+
/***/ "./src/apps/search/reducers/FilterReducer.tsx":
|
|
1768
|
+
/*!****************************************************!*\
|
|
1769
|
+
!*** ./src/apps/search/reducers/FilterReducer.tsx ***!
|
|
1770
|
+
\****************************************************/
|
|
1771
|
+
/*! exports provided: FilterContext, FilterReducer */
|
|
1772
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1773
|
+
|
|
1774
|
+
"use strict";
|
|
1775
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1776
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterContext", function() { return FilterContext; });
|
|
1777
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterReducer", function() { return FilterReducer; });
|
|
1778
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1779
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1780
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1781
|
+
|
|
1782
|
+
|
|
1783
|
+
var FilterContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(null);
|
|
1784
|
+
/**
|
|
1785
|
+
* Reducer - root level keys should match the filter object's corresponding "id" field
|
|
1786
|
+
*/
|
|
1787
|
+
|
|
1788
|
+
function FilterReducer(state, action) {
|
|
1789
|
+
switch (action.type) {
|
|
1790
|
+
case 'apply':
|
|
1791
|
+
return Object.assign(Object.assign({}, state), _defineProperty({}, action.payload.filter.id, {
|
|
1792
|
+
active: action.payload.active,
|
|
1793
|
+
selection: action.payload.selection
|
|
1794
|
+
}));
|
|
1795
|
+
|
|
1796
|
+
case 'reset':
|
|
1797
|
+
return Object.assign(Object.assign({}, state), _defineProperty({}, action.payload.filter.id, {
|
|
1798
|
+
active: action.payload.active,
|
|
1799
|
+
selection: action.payload.selection
|
|
1800
|
+
}));
|
|
1801
|
+
|
|
1802
|
+
case 'trigger-reset':
|
|
1803
|
+
return Object.assign(Object.assign({}, state), {
|
|
1804
|
+
bulkReset: true
|
|
1805
|
+
});
|
|
1806
|
+
|
|
1807
|
+
case 'bulk-reset':
|
|
1808
|
+
return Object.assign(Object.assign(Object.assign({}, state), action.payload), {
|
|
1809
|
+
bulkReset: false
|
|
1810
|
+
});
|
|
1811
|
+
|
|
1812
|
+
default:
|
|
1813
|
+
return state;
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1817
|
+
/***/ }),
|
|
1818
|
+
|
|
1819
|
+
/***/ "./src/apps/search/reducers/index.ts":
|
|
1820
|
+
/*!*******************************************!*\
|
|
1821
|
+
!*** ./src/apps/search/reducers/index.ts ***!
|
|
1822
|
+
\*******************************************/
|
|
1823
|
+
/*! exports provided: FilterContext, FilterReducer */
|
|
1824
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1825
|
+
|
|
1826
|
+
"use strict";
|
|
1827
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1828
|
+
/* harmony import */ var _FilterReducer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilterReducer */ "./src/apps/search/reducers/FilterReducer.tsx");
|
|
1829
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterContext", function() { return _FilterReducer__WEBPACK_IMPORTED_MODULE_0__["FilterContext"]; });
|
|
1830
|
+
|
|
1831
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterReducer", function() { return _FilterReducer__WEBPACK_IMPORTED_MODULE_0__["FilterReducer"]; });
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
|
|
1835
|
+
/***/ }),
|
|
1836
|
+
|
|
1837
|
+
/***/ "./src/apps/search/utils/FilterHelper.tsx":
|
|
1838
|
+
/*!************************************************!*\
|
|
1839
|
+
!*** ./src/apps/search/utils/FilterHelper.tsx ***!
|
|
1840
|
+
\************************************************/
|
|
1841
|
+
/*! exports provided: Filters, FilterHelper */
|
|
1842
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1843
|
+
|
|
1844
|
+
"use strict";
|
|
1845
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1846
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Filters", function() { return Filters; });
|
|
1847
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterHelper", function() { return FilterHelper; });
|
|
1848
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1849
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1850
|
+
/* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
1851
|
+
/* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
|
|
1852
|
+
/* harmony import */ var _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
|
|
1853
|
+
/* harmony import */ var apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components/filter-types */ "./src/apps/search/components/filter-types/index.ts");
|
|
1854
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
1855
|
+
|
|
1856
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1857
|
+
|
|
1858
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
1859
|
+
|
|
1860
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1861
|
+
|
|
1862
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
1863
|
+
|
|
1864
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].encloseNamespace('search.utils');
|
|
1872
|
+
var Filters = {
|
|
1873
|
+
SortByName: function SortByName(options) {
|
|
1874
|
+
return {
|
|
1875
|
+
id: 'sortName',
|
|
1876
|
+
name: getPhrase('firstNameAToZ'),
|
|
1877
|
+
type: 'dropdown',
|
|
1878
|
+
options: options
|
|
1879
|
+
};
|
|
1880
|
+
},
|
|
1881
|
+
YearLevel: function YearLevel(options) {
|
|
1882
|
+
return {
|
|
1883
|
+
id: 'yearLevel',
|
|
1884
|
+
name: getPhrase('yearLevel'),
|
|
1885
|
+
type: 'radio',
|
|
1886
|
+
customComponent: apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["YearLevelRadioFilter"],
|
|
1887
|
+
options: options
|
|
1888
|
+
};
|
|
1889
|
+
},
|
|
1890
|
+
ObjectType: function ObjectType(options) {
|
|
1891
|
+
return {
|
|
1892
|
+
id: 'objectType',
|
|
1893
|
+
name: getPhrase('objectTypes'),
|
|
1894
|
+
type: 'radio',
|
|
1895
|
+
options: options
|
|
1896
|
+
};
|
|
1897
|
+
},
|
|
1898
|
+
Ratings: function Ratings(options) {
|
|
1899
|
+
return {
|
|
1900
|
+
id: 'ratings',
|
|
1901
|
+
name: getPhrase('ratings'),
|
|
1902
|
+
type: 'rating',
|
|
1903
|
+
options: options
|
|
1904
|
+
};
|
|
1905
|
+
},
|
|
1906
|
+
Interactives: function Interactives() {
|
|
1907
|
+
return {
|
|
1908
|
+
id: 'interactives',
|
|
1909
|
+
name: getPhrase('interactives'),
|
|
1910
|
+
type: 'switch',
|
|
1911
|
+
description: getPhrase('interactivesDescription')
|
|
1912
|
+
};
|
|
1913
|
+
},
|
|
1914
|
+
Clips: function Clips() {
|
|
1915
|
+
return {
|
|
1916
|
+
id: 'clips',
|
|
1917
|
+
name: getPhrase('clips'),
|
|
1918
|
+
type: 'switch',
|
|
1919
|
+
description: getPhrase('clipsDescription')
|
|
1920
|
+
};
|
|
1921
|
+
},
|
|
1922
|
+
Classroom: function Classroom(options) {
|
|
1923
|
+
return {
|
|
1924
|
+
id: 'classroom',
|
|
1925
|
+
name: getPhrase('classroom'),
|
|
1926
|
+
type: 'checkbox',
|
|
1927
|
+
options: options
|
|
1928
|
+
};
|
|
1929
|
+
}
|
|
1930
|
+
};
|
|
1931
|
+
var FilterHelper = {
|
|
1932
|
+
getMoreFilters: function getMoreFilters() {
|
|
1933
|
+
return {
|
|
1934
|
+
id: 'moreFilters',
|
|
1935
|
+
name: getPhrase('moreFilters'),
|
|
1936
|
+
type: 'more-filters',
|
|
1937
|
+
filters: []
|
|
1938
|
+
};
|
|
1939
|
+
},
|
|
1940
|
+
mapTypeToComponent: function mapTypeToComponent(type) {
|
|
1941
|
+
switch (type) {
|
|
1942
|
+
case 'switch':
|
|
1943
|
+
return function (props) {
|
|
1944
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["SwitchFilter"], Object.assign({
|
|
1945
|
+
key: props.id
|
|
1946
|
+
}, props));
|
|
1947
|
+
};
|
|
1948
|
+
|
|
1949
|
+
case 'checkbox':
|
|
1950
|
+
return function (props) {
|
|
1951
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["CheckboxFilter"], Object.assign({
|
|
1952
|
+
key: props.id
|
|
1953
|
+
}, props));
|
|
1954
|
+
};
|
|
1955
|
+
|
|
1956
|
+
case 'radio':
|
|
1957
|
+
return function (props) {
|
|
1958
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["RadioFilter"], Object.assign({
|
|
1959
|
+
key: props.id
|
|
1960
|
+
}, props));
|
|
1961
|
+
};
|
|
1962
|
+
|
|
1963
|
+
case 'rating':
|
|
1964
|
+
return function (props) {
|
|
1965
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["SwitchFilter"], Object.assign({
|
|
1966
|
+
key: props.id
|
|
1967
|
+
}, props));
|
|
1968
|
+
};
|
|
1969
|
+
|
|
1970
|
+
case 'dropdown':
|
|
1971
|
+
return function (props) {
|
|
1972
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["DropdownFilter"], Object.assign({
|
|
1973
|
+
key: props.id
|
|
1974
|
+
}, props));
|
|
1975
|
+
};
|
|
1976
|
+
|
|
1977
|
+
case 'more-filters':
|
|
1978
|
+
return function (props) {
|
|
1979
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["MoreFilters"], Object.assign({
|
|
1980
|
+
key: props.id
|
|
1981
|
+
}, props));
|
|
1982
|
+
};
|
|
1983
|
+
}
|
|
1984
|
+
},
|
|
1985
|
+
deriveInitialStateFromQuery: function deriveInitialStateFromQuery() {
|
|
1986
|
+
var queryParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1987
|
+
var mainFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1988
|
+
var moreFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1989
|
+
var initialStates = {
|
|
1990
|
+
sortName: {
|
|
1991
|
+
active: !!queryParams.sortName,
|
|
1992
|
+
selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'sortName')
|
|
1993
|
+
},
|
|
1994
|
+
objectType: {
|
|
1995
|
+
active: !!queryParams.objectType,
|
|
1996
|
+
selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'objectType')
|
|
1997
|
+
},
|
|
1998
|
+
ratings: {
|
|
1999
|
+
active: !!queryParams.ratings,
|
|
2000
|
+
selection: queryParams.ratings || null
|
|
2001
|
+
},
|
|
2002
|
+
interactives: {
|
|
2003
|
+
active: queryParams.interactives
|
|
2004
|
+
},
|
|
2005
|
+
clips: {
|
|
2006
|
+
active: queryParams.clips
|
|
2007
|
+
},
|
|
2008
|
+
yearLevel: {
|
|
2009
|
+
active: !!queryParams.yearLevel,
|
|
2010
|
+
selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'yearLevel')
|
|
2011
|
+
},
|
|
2012
|
+
classroom: {
|
|
2013
|
+
active: !!queryParams.classroom,
|
|
2014
|
+
selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'classroom')
|
|
2015
|
+
},
|
|
2016
|
+
moreFilters: {
|
|
2017
|
+
active: false // TODO: figure this shit out eventually
|
|
2018
|
+
|
|
2019
|
+
}
|
|
2020
|
+
};
|
|
2021
|
+
var derivedState = mainFilters.reduce(function (state, filter) {
|
|
2022
|
+
state[filter.id] = initialStates[filter.id];
|
|
2023
|
+
return state;
|
|
2024
|
+
}, {});
|
|
2025
|
+
if (moreFilters) derivedState.moreFilters = initialStates.moreFilters;
|
|
2026
|
+
return derivedState;
|
|
2027
|
+
},
|
|
2028
|
+
hasActiveFilters: function hasActiveFilters(queryParams) {
|
|
2029
|
+
var paramKeys = Object.keys(queryParams);
|
|
2030
|
+
if (!paramKeys.length) return false;
|
|
2031
|
+
var activeFilters = paramKeys.filter(function (q) {
|
|
2032
|
+
// 'query', 'cursor', and 'page' don't count as filters
|
|
2033
|
+
if (q === 'query' || q === 'cursor' || q === 'page') return false; // Filters that can have multiple selections (e.g. checkbox types) do not count as active if they are empty
|
|
2034
|
+
|
|
2035
|
+
if (Array.isArray(queryParams[q]) && !queryParams[q].length) return false;
|
|
2036
|
+
return true;
|
|
2037
|
+
});
|
|
2038
|
+
return !!activeFilters.length;
|
|
2039
|
+
},
|
|
2040
|
+
getLabel: function getLabel(filter, filterState) {
|
|
2041
|
+
var _a;
|
|
2042
|
+
|
|
2043
|
+
if (!((_a = filterState.selection) === null || _a === void 0 ? void 0 : _a.length)) return filter.name;
|
|
2044
|
+
if (filter.type === 'dropdown') return _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(filterState.selection).name;
|
|
2045
|
+
|
|
2046
|
+
if (filter.type === 'radio') {
|
|
2047
|
+
var selection = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(filterState.selection);
|
|
2048
|
+
if (!selection || selection["default"]) return filter.name;
|
|
2049
|
+
return selection.name;
|
|
2050
|
+
}
|
|
2051
|
+
|
|
2052
|
+
if (filter.type === 'checkbox') return "".concat(filter.name, " - ").concat(filterState.selection.length);
|
|
2053
|
+
},
|
|
2054
|
+
buildQueryParams: function buildQueryParams(queryParams, state) {
|
|
2055
|
+
var _state$filter = state.filter,
|
|
2056
|
+
param = _state$filter.id,
|
|
2057
|
+
type = _state$filter.type;
|
|
2058
|
+
var updatedParams = Object.assign({}, queryParams);
|
|
2059
|
+
|
|
2060
|
+
switch (type) {
|
|
2061
|
+
case 'switch':
|
|
2062
|
+
updatedParams[param] = state.active ? 'true' : '';
|
|
2063
|
+
break;
|
|
2064
|
+
|
|
2065
|
+
case 'radio':
|
|
2066
|
+
case 'dropdown':
|
|
2067
|
+
updatedParams[param] = getRadioParamValue(state.selection);
|
|
2068
|
+
break;
|
|
2069
|
+
|
|
2070
|
+
case 'checkbox':
|
|
2071
|
+
updatedParams[param] = state.active ? state.selection.map(function (option) {
|
|
2072
|
+
return option.id;
|
|
2073
|
+
}) : [];
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
if (!updatedParams[param]) // If the param is empty, delete it
|
|
2077
|
+
delete updatedParams[param];
|
|
2078
|
+
return updatedParams;
|
|
2079
|
+
},
|
|
2080
|
+
|
|
2081
|
+
/**
|
|
2082
|
+
* This returns an object of all of the query params our search requests will pass to the backend endpoint.
|
|
2083
|
+
* This usually consists of:
|
|
2084
|
+
* q = the query string e.g. 'shakespeare'
|
|
2085
|
+
* filter = the filter string e.g. '{interactives:true,classroom:classroom-2-a,classroom:classroom-2-b}'
|
|
2086
|
+
* query = the with statement e.g. '{orderbydesc:name}series,season,interactives,resources,subtitles'
|
|
2087
|
+
* cursor = the cursor e.g. 's-sf3r9o32f-0vd'
|
|
2088
|
+
*/
|
|
2089
|
+
getBackendQueryParams: function getBackendQueryParams(queryParams) {
|
|
2090
|
+
var q = queryParams.query;
|
|
2091
|
+
var query = getWithStatement(queryParams);
|
|
2092
|
+
var filter = getFilterString(queryParams);
|
|
2093
|
+
var backendQueryParams = {};
|
|
2094
|
+
if (q) backendQueryParams.q = q;
|
|
2095
|
+
if (query) backendQueryParams.query = query;
|
|
2096
|
+
if (filter) backendQueryParams.filter = "{".concat(filter, "}");
|
|
2097
|
+
if (queryParams.cursor) backendQueryParams.cursor = queryParams.cursor;
|
|
2098
|
+
return backendQueryParams;
|
|
2099
|
+
},
|
|
2100
|
+
|
|
2101
|
+
/**
|
|
2102
|
+
* This functions purpose is to convert a with statement string into an object that is easy to use
|
|
2103
|
+
* in mock backends for sorting/filtering mock data. It doesn't need to be efficient, as it should
|
|
2104
|
+
* never ever be used in production
|
|
2105
|
+
*/
|
|
2106
|
+
convertWithStatementToObject: function convertWithStatementToObject(withStatement) {
|
|
2107
|
+
if (!withStatement) return {}; // Remove any angle brackets with commas, which we use in `.split` just below
|
|
2108
|
+
|
|
2109
|
+
withStatement = withStatement.replace('{', ',').replace('}', ',');
|
|
2110
|
+
var withStatements = withStatement.split(',');
|
|
2111
|
+
var sortingStatement = '';
|
|
2112
|
+
var assocStatements = [];
|
|
2113
|
+
withStatements.forEach(function (statement) {
|
|
2114
|
+
if (statement.includes(':')) sortingStatement = statement;else assocStatements.push(statement);
|
|
2115
|
+
});
|
|
2116
|
+
|
|
2117
|
+
var _sortingStatement$spl = sortingStatement.split(':'),
|
|
2118
|
+
_sortingStatement$spl2 = _slicedToArray(_sortingStatement$spl, 2),
|
|
2119
|
+
sortKey = _sortingStatement$spl2[0],
|
|
2120
|
+
sortValue = _sortingStatement$spl2[1];
|
|
2121
|
+
|
|
2122
|
+
return {
|
|
2123
|
+
assocs: assocStatements,
|
|
2124
|
+
sortKey: sortKey,
|
|
2125
|
+
sortValue: sortValue
|
|
2126
|
+
};
|
|
2127
|
+
},
|
|
2128
|
+
// This is used for filtering data in mock flight requests. It shouldn't be used in production code
|
|
2129
|
+
revertFilterString: function revertFilterString(filterString) {
|
|
2130
|
+
if (!filterString) return {}; // Remove "{" and "}" from both ends
|
|
2131
|
+
|
|
2132
|
+
filterString = filterString.slice(1, -1); // Get an array of all of our filter values:
|
|
2133
|
+
// E.g. [ 'yearLevel:year-2', 'classroom:classroom-2-a', 'classroom-2-b', 'classroom-2-c' ]
|
|
2134
|
+
|
|
2135
|
+
var filterValues = filterString.split(',');
|
|
2136
|
+
var keyValueFilterStrings = [];
|
|
2137
|
+
var currentFilterKey = '';
|
|
2138
|
+
filterValues.forEach(function (filterStr) {
|
|
2139
|
+
// Here we're building an array that looks like `filterValues`, but where every value has its key attached
|
|
2140
|
+
// E.g. [ 'yearLevel:year-2', 'classroom:classroom-2-a', 'classroom:classroom-2-b', 'classroom:classroom-2-c' ]
|
|
2141
|
+
if (filterStr.includes(':')) {
|
|
2142
|
+
currentFilterKey = filterStr.split(':')[0];
|
|
2143
|
+
keyValueFilterStrings.push(filterStr);
|
|
2144
|
+
return;
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2147
|
+
var fullFilterString = "".concat(currentFilterKey, ":").concat(filterStr);
|
|
2148
|
+
keyValueFilterStrings.push(fullFilterString);
|
|
2149
|
+
}); // Convert the array into an object.
|
|
2150
|
+
// E.g. { yearLevel: 'year-2', classroom: [ 'classroom-2-a', 'classroom-2-b', 'classroom-2-c' ] }
|
|
2151
|
+
|
|
2152
|
+
return keyValueFilterStrings.reduce(function (filterObj, filterStr) {
|
|
2153
|
+
var _filterStr$split = filterStr.split(':'),
|
|
2154
|
+
_filterStr$split2 = _slicedToArray(_filterStr$split, 2),
|
|
2155
|
+
key = _filterStr$split2[0],
|
|
2156
|
+
value = _filterStr$split2[1];
|
|
2157
|
+
|
|
2158
|
+
if (filterObj[key] && !Array.isArray(filterObj[key])) {
|
|
2159
|
+
var temp = filterObj[key];
|
|
2160
|
+
filterObj[key] = [temp];
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
if (Array.isArray(filterObj[key])) filterObj[key].push(value);else filterObj[key] = value;
|
|
2164
|
+
return filterObj;
|
|
2165
|
+
}, {});
|
|
2166
|
+
},
|
|
2167
|
+
|
|
2168
|
+
/**
|
|
2169
|
+
* Helpers below this comment return hard coded filter options for a particular filter.
|
|
2170
|
+
* If you are adding a new filter with hard coded options, add a new function here.
|
|
2171
|
+
*/
|
|
2172
|
+
getObjectTypeOptions: function getObjectTypeOptions() {
|
|
2173
|
+
return [{
|
|
2174
|
+
id: 'allTypes',
|
|
2175
|
+
name: getPhrase('allTypes'),
|
|
2176
|
+
"default": true
|
|
2177
|
+
}, {
|
|
2178
|
+
id: 'topics',
|
|
2179
|
+
name: getPhrase('topics')
|
|
2180
|
+
}, {
|
|
2181
|
+
id: 'playlists',
|
|
2182
|
+
name: getPhrase('playlists')
|
|
2183
|
+
}, {
|
|
2184
|
+
id: 'series',
|
|
2185
|
+
name: getPhrase('series')
|
|
2186
|
+
}, {
|
|
2187
|
+
id: 'videos',
|
|
2188
|
+
name: getPhrase('videos')
|
|
2189
|
+
}];
|
|
2190
|
+
},
|
|
2191
|
+
getNameSortOptions: function getNameSortOptions() {
|
|
2192
|
+
return [{
|
|
2193
|
+
id: 'first-name-atoz',
|
|
2194
|
+
name: getPhrase('firstNameAToZ'),
|
|
2195
|
+
"default": true
|
|
2196
|
+
}, {
|
|
2197
|
+
id: 'first-name-ztoa',
|
|
2198
|
+
name: getPhrase('firstNameZToA')
|
|
2199
|
+
}, {
|
|
2200
|
+
id: 'surname-atoz',
|
|
2201
|
+
name: getPhrase('surnameAToZ')
|
|
2202
|
+
}, {
|
|
2203
|
+
id: 'surname-ztoa',
|
|
2204
|
+
name: getPhrase('surnameZToA')
|
|
2205
|
+
}];
|
|
2206
|
+
},
|
|
2207
|
+
getYearLevelOptions: function getYearLevelOptions(yearLevels) {
|
|
2208
|
+
var _a;
|
|
2209
|
+
|
|
2210
|
+
if (!((_a = yearLevels) === null || _a === void 0 ? void 0 : _a.length)) return [];
|
|
2211
|
+
return yearLevels.map(function (level) {
|
|
2212
|
+
return {
|
|
2213
|
+
id: level.name.toLowerCase().replace(' ', '-'),
|
|
2214
|
+
name: level.name
|
|
2215
|
+
};
|
|
2216
|
+
});
|
|
2217
|
+
},
|
|
2218
|
+
getClassroomOptions: function getClassroomOptions(classrooms) {
|
|
2219
|
+
var _a;
|
|
2220
|
+
|
|
2221
|
+
if (!((_a = classrooms) === null || _a === void 0 ? void 0 : _a.length)) return [];
|
|
2222
|
+
return classrooms.map(function (classroom) {
|
|
2223
|
+
return {
|
|
2224
|
+
id: classroom.name.toLowerCase().replace(' ', '-'),
|
|
2225
|
+
name: classroom.name
|
|
2226
|
+
};
|
|
2227
|
+
});
|
|
2228
|
+
}
|
|
2229
|
+
}; // This allows us to determine which filters should be applied based on the query params set on first load
|
|
2230
|
+
|
|
2231
|
+
function getFilterSelectionsFromQueryParams(queryParams, filters, filterName) {
|
|
2232
|
+
var filter = filters.find(function (f) {
|
|
2233
|
+
return f.id === filterName;
|
|
2234
|
+
});
|
|
2235
|
+
if (!filter) return [];
|
|
2236
|
+
if (!queryParams[filterName]) return filter.options.filter(function (option) {
|
|
2237
|
+
return option["default"];
|
|
2238
|
+
});
|
|
2239
|
+
var selections = queryParams[filterName];
|
|
2240
|
+
if (!Array.isArray(selections)) selections = [selections];
|
|
2241
|
+
return filter.options.filter(function (option) {
|
|
2242
|
+
return selections.includes(option.id);
|
|
2243
|
+
});
|
|
2244
|
+
}
|
|
2245
|
+
|
|
2246
|
+
function getRadioParamValue(selection) {
|
|
2247
|
+
var _a;
|
|
2248
|
+
|
|
2249
|
+
if (!((_a = selection) === null || _a === void 0 ? void 0 : _a.length)) return '';
|
|
2250
|
+
return _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(selection).id;
|
|
2251
|
+
}
|
|
2252
|
+
/**
|
|
2253
|
+
* This is massively under developed, and only does what it's needed for at this time.
|
|
2254
|
+
* Please update if you need extra functionality
|
|
2255
|
+
*/
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
function getWithStatement(queryParams) {
|
|
2259
|
+
var withStatement = '';
|
|
2260
|
+
|
|
2261
|
+
if (queryParams['sortName']) {
|
|
2262
|
+
switch (queryParams['sortName']) {
|
|
2263
|
+
case 'first-name-atoz':
|
|
2264
|
+
withStatement += '{orderby:name}';
|
|
2265
|
+
break;
|
|
2266
|
+
|
|
2267
|
+
case 'first-name-ztoa':
|
|
2268
|
+
withStatement += '{orderbydesc:name}';
|
|
2269
|
+
break;
|
|
2270
|
+
|
|
2271
|
+
case 'surname-atoz':
|
|
2272
|
+
withStatement += '{orderby:surname}';
|
|
2273
|
+
break;
|
|
2274
|
+
|
|
2275
|
+
case 'surname-ztoa':
|
|
2276
|
+
withStatement += '{orderbydesc:surname}';
|
|
2277
|
+
break;
|
|
2278
|
+
|
|
2279
|
+
default:
|
|
2280
|
+
break;
|
|
2281
|
+
}
|
|
2282
|
+
}
|
|
2283
|
+
|
|
2284
|
+
return withStatement;
|
|
2285
|
+
}
|
|
2286
|
+
/**
|
|
2287
|
+
* Private functions
|
|
2288
|
+
*/
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
function getFilterString(queryParams) {
|
|
2292
|
+
// Add any potential query params here that are not supposed to be in the filter string
|
|
2293
|
+
var omitKeys = ['query', 'sortName', 'cursor', 'page'];
|
|
2294
|
+
var filterQueryParams = _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].omit(queryParams, omitKeys);
|
|
2295
|
+
var filterStrings = Object.keys(filterQueryParams).map(function (filter) {
|
|
2296
|
+
return "".concat(filter, ":").concat(filterQueryParams[filter]);
|
|
2297
|
+
});
|
|
2298
|
+
return filterStrings.join(',');
|
|
2299
|
+
}
|
|
2300
|
+
|
|
2301
|
+
/***/ }),
|
|
2302
|
+
|
|
2303
|
+
/***/ "./src/apps/search/utils/SearchHelper.tsx":
|
|
2304
|
+
/*!************************************************!*\
|
|
2305
|
+
!*** ./src/apps/search/utils/SearchHelper.tsx ***!
|
|
2306
|
+
\************************************************/
|
|
2307
|
+
/*! exports provided: SearchHelper */
|
|
2308
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2309
|
+
|
|
2310
|
+
"use strict";
|
|
2311
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2312
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchHelper", function() { return SearchHelper; });
|
|
2313
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2314
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2315
|
+
/* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
|
|
2316
|
+
/* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
2317
|
+
/* harmony import */ var _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/TextHelper */ "../../libs/common/src/react/utils/TextHelper.ts");
|
|
2318
|
+
/* harmony import */ var _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../libs/shared/src/enums/WidgetContents */ "../../libs/shared/src/enums/WidgetContents.ts");
|
|
2319
|
+
/* harmony import */ var _libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/video-list/VideoList */ "../../libs/shared/src/components/video-list/VideoList.tsx");
|
|
2320
|
+
/* harmony import */ var _libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/widgets/fixed-widget/FixedWidget */ "../../libs/shared/src/components/widgets/fixed-widget/FixedWidget.tsx");
|
|
2321
|
+
/* harmony import */ var _libs_shared_src_components_widgets_items_playlist_widget_item_PlaylistWidgetItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem */ "../../libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx");
|
|
2322
|
+
/* harmony import */ var _libs_shared_src_components_widgets_items_series_widget_item_SeriesWidgetItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem */ "../../libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem.tsx");
|
|
2323
|
+
/* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
|
|
2324
|
+
/* harmony import */ var shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! shared/constants/LiteActions */ "./src/shared/constants/LiteActions.ts");
|
|
2325
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2326
|
+
|
|
2327
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
2328
|
+
|
|
2329
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
2330
|
+
|
|
2331
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
2332
|
+
|
|
2333
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
2334
|
+
|
|
2335
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
2336
|
+
|
|
2337
|
+
|
|
2338
|
+
|
|
2339
|
+
|
|
2340
|
+
|
|
2341
|
+
|
|
2342
|
+
|
|
2343
|
+
|
|
2344
|
+
|
|
2345
|
+
|
|
2346
|
+
|
|
2347
|
+
|
|
2348
|
+
var Capacities = {
|
|
2349
|
+
MainResults: {
|
|
2350
|
+
SUBJECTS: 10,
|
|
2351
|
+
PLAYLISTS: 5,
|
|
2352
|
+
SERIES: 4
|
|
2353
|
+
},
|
|
2354
|
+
OtherResults: {
|
|
2355
|
+
VIDEOS: 6,
|
|
2356
|
+
PLAYLISTS: 10,
|
|
2357
|
+
SERIES: 10
|
|
2358
|
+
}
|
|
2359
|
+
};
|
|
2360
|
+
var SearchHelper = {
|
|
2361
|
+
/**
|
|
2362
|
+
* These are the results that appear at the very top of the page
|
|
2363
|
+
*/
|
|
2364
|
+
filterMainResults: function filterMainResults(results) {
|
|
2365
|
+
var MainResults = Capacities.MainResults;
|
|
2366
|
+
var subjects = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.subjects, MainResults.SUBJECTS);
|
|
2367
|
+
var firstVideo = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].first(results.videos);
|
|
2368
|
+
var playlists = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.playlists, MainResults.PLAYLISTS);
|
|
2369
|
+
var series = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.series, MainResults.SERIES);
|
|
2370
|
+
return {
|
|
2371
|
+
subjects: subjects,
|
|
2372
|
+
firstVideo: firstVideo,
|
|
2373
|
+
playlists: playlists,
|
|
2374
|
+
series: series,
|
|
2375
|
+
otherResults: {
|
|
2376
|
+
videos: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.videos, results.videos.length - 1),
|
|
2377
|
+
playlists: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.playlists, results.playlists.length - MainResults.PLAYLISTS),
|
|
2378
|
+
series: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.series, results.series.length - MainResults.SERIES)
|
|
2379
|
+
}
|
|
2380
|
+
};
|
|
2381
|
+
},
|
|
2382
|
+
structureOtherResults: function structureOtherResults(results) {
|
|
2383
|
+
var OtherResults = Capacities.OtherResults;
|
|
2384
|
+
var videoSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.videos, OtherResults.VIDEOS);
|
|
2385
|
+
var playlistSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.playlists, OtherResults.PLAYLISTS);
|
|
2386
|
+
var seriesSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.series, OtherResults.SERIES);
|
|
2387
|
+
return SearchHelper.buildResultStructure(videoSets, playlistSets, seriesSets);
|
|
2388
|
+
},
|
|
2389
|
+
// For every 6 videos, there should be either a row of playlists or a row of series (alternating)
|
|
2390
|
+
buildResultStructure: function buildResultStructure(videoSets, playlistSets, seriesSets) {
|
|
2391
|
+
var structure = []; // Clone each set as we need to use a mutable structure, but don't want to mutate the inputs directly
|
|
2392
|
+
|
|
2393
|
+
var videosClone = _toConsumableArray(videoSets);
|
|
2394
|
+
|
|
2395
|
+
var playlistsClone = _toConsumableArray(playlistSets);
|
|
2396
|
+
|
|
2397
|
+
var seriesClone = _toConsumableArray(seriesSets); // We set the iterations here instead of in the for-loop args because `videoSets` gets mutated
|
|
2398
|
+
|
|
2399
|
+
|
|
2400
|
+
var iterations = videoSets.length;
|
|
2401
|
+
|
|
2402
|
+
for (var index = 0; index < iterations; index++) {
|
|
2403
|
+
var nextVideoSet = videosClone.shift(); // After every video set will come a set of playlists or series
|
|
2404
|
+
|
|
2405
|
+
var seriesOrPlaylistSet = SearchHelper.getSeriesOrPlaylistSet(playlistsClone, seriesClone, index);
|
|
2406
|
+
nextVideoSet && structure.push({
|
|
2407
|
+
type: 'video',
|
|
2408
|
+
data: nextVideoSet
|
|
2409
|
+
});
|
|
2410
|
+
seriesOrPlaylistSet && structure.push(seriesOrPlaylistSet);
|
|
2411
|
+
} // In edge cases where there may be more playlists or series result sets than video sets, add them to the end
|
|
2412
|
+
|
|
2413
|
+
|
|
2414
|
+
if (playlistsClone.length) {
|
|
2415
|
+
playlistsClone.forEach(function (data) {
|
|
2416
|
+
return structure.push({
|
|
2417
|
+
type: 'playlist',
|
|
2418
|
+
data: data
|
|
2419
|
+
});
|
|
2420
|
+
});
|
|
2421
|
+
}
|
|
2422
|
+
|
|
2423
|
+
if (seriesClone.length) {
|
|
2424
|
+
seriesClone.forEach(function (data) {
|
|
2425
|
+
return structure.push({
|
|
2426
|
+
type: 'series',
|
|
2427
|
+
data: data
|
|
2428
|
+
});
|
|
2429
|
+
});
|
|
2430
|
+
} // Remove any empty sets
|
|
2431
|
+
|
|
2432
|
+
|
|
2433
|
+
return structure.filter(function (set) {
|
|
2434
|
+
return set.data && !!set.data.length;
|
|
2435
|
+
});
|
|
2436
|
+
},
|
|
2437
|
+
|
|
2438
|
+
/**
|
|
2439
|
+
* Determines whether or not a playlist or series set should be added to the results structure next.
|
|
2440
|
+
*/
|
|
2441
|
+
getSeriesOrPlaylistSet: function getSeriesOrPlaylistSet(playlists, series, videoSetIndex) {
|
|
2442
|
+
var isOdd = videoSetIndex % 2 === 0; // If odd, add a series set. If even, add a playlist set.
|
|
2443
|
+
|
|
2444
|
+
if (isOdd && series.length || !playlists.length) return {
|
|
2445
|
+
type: 'series',
|
|
2446
|
+
data: series.shift()
|
|
2447
|
+
};
|
|
2448
|
+
if (!isOdd && playlists.length || !series.length) return {
|
|
2449
|
+
type: 'playlist',
|
|
2450
|
+
data: playlists.shift()
|
|
2451
|
+
}; // We will only reach this point once we have run out of series and playlist results
|
|
2452
|
+
|
|
2453
|
+
return null;
|
|
2454
|
+
},
|
|
2455
|
+
getResultSetComponent: function getResultSetComponent(set, audiences, setFavourite) {
|
|
2456
|
+
switch (set.type) {
|
|
2457
|
+
case 'video':
|
|
2458
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
2459
|
+
className: 'pb-3'
|
|
2460
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_5__["VideoList"], {
|
|
2461
|
+
videos: set.data,
|
|
2462
|
+
getVideoAppLink: SearchHelper.getVideoAppLink,
|
|
2463
|
+
getSeriesAppLink: SearchHelper.getSeriesAppLink,
|
|
2464
|
+
setFavourite: setFavourite
|
|
2465
|
+
}));
|
|
2466
|
+
|
|
2467
|
+
case 'playlist':
|
|
2468
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
2469
|
+
className: 'mx-n1'
|
|
2470
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__["FixedWidget"], {
|
|
2471
|
+
name: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].getPhrase('search.searchResults', 'relatedPlaylists'),
|
|
2472
|
+
collection: set.data,
|
|
2473
|
+
childAppLink: SearchHelper.getPlaylistAppLink(),
|
|
2474
|
+
childComponent: function childComponent(childProps) {
|
|
2475
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_items_playlist_widget_item_PlaylistWidgetItem__WEBPACK_IMPORTED_MODULE_7__["PlaylistWidgetItem"], Object.assign({}, childProps, {
|
|
2476
|
+
presentationAudiences: audiences
|
|
2477
|
+
}));
|
|
2478
|
+
},
|
|
2479
|
+
contents: _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__["WidgetContents"].Playlists
|
|
2480
|
+
}));
|
|
2481
|
+
|
|
2482
|
+
case 'series':
|
|
2483
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
2484
|
+
className: 'mx-n1'
|
|
2485
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__["FixedWidget"], {
|
|
2486
|
+
name: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].getPhrase('search.searchResults', 'relatedSeries'),
|
|
2487
|
+
collection: set.data,
|
|
2488
|
+
childAppLink: SearchHelper.getSeriesAppLink(),
|
|
2489
|
+
childComponent: function childComponent(childProps) {
|
|
2490
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_items_series_widget_item_SeriesWidgetItem__WEBPACK_IMPORTED_MODULE_8__["SeriesWidgetItem"], Object.assign({}, childProps, {
|
|
2491
|
+
audiences: audiences
|
|
2492
|
+
}));
|
|
2493
|
+
},
|
|
2494
|
+
contents: _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__["WidgetContents"].Series
|
|
2495
|
+
}));
|
|
2496
|
+
}
|
|
2497
|
+
},
|
|
2498
|
+
getVideoAppLink: function getVideoAppLink(video) {
|
|
2499
|
+
return {
|
|
2500
|
+
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].DEFAULT,
|
|
2501
|
+
action: 'play:video',
|
|
2502
|
+
args: [video.id]
|
|
2503
|
+
};
|
|
2504
|
+
},
|
|
2505
|
+
getSeriesAppLink: function getSeriesAppLink(series) {
|
|
2506
|
+
return {
|
|
2507
|
+
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].DEFAULT,
|
|
2508
|
+
action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__["Actions"].Default.SERIES,
|
|
2509
|
+
args: series ? [series.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__["TextHelper"].slugify(series.name)] : []
|
|
2510
|
+
};
|
|
2511
|
+
},
|
|
2512
|
+
getPlaylistAppLink: function getPlaylistAppLink(playlist) {
|
|
2513
|
+
return {
|
|
2514
|
+
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].PLAYLISTS,
|
|
2515
|
+
action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__["Actions"].Playlists.PLAYLIST,
|
|
2516
|
+
args: playlist ? [playlist.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__["TextHelper"].slugify(playlist.name)] : []
|
|
2517
|
+
};
|
|
2518
|
+
}
|
|
2519
|
+
};
|
|
2520
|
+
|
|
2521
|
+
/***/ }),
|
|
2522
|
+
|
|
2523
|
+
/***/ "./src/apps/search/utils/index.ts":
|
|
2524
|
+
/*!****************************************!*\
|
|
2525
|
+
!*** ./src/apps/search/utils/index.ts ***!
|
|
2526
|
+
\****************************************/
|
|
2527
|
+
/*! exports provided: Filters, FilterHelper, SearchHelper */
|
|
2528
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2529
|
+
|
|
2530
|
+
"use strict";
|
|
2531
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2532
|
+
/* harmony import */ var _FilterHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilterHelper */ "./src/apps/search/utils/FilterHelper.tsx");
|
|
2533
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Filters", function() { return _FilterHelper__WEBPACK_IMPORTED_MODULE_0__["Filters"]; });
|
|
2534
|
+
|
|
2535
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterHelper", function() { return _FilterHelper__WEBPACK_IMPORTED_MODULE_0__["FilterHelper"]; });
|
|
2536
|
+
|
|
2537
|
+
/* harmony import */ var _SearchHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SearchHelper */ "./src/apps/search/utils/SearchHelper.tsx");
|
|
2538
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchHelper", function() { return _SearchHelper__WEBPACK_IMPORTED_MODULE_1__["SearchHelper"]; });
|
|
2539
|
+
|
|
2540
|
+
|
|
2541
|
+
|
|
2542
|
+
|
|
2543
|
+
/***/ }),
|
|
2544
|
+
|
|
2545
|
+
/***/ "./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx":
|
|
2546
|
+
/*!*******************************************************************************************!*\
|
|
2547
|
+
!*** ./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx ***!
|
|
2548
|
+
\*******************************************************************************************/
|
|
2549
|
+
/*! exports provided: BulkUploadFileSelect */
|
|
2550
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2551
|
+
|
|
2552
|
+
"use strict";
|
|
2553
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2554
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BulkUploadFileSelect", function() { return BulkUploadFileSelect; });
|
|
2555
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2556
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2557
|
+
/* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! papaparse */ "../../../node_modules/papaparse/papaparse.min.js");
|
|
2558
|
+
/* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(papaparse__WEBPACK_IMPORTED_MODULE_1__);
|
|
2559
|
+
/* harmony import */ var _libs_common_src_react_hooks_useViewModel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/hooks/useViewModel */ "../../libs/common/src/react/hooks/useViewModel.ts");
|
|
2560
|
+
/* harmony import */ var _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
|
|
2561
|
+
/* harmony import */ var _libs_shared_src_components_icon_button_IconButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/icon-button/IconButton */ "../../libs/shared/src/components/icon-button/IconButton.tsx");
|
|
2562
|
+
/* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
|
|
2563
|
+
/* harmony import */ var _libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/UseAlerts */ "../../libs/shared/src/hooks/UseAlerts.ts");
|
|
2564
|
+
/* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
|
|
2565
|
+
/* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
2566
|
+
/* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
|
|
2567
|
+
/* harmony import */ var shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! shared/constants/LiteViewModels */ "./src/shared/constants/LiteViewModels.ts");
|
|
2568
|
+
/* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
|
|
2569
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2570
|
+
|
|
2571
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
2572
|
+
|
|
2573
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
2574
|
+
|
|
2575
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
2576
|
+
|
|
2577
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
2578
|
+
|
|
2579
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
2580
|
+
|
|
2581
|
+
|
|
2582
|
+
|
|
2583
|
+
|
|
2584
|
+
|
|
2585
|
+
|
|
2586
|
+
|
|
2587
|
+
|
|
2588
|
+
|
|
2589
|
+
|
|
2590
|
+
|
|
2591
|
+
|
|
2592
|
+
|
|
2593
|
+
var namespace = 'userManager.bulkUploadFileSelect';
|
|
2594
|
+
function BulkUploadFileSelect(props) {
|
|
2595
|
+
var ref = react__WEBPACK_IMPORTED_MODULE_0___default.a.useRef(null);
|
|
2596
|
+
var useRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.useCallback(function (node) {
|
|
2597
|
+
if (!node) return;
|
|
2598
|
+
ref.current = node;
|
|
2599
|
+
}, []);
|
|
2600
|
+
var viewModelKey = props.userType === apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__["MockUserType"].Student ? shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_10__["ViewModelKeys"].BULK_STUDENT_UPLOAD : shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_10__["ViewModelKeys"].BULK_TEACHER_UPLOAD;
|
|
2601
|
+
|
|
2602
|
+
var _useViewModel = Object(_libs_common_src_react_hooks_useViewModel__WEBPACK_IMPORTED_MODULE_2__["useViewModel"])(viewModelKey),
|
|
2603
|
+
_useViewModel2 = _slicedToArray(_useViewModel, 2),
|
|
2604
|
+
setUsers = _useViewModel2[1];
|
|
2605
|
+
|
|
2606
|
+
var alerts = Object(_libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_6__["useAlerts"])();
|
|
2607
|
+
|
|
2608
|
+
var buildStudent = function buildStudent(r, index) {
|
|
2609
|
+
var yearLevel = props.yearLevels.find(function (y) {
|
|
2610
|
+
return y.name === r[2];
|
|
2611
|
+
});
|
|
2612
|
+
return {
|
|
2613
|
+
lookupId: index.toString(),
|
|
2614
|
+
name: r[0],
|
|
2615
|
+
surname: r[1],
|
|
2616
|
+
yearLevel: yearLevel,
|
|
2617
|
+
email: r[3]
|
|
2618
|
+
};
|
|
2619
|
+
};
|
|
2620
|
+
|
|
2621
|
+
var buildTeacher = function buildTeacher(r, index) {
|
|
2622
|
+
var userRole = props.userRoles.find(function (y) {
|
|
2623
|
+
return y.name === r[2];
|
|
2624
|
+
}); // TODO: Change to actually work
|
|
2625
|
+
|
|
2626
|
+
return {
|
|
2627
|
+
lookupId: index.toString(),
|
|
2628
|
+
name: r[0],
|
|
2629
|
+
surname: r[1],
|
|
2630
|
+
userRole: userRole,
|
|
2631
|
+
email: r[3]
|
|
2632
|
+
};
|
|
2633
|
+
};
|
|
2634
|
+
|
|
2635
|
+
var onClick = function onClick(e) {
|
|
2636
|
+
ref.current.value = null;
|
|
2637
|
+
ref.current.click(null);
|
|
2638
|
+
};
|
|
2639
|
+
|
|
2640
|
+
var _onChange = function onChange(file) {
|
|
2641
|
+
Object(papaparse__WEBPACK_IMPORTED_MODULE_1__["parse"])(file, {
|
|
2642
|
+
complete: function complete(result) {
|
|
2643
|
+
var data = result.data;
|
|
2644
|
+
|
|
2645
|
+
if (!data.length || data.length === 1) {
|
|
2646
|
+
alerts.warning(_libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_8__["LanguageService"].getPhrase(namespace, 'emptyCsvWarning'));
|
|
2647
|
+
return;
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2650
|
+
data.shift();
|
|
2651
|
+
setUsers(data.map(props.userType === apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__["MockUserType"].Student ? buildStudent : buildTeacher));
|
|
2652
|
+
_libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_7__["Core"].AppLinkHelper.trigger({
|
|
2653
|
+
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].USER_MANAGER,
|
|
2654
|
+
action: props.action
|
|
2655
|
+
});
|
|
2656
|
+
}
|
|
2657
|
+
});
|
|
2658
|
+
};
|
|
2659
|
+
|
|
2660
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_icon_button_IconButton__WEBPACK_IMPORTED_MODULE_4__["IconButton"], {
|
|
2661
|
+
svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].Upload,
|
|
2662
|
+
className: 'btn btn-outline-dark',
|
|
2663
|
+
onClick: onClick
|
|
2664
|
+
}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
|
|
2665
|
+
namespace: namespace,
|
|
2666
|
+
phrase: 'button'
|
|
2667
|
+
})), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", {
|
|
2668
|
+
type: 'file',
|
|
2669
|
+
autoComplete: 'off',
|
|
2670
|
+
className: 'file-select d-none',
|
|
2671
|
+
accept: 'text/csv',
|
|
2672
|
+
ref: useRef,
|
|
2673
|
+
onChange: function onChange(e) {
|
|
2674
|
+
return _onChange(e.target.files[0]);
|
|
2675
|
+
}
|
|
2676
|
+
}));
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2679
|
+
/***/ }),
|
|
2680
|
+
|
|
2681
|
+
/***/ "./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx":
|
|
2682
|
+
/*!**************************************************************************************!*\
|
|
2683
|
+
!*** ./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx ***!
|
|
2684
|
+
\**************************************************************************************/
|
|
2685
|
+
/*! exports provided: EditStudentDetails */
|
|
2686
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2687
|
+
|
|
2688
|
+
"use strict";
|
|
2689
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2690
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditStudentDetails", function() { return EditStudentDetails; });
|
|
2691
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2692
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2693
|
+
/* harmony import */ var _libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-wrapper/FormWrapper */ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx");
|
|
2694
|
+
/* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
|
|
2695
|
+
/* harmony import */ var apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/user-manager/validation/user-validation/UserValidationSchema */ "./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts");
|
|
2696
|
+
/* harmony import */ var apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/user-manager/components/user-details-form/UserDetailsForm */ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx");
|
|
2697
|
+
|
|
2698
|
+
|
|
2699
|
+
|
|
2700
|
+
|
|
2701
|
+
|
|
2702
|
+
function EditStudentDetails(props) {
|
|
2703
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2704
|
+
|
|
2705
|
+
var user = props.user,
|
|
2706
|
+
saveUser = props.saveUser,
|
|
2707
|
+
onClickCancel = props.onClickCancel,
|
|
2708
|
+
yearLevels = props.yearLevels,
|
|
2709
|
+
_props$hasNext = props.hasNext,
|
|
2710
|
+
hasNext = _props$hasNext === void 0 ? false : _props$hasNext,
|
|
2711
|
+
_props$initialErrors = props.initialErrors,
|
|
2712
|
+
initialErrors = _props$initialErrors === void 0 ? {} : _props$initialErrors;
|
|
2713
|
+
var initialValues = {
|
|
2714
|
+
id: (_a = user) === null || _a === void 0 ? void 0 : _a.id,
|
|
2715
|
+
name: (_b = user) === null || _b === void 0 ? void 0 : _b.name,
|
|
2716
|
+
email: (_c = user) === null || _c === void 0 ? void 0 : _c.email,
|
|
2717
|
+
surname: (_d = user) === null || _d === void 0 ? void 0 : _d.surname,
|
|
2718
|
+
yearLevel: {
|
|
2719
|
+
id: (_f = (_e = user) === null || _e === void 0 ? void 0 : _e.yearLevel) === null || _f === void 0 ? void 0 : _f.id,
|
|
2720
|
+
name: (_h = (_g = user) === null || _g === void 0 ? void 0 : _g.yearLevel) === null || _h === void 0 ? void 0 : _h.name
|
|
2721
|
+
}
|
|
2722
|
+
};
|
|
2723
|
+
var initialTouched = {};
|
|
2724
|
+
Object.keys(initialErrors).forEach(function (err) {
|
|
2725
|
+
initialTouched[err] = true;
|
|
2726
|
+
});
|
|
2727
|
+
var StudentValidationSchema = Object(apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_3__["getStudentValidationSchema"])(yearLevels);
|
|
2728
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__["FormWrapper"], {
|
|
2729
|
+
initialValues: initialValues,
|
|
2730
|
+
initialErrors: initialErrors,
|
|
2731
|
+
initialTouched: initialTouched,
|
|
2732
|
+
validationSchema: StudentValidationSchema,
|
|
2733
|
+
onSubmit: saveUser
|
|
2734
|
+
}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_4__["UserDetailsForm"], {
|
|
2735
|
+
onClickCancel: onClickCancel,
|
|
2736
|
+
yearLevels: yearLevels,
|
|
2737
|
+
userType: apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_2__["MockUserType"].Student,
|
|
2738
|
+
hasNext: hasNext
|
|
2739
|
+
}));
|
|
2740
|
+
}
|
|
2741
|
+
|
|
2742
|
+
/***/ }),
|
|
2743
|
+
|
|
2744
|
+
/***/ "./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx":
|
|
2745
|
+
/*!**************************************************************************************!*\
|
|
2746
|
+
!*** ./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx ***!
|
|
2747
|
+
\**************************************************************************************/
|
|
2748
|
+
/*! exports provided: EditTeacherDetails */
|
|
2749
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2750
|
+
|
|
2751
|
+
"use strict";
|
|
2752
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2753
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditTeacherDetails", function() { return EditTeacherDetails; });
|
|
2754
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2755
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2756
|
+
/* harmony import */ var _libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-wrapper/FormWrapper */ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx");
|
|
2757
|
+
/* harmony import */ var apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/user-manager/validation/user-validation/UserValidationSchema */ "./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts");
|
|
2758
|
+
/* harmony import */ var apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/user-manager/components/user-details-form/UserDetailsForm */ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx");
|
|
2759
|
+
/* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
|
|
2760
|
+
|
|
2761
|
+
|
|
2762
|
+
|
|
2763
|
+
|
|
2764
|
+
|
|
2765
|
+
function EditTeacherDetails(props) {
|
|
2766
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2767
|
+
|
|
2768
|
+
var user = props.user,
|
|
2769
|
+
saveUser = props.saveUser,
|
|
2770
|
+
onClickCancel = props.onClickCancel,
|
|
2771
|
+
userRoles = props.userRoles,
|
|
2772
|
+
_props$hasNext = props.hasNext,
|
|
2773
|
+
hasNext = _props$hasNext === void 0 ? false : _props$hasNext,
|
|
2774
|
+
_props$initialErrors = props.initialErrors,
|
|
2775
|
+
initialErrors = _props$initialErrors === void 0 ? {} : _props$initialErrors;
|
|
2776
|
+
var initialValues = {
|
|
2777
|
+
id: (_a = user) === null || _a === void 0 ? void 0 : _a.id,
|
|
2778
|
+
name: (_b = user) === null || _b === void 0 ? void 0 : _b.name,
|
|
2779
|
+
email: (_c = user) === null || _c === void 0 ? void 0 : _c.email,
|
|
2780
|
+
surname: (_d = user) === null || _d === void 0 ? void 0 : _d.surname,
|
|
2781
|
+
userRole: {
|
|
2782
|
+
id: (_f = (_e = user) === null || _e === void 0 ? void 0 : _e.userRole) === null || _f === void 0 ? void 0 : _f.id,
|
|
2783
|
+
name: (_h = (_g = user) === null || _g === void 0 ? void 0 : _g.userRole) === null || _h === void 0 ? void 0 : _h.name
|
|
2784
|
+
}
|
|
2785
|
+
};
|
|
2786
|
+
var initialTouched = {};
|
|
2787
|
+
Object.keys(initialErrors).forEach(function (err) {
|
|
2788
|
+
initialTouched[err] = true;
|
|
2789
|
+
});
|
|
2790
|
+
var TeacherValidationSchema = Object(apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_2__["getTeacherValidationSchema"])(userRoles);
|
|
2791
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__["FormWrapper"], {
|
|
2792
|
+
initialValues: initialValues,
|
|
2793
|
+
initialErrors: initialErrors,
|
|
2794
|
+
initialTouched: initialTouched,
|
|
2795
|
+
validationSchema: TeacherValidationSchema,
|
|
2796
|
+
onSubmit: saveUser
|
|
2797
|
+
}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_3__["UserDetailsForm"], {
|
|
2798
|
+
onClickCancel: onClickCancel,
|
|
2799
|
+
userRoles: userRoles,
|
|
2800
|
+
userType: apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_4__["MockUserType"].Teacher,
|
|
2801
|
+
hasNext: hasNext
|
|
2802
|
+
}));
|
|
2803
|
+
}
|
|
2804
|
+
|
|
2805
|
+
/***/ }),
|
|
2806
|
+
|
|
2807
|
+
/***/ "./src/apps/user-manager/components/index.ts":
|
|
2808
|
+
/*!***************************************************!*\
|
|
2809
|
+
!*** ./src/apps/user-manager/components/index.ts ***!
|
|
2810
|
+
\***************************************************/
|
|
2811
|
+
/*! exports provided: UserDetailsForm, YearLevelSelect, EditStudentDetails, EditTeacherDetails, BulkUploadFileSelect */
|
|
2812
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2813
|
+
|
|
2814
|
+
"use strict";
|
|
2815
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2816
|
+
/* harmony import */ var _user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-details-form/UserDetailsForm */ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx");
|
|
2817
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserDetailsForm", function() { return _user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_0__["UserDetailsForm"]; });
|
|
2818
|
+
|
|
2819
|
+
/* harmony import */ var _year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./year-level-select/YearLevelSelect */ "./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx");
|
|
2820
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelSelect", function() { return _year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_1__["YearLevelSelect"]; });
|
|
2821
|
+
|
|
2822
|
+
/* harmony import */ var _edit_student_details_EditStudentDetails__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./edit-student-details/EditStudentDetails */ "./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx");
|
|
2823
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditStudentDetails", function() { return _edit_student_details_EditStudentDetails__WEBPACK_IMPORTED_MODULE_2__["EditStudentDetails"]; });
|
|
2824
|
+
|
|
2825
|
+
/* harmony import */ var _edit_teacher_details_EditTeacherDetails__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./edit-teacher-details/EditTeacherDetails */ "./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx");
|
|
2826
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditTeacherDetails", function() { return _edit_teacher_details_EditTeacherDetails__WEBPACK_IMPORTED_MODULE_3__["EditTeacherDetails"]; });
|
|
2827
|
+
|
|
2828
|
+
/* harmony import */ var _bulk_upload_file_select_BulkUploadFileSelect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./bulk-upload-file-select/BulkUploadFileSelect */ "./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx");
|
|
2829
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BulkUploadFileSelect", function() { return _bulk_upload_file_select_BulkUploadFileSelect__WEBPACK_IMPORTED_MODULE_4__["BulkUploadFileSelect"]; });
|
|
2830
|
+
|
|
2831
|
+
|
|
2832
|
+
|
|
2833
|
+
|
|
2834
|
+
|
|
2835
|
+
|
|
2836
|
+
|
|
2837
|
+
/***/ }),
|
|
2838
|
+
|
|
2839
|
+
/***/ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx":
|
|
2840
|
+
/*!********************************************************************************!*\
|
|
2841
|
+
!*** ./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx ***!
|
|
2842
|
+
\********************************************************************************/
|
|
2843
|
+
/*! exports provided: UserDetailsForm */
|
|
2844
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2845
|
+
|
|
2846
|
+
"use strict";
|
|
2847
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2848
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserDetailsForm", function() { return UserDetailsForm; });
|
|
2849
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2850
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2851
|
+
/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
|
|
2852
|
+
/* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
2853
|
+
/* harmony import */ var _libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-field/FormField */ "../../libs/shared/src/components/forms/form-field/FormField.tsx");
|
|
2854
|
+
/* harmony import */ var _libs_shared_src_components_forms_form_buttons_FormButtons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-buttons/FormButtons */ "../../libs/shared/src/components/forms/form-buttons/FormButtons.tsx");
|
|
2855
|
+
/* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
|
|
2856
|
+
/* harmony import */ var _libs_shared_src_utils_FormHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/FormHelper */ "../../libs/shared/src/utils/FormHelper.ts");
|
|
2857
|
+
/* harmony import */ var _libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-wrapper/FormWrapper */ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx");
|
|
2858
|
+
/* harmony import */ var apps_user_manager_components_year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! apps/user-manager/components/year-level-select/YearLevelSelect */ "./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx");
|
|
2859
|
+
/* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
|
|
2860
|
+
|
|
2861
|
+
|
|
2862
|
+
|
|
2863
|
+
|
|
2864
|
+
|
|
2865
|
+
|
|
2866
|
+
|
|
2867
|
+
|
|
2868
|
+
|
|
2869
|
+
|
|
2870
|
+
/**
|
|
2871
|
+
* This file uses 3 *.lang.json files.
|
|
2872
|
+
* - One for generic values
|
|
2873
|
+
* - One for student specific values
|
|
2874
|
+
* - One for teacher specific values
|
|
2875
|
+
*/
|
|
2876
|
+
|
|
2877
|
+
var namespace = 'userManager.userDetailsForm';
|
|
2878
|
+
var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].encloseNamespace(namespace);
|
|
2879
|
+
function UserDetailsForm(props) {
|
|
2880
|
+
var onClickCancel = props.onClickCancel,
|
|
2881
|
+
yearLevels = props.yearLevels,
|
|
2882
|
+
userRoles = props.userRoles,
|
|
2883
|
+
userType = props.userType;
|
|
2884
|
+
var formikProps = Object(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_7__["useFormikContextWrapper"])();
|
|
2885
|
+
|
|
2886
|
+
var getTreeSelectClassName = function getTreeSelectClassName(field) {
|
|
2887
|
+
return _libs_shared_src_utils_FormHelper__WEBPACK_IMPORTED_MODULE_6__["FormHelper"].getCustomFormControlClassName(formikProps.errors, formikProps.touched, field, 'revert-form-control h-auto');
|
|
2888
|
+
};
|
|
2889
|
+
|
|
2890
|
+
var getTypePhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].encloseNamespace(userType === apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_9__["MockUserType"].Teacher ? 'userManager.teacherDetailsForm' : 'userManager.studentDetailsForm');
|
|
2891
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["Form"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
|
|
2892
|
+
label: getPhrase('firstName'),
|
|
2893
|
+
type: 'text',
|
|
2894
|
+
name: 'name',
|
|
2895
|
+
id: 'name',
|
|
2896
|
+
placeholder: getTypePhrase('firstNamePlaceholder'),
|
|
2897
|
+
autoFocus: true,
|
|
2898
|
+
value: formikProps.values.name
|
|
2899
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
|
|
2900
|
+
label: getPhrase('lastName'),
|
|
2901
|
+
type: 'text',
|
|
2902
|
+
name: 'surname',
|
|
2903
|
+
id: 'surname',
|
|
2904
|
+
placeholder: getTypePhrase('lastNamePlaceholder'),
|
|
2905
|
+
value: formikProps.values.surname
|
|
2906
|
+
}), yearLevels && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
|
|
2907
|
+
name: 'yearLevel',
|
|
2908
|
+
label: getPhrase('yearLevel')
|
|
2909
|
+
}, function () {
|
|
2910
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
2911
|
+
className: getTreeSelectClassName('yearLevel')
|
|
2912
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_user_manager_components_year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_8__["YearLevelSelect"], {
|
|
2913
|
+
yearLevels: yearLevels,
|
|
2914
|
+
selected: formikProps.values.yearLevel,
|
|
2915
|
+
onSelect: function onSelect(yearLevel) {
|
|
2916
|
+
return formikProps.setFieldValue('yearLevel', yearLevel);
|
|
2917
|
+
}
|
|
2918
|
+
}));
|
|
2919
|
+
}), userRoles && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
|
|
2920
|
+
label: getPhrase('userRole'),
|
|
2921
|
+
name: 'userRole',
|
|
2922
|
+
as: 'select',
|
|
2923
|
+
onChange: function onChange(e) {
|
|
2924
|
+
var roleObj = props.userRoles.find(function (r) {
|
|
2925
|
+
return r.id === e.target.value;
|
|
2926
|
+
});
|
|
2927
|
+
formikProps.setFieldValue('userRole', roleObj);
|
|
2928
|
+
},
|
|
2929
|
+
value: formikProps.values.userRole.id
|
|
2930
|
+
}, userRoles.map(function (r) {
|
|
2931
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("option", {
|
|
2932
|
+
key: r.id,
|
|
2933
|
+
value: r.id
|
|
2934
|
+
}, r.name);
|
|
2935
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
|
|
2936
|
+
label: getPhrase('emailAddress'),
|
|
2937
|
+
type: 'text',
|
|
2938
|
+
name: 'email',
|
|
2939
|
+
id: 'email',
|
|
2940
|
+
placeholder: getTypePhrase('emailAddressPlaceholder'),
|
|
2941
|
+
value: formikProps.values.email
|
|
2942
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
2943
|
+
className: 'btn-container d-flex justify-content-end'
|
|
2944
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("button", {
|
|
2945
|
+
type: 'button',
|
|
2946
|
+
className: "btn btn-link mr-2",
|
|
2947
|
+
onClick: onClickCancel
|
|
2948
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
|
|
2949
|
+
namespace: namespace,
|
|
2950
|
+
phrase: 'cancel'
|
|
2951
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_buttons_FormButtons__WEBPACK_IMPORTED_MODULE_4__["FormButtons"], {
|
|
2952
|
+
isNew: false,
|
|
2953
|
+
hasNext: props.hasNext
|
|
2954
|
+
})));
|
|
2955
|
+
}
|
|
2956
|
+
|
|
2957
|
+
/***/ }),
|
|
2958
|
+
|
|
2959
|
+
/***/ "./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx":
|
|
2960
|
+
/*!********************************************************************************!*\
|
|
2961
|
+
!*** ./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx ***!
|
|
2962
|
+
\********************************************************************************/
|
|
2963
|
+
/*! exports provided: YearLevelSelect */
|
|
2964
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2965
|
+
|
|
2966
|
+
"use strict";
|
|
2967
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2968
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "YearLevelSelect", function() { return YearLevelSelect; });
|
|
2969
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2970
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2971
|
+
|
|
2972
|
+
|
|
2973
|
+
function YearLevel(props) {
|
|
2974
|
+
var yearLevel = props.yearLevel,
|
|
2975
|
+
selected = props.selected,
|
|
2976
|
+
onSelect = props.onSelect;
|
|
2977
|
+
var className = selected ? 'badge-info' : 'badge-light';
|
|
2978
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
|
|
2979
|
+
className: "badge-pill d-inline-block mr-1 mb-1 cursor-pointer ".concat(className),
|
|
2980
|
+
role: 'radio',
|
|
2981
|
+
"aria-checked": selected,
|
|
2982
|
+
onClick: function onClick() {
|
|
2983
|
+
return onSelect(yearLevel);
|
|
2984
|
+
}
|
|
2985
|
+
}, yearLevel.name);
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2988
|
+
function YearLevelSelect(props) {
|
|
2989
|
+
var yearLevels = props.yearLevels,
|
|
2990
|
+
selected = props.selected,
|
|
2991
|
+
onSelect = props.onSelect;
|
|
2992
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
2993
|
+
role: 'radiogroup'
|
|
2994
|
+
}, yearLevels.map(function (y) {
|
|
2995
|
+
var _a, _b;
|
|
2996
|
+
|
|
2997
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](YearLevel, {
|
|
2998
|
+
key: y.id,
|
|
2999
|
+
yearLevel: y,
|
|
3000
|
+
selected: y.id.toString() === ((_b = (_a = selected) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString()),
|
|
3001
|
+
onSelect: onSelect
|
|
3002
|
+
});
|
|
3003
|
+
}));
|
|
3004
|
+
}
|
|
3005
|
+
|
|
3006
|
+
/***/ }),
|
|
3007
|
+
|
|
3008
|
+
/***/ "./src/apps/user-manager/enums/index.ts":
|
|
3009
|
+
/*!**********************************************!*\
|
|
3010
|
+
!*** ./src/apps/user-manager/enums/index.ts ***!
|
|
3011
|
+
\**********************************************/
|
|
3012
|
+
/*! exports provided: MockUserType */
|
|
3013
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
3014
|
+
|
|
3015
|
+
"use strict";
|
|
3016
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3017
|
+
/* harmony import */ var _mocks_MockUserType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mocks/MockUserType */ "./src/apps/user-manager/enums/mocks/MockUserType.ts");
|
|
3018
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MockUserType", function() { return _mocks_MockUserType__WEBPACK_IMPORTED_MODULE_0__["MockUserType"]; });
|
|
3019
|
+
|
|
3020
|
+
|
|
3021
|
+
|
|
3022
|
+
/***/ }),
|
|
3023
|
+
|
|
3024
|
+
/***/ "./src/apps/user-manager/enums/mocks/MockUserType.ts":
|
|
3025
|
+
/*!***********************************************************!*\
|
|
3026
|
+
!*** ./src/apps/user-manager/enums/mocks/MockUserType.ts ***!
|
|
3027
|
+
\***********************************************************/
|
|
3028
|
+
/*! exports provided: MockUserType */
|
|
3029
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
3030
|
+
|
|
3031
|
+
"use strict";
|
|
3032
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3033
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MockUserType", function() { return MockUserType; });
|
|
3034
|
+
var MockUserType;
|
|
3035
|
+
|
|
3036
|
+
(function (MockUserType) {
|
|
3037
|
+
MockUserType["Student"] = "student";
|
|
3038
|
+
MockUserType["Teacher"] = "teacher";
|
|
3039
|
+
})(MockUserType || (MockUserType = {}));
|
|
3040
|
+
|
|
3041
|
+
/***/ }),
|
|
3042
|
+
|
|
3043
|
+
/***/ "./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts":
|
|
3044
|
+
/*!**********************************************************************************!*\
|
|
3045
|
+
!*** ./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts ***!
|
|
3046
|
+
\**********************************************************************************/
|
|
3047
|
+
/*! exports provided: getTeacherValidationSchema, getStudentValidationSchema */
|
|
3048
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
3049
|
+
|
|
3050
|
+
"use strict";
|
|
3051
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3052
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTeacherValidationSchema", function() { return getTeacherValidationSchema; });
|
|
3053
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStudentValidationSchema", function() { return getStudentValidationSchema; });
|
|
3054
|
+
/* harmony import */ var yup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yup */ "yup");
|
|
3055
|
+
/* harmony import */ var yup__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(yup__WEBPACK_IMPORTED_MODULE_0__);
|
|
3056
|
+
/* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
3057
|
+
|
|
3058
|
+
|
|
3059
|
+
var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].encloseNamespace('userManager.userValidation');
|
|
3060
|
+
var UserValidationSchema = Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
|
|
3061
|
+
name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
|
|
3062
|
+
return getPhrase('nameExceeds');
|
|
3063
|
+
}).required(function () {
|
|
3064
|
+
return getPhrase('nameRequired');
|
|
3065
|
+
})["default"](''),
|
|
3066
|
+
surname: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
|
|
3067
|
+
return getPhrase('surnameExceeds');
|
|
3068
|
+
}).required(function () {
|
|
3069
|
+
return getPhrase('surnameRequired');
|
|
3070
|
+
})["default"](''),
|
|
3071
|
+
email: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
|
|
3072
|
+
return getPhrase('emailExceeds');
|
|
3073
|
+
}).required(function () {
|
|
3074
|
+
return getPhrase('emailRequired');
|
|
3075
|
+
}).email(function () {
|
|
3076
|
+
return getPhrase('emailValid');
|
|
3077
|
+
})["default"]('')
|
|
3078
|
+
});
|
|
3079
|
+
var getTeacherValidationSchema = function getTeacherValidationSchema(userRoles) {
|
|
3080
|
+
return UserValidationSchema.shape({
|
|
3081
|
+
userRole: Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
|
|
3082
|
+
name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().required(function () {
|
|
3083
|
+
return getPhrase('userRoleRequired');
|
|
3084
|
+
}).oneOf(userRoles.map(function (r) {
|
|
3085
|
+
return r.name;
|
|
3086
|
+
}), function () {
|
|
3087
|
+
return getPhrase('userRoleInvalid');
|
|
3088
|
+
})["default"]('')
|
|
3089
|
+
})
|
|
3090
|
+
});
|
|
3091
|
+
};
|
|
3092
|
+
var getStudentValidationSchema = function getStudentValidationSchema(yearLevels) {
|
|
3093
|
+
return UserValidationSchema.shape({
|
|
3094
|
+
yearLevel: Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
|
|
3095
|
+
name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().required(function () {
|
|
3096
|
+
return getPhrase('yearLevelRequired');
|
|
3097
|
+
}).oneOf(yearLevels.map(function (y) {
|
|
3098
|
+
return y.name;
|
|
3099
|
+
}), function () {
|
|
3100
|
+
return getPhrase('yearLevelInvalid');
|
|
3101
|
+
})["default"]('')
|
|
3102
|
+
})
|
|
3103
|
+
});
|
|
3104
|
+
};
|
|
3105
|
+
|
|
3106
|
+
/***/ }),
|
|
3107
|
+
|
|
3108
|
+
/***/ "./src/shared/components/toggle-switch/ToggleSwitch.tsx":
|
|
3109
|
+
/*!**************************************************************!*\
|
|
3110
|
+
!*** ./src/shared/components/toggle-switch/ToggleSwitch.tsx ***!
|
|
3111
|
+
\**************************************************************/
|
|
3112
|
+
/*! exports provided: ToggleSwitch */
|
|
3113
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
3114
|
+
|
|
3115
|
+
"use strict";
|
|
3116
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3117
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToggleSwitch", function() { return ToggleSwitch; });
|
|
3118
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
3119
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
3120
|
+
/* harmony import */ var _libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/div-button/DivButton */ "../../libs/shared/src/components/div-button/DivButton.tsx");
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
function ToggleSwitch(props) {
|
|
3124
|
+
function onClick() {
|
|
3125
|
+
if (props.disabled) return;
|
|
3126
|
+
props.onClick.apply(props, arguments);
|
|
3127
|
+
}
|
|
3128
|
+
|
|
3129
|
+
var bootstrapClasses = 'd-inline-block float-right align-top custom-toggle toggle-option';
|
|
3130
|
+
var onClass = props.on && !props.disabled ? 'on' : '';
|
|
3131
|
+
var disabledClass = props.disabled ? 'disabled' : '';
|
|
3132
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_1__["DivButton"], {
|
|
3133
|
+
onClick: onClick,
|
|
3134
|
+
className: "".concat(bootstrapClasses, " ").concat(onClass, " ").concat(disabledClass)
|
|
3135
|
+
}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
|
|
3136
|
+
className: 'handle'
|
|
3137
|
+
}));
|
|
3138
|
+
}
|
|
3139
|
+
|
|
3140
|
+
/***/ }),
|
|
3141
|
+
|
|
3142
|
+
/***/ "./src/shared/hooks/useBulkCheckboxManager.tsx":
|
|
3143
|
+
/*!*****************************************************!*\
|
|
3144
|
+
!*** ./src/shared/hooks/useBulkCheckboxManager.tsx ***!
|
|
3145
|
+
\*****************************************************/
|
|
3146
|
+
/*! exports provided: useBulkCheckboxManager */
|
|
3147
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
3148
|
+
|
|
3149
|
+
"use strict";
|
|
3150
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3151
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useBulkCheckboxManager", function() { return useBulkCheckboxManager; });
|
|
3152
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
3153
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
3154
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3155
|
+
|
|
3156
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
3157
|
+
|
|
3158
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3159
|
+
|
|
3160
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
3161
|
+
|
|
3162
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
3163
|
+
|
|
3164
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
3165
|
+
|
|
3166
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
3167
|
+
|
|
3168
|
+
|
|
3169
|
+
/**
|
|
3170
|
+
* @param collection - The collection you are keeping track of with checkboxes
|
|
3171
|
+
* @param options - See interface above
|
|
3172
|
+
*/
|
|
3173
|
+
|
|
3174
|
+
var useBulkCheckboxManager = function useBulkCheckboxManager(collection) {
|
|
3175
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3176
|
+
|
|
3177
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState(false),
|
|
3178
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
3179
|
+
bulkChecked = _React$useState2[0],
|
|
3180
|
+
setBulkChecked = _React$useState2[1];
|
|
3181
|
+
|
|
3182
|
+
var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState({}),
|
|
3183
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
3184
|
+
items = _React$useState4[0],
|
|
3185
|
+
setItems = _React$useState4[1];
|
|
3186
|
+
|
|
3187
|
+
var _options$idField = options.idField,
|
|
3188
|
+
idField = _options$idField === void 0 ? 'id' : _options$idField;
|
|
3189
|
+
react__WEBPACK_IMPORTED_MODULE_0___default.a.useEffect(function () {
|
|
3190
|
+
var _a;
|
|
3191
|
+
|
|
3192
|
+
if (!((_a = collection) === null || _a === void 0 ? void 0 : _a.length)) return;
|
|
3193
|
+
var newItemState = collection.reduce(function (stateObj, item) {
|
|
3194
|
+
var _a, _b;
|
|
3195
|
+
|
|
3196
|
+
var checkboxState = false;
|
|
3197
|
+
if ((_b = (_a = options) === null || _a === void 0 ? void 0 : _a.preselectedIds) === null || _b === void 0 ? void 0 : _b.includes(item[idField])) checkboxState = true;
|
|
3198
|
+
var id = item[idField];
|
|
3199
|
+
stateObj[id] = checkboxState;
|
|
3200
|
+
return stateObj;
|
|
3201
|
+
}, {});
|
|
3202
|
+
setItems(newItemState);
|
|
3203
|
+
}, [collection]); // When toggled on, all checkbox items will be enabled. Vice versa if toggled off
|
|
3204
|
+
|
|
3205
|
+
function onToggleBulk() {
|
|
3206
|
+
var nextState = !bulkChecked;
|
|
3207
|
+
setBulkChecked(nextState);
|
|
3208
|
+
var newItemsState = collection.reduce(function (stateObj, item) {
|
|
3209
|
+
stateObj[item[idField]] = nextState;
|
|
3210
|
+
return stateObj;
|
|
3211
|
+
}, {});
|
|
3212
|
+
setItems(newItemsState);
|
|
3213
|
+
} // Toggles a single item
|
|
3214
|
+
|
|
3215
|
+
|
|
3216
|
+
function onToggleItem(id) {
|
|
3217
|
+
var nextItemState = !items[id];
|
|
3218
|
+
var nextState = Object.assign(Object.assign({}, items), _defineProperty({}, id, nextItemState));
|
|
3219
|
+
setItems(nextState);
|
|
3220
|
+
/**
|
|
3221
|
+
* Keep the bulk checkbox in sync with all of the other checkboxes
|
|
3222
|
+
*/
|
|
3223
|
+
|
|
3224
|
+
var totalItemsSelected = Object.keys(nextState).filter(function (i) {
|
|
3225
|
+
return nextState[i];
|
|
3226
|
+
}).length;
|
|
3227
|
+
|
|
3228
|
+
if (totalItemsSelected === collection.length) {
|
|
3229
|
+
setBulkChecked(true);
|
|
3230
|
+
return;
|
|
3231
|
+
}
|
|
3232
|
+
|
|
3233
|
+
if (!nextItemState && bulkChecked) setBulkChecked(false);
|
|
3234
|
+
} // Returns the state of the item passed in
|
|
3235
|
+
|
|
3236
|
+
|
|
3237
|
+
function isChecked(item) {
|
|
3238
|
+
if (bulkChecked) return true;
|
|
3239
|
+
if (typeof item !== 'string') item = item[idField];
|
|
3240
|
+
return items[item];
|
|
3241
|
+
}
|
|
3242
|
+
|
|
3243
|
+
function getSelected() {
|
|
3244
|
+
if (bulkChecked) return Object.keys(items);
|
|
3245
|
+
return Object.keys(items).filter(function (item) {
|
|
3246
|
+
return items[item];
|
|
3247
|
+
});
|
|
3248
|
+
}
|
|
3249
|
+
|
|
3250
|
+
return {
|
|
3251
|
+
onToggleBulk: onToggleBulk,
|
|
3252
|
+
onToggleItem: onToggleItem,
|
|
3253
|
+
getSelected: getSelected,
|
|
3254
|
+
isChecked: isChecked,
|
|
3255
|
+
bulkChecked: bulkChecked
|
|
3256
|
+
};
|
|
3257
|
+
};
|
|
3258
|
+
|
|
3259
|
+
/***/ })
|
|
3260
|
+
|
|
3261
|
+
}]);
|
|
3262
|
+
//# sourceMappingURL=5.chunk.js.map
|