feat(main): Add base theme: This is the falcon theme out of the box.
This commit is contained in:
51
_dev/js/theme/utils/DynamicImportHandler.js
Normal file
51
_dev/js/theme/utils/DynamicImportHandler.js
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user