add seperate function to instantiate the extras
Can be done automatically under design()
This commit is contained in:
parent
b3b6522f52
commit
f59e1d304c
2 changed files with 43 additions and 11 deletions
9
scripts/GUI/builder/windowman.extras.js
Normal file
9
scripts/GUI/builder/windowman.extras.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
|
||||
import {Search} from "./windowman.search.js";
|
||||
import {Tabs} from "./windowman.tabs.js";
|
||||
|
||||
class UI {}
|
||||
UI.search = Search;
|
||||
UI.tabs = Tabs;
|
||||
|
||||
export {UI as default};
|
|
@ -6,7 +6,7 @@ import Tabs from "/scripts/GUI/tabs.js";
|
|||
import {global, observe} from "/scripts/secretariat.js";
|
||||
import {URLs} from "/scripts/utils/URLs.js";
|
||||
import wait from "/scripts/utils/wait.js";
|
||||
import UI from "/scripts/GUI/builder/windowman.search.js";
|
||||
import UI from "/scripts/GUI/builder/windowman.extras.js";
|
||||
|
||||
export default class windowman {
|
||||
elements = {};
|
||||
|
@ -308,10 +308,43 @@ export default class windowman {
|
|||
actions();
|
||||
}
|
||||
|
||||
/*
|
||||
Instantiate the extras.
|
||||
*/
|
||||
const extras = () => {
|
||||
// Add the search interface.
|
||||
(Object.keys(UI)).forEach((FEATURE) => {
|
||||
this.extra(FEATURE, (this[`options`] && (typeof this[`options`]).includes(`obj`)) ? this[`options`][FEATURE] : null);
|
||||
})
|
||||
}
|
||||
|
||||
// Add the elements.
|
||||
this[`elements`] = appearance();
|
||||
events();
|
||||
|
||||
// Add the extras.
|
||||
(((this[`options`] && (typeof this[`options`]).includes(`obj`)) ? Object.hasOwn(this[`options`], `automatic`) : false) ? this[`options`][`automatic`] : true)
|
||||
? extras()
|
||||
: false;
|
||||
}
|
||||
|
||||
/*
|
||||
Instantiate the extras.
|
||||
|
||||
@param {string} name The name of the extra UI feature
|
||||
@param {object} options The options for the extra UI feature
|
||||
*/
|
||||
extra(name, options) {
|
||||
(Object.keys(UI)).includes(name)
|
||||
?
|
||||
// De-instantiate the feature if a cancel option is passed.
|
||||
(((options && (typeof options).includes(`obj`)) ? options[`cancel`] : false)
|
||||
? delete this[name]
|
||||
: (this[name] = (this[name]) ? this[name] : new UI[name](options))
|
||||
)
|
||||
: false;
|
||||
};
|
||||
|
||||
/* Run this function if you would like to synchronize with data. */
|
||||
async sync() {
|
||||
// Prepare flags.
|
||||
|
@ -487,16 +520,6 @@ export default class windowman {
|
|||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Instantiate the extras.
|
||||
*/
|
||||
const extras = () => {
|
||||
// Add the search interface.
|
||||
(Object.keys(UI)).forEach((FEATURE) => {
|
||||
this[FEATURE] = new UI[FEATURE]();
|
||||
})
|
||||
}
|
||||
|
||||
fill();
|
||||
write();
|
||||
extras();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue