From f38b1f8950a6b54be55dd5b8ca6018475d871ca1 Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Wed, 20 May 2015 16:13:25 +0300 Subject: [PATCH] data URI support for CSS background-image added --- ui/styling/style.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ui/styling/style.ts b/ui/styling/style.ts index 54cf12904..6aa8dbd76 100644 --- a/ui/styling/style.ts +++ b/ui/styling/style.ts @@ -10,6 +10,7 @@ import styleProperty = require("ui/styling/style-property"); import converters = require("ui/styling/converters"); import enums = require("ui/enums"); import imageSource = require("image-source"); +import utils = require("utils/utils"); // key is the property id and value is Dictionary; var _registeredHandlers = {}; @@ -348,8 +349,13 @@ function onBackgroundImagePropertyChanged(data: observable.PropertyChangeData) { var pattern: RegExp = /url\(('|")(.*?)\1\)/; var url = (data.newValue).match(pattern)[2]; - if (imageSource.isFileOrResourcePath(url)) { + if (utils.isFileOrResourcePath(url)) { style._setValue(backgroundImageSourceProperty, imageSource.fromFileOrResource(url), observable.ValueSource.Local); + } else if (utils.isDataURI(url)) { + var base64Data = url.split(",")[1]; + if (types.isDefined(base64Data)) { + style._setValue(backgroundImageSourceProperty, imageSource.fromBase64(base64Data), observable.ValueSource.Local); + } } else if (types.isString(url)) { imageSource.fromUrl(url).then(r=> { style._setValue(backgroundImageSourceProperty, r, observable.ValueSource.Local);