feat(main): Add base theme: This is the falcon theme out of the box.

This is falcon v3.1.2
This commit is contained in:
2025-11-18 14:04:01 +01:00
parent 3a7f2db331
commit f4f4bcad1d
604 changed files with 49818 additions and 0 deletions

View File

@ -0,0 +1,51 @@
import DynamicImportJqueryPlugin from '@js/theme/utils/DynamicImportJqueryPlugin';
import DynamicImportDOMEvents from '@js/theme/utils/DynamicImportDOMEvents';
export default class DynamicImportHandler {
constructor({
files,
jqueryPluginCover = null,
enableObserve = false,
observeOptions = false,
DOMEvents = false,
DOMEventsSelector = false,
DOMEventsPreventDefault = false,
onLoadFiles = () => {},
} = {}) {
this.files = files;
this.jqueryPluginCover = jqueryPluginCover;
this.enableObserve = enableObserve;
this.observeOptions = observeOptions;
this.onLoadFiles = onLoadFiles;
this.jqueryDynamicImport = false;
this.dynamicDOMEvents = false;
this.filesLoaded = false;
if (jqueryPluginCover) {
this.jqueryDynamicImport = new DynamicImportJqueryPlugin({
jqueryPluginCover,
importer: this,
});
}
if (DOMEvents && DOMEventsSelector) {
this.dynamicDOMEvents = new DynamicImportDOMEvents({
events: DOMEvents,
eventSelector: DOMEventsSelector,
preventDefault: DOMEventsPreventDefault,
importer: this,
});
}
}
loadFiles(callback = () => {}) {
if (!this.filesLoaded) {
Promise.all(this.files()).then((res) => {
callback();
this.onLoadFiles(res);
});
this.filesLoaded = true;
}
}
}