@open-tender/cloud 0.1.77 → 0.1.79

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.
@@ -24,11 +24,145 @@ export declare const fetchAnnouncementPage: import("@reduxjs/toolkit").AsyncThun
24
24
  }>;
25
25
  export declare const resetAnnouncements: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"announcements/resetAnnouncements">;
26
26
  export declare const selectAnnouncements: (state: AppState) => AnnouncementsState;
27
- export declare const selectAnnouncementsPage: (page: AnnouncementPageType) => (state: AppState) => {
27
+ export declare const selectAnnouncementsPage: (page: AnnouncementPageType) => ((state: import("redux").EmptyObject & {
28
+ alerts: import("@open-tender/types").Alerts;
29
+ allergens: import("./allergens").AllergensState;
30
+ announcements: AnnouncementsState;
31
+ checkout: import("./checkout").CheckoutState;
32
+ completedOrders: import("./completedOrders").CompletedOrdersState;
33
+ config: import("./config").ConfigState;
34
+ confirmation: import("./confirmation").ConfirmationState;
35
+ customer: import("redux").CombinedState<{
36
+ account: import("./customer").AccountState;
37
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
38
+ creditCards: import("./customer").CustomerCreditCardsState;
39
+ allergens: import("./customer").CustomerAllergensState;
40
+ addresses: import("./customer").CustomerAddressesState;
41
+ favorites: import("./customer").CustomerFavoritesState;
42
+ fcmToken: import("./customer").CustomerFcmTokenState;
43
+ giftCards: import("./customer").CustomerGiftCardsState;
44
+ groupOrders: import("./customer").CustomerGroupOrdersState;
45
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
46
+ loyalty: import("./customer").CustomerLoyaltyState;
47
+ order: import("./customer").CustomerOrderState;
48
+ orders: import("./customer").CustomerOrdersState;
49
+ pointsShop: import("./customer").PointsShopState;
50
+ qrcode: import("./customer").CustomerQRCodeState;
51
+ rewards: import("./customer").CustomerRewardsState;
52
+ thanx: import("./customer").CustomerThanxState;
53
+ tpls: import("./customer").CustomerTplsState;
54
+ }>;
55
+ deals: import("./deals").DealsState;
56
+ donations: import("./donations").DonationState;
57
+ geolocation: import("./geolocation").GeoLocationState;
58
+ giftCards: import("./giftCards").GiftCardsState;
59
+ groupOrder: import("./groupOrder").GroupOrderState;
60
+ guest: import("./guest").GuestState;
61
+ loader: import("./loader").LoaderState;
62
+ menu: import("./menu").MenuState;
63
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
64
+ menuItems: import("./menuItems").MenuItemsState;
65
+ modal: import("@open-tender/types").Modal;
66
+ misc: import("./misc").MiscState;
67
+ nav: import("./nav").NavState;
68
+ navSite: import("./navSite").NavSiteState;
69
+ notifications: import("@open-tender/types").Notifications;
70
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
71
+ order: import("./order").OrderState;
72
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
73
+ orderRating: import("./orderRating").OrderRatingState;
74
+ posts: import("./posts").PostsSlice;
75
+ qr: import("./qr").QrState;
76
+ resetPassword: import("./resetPassword").ResetPasswordState;
77
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
78
+ sidebar: import("./sidebar").SidebarState;
79
+ sidebarModal: import("./sidebarModal").SidebarModalState;
80
+ signUp: import("./signUp").SignUpState;
81
+ tags: import("./tags").TagsState;
82
+ validTimes: import("./validTimes").ValidTimesState;
83
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
84
+ }) => {
28
85
  settings: import("@open-tender/types").AnnouncementSettings | null;
29
86
  entities: Announcements;
30
87
  loading: RequestStatus;
31
88
  error: RequestError;
89
+ }) & import("reselect").OutputSelectorFields<(args_0: {
90
+ pages: AnnouncementPages;
91
+ loading: RequestStatus;
92
+ error: RequestError;
93
+ }) => {
94
+ settings: import("@open-tender/types").AnnouncementSettings | null;
95
+ entities: Announcements;
96
+ loading: RequestStatus;
97
+ error: RequestError;
98
+ }, {
99
+ clearCache: () => void;
100
+ }> & {
101
+ clearCache: () => void;
102
+ };
103
+ export declare const selectHasAnnouncementsPage: (page: AnnouncementPageType) => ((state: import("redux").EmptyObject & {
104
+ alerts: import("@open-tender/types").Alerts;
105
+ allergens: import("./allergens").AllergensState;
106
+ announcements: AnnouncementsState;
107
+ checkout: import("./checkout").CheckoutState;
108
+ completedOrders: import("./completedOrders").CompletedOrdersState;
109
+ config: import("./config").ConfigState;
110
+ confirmation: import("./confirmation").ConfirmationState;
111
+ customer: import("redux").CombinedState<{
112
+ account: import("./customer").AccountState;
113
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
114
+ creditCards: import("./customer").CustomerCreditCardsState;
115
+ allergens: import("./customer").CustomerAllergensState;
116
+ addresses: import("./customer").CustomerAddressesState;
117
+ favorites: import("./customer").CustomerFavoritesState;
118
+ fcmToken: import("./customer").CustomerFcmTokenState;
119
+ giftCards: import("./customer").CustomerGiftCardsState;
120
+ groupOrders: import("./customer").CustomerGroupOrdersState;
121
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
122
+ loyalty: import("./customer").CustomerLoyaltyState;
123
+ order: import("./customer").CustomerOrderState;
124
+ orders: import("./customer").CustomerOrdersState;
125
+ pointsShop: import("./customer").PointsShopState;
126
+ qrcode: import("./customer").CustomerQRCodeState;
127
+ rewards: import("./customer").CustomerRewardsState;
128
+ thanx: import("./customer").CustomerThanxState;
129
+ tpls: import("./customer").CustomerTplsState;
130
+ }>;
131
+ deals: import("./deals").DealsState;
132
+ donations: import("./donations").DonationState;
133
+ geolocation: import("./geolocation").GeoLocationState;
134
+ giftCards: import("./giftCards").GiftCardsState;
135
+ groupOrder: import("./groupOrder").GroupOrderState;
136
+ guest: import("./guest").GuestState;
137
+ loader: import("./loader").LoaderState;
138
+ menu: import("./menu").MenuState;
139
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
140
+ menuItems: import("./menuItems").MenuItemsState;
141
+ modal: import("@open-tender/types").Modal;
142
+ misc: import("./misc").MiscState;
143
+ nav: import("./nav").NavState;
144
+ navSite: import("./navSite").NavSiteState;
145
+ notifications: import("@open-tender/types").Notifications;
146
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
147
+ order: import("./order").OrderState;
148
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
149
+ orderRating: import("./orderRating").OrderRatingState;
150
+ posts: import("./posts").PostsSlice;
151
+ qr: import("./qr").QrState;
152
+ resetPassword: import("./resetPassword").ResetPasswordState;
153
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
154
+ sidebar: import("./sidebar").SidebarState;
155
+ sidebarModal: import("./sidebarModal").SidebarModalState;
156
+ signUp: import("./signUp").SignUpState;
157
+ tags: import("./tags").TagsState;
158
+ validTimes: import("./validTimes").ValidTimesState;
159
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
160
+ }) => boolean) & import("reselect").OutputSelectorFields<(args_0: {
161
+ pages: AnnouncementPages;
162
+ loading: RequestStatus;
163
+ }) => boolean, {
164
+ clearCache: () => void;
165
+ }> & {
166
+ clearCache: () => void;
32
167
  };
33
- export declare const selectHasAnnouncementsPage: (page: AnnouncementPageType) => (state: AppState) => boolean;
34
168
  export declare const announcementsReducer: import("redux").Reducer<AnnouncementsState, import("redux").AnyAction>;
@@ -59,19 +59,23 @@ const announcementsSlice = (0, toolkit_1.createSlice)({
59
59
  exports.resetAnnouncements = announcementsSlice.actions.resetAnnouncements;
60
60
  const selectAnnouncements = (state) => state.announcements;
61
61
  exports.selectAnnouncements = selectAnnouncements;
62
- const selectAnnouncementsPage = (page) => (state) => {
62
+ const selectAnnouncementsPage = (page) => (0, toolkit_1.createSelector)((state) => {
63
63
  const { pages, loading, error } = state.announcements;
64
+ return { pages, loading, error };
65
+ }, ({ pages, loading, error }) => {
64
66
  const data = pages ? pages.find(i => i.page === page) : undefined;
65
67
  const { settings = null, entities = [] } = data || {};
66
68
  return { settings, entities, loading, error };
67
- };
69
+ });
68
70
  exports.selectAnnouncementsPage = selectAnnouncementsPage;
69
- const selectHasAnnouncementsPage = (page) => (state) => {
71
+ const selectHasAnnouncementsPage = (page) => (0, toolkit_1.createSelector)((state) => {
70
72
  const { pages, loading } = state.announcements;
73
+ return { pages, loading };
74
+ }, ({ pages, loading }) => {
71
75
  const data = pages ? pages.find(i => i.page === page) : undefined;
72
76
  const { entities = [] } = data || {};
73
77
  const hasAnnouncements = entities && entities.length;
74
78
  return loading === 'pending' || hasAnnouncements ? true : false;
75
- };
79
+ });
76
80
  exports.selectHasAnnouncementsPage = selectHasAnnouncementsPage;
77
81
  exports.announcementsReducer = announcementsSlice.reducer;
@@ -106,18 +106,289 @@ export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThun
106
106
  export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"groupOrder/resetGroupOrder">, adjustGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "groupOrder/adjustGroupOrder">;
107
107
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
108
108
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
109
- export declare const selectSpendingLimit: (state: AppState) => number | null;
110
- export declare const selectGroupOrderClosed: (state: AppState) => boolean | null;
111
- export declare const selectGroupOrderTests: (state: AppState) => {
109
+ export declare const selectSpendingLimit: ((state: import("redux").EmptyObject & {
110
+ alerts: import("@open-tender/types").Alerts;
111
+ allergens: import("./allergens").AllergensState;
112
+ announcements: import("./announcements").AnnouncementsState;
113
+ checkout: import("./checkout").CheckoutState;
114
+ completedOrders: import("./completedOrders").CompletedOrdersState;
115
+ config: import("./config").ConfigState;
116
+ confirmation: import("./confirmation").ConfirmationState;
117
+ customer: import("redux").CombinedState<{
118
+ account: import("./customer").AccountState;
119
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
120
+ creditCards: import("./customer").CustomerCreditCardsState;
121
+ allergens: import("./customer").CustomerAllergensState;
122
+ addresses: import("./customer").CustomerAddressesState;
123
+ favorites: import("./customer").CustomerFavoritesState;
124
+ fcmToken: import("./customer").CustomerFcmTokenState;
125
+ giftCards: import("./customer").CustomerGiftCardsState;
126
+ groupOrders: import("./customer").CustomerGroupOrdersState;
127
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
128
+ loyalty: import("./customer").CustomerLoyaltyState;
129
+ order: import("./customer").CustomerOrderState;
130
+ orders: import("./customer").CustomerOrdersState;
131
+ pointsShop: import("./customer").PointsShopState;
132
+ qrcode: import("./customer").CustomerQRCodeState;
133
+ rewards: import("./customer").CustomerRewardsState;
134
+ thanx: import("./customer").CustomerThanxState;
135
+ tpls: import("./customer").CustomerTplsState;
136
+ }>;
137
+ deals: import("./deals").DealsState;
138
+ donations: import("./donations").DonationState;
139
+ geolocation: import("./geolocation").GeoLocationState;
140
+ giftCards: import("./giftCards").GiftCardsState;
141
+ groupOrder: GroupOrderState;
142
+ guest: import("./guest").GuestState;
143
+ loader: import("./loader").LoaderState;
144
+ menu: import("./menu").MenuState;
145
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
146
+ menuItems: import("./menuItems").MenuItemsState;
147
+ modal: import("@open-tender/types").Modal;
148
+ misc: import("./misc").MiscState;
149
+ nav: import("./nav").NavState;
150
+ navSite: import("./navSite").NavSiteState;
151
+ notifications: import("@open-tender/types").Notifications;
152
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
153
+ order: import("./order").OrderState;
154
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
155
+ orderRating: import("./orderRating").OrderRatingState;
156
+ posts: import("./posts").PostsSlice;
157
+ qr: import("./qr").QrState;
158
+ resetPassword: import("./resetPassword").ResetPasswordState;
159
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
160
+ sidebar: import("./sidebar").SidebarState;
161
+ sidebarModal: import("./sidebarModal").SidebarModalState;
162
+ signUp: import("./signUp").SignUpState;
163
+ tags: import("./tags").TagsState;
164
+ validTimes: import("./validTimes").ValidTimesState;
165
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
166
+ }) => number | null) & import("reselect").OutputSelectorFields<(args_0: {
167
+ cartGuest: GroupOrderGuestState | null;
168
+ spendingLimit: string | null;
169
+ }) => number | null, {
170
+ clearCache: () => void;
171
+ }> & {
172
+ clearCache: () => void;
173
+ };
174
+ export declare const selectGroupOrderClosed: ((state: import("redux").EmptyObject & {
175
+ alerts: import("@open-tender/types").Alerts;
176
+ allergens: import("./allergens").AllergensState;
177
+ announcements: import("./announcements").AnnouncementsState;
178
+ checkout: import("./checkout").CheckoutState;
179
+ completedOrders: import("./completedOrders").CompletedOrdersState;
180
+ config: import("./config").ConfigState;
181
+ confirmation: import("./confirmation").ConfirmationState;
182
+ customer: import("redux").CombinedState<{
183
+ account: import("./customer").AccountState;
184
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
185
+ creditCards: import("./customer").CustomerCreditCardsState;
186
+ allergens: import("./customer").CustomerAllergensState;
187
+ addresses: import("./customer").CustomerAddressesState;
188
+ favorites: import("./customer").CustomerFavoritesState;
189
+ fcmToken: import("./customer").CustomerFcmTokenState;
190
+ giftCards: import("./customer").CustomerGiftCardsState;
191
+ groupOrders: import("./customer").CustomerGroupOrdersState;
192
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
193
+ loyalty: import("./customer").CustomerLoyaltyState;
194
+ order: import("./customer").CustomerOrderState;
195
+ orders: import("./customer").CustomerOrdersState;
196
+ pointsShop: import("./customer").PointsShopState;
197
+ qrcode: import("./customer").CustomerQRCodeState;
198
+ rewards: import("./customer").CustomerRewardsState;
199
+ thanx: import("./customer").CustomerThanxState;
200
+ tpls: import("./customer").CustomerTplsState;
201
+ }>;
202
+ deals: import("./deals").DealsState;
203
+ donations: import("./donations").DonationState;
204
+ geolocation: import("./geolocation").GeoLocationState;
205
+ giftCards: import("./giftCards").GiftCardsState;
206
+ groupOrder: GroupOrderState;
207
+ guest: import("./guest").GuestState;
208
+ loader: import("./loader").LoaderState;
209
+ menu: import("./menu").MenuState;
210
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
211
+ menuItems: import("./menuItems").MenuItemsState;
212
+ modal: import("@open-tender/types").Modal;
213
+ misc: import("./misc").MiscState;
214
+ nav: import("./nav").NavState;
215
+ navSite: import("./navSite").NavSiteState;
216
+ notifications: import("@open-tender/types").Notifications;
217
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
218
+ order: import("./order").OrderState;
219
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
220
+ orderRating: import("./orderRating").OrderRatingState;
221
+ posts: import("./posts").PostsSlice;
222
+ qr: import("./qr").QrState;
223
+ resetPassword: import("./resetPassword").ResetPasswordState;
224
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
225
+ sidebar: import("./sidebar").SidebarState;
226
+ sidebarModal: import("./sidebarModal").SidebarModalState;
227
+ signUp: import("./signUp").SignUpState;
228
+ tags: import("./tags").TagsState;
229
+ validTimes: import("./validTimes").ValidTimesState;
230
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
231
+ }) => boolean | null) & import("reselect").OutputSelectorFields<(args_0: {
232
+ cartGuest: GroupOrderGuestState | null;
233
+ cutoffAt: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | null;
234
+ closed: boolean;
235
+ tz: import("@open-tender/types").Timezone;
236
+ }) => boolean | null, {
237
+ clearCache: () => void;
238
+ }> & {
239
+ clearCache: () => void;
240
+ };
241
+ export declare const selectGroupOrderTests: ((state: import("redux").EmptyObject & {
242
+ alerts: import("@open-tender/types").Alerts;
243
+ allergens: import("./allergens").AllergensState;
244
+ announcements: import("./announcements").AnnouncementsState;
245
+ checkout: import("./checkout").CheckoutState;
246
+ completedOrders: import("./completedOrders").CompletedOrdersState;
247
+ config: import("./config").ConfigState;
248
+ confirmation: import("./confirmation").ConfirmationState;
249
+ customer: import("redux").CombinedState<{
250
+ account: import("./customer").AccountState;
251
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
252
+ creditCards: import("./customer").CustomerCreditCardsState;
253
+ allergens: import("./customer").CustomerAllergensState;
254
+ addresses: import("./customer").CustomerAddressesState;
255
+ favorites: import("./customer").CustomerFavoritesState;
256
+ fcmToken: import("./customer").CustomerFcmTokenState;
257
+ giftCards: import("./customer").CustomerGiftCardsState;
258
+ groupOrders: import("./customer").CustomerGroupOrdersState;
259
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
260
+ loyalty: import("./customer").CustomerLoyaltyState;
261
+ order: import("./customer").CustomerOrderState;
262
+ orders: import("./customer").CustomerOrdersState;
263
+ pointsShop: import("./customer").PointsShopState;
264
+ qrcode: import("./customer").CustomerQRCodeState;
265
+ rewards: import("./customer").CustomerRewardsState;
266
+ thanx: import("./customer").CustomerThanxState;
267
+ tpls: import("./customer").CustomerTplsState;
268
+ }>;
269
+ deals: import("./deals").DealsState;
270
+ donations: import("./donations").DonationState;
271
+ geolocation: import("./geolocation").GeoLocationState;
272
+ giftCards: import("./giftCards").GiftCardsState;
273
+ groupOrder: GroupOrderState;
274
+ guest: import("./guest").GuestState;
275
+ loader: import("./loader").LoaderState;
276
+ menu: import("./menu").MenuState;
277
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
278
+ menuItems: import("./menuItems").MenuItemsState;
279
+ modal: import("@open-tender/types").Modal;
280
+ misc: import("./misc").MiscState;
281
+ nav: import("./nav").NavState;
282
+ navSite: import("./navSite").NavSiteState;
283
+ notifications: import("@open-tender/types").Notifications;
284
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
285
+ order: import("./order").OrderState;
286
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
287
+ orderRating: import("./orderRating").OrderRatingState;
288
+ posts: import("./posts").PostsSlice;
289
+ qr: import("./qr").QrState;
290
+ resetPassword: import("./resetPassword").ResetPasswordState;
291
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
292
+ sidebar: import("./sidebar").SidebarState;
293
+ sidebarModal: import("./sidebarModal").SidebarModalState;
294
+ signUp: import("./signUp").SignUpState;
295
+ tags: import("./tags").TagsState;
296
+ validTimes: import("./validTimes").ValidTimesState;
297
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
298
+ }) => {
299
+ closed: boolean;
300
+ pastCutoff: boolean;
301
+ atCapacity: boolean;
302
+ }) & import("reselect").OutputSelectorFields<(args_0: {
303
+ closed: boolean;
304
+ cutoffAt: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | null;
305
+ guestLimit: number | null;
306
+ guestCount: number | null;
307
+ tz: import("@open-tender/types").Timezone;
308
+ }) => {
112
309
  closed: boolean;
113
310
  pastCutoff: boolean;
114
311
  atCapacity: boolean;
312
+ }, {
313
+ clearCache: () => void;
314
+ }> & {
315
+ clearCache: () => void;
115
316
  };
116
- export declare const selectGroupOrderPrepTimes: (state: AppState) => {
317
+ export declare const selectGroupOrderPrepTimes: ((state: import("redux").EmptyObject & {
318
+ alerts: import("@open-tender/types").Alerts;
319
+ allergens: import("./allergens").AllergensState;
320
+ announcements: import("./announcements").AnnouncementsState;
321
+ checkout: import("./checkout").CheckoutState;
322
+ completedOrders: import("./completedOrders").CompletedOrdersState;
323
+ config: import("./config").ConfigState;
324
+ confirmation: import("./confirmation").ConfirmationState;
325
+ customer: import("redux").CombinedState<{
326
+ account: import("./customer").AccountState;
327
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
328
+ creditCards: import("./customer").CustomerCreditCardsState;
329
+ allergens: import("./customer").CustomerAllergensState;
330
+ addresses: import("./customer").CustomerAddressesState;
331
+ favorites: import("./customer").CustomerFavoritesState;
332
+ fcmToken: import("./customer").CustomerFcmTokenState;
333
+ giftCards: import("./customer").CustomerGiftCardsState;
334
+ groupOrders: import("./customer").CustomerGroupOrdersState;
335
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
336
+ loyalty: import("./customer").CustomerLoyaltyState;
337
+ order: import("./customer").CustomerOrderState;
338
+ orders: import("./customer").CustomerOrdersState;
339
+ pointsShop: import("./customer").PointsShopState;
340
+ qrcode: import("./customer").CustomerQRCodeState;
341
+ rewards: import("./customer").CustomerRewardsState;
342
+ thanx: import("./customer").CustomerThanxState;
343
+ tpls: import("./customer").CustomerTplsState;
344
+ }>;
345
+ deals: import("./deals").DealsState;
346
+ donations: import("./donations").DonationState;
347
+ geolocation: import("./geolocation").GeoLocationState;
348
+ giftCards: import("./giftCards").GiftCardsState;
349
+ groupOrder: GroupOrderState;
350
+ guest: import("./guest").GuestState;
351
+ loader: import("./loader").LoaderState;
352
+ menu: import("./menu").MenuState;
353
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
354
+ menuItems: import("./menuItems").MenuItemsState;
355
+ modal: import("@open-tender/types").Modal;
356
+ misc: import("./misc").MiscState;
357
+ nav: import("./nav").NavState;
358
+ navSite: import("./navSite").NavSiteState;
359
+ notifications: import("@open-tender/types").Notifications;
360
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
361
+ order: import("./order").OrderState;
362
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
363
+ orderRating: import("./orderRating").OrderRatingState;
364
+ posts: import("./posts").PostsSlice;
365
+ qr: import("./qr").QrState;
366
+ resetPassword: import("./resetPassword").ResetPasswordState;
367
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
368
+ sidebar: import("./sidebar").SidebarState;
369
+ sidebarModal: import("./sidebarModal").SidebarModalState;
370
+ signUp: import("./signUp").SignUpState;
371
+ tags: import("./tags").TagsState;
372
+ validTimes: import("./validTimes").ValidTimesState;
373
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
374
+ }) => {
117
375
  prepTime?: undefined;
118
376
  leadTime?: undefined;
119
377
  } | {
120
378
  prepTime: number;
121
379
  leadTime: number;
380
+ }) & import("reselect").OutputSelectorFields<(args_0: {
381
+ revenueCenter: import("@open-tender/types").RevenueCenter | null;
382
+ serviceType: ServiceType | null;
383
+ }) => {
384
+ prepTime?: undefined;
385
+ leadTime?: undefined;
386
+ } | {
387
+ prepTime: number;
388
+ leadTime: number;
389
+ }, {
390
+ clearCache: () => void;
391
+ }> & {
392
+ clearCache: () => void;
122
393
  };
123
394
  export declare const groupOrderReducer: import("redux").Reducer<GroupOrderState, import("redux").AnyAction>;
@@ -224,31 +224,36 @@ const selectGroupOrder = (state) => state.groupOrder;
224
224
  exports.selectGroupOrder = selectGroupOrder;
225
225
  const selectGroupOrderToken = (state) => state.groupOrder.token;
226
226
  exports.selectGroupOrderToken = selectGroupOrderToken;
227
- const selectSpendingLimit = (state) => {
227
+ exports.selectSpendingLimit = (0, toolkit_1.createSelector)((state) => {
228
228
  const { cartGuest, spendingLimit } = state.groupOrder;
229
+ return { cartGuest, spendingLimit };
230
+ }, ({ cartGuest, spendingLimit }) => {
229
231
  return cartGuest && spendingLimit ? parseFloat(spendingLimit) : null;
230
- };
231
- exports.selectSpendingLimit = selectSpendingLimit;
232
- const selectGroupOrderClosed = (state) => {
232
+ });
233
+ exports.selectGroupOrderClosed = (0, toolkit_1.createSelector)((state) => {
233
234
  const { cartGuest, cutoffAt, closed } = state.groupOrder;
234
235
  const tz = (0, order_1.selectTimezone)(state);
236
+ return { cartGuest, cutoffAt, closed, tz };
237
+ }, ({ cartGuest, cutoffAt, closed, tz }) => {
235
238
  const cutoffDate = cutoffAt ? (0, utils_1.isoToDate)(cutoffAt, tz) : null;
236
239
  const pastCutoff = cutoffDate ? new Date() > cutoffDate : false;
237
240
  return cartGuest && (closed || pastCutoff);
238
- };
239
- exports.selectGroupOrderClosed = selectGroupOrderClosed;
240
- const selectGroupOrderTests = (state) => {
241
+ });
242
+ exports.selectGroupOrderTests = (0, toolkit_1.createSelector)((state) => {
241
243
  const { closed, cutoffAt, guestLimit, guestCount } = state.groupOrder;
242
244
  const tz = (0, order_1.selectTimezone)(state);
245
+ return { closed, cutoffAt, guestLimit, guestCount, tz };
246
+ }, ({ closed, cutoffAt, guestLimit, guestCount, tz }) => {
243
247
  const cutoffDate = cutoffAt ? (0, utils_1.isoToDate)(cutoffAt, tz) : null;
244
248
  const pastCutoff = cutoffDate ? new Date() > cutoffDate : false;
245
249
  const spotsRemaining = guestLimit ? guestLimit - (guestCount !== null && guestCount !== void 0 ? guestCount : 0) : null;
246
250
  const atCapacity = spotsRemaining !== null && spotsRemaining <= 0;
247
251
  return { closed, pastCutoff, atCapacity };
248
- };
249
- exports.selectGroupOrderTests = selectGroupOrderTests;
250
- const selectGroupOrderPrepTimes = (state) => {
252
+ });
253
+ exports.selectGroupOrderPrepTimes = (0, toolkit_1.createSelector)((state) => {
251
254
  const { revenueCenter, serviceType } = state.order;
255
+ return { revenueCenter, serviceType };
256
+ }, ({ revenueCenter, serviceType }) => {
252
257
  if (!revenueCenter || !serviceType)
253
258
  return {};
254
259
  const { wait_times, group_ordering } = revenueCenter;
@@ -257,6 +262,5 @@ const selectGroupOrderPrepTimes = (state) => {
257
262
  const waitTime = wait_times && wait_times[st] ? wait_times[st] : 0;
258
263
  const prepTime = (waitTime !== null && waitTime !== void 0 ? waitTime : 0) + (prep_time !== null && prep_time !== void 0 ? prep_time : 0);
259
264
  return { prepTime, leadTime };
260
- };
261
- exports.selectGroupOrderPrepTimes = selectGroupOrderPrepTimes;
265
+ });
262
266
  exports.groupOrderReducer = groupOrderSlice.reducer;
@@ -24,11 +24,145 @@ export declare const fetchAnnouncementPage: import("@reduxjs/toolkit").AsyncThun
24
24
  }>;
25
25
  export declare const resetAnnouncements: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"announcements/resetAnnouncements">;
26
26
  export declare const selectAnnouncements: (state: AppState) => AnnouncementsState;
27
- export declare const selectAnnouncementsPage: (page: AnnouncementPageType) => (state: AppState) => {
27
+ export declare const selectAnnouncementsPage: (page: AnnouncementPageType) => ((state: import("redux").EmptyObject & {
28
+ alerts: import("@open-tender/types").Alerts;
29
+ allergens: import("./allergens").AllergensState;
30
+ announcements: AnnouncementsState;
31
+ checkout: import("./checkout").CheckoutState;
32
+ completedOrders: import("./completedOrders").CompletedOrdersState;
33
+ config: import("./config").ConfigState;
34
+ confirmation: import("./confirmation").ConfirmationState;
35
+ customer: import("redux").CombinedState<{
36
+ account: import("./customer").AccountState;
37
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
38
+ creditCards: import("./customer").CustomerCreditCardsState;
39
+ allergens: import("./customer").CustomerAllergensState;
40
+ addresses: import("./customer").CustomerAddressesState;
41
+ favorites: import("./customer").CustomerFavoritesState;
42
+ fcmToken: import("./customer").CustomerFcmTokenState;
43
+ giftCards: import("./customer").CustomerGiftCardsState;
44
+ groupOrders: import("./customer").CustomerGroupOrdersState;
45
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
46
+ loyalty: import("./customer").CustomerLoyaltyState;
47
+ order: import("./customer").CustomerOrderState;
48
+ orders: import("./customer").CustomerOrdersState;
49
+ pointsShop: import("./customer").PointsShopState;
50
+ qrcode: import("./customer").CustomerQRCodeState;
51
+ rewards: import("./customer").CustomerRewardsState;
52
+ thanx: import("./customer").CustomerThanxState;
53
+ tpls: import("./customer").CustomerTplsState;
54
+ }>;
55
+ deals: import("./deals").DealsState;
56
+ donations: import("./donations").DonationState;
57
+ geolocation: import("./geolocation").GeoLocationState;
58
+ giftCards: import("./giftCards").GiftCardsState;
59
+ groupOrder: import("./groupOrder").GroupOrderState;
60
+ guest: import("./guest").GuestState;
61
+ loader: import("./loader").LoaderState;
62
+ menu: import("./menu").MenuState;
63
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
64
+ menuItems: import("./menuItems").MenuItemsState;
65
+ modal: import("@open-tender/types").Modal;
66
+ misc: import("./misc").MiscState;
67
+ nav: import("./nav").NavState;
68
+ navSite: import("./navSite").NavSiteState;
69
+ notifications: import("@open-tender/types").Notifications;
70
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
71
+ order: import("./order").OrderState;
72
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
73
+ orderRating: import("./orderRating").OrderRatingState;
74
+ posts: import("./posts").PostsSlice;
75
+ qr: import("./qr").QrState;
76
+ resetPassword: import("./resetPassword").ResetPasswordState;
77
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
78
+ sidebar: import("./sidebar").SidebarState;
79
+ sidebarModal: import("./sidebarModal").SidebarModalState;
80
+ signUp: import("./signUp").SignUpState;
81
+ tags: import("./tags").TagsState;
82
+ validTimes: import("./validTimes").ValidTimesState;
83
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
84
+ }) => {
28
85
  settings: import("@open-tender/types").AnnouncementSettings | null;
29
86
  entities: Announcements;
30
87
  loading: RequestStatus;
31
88
  error: RequestError;
89
+ }) & import("reselect").OutputSelectorFields<(args_0: {
90
+ pages: AnnouncementPages;
91
+ loading: RequestStatus;
92
+ error: RequestError;
93
+ }) => {
94
+ settings: import("@open-tender/types").AnnouncementSettings | null;
95
+ entities: Announcements;
96
+ loading: RequestStatus;
97
+ error: RequestError;
98
+ }, {
99
+ clearCache: () => void;
100
+ }> & {
101
+ clearCache: () => void;
102
+ };
103
+ export declare const selectHasAnnouncementsPage: (page: AnnouncementPageType) => ((state: import("redux").EmptyObject & {
104
+ alerts: import("@open-tender/types").Alerts;
105
+ allergens: import("./allergens").AllergensState;
106
+ announcements: AnnouncementsState;
107
+ checkout: import("./checkout").CheckoutState;
108
+ completedOrders: import("./completedOrders").CompletedOrdersState;
109
+ config: import("./config").ConfigState;
110
+ confirmation: import("./confirmation").ConfirmationState;
111
+ customer: import("redux").CombinedState<{
112
+ account: import("./customer").AccountState;
113
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
114
+ creditCards: import("./customer").CustomerCreditCardsState;
115
+ allergens: import("./customer").CustomerAllergensState;
116
+ addresses: import("./customer").CustomerAddressesState;
117
+ favorites: import("./customer").CustomerFavoritesState;
118
+ fcmToken: import("./customer").CustomerFcmTokenState;
119
+ giftCards: import("./customer").CustomerGiftCardsState;
120
+ groupOrders: import("./customer").CustomerGroupOrdersState;
121
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
122
+ loyalty: import("./customer").CustomerLoyaltyState;
123
+ order: import("./customer").CustomerOrderState;
124
+ orders: import("./customer").CustomerOrdersState;
125
+ pointsShop: import("./customer").PointsShopState;
126
+ qrcode: import("./customer").CustomerQRCodeState;
127
+ rewards: import("./customer").CustomerRewardsState;
128
+ thanx: import("./customer").CustomerThanxState;
129
+ tpls: import("./customer").CustomerTplsState;
130
+ }>;
131
+ deals: import("./deals").DealsState;
132
+ donations: import("./donations").DonationState;
133
+ geolocation: import("./geolocation").GeoLocationState;
134
+ giftCards: import("./giftCards").GiftCardsState;
135
+ groupOrder: import("./groupOrder").GroupOrderState;
136
+ guest: import("./guest").GuestState;
137
+ loader: import("./loader").LoaderState;
138
+ menu: import("./menu").MenuState;
139
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
140
+ menuItems: import("./menuItems").MenuItemsState;
141
+ modal: import("@open-tender/types").Modal;
142
+ misc: import("./misc").MiscState;
143
+ nav: import("./nav").NavState;
144
+ navSite: import("./navSite").NavSiteState;
145
+ notifications: import("@open-tender/types").Notifications;
146
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
147
+ order: import("./order").OrderState;
148
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
149
+ orderRating: import("./orderRating").OrderRatingState;
150
+ posts: import("./posts").PostsSlice;
151
+ qr: import("./qr").QrState;
152
+ resetPassword: import("./resetPassword").ResetPasswordState;
153
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
154
+ sidebar: import("./sidebar").SidebarState;
155
+ sidebarModal: import("./sidebarModal").SidebarModalState;
156
+ signUp: import("./signUp").SignUpState;
157
+ tags: import("./tags").TagsState;
158
+ validTimes: import("./validTimes").ValidTimesState;
159
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
160
+ }) => boolean) & import("reselect").OutputSelectorFields<(args_0: {
161
+ pages: AnnouncementPages;
162
+ loading: RequestStatus;
163
+ }) => boolean, {
164
+ clearCache: () => void;
165
+ }> & {
166
+ clearCache: () => void;
32
167
  };
33
- export declare const selectHasAnnouncementsPage: (page: AnnouncementPageType) => (state: AppState) => boolean;
34
168
  export declare const announcementsReducer: import("redux").Reducer<AnnouncementsState, import("redux").AnyAction>;
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
2
+ import { createAsyncThunk, createSelector, createSlice } from '@reduxjs/toolkit';
3
3
  import { ReducerType } from './types';
4
4
  const initialState = {
5
5
  entities: [],
@@ -55,17 +55,21 @@ const announcementsSlice = createSlice({
55
55
  });
56
56
  export const { resetAnnouncements } = announcementsSlice.actions;
57
57
  export const selectAnnouncements = (state) => state.announcements;
58
- export const selectAnnouncementsPage = (page) => (state) => {
58
+ export const selectAnnouncementsPage = (page) => createSelector((state) => {
59
59
  const { pages, loading, error } = state.announcements;
60
+ return { pages, loading, error };
61
+ }, ({ pages, loading, error }) => {
60
62
  const data = pages ? pages.find(i => i.page === page) : undefined;
61
63
  const { settings = null, entities = [] } = data || {};
62
64
  return { settings, entities, loading, error };
63
- };
64
- export const selectHasAnnouncementsPage = (page) => (state) => {
65
+ });
66
+ export const selectHasAnnouncementsPage = (page) => createSelector((state) => {
65
67
  const { pages, loading } = state.announcements;
68
+ return { pages, loading };
69
+ }, ({ pages, loading }) => {
66
70
  const data = pages ? pages.find(i => i.page === page) : undefined;
67
71
  const { entities = [] } = data || {};
68
72
  const hasAnnouncements = entities && entities.length;
69
73
  return loading === 'pending' || hasAnnouncements ? true : false;
70
- };
74
+ });
71
75
  export const announcementsReducer = announcementsSlice.reducer;
@@ -106,18 +106,289 @@ export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThun
106
106
  export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"groupOrder/resetGroupOrder">, adjustGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "groupOrder/adjustGroupOrder">;
107
107
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
108
108
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
109
- export declare const selectSpendingLimit: (state: AppState) => number | null;
110
- export declare const selectGroupOrderClosed: (state: AppState) => boolean | null;
111
- export declare const selectGroupOrderTests: (state: AppState) => {
109
+ export declare const selectSpendingLimit: ((state: import("redux").EmptyObject & {
110
+ alerts: import("@open-tender/types").Alerts;
111
+ allergens: import("./allergens").AllergensState;
112
+ announcements: import("./announcements").AnnouncementsState;
113
+ checkout: import("./checkout").CheckoutState;
114
+ completedOrders: import("./completedOrders").CompletedOrdersState;
115
+ config: import("./config").ConfigState;
116
+ confirmation: import("./confirmation").ConfirmationState;
117
+ customer: import("redux").CombinedState<{
118
+ account: import("./customer").AccountState;
119
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
120
+ creditCards: import("./customer").CustomerCreditCardsState;
121
+ allergens: import("./customer").CustomerAllergensState;
122
+ addresses: import("./customer").CustomerAddressesState;
123
+ favorites: import("./customer").CustomerFavoritesState;
124
+ fcmToken: import("./customer").CustomerFcmTokenState;
125
+ giftCards: import("./customer").CustomerGiftCardsState;
126
+ groupOrders: import("./customer").CustomerGroupOrdersState;
127
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
128
+ loyalty: import("./customer").CustomerLoyaltyState;
129
+ order: import("./customer").CustomerOrderState;
130
+ orders: import("./customer").CustomerOrdersState;
131
+ pointsShop: import("./customer").PointsShopState;
132
+ qrcode: import("./customer").CustomerQRCodeState;
133
+ rewards: import("./customer").CustomerRewardsState;
134
+ thanx: import("./customer").CustomerThanxState;
135
+ tpls: import("./customer").CustomerTplsState;
136
+ }>;
137
+ deals: import("./deals").DealsState;
138
+ donations: import("./donations").DonationState;
139
+ geolocation: import("./geolocation").GeoLocationState;
140
+ giftCards: import("./giftCards").GiftCardsState;
141
+ groupOrder: GroupOrderState;
142
+ guest: import("./guest").GuestState;
143
+ loader: import("./loader").LoaderState;
144
+ menu: import("./menu").MenuState;
145
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
146
+ menuItems: import("./menuItems").MenuItemsState;
147
+ modal: import("@open-tender/types").Modal;
148
+ misc: import("./misc").MiscState;
149
+ nav: import("./nav").NavState;
150
+ navSite: import("./navSite").NavSiteState;
151
+ notifications: import("@open-tender/types").Notifications;
152
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
153
+ order: import("./order").OrderState;
154
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
155
+ orderRating: import("./orderRating").OrderRatingState;
156
+ posts: import("./posts").PostsSlice;
157
+ qr: import("./qr").QrState;
158
+ resetPassword: import("./resetPassword").ResetPasswordState;
159
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
160
+ sidebar: import("./sidebar").SidebarState;
161
+ sidebarModal: import("./sidebarModal").SidebarModalState;
162
+ signUp: import("./signUp").SignUpState;
163
+ tags: import("./tags").TagsState;
164
+ validTimes: import("./validTimes").ValidTimesState;
165
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
166
+ }) => number | null) & import("reselect").OutputSelectorFields<(args_0: {
167
+ cartGuest: GroupOrderGuestState | null;
168
+ spendingLimit: string | null;
169
+ }) => number | null, {
170
+ clearCache: () => void;
171
+ }> & {
172
+ clearCache: () => void;
173
+ };
174
+ export declare const selectGroupOrderClosed: ((state: import("redux").EmptyObject & {
175
+ alerts: import("@open-tender/types").Alerts;
176
+ allergens: import("./allergens").AllergensState;
177
+ announcements: import("./announcements").AnnouncementsState;
178
+ checkout: import("./checkout").CheckoutState;
179
+ completedOrders: import("./completedOrders").CompletedOrdersState;
180
+ config: import("./config").ConfigState;
181
+ confirmation: import("./confirmation").ConfirmationState;
182
+ customer: import("redux").CombinedState<{
183
+ account: import("./customer").AccountState;
184
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
185
+ creditCards: import("./customer").CustomerCreditCardsState;
186
+ allergens: import("./customer").CustomerAllergensState;
187
+ addresses: import("./customer").CustomerAddressesState;
188
+ favorites: import("./customer").CustomerFavoritesState;
189
+ fcmToken: import("./customer").CustomerFcmTokenState;
190
+ giftCards: import("./customer").CustomerGiftCardsState;
191
+ groupOrders: import("./customer").CustomerGroupOrdersState;
192
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
193
+ loyalty: import("./customer").CustomerLoyaltyState;
194
+ order: import("./customer").CustomerOrderState;
195
+ orders: import("./customer").CustomerOrdersState;
196
+ pointsShop: import("./customer").PointsShopState;
197
+ qrcode: import("./customer").CustomerQRCodeState;
198
+ rewards: import("./customer").CustomerRewardsState;
199
+ thanx: import("./customer").CustomerThanxState;
200
+ tpls: import("./customer").CustomerTplsState;
201
+ }>;
202
+ deals: import("./deals").DealsState;
203
+ donations: import("./donations").DonationState;
204
+ geolocation: import("./geolocation").GeoLocationState;
205
+ giftCards: import("./giftCards").GiftCardsState;
206
+ groupOrder: GroupOrderState;
207
+ guest: import("./guest").GuestState;
208
+ loader: import("./loader").LoaderState;
209
+ menu: import("./menu").MenuState;
210
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
211
+ menuItems: import("./menuItems").MenuItemsState;
212
+ modal: import("@open-tender/types").Modal;
213
+ misc: import("./misc").MiscState;
214
+ nav: import("./nav").NavState;
215
+ navSite: import("./navSite").NavSiteState;
216
+ notifications: import("@open-tender/types").Notifications;
217
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
218
+ order: import("./order").OrderState;
219
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
220
+ orderRating: import("./orderRating").OrderRatingState;
221
+ posts: import("./posts").PostsSlice;
222
+ qr: import("./qr").QrState;
223
+ resetPassword: import("./resetPassword").ResetPasswordState;
224
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
225
+ sidebar: import("./sidebar").SidebarState;
226
+ sidebarModal: import("./sidebarModal").SidebarModalState;
227
+ signUp: import("./signUp").SignUpState;
228
+ tags: import("./tags").TagsState;
229
+ validTimes: import("./validTimes").ValidTimesState;
230
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
231
+ }) => boolean | null) & import("reselect").OutputSelectorFields<(args_0: {
232
+ cartGuest: GroupOrderGuestState | null;
233
+ cutoffAt: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | null;
234
+ closed: boolean;
235
+ tz: import("@open-tender/types").Timezone;
236
+ }) => boolean | null, {
237
+ clearCache: () => void;
238
+ }> & {
239
+ clearCache: () => void;
240
+ };
241
+ export declare const selectGroupOrderTests: ((state: import("redux").EmptyObject & {
242
+ alerts: import("@open-tender/types").Alerts;
243
+ allergens: import("./allergens").AllergensState;
244
+ announcements: import("./announcements").AnnouncementsState;
245
+ checkout: import("./checkout").CheckoutState;
246
+ completedOrders: import("./completedOrders").CompletedOrdersState;
247
+ config: import("./config").ConfigState;
248
+ confirmation: import("./confirmation").ConfirmationState;
249
+ customer: import("redux").CombinedState<{
250
+ account: import("./customer").AccountState;
251
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
252
+ creditCards: import("./customer").CustomerCreditCardsState;
253
+ allergens: import("./customer").CustomerAllergensState;
254
+ addresses: import("./customer").CustomerAddressesState;
255
+ favorites: import("./customer").CustomerFavoritesState;
256
+ fcmToken: import("./customer").CustomerFcmTokenState;
257
+ giftCards: import("./customer").CustomerGiftCardsState;
258
+ groupOrders: import("./customer").CustomerGroupOrdersState;
259
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
260
+ loyalty: import("./customer").CustomerLoyaltyState;
261
+ order: import("./customer").CustomerOrderState;
262
+ orders: import("./customer").CustomerOrdersState;
263
+ pointsShop: import("./customer").PointsShopState;
264
+ qrcode: import("./customer").CustomerQRCodeState;
265
+ rewards: import("./customer").CustomerRewardsState;
266
+ thanx: import("./customer").CustomerThanxState;
267
+ tpls: import("./customer").CustomerTplsState;
268
+ }>;
269
+ deals: import("./deals").DealsState;
270
+ donations: import("./donations").DonationState;
271
+ geolocation: import("./geolocation").GeoLocationState;
272
+ giftCards: import("./giftCards").GiftCardsState;
273
+ groupOrder: GroupOrderState;
274
+ guest: import("./guest").GuestState;
275
+ loader: import("./loader").LoaderState;
276
+ menu: import("./menu").MenuState;
277
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
278
+ menuItems: import("./menuItems").MenuItemsState;
279
+ modal: import("@open-tender/types").Modal;
280
+ misc: import("./misc").MiscState;
281
+ nav: import("./nav").NavState;
282
+ navSite: import("./navSite").NavSiteState;
283
+ notifications: import("@open-tender/types").Notifications;
284
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
285
+ order: import("./order").OrderState;
286
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
287
+ orderRating: import("./orderRating").OrderRatingState;
288
+ posts: import("./posts").PostsSlice;
289
+ qr: import("./qr").QrState;
290
+ resetPassword: import("./resetPassword").ResetPasswordState;
291
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
292
+ sidebar: import("./sidebar").SidebarState;
293
+ sidebarModal: import("./sidebarModal").SidebarModalState;
294
+ signUp: import("./signUp").SignUpState;
295
+ tags: import("./tags").TagsState;
296
+ validTimes: import("./validTimes").ValidTimesState;
297
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
298
+ }) => {
299
+ closed: boolean;
300
+ pastCutoff: boolean;
301
+ atCapacity: boolean;
302
+ }) & import("reselect").OutputSelectorFields<(args_0: {
303
+ closed: boolean;
304
+ cutoffAt: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | null;
305
+ guestLimit: number | null;
306
+ guestCount: number | null;
307
+ tz: import("@open-tender/types").Timezone;
308
+ }) => {
112
309
  closed: boolean;
113
310
  pastCutoff: boolean;
114
311
  atCapacity: boolean;
312
+ }, {
313
+ clearCache: () => void;
314
+ }> & {
315
+ clearCache: () => void;
115
316
  };
116
- export declare const selectGroupOrderPrepTimes: (state: AppState) => {
317
+ export declare const selectGroupOrderPrepTimes: ((state: import("redux").EmptyObject & {
318
+ alerts: import("@open-tender/types").Alerts;
319
+ allergens: import("./allergens").AllergensState;
320
+ announcements: import("./announcements").AnnouncementsState;
321
+ checkout: import("./checkout").CheckoutState;
322
+ completedOrders: import("./completedOrders").CompletedOrdersState;
323
+ config: import("./config").ConfigState;
324
+ confirmation: import("./confirmation").ConfirmationState;
325
+ customer: import("redux").CombinedState<{
326
+ account: import("./customer").AccountState;
327
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
328
+ creditCards: import("./customer").CustomerCreditCardsState;
329
+ allergens: import("./customer").CustomerAllergensState;
330
+ addresses: import("./customer").CustomerAddressesState;
331
+ favorites: import("./customer").CustomerFavoritesState;
332
+ fcmToken: import("./customer").CustomerFcmTokenState;
333
+ giftCards: import("./customer").CustomerGiftCardsState;
334
+ groupOrders: import("./customer").CustomerGroupOrdersState;
335
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
336
+ loyalty: import("./customer").CustomerLoyaltyState;
337
+ order: import("./customer").CustomerOrderState;
338
+ orders: import("./customer").CustomerOrdersState;
339
+ pointsShop: import("./customer").PointsShopState;
340
+ qrcode: import("./customer").CustomerQRCodeState;
341
+ rewards: import("./customer").CustomerRewardsState;
342
+ thanx: import("./customer").CustomerThanxState;
343
+ tpls: import("./customer").CustomerTplsState;
344
+ }>;
345
+ deals: import("./deals").DealsState;
346
+ donations: import("./donations").DonationState;
347
+ geolocation: import("./geolocation").GeoLocationState;
348
+ giftCards: import("./giftCards").GiftCardsState;
349
+ groupOrder: GroupOrderState;
350
+ guest: import("./guest").GuestState;
351
+ loader: import("./loader").LoaderState;
352
+ menu: import("./menu").MenuState;
353
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
354
+ menuItems: import("./menuItems").MenuItemsState;
355
+ modal: import("@open-tender/types").Modal;
356
+ misc: import("./misc").MiscState;
357
+ nav: import("./nav").NavState;
358
+ navSite: import("./navSite").NavSiteState;
359
+ notifications: import("@open-tender/types").Notifications;
360
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
361
+ order: import("./order").OrderState;
362
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
363
+ orderRating: import("./orderRating").OrderRatingState;
364
+ posts: import("./posts").PostsSlice;
365
+ qr: import("./qr").QrState;
366
+ resetPassword: import("./resetPassword").ResetPasswordState;
367
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
368
+ sidebar: import("./sidebar").SidebarState;
369
+ sidebarModal: import("./sidebarModal").SidebarModalState;
370
+ signUp: import("./signUp").SignUpState;
371
+ tags: import("./tags").TagsState;
372
+ validTimes: import("./validTimes").ValidTimesState;
373
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
374
+ }) => {
117
375
  prepTime?: undefined;
118
376
  leadTime?: undefined;
119
377
  } | {
120
378
  prepTime: number;
121
379
  leadTime: number;
380
+ }) & import("reselect").OutputSelectorFields<(args_0: {
381
+ revenueCenter: import("@open-tender/types").RevenueCenter | null;
382
+ serviceType: ServiceType | null;
383
+ }) => {
384
+ prepTime?: undefined;
385
+ leadTime?: undefined;
386
+ } | {
387
+ prepTime: number;
388
+ leadTime: number;
389
+ }, {
390
+ clearCache: () => void;
391
+ }> & {
392
+ clearCache: () => void;
122
393
  };
123
394
  export declare const groupOrderReducer: import("redux").Reducer<GroupOrderState, import("redux").AnyAction>;
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
2
+ import { createAsyncThunk, createSelector, createSlice } from '@reduxjs/toolkit';
3
3
  import { ReducerType } from './types';
4
4
  import { MISSING_CUSTOMER } from '@open-tender/types';
5
5
  import { isoToDate, makeSimpleCart, rehydrateCart } from '@open-tender/utils';
@@ -217,28 +217,36 @@ const groupOrderSlice = createSlice({
217
217
  export const { resetGroupOrder, adjustGroupOrder } = groupOrderSlice.actions;
218
218
  export const selectGroupOrder = (state) => state.groupOrder;
219
219
  export const selectGroupOrderToken = (state) => state.groupOrder.token;
220
- export const selectSpendingLimit = (state) => {
220
+ export const selectSpendingLimit = createSelector((state) => {
221
221
  const { cartGuest, spendingLimit } = state.groupOrder;
222
+ return { cartGuest, spendingLimit };
223
+ }, ({ cartGuest, spendingLimit }) => {
222
224
  return cartGuest && spendingLimit ? parseFloat(spendingLimit) : null;
223
- };
224
- export const selectGroupOrderClosed = (state) => {
225
+ });
226
+ export const selectGroupOrderClosed = createSelector((state) => {
225
227
  const { cartGuest, cutoffAt, closed } = state.groupOrder;
226
228
  const tz = selectTimezone(state);
229
+ return { cartGuest, cutoffAt, closed, tz };
230
+ }, ({ cartGuest, cutoffAt, closed, tz }) => {
227
231
  const cutoffDate = cutoffAt ? isoToDate(cutoffAt, tz) : null;
228
232
  const pastCutoff = cutoffDate ? new Date() > cutoffDate : false;
229
233
  return cartGuest && (closed || pastCutoff);
230
- };
231
- export const selectGroupOrderTests = (state) => {
234
+ });
235
+ export const selectGroupOrderTests = createSelector((state) => {
232
236
  const { closed, cutoffAt, guestLimit, guestCount } = state.groupOrder;
233
237
  const tz = selectTimezone(state);
238
+ return { closed, cutoffAt, guestLimit, guestCount, tz };
239
+ }, ({ closed, cutoffAt, guestLimit, guestCount, tz }) => {
234
240
  const cutoffDate = cutoffAt ? isoToDate(cutoffAt, tz) : null;
235
241
  const pastCutoff = cutoffDate ? new Date() > cutoffDate : false;
236
242
  const spotsRemaining = guestLimit ? guestLimit - (guestCount !== null && guestCount !== void 0 ? guestCount : 0) : null;
237
243
  const atCapacity = spotsRemaining !== null && spotsRemaining <= 0;
238
244
  return { closed, pastCutoff, atCapacity };
239
- };
240
- export const selectGroupOrderPrepTimes = (state) => {
245
+ });
246
+ export const selectGroupOrderPrepTimes = createSelector((state) => {
241
247
  const { revenueCenter, serviceType } = state.order;
248
+ return { revenueCenter, serviceType };
249
+ }, ({ revenueCenter, serviceType }) => {
242
250
  if (!revenueCenter || !serviceType)
243
251
  return {};
244
252
  const { wait_times, group_ordering } = revenueCenter;
@@ -247,5 +255,5 @@ export const selectGroupOrderPrepTimes = (state) => {
247
255
  const waitTime = wait_times && wait_times[st] ? wait_times[st] : 0;
248
256
  const prepTime = (waitTime !== null && waitTime !== void 0 ? waitTime : 0) + (prep_time !== null && prep_time !== void 0 ? prep_time : 0);
249
257
  return { prepTime, leadTime };
250
- };
258
+ });
251
259
  export const groupOrderReducer = groupOrderSlice.reducer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/cloud",
3
- "version": "0.1.77",
3
+ "version": "0.1.79",
4
4
  "description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",