From 584600bda36ac13ea325617783216d6c6a331c08 Mon Sep 17 00:00:00 2001 From: GeoSot Date: Thu, 21 Apr 2022 21:41:43 +0300 Subject: Manipulator: Add JSON parse support (#35077) Support parsing JSON from each component's main element using the `data-bs-config` attribute. The `bs-config` attribute will be reserved and omitted during `getDataAttributes` parsing. With this commit, every component, will create its config object, using: * defaults * data-bs-config * the rest of data attributes * configuration object given during instance initialization Co-authored-by: XhmikosR Co-authored-by: Mark Otto Co-authored-by: Mark Otto --- js/src/util/config.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'js/src/util') diff --git a/js/src/util/config.js b/js/src/util/config.js index 19d02955dd..f6c194276b 100644 --- a/js/src/util/config.js +++ b/js/src/util/config.js @@ -38,8 +38,11 @@ class Config { } _mergeConfigObj(config, element) { + const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse + return { ...this.constructor.Default, + ...(typeof jsonConfig === 'object' ? jsonConfig : {}), ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), ...(typeof config === 'object' ? config : {}) } -- cgit v1.2.3