@searchspring/snap-toolbox 0.76.0 → 0.77.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 +2 -1
- package/dist/cjs/DomTargeter/DomTargeter.d.ts.map +1 -1
- package/dist/cjs/DomTargeter/DomTargeter.js +19 -2
- package/dist/esm/DomTargeter/DomTargeter.d.ts +2 -1
- package/dist/esm/DomTargeter/DomTargeter.d.ts.map +1 -1
- package/dist/esm/DomTargeter/DomTargeter.js +10 -2
- package/package.json +2 -2
|
@@ -11,7 +11,7 @@ export type Target = {
|
|
|
11
11
|
clickRetarget?: boolean | string;
|
|
12
12
|
[any: string]: unknown;
|
|
13
13
|
};
|
|
14
|
-
export type OnTarget = (target: Target, elem: Element, originalElem?: Element) => void | Promise<void>;
|
|
14
|
+
export type OnTarget = (target: Target, elem: Element, originalElem?: Element, targeter?: DomTargeter) => void | Promise<void>;
|
|
15
15
|
export declare class DomTargeter {
|
|
16
16
|
private targets;
|
|
17
17
|
private onTarget;
|
|
@@ -20,6 +20,7 @@ export declare class DomTargeter {
|
|
|
20
20
|
private targetedElems;
|
|
21
21
|
constructor(targets: Array<Target>, onTarget: OnTarget, document?: Document);
|
|
22
22
|
getTargets(): Array<Target>;
|
|
23
|
+
getTargetedElems(): ReadonlyArray<Element>;
|
|
23
24
|
retarget(): void;
|
|
24
25
|
unhideTarget: (selector: string) => void;
|
|
25
26
|
hideTarget: (selector: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,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,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,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,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAG/H,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,gBAAgB,IAAI,aAAa,CAAC,OAAO,CAAC;IAK1C,QAAQ,IAAI,IAAI;IAuEhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.DomTargeter = void 0;
|
|
4
13
|
var globallyTargetedElems = [];
|
|
@@ -84,9 +93,16 @@ var DomTargeter = /** @class */ (function () {
|
|
|
84
93
|
DomTargeter.prototype.getTargets = function () {
|
|
85
94
|
return this.targets;
|
|
86
95
|
};
|
|
96
|
+
DomTargeter.prototype.getTargetedElems = function () {
|
|
97
|
+
this.targetedElems = this.targetedElems.filter(function (elem) { return elem.isConnected; });
|
|
98
|
+
return __spreadArray([], this.targetedElems, true);
|
|
99
|
+
};
|
|
87
100
|
DomTargeter.prototype.retarget = function () {
|
|
88
101
|
var _this = this;
|
|
89
102
|
var _a, _b;
|
|
103
|
+
// prune references to elements no longer in the DOM
|
|
104
|
+
globallyTargetedElems = globallyTargetedElems.filter(function (elem) { return elem.isConnected; });
|
|
105
|
+
this.targetedElems = this.targetedElems.filter(function (elem) { return elem.isConnected; });
|
|
90
106
|
var targetElemPairs = this.targets.flatMap(function (target) {
|
|
91
107
|
var _a;
|
|
92
108
|
// hide targets before found
|
|
@@ -112,7 +128,7 @@ var DomTargeter = /** @class */ (function () {
|
|
|
112
128
|
var injectedElem = this.inject(elem, target);
|
|
113
129
|
this.targetedElems = this.targetedElems.concat(elem);
|
|
114
130
|
// handle both sync and async onTarget functions
|
|
115
|
-
var result = this.onTarget(target, injectedElem, elem);
|
|
131
|
+
var result = this.onTarget(target, injectedElem, elem, this);
|
|
116
132
|
if (result && typeof result.then === 'function') {
|
|
117
133
|
// async function - handle promise
|
|
118
134
|
result.catch(function (error) {
|
|
@@ -121,13 +137,14 @@ var DomTargeter = /** @class */ (function () {
|
|
|
121
137
|
}
|
|
122
138
|
}
|
|
123
139
|
else {
|
|
140
|
+
this.targetedElems = this.targetedElems.concat(elem);
|
|
124
141
|
// empty target selector by default
|
|
125
142
|
target.emptyTarget = (_a = target.emptyTarget) !== null && _a !== void 0 ? _a : true;
|
|
126
143
|
if (target.emptyTarget)
|
|
127
144
|
while (elem.firstChild && elem.removeChild(elem.firstChild))
|
|
128
145
|
;
|
|
129
146
|
// handle both sync and async onTarget functions
|
|
130
|
-
var result = this.onTarget(target, elem);
|
|
147
|
+
var result = this.onTarget(target, elem, undefined, this);
|
|
131
148
|
if (result && typeof result.then === 'function') {
|
|
132
149
|
// async function - handle promise
|
|
133
150
|
result.catch(function (error) {
|
|
@@ -11,7 +11,7 @@ export type Target = {
|
|
|
11
11
|
clickRetarget?: boolean | string;
|
|
12
12
|
[any: string]: unknown;
|
|
13
13
|
};
|
|
14
|
-
export type OnTarget = (target: Target, elem: Element, originalElem?: Element) => void | Promise<void>;
|
|
14
|
+
export type OnTarget = (target: Target, elem: Element, originalElem?: Element, targeter?: DomTargeter) => void | Promise<void>;
|
|
15
15
|
export declare class DomTargeter {
|
|
16
16
|
private targets;
|
|
17
17
|
private onTarget;
|
|
@@ -20,6 +20,7 @@ export declare class DomTargeter {
|
|
|
20
20
|
private targetedElems;
|
|
21
21
|
constructor(targets: Array<Target>, onTarget: OnTarget, document?: Document);
|
|
22
22
|
getTargets(): Array<Target>;
|
|
23
|
+
getTargetedElems(): ReadonlyArray<Element>;
|
|
23
24
|
retarget(): void;
|
|
24
25
|
unhideTarget: (selector: string) => void;
|
|
25
26
|
hideTarget: (selector: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,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,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DomTargeter.d.ts","sourceRoot":"","sources":["../../../src/DomTargeter/DomTargeter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,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,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAG/H,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,gBAAgB,IAAI,aAAa,CAAC,OAAO,CAAC;IAK1C,QAAQ,IAAI,IAAI;IAuEhB,YAAY,aAAc,MAAM,KAAG,IAAI,CASrC;IAEF,UAAU,aAAc,MAAM,KAAG,IAAI,CASnC;IAEF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;CA2Cd"}
|
|
@@ -80,7 +80,14 @@ export class DomTargeter {
|
|
|
80
80
|
getTargets() {
|
|
81
81
|
return this.targets;
|
|
82
82
|
}
|
|
83
|
+
getTargetedElems() {
|
|
84
|
+
this.targetedElems = this.targetedElems.filter((elem) => elem.isConnected);
|
|
85
|
+
return [...this.targetedElems];
|
|
86
|
+
}
|
|
83
87
|
retarget() {
|
|
88
|
+
// prune references to elements no longer in the DOM
|
|
89
|
+
globallyTargetedElems = globallyTargetedElems.filter((elem) => elem.isConnected);
|
|
90
|
+
this.targetedElems = this.targetedElems.filter((elem) => elem.isConnected);
|
|
84
91
|
const targetElemPairs = this.targets.flatMap((target) => {
|
|
85
92
|
// hide targets before found
|
|
86
93
|
target.hideTarget && this.hideTarget(target.selector);
|
|
@@ -104,7 +111,7 @@ export class DomTargeter {
|
|
|
104
111
|
const injectedElem = this.inject(elem, target);
|
|
105
112
|
this.targetedElems = this.targetedElems.concat(elem);
|
|
106
113
|
// handle both sync and async onTarget functions
|
|
107
|
-
const result = this.onTarget(target, injectedElem, elem);
|
|
114
|
+
const result = this.onTarget(target, injectedElem, elem, this);
|
|
108
115
|
if (result && typeof result.then === 'function') {
|
|
109
116
|
// async function - handle promise
|
|
110
117
|
result.catch((error) => {
|
|
@@ -113,13 +120,14 @@ export class DomTargeter {
|
|
|
113
120
|
}
|
|
114
121
|
}
|
|
115
122
|
else {
|
|
123
|
+
this.targetedElems = this.targetedElems.concat(elem);
|
|
116
124
|
// empty target selector by default
|
|
117
125
|
target.emptyTarget = target.emptyTarget ?? true;
|
|
118
126
|
if (target.emptyTarget)
|
|
119
127
|
while (elem.firstChild && elem.removeChild(elem.firstChild))
|
|
120
128
|
;
|
|
121
129
|
// handle both sync and async onTarget functions
|
|
122
|
-
const result = this.onTarget(target, elem);
|
|
130
|
+
const result = this.onTarget(target, elem, undefined, this);
|
|
123
131
|
if (result && typeof result.then === 'function') {
|
|
124
132
|
// async function - handle promise
|
|
125
133
|
result.catch((error) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-toolbox",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.77.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": "d7a25a5ade47e4561f49af70f6f929b7331cd15e"
|
|
27
27
|
}
|