@surfside/ads-core-web 0.2.0 → 0.3.0-c5bdf731.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
- # @surfside/ads-core-web
2
-
3
- To install dependencies:
4
-
5
- ```bash
6
- bun install
7
- ```
8
-
9
- To run:
10
-
11
- ```bash
12
- bun run src/index.ts
13
- ```
14
-
15
- This project was created using `bun init` in bun v1.2.10. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
1
+ # @surfside/ads-core-web
2
+
3
+ To install dependencies:
4
+
5
+ ```bash
6
+ bun install
7
+ ```
8
+
9
+ To run:
10
+
11
+ ```bash
12
+ bun run src/index.ts
13
+ ```
14
+
15
+ This project was created using `bun init` in bun v1.2.10. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VersionInfo = void 0;
4
4
  exports.VersionInfo = {
5
- 'buildBranch': 'master',
6
- 'buildHash': '70fb1c8',
7
- 'buildVer': '0.2.0'
5
+ 'buildBranch': 'HEAD',
6
+ 'buildHash': 'c5bdf73',
7
+ 'buildVer': '0.3.0-c5bdf731.0'
8
8
  };
9
9
  //# sourceMappingURL=BuildInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BuildInfo.js","sourceRoot":"../@surfside-ads-core-web/","sources":["BuildInfo.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACvB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,OAAO;CACtB,CAAC"}
1
+ {"version":3,"file":"BuildInfo.js","sourceRoot":"../@surfside-ads-core-web/","sources":["BuildInfo.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACvB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,kBAAkB;CACjC,CAAC"}
@@ -64,34 +64,34 @@ class MissingNurlError extends Error {
64
64
  }
65
65
  exports.MissingNurlError = MissingNurlError;
66
66
  ;
67
- const template = `<div>
68
- <div class="surfside-banner-adm">
69
-
70
- </div>
71
- <div class="surfside-banner-watermark">
72
-
73
- </div>
74
- </div>
67
+ const template = `<div>
68
+ <div class="surfside-banner-adm">
69
+
70
+ </div>
71
+ <div class="surfside-banner-watermark">
72
+
73
+ </div>
74
+ </div>
75
75
  `;
76
- const style = `.surfside-banner {
77
- position: relative;
78
- display: inline-block;
79
- overflow: hidden;
80
- max-width: 100%;
81
- height: auto;
82
- width: 100%;
83
- }
84
-
85
- .surfside-banner-adm {
86
- display: flex;
87
-
88
- a {
89
- width: 100%;
90
-
91
- img {
92
- width: 100%;
93
- height: auto;
94
- }
95
- }
76
+ const style = `.surfside-banner {
77
+ position: relative;
78
+ display: inline-block;
79
+ overflow: hidden;
80
+ max-width: 100%;
81
+ height: auto;
82
+ width: 100%;
83
+ }
84
+
85
+ .surfside-banner-adm {
86
+ display: flex;
87
+
88
+ a {
89
+ width: 100%;
90
+
91
+ img {
92
+ width: 100%;
93
+ height: auto;
94
+ }
95
+ }
96
96
  }`;
97
97
  //# sourceMappingURL=Banner.js.map
@@ -365,127 +365,127 @@ class EmptyFirstPageError extends Error {
365
365
  }
366
366
  exports.EmptyFirstPageError = EmptyFirstPageError;
367
367
  ;
368
- const template = `<div class="carousel-wrapper surf-v3">
369
- <div class="sponsored-carousel"></div>
370
- <div class="surf-carousel">
371
- <div class="items"></div>
372
- <div class="arrows">
373
- <div class="arrow left"></div>
374
- <div class="arrow right"></div>
375
- </div>
376
- </div>
368
+ const template = `<div class="carousel-wrapper surf-v3">
369
+ <div class="sponsored-carousel"></div>
370
+ <div class="surf-carousel">
371
+ <div class="items"></div>
372
+ <div class="arrows">
373
+ <div class="arrow left"></div>
374
+ <div class="arrow right"></div>
375
+ </div>
376
+ </div>
377
377
  </div>`;
378
- const style = `
379
- .surf-carousel {
380
- display: flex;
381
- flex-direction: column;
382
- position: relative;
383
- flex-grow: 1;
384
-
385
- .sponsored-carousel {
386
- font-family: 'Helvetica', Verdana, Geneva, Tahoma, sans-serif;
387
- margin: 10px 0;
388
- font-size: 24px;
389
-
390
- &::before {
391
- content: 'For you';
392
- }
393
-
394
- &.sponsoredByOne::before {
395
- content: 'Sponsored by ';
396
- }
397
-
398
- &.recommended::before {
399
- content: 'Recommended';
400
- }
401
-
402
- &.sponsoredByMany::before {
403
- content: 'Sponsored';
404
- }
405
- }
406
-
407
- .carousel-wrapper {
408
- width: 100%;
409
- overflow-x: clip;
410
- position: relative;
411
- }
412
-
413
- .items {
414
- z-index: 1;
415
- display: flex;
416
- flex-direction: row;
417
- flex-grow: 1;
418
- flex-wrap: nowrap;
419
- align-items: stretch;
420
- padding: 0 37px;
421
- box-sizing: border-box;
422
- transition: transform 0.4s ease-out, margin-left 0.3s ease;
423
- width: 100%;
424
-
425
- .surf-product-card {
426
- flex: 1;
427
- display: flex;
428
- padding: 5px;
429
- box-sizing: border-box;
430
- }
431
- }
432
-
433
-
434
- }
435
-
436
- .arrows {
437
-
438
- .arrow {
439
- z-index: 2;
440
- position: absolute;
441
- top: 50%;
442
- transform: translateY(-50%);
443
- width: 40px;
444
- height: 40px;
445
- display: flex;
446
- background-color: rgba(0, 0, 0, 0.5);
447
- margin: 0 1rem;
448
- justify-content: center;
449
- align-items: center;
450
- border-radius: 50%;
451
- cursor: pointer;
452
- box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2),
453
- 0 2px 8px 0 rgba(0, 0, 0, 0.2);
454
-
455
- &:hover {
456
- background-color: rgba(0, 0, 0, 0.6);
457
- }
458
-
459
- &.disabled {
460
- cursor: not-allowed;
461
- filter: grayscale(100%);
462
- opacity: 0.2;
463
- }
464
-
465
- &.left {
466
- left: -10px;
467
-
468
- &:before {
469
- content: "";
470
- background: url('//cdn.surfside.io/icons/left-arrow.svg')
471
- no-repeat center;
472
- width: 40px;
473
- height: 40px;
474
- }
475
- }
476
-
477
- &.right {
478
- right: 0;
479
-
480
- &:before {
481
- content: "";
482
- background: url('//cdn.surfside.io/icons/right-arrow.svg')
483
- no-repeat center;
484
- width: 40px;
485
- height: 40px;
486
- }
487
-
488
- }
489
- }
378
+ const style = `
379
+ .surf-carousel {
380
+ display: flex;
381
+ flex-direction: column;
382
+ position: relative;
383
+ flex-grow: 1;
384
+
385
+ .sponsored-carousel {
386
+ font-family: 'Helvetica', Verdana, Geneva, Tahoma, sans-serif;
387
+ margin: 10px 0;
388
+ font-size: 24px;
389
+
390
+ &::before {
391
+ content: 'For you';
392
+ }
393
+
394
+ &.sponsoredByOne::before {
395
+ content: 'Sponsored by ';
396
+ }
397
+
398
+ &.recommended::before {
399
+ content: 'Recommended';
400
+ }
401
+
402
+ &.sponsoredByMany::before {
403
+ content: 'Sponsored';
404
+ }
405
+ }
406
+
407
+ .carousel-wrapper {
408
+ width: 100%;
409
+ overflow-x: clip;
410
+ position: relative;
411
+ }
412
+
413
+ .items {
414
+ z-index: 1;
415
+ display: flex;
416
+ flex-direction: row;
417
+ flex-grow: 1;
418
+ flex-wrap: nowrap;
419
+ align-items: stretch;
420
+ padding: 0 37px;
421
+ box-sizing: border-box;
422
+ transition: transform 0.4s ease-out, margin-left 0.3s ease;
423
+ width: 100%;
424
+
425
+ .surf-product-card {
426
+ flex: 1;
427
+ display: flex;
428
+ padding: 5px;
429
+ box-sizing: border-box;
430
+ }
431
+ }
432
+
433
+
434
+ }
435
+
436
+ .arrows {
437
+
438
+ .arrow {
439
+ z-index: 2;
440
+ position: absolute;
441
+ top: 50%;
442
+ transform: translateY(-50%);
443
+ width: 40px;
444
+ height: 40px;
445
+ display: flex;
446
+ background-color: rgba(0, 0, 0, 0.5);
447
+ margin: 0 1rem;
448
+ justify-content: center;
449
+ align-items: center;
450
+ border-radius: 50%;
451
+ cursor: pointer;
452
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2),
453
+ 0 2px 8px 0 rgba(0, 0, 0, 0.2);
454
+
455
+ &:hover {
456
+ background-color: rgba(0, 0, 0, 0.6);
457
+ }
458
+
459
+ &.disabled {
460
+ cursor: not-allowed;
461
+ filter: grayscale(100%);
462
+ opacity: 0.2;
463
+ }
464
+
465
+ &.left {
466
+ left: -10px;
467
+
468
+ &:before {
469
+ content: "";
470
+ background: url('//cdn.surfside.io/icons/left-arrow.svg')
471
+ no-repeat center;
472
+ width: 40px;
473
+ height: 40px;
474
+ }
475
+ }
476
+
477
+ &.right {
478
+ right: 0;
479
+
480
+ &:before {
481
+ content: "";
482
+ background: url('//cdn.surfside.io/icons/right-arrow.svg')
483
+ no-repeat center;
484
+ width: 40px;
485
+ height: 40px;
486
+ }
487
+
488
+ }
489
+ }
490
490
  }`;
491
491
  //# sourceMappingURL=Carousel.js.map
@@ -113,26 +113,26 @@ class MissingTrackersError extends Error {
113
113
  }
114
114
  exports.MissingTrackersError = MissingTrackersError;
115
115
  ;
116
- const style = `.surf-product-card {
117
- width: 100%;
118
-
119
- &::after {
120
- content: ' ';
121
- min-height: 1rem;
122
- font-family: Verdana, Helvetica, 'sans-serif';
123
- font-weight: 100;
124
- color: #e0e0e0;
125
- font-size: 12px;
126
- box-sizing: border-box;
127
- width: 100%;
128
- text-align: center;
129
- }
130
-
131
- &.sponsored {
132
-
133
- &::after {
134
- content: 'Sponsored';
135
- }
136
- }
116
+ const style = `.surf-product-card {
117
+ width: 100%;
118
+
119
+ &::after {
120
+ content: ' ';
121
+ min-height: 1rem;
122
+ font-family: Verdana, Helvetica, 'sans-serif';
123
+ font-weight: 100;
124
+ color: #e0e0e0;
125
+ font-size: 12px;
126
+ box-sizing: border-box;
127
+ width: 100%;
128
+ text-align: center;
129
+ }
130
+
131
+ &.sponsored {
132
+
133
+ &::after {
134
+ content: 'Sponsored';
135
+ }
136
+ }
137
137
  }`;
138
138
  //# sourceMappingURL=ProductCard.js.map
@@ -72,7 +72,7 @@ const loadInteractiveElements = (logger, deviceInfo, geo, userAgent, element, li
72
72
  }
73
73
  const trackers = trackersRes.value;
74
74
  videoElement.onplay = () => fireTracker(log, deviceInfo, geo, userAgent, trackers, 'start');
75
- videoElement.onended = () => fireTracker(log, deviceInfo, geo, userAgent, trackers, 'complete');
75
+ videoElement.addEventListener('ended', () => fireTracker(log, deviceInfo, geo, userAgent, trackers, 'complete'));
76
76
  videoElement.ontimeupdate = async () => {
77
77
  const currentTime = Math.floor(videoElement.currentTime);
78
78
  timerValue.innerHTML = String(currentTime);
@@ -185,127 +185,127 @@ const toggleMute = (logger, videoElement, e) => {
185
185
  element.classList.remove('muted');
186
186
  }
187
187
  };
188
- const template = `<div>
189
- <video id="surf-video-container" autoplay muted></video>
190
-
191
- <div class="timer">
192
- <svg
193
- width="36"
194
- height="36"
195
- viewBox="-2 2 36 36"
196
- >
197
- <circle
198
- cx="16"
199
- cy="16"
200
- r="15"
201
- stroke="#7b4af4"
202
- stroke-width="4"
203
- fill="none"
204
- class="timer-circle"
205
- />
206
- </svg>
207
- <div class="timer-value"></div>
208
- </div>
209
-
210
- <div class="watermark"></div>
211
- <div class="mute-button muted"></div>
188
+ const template = `<div>
189
+ <video id="surf-video-container" autoplay muted></video>
190
+
191
+ <div class="timer">
192
+ <svg
193
+ width="36"
194
+ height="36"
195
+ viewBox="-2 2 36 36"
196
+ >
197
+ <circle
198
+ cx="16"
199
+ cy="16"
200
+ r="15"
201
+ stroke="#7b4af4"
202
+ stroke-width="4"
203
+ fill="none"
204
+ class="timer-circle"
205
+ />
206
+ </svg>
207
+ <div class="timer-value"></div>
208
+ </div>
209
+
210
+ <div class="watermark"></div>
211
+ <div class="mute-button muted"></div>
212
212
  </div>`;
213
- const style = `@keyframes grow-arc {
214
- 0% {
215
- stroke-dasharray: 0 94; /* 0% of the circumference */
216
- stroke-dashoffset: 0;
217
- }
218
- 50% {
219
- stroke-dasharray: 47 94; /* 90 degrees of the circle */
220
- stroke-dashoffset: 0;
221
- }
222
- 100% {
223
- stroke-dasharray: 94 94; /* Full circle */
224
- stroke-dashoffset: 0;
225
- }
226
- }
227
-
228
-
229
- .surfside-video {
230
- --icon-muted: url('//cdn.surfside.io/icons/muted.svg');
231
- --icon-unmuted: url('//cdn.surfside.io/icons/unmuted.svg');
232
-
233
- position: relative;
234
- overflow: hidden;
235
-
236
- video {
237
- width: 100%;
238
- height: auto;
239
- }
240
-
241
- .timer {
242
- position: absolute;
243
- left: 5px;
244
- top: 5px;
245
- width: 32px;
246
- height: 32px;
247
-
248
- .timer-value {
249
- position: absolute;
250
- top: 0px;
251
- left: 0;
252
- width: 36px;
253
- height: 36px;
254
-
255
- color: white;
256
-
257
- font-family: Poppins, Arial;
258
- text-align: center;
259
- font-size: 12px;
260
- line-height: 36px;
261
- }
262
-
263
- .timer-circle {
264
- fill: none;
265
- stroke-width: 4;
266
- animation-name: grow-arc;
267
- animation-iteration-count: 1;
268
- animation-timing-function: linear;
269
- animation-fill-mode: forwards;
270
- transform: rotate(-90deg);
271
- transform-origin: 50% 50%;
272
- }
273
-
274
- }
275
-
276
- .mute-button {
277
- position: absolute;
278
- width: 24px;
279
- height: 24px;
280
- right: 5px;
281
- bottom: 5px;
282
- cursor: pointer;
283
- transition: transform 0.2s;
284
- filter: drop-shadow(0 0 2px white) drop-shadow(0 0 4px white);
285
-
286
- &:hover {
287
- transform: scale(1.3);
288
- }
289
-
290
- &:active {
291
- transform: scale(0.8);
292
- }
293
-
294
- &.muted {
295
- background-image: var(--icon-muted);
296
-
297
- &:hover {
298
- background-image: var(--icon-unmuted);
299
- }
300
- }
301
-
302
- &.unmuted {
303
- background-image: var(--icon-unmuted);
304
-
305
- &:hover {
306
- background-image: var(--icon-muted);
307
- }
308
- }
309
- }
213
+ const style = `@keyframes grow-arc {
214
+ 0% {
215
+ stroke-dasharray: 0 94; /* 0% of the circumference */
216
+ stroke-dashoffset: 0;
217
+ }
218
+ 50% {
219
+ stroke-dasharray: 47 94; /* 90 degrees of the circle */
220
+ stroke-dashoffset: 0;
221
+ }
222
+ 100% {
223
+ stroke-dasharray: 94 94; /* Full circle */
224
+ stroke-dashoffset: 0;
225
+ }
226
+ }
227
+
228
+
229
+ .surfside-video {
230
+ --icon-muted: url('//cdn.surfside.io/icons/muted.svg');
231
+ --icon-unmuted: url('//cdn.surfside.io/icons/unmuted.svg');
232
+
233
+ position: relative;
234
+ overflow: hidden;
235
+
236
+ video {
237
+ width: 100%;
238
+ height: auto;
239
+ }
240
+
241
+ .timer {
242
+ position: absolute;
243
+ left: 5px;
244
+ top: 5px;
245
+ width: 32px;
246
+ height: 32px;
247
+
248
+ .timer-value {
249
+ position: absolute;
250
+ top: 0px;
251
+ left: 0;
252
+ width: 36px;
253
+ height: 36px;
254
+
255
+ color: white;
256
+
257
+ font-family: Poppins, Arial;
258
+ text-align: center;
259
+ font-size: 12px;
260
+ line-height: 36px;
261
+ }
262
+
263
+ .timer-circle {
264
+ fill: none;
265
+ stroke-width: 4;
266
+ animation-name: grow-arc;
267
+ animation-iteration-count: 1;
268
+ animation-timing-function: linear;
269
+ animation-fill-mode: forwards;
270
+ transform: rotate(-90deg);
271
+ transform-origin: 50% 50%;
272
+ }
273
+
274
+ }
275
+
276
+ .mute-button {
277
+ position: absolute;
278
+ width: 24px;
279
+ height: 24px;
280
+ right: 5px;
281
+ bottom: 5px;
282
+ cursor: pointer;
283
+ transition: transform 0.2s;
284
+ filter: drop-shadow(0 0 2px white) drop-shadow(0 0 4px white);
285
+
286
+ &:hover {
287
+ transform: scale(1.3);
288
+ }
289
+
290
+ &:active {
291
+ transform: scale(0.8);
292
+ }
293
+
294
+ &.muted {
295
+ background-image: var(--icon-muted);
296
+
297
+ &:hover {
298
+ background-image: var(--icon-unmuted);
299
+ }
300
+ }
301
+
302
+ &.unmuted {
303
+ background-image: var(--icon-unmuted);
304
+
305
+ &:hover {
306
+ background-image: var(--icon-muted);
307
+ }
308
+ }
309
+ }
310
310
  }`;
311
311
  //# sourceMappingURL=Video.js.map