diff options
Diffstat (limited to 'vendor/twbs/bootstrap/js/dist/util/config.js')
-rw-r--r-- | vendor/twbs/bootstrap/js/dist/util/config.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/vendor/twbs/bootstrap/js/dist/util/config.js b/vendor/twbs/bootstrap/js/dist/util/config.js new file mode 100644 index 000000000..12caa82d4 --- /dev/null +++ b/vendor/twbs/bootstrap/js/dist/util/config.js @@ -0,0 +1,80 @@ +/*! + * Bootstrap config.js v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./index'), require('../dom/manipulator')) : + typeof define === 'function' && define.amd ? define(['./index', '../dom/manipulator'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Config = factory(global.Index, global.Manipulator)); +})(this, (function (index, Manipulator) { 'use strict'; + + const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; + + const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/config.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Class definition + */ + + class Config { + // Getters + static get Default() { + return {}; + } + + static get DefaultType() { + return {}; + } + + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + + this._typeCheckConfig(config); + + return config; + } + + _configAfterMerge(config) { + return config; + } + + _mergeConfigObj(config, element) { + const jsonConfig = index.isElement(element) ? Manipulator__default.default.getDataAttribute(element, 'config') : {}; // try to parse + + return { ...this.constructor.Default, + ...(typeof jsonConfig === 'object' ? jsonConfig : {}), + ...(index.isElement(element) ? Manipulator__default.default.getDataAttributes(element) : {}), + ...(typeof config === 'object' ? config : {}) + }; + } + + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const property of Object.keys(configTypes)) { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = index.isElement(value) ? 'element' : index.toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); + } + } + } + + } + + return Config; + +})); +//# sourceMappingURL=config.js.map |