studiokit-scaffolding-js 7.0.12-next.1.3 → 7.0.12-next.2.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.js +164 -37
- package/lib/components/AlertDialog.js +128 -12
- package/lib/components/AlertWithIcon.js +88 -29
- package/lib/components/ConnectedModal.js +35 -12
- package/lib/components/Dropdowns/GroupsDropdown.js +63 -45
- package/lib/components/Dropdowns/ManagedNavDropdown.js +92 -67
- package/lib/components/Dropdowns/UserDropdown.js +105 -24
- package/lib/components/Dropdowns/index.js +4 -10
- package/lib/components/EntityOwnerList.js +47 -21
- package/lib/components/Error.js +101 -12
- package/lib/components/ErrorBoundary.js +127 -38
- package/lib/components/ErrorMessage.js +39 -12
- package/lib/components/Forms/DateField.js +56 -45
- package/lib/components/Forms/TimeField.js +76 -45
- package/lib/components/Forms/index.js +3 -5
- package/lib/components/Groups/CreateEditCopySaveButtons.js +109 -14
- package/lib/components/Groups/ExternalGroups/Attach.js +206 -151
- package/lib/components/Groups/ExternalGroups/Table.js +176 -48
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +2 -2
- package/lib/components/Groups/RosterSyncInfo.js +142 -23
- package/lib/components/HOC/AccessibleAppComponent.js +88 -72
- package/lib/components/HOC/ActivityRequiredComponent.js +68 -33
- package/lib/components/HOC/AsyncComponent.js +49 -41
- package/lib/components/HOC/AuthenticatedComponent.js +55 -44
- package/lib/components/HOC/CollectionComponent.js +154 -104
- package/lib/components/HOC/CollectionFirstItemComponent.js +45 -40
- package/lib/components/HOC/CollectionItemComponent.js +152 -100
- package/lib/components/HOC/ConnectedModalComponent.js +87 -69
- package/lib/components/HOC/DataDependentComponent.js +26 -27
- package/lib/components/HOC/EntityComponent.js +57 -53
- package/lib/components/HOC/FullscreenModalComponent.js +139 -108
- package/lib/components/HOC/GroupActivityRequiredComponent.js +27 -20
- package/lib/components/HOC/GuidComponent.js +20 -20
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +32 -29
- package/lib/components/HOC/ModelErrorRedirectComponent.js +37 -39
- package/lib/components/HOC/SearchPersistorComponent.js +237 -173
- package/lib/components/HOC/UnauthenticatedComponent.js +32 -30
- package/lib/components/HOC/UserComponent.js +6 -8
- package/lib/components/Icons/IconAlphaList.js +28 -8
- package/lib/components/Icons/IconExternalUser.js +28 -8
- package/lib/components/Icons/IconImpersonation.js +28 -8
- package/lib/components/Icons/IconStopImpersonating.js +28 -8
- package/lib/components/Icons/IconTable.js +29 -9
- package/lib/components/Icons/IconTableDeleteCol.js +28 -8
- package/lib/components/Icons/IconTableDeleteRow.js +28 -8
- package/lib/components/Icons/IconTableInsertCol.js +28 -8
- package/lib/components/Icons/IconTableInsertRow.js +28 -8
- package/lib/components/Impersonation/Button.js +71 -16
- package/lib/components/Impersonation/Link.js +72 -16
- package/lib/components/Impersonation/UserDetail.js +60 -11
- package/lib/components/Loading.js +23 -8
- package/lib/components/LockDownBrowser/Check.js +188 -51
- package/lib/components/LockDownBrowser/ExitButton.js +22 -13
- package/lib/components/LockDownBrowser/Launch.js +64 -64
- package/lib/components/Lti/Confirm.js +147 -14
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +165 -36
- package/lib/components/Lti/Launch.js +99 -25
- package/lib/components/Lti/LaunchGroup.js +81 -16
- package/lib/components/ManageTable.js +304 -90
- package/lib/components/ManageTableNoDataComponent.js +38 -7
- package/lib/components/NewVersionAlert.js +76 -49
- package/lib/components/NotFound.js +81 -11
- package/lib/components/Notifications.js +179 -129
- package/lib/components/PaginationNextButton.js +28 -9
- package/lib/components/PaginationPreviousButton.js +28 -9
- package/lib/components/Quill/CustomToolbar.js +427 -222
- package/lib/components/Quill/Formats/Image.js +67 -67
- package/lib/components/Quill/Formats/List.js +38 -47
- package/lib/components/Quill/Formats/Video.js +23 -26
- package/lib/components/Quill/ImageDropModule.js +136 -114
- package/lib/components/Quill/ImageWarning.js +41 -12
- package/lib/components/Quill/ImageWithAltTextModal.js +420 -89
- package/lib/components/Quill/Specs/CustomImageSpec.js +32 -31
- package/lib/components/Quill/Specs/CustomVideoSpec.js +22 -23
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +89 -97
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +47 -50
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +48 -51
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +219 -224
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +75 -86
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +70 -73
- package/lib/components/Quill/TableModule/constants.js +40 -42
- package/lib/components/Quill/TableModule/index.js +357 -305
- package/lib/components/Quill/TableModule/utils.js +39 -48
- package/lib/components/Quill/accessibilityFix.js +219 -223
- package/lib/components/Quill/index.js +30 -33
- package/lib/components/RefreshIndicator/Bordered.js +44 -10
- package/lib/components/RefreshIndicator/Inline.js +43 -12
- package/lib/components/RefreshIndicator/index.js +257 -62
- package/lib/components/SearchControls.js +211 -14
- package/lib/components/SentryRoute.js +5 -7
- package/lib/components/Tables/RoleFilter.js +66 -38
- package/lib/components/Tables/TextFilter.js +58 -18
- package/lib/components/UserRoles/Add.js +193 -99
- package/lib/components/UserRoles/Context.js +3 -6
- package/lib/components/UserRoles/RoleCell.js +176 -75
- package/lib/components/UserRoles/Select.js +151 -20
- package/lib/components/UserRoles/Table.js +215 -82
- package/lib/components/UserRoles/index.js +526 -386
- package/lib/config/eslint/index.js +26 -29
- package/lib/config/eslint/lib/order.js +21 -28
- package/lib/config/eslint/lib/prettier.js +15 -19
- package/lib/config/eslint/lib/typescript.js +87 -113
- package/lib/config/eslint/react.js +18 -15
- package/lib/constants/baseActivity.js +26 -28
- package/lib/constants/baseRole.js +10 -12
- package/lib/constants/configuration.js +43 -55
- package/lib/constants/externalProviderType.js +6 -8
- package/lib/constants/fetchErrorData.js +10 -12
- package/lib/constants/index.js +13 -15
- package/lib/constants/lockDownBrowser.js +23 -25
- package/lib/constants/mockData.js +370 -300
- package/lib/constants/modelStatus.js +11 -13
- package/lib/constants/notificationType.js +8 -10
- package/lib/constants/operatingSystem.js +8 -10
- package/lib/constants/shard.js +7 -9
- package/lib/constants/table.js +18 -22
- package/lib/constants/tier.js +8 -10
- package/lib/constants/userRole.js +11 -8
- package/lib/endpointMappings.js +191 -182
- package/lib/hooks/useCollection.js +79 -65
- package/lib/hooks/useCollectionConfiguration.js +220 -80
- package/lib/hooks/useCollectionItem.js +151 -57
- package/lib/hooks/useGuid.js +16 -9
- package/lib/hooks/usePrevious.js +14 -13
- package/lib/index.js +11 -26
- package/lib/redux/actionCreator.js +44 -35
- package/lib/redux/actions/AuthAction.js +45 -32
- package/lib/redux/actions/ModalAction.js +6 -8
- package/lib/redux/actions/ModelAction.js +95 -43
- package/lib/redux/actions/NotificationAction.js +6 -8
- package/lib/redux/actions/SearchAction.js +5 -7
- package/lib/redux/actions/index.js +6 -8
- package/lib/redux/configureReducers.js +48 -46
- package/lib/redux/configureStore.js +77 -91
- package/lib/redux/helpers.js +2 -5
- package/lib/redux/reducers/authReducer.js +44 -43
- package/lib/redux/reducers/index.js +7 -14
- package/lib/redux/reducers/modalsReducer.js +43 -31
- package/lib/redux/reducers/modelsReducer.js +131 -137
- package/lib/redux/reducers/notificationsReducer.js +20 -20
- package/lib/redux/reducers/searchReducer.js +13 -13
- package/lib/redux/sagas/appInsightsSaga.js +19 -21
- package/lib/redux/sagas/authSaga.js +248 -234
- package/lib/redux/sagas/caliperSaga.js +142 -131
- package/lib/redux/sagas/clockOffsetSaga.js +29 -32
- package/lib/redux/sagas/configurationSaga.js +8 -10
- package/lib/redux/sagas/downtimeApiErrorSaga.js +16 -19
- package/lib/redux/sagas/errorSaga.js +23 -24
- package/lib/redux/sagas/googleAnalyticsSaga.js +24 -27
- package/lib/redux/sagas/identityProviderSaga.js +19 -21
- package/lib/redux/sagas/initialDataLoadSaga.js +34 -31
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +25 -22
- package/lib/redux/sagas/modelFetchSaga.js +302 -286
- package/lib/redux/sagas/noStoreSaga.js +60 -61
- package/lib/redux/sagas/postLoginDataSaga.js +37 -32
- package/lib/redux/sagas/postLoginRedirectSaga.js +22 -27
- package/lib/redux/sagas/rootSaga.js +77 -60
- package/lib/redux/sagas/sentrySaga.js +25 -28
- package/lib/redux/sagas/userIdSaga.js +13 -15
- package/lib/services/codeProviderService.js +21 -21
- package/lib/services/dateService.js +6 -8
- package/lib/services/documentService.js +10 -11
- package/lib/services/fetchService.js +103 -95
- package/lib/services/persistenceService.js +27 -30
- package/lib/services/ticketProviderService.js +25 -25
- package/lib/services/tokenPersistenceService.js +8 -10
- package/lib/services/windowService.js +14 -16
- package/lib/startup.js +110 -101
- package/lib/types/AppConfiguration.js +2 -2
- package/lib/types/Artifact.js +7 -9
- package/lib/types/BaseReduxState.js +2 -2
- package/lib/types/Client.js +2 -2
- package/lib/types/Collection.js +2 -2
- package/lib/types/Configuration.js +2 -2
- package/lib/types/DeepLinkingResponseRequest.js +2 -2
- package/lib/types/DeletableModel.js +2 -2
- package/lib/types/Event.js +2 -2
- package/lib/types/ExternalGroup.js +2 -2
- package/lib/types/ExternalProvider.js +2 -2
- package/lib/types/ExternalTerm.js +2 -2
- package/lib/types/Group.js +2 -2
- package/lib/types/IdentityProvider.js +2 -2
- package/lib/types/LtiLaunch.js +2 -2
- package/lib/types/NameOnlyEntity.js +2 -2
- package/lib/types/Notification.js +2 -2
- package/lib/types/OptionalRecord.js +2 -2
- package/lib/types/OwnerSchedule.js +2 -2
- package/lib/types/PropertyOfType.js +2 -2
- package/lib/types/Quill.js +2 -2
- package/lib/types/RoleDescription.js +2 -2
- package/lib/types/Search.js +2 -2
- package/lib/types/SimpleLocation.js +2 -2
- package/lib/types/UniTime.js +2 -2
- package/lib/types/User.js +2 -2
- package/lib/types/UserRole.js +2 -2
- package/lib/types/auth/AuthState.js +2 -2
- package/lib/types/auth/CasV1LoginRequestBody.js +2 -2
- package/lib/types/auth/ClientCredentials.js +2 -2
- package/lib/types/auth/CodeProviderService.js +2 -2
- package/lib/types/auth/LocalLoginRequestBody.js +2 -2
- package/lib/types/auth/TicketProviderService.js +2 -2
- package/lib/types/auth/TokenPersistenceService.js +2 -2
- package/lib/types/auth/index.js +8 -10
- package/lib/types/externals.d.js +2 -0
- package/lib/types/index.js +29 -31
- package/lib/types/net/EndpointConfig.js +2 -2
- package/lib/types/net/EndpointMapping.js +2 -2
- package/lib/types/net/EndpointMappings.js +2 -2
- package/lib/types/net/ErrorHandler.js +2 -2
- package/lib/types/net/FetchConfig.js +2 -2
- package/lib/types/net/FetchErrorData.js +6 -8
- package/lib/types/net/FetchResult.js +2 -2
- package/lib/types/net/HTTPMethod.js +2 -2
- package/lib/types/net/HTTPStatusCode.js +12 -14
- package/lib/types/net/Metadata.js +2 -2
- package/lib/types/net/Model.js +2 -2
- package/lib/types/net/ModelCollection.js +2 -2
- package/lib/types/net/ModelsState.js +2 -2
- package/lib/types/net/OAuthToken.js +2 -2
- package/lib/types/net/OAuthTokenOrNull.js +2 -2
- package/lib/types/net/TokenAccessFunction.js +2 -2
- package/lib/types/net/index.js +17 -19
- package/lib/utils/baseActivity.js +83 -85
- package/lib/utils/baseRole.js +32 -36
- package/lib/utils/collection.js +403 -297
- package/lib/utils/cookies.js +19 -23
- package/lib/utils/date.js +188 -205
- package/lib/utils/dom.js +130 -131
- package/lib/utils/domainIdentifier.js +4 -8
- package/lib/utils/entityUserRole.js +2 -5
- package/lib/utils/error.js +14 -19
- package/lib/utils/events.js +32 -31
- package/lib/utils/externalGroup.js +20 -25
- package/lib/utils/externalProviders.js +4 -7
- package/lib/utils/externalTerms.js +6 -6
- package/lib/utils/fetch.js +168 -176
- package/lib/utils/group.js +14 -11
- package/lib/utils/groupDates.js +38 -46
- package/lib/utils/groupRoles.js +23 -32
- package/lib/utils/lockDownBrowser.js +12 -15
- package/lib/utils/logger.js +23 -28
- package/lib/utils/lti.js +4 -7
- package/lib/utils/model.js +28 -43
- package/lib/utils/number.js +9 -13
- package/lib/utils/promise.js +23 -26
- package/lib/utils/quill.js +55 -60
- package/lib/utils/route.js +52 -60
- package/lib/utils/search.js +72 -87
- package/lib/utils/shard.js +33 -42
- package/lib/utils/sort.js +47 -50
- package/lib/utils/string.js +10 -12
- package/lib/utils/table.js +29 -33
- package/lib/utils/timezone.js +7 -12
- package/lib/utils/url.js +130 -144
- package/lib/utils/user.js +54 -64
- package/lib/utils/userAgent.js +7 -14
- package/lib/utils/userRole.js +36 -39
- package/package.json +17 -3
|
@@ -1,104 +1,153 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import memoizeOne from 'memoize-one';
|
|
3
|
+
import { Component } from 'react';
|
|
4
|
+
import { connect } from 'react-redux';
|
|
5
|
+
import { withRouter } from 'react-router';
|
|
6
|
+
import { MODEL_STATUS } from '../../constants/modelStatus';
|
|
7
|
+
import { cleanupCollectionGuidKey, createItemInCollection, deleteItemFromCollection, handleCollectionParamsChange, initializeCollection, loadCollection, selectCollectionFromState, stopCollectionPeriodicLoad, updateItemInCollection } from '../../utils/collection';
|
|
8
|
+
import { getModelArray, handleModelFetchFinish } from '../../utils/model';
|
|
9
|
+
import { Loading } from '../Loading';
|
|
10
|
+
import { guidComponent } from './GuidComponent';
|
|
11
|
+
|
|
12
|
+
/** The props passed into `CollectionComponent` from the user and other HOCs. */
|
|
13
|
+
|
|
14
|
+
/** The props passed down to the `WrappedComponent`. */
|
|
15
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
+
export function configureCollectionComponent(WrappedComponent) {
|
|
17
|
+
let LoaderComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Loading;
|
|
18
|
+
return class CollectionComponent extends Component {
|
|
19
|
+
constructor(props) {
|
|
20
|
+
var _this;
|
|
21
|
+
super(props);
|
|
22
|
+
_this = this;
|
|
23
|
+
_defineProperty(this, "changeModelStatus", (newModelStatus, fetchingId) => {
|
|
24
|
+
this.setState(prevState => ({
|
|
25
|
+
fetchingId,
|
|
26
|
+
previousModelStatus: prevState.modelStatus,
|
|
27
|
+
modelStatus: newModelStatus
|
|
28
|
+
}));
|
|
29
|
+
});
|
|
30
|
+
_defineProperty(this, "getCollectionMethodConfig", () => {
|
|
31
|
+
const {
|
|
32
|
+
guid,
|
|
33
|
+
modelName,
|
|
34
|
+
pathParams,
|
|
35
|
+
queryParams,
|
|
36
|
+
disableAutoLoad
|
|
37
|
+
} = this.props;
|
|
38
|
+
const {
|
|
39
|
+
modelStatus
|
|
40
|
+
} = this.state;
|
|
41
|
+
const collectionMethodConfig = {
|
|
42
|
+
modelName,
|
|
43
|
+
pathParams,
|
|
44
|
+
queryParams,
|
|
45
|
+
disableAutoLoad,
|
|
46
|
+
guid,
|
|
47
|
+
isInitialized: modelStatus !== MODEL_STATUS.UNINITIALIZED,
|
|
48
|
+
changeModelStatus: this.changeModelStatus
|
|
49
|
+
};
|
|
50
|
+
return collectionMethodConfig;
|
|
51
|
+
});
|
|
52
|
+
_defineProperty(this, "load", function () {
|
|
53
|
+
let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
54
|
+
loadCollection(_this.getCollectionMethodConfig(), params);
|
|
55
|
+
});
|
|
56
|
+
_defineProperty(this, "stopPeriodicLoad", taskId => {
|
|
57
|
+
stopCollectionPeriodicLoad(taskId);
|
|
58
|
+
});
|
|
59
|
+
_defineProperty(this, "create", params => {
|
|
60
|
+
createItemInCollection(this.getCollectionMethodConfig(), params);
|
|
61
|
+
});
|
|
62
|
+
_defineProperty(this, "update", params => {
|
|
63
|
+
updateItemInCollection(this.getCollectionMethodConfig(), params);
|
|
64
|
+
});
|
|
65
|
+
_defineProperty(this, "delete", params => {
|
|
66
|
+
deleteItemFromCollection(this.getCollectionMethodConfig(), params);
|
|
67
|
+
});
|
|
68
|
+
_defineProperty(this, "getModelArray", memoizeOne((model, guid) => getModelArray(model, guid)));
|
|
69
|
+
this.state = {
|
|
70
|
+
// initializing until model is loaded
|
|
71
|
+
modelStatus: MODEL_STATUS.UNINITIALIZED,
|
|
72
|
+
previousModelStatus: MODEL_STATUS.UNINITIALIZED,
|
|
73
|
+
fetchingId: undefined
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
componentDidMount() {
|
|
77
|
+
const {
|
|
78
|
+
model
|
|
79
|
+
} = this.props;
|
|
80
|
+
initializeCollection(model, this.load, this.getCollectionMethodConfig());
|
|
81
|
+
}
|
|
82
|
+
componentDidUpdate(prevProps) {
|
|
83
|
+
const {
|
|
84
|
+
model: prevModel,
|
|
85
|
+
modelName: prevModelName,
|
|
86
|
+
pathParams: prevPathParams,
|
|
87
|
+
queryParams: prevQueryParams
|
|
88
|
+
} = prevProps;
|
|
89
|
+
const {
|
|
90
|
+
model,
|
|
91
|
+
modelName,
|
|
92
|
+
pathParams,
|
|
93
|
+
queryParams,
|
|
94
|
+
disableAutoLoadOnParamsChange
|
|
95
|
+
} = this.props;
|
|
96
|
+
const {
|
|
97
|
+
fetchingId
|
|
98
|
+
} = this.state;
|
|
99
|
+
handleModelFetchFinish(model, prevModel, fetchingId, this.changeModelStatus);
|
|
100
|
+
if (!disableAutoLoadOnParamsChange) {
|
|
101
|
+
handleCollectionParamsChange(modelName, prevModelName, pathParams, prevPathParams, queryParams, prevQueryParams, this.load);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
componentWillUnmount() {
|
|
105
|
+
const {
|
|
106
|
+
model
|
|
107
|
+
} = this.props;
|
|
108
|
+
cleanupCollectionGuidKey(model, this.getCollectionMethodConfig());
|
|
109
|
+
}
|
|
110
|
+
render() {
|
|
111
|
+
const {
|
|
112
|
+
history,
|
|
113
|
+
match,
|
|
114
|
+
location,
|
|
115
|
+
staticContext,
|
|
116
|
+
...otherProps
|
|
117
|
+
} = this.props;
|
|
118
|
+
const {
|
|
119
|
+
modelStatus,
|
|
120
|
+
previousModelStatus,
|
|
121
|
+
fetchingId
|
|
122
|
+
} = this.state;
|
|
123
|
+
if (modelStatus === MODEL_STATUS.UNINITIALIZED) {
|
|
124
|
+
return /*#__PURE__*/_jsx(LoaderComponent, {});
|
|
125
|
+
}
|
|
126
|
+
return /*#__PURE__*/_jsx(WrappedComponent, {
|
|
127
|
+
...otherProps,
|
|
128
|
+
modelArray: this.getModelArray(this.props.model, this.props.guid),
|
|
129
|
+
modelStatus: modelStatus,
|
|
130
|
+
previousModelStatus: previousModelStatus,
|
|
131
|
+
fetchingId: fetchingId,
|
|
132
|
+
load: this.load,
|
|
133
|
+
stopPeriodicLoad: this.stopPeriodicLoad,
|
|
134
|
+
create: this.create,
|
|
135
|
+
update: this.update,
|
|
136
|
+
delete: this.delete
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
};
|
|
91
140
|
}
|
|
92
|
-
const configureMapStateToProps =
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
141
|
+
export const configureMapStateToProps = modelName => (state, ownProps) => {
|
|
142
|
+
return selectCollectionFromState({
|
|
143
|
+
guid: ownProps.guid,
|
|
144
|
+
modelName: ownProps.modelName || modelName,
|
|
145
|
+
pathParams: ownProps.pathParams,
|
|
146
|
+
routeMatchParams: ownProps.match.params,
|
|
147
|
+
state
|
|
148
|
+
});
|
|
100
149
|
};
|
|
101
|
-
|
|
150
|
+
|
|
102
151
|
/**
|
|
103
152
|
* HOC that provides "collection" related functionality, using redux `connect()`, react-router-dom `withRouter()`, and `GuidComponent`.
|
|
104
153
|
*
|
|
@@ -110,9 +159,10 @@ exports.configureMapStateToProps = configureMapStateToProps;
|
|
|
110
159
|
* Can override at render time, e.g. `<C modelName="otherModel" />`.
|
|
111
160
|
* @param LoaderComponent Component to use as the Loader. Defaults to `<Loading />`.
|
|
112
161
|
*/
|
|
113
|
-
function collectionComponent(WrappedComponent, modelName, LoaderComponent) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
162
|
+
export default function collectionComponent(WrappedComponent, modelName, LoaderComponent) {
|
|
163
|
+
const CollectionComponent = configureCollectionComponent(WrappedComponent, LoaderComponent);
|
|
164
|
+
const mapStateToProps = configureMapStateToProps(modelName);
|
|
165
|
+
// @ts-ignore: could not match inferred type from the `connect` HOC
|
|
166
|
+
return withRouter(guidComponent(connect(mapStateToProps)(CollectionComponent)));
|
|
118
167
|
}
|
|
168
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vaXplT25lIiwiQ29tcG9uZW50IiwiY29ubmVjdCIsIndpdGhSb3V0ZXIiLCJNT0RFTF9TVEFUVVMiLCJjbGVhbnVwQ29sbGVjdGlvbkd1aWRLZXkiLCJjcmVhdGVJdGVtSW5Db2xsZWN0aW9uIiwiZGVsZXRlSXRlbUZyb21Db2xsZWN0aW9uIiwiaGFuZGxlQ29sbGVjdGlvblBhcmFtc0NoYW5nZSIsImluaXRpYWxpemVDb2xsZWN0aW9uIiwibG9hZENvbGxlY3Rpb24iLCJzZWxlY3RDb2xsZWN0aW9uRnJvbVN0YXRlIiwic3RvcENvbGxlY3Rpb25QZXJpb2RpY0xvYWQiLCJ1cGRhdGVJdGVtSW5Db2xsZWN0aW9uIiwiZ2V0TW9kZWxBcnJheSIsImhhbmRsZU1vZGVsRmV0Y2hGaW5pc2giLCJMb2FkaW5nIiwiZ3VpZENvbXBvbmVudCIsImpzeCIsIl9qc3giLCJjb25maWd1cmVDb2xsZWN0aW9uQ29tcG9uZW50IiwiV3JhcHBlZENvbXBvbmVudCIsIkxvYWRlckNvbXBvbmVudCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIkNvbGxlY3Rpb25Db21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX3RoaXMiLCJ0aGlzIiwiX2RlZmluZVByb3BlcnR5IiwibmV3TW9kZWxTdGF0dXMiLCJmZXRjaGluZ0lkIiwic2V0U3RhdGUiLCJwcmV2U3RhdGUiLCJwcmV2aW91c01vZGVsU3RhdHVzIiwibW9kZWxTdGF0dXMiLCJndWlkIiwibW9kZWxOYW1lIiwicGF0aFBhcmFtcyIsInF1ZXJ5UGFyYW1zIiwiZGlzYWJsZUF1dG9Mb2FkIiwic3RhdGUiLCJjb2xsZWN0aW9uTWV0aG9kQ29uZmlnIiwiaXNJbml0aWFsaXplZCIsIlVOSU5JVElBTElaRUQiLCJjaGFuZ2VNb2RlbFN0YXR1cyIsInBhcmFtcyIsImdldENvbGxlY3Rpb25NZXRob2RDb25maWciLCJ0YXNrSWQiLCJtb2RlbCIsImNvbXBvbmVudERpZE1vdW50IiwibG9hZCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZNb2RlbCIsInByZXZNb2RlbE5hbWUiLCJwcmV2UGF0aFBhcmFtcyIsInByZXZRdWVyeVBhcmFtcyIsImRpc2FibGVBdXRvTG9hZE9uUGFyYW1zQ2hhbmdlIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW5kZXIiLCJoaXN0b3J5IiwibWF0Y2giLCJsb2NhdGlvbiIsInN0YXRpY0NvbnRleHQiLCJvdGhlclByb3BzIiwibW9kZWxBcnJheSIsInN0b3BQZXJpb2RpY0xvYWQiLCJjcmVhdGUiLCJ1cGRhdGUiLCJkZWxldGUiLCJjb25maWd1cmVNYXBTdGF0ZVRvUHJvcHMiLCJvd25Qcm9wcyIsInJvdXRlTWF0Y2hQYXJhbXMiLCJjb2xsZWN0aW9uQ29tcG9uZW50IiwibWFwU3RhdGVUb1Byb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSE9DL0NvbGxlY3Rpb25Db21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZW1vaXplT25lIGZyb20gJ21lbW9pemUtb25lJ1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRDbGFzcywgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4J1xuaW1wb3J0IHsgUm91dGVDb21wb25lbnRQcm9wcywgd2l0aFJvdXRlciB9IGZyb20gJ3JlYWN0LXJvdXRlcidcbmltcG9ydCB7IE1PREVMX1NUQVRVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9tb2RlbFN0YXR1cydcbmltcG9ydCB7IEJhc2VSZWR1eFN0YXRlLCBDb2xsZWN0aW9uU2VsZWN0b3JNZXRob2RSZXNwb25zZSwgTW9kZWwsIE1vZGVsQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHtcblx0Q29sbGVjdGlvbkNvbW1vblByb3BzLFxuXHRDb2xsZWN0aW9uQ29tbW9uU3RhdGUsXG5cdENvbGxlY3Rpb25DcmVhdGVQYXJhbXMsXG5cdENvbGxlY3Rpb25EZWxldGVQYXJhbXMsXG5cdENvbGxlY3Rpb25EZXJpdmVkUHJvcHMsXG5cdENvbGxlY3Rpb25Mb2FkUGFyYW1zLFxuXHRDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbixcblx0Q29sbGVjdGlvbk1ldGhvZHMsXG5cdENvbGxlY3Rpb25SZWR1eFJlc3BvbnNlLFxuXHRDb2xsZWN0aW9uVXBkYXRlUGFyYW1zXG59IGZyb20gJy4uLy4uL3R5cGVzL0NvbGxlY3Rpb24nXG5pbXBvcnQge1xuXHRjbGVhbnVwQ29sbGVjdGlvbkd1aWRLZXksXG5cdGNyZWF0ZUl0ZW1JbkNvbGxlY3Rpb24sXG5cdGRlbGV0ZUl0ZW1Gcm9tQ29sbGVjdGlvbixcblx0aGFuZGxlQ29sbGVjdGlvblBhcmFtc0NoYW5nZSxcblx0aW5pdGlhbGl6ZUNvbGxlY3Rpb24sXG5cdGxvYWRDb2xsZWN0aW9uLFxuXHRzZWxlY3RDb2xsZWN0aW9uRnJvbVN0YXRlLFxuXHRzdG9wQ29sbGVjdGlvblBlcmlvZGljTG9hZCxcblx0dXBkYXRlSXRlbUluQ29sbGVjdGlvblxufSBmcm9tICcuLi8uLi91dGlscy9jb2xsZWN0aW9uJ1xuaW1wb3J0IHsgZ2V0TW9kZWxBcnJheSwgaGFuZGxlTW9kZWxGZXRjaEZpbmlzaCB9IGZyb20gJy4uLy4uL3V0aWxzL21vZGVsJ1xuaW1wb3J0IHsgTG9hZGluZyB9IGZyb20gJy4uL0xvYWRpbmcnXG5pbXBvcnQgeyBndWlkQ29tcG9uZW50LCBHdWlkQ29tcG9uZW50V3JhcHBlZFByb3BzIH0gZnJvbSAnLi9HdWlkQ29tcG9uZW50J1xuXG4vKiogVGhlIHByb3BzIHBhc3NlZCBpbnRvIGBDb2xsZWN0aW9uQ29tcG9uZW50YCBmcm9tIHRoZSB1c2VyIGFuZCBvdGhlciBIT0NzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uQ29tcG9uZW50UHJvcHM8VE1vZGVsIGV4dGVuZHMgTW9kZWw+XG5cdGV4dGVuZHMgQ29sbGVjdGlvbkNvbW1vblByb3BzLFxuXHRcdEd1aWRDb21wb25lbnRXcmFwcGVkUHJvcHMsXG5cdFx0Um91dGVDb21wb25lbnRQcm9wcyxcblx0XHRDb2xsZWN0aW9uUmVkdXhSZXNwb25zZTxUTW9kZWw+IHt9XG5cbi8qKiBUaGUgcHJvcHMgcGFzc2VkIGRvd24gdG8gdGhlIGBXcmFwcGVkQ29tcG9uZW50YC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbkNvbXBvbmVudFdyYXBwZWRQcm9wczxUTW9kZWwgZXh0ZW5kcyBNb2RlbD5cblx0ZXh0ZW5kcyBPbWl0PENvbGxlY3Rpb25Db21wb25lbnRQcm9wczxUTW9kZWw+LCBrZXlvZiBSb3V0ZUNvbXBvbmVudFByb3BzPixcblx0XHRDb2xsZWN0aW9uRGVyaXZlZFByb3BzPFRNb2RlbD4sXG5cdFx0Q29sbGVjdGlvbk1ldGhvZHMsXG5cdFx0Q29sbGVjdGlvbkNvbW1vblN0YXRlIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVDb2xsZWN0aW9uQ29tcG9uZW50PFRNb2RlbCBleHRlbmRzIE1vZGVsLCBUT3duUHJvcHMgZXh0ZW5kcyBvYmplY3Q+KFxuXHRXcmFwcGVkQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRPd25Qcm9wcyAmIENvbGxlY3Rpb25Db21wb25lbnRXcmFwcGVkUHJvcHM8VE1vZGVsPj4sXG5cdExvYWRlckNvbXBvbmVudDogQ29tcG9uZW50VHlwZSA9IExvYWRpbmdcbikge1xuXHR0eXBlIEhvY1Byb3BzID0gVE93blByb3BzICYgQ29sbGVjdGlvbkNvbXBvbmVudFByb3BzPFRNb2RlbD5cblxuXHRyZXR1cm4gY2xhc3MgQ29sbGVjdGlvbkNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudDxIb2NQcm9wcywgQ29sbGVjdGlvbkNvbW1vblN0YXRlPiBpbXBsZW1lbnRzIENvbGxlY3Rpb25NZXRob2RzIHtcblx0XHRjb25zdHJ1Y3Rvcihwcm9wczogSG9jUHJvcHMpIHtcblx0XHRcdHN1cGVyKHByb3BzKVxuXHRcdFx0dGhpcy5zdGF0ZSA9IHtcblx0XHRcdFx0Ly8gaW5pdGlhbGl6aW5nIHVudGlsIG1vZGVsIGlzIGxvYWRlZFxuXHRcdFx0XHRtb2RlbFN0YXR1czogTU9ERUxfU1RBVFVTLlVOSU5JVElBTElaRUQsXG5cdFx0XHRcdHByZXZpb3VzTW9kZWxTdGF0dXM6IE1PREVMX1NUQVRVUy5VTklOSVRJQUxJWkVELFxuXHRcdFx0XHRmZXRjaGluZ0lkOiB1bmRlZmluZWRcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb21wb25lbnREaWRNb3VudCgpIHtcblx0XHRcdGNvbnN0IHsgbW9kZWwgfSA9IHRoaXMucHJvcHNcblx0XHRcdGluaXRpYWxpemVDb2xsZWN0aW9uKG1vZGVsLCB0aGlzLmxvYWQsIHRoaXMuZ2V0Q29sbGVjdGlvbk1ldGhvZENvbmZpZygpKVxuXHRcdH1cblxuXHRcdGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IEhvY1Byb3BzKSB7XG5cdFx0XHRjb25zdCB7XG5cdFx0XHRcdG1vZGVsOiBwcmV2TW9kZWwsXG5cdFx0XHRcdG1vZGVsTmFtZTogcHJldk1vZGVsTmFtZSxcblx0XHRcdFx0cGF0aFBhcmFtczogcHJldlBhdGhQYXJhbXMsXG5cdFx0XHRcdHF1ZXJ5UGFyYW1zOiBwcmV2UXVlcnlQYXJhbXNcblx0XHRcdH0gPSBwcmV2UHJvcHNcblx0XHRcdGNvbnN0IHsgbW9kZWwsIG1vZGVsTmFtZSwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGRpc2FibGVBdXRvTG9hZE9uUGFyYW1zQ2hhbmdlIH0gPSB0aGlzLnByb3BzXG5cdFx0XHRjb25zdCB7IGZldGNoaW5nSWQgfSA9IHRoaXMuc3RhdGVcblx0XHRcdGhhbmRsZU1vZGVsRmV0Y2hGaW5pc2gobW9kZWwsIHByZXZNb2RlbCwgZmV0Y2hpbmdJZCwgdGhpcy5jaGFuZ2VNb2RlbFN0YXR1cylcblx0XHRcdGlmICghZGlzYWJsZUF1dG9Mb2FkT25QYXJhbXNDaGFuZ2UpIHtcblx0XHRcdFx0aGFuZGxlQ29sbGVjdGlvblBhcmFtc0NoYW5nZShcblx0XHRcdFx0XHRtb2RlbE5hbWUsXG5cdFx0XHRcdFx0cHJldk1vZGVsTmFtZSxcblx0XHRcdFx0XHRwYXRoUGFyYW1zLFxuXHRcdFx0XHRcdHByZXZQYXRoUGFyYW1zLFxuXHRcdFx0XHRcdHF1ZXJ5UGFyYW1zLFxuXHRcdFx0XHRcdHByZXZRdWVyeVBhcmFtcyxcblx0XHRcdFx0XHR0aGlzLmxvYWRcblx0XHRcdFx0KVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuXHRcdFx0Y29uc3QgeyBtb2RlbCB9ID0gdGhpcy5wcm9wc1xuXHRcdFx0Y2xlYW51cENvbGxlY3Rpb25HdWlkS2V5KG1vZGVsLCB0aGlzLmdldENvbGxlY3Rpb25NZXRob2RDb25maWcoKSlcblx0XHR9XG5cblx0XHRjaGFuZ2VNb2RlbFN0YXR1cyA9IChuZXdNb2RlbFN0YXR1czogTU9ERUxfU1RBVFVTLCBmZXRjaGluZ0lkPzogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHByZXZTdGF0ZSA9PiAoe1xuXHRcdFx0XHRmZXRjaGluZ0lkLFxuXHRcdFx0XHRwcmV2aW91c01vZGVsU3RhdHVzOiBwcmV2U3RhdGUubW9kZWxTdGF0dXMsXG5cdFx0XHRcdG1vZGVsU3RhdHVzOiBuZXdNb2RlbFN0YXR1c1xuXHRcdFx0fSkpXG5cdFx0fVxuXG5cdFx0Z2V0Q29sbGVjdGlvbk1ldGhvZENvbmZpZyA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHsgZ3VpZCwgbW9kZWxOYW1lLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgZGlzYWJsZUF1dG9Mb2FkIH0gPSB0aGlzLnByb3BzXG5cdFx0XHRjb25zdCB7IG1vZGVsU3RhdHVzIH0gPSB0aGlzLnN0YXRlXG5cdFx0XHRjb25zdCBjb2xsZWN0aW9uTWV0aG9kQ29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbiA9IHtcblx0XHRcdFx0bW9kZWxOYW1lLFxuXHRcdFx0XHRwYXRoUGFyYW1zLFxuXHRcdFx0XHRxdWVyeVBhcmFtcyxcblx0XHRcdFx0ZGlzYWJsZUF1dG9Mb2FkLFxuXHRcdFx0XHRndWlkLFxuXHRcdFx0XHRpc0luaXRpYWxpemVkOiBtb2RlbFN0YXR1cyAhPT0gTU9ERUxfU1RBVFVTLlVOSU5JVElBTElaRUQsXG5cdFx0XHRcdGNoYW5nZU1vZGVsU3RhdHVzOiB0aGlzLmNoYW5nZU1vZGVsU3RhdHVzXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29sbGVjdGlvbk1ldGhvZENvbmZpZ1xuXHRcdH1cblxuXHRcdGxvYWQgPSAocGFyYW1zOiBDb2xsZWN0aW9uTG9hZFBhcmFtcyA9IHt9KSA9PiB7XG5cdFx0XHRsb2FkQ29sbGVjdGlvbih0aGlzLmdldENvbGxlY3Rpb25NZXRob2RDb25maWcoKSwgcGFyYW1zKVxuXHRcdH1cblxuXHRcdHN0b3BQZXJpb2RpY0xvYWQgPSAodGFza0lkOiBzdHJpbmcpID0+IHtcblx0XHRcdHN0b3BDb2xsZWN0aW9uUGVyaW9kaWNMb2FkKHRhc2tJZClcblx0XHR9XG5cblx0XHRjcmVhdGUgPSAocGFyYW1zOiBDb2xsZWN0aW9uQ3JlYXRlUGFyYW1zKSA9PiB7XG5cdFx0XHRjcmVhdGVJdGVtSW5Db2xsZWN0aW9uKHRoaXMuZ2V0Q29sbGVjdGlvbk1ldGhvZENvbmZpZygpLCBwYXJhbXMpXG5cdFx0fVxuXG5cdFx0dXBkYXRlID0gKHBhcmFtczogQ29sbGVjdGlvblVwZGF0ZVBhcmFtcykgPT4ge1xuXHRcdFx0dXBkYXRlSXRlbUluQ29sbGVjdGlvbih0aGlzLmdldENvbGxlY3Rpb25NZXRob2RDb25maWcoKSwgcGFyYW1zKVxuXHRcdH1cblxuXHRcdGRlbGV0ZSA9IChwYXJhbXM6IENvbGxlY3Rpb25EZWxldGVQYXJhbXMpID0+IHtcblx0XHRcdGRlbGV0ZUl0ZW1Gcm9tQ29sbGVjdGlvbih0aGlzLmdldENvbGxlY3Rpb25NZXRob2RDb25maWcoKSwgcGFyYW1zKVxuXHRcdH1cblxuXHRcdGdldE1vZGVsQXJyYXkgPSBtZW1vaXplT25lKChtb2RlbDogTW9kZWxDb2xsZWN0aW9uPFRNb2RlbD4sIGd1aWQ/OiBzdHJpbmcpID0+IGdldE1vZGVsQXJyYXkobW9kZWwsIGd1aWQpKVxuXG5cdFx0cmVuZGVyKCkge1xuXHRcdFx0Y29uc3QgeyBoaXN0b3J5LCBtYXRjaCwgbG9jYXRpb24sIHN0YXRpY0NvbnRleHQsIC4uLm90aGVyUHJvcHMgfSA9IHRoaXMucHJvcHNcblx0XHRcdGNvbnN0IHsgbW9kZWxTdGF0dXMsIHByZXZpb3VzTW9kZWxTdGF0dXMsIGZldGNoaW5nSWQgfSA9IHRoaXMuc3RhdGVcblxuXHRcdFx0aWYgKG1vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuVU5JTklUSUFMSVpFRCkge1xuXHRcdFx0XHRyZXR1cm4gPExvYWRlckNvbXBvbmVudCAvPlxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8V3JhcHBlZENvbXBvbmVudFxuXHRcdFx0XHRcdHsuLi4ob3RoZXJQcm9wcyBhcyBUT3duUHJvcHMgJiBPbWl0PENvbGxlY3Rpb25Db21wb25lbnRQcm9wczxUTW9kZWw+LCBrZXlvZiBSb3V0ZUNvbXBvbmVudFByb3BzPil9XG5cdFx0XHRcdFx0bW9kZWxBcnJheT17dGhpcy5nZXRNb2RlbEFycmF5KHRoaXMucHJvcHMubW9kZWwsIHRoaXMucHJvcHMuZ3VpZCl9XG5cdFx0XHRcdFx0bW9kZWxTdGF0dXM9e21vZGVsU3RhdHVzfVxuXHRcdFx0XHRcdHByZXZpb3VzTW9kZWxTdGF0dXM9e3ByZXZpb3VzTW9kZWxTdGF0dXN9XG5cdFx0XHRcdFx0ZmV0Y2hpbmdJZD17ZmV0Y2hpbmdJZH1cblx0XHRcdFx0XHRsb2FkPXt0aGlzLmxvYWR9XG5cdFx0XHRcdFx0c3RvcFBlcmlvZGljTG9hZD17dGhpcy5zdG9wUGVyaW9kaWNMb2FkfVxuXHRcdFx0XHRcdGNyZWF0ZT17dGhpcy5jcmVhdGV9XG5cdFx0XHRcdFx0dXBkYXRlPXt0aGlzLnVwZGF0ZX1cblx0XHRcdFx0XHRkZWxldGU9e3RoaXMuZGVsZXRlfVxuXHRcdFx0XHQvPlxuXHRcdFx0KVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY29uc3QgY29uZmlndXJlTWFwU3RhdGVUb1Byb3BzID1cblx0PFRNb2RlbCBleHRlbmRzIE1vZGVsPihtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0KFxuXHRcdHN0YXRlOiBCYXNlUmVkdXhTdGF0ZSxcblx0XHRvd25Qcm9wczogT21pdDxDb2xsZWN0aW9uQ29tcG9uZW50UHJvcHM8VE1vZGVsPiwga2V5b2YgQ29sbGVjdGlvblNlbGVjdG9yTWV0aG9kUmVzcG9uc2U8VE1vZGVsPj4gJlxuXHRcdFx0UGFydGlhbDxDb2xsZWN0aW9uQ29tbW9uUHJvcHM+XG5cdCkgPT4ge1xuXHRcdHJldHVybiBzZWxlY3RDb2xsZWN0aW9uRnJvbVN0YXRlKHtcblx0XHRcdGd1aWQ6IG93blByb3BzLmd1aWQsXG5cdFx0XHRtb2RlbE5hbWU6IG93blByb3BzLm1vZGVsTmFtZSB8fCBtb2RlbE5hbWUsXG5cdFx0XHRwYXRoUGFyYW1zOiBvd25Qcm9wcy5wYXRoUGFyYW1zLFxuXHRcdFx0cm91dGVNYXRjaFBhcmFtczogb3duUHJvcHMubWF0Y2gucGFyYW1zLFxuXHRcdFx0c3RhdGVcblx0XHR9KVxuXHR9XG5cbi8qKlxuICogSE9DIHRoYXQgcHJvdmlkZXMgXCJjb2xsZWN0aW9uXCIgcmVsYXRlZCBmdW5jdGlvbmFsaXR5LCB1c2luZyByZWR1eCBgY29ubmVjdCgpYCwgcmVhY3Qtcm91dGVyLWRvbSBgd2l0aFJvdXRlcigpYCwgYW5kIGBHdWlkQ29tcG9uZW50YC5cbiAqXG4gKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiBtb2RlbCB0aGF0IGlzIGluIHRoaXMgY29sbGVjdGlvbi5cbiAqXG4gKiBAcGFyYW0gV3JhcHBlZENvbXBvbmVudCBUaGUgY29tcG9uZW50IHRvIHdyYXAuXG4gKiBAcGFyYW0gbW9kZWxOYW1lIFRoZSBnZW5lcmljIHBhdGggKG5vIElkcykgdG8gd2hlcmUgdGhlIGNvbGxlY3Rpb24gaXMgc3RvcmVkIGluIHJlZHV4LlxuICogQSBwYXRoIHJlbGF0aW5nIHRvIGFuIGl0ZW0gaW4gZGVmaW5lZCBpbiBgY29uc3RhbnRzL2NvbmZpZ3VyYXRpb24vZ2V0RW5kcG9pbnRNYXBwaW5ncygpYCAobGV2ZWxzIHNlcGFyYXRlZCBieSBhICcuJykuXG4gKiBDYW4gb3ZlcnJpZGUgYXQgcmVuZGVyIHRpbWUsIGUuZy4gYDxDIG1vZGVsTmFtZT1cIm90aGVyTW9kZWxcIiAvPmAuXG4gKiBAcGFyYW0gTG9hZGVyQ29tcG9uZW50IENvbXBvbmVudCB0byB1c2UgYXMgdGhlIExvYWRlci4gRGVmYXVsdHMgdG8gYDxMb2FkaW5nIC8+YC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29sbGVjdGlvbkNvbXBvbmVudDxcblx0VE1vZGVsIGV4dGVuZHMgTW9kZWwsXG5cdFRPd25Qcm9wcyBleHRlbmRzIENvbGxlY3Rpb25Db21wb25lbnRXcmFwcGVkUHJvcHM8VE1vZGVsPlxuPihcblx0V3JhcHBlZENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUT3duUHJvcHM+LFxuXHRtb2RlbE5hbWU6IHN0cmluZyxcblx0TG9hZGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZVxuKTogQ29tcG9uZW50Q2xhc3M8T21pdDxUT3duUHJvcHMsIGtleW9mIENvbGxlY3Rpb25Db21wb25lbnRXcmFwcGVkUHJvcHM8VE1vZGVsPj4gJiBQYXJ0aWFsPENvbGxlY3Rpb25Db21tb25Qcm9wcz4+IHtcblx0Y29uc3QgQ29sbGVjdGlvbkNvbXBvbmVudCA9IGNvbmZpZ3VyZUNvbGxlY3Rpb25Db21wb25lbnQoV3JhcHBlZENvbXBvbmVudCwgTG9hZGVyQ29tcG9uZW50KVxuXHRjb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSBjb25maWd1cmVNYXBTdGF0ZVRvUHJvcHMobW9kZWxOYW1lKVxuXHQvLyBAdHMtaWdub3JlOiBjb3VsZCBub3QgbWF0Y2ggaW5mZXJyZWQgdHlwZSBmcm9tIHRoZSBgY29ubmVjdGAgSE9DXG5cdHJldHVybiB3aXRoUm91dGVyKGd1aWRDb21wb25lbnQoY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKENvbGxl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
|
|
@@ -1,46 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const react_1 = require("react");
|
|
9
|
-
const model_1 = require("../../utils/model");
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import memoizeOne from 'memoize-one';
|
|
3
|
+
import { Component } from 'react';
|
|
4
|
+
import { getModelArray, getModelMinusRelations } from '../../utils/model';
|
|
5
|
+
|
|
6
|
+
/** The props passed into `WrappedComponent`. */
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
8
|
/**
|
|
11
9
|
* HOC meant to pass the first collection item to the wrapped component as its model.
|
|
12
10
|
* Should be wrapped in `CollectionComponent`.
|
|
13
11
|
*/
|
|
14
|
-
function configureCollectionFirstItemComponent(WrappedComponent) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
12
|
+
export function configureCollectionFirstItemComponent(WrappedComponent) {
|
|
13
|
+
return class CollectionFirstItemComponent extends Component {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
_defineProperty(this, "getModelArray", memoizeOne((model, guid) => getModelArray(model, guid)));
|
|
17
|
+
_defineProperty(this, "getModelMinusRelations", memoizeOne(model => getModelMinusRelations(model)));
|
|
18
|
+
_defineProperty(this, "getFirstItem", () => {
|
|
19
|
+
const {
|
|
20
|
+
model,
|
|
21
|
+
guid
|
|
22
|
+
} = this.props;
|
|
23
|
+
const modelArray = this.getModelArray(model, guid);
|
|
24
|
+
const singleItem = modelArray.length > 0 ? modelArray[0] : model[guid] ? model[guid] : {};
|
|
25
|
+
return singleItem;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
const {
|
|
30
|
+
pathParams
|
|
31
|
+
} = this.props;
|
|
32
|
+
const firstItem = this.getFirstItem();
|
|
33
|
+
const modelMinusRelations = this.getModelMinusRelations(firstItem);
|
|
34
|
+
const p = [...pathParams];
|
|
35
|
+
if (firstItem.id) {
|
|
36
|
+
p.push(firstItem.id);
|
|
37
|
+
}
|
|
38
|
+
return /*#__PURE__*/_jsx(WrappedComponent, {
|
|
39
|
+
...this.props,
|
|
40
|
+
pathParams: p,
|
|
41
|
+
model: firstItem,
|
|
42
|
+
modelMinusRelations: modelMinusRelations
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
};
|
|
42
46
|
}
|
|
43
|
-
function collectionFirstItemComponent(wrappedComponent) {
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
export default function collectionFirstItemComponent(wrappedComponent) {
|
|
48
|
+
// @ts-ignore: Could not match inferred type from HOC
|
|
49
|
+
return configureCollectionFirstItemComponent(wrappedComponent);
|
|
46
50
|
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vaXplT25lIiwiQ29tcG9uZW50IiwiZ2V0TW9kZWxBcnJheSIsImdldE1vZGVsTWludXNSZWxhdGlvbnMiLCJqc3giLCJfanN4IiwiY29uZmlndXJlQ29sbGVjdGlvbkZpcnN0SXRlbUNvbXBvbmVudCIsIldyYXBwZWRDb21wb25lbnQiLCJDb2xsZWN0aW9uRmlyc3RJdGVtQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJtb2RlbCIsImd1aWQiLCJwcm9wcyIsIm1vZGVsQXJyYXkiLCJzaW5nbGVJdGVtIiwibGVuZ3RoIiwicmVuZGVyIiwicGF0aFBhcmFtcyIsImZpcnN0SXRlbSIsImdldEZpcnN0SXRlbSIsIm1vZGVsTWludXNSZWxhdGlvbnMiLCJwIiwiaWQiLCJwdXNoIiwiY29sbGVjdGlvbkZpcnN0SXRlbUNvbXBvbmVudCIsIndyYXBwZWRDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9IT0MvQ29sbGVjdGlvbkZpcnN0SXRlbUNvbXBvbmVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1lbW9pemVPbmUgZnJvbSAnbWVtb2l6ZS1vbmUnXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudENsYXNzLCBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb2xsZWN0aW9uSXRlbURlcml2ZWRQcm9wcywgQ29sbGVjdGlvbkl0ZW1SZWR1eFJlc3BvbnNlLCBNb2RlbCwgTW9kZWxDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRNb2RlbEFycmF5LCBnZXRNb2RlbE1pbnVzUmVsYXRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbW9kZWwnXG5pbXBvcnQgeyBDb2xsZWN0aW9uQ29tcG9uZW50V3JhcHBlZFByb3BzIH0gZnJvbSAnLi9Db2xsZWN0aW9uQ29tcG9uZW50J1xuXG4vKiogVGhlIHByb3BzIHBhc3NlZCBpbnRvIGBXcmFwcGVkQ29tcG9uZW50YC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbkZpcnN0SXRlbUNvbXBvbmVudFdyYXBwZWRQcm9wczxUTW9kZWwgZXh0ZW5kcyBNb2RlbD5cblx0ZXh0ZW5kcyBPbWl0PENvbGxlY3Rpb25Db21wb25lbnRXcmFwcGVkUHJvcHM8VE1vZGVsPiwgJ21vZGVsJz4sXG5cdFx0Q29sbGVjdGlvbkl0ZW1SZWR1eFJlc3BvbnNlPFRNb2RlbD4sXG5cdFx0Q29sbGVjdGlvbkl0ZW1EZXJpdmVkUHJvcHM8VE1vZGVsPiB7fVxuXG4vKipcbiAqIEhPQyBtZWFudCB0byBwYXNzIHRoZSBmaXJzdCBjb2xsZWN0aW9uIGl0ZW0gdG8gdGhlIHdyYXBwZWQgY29tcG9uZW50IGFzIGl0cyBtb2RlbC5cbiAqIFNob3VsZCBiZSB3cmFwcGVkIGluIGBDb2xsZWN0aW9uQ29tcG9uZW50YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZUNvbGxlY3Rpb25GaXJzdEl0ZW1Db21wb25lbnQ8VE1vZGVsIGV4dGVuZHMgTW9kZWwsIFRPd25Qcm9wcyBleHRlbmRzIG9iamVjdD4oXG5cdFdyYXBwZWRDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VE93blByb3BzICYgQ29sbGVjdGlvbkZpcnN0SXRlbUNvbXBvbmVudFdyYXBwZWRQcm9wczxUTW9kZWw+PlxuKSB7XG5cdHJldHVybiBjbGFzcyBDb2xsZWN0aW9uRmlyc3RJdGVtQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50PFRPd25Qcm9wcyAmIENvbGxlY3Rpb25Db21wb25lbnRXcmFwcGVkUHJvcHM8VE1vZGVsPj4ge1xuXHRcdGdldE1vZGVsQXJyYXkgPSBtZW1vaXplT25lKChtb2RlbDogTW9kZWxDb2xsZWN0aW9uPFRNb2RlbD4sIGd1aWQ/OiBzdHJpbmcpID0+IGdldE1vZGVsQXJyYXkobW9kZWwsIGd1aWQpKVxuXG5cdFx0Z2V0TW9kZWxNaW51c1JlbGF0aW9ucyA9IG1lbW9pemVPbmUoKG1vZGVsOiBUTW9kZWwpID0+IGdldE1vZGVsTWludXNSZWxhdGlvbnMobW9kZWwpKVxuXG5cdFx0Z2V0Rmlyc3RJdGVtID0gKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyBtb2RlbCwgZ3VpZCB9ID0gdGhpcy5wcm9wc1xuXHRcdFx0Y29uc3QgbW9kZWxBcnJheSA9IHRoaXMuZ2V0TW9kZWxBcnJheShtb2RlbCwgZ3VpZClcblx0XHRcdGNvbnN0IHNpbmdsZUl0ZW0gPVxuXHRcdFx0XHRtb2RlbEFycmF5Lmxlbmd0aCA+IDBcblx0XHRcdFx0XHQ/IG1vZGVsQXJyYXlbMF1cblx0XHRcdFx0XHQ6IG1vZGVsW2d1aWRdXG5cdFx0XHRcdFx0XHQ/IChtb2RlbFtndWlkXSBhcyB1bmtub3duIGFzIFRNb2RlbClcblx0XHRcdFx0XHRcdDogKHt9IGFzIFRNb2RlbClcblx0XHRcdHJldHVybiBzaW5nbGVJdGVtXG5cdFx0fVxuXG5cdFx0cmVuZGVyKCkge1xuXHRcdFx0Y29uc3QgeyBwYXRoUGFyYW1zIH0gPSB0aGlzLnByb3BzXG5cdFx0XHRjb25zdCBmaXJzdEl0ZW0gPSB0aGlzLmdldEZpcnN0SXRlbSgpXG5cdFx0XHRjb25zdCBtb2RlbE1pbnVzUmVsYXRpb25zID0gdGhpcy5nZXRNb2RlbE1pbnVzUmVsYXRpb25zKGZpcnN0SXRlbSlcblx0XHRcdGNvbnN0IHA6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gPSBbLi4ucGF0aFBhcmFtc11cblx0XHRcdGlmIChmaXJzdEl0ZW0uaWQpIHtcblx0XHRcdFx0cC5wdXNoKGZpcnN0SXRlbS5pZClcblx0XHRcdH1cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxXcmFwcGVkQ29tcG9uZW50XG5cdFx0XHRcdFx0ey4uLnRoaXMucHJvcHN9XG5cdFx0XHRcdFx0cGF0aFBhcmFtcz17cH1cblx0XHRcdFx0XHRtb2RlbD17Zmlyc3RJdGVtfVxuXHRcdFx0XHRcdG1vZGVsTWludXNSZWxhdGlvbnM9e21vZGVsTWludXNSZWxhdGlvbnN9XG5cdFx0XHRcdC8+XG5cdFx0XHQpXG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbGxlY3Rpb25GaXJzdEl0ZW1Db21wb25lbnQ8XG5cdFRNb2RlbCBleHRlbmRzIE1vZGVsLFxuXHRUT3duUHJvcHMgZXh0ZW5kcyBDb2xsZWN0aW9uRmlyc3RJdGVtQ29tcG9uZW50V3JhcHBlZFByb3BzPFRNb2RlbD5cbj4oXG5cdHdyYXBwZWRDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VE93blByb3BzPlxuKTogQ29tcG9uZW50Q2xhc3M8XG5cdE9taXQ8VE93blByb3BzLCBrZXlvZiBDb2xsZWN0aW9uRmlyc3RJdGVtQ29tcG9uZW50V3JhcHBlZFByb3BzPFRNb2RlbD4+ICYgQ29sbGVjdGlvbkNvbXBvbmVudFdyYXBwZWRQcm9wczxUTW9kZWw+XG4+IHtcblx0Ly8gQHRzLWlnbm9yZTogQ291bGQgbm90IG1hdGNoIGluZmVycmVkIHR5cGUgZnJvbSBIT0Ncblx0cmV0dXJuIGNvbmZpZ3VyZUNvbGxlY3Rpb25GaXJzdEl0ZW1Db21wb25lbnQod3JhcHBlZENvbXBvbmVudClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLFVBQVUsTUFBTSxhQUFhO0FBQ3BDLFNBQVNDLFNBQVMsUUFBdUMsT0FBTztBQUVoRSxTQUFTQyxhQUFhLEVBQUVDLHNCQUFzQixRQUFRLG1CQUFtQjs7QUFHekU7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0MscUNBQXFDQSxDQUNwREMsZ0JBQTZGLEVBQzVGO0VBQ0QsT0FBTyxNQUFNQyw0QkFBNEIsU0FBU1AsU0FBUyxDQUFzRDtJQUFBUSxZQUFBO01BQUEsU0FBQUMsU0FBQTtNQUFBQyxlQUFBLHdCQUNoR1gsVUFBVSxDQUFDLENBQUNZLEtBQThCLEVBQUVDLElBQWEsS0FBS1gsYUFBYSxDQUFDVSxLQUFLLEVBQUVDLElBQUksQ0FBQyxDQUFDO01BQUFGLGVBQUEsaUNBRWhGWCxVQUFVLENBQUVZLEtBQWEsSUFBS1Qsc0JBQXNCLENBQUNTLEtBQUssQ0FBQyxDQUFDO01BQUFELGVBQUEsdUJBRXRFLE1BQU07UUFDcEIsTUFBTTtVQUFFQyxLQUFLO1VBQUVDO1FBQUssQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztRQUNsQyxNQUFNQyxVQUFVLEdBQUcsSUFBSSxDQUFDYixhQUFhLENBQUNVLEtBQUssRUFBRUMsSUFBSSxDQUFDO1FBQ2xELE1BQU1HLFVBQVUsR0FDZkQsVUFBVSxDQUFDRSxNQUFNLEdBQUcsQ0FBQyxHQUNsQkYsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUNiSCxLQUFLLENBQUNDLElBQUksQ0FBQyxHQUNURCxLQUFLLENBQUNDLElBQUksQ0FBQyxHQUNYLENBQUMsQ0FBWTtRQUNuQixPQUFPRyxVQUFVO01BQ2xCLENBQUM7SUFBQTtJQUVERSxNQUFNQSxDQUFBLEVBQUc7TUFDUixNQUFNO1FBQUVDO01BQVcsQ0FBQyxHQUFHLElBQUksQ0FBQ0wsS0FBSztNQUNqQyxNQUFNTSxTQUFTLEdBQUcsSUFBSSxDQUFDQyxZQUFZLENBQUMsQ0FBQztNQUNyQyxNQUFNQyxtQkFBbUIsR0FBRyxJQUFJLENBQUNuQixzQkFBc0IsQ0FBQ2lCLFNBQVMsQ0FBQztNQUNsRSxNQUFNRyxDQUF5QixHQUFHLENBQUMsR0FBR0osVUFBVSxDQUFDO01BQ2pELElBQUlDLFNBQVMsQ0FBQ0ksRUFBRSxFQUFFO1FBQ2pCRCxDQUFDLENBQUNFLElBQUksQ0FBQ0wsU0FBUyxDQUFDSSxFQUFFLENBQUM7TUFDckI7TUFDQSxvQkFDQ25CLElBQUEsQ0FBQ0UsZ0JBQWdCO1FBQUEsR0FDWixJQUFJLENBQUNPLEtBQUs7UUFDZEssVUFBVSxFQUFFSSxDQUFFO1FBQ2RYLEtBQUssRUFBRVEsU0FBVTtRQUNqQkUsbUJBQW1CLEVBQUVBO01BQW9CLENBQ3pDLENBQUM7SUFFSjtFQUNELENBQUM7QUFDRjtBQUVBLGVBQWUsU0FBU0ksNEJBQTRCQSxDQUluREMsZ0JBQTBDLEVBR3pDO0VBQ0Q7RUFDQSxPQUFPckIscUNBQXFDLENBQUNxQixnQkFBZ0IsQ0FBQztBQUMvRCIsImlnbm9yZUxpc3QiOltdfQ==
|