@design.estate/dees-domtools 2.3.3 → 2.3.4
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 +52 -24
- package/dist_bundle/bundle.js.map +2 -2
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/domtools.classes.domtools.d.ts +2 -0
- package/dist_ts/domtools.classes.domtools.js +60 -24
- package/package.json +1 -1
- package/readme.md +426 -51
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/domtools.classes.domtools.ts +59 -24
package/dist_bundle/bundle.js
CHANGED
|
@@ -42860,40 +42860,59 @@ var DomTools2 = class _DomTools {
|
|
|
42860
42860
|
this.deesComms = new dist_ts_exports16.DeesComms();
|
|
42861
42861
|
this.scroller = new Scroller(this);
|
|
42862
42862
|
this.themeManager = new ThemeManager(this);
|
|
42863
|
-
this.keyboard =
|
|
42863
|
+
this.keyboard = null;
|
|
42864
|
+
// Initialized after DOM ready to avoid accessing document.body before it exists
|
|
42864
42865
|
this.domToolsReady = dist_ts_exports.defer();
|
|
42865
42866
|
this.domReady = dist_ts_exports.defer();
|
|
42866
42867
|
this.globalStylesReady = dist_ts_exports.defer();
|
|
42867
42868
|
this.runOnceTrackerStringMap = new lik.Stringmap();
|
|
42868
42869
|
this.runOnceResultMap = new lik.FastMap();
|
|
42870
|
+
this.runOnceErrorMap = new lik.FastMap();
|
|
42871
|
+
}
|
|
42872
|
+
static {
|
|
42873
|
+
// ======
|
|
42874
|
+
// STATIC
|
|
42875
|
+
// ======
|
|
42876
|
+
this.initializationPromise = null;
|
|
42869
42877
|
}
|
|
42870
|
-
// ======
|
|
42871
|
-
// STATIC
|
|
42872
|
-
// ======
|
|
42873
42878
|
/**
|
|
42874
42879
|
* setups domtools
|
|
42875
42880
|
*/
|
|
42876
42881
|
static async setupDomTools(optionsArg = {}) {
|
|
42877
|
-
|
|
42878
|
-
|
|
42879
|
-
|
|
42880
|
-
|
|
42881
|
-
|
|
42882
|
-
|
|
42883
|
-
|
|
42884
|
-
|
|
42885
|
-
domToolsInstance.
|
|
42882
|
+
if (!optionsArg.ignoreGlobal && _DomTools.initializationPromise) {
|
|
42883
|
+
return await _DomTools.initializationPromise;
|
|
42884
|
+
}
|
|
42885
|
+
if (!optionsArg.ignoreGlobal) {
|
|
42886
|
+
_DomTools.initializationPromise = (async () => {
|
|
42887
|
+
let domToolsInstance;
|
|
42888
|
+
if (!globalThis.deesDomTools) {
|
|
42889
|
+
globalThis.deesDomTools = new _DomTools(optionsArg);
|
|
42890
|
+
domToolsInstance = globalThis.deesDomTools;
|
|
42891
|
+
const readyStateChangedFunc = () => {
|
|
42892
|
+
if (document.readyState === "interactive" || document.readyState === "complete") {
|
|
42893
|
+
domToolsInstance.elements.headElement = document.querySelector("head");
|
|
42894
|
+
domToolsInstance.elements.bodyElement = document.querySelector("body");
|
|
42895
|
+
domToolsInstance.keyboard = new Keyboard(document.body);
|
|
42896
|
+
domToolsInstance.domReady.resolve();
|
|
42897
|
+
}
|
|
42898
|
+
};
|
|
42899
|
+
if (document.readyState === "interactive" || document.readyState === "complete") {
|
|
42900
|
+
readyStateChangedFunc();
|
|
42901
|
+
} else {
|
|
42902
|
+
document.addEventListener("readystatechange", readyStateChangedFunc);
|
|
42903
|
+
}
|
|
42904
|
+
domToolsInstance.domToolsReady.resolve();
|
|
42905
|
+
} else {
|
|
42906
|
+
domToolsInstance = globalThis.deesDomTools;
|
|
42886
42907
|
}
|
|
42887
|
-
|
|
42888
|
-
|
|
42889
|
-
|
|
42890
|
-
|
|
42891
|
-
domToolsInstance = new _DomTools(optionsArg);
|
|
42908
|
+
await domToolsInstance.domToolsReady.promise;
|
|
42909
|
+
return domToolsInstance;
|
|
42910
|
+
})();
|
|
42911
|
+
return await _DomTools.initializationPromise;
|
|
42892
42912
|
} else {
|
|
42893
|
-
domToolsInstance =
|
|
42913
|
+
const domToolsInstance = new _DomTools(optionsArg);
|
|
42914
|
+
return domToolsInstance;
|
|
42894
42915
|
}
|
|
42895
|
-
await domToolsInstance.domToolsReady.promise;
|
|
42896
|
-
return domToolsInstance;
|
|
42897
42916
|
}
|
|
42898
42917
|
/**
|
|
42899
42918
|
* if you can, use the static asysnc .setupDomTools() function instead since it is safer to use.
|
|
@@ -42915,15 +42934,24 @@ var DomTools2 = class _DomTools {
|
|
|
42915
42934
|
if (!this.runOnceTrackerStringMap.checkString(identifierArg)) {
|
|
42916
42935
|
this.runOnceTrackerStringMap.addString(identifierArg);
|
|
42917
42936
|
this.runOnceTrackerStringMap.addString(runningId);
|
|
42918
|
-
|
|
42919
|
-
|
|
42920
|
-
|
|
42937
|
+
try {
|
|
42938
|
+
const result = await funcArg();
|
|
42939
|
+
this.runOnceResultMap.addToMap(identifierArg, result);
|
|
42940
|
+
} catch (error) {
|
|
42941
|
+
this.runOnceErrorMap.addToMap(identifierArg, error);
|
|
42942
|
+
} finally {
|
|
42943
|
+
this.runOnceTrackerStringMap.removeString(runningId);
|
|
42944
|
+
}
|
|
42921
42945
|
}
|
|
42922
42946
|
return await this.runOnceTrackerStringMap.registerUntilTrue(
|
|
42923
42947
|
(stringMap) => {
|
|
42924
42948
|
return !stringMap.includes(runningId);
|
|
42925
42949
|
},
|
|
42926
42950
|
() => {
|
|
42951
|
+
const error = this.runOnceErrorMap.getByKey(identifierArg);
|
|
42952
|
+
if (error) {
|
|
42953
|
+
throw error;
|
|
42954
|
+
}
|
|
42927
42955
|
return this.runOnceResultMap.getByKey(identifierArg);
|
|
42928
42956
|
}
|
|
42929
42957
|
);
|