@searchspring/snap-toolbox 0.27.7 → 0.29.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.
@@ -6,6 +6,7 @@ export declare type Target = {
6
6
  };
7
7
  emptyTarget?: boolean;
8
8
  hideTarget?: boolean;
9
+ autoRetarget?: boolean;
9
10
  [any: string]: unknown;
10
11
  };
11
12
  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,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;gBAEtC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAsB3E,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,IAAI;IAgDhB,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,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;gBAEtC,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;IAgDhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
@@ -32,18 +32,44 @@ var DomTargeter = /** @class */ (function () {
32
32
  this.targets = targets;
33
33
  this.onTarget = onTarget;
34
34
  this.retarget();
35
- if (/complete|loaded/.test(this.document.readyState)) {
36
- // DOMContent has loaded - unhide targets
37
- this.targets.forEach(function (target) { return target.hideTarget && _this.unhideTarget(target.selector); });
38
- }
39
- else {
40
- // attempt retarget on DOMContentLoaded
41
- this.document.addEventListener('DOMContentLoaded', function () {
42
- _this.retarget();
43
- // unhide targets after re-target attempt in DOMContentLoaded
44
- _this.targets.forEach(function (target) { return target.hideTarget && _this.unhideTarget(target.selector); });
45
- });
46
- }
35
+ this.targets.forEach(function (target) {
36
+ if (target.autoRetarget) {
37
+ var timeoutTime_1 = 100;
38
+ var checker_1 = function () {
39
+ //lets not just keep trying forever - this waits roughly 12 seconds before giving up.
40
+ if (timeoutTime_1 < 2000) {
41
+ //increase the time till next check
42
+ timeoutTime_1 = timeoutTime_1 + 200;
43
+ var elems = _this.domQuery(target.selector);
44
+ //did we find any targets?
45
+ if (elems && elems.length) {
46
+ _this.retarget();
47
+ target.hideTarget && _this.unhideTarget(target.selector);
48
+ }
49
+ else {
50
+ //try again soon
51
+ setTimeout(checker_1, timeoutTime_1);
52
+ }
53
+ }
54
+ else {
55
+ //timed out, lets unhide the target
56
+ target.hideTarget && _this.unhideTarget(target.selector);
57
+ }
58
+ };
59
+ checker_1();
60
+ }
61
+ else if (/complete|loaded/.test(_this.document.readyState)) {
62
+ // DOMContent has loaded - unhide targets
63
+ target.hideTarget && _this.unhideTarget(target.selector);
64
+ }
65
+ else {
66
+ // attempt retarget on DOMContentLoaded
67
+ _this.document.addEventListener('DOMContentLoaded', function () {
68
+ _this.retarget();
69
+ target.hideTarget && _this.unhideTarget(target.selector);
70
+ });
71
+ }
72
+ });
47
73
  }
48
74
  DomTargeter.prototype.getTargets = function () {
49
75
  return this.targets;
@@ -6,6 +6,7 @@ export declare type Target = {
6
6
  };
7
7
  emptyTarget?: boolean;
8
8
  hideTarget?: boolean;
9
+ autoRetarget?: boolean;
9
10
  [any: string]: unknown;
10
11
  };
11
12
  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,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;gBAEtC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAsB3E,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,IAAI;IAgDhB,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,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;gBAEtC,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;IAgDhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
@@ -28,18 +28,44 @@ export class DomTargeter {
28
28
  this.targets = targets;
29
29
  this.onTarget = onTarget;
30
30
  this.retarget();
31
- if (/complete|loaded/.test(this.document.readyState)) {
32
- // DOMContent has loaded - unhide targets
33
- this.targets.forEach((target) => target.hideTarget && this.unhideTarget(target.selector));
34
- }
35
- else {
36
- // attempt retarget on DOMContentLoaded
37
- this.document.addEventListener('DOMContentLoaded', () => {
38
- this.retarget();
39
- // unhide targets after re-target attempt in DOMContentLoaded
40
- this.targets.forEach((target) => target.hideTarget && this.unhideTarget(target.selector));
41
- });
42
- }
31
+ this.targets.forEach((target) => {
32
+ if (target.autoRetarget) {
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
+ const elems = this.domQuery(target.selector);
40
+ //did we find any targets?
41
+ if (elems && elems.length) {
42
+ this.retarget();
43
+ target.hideTarget && this.unhideTarget(target.selector);
44
+ }
45
+ else {
46
+ //try again soon
47
+ setTimeout(checker, timeoutTime);
48
+ }
49
+ }
50
+ else {
51
+ //timed out, lets unhide the target
52
+ target.hideTarget && this.unhideTarget(target.selector);
53
+ }
54
+ };
55
+ checker();
56
+ }
57
+ else if (/complete|loaded/.test(this.document.readyState)) {
58
+ // DOMContent has loaded - unhide targets
59
+ target.hideTarget && this.unhideTarget(target.selector);
60
+ }
61
+ else {
62
+ // attempt retarget on DOMContentLoaded
63
+ this.document.addEventListener('DOMContentLoaded', () => {
64
+ this.retarget();
65
+ target.hideTarget && this.unhideTarget(target.selector);
66
+ });
67
+ }
68
+ });
43
69
  }
44
70
  getTargets() {
45
71
  return this.targets;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-toolbox",
3
- "version": "0.27.7",
3
+ "version": "0.29.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": "e926b49d646627752cb9a63a71709b3ee0ba892a"
26
+ "gitHead": "8519941d9efa15462c21be62a51fa43000177584"
27
27
  }