@design.estate/dees-domtools 5.0.0 → 5.0.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.
- package/dist_bundle/bundle.js +129 -129
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/domtools.classes.domtools.d.ts +0 -3
- package/dist_ts/domtools.classes.domtools.js +16 -10
- package/package.json +5 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/domtools.classes.domtools.ts +15 -12
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-domtools',
|
|
6
|
-
version: '5.0.
|
|
6
|
+
version: '5.0.1',
|
|
7
7
|
description: 'A package providing tools to simplify complex CSS structures and web development tasks, featuring TypeScript support and integration with various web technologies.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHFLQUFxSztDQUNuTCxDQUFBIn0=
|
|
@@ -4,9 +4,6 @@ import { Scroller } from './domtools.classes.scroller.js';
|
|
|
4
4
|
import { WebSetup } from '@push.rocks/websetup';
|
|
5
5
|
import { ThemeManager } from './domtools.classes.thememanager.js';
|
|
6
6
|
import { Keyboard } from './domtools.classes.keyboard.js';
|
|
7
|
-
declare global {
|
|
8
|
-
var deesDomTools: DomTools | undefined;
|
|
9
|
-
}
|
|
10
7
|
export interface IDomToolsState {
|
|
11
8
|
virtualViewport: TViewport;
|
|
12
9
|
jwt: string;
|
|
@@ -4,6 +4,12 @@ import { Scroller } from './domtools.classes.scroller.js';
|
|
|
4
4
|
import { WebSetup } from '@push.rocks/websetup';
|
|
5
5
|
import { ThemeManager } from './domtools.classes.thememanager.js';
|
|
6
6
|
import { Keyboard } from './domtools.classes.keyboard.js';
|
|
7
|
+
/**
|
|
8
|
+
* The page's one DomTools lives on `globalThis` as `deesDomTools`, so every copy of this package on a page shares
|
|
9
|
+
* it. It is typed here, for this module only: a global declaration names each copy's own `DomTools`, and two copies
|
|
10
|
+
* in one program — two versions, or one installed twice for different peers — would clash on it (TS2403).
|
|
11
|
+
*/
|
|
12
|
+
const globalScope = globalThis;
|
|
7
13
|
export class DomTools {
|
|
8
14
|
// ======
|
|
9
15
|
// STATIC
|
|
@@ -18,18 +24,18 @@ export class DomTools {
|
|
|
18
24
|
await domToolsInstance.initializationPromise;
|
|
19
25
|
return domToolsInstance;
|
|
20
26
|
}
|
|
21
|
-
if (
|
|
22
|
-
await
|
|
23
|
-
return
|
|
27
|
+
if (globalScope.deesDomTools && !globalScope.deesDomTools.disposed) {
|
|
28
|
+
await globalScope.deesDomTools.initializationPromise;
|
|
29
|
+
return globalScope.deesDomTools;
|
|
24
30
|
}
|
|
25
31
|
if (!DomTools.initializationPromise) {
|
|
26
32
|
const domToolsInstance = new DomTools(optionsArg);
|
|
27
|
-
|
|
33
|
+
globalScope.deesDomTools = domToolsInstance;
|
|
28
34
|
DomTools.initializationPromise = domToolsInstance.initializationPromise
|
|
29
35
|
.then(() => domToolsInstance)
|
|
30
36
|
.catch((error) => {
|
|
31
|
-
if (
|
|
32
|
-
|
|
37
|
+
if (globalScope.deesDomTools === domToolsInstance) {
|
|
38
|
+
globalScope.deesDomTools = undefined;
|
|
33
39
|
}
|
|
34
40
|
DomTools.initializationPromise = null;
|
|
35
41
|
throw error;
|
|
@@ -41,7 +47,7 @@ export class DomTools {
|
|
|
41
47
|
* if you can, use the static asysnc .setupDomTools() function instead since it is safer to use.
|
|
42
48
|
*/
|
|
43
49
|
static getGlobalDomToolsSync() {
|
|
44
|
-
const globalDomTools =
|
|
50
|
+
const globalDomTools = globalScope.deesDomTools;
|
|
45
51
|
if (!globalDomTools || globalDomTools.disposed) {
|
|
46
52
|
throw new Error('You tried to access domtools synchronously too early');
|
|
47
53
|
}
|
|
@@ -216,10 +222,10 @@ export class DomTools {
|
|
|
216
222
|
managedDomNode.remove();
|
|
217
223
|
}
|
|
218
224
|
this.managedDomNodes.length = 0;
|
|
219
|
-
if (
|
|
220
|
-
|
|
225
|
+
if (globalScope.deesDomTools === this) {
|
|
226
|
+
globalScope.deesDomTools = undefined;
|
|
221
227
|
DomTools.initializationPromise = null;
|
|
222
228
|
}
|
|
223
229
|
}
|
|
224
230
|
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLmNsYXNzZXMuZG9tdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxNQUFNLFdBQVcsR0FBRyxVQUE2RCxDQUFDO0FBV2xGLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNELE1BQU0sQ0FBQyxxQkFBcUIsR0FBNkIsSUFBSSxDQUFDO0lBRXRFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBMEMsRUFBRTtRQUM1RSxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixNQUFNLGdCQUFnQixHQUFHLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7WUFDN0MsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuRSxNQUFNLFdBQVcsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7WUFDckQsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLENB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-domtools",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A package providing tools to simplify complex CSS structures and web development tasks, featuring TypeScript support and integration with various web technologies.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@git.zone/tsbuild": "^5.1.2",
|
|
13
|
-
"@git.zone/tsbundle": "^3.1.
|
|
14
|
-
"@git.zone/tstest": "^7.
|
|
15
|
-
"@types/node": "^26.6.3"
|
|
13
|
+
"@git.zone/tsbundle": "^3.1.4",
|
|
14
|
+
"@git.zone/tstest": "^7.2.0",
|
|
15
|
+
"@types/node": "^26.6.3",
|
|
16
|
+
"typescript": "^6.0.3"
|
|
16
17
|
},
|
|
17
18
|
"dependencies": {
|
|
18
19
|
"@api.global/typedrequest": "^9.0.2",
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-domtools',
|
|
6
|
-
version: '5.0.
|
|
6
|
+
version: '5.0.1',
|
|
7
7
|
description: 'A package providing tools to simplify complex CSS structures and web development tasks, featuring TypeScript support and integration with various web technologies.'
|
|
8
8
|
}
|
|
@@ -5,9 +5,12 @@ import { WebSetup } from '@push.rocks/websetup';
|
|
|
5
5
|
import { ThemeManager } from './domtools.classes.thememanager.js';
|
|
6
6
|
import { Keyboard } from './domtools.classes.keyboard.js';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
/**
|
|
9
|
+
* The page's one DomTools lives on `globalThis` as `deesDomTools`, so every copy of this package on a page shares
|
|
10
|
+
* it. It is typed here, for this module only: a global declaration names each copy's own `DomTools`, and two copies
|
|
11
|
+
* in one program — two versions, or one installed twice for different peers — would clash on it (TS2403).
|
|
12
|
+
*/
|
|
13
|
+
const globalScope = globalThis as typeof globalThis & { deesDomTools?: DomTools };
|
|
11
14
|
|
|
12
15
|
export interface IDomToolsState {
|
|
13
16
|
virtualViewport: TViewport;
|
|
@@ -34,19 +37,19 @@ export class DomTools {
|
|
|
34
37
|
return domToolsInstance;
|
|
35
38
|
}
|
|
36
39
|
|
|
37
|
-
if (
|
|
38
|
-
await
|
|
39
|
-
return
|
|
40
|
+
if (globalScope.deesDomTools && !globalScope.deesDomTools.disposed) {
|
|
41
|
+
await globalScope.deesDomTools.initializationPromise;
|
|
42
|
+
return globalScope.deesDomTools;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
if (!DomTools.initializationPromise) {
|
|
43
46
|
const domToolsInstance = new DomTools(optionsArg);
|
|
44
|
-
|
|
47
|
+
globalScope.deesDomTools = domToolsInstance;
|
|
45
48
|
DomTools.initializationPromise = domToolsInstance.initializationPromise
|
|
46
49
|
.then(() => domToolsInstance)
|
|
47
50
|
.catch((error) => {
|
|
48
|
-
if (
|
|
49
|
-
|
|
51
|
+
if (globalScope.deesDomTools === domToolsInstance) {
|
|
52
|
+
globalScope.deesDomTools = undefined;
|
|
50
53
|
}
|
|
51
54
|
DomTools.initializationPromise = null;
|
|
52
55
|
throw error;
|
|
@@ -60,7 +63,7 @@ export class DomTools {
|
|
|
60
63
|
* if you can, use the static asysnc .setupDomTools() function instead since it is safer to use.
|
|
61
64
|
*/
|
|
62
65
|
public static getGlobalDomToolsSync(): DomTools {
|
|
63
|
-
const globalDomTools =
|
|
66
|
+
const globalDomTools = globalScope.deesDomTools;
|
|
64
67
|
if (!globalDomTools || globalDomTools.disposed) {
|
|
65
68
|
throw new Error('You tried to access domtools synchronously too early');
|
|
66
69
|
}
|
|
@@ -265,8 +268,8 @@ export class DomTools {
|
|
|
265
268
|
}
|
|
266
269
|
this.managedDomNodes.length = 0;
|
|
267
270
|
|
|
268
|
-
if (
|
|
269
|
-
|
|
271
|
+
if (globalScope.deesDomTools === this) {
|
|
272
|
+
globalScope.deesDomTools = undefined;
|
|
270
273
|
DomTools.initializationPromise = null;
|
|
271
274
|
}
|
|
272
275
|
}
|