Deep clone config (#2496)

This commit is contained in:
Bram Kragten 2019-01-17 20:07:05 +01:00 committed by Paulus Schoutsen
parent faee6a7163
commit 3263d84def
6 changed files with 18 additions and 4 deletions

View File

@ -68,6 +68,7 @@
"@webcomponents/webcomponentsjs": "^2.2.0",
"chart.js": "~2.7.2",
"chartjs-chart-timeline": "^0.2.1",
"deep-clone-simple": "^1.1.1",
"es6-object-assign": "^1.1.0",
"eslint-import-resolver-webpack": "^0.10.1",
"fecha": "^2.3.3",

View File

@ -1,3 +1,5 @@
import deepClone from "deep-clone-simple";
import { fireEvent } from "../../../common/dom/fire_event";
import "../cards/hui-alarm-panel-card";
@ -68,7 +70,7 @@ const _createElement = (
): LovelaceCard | HuiErrorCard => {
const element = document.createElement(tag) as LovelaceCard;
try {
element.setConfig(config);
element.setConfig(deepClone(config));
} catch (err) {
// tslint:disable-next-line
console.error(tag, err);

View File

@ -1,3 +1,5 @@
import deepClone from "deep-clone-simple";
import "../elements/hui-icon-element";
import "../elements/hui-image-element";
import "../elements/hui-service-button-element";
@ -30,7 +32,7 @@ const _createElement = (
): LovelaceElement | HuiErrorCard => {
const element = document.createElement(tag) as LovelaceElement;
try {
element.setConfig(config);
element.setConfig(deepClone(config));
} catch (err) {
// tslint:disable-next-line
console.error(tag, err);

View File

@ -1,3 +1,5 @@
import deepClone from "deep-clone-simple";
import { fireEvent } from "../../../common/dom/fire_event";
import {
@ -64,7 +66,7 @@ const _createElement = (
): EntityRow | HuiErrorCard => {
const element = document.createElement(tag) as EntityRow;
try {
element.setConfig(config);
element.setConfig(deepClone(config));
} catch (err) {
// tslint:disable-next-line
console.error(tag, err);

View File

@ -1,5 +1,7 @@
import "@polymer/paper-input/paper-textarea";
import deepClone from "deep-clone-simple";
import { createCardElement } from "../../common/create-card-element";
import { HomeAssistant } from "../../../../types";
import { LovelaceCardConfig } from "../../../../data/lovelace";
@ -42,7 +44,7 @@ export class HuiCardPreview extends HTMLElement {
if (tag.toUpperCase() === this._element.tagName) {
try {
this._element.setConfig(configValue);
this._element.setConfig(deepClone(configValue));
} catch (err) {
this._createCard(createErrorCardConfig(err.message, configValue));
}

View File

@ -4866,6 +4866,11 @@ dedent@^0.7.0:
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
deep-clone-simple@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/deep-clone-simple/-/deep-clone-simple-1.1.1.tgz#0ec358dfcce062928dbf58f0dfa484b4b5425d59"
integrity sha1-DsNY38zgYpKNv1jw36SEtLVCXVk=
deep-eql@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"