diff options
Diffstat (limited to 'vendor/twbs/bootstrap/js/dist/util/template-factory.js')
-rw-r--r-- | vendor/twbs/bootstrap/js/dist/util/template-factory.js | 70 |
1 files changed, 21 insertions, 49 deletions
diff --git a/vendor/twbs/bootstrap/js/dist/util/template-factory.js b/vendor/twbs/bootstrap/js/dist/util/template-factory.js index faac3352b..3cc8ca2cf 100644 --- a/vendor/twbs/bootstrap/js/dist/util/template-factory.js +++ b/vendor/twbs/bootstrap/js/dist/util/template-factory.js @@ -1,32 +1,28 @@ /*! - * Bootstrap template-factory.js v5.2.2 (https://getbootstrap.com/) + * Bootstrap template-factory.js v5.3.0-alpha1 (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('./sanitizer'), require('./index'), require('../dom/selector-engine'), require('./config')) : + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./sanitizer.js'), require('./index.js'), require('../dom/selector-engine.js'), require('./config.js')) : typeof define === 'function' && define.amd ? define(['./sanitizer', './index', '../dom/selector-engine', './config'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.TemplateFactory = factory(global.Sanitizer, global.Index, global.SelectorEngine, global.Config)); -})(this, (function (sanitizer, index, SelectorEngine, Config) { 'use strict'; - - const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; - - const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); - const Config__default = /*#__PURE__*/_interopDefaultLegacy(Config); +})(this, (function (sanitizer_js, index_js, SelectorEngine, Config) { 'use strict'; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/template-factory.js + * Bootstrap (v5.3.0-alpha1): util/template-factory.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ + /** * Constants */ const NAME = 'TemplateFactory'; const Default = { - allowList: sanitizer.DefaultAllowlist, + allowList: sanitizer_js.DefaultAllowlist, content: {}, // { selector : text , selector2 : text2 , } extraClass: '', @@ -48,73 +44,62 @@ entry: '(string|element|function|null)', selector: '(string|element)' }; + /** * Class definition */ - class TemplateFactory extends Config__default.default { + class TemplateFactory extends Config { constructor(config) { super(); this._config = this._getConfig(config); - } // Getters - + } + // Getters static get Default() { return Default; } - static get DefaultType() { return DefaultType; } - static get NAME() { return NAME; - } // Public - + } + // Public getContent() { return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); } - hasContent() { return this.getContent().length > 0; } - changeContent(content) { this._checkContent(content); - - this._config.content = { ...this._config.content, + this._config.content = { + ...this._config.content, ...content }; return this; } - toHtml() { const templateWrapper = document.createElement('div'); templateWrapper.innerHTML = this._maybeSanitize(this._config.template); - for (const [selector, text] of Object.entries(this._config.content)) { this._setContent(templateWrapper, text, selector); } - const template = templateWrapper.children[0]; - const extraClass = this._resolvePossibleFunction(this._config.extraClass); - if (extraClass) { template.classList.add(...extraClass.split(' ')); } - return template; - } // Private - + } + // Private _typeCheckConfig(config) { super._typeCheckConfig(config); - this._checkContent(config.content); } - _checkContent(arg) { for (const [selector, content] of Object.entries(arg)) { super._typeCheckConfig({ @@ -123,53 +108,40 @@ }, DefaultContentType); } } - _setContent(template, content, selector) { - const templateElement = SelectorEngine__default.default.findOne(selector, template); - + const templateElement = SelectorEngine.findOne(selector, template); if (!templateElement) { return; } - content = this._resolvePossibleFunction(content); - if (!content) { templateElement.remove(); return; } - - if (index.isElement(content)) { - this._putElementInTemplate(index.getElement(content), templateElement); - + if (index_js.isElement(content)) { + this._putElementInTemplate(index_js.getElement(content), templateElement); return; } - if (this._config.html) { templateElement.innerHTML = this._maybeSanitize(content); return; } - templateElement.textContent = content; } - _maybeSanitize(arg) { - return this._config.sanitize ? sanitizer.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; + return this._config.sanitize ? sanitizer_js.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; } - _resolvePossibleFunction(arg) { - return typeof arg === 'function' ? arg(this) : arg; + return index_js.execute(arg, [this]); } - _putElementInTemplate(element, templateElement) { if (this._config.html) { templateElement.innerHTML = ''; templateElement.append(element); return; } - templateElement.textContent = element.textContent; } - } return TemplateFactory; |