@thryveai/theme-interfaces 2.4.21 → 2.4.23-beta.0

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 (44) hide show
  1. package/README.md +29 -29
  2. package/dist/index.d.ts +28 -27
  3. package/dist/index.js +33 -31
  4. package/dist/interfaces/admin-images-interfaces.d.ts +11 -11
  5. package/dist/interfaces/admin-images-interfaces.js +2 -2
  6. package/dist/interfaces/admin-settings-interfaces.d.ts +57 -57
  7. package/dist/interfaces/admin-settings-interfaces.js +2 -2
  8. package/dist/interfaces/default-settings.interfaces.d.ts +89 -89
  9. package/dist/interfaces/default-settings.interfaces.js +3 -3
  10. package/dist/interfaces/default-theme.interface.d.ts +695 -695
  11. package/dist/interfaces/default-theme.interface.js +2 -2
  12. package/dist/interfaces/icons.interfaces.d.ts +7 -7
  13. package/dist/interfaces/icons.interfaces.js +128 -126
  14. package/dist/interfaces/retailer-settings.interfaces.d.ts +543 -537
  15. package/dist/interfaces/retailer-settings.interfaces.js +2 -2
  16. package/dist/interfaces/sts-settings.interfaces.d.ts +6 -6
  17. package/dist/interfaces/sts-settings.interfaces.js +2 -2
  18. package/dist/interfaces/theme.interfaces.d.ts +695 -695
  19. package/dist/interfaces/theme.interfaces.js +2 -2
  20. package/dist/storefront/SFUIImagesTemplate.AdminUi.d.ts +2 -2
  21. package/dist/storefront/SFUIImagesTemplate.AdminUi.js +112 -112
  22. package/dist/storefront/SFUISettingsTemplate.AdminUi.d.ts +14 -14
  23. package/dist/storefront/SFUISettingsTemplate.AdminUi.js +1025 -1008
  24. package/dist/storefront/SFUIThemesTemplate.AdminUi.d.ts +3 -3
  25. package/dist/storefront/SFUIThemesTemplate.AdminUi.js +113 -113
  26. package/dist/storefront/contentEngineComponents.d.ts +23 -23
  27. package/dist/storefront/contentEngineComponents.js +25 -25
  28. package/dist/storefront/defaultIconsStorefront.d.ts +3 -0
  29. package/dist/storefront/defaultIconsStorefront.js +128 -0
  30. package/dist/storefront/defaultImagesStorefront.d.ts +3 -3
  31. package/dist/storefront/defaultImagesStorefront.js +96 -96
  32. package/dist/storefront/defaultSettingsStorefront.d.ts +3 -3
  33. package/dist/storefront/defaultSettingsStorefront.js +297 -292
  34. package/dist/storefront/defaultThemeStorefront.d.ts +5 -5
  35. package/dist/storefront/defaultThemeStorefront.js +1156 -1156
  36. package/dist/sts/STSImagesTemplate.AdminUi.d.ts +2 -2
  37. package/dist/sts/STSImagesTemplate.AdminUi.js +50 -50
  38. package/dist/sts/STSSettingsTemplate.AdminUi.d.ts +2 -2
  39. package/dist/sts/STSSettingsTemplate.AdminUi.js +30 -30
  40. package/dist/sts/defaultSettingsSts.d.ts +3 -3
  41. package/dist/sts/defaultSettingsSts.js +9 -9
  42. package/dist/theme-templates/index.d.ts +3 -3
  43. package/dist/theme-templates/index.js +8 -8
  44. package/package.json +29 -21
@@ -1,537 +1,543 @@
1
- import { CMSNames } from "../storefront/contentEngineComponents";
2
- import { IconNames, PaymentCards } from "./icons.interfaces";
3
- export interface IRetailerSettings {
4
- accountPage?: IAccountPageSettings;
5
- additionalCharges?: boolean;
6
- addresses?: {
7
- addressValidationTypes?: IAddressValidationTypes;
8
- canadianAddressCompleteKey?: string | undefined;
9
- eircodeUrl?: string | null;
10
- integration?: {
11
- addNewAddressUrl: string | undefined;
12
- editAddressUrl: string | undefined;
13
- deleteAddressUrl: string | undefined;
14
- };
15
- useAddressValidation?: boolean;
16
- };
17
- addressValidationTypes?: IAddressValidationTypes;
18
- advertSettings?: IAdvertSettings;
19
- allowInStorePurchases?: boolean;
20
- allowPastPurchases?: boolean;
21
- buildNumber: string;
22
- cacheTimeMins?: number;
23
- canadianAddressCompleteKey?: string | undefined;
24
- checkout?: IGlobalCheckoutProps;
25
- checkoutV1?: boolean;
26
- checkoutValidation?: ICheckoutValidation;
27
- ctaButtons?: ICtaButtons;
28
- daysToRemainSignedIn?: number;
29
- defaultCountry?: IDefaultCounty;
30
- defaultSearchParams?: IDefaultSearchParams;
31
- defaultShoppingMode?: "pickup" | "planning" | "delivery";
32
- defaultStoreLocation?: IDefaultStoreLocation;
33
- disableTprPrice?: boolean;
34
- documentTitle?: string;
35
- eircode?: string | null;
36
- enable3dSecure?: boolean;
37
- enableGoogleTranslate?: boolean;
38
- enableNewsletterSignup?: boolean;
39
- enableNotifications?: boolean;
40
- entryModalVersion?: IEntryModalVersion;
41
- hideAlcoholRule?: IShoppingRuleControl;
42
- errorLoggingLevel?: ILoggingLevel;
43
- externalApps?: IExternalApps;
44
- externalStoreSelectorUrl?: string | undefined;
45
- favoritesV1?: boolean;
46
- featureSwitch?: IFeatureSwitch;
47
- flipp?: IFlippConfig | IFlippConfigV2 | null;
48
- globalAnimations?: IGlobalAnimations;
49
- googleAutocompleteSettings?: IGoogleAutocompleteSettings;
50
- gtmId?: undefined | string;
51
- hideTaxOnSummary?: boolean;
52
- houseAccountRegExValidation?: string;
53
- idpTarget?: "_self" | "_blank";
54
- idpUrl?: undefined | string;
55
- instacartUrl?: string | undefined;
56
- isPlanningOnly?: boolean;
57
- RemoveAllOutOfStock?: boolean;
58
- layout?: ILayoutSettings;
59
- layouts?: IGlobalLayouts;
60
- limitProductCardTitleHeight?: boolean;
61
- loggingLevelClient?: ILoggingLevel;
62
- loggingLevelServer?: ILoggingLevel;
63
- mainHeaderHeight?: number;
64
- maintainCustomerJourney?: boolean;
65
- maintainCustomerPreferences?: IMaintainCustomerPreferences;
66
- mapZoom?: number;
67
- minimumCreditCardAmount?: number;
68
- nutritionZone?: INutritionZone;
69
- paymentCards?: IPaymentCards;
70
- pdpDetailsLayout?: IProductDetailsPageLayout;
71
- productCardTitleHeight?: number;
72
- productCards?: IProductCardsProps;
73
- productCardv2?: boolean;
74
- promoTemplateVersion?: number;
75
- registrationFields?: IRegistrationField[];
76
- restrictMapPlacesResults?: IRestrictMapPlaces;
77
- retailerCountry?: IRetailerCountry;
78
- retailerName: string;
79
- searchPreview?: ISearchPreviewVisibility;
80
- secondTierAuthorization?: ISecondTierAuthorization;
81
- showCheckoutPromoCode?: boolean;
82
- showImgOnOrder?: boolean;
83
- siteSettings?: ISiteSettings;
84
- smartBanner?: ISmartBanner;
85
- smsNotifications?: ISMSConfig;
86
- sodiumWarning?: ISodiumWarning;
87
- specialRequestItems?: boolean;
88
- subHeaderHeight?: number;
89
- TimeslotModalSettings?: ITimeslotModalSettings;
90
- useAddressValidation?: boolean;
91
- }
92
- export interface IFeatureSwitch {
93
- additionalCharges: boolean;
94
- clientCache: boolean;
95
- vouchers: IVouchers;
96
- giftCards: IGiftCards;
97
- smartbanner: ISmartBanner;
98
- entryModalVersion: IEntryModalVersion;
99
- addressIntegration: IAddressIntegration;
100
- hideAlcoholRule: IShoppingRuleControl;
101
- addressIntegrationV2: boolean;
102
- }
103
- export interface ISiteSettings {
104
- anonymousCart: boolean;
105
- }
106
- export interface IVouchers {
107
- enabled: boolean;
108
- reCaptcha: boolean;
109
- }
110
- export interface IGiftCards {
111
- enabled: boolean;
112
- giftCardInputValidation: string;
113
- pinInputValidation: string;
114
- reCaptcha: boolean;
115
- }
116
- export declare type IEntryModalVersion = "entry" | "geolocation";
117
- export interface ISmartBanner {
118
- enabled: boolean;
119
- title: string;
120
- author: string;
121
- price: string;
122
- priceSuffixApple: string;
123
- priceSuffixGoogle: string;
124
- iconApple: string;
125
- iconGoogle: string;
126
- button: string;
127
- buttonUrlApple: string;
128
- buttonUrlGoogle: string;
129
- closeLabel: string;
130
- }
131
- export interface IGlobalLayouts {
132
- cartSummary: ICartSummaryLayout;
133
- couponGallery: ICouponGalleryLayout;
134
- }
135
- export interface ICouponGalleryLayout {
136
- enabled: boolean;
137
- galleryIsIframe: boolean;
138
- galleryHasNavLink: boolean;
139
- }
140
- export interface ICartSummaryLayout {
141
- showTaxTotal: boolean;
142
- showTaxGroups: boolean;
143
- }
144
- export interface IExternalApps {
145
- sts?: IExternalAppSTS;
146
- }
147
- export interface IExternalAppSTS {
148
- customTermPolicy?: string;
149
- }
150
- export interface ISecondTierAuthorization {
151
- time: undefined | null | number;
152
- pages: string[];
153
- }
154
- export interface IFlippConfig {
155
- version: 1;
156
- production: boolean;
157
- scriptUrl: IFlippScriptUrls;
158
- retailer: "wakefernpricerite" | "saveonfoods" | "unitedsupermarkets" | "dearbornmarket" | "saveonfoods";
159
- autoLocate: boolean;
160
- useRequestedDomain: boolean;
161
- }
162
- export interface IFlippConfigV2 {
163
- version: 2;
164
- retailer: string;
165
- merchantId: string;
166
- accessToken: string;
167
- zoom: number;
168
- locale: string;
169
- hideHeader: boolean;
170
- }
171
- export declare type IFlippScriptUrls = "circulars.priceritemarketplace" | "circulars.dearbornmarket" | "flyers.v8.commerce.mi9cloud" | "flyers.stg.v8.mywebgrocer" | "flyers.saveonfoods";
172
- export declare type IAllSettings = {
173
- [envName in IEnvNames]: IRetailerSettings;
174
- };
175
- export interface ISMSConfig {
176
- enabled: boolean;
177
- getEnrollmentUrl: string;
178
- postEnrollmentUrl: string;
179
- }
180
- export interface IPageAdvertsRow {
181
- [row: number]: IAdvertsData;
182
- }
183
- export declare type IScreenType = "mobile" | "tablet" | "desktop";
184
- export interface ITimeslotModalSettings {
185
- showOnAddToCart: boolean;
186
- timeslotRequiredToAddToCart: boolean;
187
- timeslotRequiredToViewCartReview: boolean;
188
- timeslotRequiredToViewCheckout: boolean;
189
- }
190
- export declare type IAdvertsData = {
191
- [screen in IScreenType]?: string;
192
- };
193
- export declare type IAdvertSettings = {
194
- page_homepage?: IAdvertLeaderboards;
195
- page_search?: IAdvertLeaderboards & IAdvertProductGrid & IAdvertSkyScrapers;
196
- page_cart?: IAdvertLeaderboards & IAdvertSkyScrapers;
197
- "page_product-categories"?: IAdvertLeaderboards & IAdvertProductGrid & IAdvertSkyScrapers;
198
- "page_product-listing"?: IAdvertLeaderboards & IAdvertProductGrid & IAdvertSkyScrapers;
199
- };
200
- export declare type IPageNamesForAdverts = {
201
- [key in keyof IAdvertSettings]: string;
202
- };
203
- export interface IAdvertLeaderboards {
204
- leaderboards?: IPageAdvertsRow;
205
- }
206
- export interface IAdvertProductGrid {
207
- productGrid?: {
208
- leaderboards?: IPageAdvertsRow;
209
- productCardBanners?: IPageAdvertsRow;
210
- };
211
- }
212
- export interface IAdvertSkyScrapers {
213
- skyscrapers?: IAdvertsData;
214
- }
215
- export interface IGoogleAutocompleteSettings {
216
- types?: IGoogleAutocompleteTypes;
217
- bounds?: IGoogleAutocompleteBounds;
218
- strictBounds?: boolean;
219
- restrictCountries?: string[];
220
- }
221
- export interface IGoogleAutocompleteBounds {
222
- east_longitude: number;
223
- north_latitude: number;
224
- south_latitude: number;
225
- west_longitude: number;
226
- }
227
- export declare type IGoogleAutocompleteTypes = "geocode" | "address" | "establishment" | "(regions)" | "(cities)";
228
- export interface ICtaButtons {
229
- iconAlignment: "left" | "right" | null;
230
- iconName: IconNames;
231
- }
232
- export interface ISodiumWarning {
233
- isEnabled: boolean;
234
- threshold: number;
235
- }
236
- export interface IAddressesSettings {
237
- addressValidationTypes: IAddressValidationTypes;
238
- eircode: {
239
- enabled: boolean;
240
- url: string;
241
- };
242
- integration: {
243
- enabled: boolean;
244
- addressFinderType: IAddressFinderType;
245
- addNewAddressUrl: string;
246
- editAddressUrl: string;
247
- deleteAddressUrl: string;
248
- getLocationUrl: string;
249
- getAddressesUrl: string;
250
- };
251
- useAddressValidation: boolean;
252
- disableAddressOnDelivery: boolean;
253
- }
254
- export interface IAddressesSettingsV2 {
255
- addressValidationTypes: IAddressValidationTypes;
256
- eircode: {
257
- enabled: boolean;
258
- url: string;
259
- };
260
- integration: {
261
- enabled: boolean;
262
- addressFinderType: IAddressFinderType;
263
- useForNewAddresses: boolean;
264
- addNewAddressUrl: string;
265
- editAddressUrl: string;
266
- deleteAddressUrl: string;
267
- };
268
- useAddressValidation: boolean;
269
- }
270
- export interface ICartSummaryV2 {
271
- showTaxTotal: boolean;
272
- showTaxGroups: boolean;
273
- hideTaxOnSummary: boolean;
274
- }
275
- export interface ICheckoutSettingsV2 {
276
- numericPhonePayload: boolean;
277
- houseAccountRegExValidation: string;
278
- minimumCreditCardAmount: number;
279
- paymentCards: IPaymentCards;
280
- checkoutValidation: ICheckoutValidation;
281
- forceDeliverySection: boolean;
282
- enableInterimModal: boolean;
283
- }
284
- export interface IFeaturesV2 {
285
- additionalCharges: boolean;
286
- clientCache: boolean;
287
- vouchers: IVouchers;
288
- giftCards: IGiftCards;
289
- smartbanner: ISmartBanner;
290
- entryModalVersion: IEntryModalVersion;
291
- hideAlcoholRule: IShoppingRuleControl;
292
- addressIntegrationV2: boolean;
293
- allowInStorePurchases: boolean;
294
- allowPastPurchases: boolean;
295
- advertSettings: IAdvertSettings;
296
- ebtPayments: boolean;
297
- enableGoogleTranslate: boolean;
298
- enableNewsletterSignup: boolean;
299
- enableNotifications: boolean;
300
- externalStoreSelectorUrl: {
301
- enabled: boolean;
302
- url: string;
303
- };
304
- favoritesV1: boolean;
305
- flipp: IFlippConfig | IFlippConfigV2 | null;
306
- globalAnimations: IGlobalAnimations;
307
- instacart: {
308
- enabled: boolean;
309
- url: string;
310
- };
311
- registrationFields: IRegistrationField[];
312
- secondTierAuthorization?: ISecondTierAuthorization;
313
- showCheckoutPromoCode: boolean;
314
- showImgOnOrder: boolean;
315
- smsNotifications: ISMSConfig;
316
- specialRequestItems: boolean;
317
- couponGallery: ICouponGalleryLayout;
318
- }
319
- export interface IPdpSettingsV2 {
320
- nutritionZone: INutritionZone;
321
- pdpDetailsLayout: IProductDetailsPageLayout;
322
- sodiumWarning: ISodiumWarning;
323
- }
324
- export interface IProductCardSettingsV2 {
325
- limitProductCardTitleHeight: boolean;
326
- productCardTitleHeight: number;
327
- productCards: IProductCardsProps;
328
- }
329
- export interface ISiteSettingsV2 {
330
- anonymousCart: boolean;
331
- ctaButtons: ICtaButtons | null | undefined;
332
- daysToRemainSignedIn: number;
333
- defaultCountry: IDefaultCounty;
334
- defaultSearchParams: IDefaultSearchParams;
335
- defaultShoppingMode: "pickup" | "planning" | "delivery";
336
- defaultStoreLocation: IDefaultStoreLocation;
337
- disableTprPrice: boolean;
338
- footerVersion: IFooterTypes;
339
- googleAutocompleteSettings: IGoogleAutocompleteSettings;
340
- gtmId: string;
341
- hideWelcomeModalOnCorporate: boolean;
342
- isPlanningOnly: boolean;
343
- RemoveAllOutOfStock: boolean;
344
- mainHeaderHeight: number;
345
- maintainCustomerJourney: boolean;
346
- maintainCustomerPreferences: IMaintainCustomerPreferences;
347
- mapZoom: number;
348
- promoTemplateVersion: number;
349
- restrictMapPlacesResults: IRestrictMapPlaces;
350
- retailerCountry: IRetailerCountry;
351
- retailerName: string;
352
- searchPreview: ISearchPreviewVisibility;
353
- subHeaderHeight: number;
354
- timeslotModalSettings: ITimeslotModalSettings;
355
- useContentEngineV2Components: IUseContentEngineV2Components;
356
- }
357
- export declare type IUseContentEngineV2Components = {
358
- [key in CMSNames]: boolean;
359
- };
360
- export interface IAccountPageSettings {
361
- loyaltyTab: {
362
- disabledEdit?: boolean;
363
- enabled: boolean;
364
- loyaltyNumberLength: number;
365
- loyaltyNumberPrefix: string;
366
- loyaltyValidationType: IValidationType[];
367
- };
368
- }
369
- export interface ILayoutSettings {
370
- footerVersion: IFooterTypes;
371
- }
372
- export declare type ILoggingLevel = "error" | "warning" | "info" | "debug";
373
- export interface IAddressValidationTypes {
374
- addressLine1: IValidationType[];
375
- addressLine2: IValidationType[];
376
- city: IValidationType[];
377
- countyProvinceState: IValidationType[];
378
- familyName: IValidationType[];
379
- firstName: IValidationType[];
380
- instructions: IValidationType[];
381
- phoneNumber: IValidationType[];
382
- postCode: IValidationType[];
383
- smsNumber: IValidationType[];
384
- }
385
- export interface IDefaultSearchParams {
386
- q: string;
387
- page: string;
388
- skip: string;
389
- take: string;
390
- }
391
- export interface IDefaultStoreLocation {
392
- latitude: number;
393
- longitude: number;
394
- }
395
- export declare type IDefaultCounty = "USA" | "Canada" | "Ireland" | "Australia" | string;
396
- export declare type IRetailerCountry = "us" | "ca" | "ie" | "au";
397
- export interface IRestrictMapPlaces {
398
- country?: string | string[];
399
- postalCode?: string;
400
- route?: string;
401
- locality?: string;
402
- administrativeArea?: string;
403
- fetchNearStoresSettings?: {
404
- kmRange: number;
405
- totalTake: number;
406
- };
407
- }
408
- export declare type IValidationType = IValidateDateRange | IValidateLength | IValidateMultipleLengths | "alphaNumeric" | "alphaOnly" | "anyPhone" | "auPhone" | "auPostCode" | "auState" | "caPhone" | "caPostCode" | "caProvince" | "correctDate" | "email" | "ieCounty" | "iePhone" | "iePostCode" | "luhnValidation" | "noSpecialChar" | "numericOnly" | "password" | "required" | "usMobileNumber" | "usPhone" | "usPhone10Digits" | "usPostCode" | "usState" | "notWhiteSpacesOnly";
409
- export declare type IEnvNames = "dev" | "de2" | "qat" | "qa2" | "int" | "in2" | "lod" | "lo2" | "stg" | "st2" | "stagingConfig" | "productionConfig";
410
- export declare type INutritionZone = "us" | "eu" | "au" | "ca";
411
- export declare type IFooterTypes = "default" | "version2" | "version3" | "version4" | "version5" | "version6";
412
- export declare type IValidateLength = {
413
- _type: "less" | "more" | "exact";
414
- length: number;
415
- };
416
- export declare type IValidateMultipleLengths = {
417
- _type: "multi";
418
- multiLength: number[];
419
- };
420
- export declare type IValidateDateRange = {
421
- _type: "overYears";
422
- overYears: number;
423
- };
424
- export declare type IRegistrationFieldTypes = "default" | "version2";
425
- export declare type IRegistrationFieldNames = "phone" | "loyaltyId" | "isAdultConfirmed" | "marketingConsent" | "dateOfBirth";
426
- export interface IRegistrationField {
427
- name: IRegistrationFieldNames;
428
- label: string;
429
- placeholder: string;
430
- designVersion: IRegistrationFieldTypes;
431
- validationTypes: IValidationType[];
432
- }
433
- export interface ICheckoutValidation {
434
- instructions: IValidationType[];
435
- phoneNumber: IValidationType[];
436
- smsNumber: IValidationType[];
437
- }
438
- export interface ISearchPreview {
439
- suggestions: boolean;
440
- products: boolean;
441
- }
442
- export interface ISearchPreviewVisibility {
443
- desktop?: ISearchPreview;
444
- mobile?: ISearchPreview;
445
- }
446
- export declare type IPaymentCards = {
447
- [cardName in PaymentCards]: boolean;
448
- };
449
- export interface IAdminOnlyV2 {
450
- bannerName: string;
451
- logoUrl: string;
452
- }
453
- export interface IAccountPageV2 {
454
- loyaltyTab: {
455
- disabledEdit?: boolean;
456
- enabled: boolean;
457
- loyaltyNumberLength: number;
458
- loyaltyNumberPrefix: string;
459
- loyaltyValidationType: IValidationType[];
460
- };
461
- idp: {
462
- enabled: boolean;
463
- target: "_self" | "_blank";
464
- url: string;
465
- };
466
- profileTab: {
467
- deleteAccountButton: boolean;
468
- };
469
- }
470
- export interface IGlobalAnimations {
471
- confetti: ILayoutAnimationsConfetti;
472
- }
473
- export interface ILayoutAnimationsConfetti {
474
- enableConfettiAnimation: boolean;
475
- }
476
- export interface IGlobalCheckoutProps {
477
- numericPhonePayload: boolean;
478
- }
479
- export interface IShoppingRuleControl {
480
- modal: boolean;
481
- pdp: boolean;
482
- productCard: boolean;
483
- }
484
- export interface IAddressIntegration {
485
- enabled: boolean;
486
- addressFinderType: IAddressFinderType;
487
- useForNewAddresses: boolean;
488
- }
489
- export declare type IAddressFinderType = "AUS" | "EU" | "IE" | "US" | "UK" | "CA";
490
- export interface IProductCardsProps {
491
- gridRowLength: {
492
- [key in IScreenType]: number;
493
- };
494
- carouselsRowLength: {
495
- [key in IScreenType]: number;
496
- };
497
- productCard: {
498
- enabled: boolean;
499
- layouts: IProductCardLayouts;
500
- components: IProductCardV2ComponentProps;
501
- };
502
- }
503
- export interface IProductCardV2ComponentProps {
504
- promotionLabel: IProductCardV2PromotionLabelsSettings;
505
- }
506
- export interface IProductCardV2PromotionLabelsSettings {
507
- showLines: number;
508
- }
509
- export declare type IProductCardLayouts = {
510
- ContainersGrid: "default" | "pce-centered";
511
- ContainersCarousel: "default" | "pce-centered";
512
- };
513
- export declare type IProductCardLayoutObjects<T> = {
514
- [Place in keyof IProductCardLayouts]: {
515
- [key in IProductCardLayouts[Place]]: T;
516
- };
517
- };
518
- export declare type IProductCardILayoutTypes = keyof IProductCardLayouts;
519
- export declare type IProductCardILayoutVersions = IProductCardLayouts[IProductCardILayoutTypes];
520
- export interface IProductDetailsPageLayout {
521
- desktop: {
522
- left: PdpDetailsElementLayout[];
523
- right: PdpDetailsElementLayout[];
524
- };
525
- mobile: {
526
- left: PdpDetailsElementLayout[];
527
- right: PdpDetailsElementLayout[];
528
- };
529
- }
530
- export declare type PdpDetailsElementLayout = "productNutrition" | "productIngredients" | "productDescription" | "sodiumWarning" | "productNumber" | "recommendations" | "productSalesInfo" | string;
531
- export declare type IConfigurableCustomerPreference = "marketingPreferences";
532
- export interface IMaintainCustomerPreferences {
533
- enabled: boolean;
534
- sections: {
535
- [key in IConfigurableCustomerPreference]: string[];
536
- };
537
- }
1
+ import { CMSNames } from "../storefront/contentEngineComponents";
2
+ import { IconNames, PaymentCards } from "./icons.interfaces";
3
+ export interface IRetailerSettings {
4
+ accountPage?: IAccountPageSettings;
5
+ additionalCharges?: boolean;
6
+ addresses?: {
7
+ addressValidationTypes?: IAddressValidationTypes;
8
+ canadianAddressCompleteKey?: string | undefined;
9
+ eircodeUrl?: string | null;
10
+ integration?: {
11
+ addNewAddressUrl: string | undefined;
12
+ editAddressUrl: string | undefined;
13
+ deleteAddressUrl: string | undefined;
14
+ };
15
+ useAddressValidation?: boolean;
16
+ };
17
+ addressValidationTypes?: IAddressValidationTypes;
18
+ advertSettings?: IAdvertSettings;
19
+ allowInStorePurchases?: boolean;
20
+ allowPastPurchases?: boolean;
21
+ buildNumber: string;
22
+ cacheTimeMins?: number;
23
+ canadianAddressCompleteKey?: string | undefined;
24
+ checkout?: IGlobalCheckoutProps;
25
+ checkoutV1?: boolean;
26
+ checkoutValidation?: ICheckoutValidation;
27
+ ctaButtons?: ICtaButtons;
28
+ daysToRemainSignedIn?: number;
29
+ defaultCountry?: IDefaultCounty;
30
+ defaultSearchParams?: IDefaultSearchParams;
31
+ defaultShoppingMode?: "pickup" | "planning" | "delivery";
32
+ defaultStoreLocation?: IDefaultStoreLocation;
33
+ disableTprPrice?: boolean;
34
+ documentTitle?: string;
35
+ eircode?: string | null;
36
+ enable3dSecure?: boolean;
37
+ enableGoogleTranslate?: boolean;
38
+ enableNewsletterSignup?: boolean;
39
+ enableNotifications?: boolean;
40
+ entryModalVersion?: IEntryModalVersion;
41
+ hideAlcoholRule?: IShoppingRuleControl;
42
+ errorLoggingLevel?: ILoggingLevel;
43
+ externalApps?: IExternalApps;
44
+ externalStoreSelectorUrl?: string | undefined;
45
+ favoritesV1?: boolean;
46
+ featureSwitch?: IFeatureSwitch;
47
+ flipp?: IFlippConfig | IFlippConfigV2 | null;
48
+ globalAnimations?: IGlobalAnimations;
49
+ googleAutocompleteSettings?: IGoogleAutocompleteSettings;
50
+ gtmId?: undefined | string;
51
+ hideTaxOnSummary?: boolean;
52
+ houseAccountRegExValidation?: string;
53
+ idpTarget?: "_self" | "_blank";
54
+ idpUrl?: undefined | string;
55
+ instacartUrl?: string | undefined;
56
+ isPlanningOnly?: boolean;
57
+ RemoveAllOutOfStock?: boolean;
58
+ layout?: ILayoutSettings;
59
+ layouts?: IGlobalLayouts;
60
+ limitProductCardTitleHeight?: boolean;
61
+ loggingLevelClient?: ILoggingLevel;
62
+ loggingLevelServer?: ILoggingLevel;
63
+ mainHeaderHeight?: number;
64
+ maintainCustomerJourney?: boolean;
65
+ maintainCustomerPreferences?: IMaintainCustomerPreferences;
66
+ mapZoom?: number;
67
+ minimumCreditCardAmount?: number;
68
+ nutritionZone?: INutritionZone;
69
+ paymentCards?: IPaymentCards;
70
+ pdpDetailsLayout?: IProductDetailsPageLayout;
71
+ productCardTitleHeight?: number;
72
+ productCards?: IProductCardsProps;
73
+ productCardv2?: boolean;
74
+ promoTemplateVersion?: number;
75
+ registrationFields?: IRegistrationField[];
76
+ restrictMapPlacesResults?: IRestrictMapPlaces;
77
+ retailerCountry?: IRetailerCountry;
78
+ retailerName: string;
79
+ searchPreview?: ISearchPreviewVisibility;
80
+ secondTierAuthorization?: ISecondTierAuthorization;
81
+ showCheckoutPromoCode?: boolean;
82
+ showImgOnOrder?: boolean;
83
+ siteSettings?: ISiteSettings;
84
+ smartBanner?: ISmartBanner;
85
+ smsNotifications?: ISMSConfig;
86
+ sodiumWarning?: ISodiumWarning;
87
+ specialRequestItems?: boolean;
88
+ subHeaderHeight?: number;
89
+ TimeslotModalSettings?: ITimeslotModalSettings;
90
+ useAddressValidation?: boolean;
91
+ }
92
+ export interface IFeatureSwitch {
93
+ additionalCharges: boolean;
94
+ clientCache: boolean;
95
+ vouchers: IVouchers;
96
+ giftCards: IGiftCards;
97
+ smartbanner: ISmartBanner;
98
+ entryModalVersion: IEntryModalVersion;
99
+ addressIntegration: IAddressIntegration;
100
+ hideAlcoholRule: IShoppingRuleControl;
101
+ addressIntegrationV2: boolean;
102
+ }
103
+ export interface ISiteSettings {
104
+ anonymousCart: boolean;
105
+ }
106
+ export interface IVouchers {
107
+ enabled: boolean;
108
+ reCaptcha: boolean;
109
+ }
110
+ export interface IPromotionCalculator {
111
+ bundlePromotionCalculator: boolean;
112
+ nonBundlePromotionCalculator: boolean;
113
+ }
114
+ export interface IGiftCards {
115
+ enabled: boolean;
116
+ giftCardInputValidation: string;
117
+ pinInputValidation: string;
118
+ reCaptcha: boolean;
119
+ }
120
+ export declare type IEntryModalVersion = "entry" | "geolocation";
121
+ export interface ISmartBanner {
122
+ enabled: boolean;
123
+ title: string;
124
+ author: string;
125
+ price: string;
126
+ priceSuffixApple: string;
127
+ priceSuffixGoogle: string;
128
+ iconApple: string;
129
+ iconGoogle: string;
130
+ button: string;
131
+ buttonUrlApple: string;
132
+ buttonUrlGoogle: string;
133
+ closeLabel: string;
134
+ }
135
+ export interface IGlobalLayouts {
136
+ cartSummary: ICartSummaryLayout;
137
+ couponGallery: ICouponGalleryLayout;
138
+ }
139
+ export interface ICouponGalleryLayout {
140
+ enabled: boolean;
141
+ galleryIsIframe: boolean;
142
+ galleryHasNavLink: boolean;
143
+ }
144
+ export interface ICartSummaryLayout {
145
+ showTaxTotal: boolean;
146
+ showTaxGroups: boolean;
147
+ }
148
+ export interface IExternalApps {
149
+ sts?: IExternalAppSTS;
150
+ }
151
+ export interface IExternalAppSTS {
152
+ customTermPolicy?: string;
153
+ }
154
+ export interface ISecondTierAuthorization {
155
+ time: undefined | null | number;
156
+ pages: string[];
157
+ }
158
+ export interface IFlippConfig {
159
+ version: 1;
160
+ production: boolean;
161
+ scriptUrl: IFlippScriptUrls;
162
+ retailer: "wakefernpricerite" | "saveonfoods" | "unitedsupermarkets" | "dearbornmarket" | "saveonfoods";
163
+ autoLocate: boolean;
164
+ useRequestedDomain: boolean;
165
+ }
166
+ export interface IFlippConfigV2 {
167
+ version: 2;
168
+ retailer: string;
169
+ merchantId: string;
170
+ accessToken: string;
171
+ zoom: number;
172
+ locale: string;
173
+ hideHeader: boolean;
174
+ }
175
+ export declare type IFlippScriptUrls = "circulars.priceritemarketplace" | "circulars.dearbornmarket" | "flyers.v8.commerce.mi9cloud" | "flyers.stg.v8.mywebgrocer" | "flyers.saveonfoods";
176
+ export declare type IAllSettings = {
177
+ [envName in IEnvNames]: IRetailerSettings;
178
+ };
179
+ export interface ISMSConfig {
180
+ enabled: boolean;
181
+ getEnrollmentUrl: string;
182
+ postEnrollmentUrl: string;
183
+ }
184
+ export interface IPageAdvertsRow {
185
+ [row: number]: IAdvertsData;
186
+ }
187
+ export declare type IScreenType = "mobile" | "tablet" | "desktop";
188
+ export interface ITimeslotModalSettings {
189
+ showOnAddToCart: boolean;
190
+ timeslotRequiredToAddToCart: boolean;
191
+ timeslotRequiredToViewCartReview: boolean;
192
+ timeslotRequiredToViewCheckout: boolean;
193
+ }
194
+ export declare type IAdvertsData = {
195
+ [screen in IScreenType]?: string;
196
+ };
197
+ export declare type IAdvertSettings = {
198
+ page_homepage?: IAdvertLeaderboards;
199
+ page_search?: IAdvertLeaderboards & IAdvertProductGrid & IAdvertSkyScrapers;
200
+ page_cart?: IAdvertLeaderboards & IAdvertSkyScrapers;
201
+ "page_product-categories"?: IAdvertLeaderboards & IAdvertProductGrid & IAdvertSkyScrapers;
202
+ "page_product-listing"?: IAdvertLeaderboards & IAdvertProductGrid & IAdvertSkyScrapers;
203
+ };
204
+ export declare type IPageNamesForAdverts = {
205
+ [key in keyof IAdvertSettings]: string;
206
+ };
207
+ export interface IAdvertLeaderboards {
208
+ leaderboards?: IPageAdvertsRow;
209
+ }
210
+ export interface IAdvertProductGrid {
211
+ productGrid?: {
212
+ leaderboards?: IPageAdvertsRow;
213
+ productCardBanners?: IPageAdvertsRow;
214
+ };
215
+ }
216
+ export interface IAdvertSkyScrapers {
217
+ skyscrapers?: IAdvertsData;
218
+ }
219
+ export interface IGoogleAutocompleteSettings {
220
+ types?: IGoogleAutocompleteTypes;
221
+ bounds?: IGoogleAutocompleteBounds;
222
+ strictBounds?: boolean;
223
+ restrictCountries?: string[];
224
+ }
225
+ export interface IGoogleAutocompleteBounds {
226
+ east_longitude: number;
227
+ north_latitude: number;
228
+ south_latitude: number;
229
+ west_longitude: number;
230
+ }
231
+ export declare type IGoogleAutocompleteTypes = "geocode" | "address" | "establishment" | "(regions)" | "(cities)";
232
+ export interface ICtaButtons {
233
+ iconAlignment: "left" | "right" | null;
234
+ iconName: IconNames;
235
+ }
236
+ export interface ISodiumWarning {
237
+ isEnabled: boolean;
238
+ threshold: number;
239
+ }
240
+ export interface IAddressesSettings {
241
+ addressValidationTypes: IAddressValidationTypes;
242
+ eircode: {
243
+ enabled: boolean;
244
+ url: string;
245
+ };
246
+ integration: {
247
+ enabled: boolean;
248
+ addressFinderType: IAddressFinderType;
249
+ addNewAddressUrl: string;
250
+ editAddressUrl: string;
251
+ deleteAddressUrl: string;
252
+ getLocationUrl: string;
253
+ getAddressesUrl: string;
254
+ };
255
+ useAddressValidation: boolean;
256
+ disableAddressOnDelivery: boolean;
257
+ }
258
+ export interface IAddressesSettingsV2 {
259
+ addressValidationTypes: IAddressValidationTypes;
260
+ eircode: {
261
+ enabled: boolean;
262
+ url: string;
263
+ };
264
+ integration: {
265
+ enabled: boolean;
266
+ addressFinderType: IAddressFinderType;
267
+ useForNewAddresses: boolean;
268
+ addNewAddressUrl: string;
269
+ editAddressUrl: string;
270
+ deleteAddressUrl: string;
271
+ };
272
+ useAddressValidation: boolean;
273
+ }
274
+ export interface ICartSummaryV2 {
275
+ showTaxTotal: boolean;
276
+ showTaxGroups: boolean;
277
+ hideTaxOnSummary: boolean;
278
+ }
279
+ export interface ICheckoutSettingsV2 {
280
+ numericPhonePayload: boolean;
281
+ houseAccountRegExValidation: string;
282
+ minimumCreditCardAmount: number;
283
+ paymentCards: IPaymentCards;
284
+ checkoutValidation: ICheckoutValidation;
285
+ forceDeliverySection: boolean;
286
+ enableInterimModal: boolean;
287
+ }
288
+ export interface IFeaturesV2 {
289
+ additionalCharges: boolean;
290
+ clientCache: boolean;
291
+ vouchers: IVouchers;
292
+ promotionDetailsPage: IPromotionCalculator;
293
+ giftCards: IGiftCards;
294
+ smartbanner: ISmartBanner;
295
+ entryModalVersion: IEntryModalVersion;
296
+ hideAlcoholRule: IShoppingRuleControl;
297
+ addressIntegrationV2: boolean;
298
+ allowInStorePurchases: boolean;
299
+ allowPastPurchases: boolean;
300
+ advertSettings: IAdvertSettings;
301
+ ebtPayments: boolean;
302
+ enableGoogleTranslate: boolean;
303
+ enableNewsletterSignup: boolean;
304
+ enableNotifications: boolean;
305
+ externalStoreSelectorUrl: {
306
+ enabled: boolean;
307
+ url: string;
308
+ };
309
+ favoritesV1: boolean;
310
+ flipp: IFlippConfig | IFlippConfigV2 | null;
311
+ globalAnimations: IGlobalAnimations;
312
+ instacart: {
313
+ enabled: boolean;
314
+ url: string;
315
+ };
316
+ registrationFields: IRegistrationField[];
317
+ secondTierAuthorization?: ISecondTierAuthorization;
318
+ showCheckoutPromoCode: boolean;
319
+ showImgOnOrder: boolean;
320
+ smsNotifications: ISMSConfig;
321
+ specialRequestItems: boolean;
322
+ couponGallery: ICouponGalleryLayout;
323
+ }
324
+ export interface IPdpSettingsV2 {
325
+ nutritionZone: INutritionZone;
326
+ pdpDetailsLayout: IProductDetailsPageLayout;
327
+ sodiumWarning: ISodiumWarning;
328
+ }
329
+ export interface IProductCardSettingsV2 {
330
+ limitProductCardTitleHeight: boolean;
331
+ productCardTitleHeight: number;
332
+ productCards: IProductCardsProps;
333
+ }
334
+ export interface ISiteSettingsV2 {
335
+ anonymousCart: boolean;
336
+ ctaButtons: ICtaButtons | null | undefined;
337
+ daysToRemainSignedIn: number;
338
+ defaultCountry: IDefaultCounty;
339
+ defaultSearchParams: IDefaultSearchParams;
340
+ defaultShoppingMode: "pickup" | "planning" | "delivery";
341
+ defaultStoreLocation: IDefaultStoreLocation;
342
+ disableTprPrice: boolean;
343
+ footerVersion: IFooterTypes;
344
+ googleAutocompleteSettings: IGoogleAutocompleteSettings;
345
+ gtmId: string;
346
+ hideWelcomeModalOnCorporate: boolean;
347
+ isPlanningOnly: boolean;
348
+ RemoveAllOutOfStock: boolean;
349
+ mainHeaderHeight: number;
350
+ maintainCustomerJourney: boolean;
351
+ maintainCustomerPreferences: IMaintainCustomerPreferences;
352
+ mapZoom: number;
353
+ promoTemplateVersion: number;
354
+ restrictMapPlacesResults: IRestrictMapPlaces;
355
+ retailerCountry: IRetailerCountry;
356
+ retailerName: string;
357
+ searchPreview: ISearchPreviewVisibility;
358
+ subHeaderHeight: number;
359
+ timeslotModalSettings: ITimeslotModalSettings;
360
+ useContentEngineV2Components: IUseContentEngineV2Components;
361
+ }
362
+ export declare type IUseContentEngineV2Components = {
363
+ [key in CMSNames]: boolean;
364
+ };
365
+ export interface IAccountPageSettings {
366
+ loyaltyTab: {
367
+ disabledEdit?: boolean;
368
+ enabled: boolean;
369
+ loyaltyNumberLength: number;
370
+ loyaltyNumberPrefix: string;
371
+ loyaltyValidationType: IValidationType[];
372
+ };
373
+ }
374
+ export interface ILayoutSettings {
375
+ footerVersion: IFooterTypes;
376
+ }
377
+ export declare type ILoggingLevel = "error" | "warning" | "info" | "debug";
378
+ export interface IAddressValidationTypes {
379
+ addressLine1: IValidationType[];
380
+ addressLine2: IValidationType[];
381
+ city: IValidationType[];
382
+ countyProvinceState: IValidationType[];
383
+ familyName: IValidationType[];
384
+ firstName: IValidationType[];
385
+ instructions: IValidationType[];
386
+ phoneNumber: IValidationType[];
387
+ postCode: IValidationType[];
388
+ smsNumber: IValidationType[];
389
+ }
390
+ export interface IDefaultSearchParams {
391
+ q: string;
392
+ page: string;
393
+ skip: string;
394
+ take: string;
395
+ }
396
+ export interface IDefaultStoreLocation {
397
+ latitude: number;
398
+ longitude: number;
399
+ }
400
+ export declare type IDefaultCounty = "USA" | "Canada" | "Ireland" | "Australia" | string;
401
+ export declare type IRetailerCountry = "us" | "ca" | "ie" | "au";
402
+ export interface IRestrictMapPlaces {
403
+ country?: string | string[];
404
+ postalCode?: string;
405
+ route?: string;
406
+ locality?: string;
407
+ administrativeArea?: string;
408
+ fetchNearStoresSettings?: {
409
+ kmRange: number;
410
+ totalTake: number;
411
+ };
412
+ }
413
+ export declare type IValidationType = IValidateDateRange | IValidateLength | IValidateMultipleLengths | "alphaNumeric" | "alphaOnly" | "anyPhone" | "auPhone" | "auPostCode" | "auState" | "caPhone" | "caPostCode" | "caProvince" | "correctDate" | "email" | "ieCounty" | "iePhone" | "iePostCode" | "luhnValidation" | "noSpecialChar" | "numericOnly" | "password" | "required" | "usMobileNumber" | "usPhone" | "usPhone10Digits" | "usPostCode" | "usState" | "notWhiteSpacesOnly";
414
+ export declare type IEnvNames = "dev" | "de2" | "qat" | "qa2" | "int" | "in2" | "lod" | "lo2" | "stg" | "st2" | "stagingConfig" | "productionConfig";
415
+ export declare type INutritionZone = "us" | "eu" | "au" | "ca";
416
+ export declare type IFooterTypes = "default" | "version2" | "version3" | "version4" | "version5" | "version6";
417
+ export declare type IValidateLength = {
418
+ _type: "less" | "more" | "exact";
419
+ length: number;
420
+ };
421
+ export declare type IValidateMultipleLengths = {
422
+ _type: "multi";
423
+ multiLength: number[];
424
+ };
425
+ export declare type IValidateDateRange = {
426
+ _type: "overYears";
427
+ overYears: number;
428
+ };
429
+ export declare type IRegistrationFieldTypes = "default" | "version2";
430
+ export declare type IRegistrationFieldNames = "phone" | "loyaltyId" | "isAdultConfirmed" | "marketingConsent" | "dateOfBirth";
431
+ export interface IRegistrationField {
432
+ name: IRegistrationFieldNames;
433
+ label: string;
434
+ placeholder: string;
435
+ designVersion: IRegistrationFieldTypes;
436
+ validationTypes: IValidationType[];
437
+ }
438
+ export interface ICheckoutValidation {
439
+ instructions: IValidationType[];
440
+ phoneNumber: IValidationType[];
441
+ smsNumber: IValidationType[];
442
+ }
443
+ export interface ISearchPreview {
444
+ suggestions: boolean;
445
+ products: boolean;
446
+ }
447
+ export interface ISearchPreviewVisibility {
448
+ desktop?: ISearchPreview;
449
+ mobile?: ISearchPreview;
450
+ }
451
+ export declare type IPaymentCards = {
452
+ [cardName in PaymentCards]: boolean;
453
+ };
454
+ export interface IAdminOnlyV2 {
455
+ bannerName: string;
456
+ logoUrl: string;
457
+ }
458
+ export interface IAccountPageV2 {
459
+ loyaltyTab: {
460
+ disabledEdit?: boolean;
461
+ enabled: boolean;
462
+ loyaltyNumberLength: number;
463
+ loyaltyNumberPrefix: string;
464
+ loyaltyValidationType: IValidationType[];
465
+ };
466
+ idp: {
467
+ enabled: boolean;
468
+ target: "_self" | "_blank";
469
+ url: string;
470
+ };
471
+ profileTab: {
472
+ deleteAccountButton: boolean;
473
+ };
474
+ }
475
+ export interface IGlobalAnimations {
476
+ confetti: ILayoutAnimationsConfetti;
477
+ }
478
+ export interface ILayoutAnimationsConfetti {
479
+ enableConfettiAnimation: boolean;
480
+ }
481
+ export interface IGlobalCheckoutProps {
482
+ numericPhonePayload: boolean;
483
+ }
484
+ export interface IShoppingRuleControl {
485
+ modal: boolean;
486
+ pdp: boolean;
487
+ productCard: boolean;
488
+ }
489
+ export interface IAddressIntegration {
490
+ enabled: boolean;
491
+ addressFinderType: IAddressFinderType;
492
+ useForNewAddresses: boolean;
493
+ }
494
+ export declare type IAddressFinderType = "AUS" | "EU" | "IE" | "US" | "UK" | "CA";
495
+ export interface IProductCardsProps {
496
+ gridRowLength: {
497
+ [key in IScreenType]: number;
498
+ };
499
+ carouselsRowLength: {
500
+ [key in IScreenType]: number;
501
+ };
502
+ productCard: {
503
+ enabled: boolean;
504
+ layouts: IProductCardLayouts;
505
+ components: IProductCardV2ComponentProps;
506
+ };
507
+ }
508
+ export interface IProductCardV2ComponentProps {
509
+ promotionLabel: IProductCardV2PromotionLabelsSettings;
510
+ }
511
+ export interface IProductCardV2PromotionLabelsSettings {
512
+ showLines: number;
513
+ }
514
+ export declare type IProductCardLayouts = {
515
+ ContainersGrid: "default" | "pce-centered";
516
+ ContainersCarousel: "default" | "pce-centered";
517
+ };
518
+ export declare type IProductCardLayoutObjects<T> = {
519
+ [Place in keyof IProductCardLayouts]: {
520
+ [key in IProductCardLayouts[Place]]: T;
521
+ };
522
+ };
523
+ export declare type IProductCardILayoutTypes = keyof IProductCardLayouts;
524
+ export declare type IProductCardILayoutVersions = IProductCardLayouts[IProductCardILayoutTypes];
525
+ export interface IProductDetailsPageLayout {
526
+ desktop: {
527
+ left: PdpDetailsElementLayout[];
528
+ right: PdpDetailsElementLayout[];
529
+ };
530
+ mobile: {
531
+ left: PdpDetailsElementLayout[];
532
+ right: PdpDetailsElementLayout[];
533
+ };
534
+ }
535
+ export declare type PdpDetailsElementLayout = "productNutrition" | "productIngredients" | "productDescription" | "sodiumWarning" | "productNumber" | "recommendations" | "productSalesInfo" | string;
536
+ export declare type IConfigurableCustomerPreference = "marketingPreferences";
537
+ export interface IMaintainCustomerPreferences {
538
+ enabled: boolean;
539
+ sections: {
540
+ [key in IConfigurableCustomerPreference]: string[];
541
+ };
542
+ optInMarketingPreferences: boolean;
543
+ }