mirror of
https://github.com/tenrok/bootstrap.git
synced 2026-06-20 20:00:36 +03:00
Extract Component config functionality to a separate class (#33872)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
This commit is contained in:
@@ -6,8 +6,9 @@
|
||||
*/
|
||||
|
||||
import { DefaultAllowlist, sanitizeHtml } from './sanitizer'
|
||||
import { getElement, isElement, typeCheckConfig } from '../util/index'
|
||||
import { getElement, isElement } from '../util/index'
|
||||
import SelectorEngine from '../dom/selector-engine'
|
||||
import Config from './config'
|
||||
|
||||
/**
|
||||
* Constants
|
||||
@@ -44,20 +45,25 @@ const DefaultContentType = {
|
||||
* Class definition
|
||||
*/
|
||||
|
||||
class TemplateFactory {
|
||||
class TemplateFactory extends Config {
|
||||
constructor(config) {
|
||||
super()
|
||||
this._config = this._getConfig(config)
|
||||
}
|
||||
|
||||
// Getters
|
||||
static get NAME() {
|
||||
return NAME
|
||||
}
|
||||
|
||||
static get Default() {
|
||||
return Default
|
||||
}
|
||||
|
||||
static get DefaultType() {
|
||||
return DefaultType
|
||||
}
|
||||
|
||||
static get NAME() {
|
||||
return NAME
|
||||
}
|
||||
|
||||
// Public
|
||||
getContent() {
|
||||
return Object.values(this._config.content)
|
||||
@@ -94,21 +100,14 @@ class TemplateFactory {
|
||||
}
|
||||
|
||||
// Private
|
||||
_getConfig(config) {
|
||||
config = {
|
||||
...Default,
|
||||
...(typeof config === 'object' ? config : {})
|
||||
}
|
||||
|
||||
typeCheckConfig(NAME, config, DefaultType)
|
||||
_typeCheckConfig(config) {
|
||||
super._typeCheckConfig(config)
|
||||
this._checkContent(config.content)
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
_checkContent(arg) {
|
||||
for (const [selector, content] of Object.entries(arg)) {
|
||||
typeCheckConfig(NAME, { selector, entry: content }, DefaultContentType)
|
||||
super._typeCheckConfig({ selector, entry: content }, DefaultContentType)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user