define automatic open variable
It is an override.
This commit is contained in:
parent
fd9211dd1f
commit
99e37af3ed
1 changed files with 24 additions and 11 deletions
|
@ -86,10 +86,10 @@ class Tabs {
|
|||
(Object.keys(this[NAME][`elements`][`tabs`]).length)
|
||||
? (Object.keys(this[NAME][`elements`][`tabs`]).forEach((ID) => {
|
||||
this[NAME][`elements`][`tabs`][ID][`header`].addEventListener(`click`, () => {
|
||||
((this[`status`][`read/write`]) >= 0)
|
||||
? (this[NAME][`elements`][`tabs`][ID][`container`].classList.contains(`active`) || this[`options`][NAME][`required`])
|
||||
? this.open(NAME, ID)
|
||||
: this.close(NAME)
|
||||
(!this[`status`][`opening`])
|
||||
? (this[NAME][`elements`][`tabs`][ID][`container`].classList.contains(`active`))
|
||||
? this.close(NAME, {"automatic": true})
|
||||
: this.open(NAME, ID, {"automatic": true})
|
||||
: false;
|
||||
});
|
||||
}))
|
||||
|
@ -117,18 +117,23 @@ class Tabs {
|
|||
*/
|
||||
async open (name, ID, options) {
|
||||
if ((name && ID) && Object.keys(this).includes(name)) {
|
||||
// Add the lock.
|
||||
this[`status`][`opening`] = true;
|
||||
|
||||
// Update the variable.
|
||||
this[name][`selected`] = ID;
|
||||
|
||||
if (!(((typeof options).includes(`obj`) && options) ? options[`don't save`] : false)) {
|
||||
this[`status`][`read/write`] = -1;
|
||||
this[`status`][`last`] = await global.write([`view`, `tabs`, name, `selected`], ID, 1, {"silent": true});
|
||||
this[`status`][`read/write`] = 0;
|
||||
};
|
||||
|
||||
// Select the tab.
|
||||
((nested.dictionary.get(this, [name, `elements`, `tabs`, ID, `header`]))
|
||||
((nested.dictionary.get(this, [name, `elements`, `tabs`, ID, `header`]) && ((nested.dictionary.get(options, [`automatic`]) != null) ? !options[`automatic`] : true))
|
||||
? ((this[name][`elements`][`tabs`][ID][`container`].classList.contains(`active`)) ? false : this[name][`elements`][`tabs`][ID][`header`].click())
|
||||
: false);
|
||||
|
||||
// Remove the lock.
|
||||
this[`status`][`opening`] = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,19 +145,27 @@ class Tabs {
|
|||
*/
|
||||
async close (name, options) {
|
||||
let ID = this[name][`selected`];
|
||||
if ((name && ID) && Object.keys(this).includes(name)) {
|
||||
|
||||
if (((name && ID) && Object.keys(this).includes(name)) ? !(nested.dictionary.get(this[`options`], [name, `required`])) : false) {
|
||||
// Add the lock.
|
||||
this[`status`][`opening`] = true;
|
||||
|
||||
// Update the variable.
|
||||
this[name][`selected`] = null;
|
||||
if (!(((typeof options).includes(`obj`) && options) ? options[`don't save`] : false)) {
|
||||
this[`status`][`read/write`] = -1;
|
||||
this[`status`][`last`] = await global.write([`view`, `tabs`, name, `selected`], null, 1, {"silent": true});
|
||||
this[`status`][`read/write`] = 0;
|
||||
};
|
||||
|
||||
// Select the tab.
|
||||
((nested.dictionary.get(this, [name, `elements`, `tabs`, ID, `header`]))
|
||||
((nested.dictionary.get(this, [name, `elements`, `tabs`, ID, `header`]) && ((nested.dictionary.get(options, [`automatic`]) != null) ? !options[`automatic`] : true))
|
||||
? ((this[name][`elements`][`tabs`][ID][`container`].classList.contains(`active`)) ? this[name][`elements`][`tabs`][ID][`header`].click() : false)
|
||||
: false);
|
||||
|
||||
// Remove the lock.
|
||||
this[`status`][`opening`] = false;
|
||||
} else if (((name && ID) && Object.keys(this).includes(name)) ? (nested.dictionary.get(this[`options`], [name, `required`]) == true) : false) {
|
||||
// Intercept a closing tab to re-open it.
|
||||
this.open(name, ID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue