studiokit-scaffolding-js 7.0.12-next.1.4 → 7.0.12-next.2.2
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.js +170 -34
- package/lib/components/AlertDialog.js +133 -9
- package/lib/components/AlertWithIcon.js +92 -25
- package/lib/components/ConnectedModal.js +43 -13
- package/lib/components/Dropdowns/GroupsDropdown.js +69 -44
- package/lib/components/Dropdowns/ManagedNavDropdown.js +100 -67
- package/lib/components/Dropdowns/UserDropdown.js +111 -21
- package/lib/components/Dropdowns/index.js +27 -9
- package/lib/components/EntityOwnerList.js +52 -18
- package/lib/components/Error.js +106 -11
- package/lib/components/ErrorBoundary.js +134 -35
- package/lib/components/ErrorMessage.js +44 -9
- package/lib/components/Forms/DateField.js +61 -42
- package/lib/components/Forms/TimeField.js +81 -42
- package/lib/components/Forms/index.js +27 -4
- package/lib/components/Groups/CreateEditCopySaveButtons.js +114 -11
- package/lib/components/Groups/ExternalGroups/Attach.js +212 -148
- package/lib/components/Groups/ExternalGroups/Table.js +181 -45
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
- package/lib/components/Groups/RosterSyncInfo.js +147 -20
- package/lib/components/HOC/AccessibleAppComponent.js +98 -73
- package/lib/components/HOC/ActivityRequiredComponent.js +92 -49
- package/lib/components/HOC/AsyncComponent.js +54 -39
- package/lib/components/HOC/AuthenticatedComponent.js +58 -38
- package/lib/components/HOC/CollectionComponent.js +170 -110
- package/lib/components/HOC/CollectionFirstItemComponent.js +51 -38
- package/lib/components/HOC/CollectionItemComponent.js +168 -106
- package/lib/components/HOC/ConnectedModalComponent.js +109 -80
- package/lib/components/HOC/DataDependentComponent.js +29 -21
- package/lib/components/HOC/EntityComponent.js +71 -57
- package/lib/components/HOC/FullscreenModalComponent.js +163 -123
- package/lib/components/HOC/GroupActivityRequiredComponent.js +45 -31
- package/lib/components/HOC/GuidComponent.js +29 -22
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +41 -31
- package/lib/components/HOC/ModelErrorRedirectComponent.js +51 -47
- package/lib/components/HOC/SearchPersistorComponent.js +240 -166
- package/lib/components/HOC/UnauthenticatedComponent.js +37 -25
- package/lib/components/HOC/UserComponent.js +12 -7
- package/lib/components/Icons/IconAlphaList.js +33 -5
- package/lib/components/Icons/IconExternalUser.js +33 -5
- package/lib/components/Icons/IconImpersonation.js +33 -5
- package/lib/components/Icons/IconStopImpersonating.js +33 -5
- package/lib/components/Icons/IconTable.js +35 -7
- package/lib/components/Icons/IconTableDeleteCol.js +33 -5
- package/lib/components/Icons/IconTableDeleteRow.js +33 -5
- package/lib/components/Icons/IconTableInsertCol.js +33 -5
- package/lib/components/Icons/IconTableInsertRow.js +33 -5
- package/lib/components/Impersonation/Button.js +77 -13
- package/lib/components/Impersonation/Link.js +77 -13
- package/lib/components/Impersonation/UserDetail.js +66 -9
- package/lib/components/Loading.js +26 -4
- package/lib/components/LockDownBrowser/Check.js +194 -49
- package/lib/components/LockDownBrowser/ExitButton.js +26 -9
- package/lib/components/LockDownBrowser/Launch.js +70 -62
- package/lib/components/Lti/Confirm.js +152 -11
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -33
- package/lib/components/Lti/Launch.js +105 -24
- package/lib/components/Lti/LaunchGroup.js +85 -13
- package/lib/components/ManageTable.js +309 -87
- package/lib/components/ManageTableNoDataComponent.js +42 -4
- package/lib/components/NewVersionAlert.js +82 -46
- package/lib/components/NotFound.js +86 -10
- package/lib/components/Notifications.js +185 -126
- package/lib/components/PaginationNextButton.js +33 -6
- package/lib/components/PaginationPreviousButton.js +33 -6
- package/lib/components/Quill/CustomToolbar.js +432 -218
- package/lib/components/Quill/Formats/Image.js +73 -63
- package/lib/components/Quill/Formats/List.js +45 -45
- package/lib/components/Quill/Formats/Video.js +28 -24
- package/lib/components/Quill/ImageDropModule.js +147 -117
- package/lib/components/Quill/ImageWarning.js +47 -9
- package/lib/components/Quill/ImageWithAltTextModal.js +425 -86
- package/lib/components/Quill/Specs/CustomImageSpec.js +42 -34
- package/lib/components/Quill/Specs/CustomVideoSpec.js +34 -28
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +98 -98
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +52 -47
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +53 -48
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +224 -221
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +80 -83
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +75 -70
- package/lib/components/Quill/TableModule/constants.js +45 -41
- package/lib/components/Quill/TableModule/index.js +362 -301
- package/lib/components/Quill/TableModule/utils.js +42 -38
- package/lib/components/Quill/accessibilityFix.js +234 -232
- package/lib/components/Quill/index.js +34 -28
- package/lib/components/RefreshIndicator/Bordered.js +47 -6
- package/lib/components/RefreshIndicator/Inline.js +47 -8
- package/lib/components/RefreshIndicator/index.js +263 -59
- package/lib/components/SearchControls.js +216 -11
- package/lib/components/SentryRoute.js +11 -6
- package/lib/components/Tables/RoleFilter.js +69 -32
- package/lib/components/Tables/TextFilter.js +62 -13
- package/lib/components/UserRoles/Add.js +199 -96
- package/lib/components/UserRoles/Context.js +11 -7
- package/lib/components/UserRoles/RoleCell.js +181 -72
- package/lib/components/UserRoles/Select.js +157 -17
- package/lib/components/UserRoles/Table.js +221 -80
- package/lib/components/UserRoles/index.js +534 -384
- package/lib/config/eslint/index.js +32 -28
- package/lib/config/eslint/lib/order.js +26 -27
- package/lib/config/eslint/lib/prettier.js +20 -18
- package/lib/config/eslint/lib/typescript.js +93 -112
- package/lib/config/eslint/react.js +24 -14
- package/lib/constants/baseActivity.js +30 -26
- package/lib/constants/baseRole.js +14 -10
- package/lib/constants/configuration.js +33 -29
- package/lib/constants/externalProviderType.js +10 -6
- package/lib/constants/fetchErrorData.js +15 -11
- package/lib/constants/index.js +137 -14
- package/lib/constants/lockDownBrowser.js +28 -24
- package/lib/constants/mockData.js +382 -297
- 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.js +15 -5
- package/lib/endpointMappings.js +197 -181
- package/lib/hooks/useCollection.js +82 -62
- package/lib/hooks/useCollectionConfiguration.js +228 -83
- package/lib/hooks/useCollectionItem.js +154 -54
- package/lib/hooks/useGuid.js +20 -8
- package/lib/hooks/usePrevious.js +19 -13
- package/lib/index.js +157 -25
- package/lib/redux/actionCreator.js +50 -28
- package/lib/redux/actions/AuthAction.js +44 -31
- package/lib/redux/actions/ModalAction.js +10 -6
- package/lib/redux/actions/ModelAction.js +77 -39
- package/lib/redux/actions/NotificationAction.js +10 -6
- package/lib/redux/actions/SearchAction.js +9 -5
- package/lib/redux/actions/index.js +60 -7
- package/lib/redux/configureReducers.js +60 -49
- package/lib/redux/configureStore.js +83 -87
- package/lib/redux/helpers.js +6 -2
- package/lib/redux/reducers/authReducer.js +50 -43
- package/lib/redux/reducers/index.js +41 -13
- package/lib/redux/reducers/modalsReducer.js +47 -29
- package/lib/redux/reducers/modelsReducer.js +178 -173
- package/lib/redux/reducers/notificationsReducer.js +24 -18
- package/lib/redux/reducers/searchReducer.js +25 -19
- package/lib/redux/sagas/appInsightsSaga.js +22 -18
- package/lib/redux/sagas/authSaga.js +253 -218
- package/lib/redux/sagas/caliperSaga.js +159 -143
- package/lib/redux/sagas/clockOffsetSaga.js +34 -31
- package/lib/redux/sagas/configurationSaga.js +11 -7
- package/lib/redux/sagas/downtimeApiErrorSaga.js +20 -17
- package/lib/redux/sagas/errorSaga.js +27 -21
- package/lib/redux/sagas/googleAnalyticsSaga.js +28 -24
- package/lib/redux/sagas/identityProviderSaga.js +22 -18
- package/lib/redux/sagas/initialDataLoadSaga.js +37 -28
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +29 -20
- package/lib/redux/sagas/modelFetchSaga.js +355 -322
- package/lib/redux/sagas/noStoreSaga.js +61 -48
- package/lib/redux/sagas/postLoginDataSaga.js +45 -34
- package/lib/redux/sagas/postLoginRedirectSaga.js +27 -27
- package/lib/redux/sagas/rootSaga.js +82 -57
- package/lib/redux/sagas/sentrySaga.js +29 -25
- package/lib/redux/sagas/userIdSaga.js +16 -12
- package/lib/services/codeProviderService.js +25 -19
- package/lib/services/dateService.js +12 -7
- package/lib/services/documentService.js +17 -12
- package/lib/services/fetchService.js +129 -112
- package/lib/services/persistenceService.js +33 -29
- package/lib/services/ticketProviderService.js +29 -23
- package/lib/services/tokenPersistenceService.js +12 -8
- package/lib/services/windowService.js +18 -14
- package/lib/startup.js +132 -114
- 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.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.js +5 -1
- package/lib/types/OptionalRecord.js +5 -1
- package/lib/types/OwnerSchedule.js +5 -1
- package/lib/types/PropertyOfType.js +5 -1
- package/lib/types/Quill.js +5 -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 -9
- package/lib/types/externals.d.js +2 -0
- package/lib/types/index.js +313 -30
- 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.js +5 -1
- package/lib/types/net/FetchConfig.js +5 -1
- package/lib/types/net/FetchErrorData.js +10 -6
- package/lib/types/net/FetchResult.js +5 -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.js +5 -1
- package/lib/types/net/TokenAccessFunction.js +5 -1
- package/lib/types/net/index.js +181 -18
- package/lib/utils/baseActivity.js +133 -123
- package/lib/utils/baseRole.js +37 -33
- package/lib/utils/collection.js +425 -298
- package/lib/utils/cookies.js +22 -19
- package/lib/utils/date.js +303 -279
- package/lib/utils/dom.js +176 -165
- package/lib/utils/domainIdentifier.js +9 -5
- package/lib/utils/entityUserRole.js +6 -2
- package/lib/utils/error.js +17 -15
- package/lib/utils/events.js +40 -31
- package/lib/utils/externalGroup.js +22 -18
- package/lib/utils/externalProviders.js +8 -4
- package/lib/utils/externalTerms.js +10 -3
- package/lib/utils/fetch.js +179 -180
- package/lib/utils/group.js +18 -7
- package/lib/utils/groupDates.js +37 -33
- package/lib/utils/groupRoles.js +25 -21
- package/lib/utils/lockDownBrowser.js +15 -11
- package/lib/utils/logger.js +26 -22
- package/lib/utils/lti.js +9 -4
- package/lib/utils/model.js +36 -41
- package/lib/utils/number.js +21 -18
- package/lib/utils/promise.js +28 -21
- package/lib/utils/quill.js +65 -62
- package/lib/utils/route.js +58 -55
- package/lib/utils/search.js +76 -80
- package/lib/utils/shard.js +37 -37
- package/lib/utils/sort.js +50 -42
- package/lib/utils/string.js +13 -8
- package/lib/utils/table.js +38 -33
- package/lib/utils/timezone.js +10 -6
- package/lib/utils/url.js +142 -142
- package/lib/utils/user.js +58 -55
- package/lib/utils/userAgent.js +10 -10
- package/lib/utils/userRole.js +57 -49
- package/package.json +17 -3
|
@@ -1,26 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
3
7
|
exports.guidComponent = guidComponent;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* HOC that provides a `guid` prop to the `WrappedComponent`.
|
|
9
|
-
*
|
|
10
|
-
* @param WrappedComponent The component to wrap.
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _uuid = require("uuid");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* HOC that provides a `guid` prop to the `WrappedComponent`.
|
|
13
|
+
*
|
|
14
|
+
* @param WrappedComponent The component to wrap.
|
|
11
15
|
*/
|
|
12
|
-
function guidComponent(WrappedComponent
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
function guidComponent(WrappedComponent) {
|
|
17
|
+
return class GuidComponent extends _react.Component {
|
|
18
|
+
constructor(props) {
|
|
19
|
+
super(props);
|
|
20
|
+
this.state = {
|
|
21
|
+
guid: (0, _uuid.v4)()
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
|
|
26
|
+
...this.props,
|
|
27
|
+
guid: this.state.guid
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
};
|
|
25
31
|
}
|
|
26
|
-
exports.default = guidComponent;
|
|
32
|
+
var _default = exports.default = guidComponent;
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3V1aWQiLCJfanN4UnVudGltZSIsImd1aWRDb21wb25lbnQiLCJXcmFwcGVkQ29tcG9uZW50IiwiR3VpZENvbXBvbmVudCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImd1aWQiLCJ1dWlkdjQiLCJyZW5kZXIiLCJqc3giLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSE9DL0d1aWRDb21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50Q2xhc3MsIENvbXBvbmVudFR5cGUgfSBmcm9tICdyZWFjdCdcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZENvbXBvbmVudFdyYXBwZWRQcm9wcyB7XHJcblx0Z3VpZDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZENvbXBvbmVudFN0YXRlIHtcclxuXHRndWlkOiBzdHJpbmdcclxufVxyXG5cclxuLyoqXHJcbiAqIEhPQyB0aGF0IHByb3ZpZGVzIGEgYGd1aWRgIHByb3AgdG8gdGhlIGBXcmFwcGVkQ29tcG9uZW50YC5cclxuICpcclxuICogQHBhcmFtIFdyYXBwZWRDb21wb25lbnQgIFRoZSBjb21wb25lbnQgdG8gd3JhcC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBndWlkQ29tcG9uZW50PFRPd25Qcm9wcyBleHRlbmRzIG9iamVjdD4oXHJcblx0V3JhcHBlZENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUT3duUHJvcHMgJiBHdWlkQ29tcG9uZW50V3JhcHBlZFByb3BzPiAvLyBpbnRlcnNlY3QgdHlwZSBzZXBhcmF0ZXMgdGhlIGd1aWQgcHJvcHNcclxuKTogQ29tcG9uZW50Q2xhc3M8VE93blByb3BzPiB7XHJcblx0cmV0dXJuIGNsYXNzIEd1aWRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ8VE93blByb3BzLCBHdWlkQ29tcG9uZW50U3RhdGU+IHtcclxuXHRcdGNvbnN0cnVjdG9yKHByb3BzOiBUT3duUHJvcHMpIHtcclxuXHRcdFx0c3VwZXIocHJvcHMpXHJcblx0XHRcdHRoaXMuc3RhdGUgPSB7XHJcblx0XHRcdFx0Z3VpZDogdXVpZHY0KClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJlbmRlcigpIHtcclxuXHRcdFx0cmV0dXJuIDxXcmFwcGVkQ29tcG9uZW50IHsuLi50aGlzLnByb3BzfSBndWlkPXt0aGlzLnN0YXRlLmd1aWR9IC8+XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBndWlkQ29tcG9uZW50XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUQsT0FBQTtBQUFtQyxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFVbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNHLGFBQWFBLENBQzVCQyxnQkFBc0UsRUFDMUM7RUFDNUIsT0FBTyxNQUFNQyxhQUFhLFNBQVNDLGdCQUFTLENBQWdDO0lBQzNFQyxXQUFXQSxDQUFDQyxLQUFnQixFQUFFO01BQzdCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO01BQ1osSUFBSSxDQUFDQyxLQUFLLEdBQUc7UUFDWkMsSUFBSSxFQUFFLElBQUFDLFFBQU0sRUFBQztNQUNkLENBQUM7SUFDRjtJQUVBQyxNQUFNQSxDQUFBLEVBQUc7TUFDUixvQkFBTyxJQUFBVixXQUFBLENBQUFXLEdBQUEsRUFBQ1QsZ0JBQWdCO1FBQUEsR0FBSyxJQUFJLENBQUNJLEtBQUs7UUFBRUUsSUFBSSxFQUFFLElBQUksQ0FBQ0QsS0FBSyxDQUFDQztNQUFLLENBQUUsQ0FBQztJQUNuRTtFQUNELENBQUM7QUFDRjtBQUFDLElBQUFJLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWNiLGFBQWEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,39 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
4
6
|
exports.default = modelContextDependencyVerifyComponent;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
exports.setupModelContextDependencyVerifyComponent = setupModelContextDependencyVerifyComponent;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _reactRouterDom = require("react-router-dom");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
11
|
function setupModelContextDependencyVerifyComponent(WrappedComponent, modelName, dependentModelName) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
return class ModelContextVerifyComponent extends _react.Component {
|
|
13
|
+
render() {
|
|
14
|
+
const {
|
|
15
|
+
match: {
|
|
16
|
+
params
|
|
17
|
+
},
|
|
18
|
+
model
|
|
19
|
+
} = this.props;
|
|
20
|
+
const routeParams = params;
|
|
21
|
+
const modelId = routeParams[`${modelName}Id`] ? parseInt(routeParams[`${modelName}Id`], 10) : undefined;
|
|
22
|
+
const dependentModelId = routeParams[`${dependentModelName}Id`] ? parseInt(routeParams[`${dependentModelName}Id`], 10) : undefined;
|
|
23
|
+
if (!!modelId && !!dependentModelId && model.id === modelId && model[`${dependentModelName}Id`] === dependentModelId) {
|
|
24
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
|
|
25
|
+
...this.props
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Redirect, {
|
|
29
|
+
to: {
|
|
30
|
+
pathname: '/error'
|
|
26
31
|
}
|
|
27
|
-
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
28
35
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* @param {
|
|
34
|
-
* @param {string}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* HOC that checks if the depender component is related to the dependee component.
|
|
39
|
+
*
|
|
40
|
+
* @param {*} WrappedComponent The component to wrap.
|
|
41
|
+
* @param {string} modelName The modelName of the dependent component itself.
|
|
42
|
+
* @param {string} dependentModelName The modelName that the dependent component depends on.
|
|
35
43
|
*/
|
|
44
|
+
|
|
36
45
|
function modelContextDependencyVerifyComponent(WrappedComponent, modelName, dependentModelName) {
|
|
37
|
-
|
|
38
|
-
|
|
46
|
+
const component = setupModelContextDependencyVerifyComponent(WrappedComponent, modelName, dependentModelName);
|
|
47
|
+
return (0, _reactRouterDom.withRouter)(component);
|
|
39
48
|
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0Um91dGVyRG9tIiwiX2pzeFJ1bnRpbWUiLCJzZXR1cE1vZGVsQ29udGV4dERlcGVuZGVuY3lWZXJpZnlDb21wb25lbnQiLCJXcmFwcGVkQ29tcG9uZW50IiwibW9kZWxOYW1lIiwiZGVwZW5kZW50TW9kZWxOYW1lIiwiTW9kZWxDb250ZXh0VmVyaWZ5Q29tcG9uZW50IiwiQ29tcG9uZW50IiwicmVuZGVyIiwibWF0Y2giLCJwYXJhbXMiLCJtb2RlbCIsInByb3BzIiwicm91dGVQYXJhbXMiLCJtb2RlbElkIiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJkZXBlbmRlbnRNb2RlbElkIiwiaWQiLCJqc3giLCJSZWRpcmVjdCIsInRvIiwicGF0aG5hbWUiLCJtb2RlbENvbnRleHREZXBlbmRlbmN5VmVyaWZ5Q29tcG9uZW50IiwiY29tcG9uZW50Iiwid2l0aFJvdXRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0hPQy9Nb2RlbENvbnRleHREZXBlbmRlbmN5VmVyaWZ5Q29tcG9uZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJ1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFR5cGUgfSBmcm9tICdyZWFjdCdcclxuaW1wb3J0IHsgUm91dGVDb21wb25lbnRQcm9wcyB9IGZyb20gJ3JlYWN0LXJvdXRlcidcclxuaW1wb3J0IHsgUmVkaXJlY3QsIHdpdGhSb3V0ZXIgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xyXG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gJy4uLy4uL3R5cGVzJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb2RlbENvbnRleHREZXBlbmRlbmN5VmVyaWZ5Q29tcG9uZW50UHJvcHMge1xyXG5cdG1vZGVsOiBNb2RlbFxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBNb2RlbENvbnRleHREZXBlbmRlbmN5VmVyaWZ5Q29tcG9uZW50PFxyXG5cdFRPd25Qcm9wcyBleHRlbmRzIE1vZGVsQ29udGV4dERlcGVuZGVuY3lWZXJpZnlDb21wb25lbnRQcm9wc1xyXG4+KFdyYXBwZWRDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VE93blByb3BzPiwgbW9kZWxOYW1lOiBzdHJpbmcsIGRlcGVuZGVudE1vZGVsTmFtZTogc3RyaW5nKSB7XHJcblx0cmV0dXJuIGNsYXNzIE1vZGVsQ29udGV4dFZlcmlmeUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudDxUT3duUHJvcHMgJiBSb3V0ZUNvbXBvbmVudFByb3BzPiB7XHJcblx0XHRyZW5kZXIoKSB7XHJcblx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRtYXRjaDogeyBwYXJhbXMgfSxcclxuXHRcdFx0XHRtb2RlbFxyXG5cdFx0XHR9ID0gdGhpcy5wcm9wc1xyXG5cdFx0XHRjb25zdCByb3V0ZVBhcmFtczogRGljdGlvbmFyeTxzdHJpbmc+ID0gcGFyYW1zXHJcblxyXG5cdFx0XHRjb25zdCBtb2RlbElkID0gcm91dGVQYXJhbXNbYCR7bW9kZWxOYW1lfUlkYF0gPyBwYXJzZUludChyb3V0ZVBhcmFtc1tgJHttb2RlbE5hbWV9SWRgXSwgMTApIDogdW5kZWZpbmVkXHJcblx0XHRcdGNvbnN0IGRlcGVuZGVudE1vZGVsSWQgPSByb3V0ZVBhcmFtc1tgJHtkZXBlbmRlbnRNb2RlbE5hbWV9SWRgXVxyXG5cdFx0XHRcdD8gcGFyc2VJbnQocm91dGVQYXJhbXNbYCR7ZGVwZW5kZW50TW9kZWxOYW1lfUlkYF0sIDEwKVxyXG5cdFx0XHRcdDogdW5kZWZpbmVkXHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHQhIW1vZGVsSWQgJiZcclxuXHRcdFx0XHQhIWRlcGVuZGVudE1vZGVsSWQgJiZcclxuXHRcdFx0XHRtb2RlbC5pZCA9PT0gbW9kZWxJZCAmJlxyXG5cdFx0XHRcdChtb2RlbCBhcyBhbnkpW2Ake2RlcGVuZGVudE1vZGVsTmFtZX1JZGBdID09PSBkZXBlbmRlbnRNb2RlbElkXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdHJldHVybiA8V3JhcHBlZENvbXBvbmVudCB7Li4udGhpcy5wcm9wc30gLz5cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gKFxyXG5cdFx0XHRcdDxSZWRpcmVjdFxyXG5cdFx0XHRcdFx0dG89e3tcclxuXHRcdFx0XHRcdFx0cGF0aG5hbWU6ICcvZXJyb3InXHJcblx0XHRcdFx0XHR9fVxyXG5cdFx0XHRcdC8+XHJcblx0XHRcdClcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIT0MgdGhhdCBjaGVja3MgaWYgdGhlIGRlcGVuZGVyIGNvbXBvbmVudCBpcyByZWxhdGVkIHRvIHRoZSBkZXBlbmRlZSBjb21wb25lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Kn0gV3JhcHBlZENvbXBvbmVudCBUaGUgY29tcG9uZW50IHRvIHdyYXAuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2RlbE5hbWUgVGhlIG1vZGVsTmFtZSBvZiB0aGUgZGVwZW5kZW50IGNvbXBvbmVudCBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXBlbmRlbnRNb2RlbE5hbWUgVGhlIG1vZGVsTmFtZSB0aGF0IHRoZSBkZXBlbmRlbnQgY29tcG9uZW50IGRlcGVuZHMgb24uXHJcbiAqL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbW9kZWxDb250ZXh0RGVwZW5kZW5jeVZlcmlmeUNvbXBvbmVudDxcclxuXHRUT3duUHJvcHMgZXh0ZW5kcyBNb2RlbENvbnRleHREZXBlbmRlbmN5VmVyaWZ5Q29tcG9uZW50UHJvcHNcclxuPihXcmFwcGVkQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRPd25Qcm9wcz4sIG1vZGVsTmFtZTogc3RyaW5nLCBkZXBlbmRlbnRNb2RlbE5hbWU6IHN0cmluZykge1xyXG5cdGNvbnN0IGNvbXBvbmVudCA9IHNldHVwTW9kZWxDb250ZXh0RGVwZW5kZW5jeVZlcmlmeUNvbXBvbmVudChXcmFwcGVkQ29tcG9uZW50LCBtb2RlbE5hbWUsIGRlcGVuZGVudE1vZGVsTmFtZSlcclxuXHRyZXR1cm4gd2l0aFJvdXRlcihjb21wb25lbnQpXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQXVELElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQU9oRCxTQUFTRywwQ0FBMENBLENBRXhEQyxnQkFBMEMsRUFBRUMsU0FBaUIsRUFBRUMsa0JBQTBCLEVBQUU7RUFDNUYsT0FBTyxNQUFNQywyQkFBMkIsU0FBU0MsZ0JBQVMsQ0FBa0M7SUFDM0ZDLE1BQU1BLENBQUEsRUFBRztNQUNSLE1BQU07UUFDTEMsS0FBSyxFQUFFO1VBQUVDO1FBQU8sQ0FBQztRQUNqQkM7TUFDRCxDQUFDLEdBQUcsSUFBSSxDQUFDQyxLQUFLO01BQ2QsTUFBTUMsV0FBK0IsR0FBR0gsTUFBTTtNQUU5QyxNQUFNSSxPQUFPLEdBQUdELFdBQVcsQ0FBQyxHQUFHVCxTQUFTLElBQUksQ0FBQyxHQUFHVyxRQUFRLENBQUNGLFdBQVcsQ0FBQyxHQUFHVCxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHWSxTQUFTO01BQ3ZHLE1BQU1DLGdCQUFnQixHQUFHSixXQUFXLENBQUMsR0FBR1Isa0JBQWtCLElBQUksQ0FBQyxHQUM1RFUsUUFBUSxDQUFDRixXQUFXLENBQUMsR0FBR1Isa0JBQWtCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUNwRFcsU0FBUztNQUNaLElBQ0MsQ0FBQyxDQUFDRixPQUFPLElBQ1QsQ0FBQyxDQUFDRyxnQkFBZ0IsSUFDbEJOLEtBQUssQ0FBQ08sRUFBRSxLQUFLSixPQUFPLElBQ25CSCxLQUFLLENBQVMsR0FBR04sa0JBQWtCLElBQUksQ0FBQyxLQUFLWSxnQkFBZ0IsRUFDN0Q7UUFDRCxvQkFBTyxJQUFBaEIsV0FBQSxDQUFBa0IsR0FBQSxFQUFDaEIsZ0JBQWdCO1VBQUEsR0FBSyxJQUFJLENBQUNTO1FBQUssQ0FBRyxDQUFDO01BQzVDO01BQ0Esb0JBQ0MsSUFBQVgsV0FBQSxDQUFBa0IsR0FBQSxFQUFDbkIsZUFBQSxDQUFBb0IsUUFBUTtRQUNSQyxFQUFFLEVBQUU7VUFDSEMsUUFBUSxFQUFFO1FBQ1g7TUFBRSxDQUNGLENBQUM7SUFFSjtFQUNELENBQUM7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZSxTQUFTQyxxQ0FBcUNBLENBRTNEcEIsZ0JBQTBDLEVBQUVDLFNBQWlCLEVBQUVDLGtCQUEwQixFQUFFO0VBQzVGLE1BQU1tQixTQUFTLEdBQUd0QiwwQ0FBMEMsQ0FBQ0MsZ0JBQWdCLEVBQUVDLFNBQVMsRUFBRUMsa0JBQWtCLENBQUM7RUFDN0csT0FBTyxJQUFBb0IsMEJBQVUsRUFBQ0QsU0FBUyxDQUFDO0FBQzdCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,52 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
3
6
|
exports.default = modelErrorRedirectComponent;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* This component exists as a child to CollectionItemComponent to
|
|
11
|
-
* redirect the user to a 404/500 page if errors occur while fetching data.
|
|
12
|
-
*
|
|
13
|
-
* Nested CollectionItemComponent instances should not
|
|
14
|
-
* use this - they’ll want to handle errors according to the need for
|
|
15
|
-
* alerting the user in the parent.
|
|
16
|
-
*
|
|
17
|
-
* @export
|
|
18
|
-
* @param WrappedComponent Wrapped component that depends on the model. (Usually AsyncComponent)
|
|
19
|
-
* @returns A wrapped component or redirects
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactRouterDom = require("react-router-dom");
|
|
9
|
+
var _modelStatus = require("../../constants/modelStatus");
|
|
10
|
+
var _types = require("../../types");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
/**
|
|
13
|
+
* This component exists as a child to CollectionItemComponent to
|
|
14
|
+
* redirect the user to a 404/500 page if errors occur while fetching data.
|
|
15
|
+
*
|
|
16
|
+
* Nested CollectionItemComponent instances should not
|
|
17
|
+
* use this - they’ll want to handle errors according to the need for
|
|
18
|
+
* alerting the user in the parent.
|
|
19
|
+
*
|
|
20
|
+
* @export
|
|
21
|
+
* @param WrappedComponent Wrapped component that depends on the model. (Usually AsyncComponent)
|
|
22
|
+
* @returns A wrapped component or redirects
|
|
20
23
|
*/
|
|
21
24
|
function modelErrorRedirectComponent(WrappedComponent) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
25
|
+
return class ModelErrorRedirectComponent extends _react.Component {
|
|
26
|
+
render() {
|
|
27
|
+
const {
|
|
28
|
+
model,
|
|
29
|
+
modelStatus,
|
|
30
|
+
previousModelStatus
|
|
31
|
+
} = this.props;
|
|
32
|
+
const notFoundRoute = previousModelStatus === _modelStatus.MODEL_STATUS.UNINITIALIZED && modelStatus === _modelStatus.MODEL_STATUS.ERROR && model._metadata && model._metadata.hasError && model._metadata.lastFetchErrorData && model._metadata.lastFetchErrorData.status === _types.HTTP_STATUS_CODE.NOT_FOUND;
|
|
33
|
+
const errorRoute = previousModelStatus === _modelStatus.MODEL_STATUS.UNINITIALIZED && modelStatus === _modelStatus.MODEL_STATUS.ERROR && model._metadata && model._metadata.hasError && model._metadata.lastFetchErrorData && model._metadata.lastFetchErrorData.status === _types.HTTP_STATUS_CODE.INTERNAL_SERVER_ERROR;
|
|
34
|
+
if (notFoundRoute) {
|
|
35
|
+
const pathname = window.location.pathname;
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Redirect, {
|
|
37
|
+
to: {
|
|
38
|
+
pathname: '/not-found',
|
|
39
|
+
search: `?pathname=${pathname}`
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (errorRoute) {
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Redirect, {
|
|
45
|
+
to: {
|
|
46
|
+
pathname: '/error'
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
|
|
51
|
+
...this.props
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
52
55
|
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0Um91dGVyRG9tIiwiX21vZGVsU3RhdHVzIiwiX3R5cGVzIiwiX2pzeFJ1bnRpbWUiLCJtb2RlbEVycm9yUmVkaXJlY3RDb21wb25lbnQiLCJXcmFwcGVkQ29tcG9uZW50IiwiTW9kZWxFcnJvclJlZGlyZWN0Q29tcG9uZW50IiwiQ29tcG9uZW50IiwicmVuZGVyIiwibW9kZWwiLCJtb2RlbFN0YXR1cyIsInByZXZpb3VzTW9kZWxTdGF0dXMiLCJwcm9wcyIsIm5vdEZvdW5kUm91dGUiLCJNT0RFTF9TVEFUVVMiLCJVTklOSVRJQUxJWkVEIiwiRVJST1IiLCJfbWV0YWRhdGEiLCJoYXNFcnJvciIsImxhc3RGZXRjaEVycm9yRGF0YSIsInN0YXR1cyIsIkhUVFBfU1RBVFVTX0NPREUiLCJOT1RfRk9VTkQiLCJlcnJvclJvdXRlIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwicGF0aG5hbWUiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImpzeCIsIlJlZGlyZWN0IiwidG8iLCJzZWFyY2giXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9IT0MvTW9kZWxFcnJvclJlZGlyZWN0Q29tcG9uZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFR5cGUgfSBmcm9tICdyZWFjdCdcclxuaW1wb3J0IHsgUmVkaXJlY3QgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xyXG5pbXBvcnQgeyBNT0RFTF9TVEFUVVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbW9kZWxTdGF0dXMnXHJcbmltcG9ydCB7IEhUVFBfU1RBVFVTX0NPREUsIE1vZGVsIH0gZnJvbSAnLi4vLi4vdHlwZXMnXHJcbmltcG9ydCB7IENvbGxlY3Rpb25Db21wb25lbnRXcmFwcGVkUHJvcHMgfSBmcm9tICcuL0NvbGxlY3Rpb25Db21wb25lbnQnXHJcbmltcG9ydCB7IENvbGxlY3Rpb25JdGVtQ29tcG9uZW50V3JhcHBlZFByb3BzIH0gZnJvbSAnLi9Db2xsZWN0aW9uSXRlbUNvbXBvbmVudCdcclxuXHJcbi8qKlxyXG4gKiBUaGlzIGNvbXBvbmVudCBleGlzdHMgYXMgYSBjaGlsZCB0byBDb2xsZWN0aW9uSXRlbUNvbXBvbmVudCB0b1xyXG4gKiByZWRpcmVjdCB0aGUgdXNlciB0byBhIDQwNC81MDAgcGFnZSBpZiBlcnJvcnMgb2NjdXIgd2hpbGUgZmV0Y2hpbmcgZGF0YS5cclxuICpcclxuICogTmVzdGVkIENvbGxlY3Rpb25JdGVtQ29tcG9uZW50IGluc3RhbmNlcyBzaG91bGQgbm90XHJcbiAqIHVzZSB0aGlzIC0gdGhleeKAmWxsIHdhbnQgdG8gaGFuZGxlIGVycm9ycyBhY2NvcmRpbmcgdG8gdGhlIG5lZWQgZm9yXHJcbiAqIGFsZXJ0aW5nIHRoZSB1c2VyIGluIHRoZSBwYXJlbnQuXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQHBhcmFtIFdyYXBwZWRDb21wb25lbnQgV3JhcHBlZCBjb21wb25lbnQgdGhhdCBkZXBlbmRzIG9uIHRoZSBtb2RlbC4gKFVzdWFsbHkgQXN5bmNDb21wb25lbnQpXHJcbiAqIEByZXR1cm5zIEEgd3JhcHBlZCBjb21wb25lbnQgb3IgcmVkaXJlY3RzXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb2RlbEVycm9yUmVkaXJlY3RDb21wb25lbnQ8XHJcblx0VE93blByb3BzIGV4dGVuZHMgQ29sbGVjdGlvbkl0ZW1Db21wb25lbnRXcmFwcGVkUHJvcHM8TW9kZWw+IHwgQ29sbGVjdGlvbkNvbXBvbmVudFdyYXBwZWRQcm9wczxNb2RlbD5cclxuPihXcmFwcGVkQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRPd25Qcm9wcz4pIHtcclxuXHRyZXR1cm4gY2xhc3MgTW9kZWxFcnJvclJlZGlyZWN0Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50PFRPd25Qcm9wcz4ge1xyXG5cdFx0cmVuZGVyKCkge1xyXG5cdFx0XHRjb25zdCB7IG1vZGVsLCBtb2RlbFN0YXR1cywgcHJldmlvdXNNb2RlbFN0YXR1cyB9ID0gdGhpcy5wcm9wc1xyXG5cclxuXHRcdFx0Y29uc3Qgbm90Rm91bmRSb3V0ZSA9XHJcblx0XHRcdFx0cHJldmlvdXNNb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLlVOSU5JVElBTElaRUQgJiZcclxuXHRcdFx0XHRtb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLkVSUk9SICYmXHJcblx0XHRcdFx0bW9kZWwuX21ldGFkYXRhICYmXHJcblx0XHRcdFx0bW9kZWwuX21ldGFkYXRhLmhhc0Vycm9yICYmXHJcblx0XHRcdFx0bW9kZWwuX21ldGFkYXRhLmxhc3RGZXRjaEVycm9yRGF0YSAmJlxyXG5cdFx0XHRcdG1vZGVsLl9tZXRhZGF0YS5sYXN0RmV0Y2hFcnJvckRhdGEuc3RhdHVzID09PSBIVFRQX1NUQVRVU19DT0RFLk5PVF9GT1VORFxyXG5cclxuXHRcdFx0Y29uc3QgZXJyb3JSb3V0ZSA9XHJcblx0XHRcdFx0cHJldmlvdXNNb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLlVOSU5JVElBTElaRUQgJiZcclxuXHRcdFx0XHRtb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLkVSUk9SICYmXHJcblx0XHRcdFx0bW9kZWwuX21ldGFkYXRhICYmXHJcblx0XHRcdFx0bW9kZWwuX21ldGFkYXRhLmhhc0Vycm9yICYmXHJcblx0XHRcdFx0bW9kZWwuX21ldGFkYXRhLmxhc3RGZXRjaEVycm9yRGF0YSAmJlxyXG5cdFx0XHRcdG1vZGVsLl9tZXRhZGF0YS5sYXN0RmV0Y2hFcnJvckRhdGEuc3RhdHVzID09PSBIVFRQX1NUQVRVU19DT0RFLklOVEVSTkFMX1NFUlZFUl9FUlJPUlxyXG5cclxuXHRcdFx0aWYgKG5vdEZvdW5kUm91dGUpIHtcclxuXHRcdFx0XHRjb25zdCBwYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZVxyXG5cdFx0XHRcdHJldHVybiAoXHJcblx0XHRcdFx0XHQ8UmVkaXJlY3RcclxuXHRcdFx0XHRcdFx0dG89e3tcclxuXHRcdFx0XHRcdFx0XHRwYXRobmFtZTogJy9ub3QtZm91bmQnLFxyXG5cdFx0XHRcdFx0XHRcdHNlYXJjaDogYD9wYXRobmFtZT0ke3BhdGhuYW1lfWBcclxuXHRcdFx0XHRcdFx0fX1cclxuXHRcdFx0XHRcdC8+XHJcblx0XHRcdFx0KVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChlcnJvclJvdXRlKSB7XHJcblx0XHRcdFx0cmV0dXJuIChcclxuXHRcdFx0XHRcdDxSZWRpcmVjdFxyXG5cdFx0XHRcdFx0XHR0bz17e1xyXG5cdFx0XHRcdFx0XHRcdHBhdGhuYW1lOiAnL2Vycm9yJ1xyXG5cdFx0XHRcdFx0XHR9fVxyXG5cdFx0XHRcdFx0Lz5cclxuXHRcdFx0XHQpXHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIDxXcmFwcGVkQ29tcG9uZW50IHsuLi50aGlzLnByb3BzfSAvPlxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUFxRCxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFJckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsU0FBU0ssMkJBQTJCQSxDQUVqREMsZ0JBQTBDLEVBQUU7RUFDN0MsT0FBTyxNQUFNQywyQkFBMkIsU0FBU0MsZ0JBQVMsQ0FBWTtJQUNyRUMsTUFBTUEsQ0FBQSxFQUFHO01BQ1IsTUFBTTtRQUFFQyxLQUFLO1FBQUVDLFdBQVc7UUFBRUM7TUFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztNQUU5RCxNQUFNQyxhQUFhLEdBQ2xCRixtQkFBbUIsS0FBS0cseUJBQVksQ0FBQ0MsYUFBYSxJQUNsREwsV0FBVyxLQUFLSSx5QkFBWSxDQUFDRSxLQUFLLElBQ2xDUCxLQUFLLENBQUNRLFNBQVMsSUFDZlIsS0FBSyxDQUFDUSxTQUFTLENBQUNDLFFBQVEsSUFDeEJULEtBQUssQ0FBQ1EsU0FBUyxDQUFDRSxrQkFBa0IsSUFDbENWLEtBQUssQ0FBQ1EsU0FBUyxDQUFDRSxrQkFBa0IsQ0FBQ0MsTUFBTSxLQUFLQyx1QkFBZ0IsQ0FBQ0MsU0FBUztNQUV6RSxNQUFNQyxVQUFVLEdBQ2ZaLG1CQUFtQixLQUFLRyx5QkFBWSxDQUFDQyxhQUFhLElBQ2xETCxXQUFXLEtBQUtJLHlCQUFZLENBQUNFLEtBQUssSUFDbENQLEtBQUssQ0FBQ1EsU0FBUyxJQUNmUixLQUFLLENBQUNRLFNBQVMsQ0FBQ0MsUUFBUSxJQUN4QlQsS0FBSyxDQUFDUSxTQUFTLENBQUNFLGtCQUFrQixJQUNsQ1YsS0FBSyxDQUFDUSxTQUFTLENBQUNFLGtCQUFrQixDQUFDQyxNQUFNLEtBQUtDLHVCQUFnQixDQUFDRyxxQkFBcUI7TUFFckYsSUFBSVgsYUFBYSxFQUFFO1FBQ2xCLE1BQU1ZLFFBQVEsR0FBR0MsTUFBTSxDQUFDQyxRQUFRLENBQUNGLFFBQVE7UUFDekMsb0JBQ0MsSUFBQXRCLFdBQUEsQ0FBQXlCLEdBQUEsRUFBQzVCLGVBQUEsQ0FBQTZCLFFBQVE7VUFDUkMsRUFBRSxFQUFFO1lBQ0hMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCTSxNQUFNLEVBQUUsYUFBYU4sUUFBUTtVQUM5QjtRQUFFLENBQ0YsQ0FBQztNQUVKO01BQ0EsSUFBSUYsVUFBVSxFQUFFO1FBQ2Ysb0JBQ0MsSUFBQXBCLFdBQUEsQ0FBQXlCLEdBQUEsRUFBQzVCLGVBQUEsQ0FBQTZCLFFBQVE7VUFDUkMsRUFBRSxFQUFFO1lBQ0hMLFFBQVEsRUFBRTtVQUNYO1FBQUUsQ0FDRixDQUFDO01BRUo7TUFDQSxvQkFBTyxJQUFBdEIsV0FBQSxDQUFBeUIsR0FBQSxFQUFDdkIsZ0JBQWdCO1FBQUEsR0FBSyxJQUFJLENBQUNPO01BQUssQ0FBRyxDQUFDO0lBQzVDO0VBQ0QsQ0FBQztBQUNGIiwiaWdub3JlTGlzdCI6W119
|