diff options
author | Mario <mario@mariovavti.com> | 2021-07-29 09:31:47 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2021-07-29 09:31:47 +0000 |
commit | cb57c4ea188b982119f515f043a72f037f943025 (patch) | |
tree | 11144c1107f16047ed37f543fc34859d0c649e08 /vendor/twbs/bootstrap/js/src/base-component.js | |
parent | c6133d2558ce29e44342fa7be8bb65e0059aea02 (diff) | |
parent | b7ffec6fbe77eff3c550a922f50bd79321b293ed (diff) | |
download | volse-hubzilla-cb57c4ea188b982119f515f043a72f037f943025.tar.gz volse-hubzilla-cb57c4ea188b982119f515f043a72f037f943025.tar.bz2 volse-hubzilla-cb57c4ea188b982119f515f043a72f037f943025.zip |
Merge branch 'bs5' into 'dev'
Update to bootstrap 5 and implement next generation app menu (work in progress)
See merge request hubzilla/core!1980
Diffstat (limited to 'vendor/twbs/bootstrap/js/src/base-component.js')
-rw-r--r-- | vendor/twbs/bootstrap/js/src/base-component.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/vendor/twbs/bootstrap/js/src/base-component.js b/vendor/twbs/bootstrap/js/src/base-component.js new file mode 100644 index 000000000..62aa4adf1 --- /dev/null +++ b/vendor/twbs/bootstrap/js/src/base-component.js @@ -0,0 +1,75 @@ +/** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.2): base-component.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + +import Data from './dom/data' +import { + executeAfterTransition, + getElement +} from './util/index' +import EventHandler from './dom/event-handler' + +/** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + +const VERSION = '5.0.2' + +class BaseComponent { + constructor(element) { + element = getElement(element) + + if (!element) { + return + } + + this._element = element + Data.set(this._element, this.constructor.DATA_KEY, this) + } + + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY) + EventHandler.off(this._element, this.constructor.EVENT_KEY) + + Object.getOwnPropertyNames(this).forEach(propertyName => { + this[propertyName] = null + }) + } + + _queueCallback(callback, element, isAnimated = true) { + executeAfterTransition(callback, element, isAnimated) + } + + /** Static */ + + static getInstance(element) { + return Data.get(element, this.DATA_KEY) + } + + static getOrCreateInstance(element, config = {}) { + return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null) + } + + static get VERSION() { + return VERSION + } + + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!') + } + + static get DATA_KEY() { + return `bs.${this.NAME}` + } + + static get EVENT_KEY() { + return `.${this.DATA_KEY}` + } +} + +export default BaseComponent |