@searchspring/snap-tracker 0.24.0 → 0.26.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/dist/cjs/Tracker.d.ts.map +1 -1
- package/dist/cjs/Tracker.js +31 -4
- package/dist/esm/Tracker.d.ts.map +1 -1
- package/dist/esm/Tracker.js +31 -4
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAe,MAAM,+BAA+B,CAAC;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAOb,aAAa,EAEb,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAe,MAAM,+BAA+B,CAAC;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAOb,aAAa,EAEb,MAAM,SAAS,CAAC;AAmBjB,qBAAa,OAAO;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,aAAa;IAyIpD,QAAQ,IAAI,IAAI;IAMvB,KAAK,EAAE,YAAY,CAkQjB;IAEF,SAAS,QAAO,MAAM,CAiBpB;IAEF,YAAY,QAAO,MAAM,CAoBvB;IAEF,YAAY,QAAO,MAAM,CAOvB;IAEF,aAAa,QAAO,IAAI,CAuCtB;IAEF,OAAO;;uBAEI,MAAM,EAAE;yBAOJ,MAAM,EAAE,KAAG,IAAI;yBAYf,MAAM,EAAE,KAAG,IAAI;4BAaZ,MAAM,EAAE,KAAG,IAAI;;;;uBAqBtB,MAAM,EAAE;;MAQjB;IAEF,UAAU,kBAAmB,WAAW,EAAE,KAAG,IAAI,CAmB/C;CACF"}
|
package/dist/cjs/Tracker.js
CHANGED
|
@@ -43,6 +43,7 @@ var LOCALSTORAGE_BEACON_POOL_NAME = 'ssBeaconPool';
|
|
|
43
43
|
var CART_PRODUCTS = 'ssCartProducts';
|
|
44
44
|
var VIEWED_PRODUCTS = 'ssViewedProducts';
|
|
45
45
|
var MAX_VIEWED_COUNT = 15;
|
|
46
|
+
var MAX_PARENT_LEVELS = 3;
|
|
46
47
|
var defaultConfig = {
|
|
47
48
|
id: 'track',
|
|
48
49
|
};
|
|
@@ -493,10 +494,6 @@ var Tracker = /** @class */ (function () {
|
|
|
493
494
|
}));
|
|
494
495
|
});
|
|
495
496
|
document.addEventListener('click', function (event) {
|
|
496
|
-
var attributes = {};
|
|
497
|
-
Object.values(event.target.attributes).forEach(function (attr) {
|
|
498
|
-
attributes[attr.nodeName] = event.target.getAttribute(attr.nodeName);
|
|
499
|
-
});
|
|
500
497
|
var updateRecsControllers = function () {
|
|
501
498
|
if (window.searchspring.controller) {
|
|
502
499
|
Object.keys(window.searchspring.controller).forEach(function (name) {
|
|
@@ -508,6 +505,32 @@ var Tracker = /** @class */ (function () {
|
|
|
508
505
|
});
|
|
509
506
|
}
|
|
510
507
|
};
|
|
508
|
+
var getClickAttributes = function (event) {
|
|
509
|
+
var attributeList = [
|
|
510
|
+
"ss-".concat(_this.config.id, "-cart-add"),
|
|
511
|
+
"ss-".concat(_this.config.id, "-cart-remove"),
|
|
512
|
+
"ss-".concat(_this.config.id, "-cart-clear"),
|
|
513
|
+
"ss-".concat(_this.config.id, "-cart-view"),
|
|
514
|
+
"ss-".concat(_this.config.id, "-intellisuggest"),
|
|
515
|
+
"ss-".concat(_this.config.id, "-intellisuggest-signature"),
|
|
516
|
+
"href",
|
|
517
|
+
];
|
|
518
|
+
var attributes = {};
|
|
519
|
+
var levels = 0;
|
|
520
|
+
var elem = event && event.target;
|
|
521
|
+
while (Object.keys(attributes).length == 0 && elem && levels <= MAX_PARENT_LEVELS) {
|
|
522
|
+
Object.values(elem.attributes).forEach(function (attr) {
|
|
523
|
+
var attrName = attr.nodeName;
|
|
524
|
+
if (attributeList.indexOf(attrName) != -1) {
|
|
525
|
+
attributes[attrName] = elem.getAttribute(attrName);
|
|
526
|
+
}
|
|
527
|
+
});
|
|
528
|
+
elem = elem.parentElement;
|
|
529
|
+
levels++;
|
|
530
|
+
}
|
|
531
|
+
return attributes;
|
|
532
|
+
};
|
|
533
|
+
var attributes = getClickAttributes(event);
|
|
511
534
|
if (attributes["ss-".concat(_this.config.id, "-cart-add")]) {
|
|
512
535
|
// add skus to cart
|
|
513
536
|
var skus = attributes["ss-".concat(_this.config.id, "-cart-add")].split(',');
|
|
@@ -525,6 +548,10 @@ var Tracker = /** @class */ (function () {
|
|
|
525
548
|
_this.cookies.cart.clear();
|
|
526
549
|
updateRecsControllers();
|
|
527
550
|
}
|
|
551
|
+
else if ("ss-".concat(_this.config.id, "-cart-view") in attributes) {
|
|
552
|
+
// update recs
|
|
553
|
+
updateRecsControllers();
|
|
554
|
+
}
|
|
528
555
|
else if (attributes["ss-".concat(_this.config.id, "-intellisuggest")] && attributes["ss-".concat(_this.config.id, "-intellisuggest-signature")]) {
|
|
529
556
|
// product click
|
|
530
557
|
var intellisuggestData = attributes["ss-".concat(_this.config.id, "-intellisuggest")];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAe,MAAM,+BAA+B,CAAC;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAOb,aAAa,EAEb,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAe,MAAM,+BAA+B,CAAC;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAOb,aAAa,EAEb,MAAM,SAAS,CAAC;AAmBjB,qBAAa,OAAO;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,aAAa;IAyIpD,QAAQ,IAAI,IAAI;IAMvB,KAAK,EAAE,YAAY,CAkQjB;IAEF,SAAS,QAAO,MAAM,CAiBpB;IAEF,YAAY,QAAO,MAAM,CAoBvB;IAEF,YAAY,QAAO,MAAM,CAOvB;IAEF,aAAa,QAAO,IAAI,CAuCtB;IAEF,OAAO;;uBAEI,MAAM,EAAE;yBAOJ,MAAM,EAAE,KAAG,IAAI;yBAYf,MAAM,EAAE,KAAG,IAAI;4BAaZ,MAAM,EAAE,KAAG,IAAI;;;;uBAqBtB,MAAM,EAAE;;MAQjB;IAEF,UAAU,kBAAmB,WAAW,EAAE,KAAG,IAAI,CAmB/C;CACF"}
|
package/dist/esm/Tracker.js
CHANGED
|
@@ -17,6 +17,7 @@ const LOCALSTORAGE_BEACON_POOL_NAME = 'ssBeaconPool';
|
|
|
17
17
|
const CART_PRODUCTS = 'ssCartProducts';
|
|
18
18
|
const VIEWED_PRODUCTS = 'ssViewedProducts';
|
|
19
19
|
const MAX_VIEWED_COUNT = 15;
|
|
20
|
+
const MAX_PARENT_LEVELS = 3;
|
|
20
21
|
const defaultConfig = {
|
|
21
22
|
id: 'track',
|
|
22
23
|
};
|
|
@@ -467,10 +468,6 @@ export class Tracker {
|
|
|
467
468
|
}));
|
|
468
469
|
});
|
|
469
470
|
document.addEventListener('click', (event) => {
|
|
470
|
-
const attributes = {};
|
|
471
|
-
Object.values(event.target.attributes).forEach((attr) => {
|
|
472
|
-
attributes[attr.nodeName] = event.target.getAttribute(attr.nodeName);
|
|
473
|
-
});
|
|
474
471
|
const updateRecsControllers = () => {
|
|
475
472
|
if (window.searchspring.controller) {
|
|
476
473
|
Object.keys(window.searchspring.controller).forEach((name) => {
|
|
@@ -481,6 +478,32 @@ export class Tracker {
|
|
|
481
478
|
});
|
|
482
479
|
}
|
|
483
480
|
};
|
|
481
|
+
const getClickAttributes = (event) => {
|
|
482
|
+
const attributeList = [
|
|
483
|
+
`ss-${this.config.id}-cart-add`,
|
|
484
|
+
`ss-${this.config.id}-cart-remove`,
|
|
485
|
+
`ss-${this.config.id}-cart-clear`,
|
|
486
|
+
`ss-${this.config.id}-cart-view`,
|
|
487
|
+
`ss-${this.config.id}-intellisuggest`,
|
|
488
|
+
`ss-${this.config.id}-intellisuggest-signature`,
|
|
489
|
+
`href`,
|
|
490
|
+
];
|
|
491
|
+
const attributes = {};
|
|
492
|
+
let levels = 0;
|
|
493
|
+
let elem = event && event.target;
|
|
494
|
+
while (Object.keys(attributes).length == 0 && elem && levels <= MAX_PARENT_LEVELS) {
|
|
495
|
+
Object.values(elem.attributes).forEach((attr) => {
|
|
496
|
+
var attrName = attr.nodeName;
|
|
497
|
+
if (attributeList.indexOf(attrName) != -1) {
|
|
498
|
+
attributes[attrName] = elem.getAttribute(attrName);
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
elem = elem.parentElement;
|
|
502
|
+
levels++;
|
|
503
|
+
}
|
|
504
|
+
return attributes;
|
|
505
|
+
};
|
|
506
|
+
const attributes = getClickAttributes(event);
|
|
484
507
|
if (attributes[`ss-${this.config.id}-cart-add`]) {
|
|
485
508
|
// add skus to cart
|
|
486
509
|
const skus = attributes[`ss-${this.config.id}-cart-add`].split(',');
|
|
@@ -498,6 +521,10 @@ export class Tracker {
|
|
|
498
521
|
this.cookies.cart.clear();
|
|
499
522
|
updateRecsControllers();
|
|
500
523
|
}
|
|
524
|
+
else if (`ss-${this.config.id}-cart-view` in attributes) {
|
|
525
|
+
// update recs
|
|
526
|
+
updateRecsControllers();
|
|
527
|
+
}
|
|
501
528
|
else if (attributes[`ss-${this.config.id}-intellisuggest`] && attributes[`ss-${this.config.id}-intellisuggest-signature`]) {
|
|
502
529
|
// product click
|
|
503
530
|
const intellisuggestData = attributes[`ss-${this.config.id}-intellisuggest`];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-tracker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Snap Tracker",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-store-mobx": "^0.
|
|
24
|
-
"@searchspring/snap-toolbox": "^0.
|
|
23
|
+
"@searchspring/snap-store-mobx": "^0.26.0",
|
|
24
|
+
"@searchspring/snap-toolbox": "^0.26.0",
|
|
25
25
|
"deepmerge": "^4.2.2",
|
|
26
26
|
"uuid": "^8.3.2"
|
|
27
27
|
},
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"files": [
|
|
30
30
|
"dist/**/*"
|
|
31
31
|
],
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "e2a217f1492486b497e6fe4be8102d3fb06c573c"
|
|
33
33
|
}
|