@tylertech/forge-core 2.0.0 → 2.1.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/esm/index.js +1 -0
- package/esm/resize/index.js +2 -0
- package/esm/resize/resize-observer.js +63 -0
- package/esm/resize/resize-types.js +1 -0
- package/package.json +1 -1
- package/typings/index.d.ts +1 -0
- package/typings/resize/index.d.ts +2 -0
- package/typings/resize/resize-observer.d.ts +34 -0
- package/typings/resize/resize-types.d.ts +4 -0
package/esm/index.js
CHANGED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provides a set of methods for observing and responding to resizing of elements.
|
|
3
|
+
*/
|
|
4
|
+
export class ForgeResizeObserver {
|
|
5
|
+
/**
|
|
6
|
+
* Initiates the observing of a specified `Element`. Calling with an already observed `Element`
|
|
7
|
+
* overwrites the exisiting observation. It is expected that the consumer will eventually
|
|
8
|
+
* {@link unobserve} the `Element` to avoid memory leaks.
|
|
9
|
+
*
|
|
10
|
+
* @param target An `Element` reference.
|
|
11
|
+
* @param callback A function that accepts a `ResizeObserverEntry` for the `Element`.
|
|
12
|
+
* @param options An options object allowing you to set options for the observation.
|
|
13
|
+
*/
|
|
14
|
+
static observe(target, callback, options) {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
if (ForgeResizeObserver._targets.has(target)) {
|
|
17
|
+
(_a = ForgeResizeObserver._observer) === null || _a === void 0 ? void 0 : _a.unobserve(target);
|
|
18
|
+
}
|
|
19
|
+
ForgeResizeObserver._targets.set(target, callback);
|
|
20
|
+
ForgeResizeObserver._countTargets();
|
|
21
|
+
(_b = ForgeResizeObserver._observer) === null || _b === void 0 ? void 0 : _b.observe(target, options);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Ends the observing of a specified `Element`.
|
|
25
|
+
*
|
|
26
|
+
* @param target An `Element` reference.
|
|
27
|
+
*/
|
|
28
|
+
static unobserve(target) {
|
|
29
|
+
var _a;
|
|
30
|
+
ForgeResizeObserver._targets.delete(target);
|
|
31
|
+
(_a = ForgeResizeObserver._observer) === null || _a === void 0 ? void 0 : _a.unobserve(target);
|
|
32
|
+
ForgeResizeObserver._countTargets();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates or destroys the `ResizeObserver` based on whether targets exist.
|
|
36
|
+
*/
|
|
37
|
+
static _countTargets() {
|
|
38
|
+
if (ForgeResizeObserver._observer) {
|
|
39
|
+
// If there are no targets destroy the observer
|
|
40
|
+
if (ForgeResizeObserver._targets.size < 1) {
|
|
41
|
+
ForgeResizeObserver._observer = undefined;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// If there are targets create the observer
|
|
46
|
+
if (ForgeResizeObserver._targets.size) {
|
|
47
|
+
ForgeResizeObserver._observer = new ResizeObserver(ForgeResizeObserver._handleResize);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
ForgeResizeObserver._targets = new Map();
|
|
53
|
+
/**
|
|
54
|
+
* Runs the callback function of targets when they are resized.
|
|
55
|
+
*
|
|
56
|
+
* @param entries An array of `ResizeObserverEntry`s.
|
|
57
|
+
*/
|
|
58
|
+
ForgeResizeObserver._handleResize = entries => {
|
|
59
|
+
entries.forEach(entry => {
|
|
60
|
+
var _a;
|
|
61
|
+
(_a = ForgeResizeObserver._targets.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
package/typings/index.d.ts
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ForgeResizeObserverCallback, IResizeObserverOptions } from './resize-types';
|
|
2
|
+
/**
|
|
3
|
+
* Provides a set of methods for observing and responding to resizing of elements.
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class ForgeResizeObserver {
|
|
6
|
+
private static _observer?;
|
|
7
|
+
private static _targets;
|
|
8
|
+
/**
|
|
9
|
+
* Initiates the observing of a specified `Element`. Calling with an already observed `Element`
|
|
10
|
+
* overwrites the exisiting observation. It is expected that the consumer will eventually
|
|
11
|
+
* {@link unobserve} the `Element` to avoid memory leaks.
|
|
12
|
+
*
|
|
13
|
+
* @param target An `Element` reference.
|
|
14
|
+
* @param callback A function that accepts a `ResizeObserverEntry` for the `Element`.
|
|
15
|
+
* @param options An options object allowing you to set options for the observation.
|
|
16
|
+
*/
|
|
17
|
+
static observe(target: Element, callback: ForgeResizeObserverCallback, options?: IResizeObserverOptions): void;
|
|
18
|
+
/**
|
|
19
|
+
* Ends the observing of a specified `Element`.
|
|
20
|
+
*
|
|
21
|
+
* @param target An `Element` reference.
|
|
22
|
+
*/
|
|
23
|
+
static unobserve(target: Element): void;
|
|
24
|
+
/**
|
|
25
|
+
* Creates or destroys the `ResizeObserver` based on whether targets exist.
|
|
26
|
+
*/
|
|
27
|
+
private static _countTargets;
|
|
28
|
+
/**
|
|
29
|
+
* Runs the callback function of targets when they are resized.
|
|
30
|
+
*
|
|
31
|
+
* @param entries An array of `ResizeObserverEntry`s.
|
|
32
|
+
*/
|
|
33
|
+
private static _handleResize;
|
|
34
|
+
}
|