@searchspring/snap-toolbox 0.38.1 → 0.39.1

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.
@@ -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;IA6C3E,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,IAAI;IAoDhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
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
- var timeoutTime_1 = 100;
39
- var checker_1 = function () {
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
- if (target.hideTarget) {
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;IA6C3E,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,IAAI;IAoDhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
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
- let timeoutTime = 100;
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
- if (target.hideTarget) {
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.38.1",
3
+ "version": "0.39.1",
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": "c7f130f994a310eb4fefc9806ea102194981bed0"
26
+ "gitHead": "2b035aaa4df6b1eb640a0d97e55b50842ccf0832"
27
27
  }