@searchspring/snap-toolbox 0.38.1 → 0.39.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/DomTargeter/DomTargeter.d.ts +1 -0
- package/dist/cjs/DomTargeter/DomTargeter.d.ts.map +1 -1
- package/dist/cjs/DomTargeter/DomTargeter.js +36 -29
- package/dist/esm/DomTargeter/DomTargeter.d.ts +1 -0
- package/dist/esm/DomTargeter/DomTargeter.d.ts.map +1 -1
- package/dist/esm/DomTargeter/DomTargeter.js +35 -28
- package/package.json +2 -2
|
@@ -7,6 +7,7 @@ export declare type Target = {
|
|
|
7
7
|
emptyTarget?: boolean;
|
|
8
8
|
hideTarget?: boolean;
|
|
9
9
|
autoRetarget?: boolean;
|
|
10
|
+
clickRetarget?: boolean | string;
|
|
10
11
|
[any: string]: unknown;
|
|
11
12
|
};
|
|
12
13
|
export declare type OnTarget = (target: Target, elem: Element, originalElem?: Element) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;QAC9D,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;KACnE,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,oBAAY,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAGvF,qBAAa,WAAW;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,aAAa,CAAsB;gBAE/B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;QAC9D,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;KACnE,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,oBAAY,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAGvF,qBAAa,WAAW;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,aAAa,CAAsB;gBAE/B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IA0D3E,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,IAAI;IAkDhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
|
|
@@ -34,32 +34,41 @@ var DomTargeter = /** @class */ (function () {
|
|
|
34
34
|
this.onTarget = onTarget;
|
|
35
35
|
this.retarget();
|
|
36
36
|
this.targets.forEach(function (target) {
|
|
37
|
+
var timeoutTime = 100;
|
|
38
|
+
var checker = function () {
|
|
39
|
+
// lets not just keep trying forever - this waits roughly 12 seconds before giving up.
|
|
40
|
+
if (timeoutTime < 2000) {
|
|
41
|
+
// increase the time till next check
|
|
42
|
+
timeoutTime = timeoutTime + 200;
|
|
43
|
+
_this.retarget();
|
|
44
|
+
setTimeout(checker, timeoutTime);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// timed out, lets unhide the target
|
|
48
|
+
target.hideTarget && _this.unhideTarget(target.selector);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
// add click event to restart retargeting check
|
|
52
|
+
if (target.clickRetarget) {
|
|
53
|
+
var clickElems = [];
|
|
54
|
+
if (typeof target.clickRetarget == 'boolean') {
|
|
55
|
+
clickElems.push(_this.document);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
clickElems = Array.from(_this.document.querySelectorAll(target.clickRetarget));
|
|
59
|
+
}
|
|
60
|
+
clickElems.map(function (elem) {
|
|
61
|
+
elem.addEventListener('click', function () {
|
|
62
|
+
timeoutTime = 100;
|
|
63
|
+
checker();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
37
67
|
if (target.autoRetarget) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
//lets not just keep trying forever - this waits roughly 12 seconds before giving up.
|
|
41
|
-
if (timeoutTime_1 < 2000) {
|
|
42
|
-
//increase the time till next check
|
|
43
|
-
timeoutTime_1 = timeoutTime_1 + 200;
|
|
44
|
-
var elems = _this.domQuery(target.selector);
|
|
45
|
-
//did we find any targets?
|
|
46
|
-
if (elems && elems.length) {
|
|
47
|
-
_this.retarget();
|
|
48
|
-
target.hideTarget && _this.unhideTarget(target.selector);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
//try again soon
|
|
52
|
-
setTimeout(checker_1, timeoutTime_1);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
//timed out, lets unhide the target
|
|
57
|
-
target.hideTarget && _this.unhideTarget(target.selector);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
checker_1();
|
|
68
|
+
// do initial retargeting check
|
|
69
|
+
checker();
|
|
61
70
|
}
|
|
62
|
-
else if (/complete|loaded/.test(_this.document.readyState)) {
|
|
71
|
+
else if (/complete|interactive|loaded/.test(_this.document.readyState)) {
|
|
63
72
|
// DOMContent has loaded - unhide targets
|
|
64
73
|
target.hideTarget && _this.unhideTarget(target.selector);
|
|
65
74
|
}
|
|
@@ -80,16 +89,14 @@ var DomTargeter = /** @class */ (function () {
|
|
|
80
89
|
var targetElemPairs = this.targets.flatMap(function (target) {
|
|
81
90
|
var _a;
|
|
82
91
|
// hide targets before found
|
|
83
|
-
|
|
84
|
-
_this.hideTarget(target.selector);
|
|
85
|
-
}
|
|
92
|
+
target.hideTarget && _this.hideTarget(target.selector);
|
|
86
93
|
var elems = _this.domQuery(target.selector).filter(function (elem) {
|
|
87
94
|
if (!globallyTargetedElems.find(function (e) { return e == elem; }) && !_this.targetedElems.find(function (e) { return e == elem; })) {
|
|
88
95
|
return true;
|
|
89
96
|
}
|
|
90
97
|
else {
|
|
91
98
|
// unhide retarget attempts
|
|
92
|
-
_this.unhideTarget(target.selector);
|
|
99
|
+
target.hideTarget && _this.unhideTarget(target.selector);
|
|
93
100
|
}
|
|
94
101
|
});
|
|
95
102
|
if (!((_a = target.inject) === null || _a === void 0 ? void 0 : _a.element)) {
|
|
@@ -120,7 +127,7 @@ var DomTargeter = /** @class */ (function () {
|
|
|
120
127
|
_this.onTarget(target, elem);
|
|
121
128
|
}
|
|
122
129
|
// unhide target
|
|
123
|
-
_this.unhideTarget(target.selector);
|
|
130
|
+
target.hideTarget && _this.unhideTarget(target.selector);
|
|
124
131
|
});
|
|
125
132
|
if (errors.length) {
|
|
126
133
|
throw new Error(errors.reduce(function (acc, err) { return (acc += err + '\n'); }, '\n'));
|
|
@@ -7,6 +7,7 @@ export declare type Target = {
|
|
|
7
7
|
emptyTarget?: boolean;
|
|
8
8
|
hideTarget?: boolean;
|
|
9
9
|
autoRetarget?: boolean;
|
|
10
|
+
clickRetarget?: boolean | string;
|
|
10
11
|
[any: string]: unknown;
|
|
11
12
|
};
|
|
12
13
|
export declare type OnTarget = (target: Target, elem: Element, originalElem?: Element) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;QAC9D,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;KACnE,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,oBAAY,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAGvF,qBAAa,WAAW;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,aAAa,CAAsB;gBAE/B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;QAC9D,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;KACnE,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,oBAAY,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAGvF,qBAAa,WAAW;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,aAAa,CAAsB;gBAE/B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IA0D3E,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,IAAI;IAkDhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
|
|
@@ -30,32 +30,41 @@ export class DomTargeter {
|
|
|
30
30
|
this.onTarget = onTarget;
|
|
31
31
|
this.retarget();
|
|
32
32
|
this.targets.forEach((target) => {
|
|
33
|
+
let timeoutTime = 100;
|
|
34
|
+
const checker = () => {
|
|
35
|
+
// lets not just keep trying forever - this waits roughly 12 seconds before giving up.
|
|
36
|
+
if (timeoutTime < 2000) {
|
|
37
|
+
// increase the time till next check
|
|
38
|
+
timeoutTime = timeoutTime + 200;
|
|
39
|
+
this.retarget();
|
|
40
|
+
setTimeout(checker, timeoutTime);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// timed out, lets unhide the target
|
|
44
|
+
target.hideTarget && this.unhideTarget(target.selector);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
// add click event to restart retargeting check
|
|
48
|
+
if (target.clickRetarget) {
|
|
49
|
+
let clickElems = [];
|
|
50
|
+
if (typeof target.clickRetarget == 'boolean') {
|
|
51
|
+
clickElems.push(this.document);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
clickElems = Array.from(this.document.querySelectorAll(target.clickRetarget));
|
|
55
|
+
}
|
|
56
|
+
clickElems.map((elem) => {
|
|
57
|
+
elem.addEventListener('click', () => {
|
|
58
|
+
timeoutTime = 100;
|
|
59
|
+
checker();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
33
63
|
if (target.autoRetarget) {
|
|
34
|
-
|
|
35
|
-
const checker = () => {
|
|
36
|
-
//lets not just keep trying forever - this waits roughly 12 seconds before giving up.
|
|
37
|
-
if (timeoutTime < 2000) {
|
|
38
|
-
//increase the time till next check
|
|
39
|
-
timeoutTime = timeoutTime + 200;
|
|
40
|
-
const elems = this.domQuery(target.selector);
|
|
41
|
-
//did we find any targets?
|
|
42
|
-
if (elems && elems.length) {
|
|
43
|
-
this.retarget();
|
|
44
|
-
target.hideTarget && this.unhideTarget(target.selector);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
//try again soon
|
|
48
|
-
setTimeout(checker, timeoutTime);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
//timed out, lets unhide the target
|
|
53
|
-
target.hideTarget && this.unhideTarget(target.selector);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
64
|
+
// do initial retargeting check
|
|
56
65
|
checker();
|
|
57
66
|
}
|
|
58
|
-
else if (/complete|loaded/.test(this.document.readyState)) {
|
|
67
|
+
else if (/complete|interactive|loaded/.test(this.document.readyState)) {
|
|
59
68
|
// DOMContent has loaded - unhide targets
|
|
60
69
|
target.hideTarget && this.unhideTarget(target.selector);
|
|
61
70
|
}
|
|
@@ -74,16 +83,14 @@ export class DomTargeter {
|
|
|
74
83
|
retarget() {
|
|
75
84
|
const targetElemPairs = this.targets.flatMap((target) => {
|
|
76
85
|
// hide targets before found
|
|
77
|
-
|
|
78
|
-
this.hideTarget(target.selector);
|
|
79
|
-
}
|
|
86
|
+
target.hideTarget && this.hideTarget(target.selector);
|
|
80
87
|
const elems = this.domQuery(target.selector).filter((elem) => {
|
|
81
88
|
if (!globallyTargetedElems.find((e) => e == elem) && !this.targetedElems.find((e) => e == elem)) {
|
|
82
89
|
return true;
|
|
83
90
|
}
|
|
84
91
|
else {
|
|
85
92
|
// unhide retarget attempts
|
|
86
|
-
this.unhideTarget(target.selector);
|
|
93
|
+
target.hideTarget && this.unhideTarget(target.selector);
|
|
87
94
|
}
|
|
88
95
|
});
|
|
89
96
|
if (!target.inject?.element) {
|
|
@@ -112,7 +119,7 @@ export class DomTargeter {
|
|
|
112
119
|
this.onTarget(target, elem);
|
|
113
120
|
}
|
|
114
121
|
// unhide target
|
|
115
|
-
this.unhideTarget(target.selector);
|
|
122
|
+
target.hideTarget && this.unhideTarget(target.selector);
|
|
116
123
|
});
|
|
117
124
|
if (errors.length) {
|
|
118
125
|
throw new Error(errors.reduce((acc, err) => (acc += err + '\n'), '\n'));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-toolbox",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0",
|
|
4
4
|
"description": "Snap Toolbox",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -23,5 +23,5 @@
|
|
|
23
23
|
"files": [
|
|
24
24
|
"dist/**/*"
|
|
25
25
|
],
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "008ac73f9ffd82bbcf9036ae8cc9cad33dc7fb5a"
|
|
27
27
|
}
|