@liquidcommercedev/rmn-sdk 1.5.0-beta.30 → 1.5.0-beta.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -6132,773 +6132,1161 @@ function getEventTypeFromRawEvent(event) {
6132
6132
  return null;
6133
6133
  }
6134
6134
 
6135
- const SPOT_EVENTS_EXAMPLE = [
6136
- {
6137
- event: exports.RMN_SPOT_EVENT.CLICK,
6138
- url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwidXIiOm51bGx9&s=hWz37kbxi_u95EVNn2aoQhc5Aas',
6139
- },
6140
- {
6141
- event: exports.RMN_SPOT_EVENT.IMPRESSION,
6142
- url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiYmEiOjEsImZxIjowfQ&s=djoysjCimurf-5T11AlNAwwLSS8',
6143
- },
6144
- {
6145
- event: exports.RMN_SPOT_EVENT.PURCHASE,
6146
- url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjU5fQ&s=AAPAw-3SfZ0JMzjEGFSwt9L-2S4',
6147
- },
6148
- {
6149
- event: exports.RMN_SPOT_EVENT.ADD_TO_CART,
6150
- url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjYwfQ&s=uzQFcjgL7m9XqUG8FvTPVN5YkZY',
6151
- },
6152
- {
6153
- event: exports.RMN_SPOT_EVENT.ADD_TO_WISHLIST,
6154
- url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjYzfQ&s=m3ISU_iIy-OFtXrTKpI6cJAEC0k',
6155
- },
6156
- {
6157
- event: exports.RMN_SPOT_EVENT.BUY_NOW,
6158
- url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjY5fQ&s=l6MOscQC-q-FkC2Ksd7w6jjySCQ',
6159
- },
6160
- ];
6161
- ({
6162
- rbHomepageHero: [
6163
- {
6164
- id: 'abc123',
6165
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6166
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6167
- width: 1140,
6168
- height: 640,
6169
- header: 'Premium Wine Collection',
6170
- description: 'Discover our exclusive selection of vintage wines',
6171
- ctaText: 'Shop Wines',
6172
- textColor: '#ffffff',
6173
- ctaTextColor: '#ffffff',
6174
- primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Collection',
6175
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Wine',
6176
- events: SPOT_EVENTS_EXAMPLE,
6177
- productIds: [1, 2, 3],
6178
- },
6179
- {
6180
- id: 'jkl012',
6181
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6182
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6183
- width: 1140,
6184
- height: 640,
6185
- header: 'Whiskey Collection',
6186
- description: 'Premium whiskeys from around the world',
6187
- ctaText: 'Shop Whiskeys',
6188
- textColor: '#ffffff',
6189
- backgroundColor: '#2c1810',
6190
- ctaTextColor: '#2c1810',
6191
- primaryImage: 'https://placehold.co/1140x640/png?text=Whiskey',
6192
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Whiskey',
6193
- events: SPOT_EVENTS_EXAMPLE,
6194
- productIds: [10, 11],
6195
- },
6196
- {
6197
- id: 'stu901',
6198
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6199
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6200
- width: 1140,
6201
- height: 640,
6202
- header: 'Summer Cocktails',
6203
- description: 'Essential spirits for summer mixing',
6204
- ctaText: 'Mix It Up',
6205
- textColor: '#ffffff',
6206
- backgroundColor: '#4d3a0a',
6207
- ctaTextColor: '#4d3a0a',
6208
- primaryImage: 'https://placehold.co/1140x640/png?text=Cocktails',
6209
- secondaryImage: 'https://placehold.co/1140x640/png?text=Mixers',
6210
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Cocktails',
6211
- mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Mixers',
6212
- events: SPOT_EVENTS_EXAMPLE,
6213
- productIds: [16, 17, 18],
6214
- },
6215
- {
6216
- id: 'def456',
6217
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6218
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6219
- width: 1140,
6220
- height: 640,
6221
- header: 'Craft Beer Festival',
6222
- description: 'Local breweries and exclusive releases',
6223
- ctaText: 'Explore Beers',
6224
- textColor: '#ffffff',
6225
- ctaTextColor: '#ffffff',
6226
- primaryImage: 'https://placehold.co/1140x640/png?text=Beer+Festival',
6227
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Beer',
6228
- events: SPOT_EVENTS_EXAMPLE,
6229
- productIds: [4, 5, 6],
6230
- },
6231
- {
6232
- id: 'mno345',
6233
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6234
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6235
- width: 1140,
6236
- height: 640,
6237
- header: 'Champagne Selection',
6238
- description: 'Finest champagnes for every occasion',
6239
- ctaText: 'View Champagnes',
6240
- textColor: '#ffffff',
6241
- backgroundColor: '#1a1a1a',
6242
- ctaTextColor: '#1a1a1a',
6243
- primaryImage: 'https://placehold.co/1140x640/png?text=Champagne',
6244
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Champagne',
6245
- events: SPOT_EVENTS_EXAMPLE,
6246
- productIds: [12, 13],
6247
- },
6248
- {
6249
- id: 'vwx234',
6250
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6251
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6252
- width: 1140,
6253
- height: 640,
6254
- header: 'Wine Regions',
6255
- description: 'Explore wines from top regions',
6256
- ctaText: 'Tour Regions',
6257
- textColor: '#ffffff',
6258
- backgroundColor: '#4d0a0a',
6259
- ctaTextColor: '#4d0a0a',
6260
- primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Regions',
6261
- secondaryImage: 'https://placehold.co/1140x640/png?text=Vineyards',
6262
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Regions',
6263
- mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Vineyards',
6264
- events: SPOT_EVENTS_EXAMPLE,
6265
- productIds: [19, 20, 21],
6266
- },
6267
- {
6268
- id: 'ghi789',
6269
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6270
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6271
- width: 1140,
6272
- height: 640,
6273
- header: 'Rare Spirits',
6274
- description: 'Limited edition spirits collection',
6275
- ctaText: 'View Collection',
6276
- textColor: '#ffffff',
6277
- ctaTextColor: '#ffffff',
6278
- primaryImage: 'https://placehold.co/1140x640/png?text=Rare+Spirits',
6279
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Spirits',
6280
- events: SPOT_EVENTS_EXAMPLE,
6281
- productIds: [7, 8, 9],
6282
- },
6283
- {
6284
- id: 'pqr678',
6285
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6286
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6287
- width: 1140,
6288
- height: 640,
6289
- header: 'Gin Collection',
6290
- description: 'Artisanal gins and botanicals',
6291
- ctaText: 'Explore Gins',
6292
- textColor: '#ffffff',
6293
- backgroundColor: '#0a4d4d',
6294
- ctaTextColor: '#0a4d4d',
6295
- primaryImage: 'https://placehold.co/1140x640/png?text=Gin',
6296
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Gin',
6297
- events: SPOT_EVENTS_EXAMPLE,
6298
- productIds: [14, 15],
6299
- },
6300
- {
6301
- id: 'yz5678',
6302
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6303
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6304
- width: 1140,
6305
- height: 640,
6306
- header: 'Tequila Collection',
6307
- description: 'Premium tequilas and mezcals',
6308
- ctaText: 'Shop Tequila',
6309
- textColor: '#ffffff',
6310
- backgroundColor: '#0a4d2b',
6311
- ctaTextColor: '#0a4d2b',
6312
- primaryImage: 'https://placehold.co/1140x640/png?text=Tequila',
6313
- secondaryImage: 'https://placehold.co/1140x640/png?text=Mezcal',
6314
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Tequila',
6315
- mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Mezcal',
6316
- events: SPOT_EVENTS_EXAMPLE,
6317
- productIds: [22, 23, 24],
6318
- },
6319
- ],
6320
- rbHomepageHeroFullImage: [
6321
- {
6322
- id: 'hjk567',
6323
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6324
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6325
- width: 1140,
6326
- height: 640,
6327
- header: 'Holiday Gift Guide',
6328
- description: 'Perfect spirits for every occasion',
6329
- ctaText: 'Shop Gifts',
6330
- textColor: '#ffffff',
6331
- ctaTextColor: '#ffffff',
6332
- primaryImage: 'https://placehold.co/1140x640/png?text=Gift+Guide',
6333
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Gifts',
6334
- events: SPOT_EVENTS_EXAMPLE,
6335
- productIds: [25, 26],
6336
- },
6337
- {
6338
- id: 'qwe890',
6339
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6340
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
6341
- width: 1140,
6342
- height: 640,
6343
- header: 'Summer Wine Festival',
6344
- description: 'Refreshing wines for summer',
6345
- ctaText: 'Shop Festival',
6346
- textColor: '#ffffff',
6347
- ctaTextColor: '#ffffff',
6348
- primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Festival',
6349
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Festival',
6350
- events: SPOT_EVENTS_EXAMPLE,
6351
- productIds: [27, 28],
6352
- },
6353
- ],
6354
- rbHomepageHeroTwoTile: [
6355
- {
6356
- id: 'iop987',
6357
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6358
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6359
- width: 1140,
6360
- height: 640,
6361
- header: 'Bourbon Selection',
6362
- description: "Kentucky's finest bourbons",
6363
- ctaText: 'Shop Bourbon',
6364
- textColor: '#ffffff',
6365
- backgroundColor: '#2c1810',
6366
- ctaTextColor: '#2c1810',
6367
- primaryImage: 'https://placehold.co/1140x640/png?text=Bourbon',
6368
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Bourbon',
6369
- events: SPOT_EVENTS_EXAMPLE,
6370
- productIds: [29, 30],
6371
- },
6372
- {
6373
- id: 'lkj012',
6374
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6375
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
6376
- width: 1140,
6377
- height: 640,
6378
- header: 'Vodka Collection',
6379
- description: 'Premium vodkas from around the world',
6380
- ctaText: 'Shop Vodka',
6381
- textColor: '#ffffff',
6382
- backgroundColor: '#1a1a1a',
6383
- ctaTextColor: '#1a1a1a',
6384
- primaryImage: 'https://placehold.co/1140x640/png?text=Vodka',
6385
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Vodka',
6386
- events: SPOT_EVENTS_EXAMPLE,
6387
- productIds: [31, 32],
6388
- },
6389
- ],
6390
- rbHomepageHeroThreeTile: [
6391
- {
6392
- id: 'bnm345',
6393
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6394
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6395
- width: 1140,
6396
- height: 640,
6397
- header: 'Rum Collection',
6398
- description: 'Caribbean and craft rums',
6399
- ctaText: 'Shop Rum',
6400
- textColor: '#ffffff',
6401
- backgroundColor: '#4d3a0a',
6402
- ctaTextColor: '#4d3a0a',
6403
- primaryImage: 'https://placehold.co/1140x640/png?text=Rum',
6404
- secondaryImage: 'https://placehold.co/1140x640/png?text=Craft+Rum',
6405
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Rum',
6406
- mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Craft',
6407
- events: SPOT_EVENTS_EXAMPLE,
6408
- productIds: [33, 34],
6409
- },
6410
- {
6411
- id: 'fgh678',
6412
- spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6413
- variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
6414
- width: 1140,
6415
- height: 640,
6416
- header: 'Scotch Selection',
6417
- description: 'Single malts and blends',
6418
- ctaText: 'Shop Scotch',
6419
- textColor: '#ffffff',
6420
- backgroundColor: '#4d0a0a',
6421
- ctaTextColor: '#4d0a0a',
6422
- primaryImage: 'https://placehold.co/1140x640/png?text=Scotch',
6423
- secondaryImage: 'https://placehold.co/1140x640/png?text=Single+Malts',
6424
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Scotch',
6425
- mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Malts',
6426
- events: SPOT_EVENTS_EXAMPLE,
6427
- productIds: [35, 36],
6428
- },
6429
- ],
6430
- rbLargeCategoryImageTout: [
6431
- {
6432
- id: 'cde567',
6433
- spot: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
6434
- variant: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
6435
- width: 468,
6436
- height: 410,
6437
- header: 'Rare & Limited Edition',
6438
- description: 'Discover our collection of hard-to-find and limited release spirits.',
6439
- textColor: '#ffffff',
6440
- ctaTextColor: '#ffffff',
6441
- primaryImage: 'https://placehold.co/468x410/png?text=Rare+Spirits',
6442
- mobilePrimaryImage: 'https://placehold.co/468x410/png?text=Mobile+Rare+Spirits',
6443
- ctaText: 'Shop Rare Spirits',
6444
- events: SPOT_EVENTS_EXAMPLE,
6445
- productIds: [37, 38, 39, 40, 41],
6446
- },
6447
- {
6448
- id: 'efg789',
6449
- spot: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
6450
- variant: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
6451
- width: 468,
6452
- height: 410,
6453
- header: 'Vintage Champagnes',
6454
- description: 'Explore our prestigious collection of aged champagnes.',
6455
- textColor: '#ffffff',
6456
- ctaTextColor: '#ffffff',
6457
- primaryImage: 'https://placehold.co/468x410/png?text=Vintage+Champagne',
6458
- mobilePrimaryImage: 'https://placehold.co/468x410/png?text=Mobile+Champagne',
6459
- ctaText: 'View Collection',
6460
- events: SPOT_EVENTS_EXAMPLE,
6461
- productIds: [42, 43, 44, 45, 46],
6462
- },
6463
- {
6464
- id: 'ghi012',
6465
- spot: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
6466
- variant: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
6467
- width: 468,
6468
- height: 410,
6469
- header: 'Small Batch Bourbon',
6470
- description: 'Hand-selected premium bourbon from craft distilleries.',
6471
- textColor: '#ffffff',
6472
- ctaTextColor: '#ffffff',
6473
- primaryImage: 'https://placehold.co/468x410/png?text=Craft+Bourbon',
6474
- mobilePrimaryImage: 'https://placehold.co/468x410/png?text=Mobile+Bourbon',
6475
- ctaText: 'Explore Bourbon',
6476
- events: SPOT_EVENTS_EXAMPLE,
6477
- productIds: [47, 48, 49, 50, 51],
6478
- },
6479
- ],
6480
- rbSmallDiscoverTout: [
6481
- {
6482
- id: 'jkl345',
6483
- spot: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
6484
- variant: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
6485
- width: 224,
6486
- height: 378,
6487
- header: 'Château Margaux 2015 Bordeaux',
6488
- textColor: '#ffffff',
6489
- primaryImage: 'https://placehold.co/224x378/png?text=Château+Margaux',
6490
- mobilePrimaryImage: 'https://placehold.co/224x378/png?text=Mobile+Château+Margaux',
6491
- events: SPOT_EVENTS_EXAMPLE,
6492
- productIds: [52, 53, 54, 55, 56],
6493
- },
6494
- {
6495
- id: 'lmn678',
6496
- spot: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
6497
- variant: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
6498
- width: 224,
6499
- height: 378,
6500
- header: 'Macallan 25 Year',
6501
- textColor: '#ffffff',
6502
- primaryImage: 'https://placehold.co/224x378/png?text=Macallan+25',
6503
- mobilePrimaryImage: 'https://placehold.co/224x378/png?text=Mobile+Macallan',
6504
- events: SPOT_EVENTS_EXAMPLE,
6505
- productIds: [57, 58, 59, 60, 61],
6506
- },
6507
- {
6508
- id: 'nop901',
6509
- spot: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
6510
- variant: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
6511
- width: 224,
6512
- height: 378,
6513
- header: 'Louis XIII Cognac',
6514
- textColor: '#ffffff',
6515
- primaryImage: 'https://placehold.co/224x378/png?text=Louis+XIII',
6516
- mobilePrimaryImage: 'https://placehold.co/224x378/png?text=Mobile+Louis+XIII',
6517
- events: SPOT_EVENTS_EXAMPLE,
6518
- productIds: [62, 63, 64, 65, 66],
6519
- },
6520
- ],
6521
- rbSmallCategoryImageTout: [
6522
- {
6523
- id: 'qrs234',
6524
- spot: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
6525
- variant: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
6526
- width: 224,
6527
- height: 410,
6528
- header: 'Japanese Sake',
6529
- textColor: '#ffffff',
6530
- primaryImage: 'https://placehold.co/224x410/png?text=Japanese+Sake',
6531
- mobilePrimaryImage: 'https://placehold.co/224x410/png?text=Mobile+Japanese+Sake',
6532
- events: SPOT_EVENTS_EXAMPLE,
6533
- productIds: [67, 68, 69, 70, 71],
6534
- },
6535
- {
6536
- id: 'stu567',
6537
- spot: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
6538
- variant: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
6539
- width: 224,
6540
- height: 410,
6541
- header: 'Craft Vermouth',
6542
- textColor: '#ffffff',
6543
- primaryImage: 'https://placehold.co/224x410/png?text=Craft+Vermouth',
6544
- mobilePrimaryImage: 'https://placehold.co/224x410/png?text=Mobile+Vermouth',
6545
- events: SPOT_EVENTS_EXAMPLE,
6546
- productIds: [72, 73, 74, 75, 76],
6547
- },
6548
- {
6549
- id: 'vwx890',
6550
- spot: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
6551
- variant: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
6552
- width: 224,
6553
- height: 410,
6554
- header: 'Premium Mezcal',
6555
- textColor: '#ffffff',
6556
- primaryImage: 'https://placehold.co/224x410/png?text=Premium+Mezcal',
6557
- mobilePrimaryImage: 'https://placehold.co/224x410/png?text=Mobile+Mezcal',
6558
- events: SPOT_EVENTS_EXAMPLE,
6559
- productIds: [77, 78, 79, 80, 81],
6560
- },
6561
- ],
6562
- rbCollectionBannerWithoutTextBlock: [
6563
- {
6564
- id: 'yz1234',
6565
- spot: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
6566
- variant: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
6567
- width: 887,
6568
- height: 344,
6569
- primaryImage: 'https://placehold.co/887x344/png?text=Summer+Cocktails',
6570
- mobilePrimaryImage: 'https://placehold.co/887x344/png?text=Mobile+Summer+Cocktails',
6571
- events: SPOT_EVENTS_EXAMPLE,
6572
- productIds: [82, 83, 84, 85, 86],
6573
- },
6574
- {
6575
- id: 'abc567',
6576
- spot: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
6577
- variant: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
6578
- width: 887,
6579
- height: 344,
6580
- primaryImage: 'https://placehold.co/887x344/png?text=Holiday+Spirits',
6581
- mobilePrimaryImage: 'https://placehold.co/887x344/png?text=Mobile+Holiday+Spirits',
6582
- events: SPOT_EVENTS_EXAMPLE,
6583
- productIds: [87, 88, 89, 90, 91],
6584
- },
6585
- {
6586
- id: 'def901',
6587
- spot: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
6588
- variant: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
6589
- width: 887,
6590
- height: 344,
6591
- primaryImage: 'https://placehold.co/887x344/png?text=Wine+Essentials',
6592
- mobilePrimaryImage: 'https://placehold.co/887x344/png?text=Mobile+Wine+Essentials',
6593
- events: SPOT_EVENTS_EXAMPLE,
6594
- productIds: [92, 93, 94, 95, 96],
6595
- },
6596
- ],
6597
- rbNavigationBanner: [
6598
- {
6599
- id: 'ghi234',
6600
- spot: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
6601
- variant: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
6602
- width: 440,
6603
- height: 220,
6604
- header: 'Explore Tequilas',
6605
- textColor: '#ffffff',
6606
- primaryImage: 'https://placehold.co/440x220/png?text=Tequila+Collection',
6607
- mobilePrimaryImage: 'https://placehold.co/440x220/png?text=Mobile+Tequila+Collection',
6608
- events: SPOT_EVENTS_EXAMPLE,
6609
- productIds: [97, 98, 99, 100, 101],
6610
- },
6611
- {
6612
- id: 'jkl678',
6613
- spot: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
6614
- variant: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
6615
- width: 440,
6616
- height: 220,
6617
- header: 'Craft Gin Selection',
6618
- textColor: '#ffffff',
6619
- primaryImage: 'https://placehold.co/440x220/png?text=Gin+Selection',
6620
- mobilePrimaryImage: 'https://placehold.co/440x220/png?text=Mobile+Gin+Selection',
6621
- events: SPOT_EVENTS_EXAMPLE,
6622
- productIds: [102, 103, 104, 105, 106],
6623
- },
6624
- {
6625
- id: 'mno012',
6626
- spot: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
6627
- variant: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
6628
- width: 440,
6629
- height: 220,
6630
- header: 'Premium Vodka',
6631
- textColor: '#ffffff',
6632
- primaryImage: 'https://placehold.co/440x220/png?text=Vodka+Premium',
6633
- mobilePrimaryImage: 'https://placehold.co/440x220/png?text=Mobile+Vodka+Premium',
6634
- events: SPOT_EVENTS_EXAMPLE,
6635
- productIds: [107, 108, 109, 110, 111],
6636
- },
6637
- ],
6638
- rbInText: [
6639
- {
6640
- id: 'mxo259',
6641
- spot: exports.RMN_SPOT_TYPE.RB_IN_TEXT,
6642
- variant: exports.RMN_SPOT_TYPE.RB_IN_TEXT,
6643
- width: 1,
6644
- height: 1,
6645
- header: 'Premium Vodka',
6646
- textColor: '#ffffff',
6647
- backgroundColor: '#000000',
6648
- events: SPOT_EVENTS_EXAMPLE,
6649
- productIds: [107, 108, 109, 110, 111],
6650
- },
6651
- ],
6652
- rbVideoPlayer: [
6653
- {
6654
- id: 'mxo259',
6655
- spot: exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER,
6656
- variant: exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER,
6657
- width: 1280,
6658
- height: 720,
6659
- videoUrl: 'https://www.youtube.com/watch?v=9bZkp7q19f0',
6660
- videoOverlayImage: 'https://placehold.co/1280x720/png?text=Video+Overlay',
6661
- videoOverlayHeader: 'Watch Our Story',
6662
- videoOverlayDescription: 'Discover the history of our distillery',
6663
- videoControls: true,
6664
- videoAutoPlay: true,
6665
- videoMute: true,
6666
- videoLoop: true,
6667
- events: SPOT_EVENTS_EXAMPLE,
6668
- productIds: [107, 108, 109, 110, 111],
6669
- },
6670
- ],
6671
- });
6672
- ({
6673
- banner: [],
6674
- billboard: [
6675
- {
6676
- id: 'kol567',
6677
- spot: exports.RMN_SPOT_TYPE.BILLBOARD,
6678
- variant: `${exports.RMN_SPOT_TYPE.BILLBOARD}V2`,
6679
- width: 1140,
6680
- height: 640,
6681
- header: 'Holiday Gift Guide',
6682
- description: 'Perfect spirits for every occasion',
6683
- ctaText: 'Shop Gifts',
6684
- textColor: '#ffffff',
6685
- ctaTextColor: '#ffffff',
6686
- primaryImage: 'https://placehold.co/1140x640/png?text=Gift+Guide',
6687
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Gifts',
6688
- events: SPOT_EVENTS_EXAMPLE,
6689
- productIds: [25, 26],
6690
- },
6691
- {
6692
- id: 'hpm390',
6693
- spot: exports.RMN_SPOT_TYPE.BILLBOARD,
6694
- variant: `${exports.RMN_SPOT_TYPE.BILLBOARD}V2`,
6695
- width: 1140,
6696
- height: 640,
6697
- header: 'Summer Wine Festival',
6698
- description: 'Refreshing wines for summer',
6699
- ctaText: 'Shop Festival',
6700
- textColor: '#ffffff',
6701
- ctaTextColor: '#ffffff',
6702
- primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Festival',
6703
- mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Festival',
6704
- events: SPOT_EVENTS_EXAMPLE,
6705
- productIds: [27, 28],
6706
- },
6707
- ],
6708
- button2: [],
6709
- featurePhoneLargeBanner: [],
6710
- featurePhoneMediumBanner: [],
6711
- featurePhoneSmallBanner: [],
6712
- halfPage: [],
6713
- inText: [],
6714
- largeLeaderboard: [],
6715
- largeRectangle: [],
6716
- leaderboard: [],
6717
- mediumRectangle: [],
6718
- microBar: [],
6719
- mobilePhoneInterstitial1: [],
6720
- mobilePhoneInterstitial2: [],
6721
- mobilePhoneInterstitial3: [],
6722
- popUp: [],
6723
- portrait: [],
6724
- rbProductUpcs: [],
6725
- skyscraper: [],
6726
- smallRectangle: [],
6727
- smallSquare: [],
6728
- smartphoneBanner1: [],
6729
- smartphoneBanner2: [],
6730
- square: [],
6731
- verticalBanner: [],
6732
- verticalRectangle: [],
6733
- wideSkyscraper: [],
6734
- });
6735
-
6736
- const SPECIAL_CHARACTER_MAPPING = {
6737
- // Latin-1 Supplement and Latin Extended-A
6738
- æ: 'ae',
6135
+ const LATIN_MAP = {
6136
+ À: 'A',
6137
+ Á: 'A',
6138
+ Â: 'A',
6139
+ Ã: 'A',
6140
+ Ä: 'A',
6141
+ Å: 'A',
6142
+ Æ: 'AE',
6143
+ Ç: 'C',
6144
+ È: 'E',
6145
+ É: 'E',
6146
+ Ê: 'E',
6147
+ Ë: 'E',
6148
+ Ì: 'I',
6149
+ Í: 'I',
6150
+ Î: 'I',
6151
+ Ï: 'I',
6152
+ Ð: 'D',
6153
+ Ñ: 'N',
6154
+ Ò: 'O',
6155
+ Ó: 'O',
6156
+ Ô: 'O',
6157
+ Õ: 'O',
6158
+ Ö: 'O',
6159
+ Ő: 'O',
6160
+ Ø: 'O',
6161
+ Ù: 'U',
6162
+ Ú: 'U',
6163
+ Û: 'U',
6164
+ Ü: 'U',
6165
+ Ű: 'U',
6166
+ Ý: 'Y',
6167
+ Þ: 'TH',
6168
+ Ÿ: 'Y',
6739
6169
  ß: 'ss',
6170
+ à: 'a',
6171
+ á: 'a',
6172
+ â: 'a',
6173
+ ã: 'a',
6174
+ ä: 'a',
6175
+ å: 'a',
6176
+ æ: 'ae',
6177
+ ç: 'c',
6178
+ è: 'e',
6179
+ é: 'e',
6180
+ ê: 'e',
6181
+ ë: 'e',
6182
+ ì: 'i',
6183
+ í: 'i',
6184
+ î: 'i',
6185
+ ï: 'i',
6740
6186
  ð: 'd',
6187
+ ñ: 'n',
6188
+ ò: 'o',
6189
+ ó: 'o',
6190
+ ô: 'o',
6191
+ õ: 'o',
6192
+ ö: 'o',
6193
+ ő: 'o',
6741
6194
  ø: 'o',
6195
+ ù: 'u',
6196
+ ú: 'u',
6197
+ û: 'u',
6198
+ ü: 'u',
6199
+ ű: 'u',
6200
+ ý: 'y',
6742
6201
  þ: 'th',
6743
- ł: 'l',
6744
- đ: 'd',
6745
- ħ: 'h',
6746
- ı: 'i',
6747
- ij: 'ij',
6748
- ŀ: 'l',
6749
- ʼn: 'n',
6750
- ŋ: 'n',
6202
+ ÿ: 'y',
6751
6203
  œ: 'oe',
6752
- ŧ: 't',
6753
- ƀ: 'b',
6754
- ƃ: 'b',
6755
- ƅ: 'h',
6756
- ƈ: 'c',
6757
- ƌ: 'd',
6758
- ƍ: 'd',
6759
- ƒ: 'f',
6760
- ƕ: 'hv',
6761
- ƙ: 'k',
6762
- ƚ: 'l',
6763
- ƛ: 'l',
6764
- ƞ: 'n',
6765
- ơ: 'o',
6766
- ƣ: 'oi',
6767
- ƥ: 'p',
6768
- ƨ: 's',
6769
- ƭ: 't',
6770
- ư: 'u',
6771
- ƴ: 'y',
6772
- ƶ: 'z',
6773
- ƹ: 'zh',
6774
- ƽ: 'y',
6775
- dž: 'dz',
6776
- lj: 'lj',
6777
- nj: 'nj',
6778
- ǎ: 'a',
6779
- ǐ: 'i',
6780
- ǒ: 'o',
6781
- ǔ: 'u',
6782
- ǖ: 'u',
6783
- ǘ: 'u',
6784
- ǚ: 'u',
6785
- ǜ: 'u',
6786
- ǟ: 'a',
6787
- ǡ: 'a',
6788
- ǣ: 'ae',
6789
- ǥ: 'g',
6790
- ǧ: 'g',
6791
- ǩ: 'k',
6792
- ǫ: 'o',
6793
- ǭ: 'o',
6794
- ǯ: 'zh',
6795
- ǰ: 'j',
6796
- dz: 'dz',
6797
- ǵ: 'g',
6798
- ǹ: 'n',
6799
- ǻ: 'a',
6800
- ǽ: 'ae',
6801
- ǿ: 'o',
6802
- // Latin Extended-B
6803
- ȁ: 'a',
6804
- ȃ: 'a',
6805
- ȅ: 'e',
6806
- ȇ: 'e',
6807
- ȉ: 'i',
6808
- ȋ: 'i',
6809
- ȍ: 'o',
6810
- ȏ: 'o',
6811
- ȑ: 'r',
6812
- ȓ: 'r',
6813
- ȕ: 'u',
6814
- ȗ: 'u',
6204
+ };
6205
+ const GREEK_MAP = {
6206
+ α: 'a',
6207
+ β: 'b',
6208
+ γ: 'g',
6209
+ δ: 'd',
6210
+ ε: 'e',
6211
+ ζ: 'z',
6212
+ η: 'h',
6213
+ θ: '8',
6214
+ ι: 'i',
6215
+ κ: 'k',
6216
+ λ: 'l',
6217
+ μ: 'm',
6218
+ ν: 'n',
6219
+ ξ: '3',
6220
+ ο: 'o',
6221
+ π: 'p',
6222
+ ρ: 'r',
6223
+ σ: 's',
6224
+ τ: 't',
6225
+ υ: 'y',
6226
+ φ: 'f',
6227
+ χ: 'x',
6228
+ ψ: 'ps',
6229
+ ω: 'w',
6230
+ ά: 'a',
6231
+ έ: 'e',
6232
+ ί: 'i',
6233
+ ό: 'o',
6234
+ ύ: 'y',
6235
+ ή: 'h',
6236
+ ώ: 'w',
6237
+ ς: 's',
6238
+ ϊ: 'i',
6239
+ ΰ: 'y',
6240
+ ϋ: 'y',
6241
+ ΐ: 'i',
6242
+ Α: 'A',
6243
+ Β: 'B',
6244
+ Γ: 'G',
6245
+ Δ: 'D',
6246
+ Ε: 'E',
6247
+ Ζ: 'Z',
6248
+ Η: 'H',
6249
+ Θ: '8',
6250
+ Ι: 'I',
6251
+ Κ: 'K',
6252
+ Λ: 'L',
6253
+ Μ: 'M',
6254
+ Ν: 'N',
6255
+ Ξ: '3',
6256
+ Ο: 'O',
6257
+ Π: 'P',
6258
+ Ρ: 'R',
6259
+ Σ: 'S',
6260
+ Τ: 'T',
6261
+ Υ: 'Y',
6262
+ Φ: 'F',
6263
+ Χ: 'X',
6264
+ Ψ: 'PS',
6265
+ Ω: 'W',
6266
+ Ά: 'A',
6267
+ Έ: 'E',
6268
+ Ί: 'I',
6269
+ Ό: 'O',
6270
+ Ύ: 'Y',
6271
+ Ή: 'H',
6272
+ Ώ: 'W',
6273
+ Ϊ: 'I',
6274
+ Ϋ: 'Y',
6275
+ };
6276
+ const ROMANIAN_MAP = {
6277
+ ă: 'a',
6278
+ î: 'i',
6815
6279
  ș: 's',
6816
6280
  ț: 't',
6817
- ȝ: 'y',
6818
- ȟ: 'h',
6819
- ȥ: 'z',
6820
- ȧ: 'a',
6821
- ȩ: 'e',
6822
- ȫ: 'o',
6823
- ȭ: 'o',
6824
- ȯ: 'o',
6825
- ȱ: 'o',
6826
- ȳ: 'y',
6827
- ȴ: 'l',
6828
- ȵ: 'n',
6829
- ȶ: 't',
6830
- ȷ: 'j',
6831
- ȸ: 'db',
6832
- ȹ: 'qp',
6833
- ⱥ: 'a',
6834
- ⱦ: 't',
6835
- // IPA Extensions
6836
- ɐ: 'a',
6837
- ɑ: 'a',
6838
- ɒ: 'a',
6839
- ɓ: 'b',
6840
- ɔ: 'o',
6841
- ɕ: 'c',
6842
- ɖ: 'd',
6843
- ɗ: 'd',
6844
- ɘ: 'e',
6281
+ â: 'a',
6282
+ Ă: 'A',
6283
+ Î: 'I',
6284
+ Ș: 'S',
6285
+ Ț: 'T',
6286
+ Â: 'A',
6287
+ };
6288
+ const GERMAN_MAP = {
6289
+ ä: 'a',
6290
+ ö: 'o',
6291
+ ü: 'u',
6292
+ ß: 'ss',
6293
+ };
6294
+ const FRENCH_MAP = {
6295
+ é: 'e',
6296
+ è: 'e',
6297
+ ê: 'e',
6298
+ ë: 'e',
6299
+ à: 'a',
6300
+ â: 'a',
6301
+ î: 'i',
6302
+ ï: 'i',
6303
+ ô: 'o',
6304
+ û: 'u',
6305
+ ù: 'u',
6306
+ ç: 'c',
6307
+ };
6308
+ const ITALIAN_MAP = {
6309
+ à: 'a',
6310
+ è: 'e',
6311
+ é: 'e',
6312
+ ì: 'i',
6313
+ ò: 'o',
6314
+ ù: 'u',
6315
+ };
6316
+ const SPANISH_MAP = {
6317
+ á: 'a',
6318
+ í: 'i',
6319
+ ó: 'o',
6320
+ ú: 'u',
6321
+ ñ: 'n',
6322
+ ü: 'u',
6323
+ };
6324
+ const PORTUGUESE_MAP = {
6325
+ ã: 'a',
6326
+ õ: 'o',
6327
+ â: 'a',
6328
+ ê: 'e',
6329
+ ô: 'o',
6330
+ };
6331
+ const NORDIC_MAP = {
6332
+ å: 'a',
6333
+ æ: 'ae',
6334
+ ø: 'o',
6335
+ ě: 'e',
6336
+ };
6337
+ const TURKISH_MAP = {
6338
+ ğ: 'g',
6339
+ ı: 'i',
6340
+ İ: 'i',
6341
+ ş: 's',
6342
+ Ş: 'S',
6343
+ ç: 'c',
6344
+ Ç: 'C',
6345
+ ü: 'u',
6346
+ Ü: 'U',
6347
+ ö: 'o',
6348
+ Ö: 'O',
6349
+ Ğ: 'G',
6350
+ };
6351
+ const HUNGARIAN_MAP = {
6352
+ ő: 'o',
6353
+ ű: 'u',
6354
+ };
6355
+ const VIETNAMESE_MAP = {
6356
+ ạ: 'a',
6357
+ ả: 'a',
6358
+ ấ: 'a',
6359
+ ầ: 'a',
6360
+ ẩ: 'a',
6361
+ ẫ: 'a',
6362
+ ậ: 'a',
6363
+ đ: 'd',
6364
+ };
6365
+ const CROATIOAN_SEERBIAN_MAP = {
6366
+ đ: 'd',
6367
+ ć: 'c',
6368
+ č: 'c',
6369
+ };
6370
+ const BALLTIC_MAP = {
6371
+ ā: 'a',
6372
+ ē: 'e',
6373
+ ģ: 'g',
6374
+ ī: 'i',
6375
+ ķ: 'k',
6376
+ ļ: 'l',
6377
+ ņ: 'n',
6378
+ ū: 'u',
6379
+ ų: 'u',
6380
+ };
6381
+ const CHINESE_JAPANESE_PUNCTUATION_MAP = {
6382
+ '。': '.',
6383
+ '、': ',',
6384
+ '?': '?',
6385
+ '!': '!',
6386
+ ':': ':',
6387
+ ';': ';',
6388
+ '(': '(',
6389
+ ')': ')',
6390
+ '《': '<',
6391
+ '》': '>',
6392
+ };
6393
+ const RUSSIAN_MAP = {
6394
+ а: 'a',
6395
+ б: 'b',
6396
+ в: 'v',
6397
+ г: 'g',
6398
+ д: 'd',
6399
+ е: 'e',
6400
+ ё: 'yo',
6401
+ ж: 'zh',
6402
+ з: 'z',
6403
+ и: 'i',
6404
+ й: 'j',
6405
+ к: 'k',
6406
+ л: 'l',
6407
+ м: 'm',
6408
+ н: 'n',
6409
+ о: 'o',
6410
+ п: 'p',
6411
+ р: 'r',
6412
+ с: 's',
6413
+ т: 't',
6414
+ у: 'u',
6415
+ ф: 'f',
6416
+ х: 'h',
6417
+ ц: 'c',
6418
+ ч: 'ch',
6419
+ ш: 'sh',
6420
+ щ: 'sh',
6421
+ ъ: '',
6422
+ ы: 'y',
6423
+ ь: '',
6424
+ э: 'e',
6425
+ ю: 'yu',
6426
+ я: 'ya',
6427
+ А: 'A',
6428
+ Б: 'B',
6429
+ В: 'V',
6430
+ Г: 'G',
6431
+ Д: 'D',
6432
+ Е: 'E',
6433
+ Ё: 'Yo',
6434
+ Ж: 'Zh',
6435
+ З: 'Z',
6436
+ И: 'I',
6437
+ Й: 'J',
6438
+ К: 'K',
6439
+ Л: 'L',
6440
+ М: 'M',
6441
+ Н: 'N',
6442
+ О: 'O',
6443
+ П: 'P',
6444
+ Р: 'R',
6445
+ С: 'S',
6446
+ Т: 'T',
6447
+ У: 'U',
6448
+ Ф: 'F',
6449
+ Х: 'H',
6450
+ Ц: 'C',
6451
+ Ч: 'Ch',
6452
+ Ш: 'Sh',
6453
+ Щ: 'Sh',
6454
+ Ъ: '',
6455
+ Ы: 'Y',
6456
+ Ь: '',
6457
+ Э: 'E',
6458
+ Ю: 'Yu',
6459
+ Я: 'Ya',
6460
+ };
6461
+ const UKRAINIAN_MAP = {
6462
+ Є: 'Ye',
6463
+ І: 'I',
6464
+ Ї: 'Yi',
6465
+ Ґ: 'G',
6466
+ є: 'ye',
6467
+ і: 'i',
6468
+ ї: 'yi',
6469
+ ґ: 'g',
6470
+ };
6471
+ const CZECH_MAP = {
6472
+ č: 'c',
6473
+ ď: 'd',
6474
+ ě: 'e',
6475
+ ň: 'n',
6476
+ ř: 'r',
6477
+ š: 's',
6478
+ ť: 't',
6479
+ ů: 'u',
6480
+ ž: 'z',
6481
+ Č: 'C',
6482
+ Ď: 'D',
6483
+ Ě: 'E',
6484
+ Ň: 'N',
6485
+ Ř: 'R',
6486
+ Š: 'S',
6487
+ Ť: 'T',
6488
+ Ů: 'U',
6489
+ Ž: 'Z',
6490
+ };
6491
+ const SLOVAK_MAP = {
6492
+ á: 'a',
6493
+ ä: 'a',
6494
+ č: 'c',
6495
+ ď: 'd',
6496
+ é: 'e',
6497
+ í: 'i',
6498
+ ľ: 'l',
6499
+ ĺ: 'l',
6500
+ ň: 'n',
6501
+ ó: 'o',
6502
+ ô: 'o',
6503
+ ŕ: 'r',
6504
+ š: 's',
6505
+ ť: 't',
6506
+ ú: 'u',
6507
+ ý: 'y',
6508
+ ž: 'z',
6509
+ Á: 'a',
6510
+ Ä: 'A',
6511
+ Č: 'C',
6512
+ Ď: 'D',
6513
+ É: 'E',
6514
+ Í: 'I',
6515
+ Ľ: 'L',
6516
+ Ĺ: 'L',
6517
+ Ň: 'N',
6518
+ Ó: 'O',
6519
+ Ô: 'O',
6520
+ Ŕ: 'R',
6521
+ Š: 'S',
6522
+ Ť: 'T',
6523
+ Ú: 'U',
6524
+ Ý: 'Y',
6525
+ Ž: 'Z',
6526
+ };
6527
+ const POLISH_MAP = {
6528
+ ą: 'a',
6529
+ ć: 'c',
6530
+ ę: 'e',
6531
+ ł: 'l',
6532
+ ń: 'n',
6533
+ ó: 'o',
6534
+ ś: 's',
6535
+ ź: 'z',
6536
+ ż: 'z',
6537
+ Ą: 'A',
6538
+ Ć: 'C',
6539
+ Ę: 'E',
6540
+ Ł: 'L',
6541
+ Ń: 'N',
6542
+ Ó: 'O',
6543
+ Ś: 'S',
6544
+ Ź: 'Z',
6545
+ Ż: 'Z',
6546
+ };
6547
+ const LATVIAN_MAP = {
6548
+ ā: 'a',
6549
+ č: 'c',
6550
+ ē: 'e',
6551
+ ģ: 'g',
6552
+ ī: 'i',
6553
+ ķ: 'k',
6554
+ ļ: 'l',
6555
+ ņ: 'n',
6556
+ š: 's',
6557
+ ū: 'u',
6558
+ ž: 'z',
6559
+ Ā: 'A',
6560
+ Č: 'C',
6561
+ Ē: 'E',
6562
+ Ģ: 'G',
6563
+ Ī: 'I',
6564
+ Ķ: 'K',
6565
+ Ļ: 'L',
6566
+ Ņ: 'N',
6567
+ Š: 'S',
6568
+ Ū: 'U',
6569
+ Ž: 'Z',
6570
+ };
6571
+ const ARABIC_MAP = {
6572
+ أ: 'a',
6573
+ ب: 'b',
6574
+ ت: 't',
6575
+ ث: 'th',
6576
+ ج: 'g',
6577
+ ح: 'h',
6578
+ خ: 'kh',
6579
+ د: 'd',
6580
+ ذ: 'th',
6581
+ ر: 'r',
6582
+ ز: 'z',
6583
+ س: 's',
6584
+ ش: 'sh',
6585
+ ص: 's',
6586
+ ض: 'd',
6587
+ ط: 't',
6588
+ ظ: 'th',
6589
+ ع: 'aa',
6590
+ غ: 'gh',
6591
+ ف: 'f',
6592
+ ق: 'k',
6593
+ ك: 'k',
6594
+ ل: 'l',
6595
+ م: 'm',
6596
+ ن: 'n',
6597
+ ه: 'h',
6598
+ و: 'o',
6599
+ ي: 'y',
6600
+ '٠': '0',
6601
+ '١': '1',
6602
+ '٢': '2',
6603
+ '٣': '3',
6604
+ '٤': '4',
6605
+ '٥': '5',
6606
+ '٦': '6',
6607
+ '٧': '7',
6608
+ '٨': '8',
6609
+ '٩': '9',
6610
+ };
6611
+ const LITHUANIAN_MAP = {
6612
+ ą: 'a',
6613
+ č: 'c',
6614
+ ę: 'e',
6615
+ ė: 'e',
6616
+ į: 'i',
6617
+ š: 's',
6618
+ ų: 'u',
6619
+ ū: 'u',
6620
+ ž: 'z',
6621
+ Ą: 'A',
6622
+ Č: 'C',
6623
+ Ę: 'E',
6624
+ Ė: 'E',
6625
+ Į: 'I',
6626
+ Š: 'S',
6627
+ Ų: 'U',
6628
+ Ū: 'U',
6629
+ Ž: 'Z',
6630
+ };
6631
+ const SERBIAN_MAP = {
6632
+ ђ: 'dj',
6633
+ ј: 'j',
6634
+ љ: 'lj',
6635
+ њ: 'nj',
6636
+ ћ: 'c',
6637
+ џ: 'dz',
6638
+ đ: 'dj',
6639
+ Ђ: 'Dj',
6640
+ Ј: 'j',
6641
+ Љ: 'Lj',
6642
+ Њ: 'Nj',
6643
+ Ћ: 'C',
6644
+ Џ: 'Dz',
6645
+ Đ: 'Dj',
6646
+ };
6647
+ const AZERBAIJANI_MAP = {
6648
+ ç: 'c',
6845
6649
  ə: 'e',
6846
- ɚ: 'e',
6847
- ɛ: 'e',
6848
- ɜ: 'e',
6849
- ɝ: 'e',
6850
- ɞ: 'e',
6851
- ɟ: 'j',
6852
- ɠ: 'g',
6853
- ɡ: 'g',
6854
- ɢ: 'g',
6855
- ɣ: 'g',
6856
- ɤ: 'g',
6857
- ɥ: 'h',
6858
- ɦ: 'h',
6859
- ɧ: 'h',
6860
- ɨ: 'i',
6861
- ɩ: 'i',
6862
- ɪ: 'i',
6863
- ɫ: 'l',
6864
- ɬ: 'l',
6865
- ɭ: 'l',
6866
- ɮ: 'lz',
6867
- ɯ: 'm',
6868
- ɰ: 'm',
6869
- ɱ: 'm',
6870
- ɲ: 'n',
6871
- ɳ: 'n',
6872
- ɴ: 'n',
6873
- ɵ: 'o',
6874
- ɶ: 'oe',
6875
- ɷ: 'o',
6876
- ɸ: 'f',
6877
- ɹ: 'r',
6878
- ɺ: 'r',
6879
- ɻ: 'r',
6880
- ɼ: 'r',
6881
- ɽ: 'r',
6882
- ɾ: 'r',
6883
- ɿ: 'r',
6884
- // Spacing Modifier Letters
6885
- ʰ: 'h',
6886
- ʱ: 'h',
6887
- ʲ: 'j',
6888
- ʳ: 'r',
6889
- ʴ: 'r',
6890
- ʵ: 'r',
6891
- ʶ: 'r',
6892
- ʷ: 'w',
6893
- ʸ: 'y',
6894
- ʹ: "'",
6895
- ʺ: '"',
6896
- ʻ: "'",
6897
- ʼ: "'",
6898
- ʽ: "'",
6899
- ʾ: "'",
6900
- ʿ: "'",
6901
- // Combining Diacritical Marks
6650
+ ğ: 'g',
6651
+ ı: 'i',
6652
+ ö: 'o',
6653
+ ş: 's',
6654
+ ü: 'u',
6655
+ Ç: 'C',
6656
+ Ə: 'E',
6657
+ Ğ: 'G',
6658
+ İ: 'I',
6659
+ Ö: 'O',
6660
+ Ş: 'S',
6661
+ Ü: 'U',
6662
+ };
6663
+ const GEORGIAN_MAP = {
6664
+ ა: 'a',
6665
+ ბ: 'b',
6666
+ გ: 'g',
6667
+ დ: 'd',
6668
+ ე: 'e',
6669
+ ვ: 'v',
6670
+ ზ: 'z',
6671
+ თ: 't',
6672
+ ი: 'i',
6673
+ კ: 'k',
6674
+ ლ: 'l',
6675
+ მ: 'm',
6676
+ ნ: 'n',
6677
+ ო: 'o',
6678
+ პ: 'p',
6679
+ ჟ: 'j',
6680
+ რ: 'r',
6681
+ ს: 's',
6682
+ ტ: 't',
6683
+ უ: 'u',
6684
+ ფ: 'f',
6685
+ ქ: 'q',
6686
+ ღ: 'g',
6687
+ ყ: 'y',
6688
+ შ: 'sh',
6689
+ ჩ: 'ch',
6690
+ ც: 'c',
6691
+ ძ: 'dz',
6692
+ წ: 'w',
6693
+ ჭ: 'ch',
6694
+ ხ: 'x',
6695
+ ჯ: 'j',
6696
+ ჰ: 'h',
6697
+ };
6698
+ const SYMBOLS_MAP = {
6699
+ '©': '',
6700
+ '℗': '',
6701
+ 'ⓒ': '',
6702
+ '®': '',
6703
+ '™': '',
6704
+ '℠': '',
6705
+ '℟': '',
6706
+ '№': '',
6707
+ '⚖': '',
6708
+ '†': '',
6709
+ '‡': '',
6710
+ '§': '',
6711
+ '¶': '',
6712
+ '⁂': '',
6713
+ '※': '',
6714
+ '‽': '',
6715
+ '¤': '',
6716
+ '°': '',
6717
+ '′': '',
6718
+ '″': '',
6719
+ '‴': '',
6720
+ '⁗': '',
6721
+ '•': '',
6722
+ '⁃': '',
6723
+ '◊': '',
6724
+ '⌘': '',
6725
+ '⌥': '',
6726
+ '⇧': '',
6727
+ '⌃': '',
6728
+ '⎋': '',
6729
+ '¢': '',
6730
+ '£': '',
6731
+ '€': '',
6732
+ '¥': '',
6733
+ '₹': '',
6734
+ '₽': '',
6735
+ '؋': '',
6736
+ '₮': '',
6737
+ '₩': '',
6738
+ '₪': '',
6739
+ '←': '',
6740
+ '→': '',
6741
+ '↑': '',
6742
+ '↓': '',
6743
+ '✓': '',
6744
+ '✔': '',
6745
+ '✗': '',
6746
+ '✘': '',
6747
+ '♪': '',
6748
+ '♫': '',
6749
+ '☎': '',
6750
+ '✉': '',
6751
+ '⚡': '',
6752
+ '☀': '',
6753
+ '☁': '',
6754
+ '☂': '',
6755
+ '★': '',
6756
+ '☆': '',
6757
+ '☯': '',
6758
+ '☮': '',
6759
+ '☢': '',
6760
+ '☣': '',
6761
+ '⚠': '',
6762
+ };
6763
+ const GEOMETRIC_SHAPES_MAP = {
6764
+ '■': '',
6765
+ '□': '',
6766
+ '▢': '',
6767
+ '▣': '',
6768
+ '▤': '',
6769
+ '▥': '',
6770
+ '▦': '',
6771
+ '▧': '',
6772
+ '▨': '',
6773
+ '▩': '',
6774
+ '▪': '',
6775
+ '▫': '',
6776
+ '▬': '',
6777
+ '▭': '',
6778
+ '▮': '',
6779
+ '▯': '',
6780
+ '▰': '',
6781
+ '▱': '',
6782
+ '▲': '',
6783
+ '△': '',
6784
+ '▴': '',
6785
+ '▵': '',
6786
+ '▶': '',
6787
+ '▷': '',
6788
+ '▸': '',
6789
+ '▹': '',
6790
+ '►': '',
6791
+ '▻': '',
6792
+ '▼': '',
6793
+ '▽': '',
6794
+ '▾': '',
6795
+ '▿': '',
6796
+ '◀': '',
6797
+ '◁': '',
6798
+ '◂': '',
6799
+ '◃': '',
6800
+ '◄': '',
6801
+ '◅': '',
6802
+ '◆': '',
6803
+ '◇': '',
6804
+ '◈': '',
6805
+ '◉': '',
6806
+ '◊': '',
6807
+ '○': '',
6808
+ '◌': '',
6809
+ '◍': '',
6810
+ '◎': '',
6811
+ '●': '',
6812
+ '◐': '',
6813
+ '◑': '',
6814
+ '◒': '',
6815
+ '◓': '',
6816
+ '◔': '',
6817
+ '◕': '',
6818
+ '◖': '',
6819
+ '◗': '',
6820
+ '◘': '',
6821
+ '◙': '',
6822
+ '◚': '',
6823
+ '◛': '',
6824
+ '◜': '',
6825
+ '◝': '',
6826
+ '◞': '',
6827
+ '◟': '',
6828
+ '◠': '',
6829
+ '◡': '',
6830
+ '◢': '',
6831
+ '◣': '',
6832
+ '◤': '',
6833
+ '◥': '',
6834
+ '◦': '',
6835
+ '◧': '',
6836
+ '◨': '',
6837
+ '◩': '',
6838
+ '◪': '',
6839
+ '◫': '',
6840
+ '◬': '',
6841
+ '◭': '',
6842
+ '◮': '',
6843
+ '◯': '',
6844
+ '◰': '',
6845
+ '◱': '',
6846
+ '◲': '',
6847
+ '◳': '',
6848
+ '◴': '',
6849
+ '◵': '',
6850
+ '◶': '',
6851
+ '◷': '',
6852
+ '◸': '',
6853
+ '◹': '',
6854
+ '◺': '',
6855
+ '◻': '',
6856
+ '◼': '',
6857
+ '◽': '',
6858
+ '◾': '',
6859
+ '◿': '',
6860
+ };
6861
+ const BLOCK_ELEMENTS_MAP = {
6862
+ '▀': '',
6863
+ '▁': '',
6864
+ '▂': '',
6865
+ '▃': '',
6866
+ '▄': '',
6867
+ '▅': '',
6868
+ '▆': '',
6869
+ '▇': '',
6870
+ '█': '',
6871
+ '▉': '',
6872
+ '▊': '',
6873
+ '▋': '',
6874
+ '▌': '',
6875
+ '▍': '',
6876
+ '▎': '',
6877
+ '▏': '',
6878
+ '▐': '',
6879
+ '░': '',
6880
+ '▒': '',
6881
+ '▓': '',
6882
+ '▔': '',
6883
+ '▕': '',
6884
+ '▖': '',
6885
+ '▗': '',
6886
+ '▘': '',
6887
+ '▙': '',
6888
+ '▚': '',
6889
+ '▛': '',
6890
+ '▜': '',
6891
+ '▝': '',
6892
+ '▞': '',
6893
+ '▟': '',
6894
+ };
6895
+ const BOX_DRAWING_MAP = {
6896
+ '─': '',
6897
+ '│': '',
6898
+ '┌': '',
6899
+ '┐': '',
6900
+ '└': '',
6901
+ '┘': '',
6902
+ '├': '',
6903
+ '┤': '',
6904
+ '┬': '',
6905
+ '┴': '',
6906
+ '┼': '',
6907
+ '═': '',
6908
+ '║': '',
6909
+ '╒': '',
6910
+ '╓': '',
6911
+ '╔': '',
6912
+ '╕': '',
6913
+ '╖': '',
6914
+ '╗': '',
6915
+ '╘': '',
6916
+ '╙': '',
6917
+ '╚': '',
6918
+ '╛': '',
6919
+ '╜': '',
6920
+ '╝': '',
6921
+ '╞': '',
6922
+ '╟': '',
6923
+ '╠': '',
6924
+ '╡': '',
6925
+ '╢': '',
6926
+ '╣': '',
6927
+ '╤': '',
6928
+ '╥': '',
6929
+ '╦': '',
6930
+ '╧': '',
6931
+ '╨': '',
6932
+ '╩': '',
6933
+ '╪': '',
6934
+ '╫': '',
6935
+ '╬': '',
6936
+ };
6937
+ const OPTICAL_CHARACTER_RECOGNITION_MAP = {
6938
+ '⑀': '',
6939
+ '⑁': '',
6940
+ '⑂': '',
6941
+ '⑃': '',
6942
+ '⑄': '',
6943
+ '⑅': '',
6944
+ '⑆': '',
6945
+ '⑇': '',
6946
+ '⑈': '',
6947
+ '⑉': '',
6948
+ '⑊': '',
6949
+ };
6950
+ const CONTROL_PICTURES_MAP = {
6951
+ '␀': '',
6952
+ '␁': '',
6953
+ '␂': '',
6954
+ '␃': '',
6955
+ '␄': '',
6956
+ '␅': '',
6957
+ '␆': '',
6958
+ '␇': '',
6959
+ '␈': '',
6960
+ '␉': '',
6961
+ '␊': '',
6962
+ '␋': '',
6963
+ '␌': '',
6964
+ '␍': '',
6965
+ '␎': '',
6966
+ '␏': '',
6967
+ '␐': '',
6968
+ '␑': '',
6969
+ '␒': '',
6970
+ '␓': '',
6971
+ '␔': '',
6972
+ '␕': '',
6973
+ '␖': '',
6974
+ '␗': '',
6975
+ '␘': '',
6976
+ '␙': '',
6977
+ '␚': '',
6978
+ '␛': '',
6979
+ '␜': '',
6980
+ '␝': '',
6981
+ '␞': '',
6982
+ '␟': '',
6983
+ '␠': '',
6984
+ '␡': '',
6985
+ };
6986
+ const MISCELLANEOUS_TECHNICAL_MAP = {
6987
+ '⌀': '',
6988
+ '⌁': '',
6989
+ '⌂': '',
6990
+ '⌃': '',
6991
+ '⌄': '',
6992
+ '⌅': '',
6993
+ '⌆': '',
6994
+ '⌇': '',
6995
+ '⌈': '',
6996
+ '⌉': '',
6997
+ '⌊': '',
6998
+ '⌋': '',
6999
+ '⌌': '',
7000
+ '⌍': '',
7001
+ '⌎': '',
7002
+ '⌏': '',
7003
+ '⌐': '',
7004
+ '⌑': '',
7005
+ '⌒': '',
7006
+ '⌓': '',
7007
+ '⌔': '',
7008
+ '⌕': '',
7009
+ '⌖': '',
7010
+ '⌗': '',
7011
+ '⌘': '',
7012
+ '⌙': '',
7013
+ '⌚': '',
7014
+ '⌛': '',
7015
+ '⌜': '',
7016
+ '⌝': '',
7017
+ '⌞': '',
7018
+ '⌟': '',
7019
+ '⌠': '',
7020
+ '⌡': '',
7021
+ '⌢': '',
7022
+ '⌣': '',
7023
+ '⌤': '',
7024
+ '⌥': '',
7025
+ '⌦': '',
7026
+ '⌧': '',
7027
+ '⌨': '',
7028
+ '⌫': '',
7029
+ '⌬': '',
7030
+ '⌭': '',
7031
+ '⌮': '',
7032
+ '⌯': '',
7033
+ };
7034
+ const MATHEMATICAL_OPERATORS_MAP = {
7035
+ '−': '',
7036
+ '∕': '',
7037
+ '∖': '',
7038
+ '∗': '',
7039
+ '∘': '',
7040
+ '∙': '',
7041
+ '√': '',
7042
+ '∛': '',
7043
+ '∜': '',
7044
+ '∝': '',
7045
+ '∞': '',
7046
+ '∟': '',
7047
+ '∠': '',
7048
+ '∥': '',
7049
+ '∧': '',
7050
+ '∨': '',
7051
+ '∩': '',
7052
+ '∪': '',
7053
+ '∫': '',
7054
+ '∬': '',
7055
+ '∭': '',
7056
+ '∮': '',
7057
+ '∯': '',
7058
+ '∰': '',
7059
+ '∱': '',
7060
+ '∲': '',
7061
+ '∳': '',
7062
+ '∴': '',
7063
+ '∵': '',
7064
+ '∶': '',
7065
+ '∷': '',
7066
+ '∸': '',
7067
+ '∹': '',
7068
+ '∺': '',
7069
+ '∻': '',
7070
+ '∼': '',
7071
+ '∽': '',
7072
+ '∾': '',
7073
+ '≀': '',
7074
+ '≁': '',
7075
+ '≂': '',
7076
+ '≃': '',
7077
+ '≄': '',
7078
+ '≅': '',
7079
+ π: '',
7080
+ '≆': '',
7081
+ '≇': '',
7082
+ '≈': '',
7083
+ '≉': '',
7084
+ '≊': '',
7085
+ '≋': '',
7086
+ '≌': '',
7087
+ '≍': '',
7088
+ '≎': '',
7089
+ '≏': '',
7090
+ '≐': '',
7091
+ '≑': '',
7092
+ '≒': '',
7093
+ '≓': '',
7094
+ '≔': '',
7095
+ '≕': '',
7096
+ '≖': '',
7097
+ '≙': '',
7098
+ '≚': '',
7099
+ '≛': '',
7100
+ '≜': '',
7101
+ '≝': '',
7102
+ '≞': '',
7103
+ '≟': '',
7104
+ '≠': '',
7105
+ '≡': '',
7106
+ '≢': '',
7107
+ '≣': '',
7108
+ '≤': '',
7109
+ '≥': '',
7110
+ '≦': '',
7111
+ '≧': '',
7112
+ '≨': '',
7113
+ '≩': '',
7114
+ '≪': '',
7115
+ '≫': '',
7116
+ '≬': '',
7117
+ '≭': '',
7118
+ '≮': '',
7119
+ '≯': '',
7120
+ '≰': '',
7121
+ '≱': '',
7122
+ '≲': '',
7123
+ '≳': '',
7124
+ '≴': '',
7125
+ '≵': '',
7126
+ '≶': '',
7127
+ '≷': '',
7128
+ '≸': '',
7129
+ '≹': '',
7130
+ '≺': '',
7131
+ '≻': '',
7132
+ '≼': '',
7133
+ '≽': '',
7134
+ '≾': '',
7135
+ '≿': '',
7136
+ '⊀': '',
7137
+ '⊁': '',
7138
+ '⊂': '',
7139
+ '⊃': '',
7140
+ '⊄': '',
7141
+ '⊅': '',
7142
+ '⊆': '',
7143
+ '⊇': '',
7144
+ '⊈': '',
7145
+ '⊉': '',
7146
+ '⊊': '',
7147
+ '⊋': '',
7148
+ '⊌': '',
7149
+ '⊍': '',
7150
+ '⊎': '',
7151
+ '⊏': '',
7152
+ '⊐': '',
7153
+ '⊑': '',
7154
+ '⊒': '',
7155
+ '⊓': '',
7156
+ '⊔': '',
7157
+ '⊕': '',
7158
+ '⊖': '',
7159
+ '⊗': '',
7160
+ '⊘': '',
7161
+ '⊙': '',
7162
+ '⊚': '',
7163
+ '⊛': '',
7164
+ '⊜': '',
7165
+ '⊝': '',
7166
+ '⊞': '',
7167
+ '⊟': '',
7168
+ '⊠': '',
7169
+ '⊡': '',
7170
+ };
7171
+ const SUBSCRIPTS_AND_SUPERSCRIPTS_MAP = {
7172
+ '⁰': '',
7173
+ '¹': '',
7174
+ '²': '',
7175
+ '³': '',
7176
+ '⁴': '',
7177
+ '⁵': '',
7178
+ '⁶': '',
7179
+ '⁷': '',
7180
+ '⁸': '',
7181
+ '⁹': '',
7182
+ '⁺': '',
7183
+ '⁻': '',
7184
+ '⁼': '',
7185
+ '⁽': '',
7186
+ '⁾': '',
7187
+ ⁿ: '',
7188
+ '₀': '',
7189
+ '₁': '',
7190
+ '₂': '',
7191
+ '₃': '',
7192
+ '₄': '',
7193
+ '₅': '',
7194
+ '₆': '',
7195
+ '₇': '',
7196
+ '₈': '',
7197
+ '₉': '',
7198
+ '₊': '',
7199
+ '₋': '',
7200
+ '₌': '',
7201
+ '₍': '',
7202
+ '₎': '',
7203
+ };
7204
+ const NUMBER_FORMS_MAP = {
7205
+ '⅓': '',
7206
+ '⅔': '',
7207
+ '⅕': '',
7208
+ '⅖': '',
7209
+ '⅗': '',
7210
+ '⅘': '',
7211
+ '⅙': '',
7212
+ '⅚': '',
7213
+ '⅛': '',
7214
+ '⅜': '',
7215
+ '⅝': '',
7216
+ '⅞': '',
7217
+ '⅟': '',
7218
+ };
7219
+ const LETTERLIKE_SYMBOLS_MAP = {
7220
+ '℀': '',
7221
+ '℁': '',
7222
+ '℃': '',
7223
+ '℅': '',
7224
+ '℆': '',
7225
+ '℉': '',
7226
+ '№': '',
7227
+ '℗': '',
7228
+ '℠': '',
7229
+ '℡': '',
7230
+ '™': '',
7231
+ '℮': '',
7232
+ ℯ: '',
7233
+ ℰ: '',
7234
+ ℱ: '',
7235
+ Ⅎ: '',
7236
+ ℳ: '',
7237
+ ℴ: '',
7238
+ ℵ: '',
7239
+ ℶ: '',
7240
+ ℷ: '',
7241
+ ℸ: '',
7242
+ '℘': '',
7243
+ };
7244
+ const CURRENCY_SYMBOLS_MAP = {
7245
+ '₠': '',
7246
+ '₡': '',
7247
+ '₢': '',
7248
+ '₣': '',
7249
+ '₤': '',
7250
+ '₥': '',
7251
+ '₦': '',
7252
+ '₧': '',
7253
+ '₨': '',
7254
+ '₩': '',
7255
+ '₪': '',
7256
+ '₫': '',
7257
+ '€': '',
7258
+ '₭': '',
7259
+ '₮': '',
7260
+ '₯': '',
7261
+ '₰': '',
7262
+ '₱': '',
7263
+ '₲': '',
7264
+ '₳': '',
7265
+ '₴': '',
7266
+ '₵': '',
7267
+ '₶': '',
7268
+ '₷': '',
7269
+ '₸': '',
7270
+ '₹': '',
7271
+ '₺': '',
7272
+ '₻': '',
7273
+ '₼': '',
7274
+ '₽': '',
7275
+ '₾': '',
7276
+ };
7277
+ const COMBINING_DIACRITICAL_MARKS_MAP = {
7278
+ '\n': '',
7279
+ '\t': '',
7280
+ '\r': '',
7281
+ '\r\n': '',
7282
+ '\u00A0': '',
7283
+ '\u2003': '',
7284
+ '\u2002': '',
7285
+ '\u0000': '',
7286
+ '\u001F': '',
7287
+ '\u007F': '',
7288
+ '\u0080': '',
7289
+ '\u009F': '',
6902
7290
  '\u0300': '',
6903
7291
  '\u0301': '',
6904
7292
  '\u0302': '',
@@ -6979,608 +7367,131 @@ const SPECIAL_CHARACTER_MAPPING = {
6979
7367
  '\u034D': '',
6980
7368
  '\u034E': '',
6981
7369
  '\u034F': '',
6982
- // General Punctuation
6983
- '\u2013': '-',
6984
- '\u2014': '-',
6985
- '\u2018': "'",
6986
- '\u2019': "'",
6987
- '\u201C': '"',
6988
- '\u201D': '"',
6989
- '\u201E': '"',
6990
- '\u2020': '+',
6991
- '\u2021': '+',
6992
- '\u2022': '*',
6993
- '\u2025': '..',
6994
- '\u2026': '...',
6995
- '\u2030': '%',
6996
- '\u2031': '%',
6997
- '\u2032': "'",
6998
- '\u2033': '"',
6999
- '\u2034': "'",
7000
- '\u2035': "'",
7001
- '\u2036': '"',
7002
- '\u2037': "'",
7003
- '\u2039': '<',
7004
- '\u203A': '>',
7005
- '\u203C': '!!',
7006
- '\u203E': '-',
7007
- '\u2044': '/',
7008
- '\u204E': '*',
7009
- '\u204F': ';',
7010
- '\u2050': ':',
7011
- '\u2057': '"',
7012
- // Currency Symbols
7013
- '₠': 'ecu',
7014
- '₡': 'c',
7015
- '₢': 'cr',
7016
- '₣': 'fr',
7017
- '₤': 'l',
7018
- '₥': 'm',
7019
- '₦': 'n',
7020
- '₧': 'pts',
7021
- '₨': 'rs',
7022
- '₩': 'w',
7023
- '₪': 'ils',
7024
- '₫': 'd',
7025
- '€': 'eur',
7026
- '₭': 'k',
7027
- '₮': 't',
7028
- '₯': 'dr',
7029
- '₰': 'pf',
7030
- '₱': 'p',
7031
- '₲': 'g',
7032
- '₳': 'a',
7033
- '₴': 'uah',
7034
- '₵': 'c',
7035
- '₶': 't',
7036
- '₷': 'n',
7037
- '₸': 't',
7038
- '₹': 'inr',
7039
- '₺': 'try',
7040
- '₻': 'n',
7041
- '₼': 'azn',
7042
- '₽': 'rub',
7043
- '₾': 'gel',
7044
- // Letterlike Symbols
7045
- '℀': 'a/c',
7046
- '℁': 'a/s',
7047
- '℃': 'c',
7048
- '℅': 'c/o',
7049
- '℆': 'c/u',
7050
- '℉': 'f',
7051
- '№': 'no',
7052
- '℗': '(p)',
7053
- '℠': 'sm',
7054
- '℡': 'tel',
7055
- '™': 'tm',
7056
- '℮': 'e',
7057
- ℯ: 'e',
7058
- ℰ: 'e',
7059
- ℱ: 'f',
7060
- Ⅎ: 'f',
7061
- ℳ: 'm',
7062
- ℴ: 'o',
7063
- ℵ: 'a',
7064
- ℶ: 'b',
7065
- ℷ: 'g',
7066
- ℸ: 'd',
7067
- '℘': 'p',
7068
- // Number Forms
7069
- '⅓': '1/3',
7070
- '⅔': '2/3',
7071
- '⅕': '1/5',
7072
- '⅖': '2/5',
7073
- '⅗': '3/5',
7074
- '⅘': '4/5',
7075
- '⅙': '1/6',
7076
- '⅚': '5/6',
7077
- '⅛': '1/8',
7078
- '⅜': '3/8',
7079
- '⅝': '5/8',
7080
- '⅞': '7/8',
7081
- '⅟': '1/',
7082
- // Superscripts and Subscripts
7083
- '⁰': '0',
7084
- '¹': '1',
7085
- '²': '2',
7086
- '³': '3',
7087
- '⁴': '4',
7088
- '⁵': '5',
7089
- '⁶': '6',
7090
- '⁷': '7',
7091
- '⁸': '8',
7092
- '⁹': '9',
7093
- '⁺': '+',
7094
- '⁻': '-',
7095
- '⁼': '=',
7096
- '⁽': '(',
7097
- '⁾': ')',
7098
- ⁿ: 'n',
7099
- '₀': '0',
7100
- '₁': '1',
7101
- '₂': '2',
7102
- '₃': '3',
7103
- '₄': '4',
7104
- '₅': '5',
7105
- '₆': '6',
7106
- '₇': '7',
7107
- '₈': '8',
7108
- '₉': '9',
7109
- '₊': '+',
7110
- '₋': '-',
7111
- '₌': '=',
7112
- '₍': '(',
7113
- '₎': ')',
7114
- // Mathematical Operators
7115
- '−': '-',
7116
- '∕': '/',
7117
- '∖': '\\',
7118
- '∗': '*',
7119
- '∘': 'o',
7120
- '∙': '*',
7121
- '√': 'v',
7122
- '∛': 'v',
7123
- '∜': 'v',
7124
- '∝': 'oc',
7125
- '∞': '8',
7126
- '∟': 'l',
7127
- '∠': 'a',
7128
- '∥': '||',
7129
- '∧': 'and',
7130
- '∨': 'or',
7131
- '∩': 'n',
7132
- '∪': 'u',
7133
- '∫': 'I',
7134
- '∬': 'II',
7135
- '∭': 'III',
7136
- '∮': 'O',
7137
- '∯': 'S',
7138
- '∰': 'S',
7139
- '∱': 'S',
7140
- '∲': 'S',
7141
- '∳': 'S',
7142
- '∴': 't',
7143
- '∵': 'b',
7144
- '∶': ':',
7145
- '∷': '::',
7146
- '∸': '-:',
7147
- '∹': '-:',
7148
- '∺': '-:',
7149
- '∻': '-:',
7150
- '∼': '~',
7151
- '∽': '~',
7152
- '∾': '~',
7153
- '≀': 'o',
7154
- '≁': '!~',
7155
- '≂': '~',
7156
- '≃': '~=',
7157
- '≄': '!~=',
7158
- '≅': '~=',
7159
- '≆': '~=',
7160
- '≇': '!~=',
7161
- '≈': '~',
7162
- '≉': '!~',
7163
- '≊': '~=',
7164
- '≋': '~',
7165
- '≌': '=',
7166
- '≍': '=',
7167
- '≎': '=',
7168
- '≏': '=',
7169
- '≐': '=',
7170
- '≑': '=',
7171
- '≒': '=',
7172
- '≓': '=',
7173
- '≔': '=',
7174
- '≕': '=',
7175
- '≖': '=',
7176
- '≙': '=',
7177
- '≚': '=',
7178
- '≛': '=',
7179
- '≜': '=',
7180
- '≝': '=',
7181
- '≞': '=',
7182
- '≟': '=',
7183
- '≠': '!=',
7184
- '≡': '=',
7185
- '≢': '!=',
7186
- '≣': '=',
7187
- '≤': '<=',
7188
- '≥': '>=',
7189
- '≦': '<=',
7190
- '≧': '>=',
7191
- '≨': '</',
7192
- '≩': '>/',
7193
- '≪': '<<',
7194
- '≫': '>>',
7195
- '≬': '><',
7196
- '≭': '><',
7197
- '≮': '!<',
7198
- '≯': '!>',
7199
- '≰': '!<=',
7200
- '≱': '!>=',
7201
- '≲': '<=',
7202
- '≳': '>=',
7203
- '≴': '</',
7204
- '≵': '>/',
7205
- '≶': '><',
7206
- '≷': '><',
7207
- '≸': '!><',
7208
- '≹': '!><',
7209
- '≺': '<',
7210
- '≻': '>',
7211
- '≼': '<=',
7212
- '≽': '>=',
7213
- '≾': '<=',
7214
- '≿': '>=',
7215
- '⊀': '!<',
7216
- '⊁': '!>',
7217
- '⊂': 'c',
7218
- '⊃': 'c',
7219
- '⊄': '!c',
7220
- '⊅': '!c',
7221
- '⊆': 'c=',
7222
- '⊇': 'c=',
7223
- '⊈': '!c=',
7224
- '⊉': '!c=',
7225
- '⊊': 'c',
7226
- '⊋': 'c',
7227
- '⊌': 'U',
7228
- '⊍': 'U',
7229
- '⊎': 'U',
7230
- '⊏': '<',
7231
- '⊐': '>',
7232
- '⊑': '<=',
7233
- '⊒': '>=',
7234
- '⊓': 'n',
7235
- '⊔': 'u',
7236
- '⊕': 'o+',
7237
- '⊖': 'o-',
7238
- '⊗': 'ox',
7239
- '⊘': 'o/',
7240
- '⊙': 'o.',
7241
- '⊚': 'o',
7242
- '⊛': 'o*',
7243
- '⊜': 'o=',
7244
- '⊝': 'o-',
7245
- '⊞': '+',
7246
- '⊟': '-',
7247
- '⊠': 'x',
7248
- '⊡': '[]',
7249
- // Miscellaneous Technical
7250
- '⌀': 'o',
7251
- '⌁': '*',
7252
- '⌂': '^',
7253
- '⌃': '^',
7254
- '⌄': 'v',
7255
- '⌅': '[',
7256
- '⌆': ']',
7257
- '⌇': '|',
7258
- '⌈': '[',
7259
- '⌉': ']',
7260
- '⌊': '[',
7261
- '⌋': ']',
7262
- '⌌': '[',
7263
- '⌍': ']',
7264
- '⌎': '[',
7265
- '⌏': ']',
7266
- '⌐': '|_',
7267
- '⌑': '_|',
7268
- '⌒': '~',
7269
- '⌓': '^',
7270
- '⌔': '[]',
7271
- '⌕': 'o',
7272
- '⌖': '+',
7273
- '⌗': '#',
7274
- '⌘': 'cmd',
7275
- '⌙': '<',
7276
- '⌚': 'watch',
7277
- '⌛': 'hourglass',
7278
- '⌜': '[',
7279
- '⌝': ']',
7280
- '⌞': '[',
7281
- '⌟': ']',
7282
- '⌠': 'I',
7283
- '⌡': 'I',
7284
- '⌢': 'u',
7285
- '⌣': 'n',
7286
- '⌤': '_|_',
7287
- '⌥': 'alt',
7288
- '⌦': 'del',
7289
- '⌧': 'x',
7290
- '⌨': 'keyboard',
7291
- '⌫': 'backspace',
7292
- '⌬': '^',
7293
- '⌭': '><',
7294
- '⌮': '><',
7295
- '⌯': '*',
7296
- // Control Pictures
7297
- '␀': 'nul',
7298
- '␁': 'soh',
7299
- '␂': 'stx',
7300
- '␃': 'etx',
7301
- '␄': 'eot',
7302
- '␅': 'enq',
7303
- '␆': 'ack',
7304
- '␇': 'bel',
7305
- '␈': 'bs',
7306
- '␉': 'ht',
7307
- '␊': 'lf',
7308
- '␋': 'vt',
7309
- '␌': 'ff',
7310
- '␍': 'cr',
7311
- '␎': 'so',
7312
- '␏': 'si',
7313
- '␐': 'dle',
7314
- '␑': 'dc1',
7315
- '␒': 'dc2',
7316
- '␓': 'dc3',
7317
- '␔': 'dc4',
7318
- '␕': 'nak',
7319
- '␖': 'syn',
7320
- '␗': 'etb',
7321
- '␘': 'can',
7322
- '␙': 'em',
7323
- '␚': 'sub',
7324
- '␛': 'esc',
7325
- '␜': 'fs',
7326
- '␝': 'gs',
7327
- '␞': 'rs',
7328
- '␟': 'us',
7329
- '␠': 'sp',
7330
- '␡': 'del',
7331
- // Optical Character Recognition
7332
- '⑀': 'ocr',
7333
- '⑁': 'ocr',
7334
- '⑂': 'ocr',
7335
- '⑃': 'ocr',
7336
- '⑄': 'ocr',
7337
- '⑅': 'ocr',
7338
- '⑆': 'ocr',
7339
- '⑇': 'ocr',
7340
- '⑈': 'ocr',
7341
- '⑉': 'ocr',
7342
- '⑊': 'ocr',
7343
- // Enclosed Alphanumerics
7344
- '⒜': '(a)',
7345
- '⒝': '(b)',
7346
- '⒞': '(c)',
7347
- '⒟': '(d)',
7348
- '⒠': '(e)',
7349
- '⒡': '(f)',
7350
- '⒢': '(g)',
7351
- '⒣': '(h)',
7352
- '⒤': '(i)',
7353
- '⒥': '(j)',
7354
- '⒦': '(k)',
7355
- '⒧': '(l)',
7356
- '⒨': '(m)',
7357
- '⒩': '(n)',
7358
- '⒪': '(o)',
7359
- '⒫': '(p)',
7360
- '⒬': '(q)',
7361
- '⒭': '(r)',
7362
- '⒮': '(s)',
7363
- '⒯': '(t)',
7364
- '⒰': '(u)',
7365
- '⒱': '(v)',
7366
- '⒲': '(w)',
7367
- '⒳': '(x)',
7368
- '⒴': '(y)',
7369
- '⒵': '(z)',
7370
- // Box Drawing
7371
- '─': '-',
7372
- '│': '|',
7373
- '┌': '+',
7374
- '┐': '+',
7375
- '└': '+',
7376
- '┘': '+',
7377
- '├': '+',
7378
- '┤': '+',
7379
- '┬': '+',
7380
- '┴': '+',
7381
- '┼': '+',
7382
- '═': '=',
7383
- '║': '||',
7384
- '╒': '+',
7385
- '╓': '+',
7386
- '╔': '+',
7387
- '╕': '+',
7388
- '╖': '+',
7389
- '╗': '+',
7390
- '╘': '+',
7391
- '╙': '+',
7392
- '╚': '+',
7393
- '╛': '+',
7394
- '╜': '+',
7395
- '╝': '+',
7396
- '╞': '+',
7397
- '╟': '+',
7398
- '╠': '+',
7399
- '╡': '+',
7400
- '╢': '+',
7401
- '╣': '+',
7402
- '╤': '+',
7403
- '╥': '+',
7404
- '╦': '+',
7405
- '╧': '+',
7406
- '╨': '+',
7407
- '╩': '+',
7408
- '╪': '+',
7409
- '╫': '+',
7410
- '╬': '+',
7411
- // Block Elements
7412
- '▀': 'block',
7413
- '▁': 'block',
7414
- '▂': 'block',
7415
- '▃': 'block',
7416
- '▄': 'block',
7417
- '▅': 'block',
7418
- '▆': 'block',
7419
- '▇': 'block',
7420
- '█': 'block',
7421
- '▉': 'block',
7422
- '▊': 'block',
7423
- '▋': 'block',
7424
- '▌': 'block',
7425
- '▍': 'block',
7426
- '▎': 'block',
7427
- '▏': 'block',
7428
- '▐': 'block',
7429
- '░': 'block',
7430
- '▒': 'block',
7431
- '▓': 'block',
7432
- '▔': 'block',
7433
- '▕': 'block',
7434
- '▖': 'block',
7435
- '▗': 'block',
7436
- '▘': 'block',
7437
- '▙': 'block',
7438
- '▚': 'block',
7439
- '▛': 'block',
7440
- '▜': 'block',
7441
- '▝': 'block',
7442
- '▞': 'block',
7443
- '▟': 'block',
7444
- // Geometric Shapes
7445
- '■': 'square',
7446
- '□': 'square',
7447
- '▢': 'square',
7448
- '▣': 'square',
7449
- '▤': 'square',
7450
- '▥': 'square',
7451
- '▦': 'square',
7452
- '▧': 'square',
7453
- '▨': 'square',
7454
- '▩': 'square',
7455
- '▪': 'square',
7456
- '▫': 'square',
7457
- '▬': 'rectangle',
7458
- '▭': 'rectangle',
7459
- '▮': 'rectangle',
7460
- '▯': 'rectangle',
7461
- '▰': 'triangle',
7462
- '▱': 'triangle',
7463
- '▲': 'triangle',
7464
- '△': 'triangle',
7465
- '▴': 'triangle',
7466
- '▵': 'triangle',
7467
- '▶': 'triangle',
7468
- '▷': 'triangle',
7469
- '▸': 'triangle',
7470
- '▹': 'triangle',
7471
- '►': 'triangle',
7472
- '▻': 'triangle',
7473
- '▼': 'triangle',
7474
- '▽': 'triangle',
7475
- '▾': 'triangle',
7476
- '▿': 'triangle',
7477
- '◀': 'triangle',
7478
- '◁': 'triangle',
7479
- '◂': 'triangle',
7480
- '◃': 'triangle',
7481
- '◄': 'triangle',
7482
- '◅': 'triangle',
7483
- '◆': 'diamond',
7484
- '◇': 'diamond',
7485
- '◈': 'diamond',
7486
- '◉': 'circle',
7487
- '◊': 'diamond',
7488
- '○': 'circle',
7489
- '◌': 'circle',
7490
- '◍': 'circle',
7491
- '◎': 'circle',
7492
- '●': 'circle',
7493
- '◐': 'circle',
7494
- '◑': 'circle',
7495
- '◒': 'circle',
7496
- '◓': 'circle',
7497
- '◔': 'circle',
7498
- '◕': 'circle',
7499
- '◖': 'circle',
7500
- '◗': 'circle',
7501
- '◘': 'circle',
7502
- '◙': 'circle',
7503
- '◚': 'circle',
7504
- '◛': 'circle',
7505
- '◜': 'circle',
7506
- '◝': 'circle',
7507
- '◞': 'circle',
7508
- '◟': 'circle',
7509
- '◠': 'arc',
7510
- '◡': 'arc',
7511
- '◢': 'triangle',
7512
- '◣': 'triangle',
7513
- '◤': 'triangle',
7514
- '◥': 'triangle',
7515
- '◦': 'circle',
7516
- '◧': 'square',
7517
- '◨': 'square',
7518
- '◩': 'square',
7519
- '◪': 'square',
7520
- '◫': 'square',
7521
- '◬': 'circle',
7522
- '◭': 'triangle',
7523
- '◮': 'triangle',
7524
- '◯': 'circle',
7525
- '◰': 'square',
7526
- '◱': 'square',
7527
- '◲': 'square',
7528
- '◳': 'square',
7529
- '◴': 'circle',
7530
- '◵': 'circle',
7531
- '◶': 'circle',
7532
- '◷': 'circle',
7533
- '◸': 'triangle',
7534
- '◹': 'triangle',
7535
- '◺': 'triangle',
7536
- '◻': 'square',
7537
- '◼': 'square',
7538
- '◽': 'square',
7539
- '◾': 'square',
7540
- '◿': 'triangle',
7370
+ };
7371
+ const GENERAL_PUNCTUATION_MAP = {
7372
+ '\u2013': '',
7373
+ '\u2014': '',
7374
+ '\u2018': '',
7375
+ '\u2019': '',
7376
+ '\u201C': '',
7377
+ '\u201D': '',
7378
+ '\u201E': '',
7379
+ '\u2020': '',
7380
+ '\u2021': '',
7381
+ '\u2022': '',
7382
+ '\u2025': '',
7383
+ '\u2026': '',
7384
+ '\u2030': '',
7385
+ '\u2031': '',
7386
+ '\u2032': '',
7387
+ '\u2033': '',
7388
+ '\u2034': '',
7389
+ '\u2035': '',
7390
+ '\u2036': '',
7391
+ '\u2037': '',
7392
+ '\u2039': '',
7393
+ '\u203A': '',
7394
+ '\u203C': '',
7395
+ '\u203E': '',
7396
+ '\u2044': '',
7397
+ '\u204E': '',
7398
+ '\u204F': '',
7399
+ '\u2050': '',
7400
+ '\u2057': '',
7401
+ };
7402
+ const OTHERS_MAP = {
7403
+ Nº: 'No',
7404
+ };
7405
+ const SPECIAL_CHARS_MAP = {
7406
+ ...LATIN_MAP,
7407
+ ...SYMBOLS_MAP,
7408
+ ...GREEK_MAP,
7409
+ ...TURKISH_MAP,
7410
+ ...GERMAN_MAP,
7411
+ ...ROMANIAN_MAP,
7412
+ ...RUSSIAN_MAP,
7413
+ ...UKRAINIAN_MAP,
7414
+ ...CZECH_MAP,
7415
+ ...GEORGIAN_MAP,
7416
+ ...ITALIAN_MAP,
7417
+ ...FRENCH_MAP,
7418
+ ...PORTUGUESE_MAP,
7419
+ ...NORDIC_MAP,
7420
+ ...HUNGARIAN_MAP,
7421
+ ...VIETNAMESE_MAP,
7422
+ ...CROATIOAN_SEERBIAN_MAP,
7423
+ ...BALLTIC_MAP,
7424
+ ...CHINESE_JAPANESE_PUNCTUATION_MAP,
7425
+ ...SPANISH_MAP,
7426
+ ...SLOVAK_MAP,
7427
+ ...POLISH_MAP,
7428
+ ...LATVIAN_MAP,
7429
+ ...ARABIC_MAP,
7430
+ ...LITHUANIAN_MAP,
7431
+ ...SERBIAN_MAP,
7432
+ ...AZERBAIJANI_MAP,
7433
+ ...GEORGIAN_MAP,
7434
+ ...GEOMETRIC_SHAPES_MAP,
7435
+ ...BLOCK_ELEMENTS_MAP,
7436
+ ...BOX_DRAWING_MAP,
7437
+ ...OPTICAL_CHARACTER_RECOGNITION_MAP,
7438
+ ...CONTROL_PICTURES_MAP,
7439
+ ...MISCELLANEOUS_TECHNICAL_MAP,
7440
+ ...MATHEMATICAL_OPERATORS_MAP,
7441
+ ...SUBSCRIPTS_AND_SUPERSCRIPTS_MAP,
7442
+ ...NUMBER_FORMS_MAP,
7443
+ ...LETTERLIKE_SYMBOLS_MAP,
7444
+ ...CURRENCY_SYMBOLS_MAP,
7445
+ ...COMBINING_DIACRITICAL_MARKS_MAP,
7446
+ ...GENERAL_PUNCTUATION_MAP,
7447
+ ...OTHERS_MAP,
7541
7448
  };
7542
7449
 
7543
- /**
7544
- * Cleans and normalizes an array of product IDs by:
7545
- * 1. Converting all IDs to strings
7546
- * 2. Trimming whitespace
7547
- * 3. Removing leading zeros while preserving single "0"
7548
- * 4. Filtering out empty/invalid values
7549
- *
7550
- * @param ids - Array of product IDs that can be either strings or numbers
7551
- * @returns Array of cleaned string IDs
7552
- *
7553
- * @example
7554
- * cleanProductIds(["001", " 123 ", 456, "0"]) // ["1", "123", "456", "0"]
7555
- */
7556
- function cleanProductIds(ids) {
7557
- // If the input is not an array, return an empty array
7558
- if (!Array.isArray(ids)) {
7559
- return [];
7560
- }
7561
- // Use reduce to combine mapping and filtering operations
7562
- return ids.reduce((result, id) => {
7563
- // If the id is null or undefined, skip it
7564
- if (id == null) {
7565
- return result;
7450
+ class NormalizeStringHelper {
7451
+ constructor() {
7452
+ this.characterMaps = SPECIAL_CHARS_MAP;
7453
+ this.regex = new RegExp(Object.keys(this.characterMaps).join('|'), 'g');
7454
+ }
7455
+ static getInstance() {
7456
+ if (!NormalizeStringHelper.instance) {
7457
+ NormalizeStringHelper.instance = new NormalizeStringHelper();
7566
7458
  }
7567
- // Convert the id to a string, lowercase it, replace multiple whitespace characters with a single space, and trim it
7568
- const stringId = String(id).toLowerCase().replace(/\s+/g, ' ').trim();
7569
- // If the stringId is empty, skip it
7570
- if (!stringId) {
7571
- return result;
7459
+ return NormalizeStringHelper.instance;
7460
+ }
7461
+ normalize(text) {
7462
+ if (!text)
7463
+ return '';
7464
+ // Replace special characters with their basic counterparts
7465
+ let cleaned = text.replace(this.regex, (match) => this.characterMaps[match] || match);
7466
+ // Remove all other special characters except letters, numbers and spaces
7467
+ cleaned = cleaned.replace(/[^a-zA-Z0-9\s]/g, '');
7468
+ // Convert to lowercase
7469
+ cleaned = cleaned.toLowerCase();
7470
+ // Replace multiple spaces with a single space
7471
+ cleaned = cleaned.replace(/\s+/g, ' ');
7472
+ // Trim leading and trailing spaces
7473
+ cleaned = cleaned.trim();
7474
+ // Remove leading zeros while preserving single "0"
7475
+ cleaned = this.removeLeadingZerosIfNumber(cleaned);
7476
+ return cleaned;
7477
+ }
7478
+ /**
7479
+ * Removes leading zeros from a string number unless the string is just "0"
7480
+ * @param text - The string to process
7481
+ * @returns The string without leading zeros
7482
+ */
7483
+ removeLeadingZerosIfNumber(text) {
7484
+ // If the string is not a number, return it as is
7485
+ if (isNaN(Number(text))) {
7486
+ return text;
7572
7487
  }
7573
- // Replace special characters in the stringId based on the SPECIAL_CHARACTER_MAPPING
7574
- const noSpecialCharsString = stringId.replace(/[^a-z0-9]/g, (char) => SPECIAL_CHARACTER_MAPPING[char] || '');
7575
- // Remove leading zeros from the noSpecialCharsString, except for the single "0" case
7576
- const cleanedId = noSpecialCharsString === '0' ? '0' : noSpecialCharsString.replace(/^0+/, '');
7577
- // If the cleanedId is not empty, add it to the result array
7578
- if (cleanedId !== '') {
7579
- result.push(cleanedId);
7488
+ // If the string consists of only zeros, return "0"
7489
+ if (/^0+$/.test(text)) {
7490
+ return '0';
7580
7491
  }
7581
- // Return the result array for the next iteration
7582
- return result;
7583
- }, []); // Initialize the result array as an empty array of strings
7492
+ // Remove leading zeros
7493
+ return text.replace(/^0+/, '');
7494
+ }
7584
7495
  }
7585
7496
 
7586
7497
  class SingletonManager {
@@ -17196,17 +17107,17 @@ class IntersectionObserverService {
17196
17107
  }
17197
17108
  }
17198
17109
 
17199
- var ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX;
17200
- (function (ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX) {
17201
- ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX["PLACEMENT_ID"] = 0] = "PLACEMENT_ID";
17202
- ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX["SPOT_ID"] = 1] = "SPOT_ID";
17203
- ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX["SPOT_TYPE"] = 2] = "SPOT_TYPE";
17204
- ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX["EVENTS"] = 3] = "EVENTS";
17205
- ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX["FIRED_EVENTS"] = 4] = "FIRED_EVENTS";
17206
- ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX["PRODUCT_IDS"] = 5] = "PRODUCT_IDS";
17207
- ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX["CREATED_AT"] = 6] = "CREATED_AT";
17208
- })(ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX || (ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX = {}));
17209
- const LOCAL_STORAGE_SPOT_EVENTS_ARRAY_INDEX = {
17110
+ var ENUM_SPOT_ARRAY_INDEX;
17111
+ (function (ENUM_SPOT_ARRAY_INDEX) {
17112
+ ENUM_SPOT_ARRAY_INDEX[ENUM_SPOT_ARRAY_INDEX["PLACEMENT_ID"] = 0] = "PLACEMENT_ID";
17113
+ ENUM_SPOT_ARRAY_INDEX[ENUM_SPOT_ARRAY_INDEX["SPOT_ID"] = 1] = "SPOT_ID";
17114
+ ENUM_SPOT_ARRAY_INDEX[ENUM_SPOT_ARRAY_INDEX["SPOT_TYPE"] = 2] = "SPOT_TYPE";
17115
+ ENUM_SPOT_ARRAY_INDEX[ENUM_SPOT_ARRAY_INDEX["EVENTS"] = 3] = "EVENTS";
17116
+ ENUM_SPOT_ARRAY_INDEX[ENUM_SPOT_ARRAY_INDEX["FIRED_EVENTS"] = 4] = "FIRED_EVENTS";
17117
+ ENUM_SPOT_ARRAY_INDEX[ENUM_SPOT_ARRAY_INDEX["PRODUCT_IDS"] = 5] = "PRODUCT_IDS";
17118
+ ENUM_SPOT_ARRAY_INDEX[ENUM_SPOT_ARRAY_INDEX["CREATED_AT"] = 6] = "CREATED_AT";
17119
+ })(ENUM_SPOT_ARRAY_INDEX || (ENUM_SPOT_ARRAY_INDEX = {}));
17120
+ const SPOT_EVENTS_ARRAY_INDEX = {
17210
17121
  [exports.RMN_SPOT_EVENT.IMPRESSION]: 0,
17211
17122
  [exports.RMN_SPOT_EVENT.CLICK]: 1,
17212
17123
  [exports.RMN_SPOT_EVENT.PURCHASE]: 2,
@@ -17236,43 +17147,24 @@ class LocalStorageService {
17236
17147
  }
17237
17148
  return LocalStorageService.instance;
17238
17149
  }
17239
- syncLocalStorage() {
17240
- const localStorageData = window.localStorage.getItem(LocalStorageService.localStorageKey);
17241
- if (localStorageData) {
17242
- try {
17243
- const decryptedData = this.decryptData(localStorageData);
17244
- const parsedData = JSON.parse(decryptedData);
17245
- if (parsedData && typeof parsedData === 'object') {
17246
- const data = {};
17247
- for (const [key, value] of Object.entries(parsedData)) {
17248
- data[key] = this.spotArrayToObject(value);
17249
- }
17250
- this.spots = this.objectToMap(data);
17251
- }
17252
- else {
17253
- this.clearLocalStorage();
17254
- }
17255
- }
17256
- catch (_a) {
17257
- // If there is an error parsing the data, clear the local storage to prevent any issues
17258
- this.clearLocalStorage();
17259
- }
17260
- }
17261
- }
17262
17150
  setSpot(spotId, data) {
17263
- var _a, _b, _c, _d;
17151
+ var _a, _b, _c, _d, _e;
17264
17152
  data.createdAt = Date.now();
17265
17153
  const isExistentSpot = (_a = this.spots) === null || _a === void 0 ? void 0 : _a.has(spotId);
17266
17154
  if (isExistentSpot) {
17267
- const existingData = (_b = this.spots) === null || _b === void 0 ? void 0 : _b.get(spotId);
17268
- data.firedEvents = (_c = existingData === null || existingData === void 0 ? void 0 : existingData.firedEvents) !== null && _c !== void 0 ? _c : [];
17155
+ data.firedEvents = (_d = (_c = (_b = this.spots) === null || _b === void 0 ? void 0 : _b.get(spotId)) === null || _c === void 0 ? void 0 : _c.firedEvents) !== null && _d !== void 0 ? _d : [];
17269
17156
  }
17270
- (_d = this.spots) === null || _d === void 0 ? void 0 : _d.set(spotId, data);
17157
+ (_e = this.spots) === null || _e === void 0 ? void 0 : _e.set(spotId, data);
17271
17158
  this.updateLocalStorage();
17272
17159
  }
17273
17160
  removeSpot(spotId) {
17274
- var _a;
17275
- (_a = this.spots) === null || _a === void 0 ? void 0 : _a.delete(spotId);
17161
+ var _a, _b;
17162
+ const isExistentSpot = (_a = this.spots) === null || _a === void 0 ? void 0 : _a.has(spotId);
17163
+ if (!isExistentSpot)
17164
+ return;
17165
+ const isDeleted = (_b = this.spots) === null || _b === void 0 ? void 0 : _b.delete(spotId);
17166
+ if (!isDeleted)
17167
+ return;
17276
17168
  this.updateLocalStorage();
17277
17169
  }
17278
17170
  getSpot(spotId) {
@@ -17335,16 +17227,36 @@ class LocalStorageService {
17335
17227
  }
17336
17228
  }
17337
17229
  // ======================== Utility functions ======================== //
17230
+ syncLocalStorage() {
17231
+ const localStorageData = window.localStorage.getItem(LocalStorageService.localStorageKey);
17232
+ if (localStorageData) {
17233
+ try {
17234
+ const decryptedData = this.decryptData(localStorageData);
17235
+ const parsedData = JSON.parse(decryptedData);
17236
+ if (Array.isArray(parsedData)) {
17237
+ const data = Object.fromEntries(parsedData.map((spot) => [
17238
+ spot[ENUM_SPOT_ARRAY_INDEX.SPOT_ID],
17239
+ this.spotArrayToObject(spot),
17240
+ ]));
17241
+ this.spots = this.objectToMap(data);
17242
+ }
17243
+ else {
17244
+ this.clearLocalStorage();
17245
+ }
17246
+ }
17247
+ catch (_a) {
17248
+ // If there is an error parsing the data, clear the local storage to prevent any issues
17249
+ this.clearLocalStorage();
17250
+ }
17251
+ }
17252
+ }
17338
17253
  updateLocalStorage() {
17339
17254
  if (!this.spots)
17340
17255
  return undefined;
17341
- const data = this.mapToObject(this.spots);
17342
- const dataArray = {};
17343
- for (const [key, value] of Object.entries(data)) {
17344
- dataArray[key] = this.spotObjectToArray(value);
17345
- }
17256
+ const spotsObj = this.mapToObject(this.spots);
17257
+ const data = Object.values(spotsObj).map((spot) => this.spotObjectToArray(spot));
17346
17258
  try {
17347
- const encryptedData = this.encryptData(JSON.stringify(dataArray));
17259
+ const encryptedData = this.encryptData(JSON.stringify(data));
17348
17260
  window.localStorage.setItem(LocalStorageService.localStorageKey, encryptedData);
17349
17261
  }
17350
17262
  catch (_a) {
@@ -17373,52 +17285,53 @@ class LocalStorageService {
17373
17285
  return new Map(Object.entries(obj));
17374
17286
  }
17375
17287
  spotEventObjectToArray(events) {
17376
- return Object.keys(LOCAL_STORAGE_SPOT_EVENTS_ARRAY_INDEX).map((type) => {
17288
+ return Object.keys(SPOT_EVENTS_ARRAY_INDEX).map((type) => {
17377
17289
  const result = events.find((item) => item.event === type);
17378
17290
  return result && result.event === type ? result.url : '';
17379
17291
  });
17380
17292
  }
17381
17293
  spotEventArrayToObject(arr) {
17382
- return Object.keys(LOCAL_STORAGE_SPOT_EVENTS_ARRAY_INDEX).map((type) => ({
17294
+ return Object.keys(SPOT_EVENTS_ARRAY_INDEX).map((type) => ({
17383
17295
  event: type,
17384
- url: arr[LOCAL_STORAGE_SPOT_EVENTS_ARRAY_INDEX[type]],
17296
+ url: arr[SPOT_EVENTS_ARRAY_INDEX[type]],
17385
17297
  }));
17386
17298
  }
17387
17299
  /**
17388
17300
  * Converts a spot object to an array.
17389
17301
  *
17390
17302
  * @param {ILocalStorageSpot} obj - The spot object to convert.
17391
- * @return {LocalStorageSpotArray} An array representation of the spot object.
17303
+ * @return {SpotArrayType} An array representation of the spot object.
17392
17304
  */
17393
17305
  spotObjectToArray(obj) {
17306
+ var _a, _b, _c;
17394
17307
  return [
17395
17308
  obj.placementId,
17396
17309
  obj.spotId,
17397
17310
  obj.spotType,
17398
17311
  this.spotEventObjectToArray(obj.events),
17399
- obj.firedEvents.map((event) => [event.productId, event.event]),
17312
+ (_b = (_a = obj.firedEvents) === null || _a === void 0 ? void 0 : _a.map((event) => [event.productId, event.event])) !== null && _b !== void 0 ? _b : [],
17400
17313
  obj.productIds,
17401
- obj.createdAt,
17314
+ (_c = obj.createdAt) !== null && _c !== void 0 ? _c : 0,
17402
17315
  ];
17403
17316
  }
17404
17317
  /**
17405
17318
  * Converts an array representation of spot data into an object representation.
17406
17319
  *
17407
- * @param {LocalStorageSpotArray} arr - The array containing spot data.
17320
+ * @param {SpotArrayType} arr - The array containing spot data.
17408
17321
  * @return {ILocalStorageSpot} An object representation of the spot data.
17409
17322
  */
17410
17323
  spotArrayToObject(arr) {
17411
17324
  return {
17412
- placementId: arr[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX.PLACEMENT_ID],
17413
- spotId: arr[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX.SPOT_ID],
17414
- spotType: arr[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX.SPOT_TYPE],
17415
- events: this.spotEventArrayToObject(arr[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX.EVENTS]),
17416
- firedEvents: arr[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX.FIRED_EVENTS].map((item) => ({
17325
+ placementId: arr[ENUM_SPOT_ARRAY_INDEX.PLACEMENT_ID],
17326
+ spotId: arr[ENUM_SPOT_ARRAY_INDEX.SPOT_ID],
17327
+ spotType: arr[ENUM_SPOT_ARRAY_INDEX.SPOT_TYPE],
17328
+ events: this.spotEventArrayToObject(arr[ENUM_SPOT_ARRAY_INDEX.EVENTS]),
17329
+ firedEvents: arr[ENUM_SPOT_ARRAY_INDEX.FIRED_EVENTS].map((item) => ({
17417
17330
  productId: item[0],
17418
17331
  event: item[1],
17419
17332
  })),
17420
- productIds: arr[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX.PRODUCT_IDS],
17421
- createdAt: arr[ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX.CREATED_AT],
17333
+ productIds: arr[ENUM_SPOT_ARRAY_INDEX.PRODUCT_IDS],
17334
+ createdAt: arr[ENUM_SPOT_ARRAY_INDEX.CREATED_AT],
17422
17335
  };
17423
17336
  }
17424
17337
  /**
@@ -20715,12 +20628,17 @@ class DataLayerMonitor {
20715
20628
  };
20716
20629
  }
20717
20630
  extractProductData(event) {
20718
- var _a, _b, _c, _d, _e, _f, _g, _h;
20631
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
20719
20632
  const items = ((_a = event === null || event === void 0 ? void 0 : event.value) === null || _a === void 0 ? void 0 : _a.items) ||
20720
20633
  ((_b = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _b === void 0 ? void 0 : _b.items) ||
20721
- ((_d = (_c = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _c === void 0 ? void 0 : _c.detail) === null || _d === void 0 ? void 0 : _d.products) ||
20722
- ((_f = (_e = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _e === void 0 ? void 0 : _e.checkout) === null || _f === void 0 ? void 0 : _f.products) ||
20723
- ((_h = (_g = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _g === void 0 ? void 0 : _g.purchase) === null || _h === void 0 ? void 0 : _h.products) ||
20634
+ ((_c = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _c === void 0 ? void 0 : _c.products) ||
20635
+ ((_e = (_d = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _d === void 0 ? void 0 : _d.detail) === null || _e === void 0 ? void 0 : _e.products) ||
20636
+ ((_g = (_f = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _f === void 0 ? void 0 : _f.checkout) === null || _g === void 0 ? void 0 : _g.products) ||
20637
+ ((_j = (_h = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _h === void 0 ? void 0 : _h.purchase) === null || _j === void 0 ? void 0 : _j.products) ||
20638
+ ((_l = (_k = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _k === void 0 ? void 0 : _k.add) === null || _l === void 0 ? void 0 : _l.products) ||
20639
+ ((_o = (_m = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _m === void 0 ? void 0 : _m.remove) === null || _o === void 0 ? void 0 : _o.products) ||
20640
+ ((_q = (_p = event === null || event === void 0 ? void 0 : event.ecommerce) === null || _p === void 0 ? void 0 : _p.click) === null || _q === void 0 ? void 0 : _q.products) ||
20641
+ (event === null || event === void 0 ? void 0 : event.products) ||
20724
20642
  [];
20725
20643
  return items.map((item) => {
20726
20644
  const data = {
@@ -20766,6 +20684,7 @@ class MonitorService {
20766
20684
  }
20767
20685
  this.pubSubService = PubsubService.getInstance();
20768
20686
  this.localStorageService = LocalStorageService.getInstance();
20687
+ this.normalizeStringHelper = NormalizeStringHelper.getInstance();
20769
20688
  }
20770
20689
  static getInstance() {
20771
20690
  if (!MonitorService.instance) {
@@ -20783,7 +20702,7 @@ class MonitorService {
20783
20702
  this.implementedMonitor.start();
20784
20703
  }
20785
20704
  async matchAndFireEvent(eventData, spots) {
20786
- var _a;
20705
+ var _a, _b, _c, _d;
20787
20706
  if (!spots)
20788
20707
  return;
20789
20708
  for (const spot of Object.values(spots)) {
@@ -20793,15 +20712,15 @@ class MonitorService {
20793
20712
  if (!Object.values(exports.RMN_SPOT_EVENT).includes(eventData.event)) {
20794
20713
  continue;
20795
20714
  }
20796
- const firedEvents = spot.firedEvents;
20797
- const [eventProductId] = cleanProductIds([data.id]);
20715
+ const firedEvents = spot.firedEvents || [];
20716
+ const eventProductId = (_a = this.normalizeStringHelper) === null || _a === void 0 ? void 0 : _a.normalize(String(data.id));
20798
20717
  const isEventAlreadyFired = firedEvents.some((event) => event.productId === eventProductId && event.event === eventData.event);
20799
20718
  if (isEventAlreadyFired) {
20800
20719
  continue;
20801
20720
  }
20802
- const spotRelatedProductIdsSet = new Set(cleanProductIds(spot.productIds));
20803
- const [eventProductBrand] = cleanProductIds([data.brand]);
20804
- const [eventVariantBrand] = cleanProductIds([data.variant]);
20721
+ const spotRelatedProductIdsSet = new Set(spot.productIds.map((id) => { var _a; return (_a = this.normalizeStringHelper) === null || _a === void 0 ? void 0 : _a.normalize(String(id)); }));
20722
+ const eventProductBrand = (_b = this.normalizeStringHelper) === null || _b === void 0 ? void 0 : _b.normalize(String(data.brand));
20723
+ const eventVariantBrand = (_c = this.normalizeStringHelper) === null || _c === void 0 ? void 0 : _c.normalize(String(data.variant));
20805
20724
  const isProductMatch = [eventProductId, eventProductBrand, eventVariantBrand].some((id) => spotRelatedProductIdsSet.has(id));
20806
20725
  if (!isProductMatch) {
20807
20726
  continue;
@@ -20812,9 +20731,12 @@ class MonitorService {
20812
20731
  const eventUrl = spot.events[eventPosition].url;
20813
20732
  let additionalQueryParams = '';
20814
20733
  if (eventData.event === exports.RMN_SPOT_EVENT.PURCHASE) {
20815
- const gmv = data.price && data.quantity ? data.price * data.quantity : undefined;
20734
+ const conversionPrice = data.price && data.quantity ? data.price * data.quantity : undefined;
20816
20735
  // gmv = gross merchandise value, it is calculated by multiplying the product price by the product quantity
20817
- additionalQueryParams = objectToQueryParams({ gmv });
20736
+ additionalQueryParams = objectToQueryParams({
20737
+ override: conversionPrice,
20738
+ gmv: conversionPrice,
20739
+ });
20818
20740
  }
20819
20741
  // Fire the event and publish it to the pubsub service
20820
20742
  await this.fireAndPublishSpotEvent({
@@ -20829,7 +20751,7 @@ class MonitorService {
20829
20751
  event: eventData.event,
20830
20752
  });
20831
20753
  // Update the spots in the local storage
20832
- (_a = this.localStorageService) === null || _a === void 0 ? void 0 : _a.setSpot(spot.spotId, {
20754
+ (_d = this.localStorageService) === null || _d === void 0 ? void 0 : _d.setSpot(spot.spotId, {
20833
20755
  placementId: spot.placementId,
20834
20756
  spotId: spot.spotId,
20835
20757
  spotType: spot.spotType,
@@ -20992,7 +20914,6 @@ class EventService {
20992
20914
  spotType: spot.spot,
20993
20915
  events: spot.events,
20994
20916
  productIds: (_a = spot.productIds) !== null && _a !== void 0 ? _a : [],
20995
- firedEvents: [],
20996
20917
  });
20997
20918
  }
20998
20919
  async handleClickEvent({ placementId, spot }) {
@@ -21098,6 +21019,607 @@ class SelectionService extends BaseApi {
21098
21019
  }
21099
21020
  }
21100
21021
 
21022
+ const SPOT_EVENTS_EXAMPLE = [
21023
+ {
21024
+ event: exports.RMN_SPOT_EVENT.CLICK,
21025
+ url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwidXIiOm51bGx9&s=hWz37kbxi_u95EVNn2aoQhc5Aas',
21026
+ },
21027
+ {
21028
+ event: exports.RMN_SPOT_EVENT.IMPRESSION,
21029
+ url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiYmEiOjEsImZxIjowfQ&s=djoysjCimurf-5T11AlNAwwLSS8',
21030
+ },
21031
+ {
21032
+ event: exports.RMN_SPOT_EVENT.PURCHASE,
21033
+ url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjU5fQ&s=AAPAw-3SfZ0JMzjEGFSwt9L-2S4',
21034
+ },
21035
+ {
21036
+ event: exports.RMN_SPOT_EVENT.ADD_TO_CART,
21037
+ url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjYwfQ&s=uzQFcjgL7m9XqUG8FvTPVN5YkZY',
21038
+ },
21039
+ {
21040
+ event: exports.RMN_SPOT_EVENT.ADD_TO_WISHLIST,
21041
+ url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjYzfQ&s=m3ISU_iIy-OFtXrTKpI6cJAEC0k',
21042
+ },
21043
+ {
21044
+ event: exports.RMN_SPOT_EVENT.BUY_NOW,
21045
+ url: 'https://dev.rmn.liquidcommerce.cloud/api/spots/event?e=eyJ2IjoiMS4xMiIsImF2IjozMDY1NzgzLCJhdCI6MTYzLCJidCI6MCwiY20iOjQ0MDE5MjQxOCwiY2giOjYzMTg0LCJjayI6e30sImNyIjo0ODE4NTUzNzUsImRpIjoiOWMxNGFhMGI3NWY4NDMxNTllMTAwYWQzNzA1NzQyYzMiLCJkaiI6MCwiaWkiOiIxZjU0MGM5NmQ1N2M0YmZjODFlZjRkNjhkMzFjNDVkOSIsImRtIjozLCJmYyI6NjU2NjgyNTQ5LCJmbCI6NjQzOTMxODIxLCJpcCI6IjM1LjIyMy4xOTguOTUiLCJudyI6MTE1MDAsInBjIjo1MDAwLCJvcCI6NTAwMCwibXAiOjUwMDAsImVjIjowLCJnbSI6MCwiZXAiOm51bGwsInByIjoyNDkzMTYsInJ0IjoxLCJycyI6NTAwLCJzYSI6IjU1Iiwic2IiOiJpLTA0MDI0ODg4ZDlkMWRjZWQ3Iiwic3AiOjI3MjI3Miwic3QiOjEyODcyOTYsInRyIjp0cnVlLCJ1ayI6IjNhZWRhMWMxLTZhYjItNDUwNy04Mzg5LTEwZTJmNDMxYjM5MSIsInRzIjoxNzI5MzU5MDU0OTI3LCJiZiI6dHJ1ZSwicG4iOiJyYlByb2R1Y3RVcGNzIiwiZ2MiOnRydWUsImdDIjp0cnVlLCJncyI6Im5vbmUiLCJkYyI6MSwidHoiOiJBbWVyaWNhL05ld19Zb3JrIiwiZXQiOjY5fQ&s=l6MOscQC-q-FkC2Ksd7w6jjySCQ',
21046
+ },
21047
+ ];
21048
+ ({
21049
+ rbHomepageHero: [
21050
+ {
21051
+ id: 'abc123',
21052
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21053
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21054
+ width: 1140,
21055
+ height: 640,
21056
+ header: 'Premium Wine Collection',
21057
+ description: 'Discover our exclusive selection of vintage wines',
21058
+ ctaText: 'Shop Wines',
21059
+ textColor: '#ffffff',
21060
+ ctaTextColor: '#ffffff',
21061
+ primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Collection',
21062
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Wine',
21063
+ events: SPOT_EVENTS_EXAMPLE,
21064
+ productIds: [1, 2, 3],
21065
+ },
21066
+ {
21067
+ id: 'jkl012',
21068
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21069
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21070
+ width: 1140,
21071
+ height: 640,
21072
+ header: 'Whiskey Collection',
21073
+ description: 'Premium whiskeys from around the world',
21074
+ ctaText: 'Shop Whiskeys',
21075
+ textColor: '#ffffff',
21076
+ backgroundColor: '#2c1810',
21077
+ ctaTextColor: '#2c1810',
21078
+ primaryImage: 'https://placehold.co/1140x640/png?text=Whiskey',
21079
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Whiskey',
21080
+ events: SPOT_EVENTS_EXAMPLE,
21081
+ productIds: [10, 11],
21082
+ },
21083
+ {
21084
+ id: 'stu901',
21085
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21086
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21087
+ width: 1140,
21088
+ height: 640,
21089
+ header: 'Summer Cocktails',
21090
+ description: 'Essential spirits for summer mixing',
21091
+ ctaText: 'Mix It Up',
21092
+ textColor: '#ffffff',
21093
+ backgroundColor: '#4d3a0a',
21094
+ ctaTextColor: '#4d3a0a',
21095
+ primaryImage: 'https://placehold.co/1140x640/png?text=Cocktails',
21096
+ secondaryImage: 'https://placehold.co/1140x640/png?text=Mixers',
21097
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Cocktails',
21098
+ mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Mixers',
21099
+ events: SPOT_EVENTS_EXAMPLE,
21100
+ productIds: [16, 17, 18],
21101
+ },
21102
+ {
21103
+ id: 'def456',
21104
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21105
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21106
+ width: 1140,
21107
+ height: 640,
21108
+ header: 'Craft Beer Festival',
21109
+ description: 'Local breweries and exclusive releases',
21110
+ ctaText: 'Explore Beers',
21111
+ textColor: '#ffffff',
21112
+ ctaTextColor: '#ffffff',
21113
+ primaryImage: 'https://placehold.co/1140x640/png?text=Beer+Festival',
21114
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Beer',
21115
+ events: SPOT_EVENTS_EXAMPLE,
21116
+ productIds: [4, 5, 6],
21117
+ },
21118
+ {
21119
+ id: 'mno345',
21120
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21121
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21122
+ width: 1140,
21123
+ height: 640,
21124
+ header: 'Champagne Selection',
21125
+ description: 'Finest champagnes for every occasion',
21126
+ ctaText: 'View Champagnes',
21127
+ textColor: '#ffffff',
21128
+ backgroundColor: '#1a1a1a',
21129
+ ctaTextColor: '#1a1a1a',
21130
+ primaryImage: 'https://placehold.co/1140x640/png?text=Champagne',
21131
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Champagne',
21132
+ events: SPOT_EVENTS_EXAMPLE,
21133
+ productIds: [12, 13],
21134
+ },
21135
+ {
21136
+ id: 'vwx234',
21137
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21138
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21139
+ width: 1140,
21140
+ height: 640,
21141
+ header: 'Wine Regions',
21142
+ description: 'Explore wines from top regions',
21143
+ ctaText: 'Tour Regions',
21144
+ textColor: '#ffffff',
21145
+ backgroundColor: '#4d0a0a',
21146
+ ctaTextColor: '#4d0a0a',
21147
+ primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Regions',
21148
+ secondaryImage: 'https://placehold.co/1140x640/png?text=Vineyards',
21149
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Regions',
21150
+ mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Vineyards',
21151
+ events: SPOT_EVENTS_EXAMPLE,
21152
+ productIds: [19, 20, 21],
21153
+ },
21154
+ {
21155
+ id: 'ghi789',
21156
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21157
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21158
+ width: 1140,
21159
+ height: 640,
21160
+ header: 'Rare Spirits',
21161
+ description: 'Limited edition spirits collection',
21162
+ ctaText: 'View Collection',
21163
+ textColor: '#ffffff',
21164
+ ctaTextColor: '#ffffff',
21165
+ primaryImage: 'https://placehold.co/1140x640/png?text=Rare+Spirits',
21166
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Spirits',
21167
+ events: SPOT_EVENTS_EXAMPLE,
21168
+ productIds: [7, 8, 9],
21169
+ },
21170
+ {
21171
+ id: 'pqr678',
21172
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21173
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21174
+ width: 1140,
21175
+ height: 640,
21176
+ header: 'Gin Collection',
21177
+ description: 'Artisanal gins and botanicals',
21178
+ ctaText: 'Explore Gins',
21179
+ textColor: '#ffffff',
21180
+ backgroundColor: '#0a4d4d',
21181
+ ctaTextColor: '#0a4d4d',
21182
+ primaryImage: 'https://placehold.co/1140x640/png?text=Gin',
21183
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Gin',
21184
+ events: SPOT_EVENTS_EXAMPLE,
21185
+ productIds: [14, 15],
21186
+ },
21187
+ {
21188
+ id: 'yz5678',
21189
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21190
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21191
+ width: 1140,
21192
+ height: 640,
21193
+ header: 'Tequila Collection',
21194
+ description: 'Premium tequilas and mezcals',
21195
+ ctaText: 'Shop Tequila',
21196
+ textColor: '#ffffff',
21197
+ backgroundColor: '#0a4d2b',
21198
+ ctaTextColor: '#0a4d2b',
21199
+ primaryImage: 'https://placehold.co/1140x640/png?text=Tequila',
21200
+ secondaryImage: 'https://placehold.co/1140x640/png?text=Mezcal',
21201
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Tequila',
21202
+ mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Mezcal',
21203
+ events: SPOT_EVENTS_EXAMPLE,
21204
+ productIds: [22, 23, 24],
21205
+ },
21206
+ ],
21207
+ rbHomepageHeroFullImage: [
21208
+ {
21209
+ id: 'hjk567',
21210
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21211
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21212
+ width: 1140,
21213
+ height: 640,
21214
+ header: 'Holiday Gift Guide',
21215
+ description: 'Perfect spirits for every occasion',
21216
+ ctaText: 'Shop Gifts',
21217
+ textColor: '#ffffff',
21218
+ ctaTextColor: '#ffffff',
21219
+ primaryImage: 'https://placehold.co/1140x640/png?text=Gift+Guide',
21220
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Gifts',
21221
+ events: SPOT_EVENTS_EXAMPLE,
21222
+ productIds: [25, 26],
21223
+ },
21224
+ {
21225
+ id: 'qwe890',
21226
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21227
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_FULL_IMAGE,
21228
+ width: 1140,
21229
+ height: 640,
21230
+ header: 'Summer Wine Festival',
21231
+ description: 'Refreshing wines for summer',
21232
+ ctaText: 'Shop Festival',
21233
+ textColor: '#ffffff',
21234
+ ctaTextColor: '#ffffff',
21235
+ primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Festival',
21236
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Festival',
21237
+ events: SPOT_EVENTS_EXAMPLE,
21238
+ productIds: [27, 28],
21239
+ },
21240
+ ],
21241
+ rbHomepageHeroTwoTile: [
21242
+ {
21243
+ id: 'iop987',
21244
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21245
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21246
+ width: 1140,
21247
+ height: 640,
21248
+ header: 'Bourbon Selection',
21249
+ description: "Kentucky's finest bourbons",
21250
+ ctaText: 'Shop Bourbon',
21251
+ textColor: '#ffffff',
21252
+ backgroundColor: '#2c1810',
21253
+ ctaTextColor: '#2c1810',
21254
+ primaryImage: 'https://placehold.co/1140x640/png?text=Bourbon',
21255
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Bourbon',
21256
+ events: SPOT_EVENTS_EXAMPLE,
21257
+ productIds: [29, 30],
21258
+ },
21259
+ {
21260
+ id: 'lkj012',
21261
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21262
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_TWO_TILE,
21263
+ width: 1140,
21264
+ height: 640,
21265
+ header: 'Vodka Collection',
21266
+ description: 'Premium vodkas from around the world',
21267
+ ctaText: 'Shop Vodka',
21268
+ textColor: '#ffffff',
21269
+ backgroundColor: '#1a1a1a',
21270
+ ctaTextColor: '#1a1a1a',
21271
+ primaryImage: 'https://placehold.co/1140x640/png?text=Vodka',
21272
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Vodka',
21273
+ events: SPOT_EVENTS_EXAMPLE,
21274
+ productIds: [31, 32],
21275
+ },
21276
+ ],
21277
+ rbHomepageHeroThreeTile: [
21278
+ {
21279
+ id: 'bnm345',
21280
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21281
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21282
+ width: 1140,
21283
+ height: 640,
21284
+ header: 'Rum Collection',
21285
+ description: 'Caribbean and craft rums',
21286
+ ctaText: 'Shop Rum',
21287
+ textColor: '#ffffff',
21288
+ backgroundColor: '#4d3a0a',
21289
+ ctaTextColor: '#4d3a0a',
21290
+ primaryImage: 'https://placehold.co/1140x640/png?text=Rum',
21291
+ secondaryImage: 'https://placehold.co/1140x640/png?text=Craft+Rum',
21292
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Rum',
21293
+ mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Craft',
21294
+ events: SPOT_EVENTS_EXAMPLE,
21295
+ productIds: [33, 34],
21296
+ },
21297
+ {
21298
+ id: 'fgh678',
21299
+ spot: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21300
+ variant: exports.RMN_SPOT_TYPE.RB_HOMEPAGE_HERO_THREE_TILE,
21301
+ width: 1140,
21302
+ height: 640,
21303
+ header: 'Scotch Selection',
21304
+ description: 'Single malts and blends',
21305
+ ctaText: 'Shop Scotch',
21306
+ textColor: '#ffffff',
21307
+ backgroundColor: '#4d0a0a',
21308
+ ctaTextColor: '#4d0a0a',
21309
+ primaryImage: 'https://placehold.co/1140x640/png?text=Scotch',
21310
+ secondaryImage: 'https://placehold.co/1140x640/png?text=Single+Malts',
21311
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Scotch',
21312
+ mobileSecondaryImage: 'https://placehold.co/640x320/png?text=Mobile+Malts',
21313
+ events: SPOT_EVENTS_EXAMPLE,
21314
+ productIds: [35, 36],
21315
+ },
21316
+ ],
21317
+ rbLargeCategoryImageTout: [
21318
+ {
21319
+ id: 'cde567',
21320
+ spot: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
21321
+ variant: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
21322
+ width: 468,
21323
+ height: 410,
21324
+ header: 'Rare & Limited Edition',
21325
+ description: 'Discover our collection of hard-to-find and limited release spirits.',
21326
+ textColor: '#ffffff',
21327
+ ctaTextColor: '#ffffff',
21328
+ primaryImage: 'https://placehold.co/468x410/png?text=Rare+Spirits',
21329
+ mobilePrimaryImage: 'https://placehold.co/468x410/png?text=Mobile+Rare+Spirits',
21330
+ ctaText: 'Shop Rare Spirits',
21331
+ events: SPOT_EVENTS_EXAMPLE,
21332
+ productIds: [37, 38, 39, 40, 41],
21333
+ },
21334
+ {
21335
+ id: 'efg789',
21336
+ spot: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
21337
+ variant: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
21338
+ width: 468,
21339
+ height: 410,
21340
+ header: 'Vintage Champagnes',
21341
+ description: 'Explore our prestigious collection of aged champagnes.',
21342
+ textColor: '#ffffff',
21343
+ ctaTextColor: '#ffffff',
21344
+ primaryImage: 'https://placehold.co/468x410/png?text=Vintage+Champagne',
21345
+ mobilePrimaryImage: 'https://placehold.co/468x410/png?text=Mobile+Champagne',
21346
+ ctaText: 'View Collection',
21347
+ events: SPOT_EVENTS_EXAMPLE,
21348
+ productIds: [42, 43, 44, 45, 46],
21349
+ },
21350
+ {
21351
+ id: 'ghi012',
21352
+ spot: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
21353
+ variant: exports.RMN_SPOT_TYPE.RB_LARGE_CATEGORY_IMAGE_TOUT,
21354
+ width: 468,
21355
+ height: 410,
21356
+ header: 'Small Batch Bourbon',
21357
+ description: 'Hand-selected premium bourbon from craft distilleries.',
21358
+ textColor: '#ffffff',
21359
+ ctaTextColor: '#ffffff',
21360
+ primaryImage: 'https://placehold.co/468x410/png?text=Craft+Bourbon',
21361
+ mobilePrimaryImage: 'https://placehold.co/468x410/png?text=Mobile+Bourbon',
21362
+ ctaText: 'Explore Bourbon',
21363
+ events: SPOT_EVENTS_EXAMPLE,
21364
+ productIds: [47, 48, 49, 50, 51],
21365
+ },
21366
+ ],
21367
+ rbSmallDiscoverTout: [
21368
+ {
21369
+ id: 'jkl345',
21370
+ spot: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
21371
+ variant: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
21372
+ width: 224,
21373
+ height: 378,
21374
+ header: 'Château Margaux 2015 Bordeaux',
21375
+ textColor: '#ffffff',
21376
+ primaryImage: 'https://placehold.co/224x378/png?text=Château+Margaux',
21377
+ mobilePrimaryImage: 'https://placehold.co/224x378/png?text=Mobile+Château+Margaux',
21378
+ events: SPOT_EVENTS_EXAMPLE,
21379
+ productIds: [52, 53, 54, 55, 56],
21380
+ },
21381
+ {
21382
+ id: 'lmn678',
21383
+ spot: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
21384
+ variant: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
21385
+ width: 224,
21386
+ height: 378,
21387
+ header: 'Macallan 25 Year',
21388
+ textColor: '#ffffff',
21389
+ primaryImage: 'https://placehold.co/224x378/png?text=Macallan+25',
21390
+ mobilePrimaryImage: 'https://placehold.co/224x378/png?text=Mobile+Macallan',
21391
+ events: SPOT_EVENTS_EXAMPLE,
21392
+ productIds: [57, 58, 59, 60, 61],
21393
+ },
21394
+ {
21395
+ id: 'nop901',
21396
+ spot: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
21397
+ variant: exports.RMN_SPOT_TYPE.RB_SMALL_DISCOVER_TOUT,
21398
+ width: 224,
21399
+ height: 378,
21400
+ header: 'Louis XIII Cognac',
21401
+ textColor: '#ffffff',
21402
+ primaryImage: 'https://placehold.co/224x378/png?text=Louis+XIII',
21403
+ mobilePrimaryImage: 'https://placehold.co/224x378/png?text=Mobile+Louis+XIII',
21404
+ events: SPOT_EVENTS_EXAMPLE,
21405
+ productIds: [62, 63, 64, 65, 66],
21406
+ },
21407
+ ],
21408
+ rbSmallCategoryImageTout: [
21409
+ {
21410
+ id: 'qrs234',
21411
+ spot: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
21412
+ variant: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
21413
+ width: 224,
21414
+ height: 410,
21415
+ header: 'Japanese Sake',
21416
+ textColor: '#ffffff',
21417
+ primaryImage: 'https://placehold.co/224x410/png?text=Japanese+Sake',
21418
+ mobilePrimaryImage: 'https://placehold.co/224x410/png?text=Mobile+Japanese+Sake',
21419
+ events: SPOT_EVENTS_EXAMPLE,
21420
+ productIds: [67, 68, 69, 70, 71],
21421
+ },
21422
+ {
21423
+ id: 'stu567',
21424
+ spot: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
21425
+ variant: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
21426
+ width: 224,
21427
+ height: 410,
21428
+ header: 'Craft Vermouth',
21429
+ textColor: '#ffffff',
21430
+ primaryImage: 'https://placehold.co/224x410/png?text=Craft+Vermouth',
21431
+ mobilePrimaryImage: 'https://placehold.co/224x410/png?text=Mobile+Vermouth',
21432
+ events: SPOT_EVENTS_EXAMPLE,
21433
+ productIds: [72, 73, 74, 75, 76],
21434
+ },
21435
+ {
21436
+ id: 'vwx890',
21437
+ spot: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
21438
+ variant: exports.RMN_SPOT_TYPE.RB_SMALL_CATEGORY_IMAGE_TOUT,
21439
+ width: 224,
21440
+ height: 410,
21441
+ header: 'Premium Mezcal',
21442
+ textColor: '#ffffff',
21443
+ primaryImage: 'https://placehold.co/224x410/png?text=Premium+Mezcal',
21444
+ mobilePrimaryImage: 'https://placehold.co/224x410/png?text=Mobile+Mezcal',
21445
+ events: SPOT_EVENTS_EXAMPLE,
21446
+ productIds: [77, 78, 79, 80, 81],
21447
+ },
21448
+ ],
21449
+ rbCollectionBannerWithoutTextBlock: [
21450
+ {
21451
+ id: 'yz1234',
21452
+ spot: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
21453
+ variant: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
21454
+ width: 887,
21455
+ height: 344,
21456
+ primaryImage: 'https://placehold.co/887x344/png?text=Summer+Cocktails',
21457
+ mobilePrimaryImage: 'https://placehold.co/887x344/png?text=Mobile+Summer+Cocktails',
21458
+ events: SPOT_EVENTS_EXAMPLE,
21459
+ productIds: [82, 83, 84, 85, 86],
21460
+ },
21461
+ {
21462
+ id: 'abc567',
21463
+ spot: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
21464
+ variant: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
21465
+ width: 887,
21466
+ height: 344,
21467
+ primaryImage: 'https://placehold.co/887x344/png?text=Holiday+Spirits',
21468
+ mobilePrimaryImage: 'https://placehold.co/887x344/png?text=Mobile+Holiday+Spirits',
21469
+ events: SPOT_EVENTS_EXAMPLE,
21470
+ productIds: [87, 88, 89, 90, 91],
21471
+ },
21472
+ {
21473
+ id: 'def901',
21474
+ spot: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
21475
+ variant: exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK,
21476
+ width: 887,
21477
+ height: 344,
21478
+ primaryImage: 'https://placehold.co/887x344/png?text=Wine+Essentials',
21479
+ mobilePrimaryImage: 'https://placehold.co/887x344/png?text=Mobile+Wine+Essentials',
21480
+ events: SPOT_EVENTS_EXAMPLE,
21481
+ productIds: [92, 93, 94, 95, 96],
21482
+ },
21483
+ ],
21484
+ rbNavigationBanner: [
21485
+ {
21486
+ id: 'ghi234',
21487
+ spot: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
21488
+ variant: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
21489
+ width: 440,
21490
+ height: 220,
21491
+ header: 'Explore Tequilas',
21492
+ textColor: '#ffffff',
21493
+ primaryImage: 'https://placehold.co/440x220/png?text=Tequila+Collection',
21494
+ mobilePrimaryImage: 'https://placehold.co/440x220/png?text=Mobile+Tequila+Collection',
21495
+ events: SPOT_EVENTS_EXAMPLE,
21496
+ productIds: [97, 98, 99, 100, 101],
21497
+ },
21498
+ {
21499
+ id: 'jkl678',
21500
+ spot: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
21501
+ variant: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
21502
+ width: 440,
21503
+ height: 220,
21504
+ header: 'Craft Gin Selection',
21505
+ textColor: '#ffffff',
21506
+ primaryImage: 'https://placehold.co/440x220/png?text=Gin+Selection',
21507
+ mobilePrimaryImage: 'https://placehold.co/440x220/png?text=Mobile+Gin+Selection',
21508
+ events: SPOT_EVENTS_EXAMPLE,
21509
+ productIds: [102, 103, 104, 105, 106],
21510
+ },
21511
+ {
21512
+ id: 'mno012',
21513
+ spot: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
21514
+ variant: exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER,
21515
+ width: 440,
21516
+ height: 220,
21517
+ header: 'Premium Vodka',
21518
+ textColor: '#ffffff',
21519
+ primaryImage: 'https://placehold.co/440x220/png?text=Vodka+Premium',
21520
+ mobilePrimaryImage: 'https://placehold.co/440x220/png?text=Mobile+Vodka+Premium',
21521
+ events: SPOT_EVENTS_EXAMPLE,
21522
+ productIds: [107, 108, 109, 110, 111],
21523
+ },
21524
+ ],
21525
+ rbInText: [
21526
+ {
21527
+ id: 'mxo259',
21528
+ spot: exports.RMN_SPOT_TYPE.RB_IN_TEXT,
21529
+ variant: exports.RMN_SPOT_TYPE.RB_IN_TEXT,
21530
+ width: 1,
21531
+ height: 1,
21532
+ header: 'Premium Vodka',
21533
+ textColor: '#ffffff',
21534
+ backgroundColor: '#000000',
21535
+ events: SPOT_EVENTS_EXAMPLE,
21536
+ productIds: [107, 108, 109, 110, 111],
21537
+ },
21538
+ ],
21539
+ rbVideoPlayer: [
21540
+ {
21541
+ id: 'mxo259',
21542
+ spot: exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER,
21543
+ variant: exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER,
21544
+ width: 1280,
21545
+ height: 720,
21546
+ videoUrl: 'https://www.youtube.com/watch?v=9bZkp7q19f0',
21547
+ videoOverlayImage: 'https://placehold.co/1280x720/png?text=Video+Overlay',
21548
+ videoOverlayHeader: 'Watch Our Story',
21549
+ videoOverlayDescription: 'Discover the history of our distillery',
21550
+ videoControls: true,
21551
+ videoAutoPlay: true,
21552
+ videoMute: true,
21553
+ videoLoop: true,
21554
+ events: SPOT_EVENTS_EXAMPLE,
21555
+ productIds: [107, 108, 109, 110, 111],
21556
+ },
21557
+ ],
21558
+ });
21559
+ ({
21560
+ banner: [],
21561
+ billboard: [
21562
+ {
21563
+ id: 'kol567',
21564
+ spot: exports.RMN_SPOT_TYPE.BILLBOARD,
21565
+ variant: `${exports.RMN_SPOT_TYPE.BILLBOARD}V2`,
21566
+ width: 1140,
21567
+ height: 640,
21568
+ header: 'Holiday Gift Guide',
21569
+ description: 'Perfect spirits for every occasion',
21570
+ ctaText: 'Shop Gifts',
21571
+ textColor: '#ffffff',
21572
+ ctaTextColor: '#ffffff',
21573
+ primaryImage: 'https://placehold.co/1140x640/png?text=Gift+Guide',
21574
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Gifts',
21575
+ events: SPOT_EVENTS_EXAMPLE,
21576
+ productIds: [25, 26],
21577
+ },
21578
+ {
21579
+ id: 'hpm390',
21580
+ spot: exports.RMN_SPOT_TYPE.BILLBOARD,
21581
+ variant: `${exports.RMN_SPOT_TYPE.BILLBOARD}V2`,
21582
+ width: 1140,
21583
+ height: 640,
21584
+ header: 'Summer Wine Festival',
21585
+ description: 'Refreshing wines for summer',
21586
+ ctaText: 'Shop Festival',
21587
+ textColor: '#ffffff',
21588
+ ctaTextColor: '#ffffff',
21589
+ primaryImage: 'https://placehold.co/1140x640/png?text=Wine+Festival',
21590
+ mobilePrimaryImage: 'https://placehold.co/640x640/png?text=Mobile+Festival',
21591
+ events: SPOT_EVENTS_EXAMPLE,
21592
+ productIds: [27, 28],
21593
+ },
21594
+ ],
21595
+ button2: [],
21596
+ featurePhoneLargeBanner: [],
21597
+ featurePhoneMediumBanner: [],
21598
+ featurePhoneSmallBanner: [],
21599
+ halfPage: [],
21600
+ inText: [],
21601
+ largeLeaderboard: [],
21602
+ largeRectangle: [],
21603
+ leaderboard: [],
21604
+ mediumRectangle: [],
21605
+ microBar: [],
21606
+ mobilePhoneInterstitial1: [],
21607
+ mobilePhoneInterstitial2: [],
21608
+ mobilePhoneInterstitial3: [],
21609
+ popUp: [],
21610
+ portrait: [],
21611
+ rbProductUpcs: [],
21612
+ skyscraper: [],
21613
+ smallRectangle: [],
21614
+ smallSquare: [],
21615
+ smartphoneBanner1: [],
21616
+ smartphoneBanner2: [],
21617
+ square: [],
21618
+ verticalBanner: [],
21619
+ verticalRectangle: [],
21620
+ wideSkyscraper: [],
21621
+ });
21622
+
21101
21623
  /**
21102
21624
  * Checks if the current environment is a browser environment.
21103
21625
  *