@myclub_se/data-access 3.7.4 → 3.7.6

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.
Files changed (65) hide show
  1. package/esm2022/index.mjs +2 -1
  2. package/esm2022/lib/api-models/api-activity-waiting-list-entry.mjs +2 -0
  3. package/esm2022/lib/api-models/api-activity.mjs +1 -1
  4. package/esm2022/lib/api-models/api-event.mjs +1 -1
  5. package/esm2022/lib/api-models/api-feature-flags.mjs +1 -1
  6. package/esm2022/lib/api-models/api-open-activity.mjs +1 -1
  7. package/esm2022/lib/api-models/index.mjs +2 -1
  8. package/esm2022/lib/models/activity-waiting-list-entry.mjs +35 -0
  9. package/esm2022/lib/models/activity.mjs +19 -3
  10. package/esm2022/lib/models/event.mjs +14 -2
  11. package/esm2022/lib/models/feature-flags.mjs +5 -3
  12. package/esm2022/lib/models/index.mjs +2 -1
  13. package/esm2022/lib/models/open-activity.mjs +23 -2
  14. package/esm2022/lib/services/activity.service.mjs +106 -6
  15. package/esm2022/lib/services/api.service.mjs +9 -1
  16. package/esm2022/lib/services/factories/activity-factory.mjs +2 -2
  17. package/esm2022/lib/services/factories/activity-waiting-list-entry-factory.mjs +3 -0
  18. package/esm2022/lib/services/factories/event-factory.mjs +2 -2
  19. package/esm2022/lib/services/factories/feature-flags-factory.mjs +2 -2
  20. package/esm2022/lib/services/factories/index.mjs +2 -1
  21. package/esm2022/lib/services/factories/open-activity-factory.mjs +2 -2
  22. package/esm2022/lib/store/actions/activity.actions.mjs +117 -1
  23. package/esm2022/lib/store/effects/activity.effects.mjs +121 -6
  24. package/esm2022/lib/store/interfaces/team-activity.interface.mjs +1 -1
  25. package/esm2022/lib/store/reducers/calendar.reducer.mjs +143 -6
  26. package/esm2022/lib/store/reducers/public.reducer.mjs +42 -3
  27. package/esm2022/lib/store/selectors/calendar.selectors.mjs +6 -1
  28. package/esm2022/lib/store/selectors/public.selectors.mjs +4 -1
  29. package/esm2022/lib/store/state/calendar.state.mjs +2 -1
  30. package/esm2022/lib/store/state/public.state.mjs +4 -1
  31. package/esm2022/lib/types/activity-waitlist-status-type.mjs +2 -0
  32. package/esm2022/lib/types/index.mjs +2 -1
  33. package/esm2022/lib/utils/index.mjs +2 -0
  34. package/esm2022/lib/utils/is-booking-reserved-for-waitlist.mjs +20 -0
  35. package/fesm2022/myclub_se-data-access.mjs +659 -24
  36. package/fesm2022/myclub_se-data-access.mjs.map +1 -1
  37. package/index.d.ts +1 -0
  38. package/lib/api-models/api-activity-waiting-list-entry.d.ts +17 -0
  39. package/lib/api-models/api-activity.d.ts +7 -0
  40. package/lib/api-models/api-event.d.ts +6 -0
  41. package/lib/api-models/api-feature-flags.d.ts +1 -0
  42. package/lib/api-models/api-open-activity.d.ts +9 -0
  43. package/lib/api-models/index.d.ts +1 -0
  44. package/lib/models/activity-waiting-list-entry.d.ts +18 -0
  45. package/lib/models/activity.d.ts +8 -1
  46. package/lib/models/event.d.ts +7 -1
  47. package/lib/models/feature-flags.d.ts +2 -1
  48. package/lib/models/index.d.ts +1 -0
  49. package/lib/models/open-activity.d.ts +10 -1
  50. package/lib/services/activity.service.d.ts +29 -4
  51. package/lib/services/api.service.d.ts +6 -0
  52. package/lib/services/factories/activity-waiting-list-entry-factory.d.ts +3 -0
  53. package/lib/services/factories/index.d.ts +1 -0
  54. package/lib/store/actions/activity.actions.d.ts +476 -2
  55. package/lib/store/effects/activity.effects.d.ts +169 -1
  56. package/lib/store/interfaces/team-activity.interface.d.ts +3 -1
  57. package/lib/store/selectors/calendar.selectors.d.ts +8 -0
  58. package/lib/store/selectors/public.selectors.d.ts +3 -0
  59. package/lib/store/state/calendar.state.d.ts +2 -1
  60. package/lib/store/state/public.state.d.ts +4 -1
  61. package/lib/types/activity-waitlist-status-type.d.ts +1 -0
  62. package/lib/types/index.d.ts +1 -0
  63. package/lib/utils/index.d.ts +1 -0
  64. package/lib/utils/is-booking-reserved-for-waitlist.d.ts +21 -0
  65. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { HttpErrorResponse } from '@angular/common/http';
3
- import { Activity, ActivityExtraMember, ActivityInvite, ActivityQuestion, ActivitySettings, Guest, MemberActivityInvite, OpenActivity, SearchMember } from '../../models';
3
+ import { Activity, ActivityExtraMember, ActivityInvite, ActivityQuestion, ActivitySettings, ActivityWaitingListEntry, Guest, MemberActivityInvite, OpenActivity, SearchMember } from '../../models';
4
4
  import { ExtraMembersMixin } from './mixins/extra-members-mixin';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ActivityEffects extends ExtraMembersMixin {
@@ -180,6 +180,10 @@ export declare class ActivityEffects extends ExtraMembersMixin {
180
180
  updateMemberActivityInvite$: Observable<({
181
181
  payload: ActivityInvite;
182
182
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdateMemberActivityInviteSuccess>) | ({
183
+ payload: {
184
+ activityInvite: ActivityInvite;
185
+ };
186
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RemoveMemberActivityInviteSuccess>) | ({
183
187
  payload: HttpErrorResponse;
184
188
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdateMemberActivityInviteFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
185
189
  updateMemberOpenActivity$: Observable<({
@@ -190,11 +194,19 @@ export declare class ActivityEffects extends ExtraMembersMixin {
190
194
  updatePublicActivityInvite$: Observable<({
191
195
  payload: ActivityInvite;
192
196
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdatePublicActivityInviteSuccess>) | ({
197
+ payload: {
198
+ activityInvite: ActivityInvite;
199
+ };
200
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RemovePublicActivityInviteSuccess>) | ({
193
201
  payload: HttpErrorResponse;
194
202
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdatePublicActivityInviteFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
195
203
  updatePublicMemberActivityInvite$: Observable<({
196
204
  payload: ActivityInvite;
197
205
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdatePublicMemberActivityInviteSuccess>) | ({
206
+ payload: {
207
+ activityInvite: ActivityInvite;
208
+ };
209
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RemovePublicMemberActivityInviteSuccess>) | ({
198
210
  payload: HttpErrorResponse;
199
211
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdatePublicMemberActivityInviteFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
200
212
  updatePublicMemberOpenActivity$: Observable<({
@@ -220,6 +232,162 @@ export declare class ActivityEffects extends ExtraMembersMixin {
220
232
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdateTeamActivityQuestionSuccess>) | ({
221
233
  payload: HttpErrorResponse;
222
234
  } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.UpdateTeamActivityQuestionFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
235
+ joinWaitingList$: Observable<({
236
+ payload: {
237
+ memberId: string;
238
+ activityId: string;
239
+ };
240
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberActivity>) | ({
241
+ payload: {
242
+ memberId: string;
243
+ activityInviteId: string;
244
+ };
245
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberActivityInvitation>) | ({
246
+ payload: {
247
+ memberId: string;
248
+ activityId: string;
249
+ };
250
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberOpenActivity>) | ({
251
+ payload: ActivityWaitingListEntry;
252
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.JoinWaitingListSuccess>) | ({
253
+ payload: HttpErrorResponse;
254
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.JoinWaitingListFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
255
+ leaveWaitingList$: Observable<({
256
+ payload: {
257
+ memberId: string;
258
+ activityId: string;
259
+ };
260
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberActivity>) | ({
261
+ payload: {
262
+ memberId: string;
263
+ activityInviteId: string;
264
+ };
265
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberActivityInvitation>) | ({
266
+ payload: {
267
+ memberId: string;
268
+ activityId: string;
269
+ };
270
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberOpenActivity>) | ({
271
+ payload: {
272
+ memberId: string;
273
+ activityId: string;
274
+ };
275
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LeaveWaitingListSuccess>) | ({
276
+ payload: HttpErrorResponse;
277
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LeaveWaitingListFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
278
+ retrieveMemberWaitingListEntry$: Observable<({
279
+ payload: ActivityWaitingListEntry;
280
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberWaitingListEntrySuccess>) | ({
281
+ payload: HttpErrorResponse;
282
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrieveMemberWaitingListEntryFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
283
+ loadTeamActivityWaitingList$: Observable<({
284
+ payload: {
285
+ activityId: string;
286
+ entries: ActivityWaitingListEntry[];
287
+ outstandingOffer: ActivityWaitingListEntry | null;
288
+ };
289
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingListSuccess>) | ({
290
+ payload: HttpErrorResponse;
291
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingListFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
292
+ admitWaitlistEntry$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.AdmitWaitlistEntrySuccess> | ({
293
+ payload: {
294
+ teamId: string;
295
+ activityId: string;
296
+ };
297
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingList>) | ({
298
+ payload: HttpErrorResponse;
299
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.AdmitWaitlistEntryFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
300
+ reorderWaitlistEntry$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.ReorderWaitlistEntrySuccess> | ({
301
+ payload: {
302
+ teamId: string;
303
+ activityId: string;
304
+ };
305
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingList>) | ({
306
+ payload: HttpErrorResponse;
307
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.ReorderWaitlistEntryFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
308
+ remindWaitlistOffer$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RemindWaitlistOfferSuccess> | ({
309
+ payload: {
310
+ teamId: string;
311
+ activityId: string;
312
+ };
313
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingList>) | ({
314
+ payload: HttpErrorResponse;
315
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RemindWaitlistOfferFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
316
+ offerWaitlistEntry$: Observable<({
317
+ payload: {
318
+ teamId: string;
319
+ activityId: string;
320
+ };
321
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingList>) | ({
322
+ payload: ActivityWaitingListEntry;
323
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.OfferWaitlistEntrySuccess>) | ({
324
+ payload: HttpErrorResponse;
325
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.OfferWaitlistEntryFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
326
+ passWaitlistOffer$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.PassWaitlistOfferSuccess> | ({
327
+ payload: {
328
+ teamId: string;
329
+ activityId: string;
330
+ };
331
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingList>) | ({
332
+ payload: HttpErrorResponse;
333
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.PassWaitlistOfferFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
334
+ openWaitlistPlace$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.OpenWaitlistPlaceSuccess> | ({
335
+ payload: {
336
+ teamId: string;
337
+ activityId: string;
338
+ };
339
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingList>) | ({
340
+ payload: HttpErrorResponse;
341
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.OpenWaitlistPlaceFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
342
+ removeWaitlistEntry$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RemoveWaitlistEntrySuccess> | ({
343
+ payload: {
344
+ teamId: string;
345
+ activityId: string;
346
+ };
347
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LoadTeamActivityWaitingList>) | ({
348
+ payload: HttpErrorResponse;
349
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RemoveWaitlistEntryFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
350
+ retrievePublicWaitingListState$: Observable<({
351
+ payload: ActivityWaitingListEntry;
352
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicWaitingListStateSuccess>) | ({
353
+ payload: HttpErrorResponse;
354
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicWaitingListStateFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
355
+ joinPublicWaitingList$: Observable<({
356
+ payload: {
357
+ token: string;
358
+ activityInviteId: string;
359
+ };
360
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicActivityInvite>) | ({
361
+ payload: ActivityWaitingListEntry;
362
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.JoinPublicWaitingListSuccess>) | ({
363
+ payload: HttpErrorResponse;
364
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.JoinPublicWaitingListFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
365
+ leavePublicWaitingList$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LeavePublicWaitingListSuccess> | ({
366
+ payload: {
367
+ token: string;
368
+ activityInviteId: string;
369
+ };
370
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicActivityInvite>) | ({
371
+ payload: HttpErrorResponse;
372
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.LeavePublicWaitingListFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
373
+ retrievePublicWaitingListOffer$: Observable<({
374
+ payload: ActivityWaitingListEntry;
375
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicWaitingListOfferSuccess>) | ({
376
+ payload: HttpErrorResponse;
377
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicWaitingListOfferFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
378
+ retrievePublicOpenActivityWaitlistOffer$: Observable<({
379
+ payload: OpenActivity;
380
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicOpenActivityWaitlistOfferSuccess>) | ({
381
+ payload: HttpErrorResponse;
382
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RetrievePublicOpenActivityWaitlistOfferFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
383
+ respondPublicOpenActivityWaitlistOffer$: Observable<({
384
+ payload: OpenActivity;
385
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RespondPublicOpenActivityWaitlistOfferSuccess>) | ({
386
+ payload: HttpErrorResponse;
387
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.RespondPublicOpenActivityWaitlistOfferFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
388
+ declinePublicOpenActivityWaitlistOffer$: Observable<import("@ngrx/store").Action<import("../actions").ActivityActionTypes.DeclinePublicOpenActivityWaitlistOfferSuccess> | ({
389
+ payload: HttpErrorResponse;
390
+ } & import("@ngrx/store").Action<import("../actions").ActivityActionTypes.DeclinePublicOpenActivityWaitlistOfferFailure>)> & import("@ngrx/effects").CreateEffectMetadata;
223
391
  static ɵfac: i0.ɵɵFactoryDeclaration<ActivityEffects, never>;
224
392
  static ɵprov: i0.ɵɵInjectableDeclaration<ActivityEffects>;
225
393
  }
@@ -1,4 +1,4 @@
1
- import { Activity, ActivityExtraMember, Guest, MemberTeam, MemberTeamThrough, SearchMember } from '../../models';
1
+ import { Activity, ActivityExtraMember, ActivityWaitingListEntry, Guest, MemberTeam, MemberTeamThrough, SearchMember } from '../../models';
2
2
  export interface TeamActivityInterface {
3
3
  activity: Activity;
4
4
  extraMembers: Array<ActivityExtraMember>;
@@ -7,4 +7,6 @@ export interface TeamActivityInterface {
7
7
  members: Array<MemberTeamThrough>;
8
8
  participants: Array<SearchMember>;
9
9
  team: MemberTeam;
10
+ waitingList: Array<ActivityWaitingListEntry>;
11
+ waitlistOutstandingOffer: ActivityWaitingListEntry | null;
10
12
  }
@@ -17,3 +17,11 @@ export declare const selectNewTeamActivity: import("@ngrx/store").MemoizedSelect
17
17
  export declare const selectTeamActivitySettings: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivitySettings> | undefined, (s1: CalendarState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivitySettings> | undefined>;
18
18
  export declare const selectTeamCalendarEvents: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").TeamCalendarEventResultInterface | undefined, (s1: CalendarState) => import("@myclub_se/data-access").TeamCalendarEventResultInterface | undefined>;
19
19
  export declare const selectTeamActivityGuests: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").Guest[], (s1: import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").TeamActivityInterface> | undefined) => import("@myclub_se/data-access").Guest[]>;
20
+ export declare const selectTeamActivityWaitingList: import("@ngrx/store").MemoizedSelector<object, {
21
+ entries: import("@myclub_se/data-access").ActivityWaitingListEntry[];
22
+ outstandingOffer: import("@myclub_se/data-access").ActivityWaitingListEntry | null;
23
+ }, (s1: import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").TeamActivityInterface> | undefined) => {
24
+ entries: import("@myclub_se/data-access").ActivityWaitingListEntry[];
25
+ outstandingOffer: import("@myclub_se/data-access").ActivityWaitingListEntry | null;
26
+ }>;
27
+ export declare const selectMemberWaitingListEntry: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityWaitingListEntry> | undefined, (s1: CalendarState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityWaitingListEntry> | undefined>;
@@ -1,6 +1,7 @@
1
1
  import { DataAccessState, PublicState } from '../state';
2
2
  export declare const publicState: import("@ngrx/store").MemoizedSelector<object, PublicState, (s1: DataAccessState) => PublicState>;
3
3
  export declare const selectPublicActivityInvite: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityInvite> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityInvite> | undefined>;
4
+ export declare const selectPublicOpenActivityWaitlistOffer: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").OpenActivity> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").OpenActivity> | undefined>;
4
5
  export declare const selectPublicInvoice: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").MemberInvoice> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").MemberInvoice> | undefined>;
5
6
  export declare const selectPublicInvoiceLogo: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ClubImage> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ClubImage> | undefined>;
6
7
  export declare const selectPublicPaymentOrder: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").PaymentOrder> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").PaymentOrder> | undefined>;
@@ -14,3 +15,5 @@ export declare const selectPublicClubInfo: import("@ngrx/store").MemoizedSelecto
14
15
  export declare const selectPublicMemberActivities: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").PublicMemberActivityResultInterface | undefined, (s1: PublicState) => import("@myclub_se/data-access").PublicMemberActivityResultInterface | undefined>;
15
16
  export declare const selectPublicMemberActivity: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").Activity> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").Activity> | undefined>;
16
17
  export declare const selectPublicMemberActivityInvite: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityInvite> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityInvite> | undefined>;
18
+ export declare const selectPublicWaitingListState: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityWaitingListEntry> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityWaitingListEntry> | undefined>;
19
+ export declare const selectPublicWaitingListOffer: import("@ngrx/store").MemoizedSelector<object, import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityWaitingListEntry> | undefined, (s1: PublicState) => import("@myclub_se/data-access").RetrieveResultInterface<import("@myclub_se/data-access").ActivityWaitingListEntry> | undefined>;
@@ -1,6 +1,7 @@
1
1
  import { CalendarActivityLocationsInterface, CalendarActivityTypesInterface, CalendarOpenActivityResultInterface, ListResultInterface, MemberCalendarEventResultInterface, RetrieveResultInterface, TeamActivityInterface, TeamCalendarEventResultInterface } from '../interfaces';
2
- import { Activity, ActivityInvite, ActivityLocation, ActivityQuestion, ActivitySettings, ActivityType, OpenActivity } from '../../models';
2
+ import { Activity, ActivityInvite, ActivityLocation, ActivityQuestion, ActivitySettings, ActivityType, ActivityWaitingListEntry, OpenActivity } from '../../models';
3
3
  export interface CalendarState {
4
+ currentMemberWaitingListEntry: RetrieveResultInterface<ActivityWaitingListEntry> | undefined;
4
5
  activityQuestions: Record<string, ListResultInterface<ActivityQuestion>> | undefined;
5
6
  activitySettings: RetrieveResultInterface<ActivitySettings> | undefined;
6
7
  activityInvites: ListResultInterface<ActivityInvite> | undefined;
@@ -1,4 +1,4 @@
1
- import { Activity, ActivityInvite, ClubImage, MemberCard, MemberInvoice, PaymentOrder, SearchClub, SearchMember } from '../../models';
1
+ import { Activity, ActivityInvite, ActivityWaitingListEntry, ClubImage, MemberCard, MemberInvoice, OpenActivity, PaymentOrder, SearchClub, SearchMember } from '../../models';
2
2
  import { ListResultInterface, MemberCardDealsInterface, MemberCardTicketsInterface, PublicMemberActivityResultInterface, RetrieveResultInterface } from '../interfaces';
3
3
  export interface PublicState {
4
4
  activityInvitation: RetrieveResultInterface<ActivityInvite> | undefined;
@@ -14,6 +14,9 @@ export interface PublicState {
14
14
  publicClubInfo: RetrieveResultInterface<SearchClub> | undefined;
15
15
  publicMemberActivities: PublicMemberActivityResultInterface | undefined;
16
16
  publicMemberActivity: RetrieveResultInterface<Activity> | undefined;
17
+ publicOpenActivityWaitlistOffer: RetrieveResultInterface<OpenActivity> | undefined;
17
18
  publicMemberActivityInvite: RetrieveResultInterface<ActivityInvite> | undefined;
19
+ publicWaitingListState: RetrieveResultInterface<ActivityWaitingListEntry> | undefined;
20
+ publicWaitingListOffer: RetrieveResultInterface<ActivityWaitingListEntry> | undefined;
18
21
  }
19
22
  export declare const initialPublicState: PublicState;
@@ -0,0 +1 @@
1
+ export type ActivityWaitlistStatusType = 'WAITING' | 'OFFERED' | 'EXPIRED' | 'CANCELLED';
@@ -1,3 +1,4 @@
1
+ export * from './activity-waitlist-status-type';
1
2
  export * from './attribute-type';
2
3
  export * from './booking-calendar-slot-reserved-time-position';
3
4
  export * from './booking-calendar-slot-reserved-time-type';
@@ -0,0 +1 @@
1
+ export * from './is-booking-reserved-for-waitlist';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The subset of activity fields needed to decide whether open seats are reserved
3
+ * for the waiting list. Both `Activity` and `OpenActivity` satisfy this shape.
4
+ */
5
+ export interface WaitlistReservationFields {
6
+ allow_waiting_list: boolean;
7
+ waiting_list_count: number;
8
+ current_num_attendants: number;
9
+ max_num_attendants: number;
10
+ member_waiting_list_status: string | null;
11
+ }
12
+ /**
13
+ * Mirror of the backend rule: when an activity has a non-empty waiting list and there
14
+ * are open seats, those seats are reserved for the queue. Returns `true` when the
15
+ * current member must NOT be allowed to take an open seat because it is reserved.
16
+ *
17
+ * The leader exemption is the caller's responsibility — a leader does not consume
18
+ * participant capacity, so callers that know the invite is a leader should skip this
19
+ * check (see the backend `booking_blocked_by_waitlist` selector).
20
+ */
21
+ export declare function isBookingReservedForWaitlist(activity: WaitlistReservationFields): boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@myclub_se/data-access",
3
3
  "description": "This is the package required to access the api for the MyClub Member API V3 from angular",
4
- "version": "3.7.4",
4
+ "version": "3.7.6",
5
5
  "license": "MIT",
6
6
  "main": "src/index.ts",
7
7
  "peerDependencies": {