studiokit-scaffolding-js 7.0.14-alpha.1 → 7.1.1
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/lib/components/ActionList.d.ts +2 -2
- package/lib/components/ActionList.js +166 -87
- package/lib/components/AlertDialog.d.ts +3 -3
- package/lib/components/AlertDialog.js +133 -18
- package/lib/components/AlertWithIcon.js +93 -52
- package/lib/components/ConnectedModal.d.ts +1 -2
- package/lib/components/ConnectedModal.js +41 -35
- package/lib/components/Dropdowns/GroupsDropdown.d.ts +4 -4
- package/lib/components/Dropdowns/GroupsDropdown.js +69 -82
- package/lib/components/Dropdowns/ManagedNavDropdown.d.ts +2 -2
- package/lib/components/Dropdowns/ManagedNavDropdown.js +96 -108
- package/lib/components/Dropdowns/UserDropdown.js +109 -70
- package/lib/components/Dropdowns/index.js +27 -11
- package/lib/components/EntityOwnerList.d.ts +3 -3
- package/lib/components/EntityOwnerList.js +52 -60
- package/lib/components/Error.js +107 -27
- package/lib/components/ErrorBoundary.js +133 -94
- package/lib/components/ErrorMessage.d.ts +2 -2
- package/lib/components/ErrorMessage.js +44 -14
- package/lib/components/Forms/DateField.d.ts +2 -2
- package/lib/components/Forms/DateField.js +63 -95
- package/lib/components/Forms/TimeField.d.ts +2 -2
- package/lib/components/Forms/TimeField.js +84 -108
- package/lib/components/Forms/index.js +27 -13
- package/lib/components/Groups/CreateEditCopySaveButtons.d.ts +2 -2
- package/lib/components/Groups/CreateEditCopySaveButtons.js +102 -14
- package/lib/components/Groups/ExternalGroups/Attach.d.ts +6 -7
- package/lib/components/Groups/ExternalGroups/Attach.js +213 -188
- package/lib/components/Groups/ExternalGroups/Table.js +183 -76
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
- package/lib/components/Groups/RosterSyncInfo.js +140 -49
- package/lib/components/HOC/AccessibleAppComponent.d.ts +2 -2
- package/lib/components/HOC/AccessibleAppComponent.js +96 -119
- package/lib/components/HOC/ActivityRequiredComponent.d.ts +14 -14
- package/lib/components/HOC/ActivityRequiredComponent.js +72 -86
- package/lib/components/HOC/AsyncComponent.d.ts +9 -9
- package/lib/components/HOC/AsyncComponent.js +53 -129
- package/lib/components/HOC/AuthenticatedComponent.d.ts +4 -4
- package/lib/components/HOC/AuthenticatedComponent.js +59 -96
- package/lib/components/HOC/CollectionComponent.d.ts +12 -12
- package/lib/components/HOC/CollectionComponent.js +161 -161
- package/lib/components/HOC/CollectionFirstItemComponent.d.ts +13 -13
- package/lib/components/HOC/CollectionFirstItemComponent.js +49 -91
- package/lib/components/HOC/CollectionItemComponent.d.ts +9 -9
- package/lib/components/HOC/CollectionItemComponent.js +159 -158
- package/lib/components/HOC/ConnectedModalComponent.d.ts +9 -9
- package/lib/components/HOC/ConnectedModalComponent.js +96 -126
- package/lib/components/HOC/DataDependentComponent.d.ts +3 -55
- package/lib/components/HOC/DataDependentComponent.js +30 -79
- package/lib/components/HOC/EntityComponent.d.ts +13 -13
- package/lib/components/HOC/EntityComponent.js +63 -101
- package/lib/components/HOC/FullscreenModalComponent.d.ts +9 -9
- package/lib/components/HOC/FullscreenModalComponent.js +145 -165
- package/lib/components/HOC/GroupActivityRequiredComponent.d.ts +2 -2
- package/lib/components/HOC/GroupActivityRequiredComponent.js +32 -31
- package/lib/components/HOC/GuidComponent.d.ts +1 -1
- package/lib/components/HOC/GuidComponent.js +25 -64
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.d.ts +28 -29
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +36 -59
- package/lib/components/HOC/ModelErrorRedirectComponent.d.ts +10 -10
- package/lib/components/HOC/ModelErrorRedirectComponent.js +40 -83
- package/lib/components/HOC/SearchPersistorComponent.d.ts +4 -4
- package/lib/components/HOC/SearchPersistorComponent.js +243 -216
- package/lib/components/HOC/UnauthenticatedComponent.d.ts +12 -12
- package/lib/components/HOC/UnauthenticatedComponent.js +37 -82
- package/lib/components/HOC/UserComponent.d.ts +1 -1
- package/lib/components/HOC/UserComponent.js +12 -11
- package/lib/components/Icons/IconAlphaList.js +34 -20
- package/lib/components/Icons/IconExternalUser.js +34 -20
- package/lib/components/Icons/IconImpersonation.js +34 -20
- package/lib/components/Icons/IconStopImpersonating.js +34 -20
- package/lib/components/Icons/IconTable.js +35 -21
- package/lib/components/Icons/IconTableDeleteCol.js +34 -20
- package/lib/components/Icons/IconTableDeleteRow.js +34 -20
- package/lib/components/Icons/IconTableInsertCol.js +34 -20
- package/lib/components/Icons/IconTableInsertRow.js +34 -20
- package/lib/components/Impersonation/Button.d.ts +2 -2
- package/lib/components/Impersonation/Button.js +76 -56
- package/lib/components/Impersonation/Link.d.ts +2 -2
- package/lib/components/Impersonation/Link.js +76 -53
- package/lib/components/Impersonation/UserDetail.d.ts +2 -2
- package/lib/components/Impersonation/UserDetail.js +64 -15
- package/lib/components/Loading.js +27 -21
- package/lib/components/LockDownBrowser/Check.js +194 -107
- package/lib/components/LockDownBrowser/ExitButton.js +27 -14
- package/lib/components/LockDownBrowser/Launch.js +70 -85
- package/lib/components/Lti/Confirm.js +152 -33
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.d.ts +4 -2
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -78
- package/lib/components/Lti/Launch.js +105 -49
- package/lib/components/Lti/LaunchGroup.js +85 -39
- package/lib/components/ManageTable.d.ts +1 -2
- package/lib/components/ManageTable.js +309 -104
- package/lib/components/ManageTableNoDataComponent.js +42 -22
- package/lib/components/NewVersionAlert.d.ts +2 -2
- package/lib/components/NewVersionAlert.js +82 -91
- package/lib/components/NotFound.js +87 -28
- package/lib/components/Notifications.d.ts +4 -4
- package/lib/components/Notifications.js +187 -169
- package/lib/components/PaginationNextButton.js +33 -21
- package/lib/components/PaginationPreviousButton.js +33 -21
- package/lib/components/Quill/CustomToolbar.d.ts +2 -2
- package/lib/components/Quill/CustomToolbar.js +432 -257
- package/lib/components/Quill/Formats/Image.d.ts +10 -25
- package/lib/components/Quill/Formats/Image.js +76 -82
- package/lib/components/Quill/Formats/List.d.ts +6 -3
- package/lib/components/Quill/Formats/List.js +50 -72
- package/lib/components/Quill/Formats/Video.d.ts +2 -1
- package/lib/components/Quill/Formats/Video.js +29 -43
- package/lib/components/Quill/ImageDropModule.d.ts +1 -1
- package/lib/components/Quill/ImageDropModule.js +142 -115
- package/lib/components/Quill/ImageWarning.d.ts +2 -2
- package/lib/components/Quill/ImageWarning.js +45 -32
- package/lib/components/Quill/ImageWithAltTextModal.d.ts +0 -1
- package/lib/components/Quill/ImageWithAltTextModal.js +425 -141
- package/lib/components/Quill/Specs/CustomImageSpec.d.ts +1 -1
- package/lib/components/Quill/Specs/CustomImageSpec.js +37 -45
- package/lib/components/Quill/Specs/CustomVideoSpec.d.ts +1 -1
- package/lib/components/Quill/Specs/CustomVideoSpec.js +27 -36
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.d.ts +2 -1
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +100 -116
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +53 -66
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +54 -67
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.d.ts +1 -1
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +225 -241
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +82 -99
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +76 -87
- package/lib/components/Quill/TableModule/constants.js +45 -41
- package/lib/components/Quill/TableModule/index.css +25 -25
- package/lib/components/Quill/TableModule/index.d.ts +14 -5
- package/lib/components/Quill/TableModule/index.js +373 -313
- package/lib/components/Quill/TableModule/utils.js +45 -45
- package/lib/components/Quill/accessibilityFix.d.ts +0 -1
- package/lib/components/Quill/accessibilityFix.js +222 -238
- package/lib/components/Quill/index.js +36 -32
- package/lib/components/RefreshIndicator/Bordered.js +48 -32
- package/lib/components/RefreshIndicator/Inline.js +48 -33
- package/lib/components/RefreshIndicator/index.d.ts +2 -2
- package/lib/components/RefreshIndicator/index.js +263 -113
- package/lib/components/SearchControls.js +216 -31
- package/lib/components/SentryRoute.js +10 -23
- package/lib/components/Tables/RoleFilter.d.ts +3 -4
- package/lib/components/Tables/RoleFilter.js +71 -46
- package/lib/components/Tables/TextFilter.d.ts +2 -3
- package/lib/components/Tables/TextFilter.js +62 -20
- package/lib/components/UserRoles/Add.d.ts +3 -3
- package/lib/components/UserRoles/Add.js +199 -161
- package/lib/components/UserRoles/Context.js +8 -6
- package/lib/components/UserRoles/RoleCell.js +181 -100
- package/lib/components/UserRoles/Select.js +168 -54
- package/lib/components/UserRoles/Table.js +221 -102
- package/lib/components/UserRoles/index.d.ts +6 -6
- package/lib/components/UserRoles/index.js +535 -464
- package/lib/config/eslint/index.d.ts +2 -0
- package/lib/config/eslint/index.js +36 -0
- package/lib/config/eslint/lib/order.d.ts +3 -0
- package/lib/config/eslint/lib/order.js +30 -0
- package/lib/config/eslint/lib/prettier.d.ts +3 -0
- package/lib/config/eslint/lib/prettier.js +23 -0
- package/lib/config/eslint/lib/typescript.d.ts +2 -0
- package/lib/config/eslint/lib/typescript.js +98 -0
- package/lib/config/eslint/react.d.ts +2 -0
- package/lib/config/eslint/react.js +30 -0
- package/lib/constants/baseActivity.js +30 -26
- package/lib/constants/baseRole.js +14 -10
- package/lib/constants/configuration.d.ts +1 -1
- package/lib/constants/configuration.js +43 -39
- package/lib/constants/externalProviderType.js +10 -6
- package/lib/constants/fetchErrorData.js +15 -11
- package/lib/constants/index.js +137 -23
- package/lib/constants/lockDownBrowser.js +28 -24
- package/lib/constants/mockData.d.ts +4 -6
- package/lib/constants/mockData.js +383 -324
- package/lib/constants/modelStatus.js +15 -11
- package/lib/constants/notificationType.js +12 -8
- package/lib/constants/operatingSystem.js +12 -8
- package/lib/constants/shard.js +11 -7
- package/lib/constants/table.js +21 -21
- package/lib/constants/tier.js +12 -8
- package/lib/constants/userRole.d.ts +1 -2
- package/lib/constants/userRole.js +15 -17
- package/lib/css/components/_buttons.css +11 -3
- package/lib/css/components/_quill.css +3 -3
- package/lib/css/components/_tables.css +6 -5
- package/lib/css/utils/_display.css +12 -19
- package/lib/css/utils/_general.css +1 -1
- package/lib/css/utils/_text.css +2 -1
- package/lib/css/variables.css +0 -4
- package/lib/endpointMappings.js +197 -193
- package/lib/hooks/useCollection.js +83 -65
- package/lib/hooks/useCollectionConfiguration.d.ts +0 -1
- package/lib/hooks/useCollectionConfiguration.js +179 -82
- package/lib/hooks/useCollectionItem.js +155 -58
- package/lib/hooks/useEventCalback.d.ts +14 -0
- package/lib/hooks/useEventCalback.js +51 -0
- package/lib/hooks/useGuid.js +19 -8
- package/lib/hooks/usePrevious.d.ts +24 -1
- package/lib/hooks/usePrevious.js +82 -12
- package/lib/index.js +156 -36
- package/lib/redux/actionCreator.d.ts +6 -6
- package/lib/redux/actionCreator.js +51 -40
- package/lib/redux/actions/AuthAction.js +44 -31
- package/lib/redux/actions/ModalAction.d.ts +1 -1
- package/lib/redux/actions/ModalAction.js +10 -6
- package/lib/redux/actions/ModelAction.d.ts +1 -1
- package/lib/redux/actions/ModelAction.js +77 -49
- package/lib/redux/actions/NotificationAction.js +10 -6
- package/lib/redux/actions/SearchAction.js +9 -5
- package/lib/redux/actions/index.js +60 -16
- package/lib/redux/configureReducers.d.ts +2 -5
- package/lib/redux/configureReducers.js +61 -72
- package/lib/redux/configureStore.d.ts +2 -2
- package/lib/redux/configureStore.js +83 -115
- package/lib/redux/helpers.js +7 -2
- package/lib/redux/reducers/authReducer.js +50 -44
- package/lib/redux/reducers/index.js +41 -15
- package/lib/redux/reducers/modalsReducer.js +49 -52
- package/lib/redux/reducers/modelsReducer.d.ts +2 -2
- package/lib/redux/reducers/modelsReducer.js +136 -135
- package/lib/redux/reducers/notificationsReducer.js +26 -21
- package/lib/redux/reducers/searchReducer.js +18 -12
- package/lib/redux/sagas/appInsightsSaga.js +24 -62
- package/lib/redux/sagas/authSaga.js +287 -414
- package/lib/redux/sagas/caliperSaga.js +154 -248
- package/lib/redux/sagas/clockOffsetSaga.js +35 -76
- package/lib/redux/sagas/configurationSaga.js +13 -46
- package/lib/redux/sagas/downtimeApiErrorSaga.d.ts +0 -1
- package/lib/redux/sagas/downtimeApiErrorSaga.js +23 -64
- package/lib/redux/sagas/errorSaga.d.ts +0 -1
- package/lib/redux/sagas/errorSaga.js +29 -63
- package/lib/redux/sagas/googleAnalyticsSaga.js +29 -69
- package/lib/redux/sagas/identityProviderSaga.js +24 -69
- package/lib/redux/sagas/initialDataLoadSaga.js +38 -29
- package/lib/redux/sagas/lockDownBrowserErrorSaga.d.ts +0 -1
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +32 -81
- package/lib/redux/sagas/modelFetchSaga.js +331 -411
- package/lib/redux/sagas/noStoreSaga.d.ts +1 -1
- package/lib/redux/sagas/noStoreSaga.js +68 -101
- package/lib/redux/sagas/postLoginDataSaga.js +42 -74
- package/lib/redux/sagas/postLoginRedirectSaga.js +27 -68
- package/lib/redux/sagas/rootSaga.js +85 -137
- package/lib/redux/sagas/sentrySaga.js +29 -85
- package/lib/redux/sagas/userIdSaga.js +18 -54
- package/lib/services/codeProviderService.js +25 -29
- package/lib/services/dateService.js +12 -10
- package/lib/services/documentService.js +15 -10
- package/lib/services/fetchService.js +110 -144
- package/lib/services/persistenceService.d.ts +4 -4
- package/lib/services/persistenceService.js +45 -43
- package/lib/services/ticketProviderService.js +29 -33
- package/lib/services/tokenPersistenceService.js +13 -9
- package/lib/services/windowService.js +21 -17
- package/lib/startup.d.ts +1 -1
- package/lib/startup.js +115 -118
- package/lib/types/AppConfiguration.js +5 -1
- package/lib/types/Artifact.js +11 -7
- package/lib/types/BaseReduxState.js +5 -1
- package/lib/types/Client.js +5 -1
- package/lib/types/Collection.d.ts +3 -3
- package/lib/types/Collection.js +5 -1
- package/lib/types/Configuration.js +5 -1
- package/lib/types/DeepLinkingResponseRequest.js +5 -1
- package/lib/types/DeletableModel.js +5 -1
- package/lib/types/Event.js +5 -1
- package/lib/types/ExternalGroup.js +5 -1
- package/lib/types/ExternalProvider.js +5 -1
- package/lib/types/ExternalTerm.js +5 -1
- package/lib/types/Group.js +5 -1
- package/lib/types/IdentityProvider.js +5 -1
- package/lib/types/LtiLaunch.js +5 -1
- package/lib/types/NameOnlyEntity.js +5 -1
- package/lib/types/Notification.d.ts +2 -2
- package/lib/types/Notification.js +5 -1
- package/lib/types/OptionalRecord.d.ts +1 -1
- package/lib/types/OptionalRecord.js +5 -1
- package/lib/types/OwnerSchedule.d.ts +3 -1
- package/lib/types/OwnerSchedule.js +5 -1
- package/lib/types/PropertyOfType.d.ts +3 -3
- package/lib/types/PropertyOfType.js +5 -1
- package/lib/types/Quill.js +5 -1
- package/lib/types/RoleDescription.d.ts +0 -1
- package/lib/types/RoleDescription.js +5 -1
- package/lib/types/Search.js +5 -1
- package/lib/types/SimpleLocation.js +5 -1
- package/lib/types/UniTime.js +5 -1
- package/lib/types/User.js +5 -1
- package/lib/types/UserRole.js +5 -1
- package/lib/types/auth/AuthState.js +5 -1
- package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
- package/lib/types/auth/ClientCredentials.js +5 -1
- package/lib/types/auth/CodeProviderService.js +5 -1
- package/lib/types/auth/LocalLoginRequestBody.js +5 -1
- package/lib/types/auth/TicketProviderService.js +5 -1
- package/lib/types/auth/TokenPersistenceService.js +5 -1
- package/lib/types/auth/index.js +82 -18
- package/lib/types/externals.d.js +2 -0
- package/lib/types/index.js +313 -39
- package/lib/types/net/EndpointConfig.js +5 -1
- package/lib/types/net/EndpointMapping.js +5 -1
- package/lib/types/net/EndpointMappings.js +5 -1
- package/lib/types/net/ErrorHandler.d.ts +1 -1
- package/lib/types/net/ErrorHandler.js +5 -1
- package/lib/types/net/FetchConfig.d.ts +1 -1
- package/lib/types/net/FetchConfig.js +5 -1
- package/lib/types/net/FetchErrorData.js +10 -6
- package/lib/types/net/FetchResult.d.ts +2 -2
- package/lib/types/net/FetchResult.js +5 -1
- package/lib/types/net/HTTPMethod.d.ts +1 -1
- package/lib/types/net/HTTPMethod.js +5 -1
- package/lib/types/net/HTTPStatusCode.js +16 -12
- package/lib/types/net/Metadata.js +5 -1
- package/lib/types/net/Model.js +5 -1
- package/lib/types/net/ModelCollection.js +5 -1
- package/lib/types/net/ModelsState.js +5 -1
- package/lib/types/net/OAuthToken.js +5 -1
- package/lib/types/net/OAuthTokenOrNull.d.ts +1 -1
- package/lib/types/net/OAuthTokenOrNull.js +5 -1
- package/lib/types/net/TokenAccessFunction.d.ts +1 -1
- package/lib/types/net/TokenAccessFunction.js +5 -1
- package/lib/types/net/index.js +181 -27
- package/lib/utils/baseActivity.d.ts +2 -2
- package/lib/utils/baseActivity.js +93 -91
- package/lib/utils/baseRole.js +37 -33
- package/lib/utils/collection.js +413 -291
- package/lib/utils/cookies.js +22 -37
- package/lib/utils/date.js +210 -210
- package/lib/utils/dom.js +145 -133
- package/lib/utils/domainIdentifier.js +9 -9
- package/lib/utils/entityUserRole.js +6 -2
- package/lib/utils/error.d.ts +1 -1
- package/lib/utils/error.js +18 -16
- package/lib/utils/events.js +37 -30
- package/lib/utils/externalGroup.js +25 -21
- package/lib/utils/externalProviders.js +8 -4
- package/lib/utils/externalTerms.js +9 -6
- package/lib/utils/fetch.d.ts +1 -1
- package/lib/utils/fetch.js +179 -176
- package/lib/utils/group.js +17 -9
- package/lib/utils/groupDates.d.ts +1 -1
- package/lib/utils/groupDates.js +43 -39
- package/lib/utils/groupRoles.js +28 -28
- package/lib/utils/lockDownBrowser.js +16 -12
- package/lib/utils/logger.js +30 -25
- package/lib/utils/lti.js +10 -5
- package/lib/utils/model.d.ts +2 -2
- package/lib/utils/model.js +35 -44
- package/lib/utils/number.js +13 -16
- package/lib/utils/promise.d.ts +6 -1
- package/lib/utils/promise.js +34 -15
- package/lib/utils/quill.js +60 -71
- package/lib/utils/route.d.ts +2 -2
- package/lib/utils/route.js +61 -60
- package/lib/utils/search.d.ts +1 -1
- package/lib/utils/search.js +78 -85
- package/lib/utils/shard.js +38 -41
- package/lib/utils/sort.d.ts +3 -3
- package/lib/utils/sort.js +62 -58
- package/lib/utils/string.js +14 -10
- package/lib/utils/table.d.ts +3 -3
- package/lib/utils/table.js +36 -33
- package/lib/utils/timezone.js +12 -26
- package/lib/utils/url.d.ts +2 -1
- package/lib/utils/url.js +139 -193
- package/lib/utils/user.js +59 -61
- package/lib/utils/userAgent.js +11 -11
- package/lib/utils/userRole.d.ts +3 -3
- package/lib/utils/userRole.js +46 -44
- package/package.json +90 -73
- package/lib/config/eslint/index.cjs +0 -21
- package/lib/config/eslint/lib/order.cjs +0 -22
- package/lib/config/eslint/lib/prettier.cjs +0 -18
- package/lib/config/eslint/lib/typescript.cjs +0 -86
- package/lib/config/eslint/react.cjs +0 -9
- package/lib/css/utils/_focus.css +0 -4
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = modelsReducer;
|
|
8
|
+
exports.getMetadata = getMetadata;
|
|
9
|
+
exports.isCollection = isCollection;
|
|
10
|
+
exports.isNullResponse = isNullResponse;
|
|
11
|
+
exports.merge = merge;
|
|
12
|
+
exports.updateMetadataForChildCollections = updateMetadataForChildCollections;
|
|
13
|
+
var _lodash = require("lodash");
|
|
14
|
+
var _fp2 = _interopRequireDefault(require("lodash/fp"));
|
|
15
|
+
var _actions = require("../actions");
|
|
10
16
|
/**
|
|
11
17
|
* Given the state and a path into that state object, return the prop that
|
|
12
18
|
* is named "_metadata"
|
|
@@ -15,41 +21,33 @@ var actions_1 = require("../actions");
|
|
|
15
21
|
* @param path An array of keys that represent the path to the entity in question
|
|
16
22
|
*/
|
|
17
23
|
function getMetadata(state, path) {
|
|
18
|
-
|
|
24
|
+
return (0, _lodash.merge)({}, (0, _lodash.get)(state, path.concat('_metadata')));
|
|
19
25
|
}
|
|
20
|
-
|
|
26
|
+
|
|
21
27
|
/**
|
|
22
28
|
* Get whether or not an object is a "collection" (id key-value dictionary).
|
|
23
29
|
* @param obj
|
|
24
30
|
* @returns A boolean
|
|
25
31
|
*/
|
|
26
32
|
function isCollection(obj) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
var child = obj[key];
|
|
32
|
-
return (lodash_1.default.isPlainObject(child) &&
|
|
33
|
-
(key === '_metadata' ||
|
|
34
|
-
(Object.prototype.hasOwnProperty.call(child, 'id') &&
|
|
35
|
-
(child.id === parseInt(key, 10) || child.id === key))));
|
|
36
|
-
}));
|
|
33
|
+
return !(0, _lodash.isArray)(obj) && (0, _lodash.isPlainObject)(obj) && Object.keys(obj).length > 0 && Object.keys(obj).every(key => {
|
|
34
|
+
const child = obj[key];
|
|
35
|
+
return (0, _lodash.isPlainObject)(child) && (key === '_metadata' || Object.prototype.hasOwnProperty.call(child, 'id') && (child.id === parseInt(key, 10) || child.id === key));
|
|
36
|
+
});
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
/**
|
|
40
40
|
* Get whether or not an object is a "null response".
|
|
41
41
|
* @param obj
|
|
42
42
|
* @returns A boolean
|
|
43
43
|
*/
|
|
44
44
|
function isNullResponse(obj) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return key === '_metadata' || (key === 'response' && child === null);
|
|
50
|
-
}));
|
|
45
|
+
return (0, _lodash.isPlainObject)(obj) && Object.keys(obj).length > 0 && Object.keys(obj).every(key => {
|
|
46
|
+
const child = obj[key];
|
|
47
|
+
return key === '_metadata' || key === 'response' && child === null;
|
|
48
|
+
});
|
|
51
49
|
}
|
|
52
|
-
|
|
50
|
+
|
|
53
51
|
/**
|
|
54
52
|
* Merge the `current` and `incoming` objects recursively, returning a new combined object.
|
|
55
53
|
*
|
|
@@ -65,60 +63,60 @@ exports.isNullResponse = isNullResponse;
|
|
|
65
63
|
* @param incoming
|
|
66
64
|
*/
|
|
67
65
|
function merge(current, incoming) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
// do not merge arrays
|
|
67
|
+
if ((0, _lodash.isArray)(current)) {
|
|
68
|
+
return !(0, _lodash.isUndefined)(incoming) ? incoming : current;
|
|
69
|
+
}
|
|
70
|
+
// if incoming is `null` or a null response (`{'response': null}`), do not merge, just use incoming
|
|
71
|
+
if (incoming === null || !(0, _lodash.isUndefined)(incoming) && isNullResponse(incoming)) {
|
|
72
|
+
return incoming;
|
|
73
|
+
}
|
|
74
|
+
const result = Object.keys(current).reduce((out, k) => {
|
|
75
|
+
const c = current[k];
|
|
76
|
+
const i = incoming && incoming[k];
|
|
77
|
+
// non-relations
|
|
78
|
+
if (!(0, _lodash.isArray)(c) && !(0, _lodash.isPlainObject)(c)) {
|
|
79
|
+
// copy incoming value, if any, otherwise keep current
|
|
80
|
+
out[k] = !(0, _lodash.isUndefined)(i) ? i : c;
|
|
81
|
+
return out;
|
|
71
82
|
}
|
|
72
|
-
//
|
|
73
|
-
if (
|
|
74
|
-
|
|
83
|
+
// remove "collection" item not included in incoming
|
|
84
|
+
if ((isCollection(current) || isCollection(incoming)) && !(0, _lodash.isUndefined)(incoming) && (0, _lodash.isUndefined)(i)) {
|
|
85
|
+
return out;
|
|
75
86
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return out;
|
|
92
|
-
}, {});
|
|
93
|
-
if (!lodash_1.default.isNil(incoming) && lodash_1.default.isPlainObject(incoming)) {
|
|
94
|
-
// copy incoming properties that are not on current
|
|
95
|
-
Object.keys(incoming).forEach(function (k) {
|
|
96
|
-
var c = current[k];
|
|
97
|
-
var i = incoming[k];
|
|
98
|
-
if (lodash_1.default.isUndefined(c)) {
|
|
99
|
-
result[k] = i;
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
return result;
|
|
87
|
+
// merge relations
|
|
88
|
+
out[k] = merge(c, i);
|
|
89
|
+
return out;
|
|
90
|
+
}, {});
|
|
91
|
+
if (!(0, _lodash.isNil)(incoming) && (0, _lodash.isPlainObject)(incoming)) {
|
|
92
|
+
// copy incoming properties that are not on current
|
|
93
|
+
Object.keys(incoming).forEach(k => {
|
|
94
|
+
const c = current[k];
|
|
95
|
+
const i = incoming[k];
|
|
96
|
+
if ((0, _lodash.isUndefined)(c)) {
|
|
97
|
+
result[k] = i;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
104
102
|
}
|
|
105
|
-
|
|
103
|
+
|
|
106
104
|
/**
|
|
107
105
|
* Sets `_metadata` on any nested collections and collection items in the data
|
|
108
106
|
* @param data
|
|
109
107
|
* @param metadata
|
|
110
108
|
*/
|
|
111
109
|
function updateMetadataForChildCollections(data, metadata) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
110
|
+
const isDataCollection = isCollection(data);
|
|
111
|
+
Object.keys(data).forEach(key => {
|
|
112
|
+
const value = data[key];
|
|
113
|
+
if (isDataCollection && key !== '_metadata' && (0, _lodash.isPlainObject)(value) || isCollection(value)) {
|
|
114
|
+
value._metadata = metadata;
|
|
115
|
+
updateMetadataForChildCollections(value, metadata);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
120
118
|
}
|
|
121
|
-
|
|
119
|
+
|
|
122
120
|
/**
|
|
123
121
|
* Reducer for fetching and updating `models` in redux.
|
|
124
122
|
*
|
|
@@ -136,68 +134,71 @@ exports.updateMetadataForChildCollections = updateMetadataForChildCollections;
|
|
|
136
134
|
* @param action The action upon which we dispatch
|
|
137
135
|
* @returns The updated state
|
|
138
136
|
*/
|
|
139
|
-
function modelsReducer(
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
return result;
|
|
137
|
+
function modelsReducer() {
|
|
138
|
+
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
139
|
+
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
140
|
+
if (!action.modelPath) {
|
|
141
|
+
return state;
|
|
142
|
+
}
|
|
143
|
+
const path = action.modelPath.split('.');
|
|
144
|
+
// the object value at the specified path
|
|
145
|
+
let valueAtPath = (0, _lodash.merge)({}, (0, _lodash.get)(state, path));
|
|
146
|
+
const metadata = getMetadata(state, path);
|
|
147
|
+
let metadataUpdate;
|
|
148
|
+
switch (action.type) {
|
|
149
|
+
case _actions.MODEL_FETCH_START_ACTION_TYPE.FETCH_START:
|
|
150
|
+
// Retain the entity data, update the metadata to reflect fetch in request state
|
|
151
|
+
metadataUpdate = {
|
|
152
|
+
isFetching: true,
|
|
153
|
+
hasError: false,
|
|
154
|
+
lastFetchErrorData: undefined
|
|
155
|
+
};
|
|
156
|
+
valueAtPath._metadata = (0, _lodash.merge)(metadata, metadataUpdate);
|
|
157
|
+
if (action.guid) {
|
|
158
|
+
valueAtPath.guid = action.guid;
|
|
159
|
+
}
|
|
160
|
+
return _fp2.default.setWith(Object, path, valueAtPath, state);
|
|
161
|
+
case _actions.MODEL_FETCH_RESULT_ACTION_TYPE.FETCH_RESULT_RECEIVED:
|
|
162
|
+
{
|
|
163
|
+
// Update the metadata to reflect fetch is complete.
|
|
164
|
+
metadataUpdate = {
|
|
165
|
+
isFetching: false,
|
|
166
|
+
hasError: false,
|
|
167
|
+
lastFetchErrorData: undefined,
|
|
168
|
+
fetchedAt: new Date()
|
|
169
|
+
};
|
|
170
|
+
const incoming = !(0, _lodash.isPlainObject)(action.data) && !(0, _lodash.isArray)(action.data) ? {
|
|
171
|
+
response: action.data
|
|
172
|
+
} : action.data;
|
|
173
|
+
updateMetadataForChildCollections(incoming, metadataUpdate);
|
|
174
|
+
// merging the incoming with existing
|
|
175
|
+
// otherwise completely replace the existing value in redux
|
|
176
|
+
if (!action.replaceValue) {
|
|
177
|
+
valueAtPath = merge(valueAtPath, incoming);
|
|
178
|
+
} else {
|
|
179
|
+
valueAtPath = (0, _lodash.merge)({}, incoming);
|
|
183
180
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
181
|
+
valueAtPath._metadata = (0, _lodash.merge)({}, metadata, metadataUpdate);
|
|
182
|
+
const result = _fp2.default.setWith(Object, path, valueAtPath, state);
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
case _actions.MODEL_FETCH_ERROR_ACTION_TYPE.FETCH_FAILED:
|
|
186
|
+
// Retain the object, update the metadata to reflect the fact that the request failed
|
|
187
|
+
metadataUpdate = {
|
|
188
|
+
isFetching: false,
|
|
189
|
+
hasError: true,
|
|
190
|
+
lastFetchErrorData: action.errorData
|
|
191
|
+
};
|
|
192
|
+
valueAtPath._metadata = (0, _lodash.merge)(metadata, metadataUpdate);
|
|
193
|
+
if (action.guid) {
|
|
194
|
+
valueAtPath.guid = action.guid;
|
|
195
|
+
}
|
|
196
|
+
return _fp2.default.setWith(Object, path, valueAtPath, state);
|
|
197
|
+
case _actions.MODEL_REMOVE_KEY_ACTION_TYPE:
|
|
198
|
+
// Completely remove the object at the path from the state
|
|
199
|
+
return _fp2.default.unset(path, state);
|
|
200
|
+
default:
|
|
201
|
+
return state;
|
|
202
|
+
}
|
|
202
203
|
}
|
|
203
|
-
exports.default = modelsReducer;
|
|
204
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9mcDIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJnZXRNZXRhZGF0YSIsInN0YXRlIiwicGF0aCIsImxvZGFzaE1lcmdlIiwiZ2V0IiwiY29uY2F0IiwiaXNDb2xsZWN0aW9uIiwib2JqIiwiaXNBcnJheSIsImlzUGxhaW5PYmplY3QiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZXZlcnkiLCJrZXkiLCJjaGlsZCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImlkIiwicGFyc2VJbnQiLCJpc051bGxSZXNwb25zZSIsIm1lcmdlIiwiY3VycmVudCIsImluY29taW5nIiwiaXNVbmRlZmluZWQiLCJyZXN1bHQiLCJyZWR1Y2UiLCJvdXQiLCJrIiwiYyIsImkiLCJpc05pbCIsImZvckVhY2giLCJ1cGRhdGVNZXRhZGF0YUZvckNoaWxkQ29sbGVjdGlvbnMiLCJkYXRhIiwibWV0YWRhdGEiLCJpc0RhdGFDb2xsZWN0aW9uIiwidmFsdWUiLCJfbWV0YWRhdGEiLCJtb2RlbHNSZWR1Y2VyIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiYWN0aW9uIiwibW9kZWxQYXRoIiwic3BsaXQiLCJ2YWx1ZUF0UGF0aCIsIm1ldGFkYXRhVXBkYXRlIiwidHlwZSIsIk1PREVMX0ZFVENIX1NUQVJUX0FDVElPTl9UWVBFIiwiRkVUQ0hfU1RBUlQiLCJpc0ZldGNoaW5nIiwiaGFzRXJyb3IiLCJsYXN0RmV0Y2hFcnJvckRhdGEiLCJndWlkIiwiX2ZwIiwic2V0V2l0aCIsIk1PREVMX0ZFVENIX1JFU1VMVF9BQ1RJT05fVFlQRSIsIkZFVENIX1JFU1VMVF9SRUNFSVZFRCIsImZldGNoZWRBdCIsIkRhdGUiLCJyZXNwb25zZSIsInJlcGxhY2VWYWx1ZSIsIk1PREVMX0ZFVENIX0VSUk9SX0FDVElPTl9UWVBFIiwiRkVUQ0hfRkFJTEVEIiwiZXJyb3JEYXRhIiwiTU9ERUxfUkVNT1ZFX0tFWV9BQ1RJT05fVFlQRSIsInVuc2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZHV4L3JlZHVjZXJzL21vZGVsc1JlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSwgZ2V0LCBpc0FycmF5LCBpc05pbCwgaXNQbGFpbk9iamVjdCwgaXNVbmRlZmluZWQsIG1lcmdlIGFzIGxvZGFzaE1lcmdlIH0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IF9mcCBmcm9tICdsb2Rhc2gvZnAnXG5pbXBvcnQgeyBNZXRhZGF0YSwgTW9kZWwgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7XG5cdE1PREVMX0ZFVENIX0VSUk9SX0FDVElPTl9UWVBFLFxuXHRNT0RFTF9GRVRDSF9SRVNVTFRfQUNUSU9OX1RZUEUsXG5cdE1PREVMX0ZFVENIX1NUQVJUX0FDVElPTl9UWVBFLFxuXHRNT0RFTF9SRU1PVkVfS0VZX0FDVElPTl9UWVBFLFxuXHRNb2RlbFN0b3JlQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnXG5cbi8qKlxuICogR2l2ZW4gdGhlIHN0YXRlIGFuZCBhIHBhdGggaW50byB0aGF0IHN0YXRlIG9iamVjdCwgcmV0dXJuIHRoZSBwcm9wIHRoYXRcbiAqIGlzIG5hbWVkIFwiX21ldGFkYXRhXCJcbiAqXG4gKiBAcGFyYW0gc3RhdGUgVGhlIHJlZHV4IHN0YXRlIG9iamVjdFxuICogQHBhcmFtIHBhdGggQW4gYXJyYXkgb2Yga2V5cyB0aGF0IHJlcHJlc2VudCB0aGUgcGF0aCB0byB0aGUgZW50aXR5IGluIHF1ZXN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhZGF0YShzdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIHBhdGg6IHN0cmluZ1tdKTogTWV0YWRhdGEge1xuXHRyZXR1cm4gbG9kYXNoTWVyZ2Uoe30sIGdldChzdGF0ZSwgcGF0aC5jb25jYXQoJ19tZXRhZGF0YScpKSlcbn1cblxuLyoqXG4gKiBHZXQgd2hldGhlciBvciBub3QgYW4gb2JqZWN0IGlzIGEgXCJjb2xsZWN0aW9uXCIgKGlkIGtleS12YWx1ZSBkaWN0aW9uYXJ5KS5cbiAqIEBwYXJhbSBvYmpcbiAqIEByZXR1cm5zIEEgYm9vbGVhblxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb2xsZWN0aW9uKG9iajogYW55KSB7XG5cdHJldHVybiAoXG5cdFx0IWlzQXJyYXkob2JqKSAmJlxuXHRcdGlzUGxhaW5PYmplY3Qob2JqKSAmJlxuXHRcdE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID4gMCAmJlxuXHRcdE9iamVjdC5rZXlzKG9iaikuZXZlcnkoa2V5ID0+IHtcblx0XHRcdGNvbnN0IGNoaWxkID0gb2JqW2tleV1cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdGlzUGxhaW5PYmplY3QoY2hpbGQpICYmXG5cdFx0XHRcdChrZXkgPT09ICdfbWV0YWRhdGEnIHx8XG5cdFx0XHRcdFx0KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGlsZCwgJ2lkJykgJiZcblx0XHRcdFx0XHRcdChjaGlsZC5pZCA9PT0gcGFyc2VJbnQoa2V5LCAxMCkgfHwgY2hpbGQuaWQgPT09IGtleSkpKVxuXHRcdFx0KVxuXHRcdH0pXG5cdClcbn1cblxuLyoqXG4gKiBHZXQgd2hldGhlciBvciBub3QgYW4gb2JqZWN0IGlzIGEgXCJudWxsIHJlc3BvbnNlXCIuXG4gKiBAcGFyYW0gb2JqXG4gKiBAcmV0dXJucyBBIGJvb2xlYW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbFJlc3BvbnNlKG9iajogYW55KSB7XG5cdHJldHVybiAoXG5cdFx0aXNQbGFpbk9iamVjdChvYmopICYmXG5cdFx0T2JqZWN0LmtleXMob2JqKS5sZW5ndGggPiAwICYmXG5cdFx0T2JqZWN0LmtleXMob2JqKS5ldmVyeShrZXkgPT4ge1xuXHRcdFx0Y29uc3QgY2hpbGQgPSBvYmpba2V5XVxuXHRcdFx0cmV0dXJuIGtleSA9PT0gJ19tZXRhZGF0YScgfHwgKGtleSA9PT0gJ3Jlc3BvbnNlJyAmJiBjaGlsZCA9PT0gbnVsbClcblx0XHR9KVxuXHQpXG59XG5cbi8qKlxuICogTWVyZ2UgdGhlIGBjdXJyZW50YCBhbmQgYGluY29taW5nYCBvYmplY3RzIHJlY3Vyc2l2ZWx5LCByZXR1cm5pbmcgYSBuZXcgY29tYmluZWQgb2JqZWN0LlxuICpcbiAqIEZvciBlYWNoIGtleSBpbiBgY3VycmVudGA6XG4gKiAqIHJlbW92ZSBpZiBgY3VycmVudGAgaXMgYSBcImNvbGxlY3Rpb25cIiBhbmQgaXRlbSBrZXkgaXMgbm90IGluIGBpbmNvbWluZ2BcbiAqICogcmVjdXJzZSBpZiBgaW5jb21pbmdgIGlzIGFuIG9iamVjdCBvciBhcnJheSBhbmQgaGFzIGEgdmFsdWVcbiAqICogb3IgcHJlc2VydmUgZXhpc3RpbmcgdmFsdWVcbiAqXG4gKiBGb3IgZWFjaCBrZXkgaW4gYGluY29taW5nYCBub3QgaW4gYGN1cnJlbnRgOlxuICogKiBjb3B5IHZhbHVlIHRvIHJlc3VsdFxuICpcbiAqIEBwYXJhbSBjdXJyZW50XG4gKiBAcGFyYW0gaW5jb21pbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlKGN1cnJlbnQ6IERpY3Rpb25hcnk8YW55PiwgaW5jb21pbmc/OiBEaWN0aW9uYXJ5PGFueT4gfCBudWxsKSB7XG5cdC8vIGRvIG5vdCBtZXJnZSBhcnJheXNcblx0aWYgKGlzQXJyYXkoY3VycmVudCkpIHtcblx0XHRyZXR1cm4gIWlzVW5kZWZpbmVkKGluY29taW5nKSA/IGluY29taW5nIDogY3VycmVudFxuXHR9XG5cdC8vIGlmIGluY29taW5nIGlzIGBudWxsYCBvciBhIG51bGwgcmVzcG9uc2UgKGB7J3Jlc3BvbnNlJzogbnVsbH1gKSwgZG8gbm90IG1lcmdlLCBqdXN0IHVzZSBpbmNvbWluZ1xuXHRpZiAoaW5jb21pbmcgPT09IG51bGwgfHwgKCFpc1VuZGVmaW5lZChpbmNvbWluZykgJiYgaXNOdWxsUmVzcG9uc2UoaW5jb21pbmcpKSkge1xuXHRcdHJldHVybiBpbmNvbWluZ1xuXHR9XG5cdGNvbnN0IHJlc3VsdDogRGljdGlvbmFyeTxhbnk+ID0gT2JqZWN0LmtleXMoY3VycmVudCkucmVkdWNlKChvdXQ6IERpY3Rpb25hcnk8YW55PiwgaykgPT4ge1xuXHRcdGNvbnN0IGMgPSBjdXJyZW50W2tdXG5cdFx0Y29uc3QgaSA9IGluY29taW5nICYmIGluY29taW5nW2tdXG5cdFx0Ly8gbm9uLXJlbGF0aW9uc1xuXHRcdGlmICghaXNBcnJheShjKSAmJiAhaXNQbGFpbk9iamVjdChjKSkge1xuXHRcdFx0Ly8gY29weSBpbmNvbWluZyB2YWx1ZSwgaWYgYW55LCBvdGhlcndpc2Uga2VlcCBjdXJyZW50XG5cdFx0XHRvdXRba10gPSAhaXNVbmRlZmluZWQoaSkgPyBpIDogY1xuXHRcdFx0cmV0dXJuIG91dFxuXHRcdH1cblx0XHQvLyByZW1vdmUgXCJjb2xsZWN0aW9uXCIgaXRlbSBub3QgaW5jbHVkZWQgaW4gaW5jb21pbmdcblx0XHRpZiAoKGlzQ29sbGVjdGlvbihjdXJyZW50KSB8fCBpc0NvbGxlY3Rpb24oaW5jb21pbmcpKSAmJiAhaXNVbmRlZmluZWQoaW5jb21pbmcpICYmIGlzVW5kZWZpbmVkKGkpKSB7XG5cdFx0XHRyZXR1cm4gb3V0XG5cdFx0fVxuXHRcdC8vIG1lcmdlIHJlbGF0aW9uc1xuXHRcdG91dFtrXSA9IG1lcmdlKGMsIGkpXG5cdFx0cmV0dXJuIG91dFxuXHR9LCB7fSlcblx0aWYgKCFpc05pbChpbmNvbWluZykgJiYgaXNQbGFpbk9iamVjdChpbmNvbWluZykpIHtcblx0XHQvLyBjb3B5IGluY29taW5nIHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IG9uIGN1cnJlbnRcblx0XHRPYmplY3Qua2V5cyhpbmNvbWluZykuZm9yRWFjaChrID0+IHtcblx0XHRcdGNvbnN0IGMgPSBjdXJyZW50W2tdXG5cdFx0XHRjb25zdCBpID0gaW5jb21pbmdba11cblx0XHRcdGlmIChpc1VuZGVmaW5lZChjKSkge1xuXHRcdFx0XHRyZXN1bHRba10gPSBpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHRyZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogU2V0cyBgX21ldGFkYXRhYCBvbiBhbnkgbmVzdGVkIGNvbGxlY3Rpb25zIGFuZCBjb2xsZWN0aW9uIGl0ZW1zIGluIHRoZSBkYXRhXG4gKiBAcGFyYW0gZGF0YVxuICogQHBhcmFtIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVNZXRhZGF0YUZvckNoaWxkQ29sbGVjdGlvbnMoZGF0YTogRGljdGlvbmFyeTxhbnk+LCBtZXRhZGF0YTogTWV0YWRhdGEpIHtcblx0Y29uc3QgaXNEYXRhQ29sbGVjdGlvbiA9IGlzQ29sbGVjdGlvbihkYXRhKVxuXHRPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKGtleSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSBkYXRhW2tleV1cblx0XHRpZiAoKGlzRGF0YUNvbGxlY3Rpb24gJiYga2V5ICE9PSAnX21ldGFkYXRhJyAmJiBpc1BsYWluT2JqZWN0KHZhbHVlKSkgfHwgaXNDb2xsZWN0aW9uKHZhbHVlKSkge1xuXHRcdFx0dmFsdWUuX21ldGFkYXRhID0gbWV0YWRhdGFcblx0XHRcdHVwZGF0ZU1ldGFkYXRhRm9yQ2hpbGRDb2xsZWN0aW9ucyh2YWx1ZSBhcyBvYmplY3QsIG1ldGFkYXRhKVxuXHRcdH1cblx0fSlcbn1cblxuLyoqXG4gKiBSZWR1Y2VyIGZvciBmZXRjaGluZyBhbmQgdXBkYXRpbmcgYG1vZGVsc2AgaW4gcmVkdXguXG4gKlxuICogRmV0Y2hpbmcgc3RhdGUgdXBkYXRlZCB3aXRoIGV2ZXJ5IGFjdGlvbi5cbiAqIERhdGEgdXBkYXRlZCBvbiByZXN1bHQgcmVjZWl2ZWQuXG4gKiBEYXRhIGFuZCBmZXRjaGVkRGF0ZSBOT1QgZGVsZXRlZCBvbiBmYWlsZWQgcmVxdWVzdC4gQWxsIGRhdGEgYXQga2V5IHJlbW92ZWQgb24gTU9ERUxfUkVNT1ZFX0tFWS5cbiAqXG4gKiBBbGwgYWN0aW9ucyByZXF1aXJlIGEgYG1vZGVsUGF0aGAga2V5IHRvIGZ1bmN0aW9uIHdpdGggdGhpcyByZWR1Y2VyLlxuICpcbiAqIEFycmF5cyBhcmUgY29udmVydGVkIHRvIG9iamVjdHMgdGhhdCByZXByZXNlbnQgYSBkaWN0aW9uYXJ5IHdpdGggdGhlIG51bWVyaWMgaWQgb2YgdGhlIG9iamVjdCB1c2VkXG4gKiBhcyB0aGUga2V5IGFuZCB0aGUgZW50aXJlIG9iamVjdCB1c2VkIGFzIHRoZSB2YWx1ZVxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSBzdGF0ZSBUaGUgc3RhdGUgb2YgdGhlIG1vZGVscy4gSW5pdGlhbGx5IGVtcHR5XG4gKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gdXBvbiB3aGljaCB3ZSBkaXNwYXRjaFxuICogQHJldHVybnMgVGhlIHVwZGF0ZWQgc3RhdGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbW9kZWxzUmVkdWNlcihzdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSwgYWN0aW9uOiBNb2RlbFN0b3JlQWN0aW9uKSB7XG5cdGlmICghYWN0aW9uLm1vZGVsUGF0aCkge1xuXHRcdHJldHVybiBzdGF0ZVxuXHR9XG5cdGNvbnN0IHBhdGg6IHN0cmluZ1tdID0gYWN0aW9uLm1vZGVsUGF0aC5zcGxpdCgnLicpXG5cdC8vIHRoZSBvYmplY3QgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBwYXRoXG5cdGxldCB2YWx1ZUF0UGF0aDogTW9kZWwgPSBsb2Rhc2hNZXJnZSh7fSwgZ2V0KHN0YXRlLCBwYXRoKSlcblx0Y29uc3QgbWV0YWRhdGEgPSBnZXRNZXRhZGF0YShzdGF0ZSwgcGF0aClcblx0bGV0IG1ldGFkYXRhVXBkYXRlOiBNZXRhZGF0YVxuXG5cdHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcblx0XHRjYXNlIE1PREVMX0ZFVENIX1NUQVJUX0FDVElPTl9UWVBFLkZFVENIX1NUQVJUOlxuXHRcdFx0Ly8gUmV0YWluIHRoZSBlbnRpdHkgZGF0YSwgdXBkYXRlIHRoZSBtZXRhZGF0YSB0byByZWZsZWN0IGZldGNoIGluIHJlcXVlc3Qgc3RhdGVcblx0XHRcdG1ldGFkYXRhVXBkYXRlID0ge1xuXHRcdFx0XHRpc0ZldGNoaW5nOiB0cnVlLFxuXHRcdFx0XHRoYXNFcnJvcjogZmFsc2UsXG5cdFx0XHRcdGxhc3RGZXRjaEVycm9yRGF0YTogdW5kZWZpbmVkXG5cdFx0XHR9XG5cdFx0XHR2YWx1ZUF0UGF0aC5fbWV0YWRhdGEgPSBsb2Rhc2hNZXJnZShtZXRhZGF0YSwgbWV0YWRhdGFVcGRhdGUpXG5cdFx0XHRpZiAoYWN0aW9uLmd1aWQpIHtcblx0XHRcdFx0dmFsdWVBdFBhdGguZ3VpZCA9IGFjdGlvbi5ndWlkXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gX2ZwLnNldFdpdGgoT2JqZWN0LCBwYXRoLCB2YWx1ZUF0UGF0aCwgc3RhdGUpXG5cblx0XHRjYXNlIE1PREVMX0ZFVENIX1JFU1VMVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVNVTFRfUkVDRUlWRUQ6IHtcblx0XHRcdC8vIFVwZGF0ZSB0aGUgbWV0YWRhdGEgdG8gcmVmbGVjdCBmZXRjaCBpcyBjb21wbGV0ZS5cblx0XHRcdG1ldGFkYXRhVXBkYXRlID0ge1xuXHRcdFx0XHRpc0ZldGNoaW5nOiBmYWxzZSxcblx0XHRcdFx0aGFzRXJyb3I6IGZhbHNlLFxuXHRcdFx0XHRsYXN0RmV0Y2hFcnJvckRhdGE6IHVuZGVmaW5lZCxcblx0XHRcdFx0ZmV0Y2hlZEF0OiBuZXcgRGF0ZSgpXG5cdFx0XHR9XG5cdFx0XHRjb25zdCBpbmNvbWluZzogb2JqZWN0ID1cblx0XHRcdFx0IWlzUGxhaW5PYmplY3QoYWN0aW9uLmRhdGEpICYmICFpc0FycmF5KGFjdGlvbi5kYXRhKSA/IHsgcmVzcG9uc2U6IGFjdGlvbi5kYXRhIH0gOiBhY3Rpb24uZGF0YVxuXHRcdFx0dXBkYXRlTWV0YWRhdGFGb3JDaGlsZENvbGxlY3Rpb25zKGluY29taW5nLCBtZXRhZGF0YVVwZGF0ZSlcblx0XHRcdC8vIG1lcmdpbmcgdGhlIGluY29taW5nIHdpdGggZXhpc3Rpbmdcblx0XHRcdC8vIG90aGVyd2lzZSBjb21wbGV0ZWx5IHJlcGxhY2UgdGhlIGV4aXN0aW5nIHZhbHVlIGluIHJlZHV4XG5cdFx0XHRpZiAoIWFjdGlvbi5yZXBsYWNlVmFsdWUpIHtcblx0XHRcdFx0dmFsdWVBdFBhdGggPSBtZXJnZSh2YWx1ZUF0UGF0aCwgaW5jb21pbmcpIGFzIE1vZGVsXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YWx1ZUF0UGF0aCA9IGxvZGFzaE1lcmdlKHt9LCBpbmNvbWluZykgYXMgTW9kZWxcblx0XHRcdH1cblx0XHRcdHZhbHVlQXRQYXRoLl9tZXRhZGF0YSA9IGxvZGFzaE1lcmdlKHt9LCBtZXRhZGF0YSwgbWV0YWRhdGFVcGRhdGUpXG5cdFx0XHRjb25zdCByZXN1bHQgPSBfZnAuc2V0V2l0aChPYmplY3QsIHBhdGgsIHZhbHVlQXRQYXRoLCBzdGF0ZSlcblx0XHRcdHJldHVybiByZXN1bHRcblx0XHR9XG5cdFx0Y2FzZSBNT0RFTF9GRVRDSF9FUlJPUl9BQ1RJT05fVFlQRS5GRVRDSF9GQUlMRUQ6XG5cdFx0XHQvLyBSZXRhaW4gdGhlIG9iamVjdCwgdXBkYXRlIHRoZSBtZXRhZGF0YSB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgdGhlIHJlcXVlc3QgZmFpbGVkXG5cdFx0XHRtZXRhZGF0YVVwZGF0ZSA9IHtcblx0XHRcdFx0aXNGZXRjaGluZzogZmFsc2UsXG5cdFx0XHRcdGhhc0Vycm9yOiB0cnVlLFxuXHRcdFx0XHRsYXN0RmV0Y2hFcnJvckRhdGE6IGFjdGlvbi5lcnJvckRhdGFcblx0XHRcdH1cblx0XHRcdHZhbHVlQXRQYXRoLl9tZXRhZGF0YSA9IGxvZGFzaE1lcmdlKG1ldGFkYXRhLCBtZXRhZGF0YVVwZGF0ZSlcblx0XHRcdGlmIChhY3Rpb24uZ3VpZCkge1xuXHRcdFx0XHR2YWx1ZUF0UGF0aC5ndWlkID0gYWN0aW9uLmd1aWRcblx0XHRcdH1cblx0XHRcdHJldHVybiBfZnAuc2V0V2l0aChPYmplY3QsIHBhdGgsIHZhbHVlQXRQYXRoLCBzdGF0ZSlcblxuXHRcdGNhc2UgTU9ERUxfUkVNT1ZFX0tFWV9BQ1RJT05fVFlQRTpcblx0XHRcdC8vIENvbXBsZXRlbHkgcmVtb3ZlIHRoZSBvYmplY3QgYXQgdGhlIHBhdGggZnJvbSB0aGUgc3RhdGVcblx0XHRcdHJldHVybiBfZnAudW5zZXQocGF0aCwgc3RhdGUpXG5cblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIHN0YXRlXG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTSSxXQUFXQSxDQUFDQyxLQUE4QixFQUFFQyxJQUFjLEVBQVk7RUFDckYsT0FBTyxJQUFBQyxhQUFXLEVBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBQUMsV0FBRyxFQUFDSCxLQUFLLEVBQUVDLElBQUksQ0FBQ0csTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDN0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLFlBQVlBLENBQUNDLEdBQVEsRUFBRTtFQUN0QyxPQUNDLENBQUMsSUFBQUMsZUFBTyxFQUFDRCxHQUFHLENBQUMsSUFDYixJQUFBRSxxQkFBYSxFQUFDRixHQUFHLENBQUMsSUFDbEJHLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDSixHQUFHLENBQUMsQ0FBQ0ssTUFBTSxHQUFHLENBQUMsSUFDM0JGLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDSixHQUFHLENBQUMsQ0FBQ00sS0FBSyxDQUFDQyxHQUFHLElBQUk7SUFDN0IsTUFBTUMsS0FBSyxHQUFHUixHQUFHLENBQUNPLEdBQUcsQ0FBQztJQUN0QixPQUNDLElBQUFMLHFCQUFhLEVBQUNNLEtBQUssQ0FBQyxLQUNuQkQsR0FBRyxLQUFLLFdBQVcsSUFDbEJKLE1BQU0sQ0FBQ00sU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUNoREEsS0FBSyxD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
|
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = notificationsReducer;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
var _NotificationAction = require("../actions/NotificationAction");
|
|
9
|
+
const initialState = {
|
|
10
|
+
queue: []
|
|
7
11
|
};
|
|
8
|
-
function notificationsReducer(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
function notificationsReducer() {
|
|
13
|
+
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
14
|
+
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
15
|
+
let updatedState;
|
|
16
|
+
switch (action.type) {
|
|
17
|
+
case _NotificationAction.NOTIFICATION_ACTION_TYPE.ADD_NOTIFICATION:
|
|
18
|
+
updatedState = (0, _lodash.merge)({}, state);
|
|
19
|
+
updatedState.queue.push(action.notification);
|
|
20
|
+
return updatedState;
|
|
21
|
+
case _NotificationAction.NOTIFICATION_ACTION_TYPE.REMOVE_NOTIFICATION:
|
|
22
|
+
updatedState = (0, _lodash.merge)({}, state);
|
|
23
|
+
updatedState.queue = updatedState.queue.filter(n => n.id !== action.notification.id);
|
|
24
|
+
return updatedState;
|
|
25
|
+
default:
|
|
26
|
+
return state;
|
|
27
|
+
}
|
|
23
28
|
}
|
|
24
|
-
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9Ob3RpZmljYXRpb25BY3Rpb24iLCJpbml0aWFsU3RhdGUiLCJxdWV1ZSIsIm5vdGlmaWNhdGlvbnNSZWR1Y2VyIiwic3RhdGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJhY3Rpb24iLCJ1cGRhdGVkU3RhdGUiLCJ0eXBlIiwiTk9USUZJQ0FUSU9OX0FDVElPTl9UWVBFIiwiQUREX05PVElGSUNBVElPTiIsIm1lcmdlIiwicHVzaCIsIm5vdGlmaWNhdGlvbiIsIlJFTU9WRV9OT1RJRklDQVRJT04iLCJmaWx0ZXIiLCJuIiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVkdXgvcmVkdWNlcnMvbm90aWZpY2F0aW9uc1JlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9Ob3RpZmljYXRpb24nXG5pbXBvcnQgeyBOT1RJRklDQVRJT05fQUNUSU9OX1RZUEUsIE5vdGlmaWNhdGlvbkFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvTm90aWZpY2F0aW9uQWN0aW9uJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblN0YXRlIHtcblx0cXVldWU6IE5vdGlmaWNhdGlvbltdXG59XG5cbmNvbnN0IGluaXRpYWxTdGF0ZTogTm90aWZpY2F0aW9uU3RhdGUgPSB7XG5cdHF1ZXVlOiBbXVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBub3RpZmljYXRpb25zUmVkdWNlcihzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uOiBOb3RpZmljYXRpb25BY3Rpb24pIHtcblx0bGV0IHVwZGF0ZWRTdGF0ZTogTm90aWZpY2F0aW9uU3RhdGVcblx0c3dpdGNoIChhY3Rpb24udHlwZSkge1xuXHRcdGNhc2UgTk9USUZJQ0FUSU9OX0FDVElPTl9UWVBFLkFERF9OT1RJRklDQVRJT046XG5cdFx0XHR1cGRhdGVkU3RhdGUgPSBtZXJnZSh7fSwgc3RhdGUpXG5cdFx0XHR1cGRhdGVkU3RhdGUucXVldWUucHVzaChhY3Rpb24ubm90aWZpY2F0aW9uKVxuXHRcdFx0cmV0dXJuIHVwZGF0ZWRTdGF0ZVxuXHRcdGNhc2UgTk9USUZJQ0FUSU9OX0FDVElPTl9UWVBFLlJFTU9WRV9OT1RJRklDQVRJT046XG5cdFx0XHR1cGRhdGVkU3RhdGUgPSBtZXJnZSh7fSwgc3RhdGUpXG5cdFx0XHR1cGRhdGVkU3RhdGUucXVldWUgPSB1cGRhdGVkU3RhdGUucXVldWUuZmlsdGVyKG4gPT4gbi5pZCAhPT0gYWN0aW9uLm5vdGlmaWNhdGlvbi5pZClcblx0XHRcdHJldHVybiB1cGRhdGVkU3RhdGVcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIHN0YXRlXG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsbUJBQUEsR0FBQUQsT0FBQTtBQU1BLE1BQU1FLFlBQStCLEdBQUc7RUFDdkNDLEtBQUssRUFBRTtBQUNSLENBQUM7QUFFYyxTQUFTQyxvQkFBb0JBLENBQUEsRUFBbUQ7RUFBQSxJQUFsREMsS0FBSyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBR0osWUFBWTtFQUFBLElBQUVPLE1BQTBCLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxPQUFBRCxTQUFBLE1BQUFFLFNBQUE7RUFDNUYsSUFBSUUsWUFBK0I7RUFDbkMsUUFBUUQsTUFBTSxDQUFDRSxJQUFJO0lBQ2xCLEtBQUtDLDRDQUF3QixDQUFDQyxnQkFBZ0I7TUFDN0NILFlBQVksR0FBRyxJQUFBSSxhQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUVULEtBQUssQ0FBQztNQUMvQkssWUFBWSxDQUFDUCxLQUFLLENBQUNZLElBQUksQ0FBQ04sTUFBTSxDQUFDTyxZQUFZLENBQUM7TUFDNUMsT0FBT04sWUFBWTtJQUNwQixLQUFLRSw0Q0FBd0IsQ0FBQ0ssbUJBQW1CO01BQ2hEUCxZQUFZLEdBQUcsSUFBQUksYUFBSyxFQUFDLENBQUMsQ0FBQyxFQUFFVCxLQUFLLENBQUM7TUFDL0JLLFlBQVksQ0FBQ1AsS0FBSyxHQUFHTyxZQUFZLENBQUNQLEtBQUssQ0FBQ2UsTUFBTSxDQUFDQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsRUFBRSxLQUFLWCxNQUFNLENBQUNPLFlBQVksQ0FBQ0ksRUFBRSxDQUFDO01BQ3BGLE9BQU9WLFlBQVk7SUFDcEI7TUFDQyxPQUFPTCxLQUFLO0VBQ2Q7QUFDRCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = searchReducer;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
var _SearchAction = require("../actions/SearchAction");
|
|
5
9
|
/**
|
|
6
10
|
* Store the state of a manage component's search parameters so the params can be
|
|
7
11
|
* re-applied later when revisiting the same component
|
|
@@ -11,13 +15,15 @@ var SearchAction_1 = require("../actions/SearchAction");
|
|
|
11
15
|
* @param {*} action
|
|
12
16
|
* @returns
|
|
13
17
|
*/
|
|
14
|
-
function searchReducer(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
function searchReducer() {
|
|
19
|
+
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
20
|
+
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
21
|
+
switch (action.type) {
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
23
|
+
case _SearchAction.SEARCH_ACTION_TYPE.PERSIST_SEARCH:
|
|
24
|
+
return (0, _lodash.mergeWith)({}, state, action.data, (target, source) => (0, _lodash.isArray)(source) ? source : undefined);
|
|
25
|
+
default:
|
|
26
|
+
return state;
|
|
27
|
+
}
|
|
22
28
|
}
|
|
23
|
-
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9TZWFyY2hBY3Rpb24iLCJzZWFyY2hSZWR1Y2VyIiwic3RhdGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJhY3Rpb24iLCJ0eXBlIiwiU0VBUkNIX0FDVElPTl9UWVBFIiwiUEVSU0lTVF9TRUFSQ0giLCJtZXJnZVdpdGgiLCJkYXRhIiwidGFyZ2V0Iiwic291cmNlIiwiaXNBcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWR1eC9yZWR1Y2Vycy9zZWFyY2hSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3Rpb25hcnksIGlzQXJyYXksIG1lcmdlV2l0aCB9IGZyb20gJ2xvZGFzaCdcbmltcG9ydCB7IFNFQVJDSF9BQ1RJT05fVFlQRSwgU2VhcmNoQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9TZWFyY2hBY3Rpb24nXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoU3RhdGUgZXh0ZW5kcyBEaWN0aW9uYXJ5PGFueT4ge31cblxuLyoqXG4gKiBTdG9yZSB0aGUgc3RhdGUgb2YgYSBtYW5hZ2UgY29tcG9uZW50J3Mgc2VhcmNoIHBhcmFtZXRlcnMgc28gdGhlIHBhcmFtcyBjYW4gYmVcbiAqIHJlLWFwcGxpZWQgbGF0ZXIgd2hlbiByZXZpc2l0aW5nIHRoZSBzYW1lIGNvbXBvbmVudFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7Kn0gW3N0YXRlPXt9XVxuICogQHBhcmFtIHsqfSBhY3Rpb25cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNlYXJjaFJlZHVjZXIoc3RhdGU6IFNlYXJjaFN0YXRlID0ge30sIGFjdGlvbjogU2VhcmNoQWN0aW9uKSB7XG5cdHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuXHRcdGNhc2UgU0VBUkNIX0FDVElPTl9UWVBFLlBFUlNJU1RfU0VBUkNIOlxuXHRcdFx0cmV0dXJuIG1lcmdlV2l0aCh7fSwgc3RhdGUsIGFjdGlvbi5kYXRhLCAodGFyZ2V0LCBzb3VyY2UpID0+IChpc0FycmF5KHNvdXJjZSkgPyBzb3VyY2UgOiB1bmRlZmluZWQpKVxuXG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiBzdGF0ZVxuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLFNBQVNFLGFBQWFBLENBQUEsRUFBZ0Q7RUFBQSxJQUEvQ0MsS0FBa0IsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBQUEsSUFBRUcsTUFBb0IsR0FBQUgsU0FBQSxDQUFBQyxNQUFBLE9BQUFELFNBQUEsTUFBQUUsU0FBQTtFQUNsRixRQUFRQyxNQUFNLENBQUNDLElBQUk7SUFDbEI7SUFDQSxLQUFLQyxnQ0FBa0IsQ0FBQ0MsY0FBYztNQUNyQyxPQUFPLElBQUFDLGlCQUFTLEVBQUMsQ0FBQyxDQUFDLEVBQUVSLEtBQUssRUFBRUksTUFBTSxDQUFDSyxJQUFJLEVBQUUsQ0FBQ0MsTUFBTSxFQUFFQyxNQUFNLEtBQU0sSUFBQUMsZUFBTyxFQUFDRCxNQUFNLENBQUMsR0FBR0EsTUFBTSxHQUFHUixTQUFVLENBQUM7SUFFckc7TUFDQyxPQUFPSCxLQUFLO0VBQ2Q7QUFDRCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,64 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function step(op) {
|
|
7
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
8
|
-
while (_) try {
|
|
9
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
10
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
11
|
-
switch (op[0]) {
|
|
12
|
-
case 0: case 1: t = op; break;
|
|
13
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
14
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
15
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
16
|
-
default:
|
|
17
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
18
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
19
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
20
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
21
|
-
if (t[2]) _.ops.pop();
|
|
22
|
-
_.trys.pop(); continue;
|
|
23
|
-
}
|
|
24
|
-
op = body.call(thisArg, _);
|
|
25
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
26
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
var effects_1 = require("redux-saga/effects");
|
|
31
|
-
var constants_1 = require("../../constants");
|
|
32
|
-
var actions_1 = require("../actions");
|
|
33
|
-
function appInsightsSaga() {
|
|
34
|
-
var appConfig, appInsightsKey, appInsights, userInfoResponse, userId;
|
|
35
|
-
return __generator(this, function (_a) {
|
|
36
|
-
switch (_a.label) {
|
|
37
|
-
case 0:
|
|
38
|
-
appConfig = constants_1.getAppConfig();
|
|
39
|
-
appInsightsKey = appConfig.APP_INSIGHTS_CONNECTION_STRING;
|
|
40
|
-
if (!appInsightsKey) {
|
|
41
|
-
return [2 /*return*/];
|
|
42
|
-
}
|
|
43
|
-
appInsights = constants_1.getAppInsights();
|
|
44
|
-
_a.label = 1;
|
|
45
|
-
case 1:
|
|
46
|
-
if (!true) return [3 /*break*/, 5];
|
|
47
|
-
return [4 /*yield*/, effects_1.take(function (action) { return actions_1.isModelFetchResultAction(action) && action.modelPath === 'user.userInfo'; })];
|
|
48
|
-
case 2:
|
|
49
|
-
userInfoResponse = _a.sent();
|
|
50
|
-
userId = userInfoResponse.data.id;
|
|
51
|
-
appInsights.setAuthenticatedUserContext(userId, undefined, true);
|
|
52
|
-
return [4 /*yield*/, effects_1.take(actions_1.AUTH_ACTION_TYPE.LOG_OUT_REQUESTED)];
|
|
53
|
-
case 3:
|
|
54
|
-
_a.sent();
|
|
55
|
-
appInsights.clearAuthenticatedUserContext();
|
|
56
|
-
return [4 /*yield*/, effects_1.take(actions_1.AUTH_TOKEN_SUCCESS_ACTION_TYPE.GET_TOKEN_SUCCEEDED)];
|
|
57
|
-
case 4:
|
|
58
|
-
_a.sent();
|
|
59
|
-
return [3 /*break*/, 1];
|
|
60
|
-
case 5: return [2 /*return*/];
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
64
6
|
exports.default = appInsightsSaga;
|
|
7
|
+
var _effects = require("redux-saga/effects");
|
|
8
|
+
var _constants = require("../../constants");
|
|
9
|
+
var _actions = require("../actions");
|
|
10
|
+
function* appInsightsSaga() {
|
|
11
|
+
const appConfig = (0, _constants.getAppConfig)();
|
|
12
|
+
const appInsightsKey = appConfig.APP_INSIGHTS_CONNECTION_STRING;
|
|
13
|
+
if (!appInsightsKey) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const appInsights = (0, _constants.getAppInsights)();
|
|
17
|
+
while (true) {
|
|
18
|
+
const userInfoResponse = yield (0, _effects.take)(action => (0, _actions.isModelFetchResultAction)(action) && action.modelPath === 'user.userInfo');
|
|
19
|
+
const userId = userInfoResponse.data.id;
|
|
20
|
+
appInsights.setAuthenticatedUserContext(userId, undefined, true);
|
|
21
|
+
yield (0, _effects.take)(_actions.AUTH_ACTION_TYPE.LOG_OUT_REQUESTED);
|
|
22
|
+
appInsights.clearAuthenticatedUserContext();
|
|
23
|
+
yield (0, _effects.take)(_actions.AUTH_TOKEN_SUCCESS_ACTION_TYPE.GET_TOKEN_SUCCEEDED);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZWZmZWN0cyIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2FjdGlvbnMiLCJhcHBJbnNpZ2h0c1NhZ2EiLCJhcHBDb25maWciLCJnZXRBcHBDb25maWciLCJhcHBJbnNpZ2h0c0tleSIsIkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklORyIsImFwcEluc2lnaHRzIiwiZ2V0QXBwSW5zaWdodHMiLCJ1c2VySW5mb1Jlc3BvbnNlIiwidGFrZSIsImFjdGlvbiIsImlzTW9kZWxGZXRjaFJlc3VsdEFjdGlvbiIsIm1vZGVsUGF0aCIsInVzZXJJZCIsImRhdGEiLCJpZCIsInNldEF1dGhlbnRpY2F0ZWRVc2VyQ29udGV4dCIsInVuZGVmaW5lZCIsIkFVVEhfQUNUSU9OX1RZUEUiLCJMT0dfT1VUX1JFUVVFU1RFRCIsImNsZWFyQXV0aGVudGljYXRlZFVzZXJDb250ZXh0IiwiQVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFIiwiR0VUX1RPS0VOX1NVQ0NFRURFRCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWR1eC9zYWdhcy9hcHBJbnNpZ2h0c1NhZ2EudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QWN0aW9uIH0gZnJvbSAncmVkdXgnXG5pbXBvcnQgeyBTYWdhSXRlcmF0b3IgfSBmcm9tICdyZWR1eC1zYWdhJ1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3JlZHV4LXNhZ2EvZWZmZWN0cydcbmltcG9ydCB7IGdldEFwcENvbmZpZywgZ2V0QXBwSW5zaWdodHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyBBVVRIX0FDVElPTl9UWVBFLCBBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUsIGlzTW9kZWxGZXRjaFJlc3VsdEFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKiBhcHBJbnNpZ2h0c1NhZ2EoKTogU2FnYUl0ZXJhdG9yIHtcblx0Y29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwQ29uZmlnKClcblx0Y29uc3QgYXBwSW5zaWdodHNLZXkgPSBhcHBDb25maWcuQVBQX0lOU0lHSFRTX0NPTk5FQ1RJT05fU1RSSU5HXG5cdGlmICghYXBwSW5zaWdodHNLZXkpIHtcblx0XHRyZXR1cm5cblx0fVxuXHRjb25zdCBhcHBJbnNpZ2h0cyA9IGdldEFwcEluc2lnaHRzKClcblx0d2hpbGUgKHRydWUpIHtcblx0XHRjb25zdCB1c2VySW5mb1Jlc3BvbnNlID0geWllbGQgdGFrZShcblx0XHRcdChhY3Rpb246IEFueUFjdGlvbikgPT4gaXNNb2RlbEZldGNoUmVzdWx0QWN0aW9uKGFjdGlvbikgJiYgYWN0aW9uLm1vZGVsUGF0aCA9PT0gJ3VzZXIudXNlckluZm8nXG5cdFx0KVxuXHRcdGNvbnN0IHVzZXJJZDogc3RyaW5nID0gdXNlckluZm9SZXNwb25zZS5kYXRhLmlkXG5cdFx0YXBwSW5zaWdodHMuc2V0QXV0aGVudGljYXRlZFVzZXJDb250ZXh0KHVzZXJJZCwgdW5kZWZpbmVkLCB0cnVlKVxuXHRcdHlpZWxkIHRha2UoQVVUSF9BQ1RJT05fVFlQRS5MT0dfT1VUX1JFUVVFU1RFRClcblx0XHRhcHBJbnNpZ2h0cy5jbGVhckF1dGhlbnRpY2F0ZWRVc2VyQ29udGV4dCgpXG5cdFx0eWllbGQgdGFrZShBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUuR0VUX1RPS0VOX1NVQ0NFRURFRClcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFFZSxVQUFVRyxlQUFlQSxDQUFBLEVBQWlCO0VBQ3hELE1BQU1DLFNBQVMsR0FBRyxJQUFBQyx1QkFBWSxFQUFDLENBQUM7RUFDaEMsTUFBTUMsY0FBYyxHQUFHRixTQUFTLENBQUNHLDhCQUE4QjtFQUMvRCxJQUFJLENBQUNELGNBQWMsRUFBRTtJQUNwQjtFQUNEO0VBQ0EsTUFBTUUsV0FBVyxHQUFHLElBQUFDLHlCQUFjLEVBQUMsQ0FBQztFQUNwQyxPQUFPLElBQUksRUFBRTtJQUNaLE1BQU1DLGdCQUFnQixHQUFHLE1BQU0sSUFBQUMsYUFBSSxFQUNqQ0MsTUFBaUIsSUFBSyxJQUFBQyxpQ0FBd0IsRUFBQ0QsTUFBTSxDQUFDLElBQUlBLE1BQU0sQ0FBQ0UsU0FBUyxLQUFLLGVBQ2pGLENBQUM7SUFDRCxNQUFNQyxNQUFjLEdBQUdMLGdCQUFnQixDQUFDTSxJQUFJLENBQUNDLEVBQUU7SUFDL0NULFdBQVcsQ0FBQ1UsMkJBQTJCLENBQUNILE1BQU0sRUFBRUksU0FBUyxFQUFFLElBQUksQ0FBQztJQUNoRSxNQUFNLElBQUFSLGFBQUksRUFBQ1MseUJBQWdCLENBQUNDLGlCQUFpQixDQUFDO0lBQzlDYixXQUFXLENBQUNjLDZCQUE2QixDQUFDLENBQUM7SUFDM0MsTUFBTSxJQUFBWCxhQUFJLEVBQUNZLHVDQUE4QixDQUFDQyxtQkFBbUIsQ0FBQztFQUMvRDtBQUNEIiwiaWdub3JlTGlzdCI6W119
|