diff --git a/package-lock.json b/package-lock.json index ac65d1f..b587034 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "@prismatic-io/marketplace", "version": "3.4.5", "license": "MIT", + "dependencies": { + "lodash.merge": "4.6.2" + }, "devDependencies": { "@types/node": "18.11.17", "prettier": "2.8.1", @@ -860,6 +863,11 @@ "node": ">=8" } }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -2201,6 +2209,11 @@ "p-locate": "^4.1.0" } }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", diff --git a/package.json b/package.json index f724d40..ddc357d 100644 --- a/package.json +++ b/package.json @@ -37,5 +37,8 @@ "typescript": "4.9.4", "webpack": "5.75.0", "webpack-cli": "5.0.1" + }, + "dependencies": { + "lodash.merge": "4.6.2" } } diff --git a/src/index.ts b/src/index.ts index 18446f6..58f1f08 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ +import merge from "lodash.merge"; import init from "./init"; import authenticate from "./authenticate"; import { modalSelector, iframeContainerSelector } from "./selectors"; @@ -30,7 +31,9 @@ interface MarketplaceConfiguration { } interface InitializingConfiguration { + /** The background color of the loading screen */ background: string; + /** The font color of the loading screen text and loading icon */ color: string; } @@ -153,7 +156,11 @@ const setIframe = ( if (options) { Object.entries(options).forEach(([key, value]) => { if (key in state) { - state[key] = value; + if (state[key] instanceof Object) { + state[key] = merge(state[key], value); + } else { + state[key] = value; + } } }); }