diff --git a/src/bower_components/apiclient/credentials.js b/src/bower_components/apiclient/credentialprovider.js
similarity index 100%
rename from src/bower_components/apiclient/credentials.js
rename to src/bower_components/apiclient/credentialprovider.js
diff --git a/src/components/appsettings.js b/src/components/appSettings.js
similarity index 100%
rename from src/components/appsettings.js
rename to src/components/appSettings.js
diff --git a/src/components/cardbuilder/cardbuilder.js b/src/components/cardbuilder/cardBuilder.js
similarity index 100%
rename from src/components/cardbuilder/cardbuilder.js
rename to src/components/cardbuilder/cardBuilder.js
diff --git a/src/components/cardbuilder/roundcard.css b/src/components/cardbuilder/roundcard.css
deleted file mode 100644
index d0bd950972..0000000000
--- a/src/components/cardbuilder/roundcard.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.card-round:focus > .cardBox-focustransform {
- transform: scale(1.26, 1.26);
-}
-
-.cardImageContainer-round, .cardImage-round {
- border-radius: 1000px;
-}
diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js
index e50bc1c532..396d4d3c22 100644
--- a/src/components/favoriteitems.js
+++ b/src/components/favoriteitems.js
@@ -132,8 +132,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
overlayMoreButton: section.overlayMoreButton && !cardLayout,
action: section.action,
allowBottomPadding: !enableScrollX(),
- cardLayout: cardLayout,
- vibrant: supportsImageAnalysis && cardLayout
+ cardLayout: cardLayout
}), html += "
"
}
elem.innerHTML = html, imageLoader.lazyChildren(elem)
diff --git a/src/components/focusmanager.js b/src/components/focusManager.js
similarity index 100%
rename from src/components/focusmanager.js
rename to src/components/focusManager.js
diff --git a/src/components/images/imageLoader.js b/src/components/images/imageLoader.js
index 106de3a696..2a77daa216 100644
--- a/src/components/images/imageLoader.js
+++ b/src/components/images/imageLoader.js
@@ -30,9 +30,7 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings',
function fillImageElement(elem, source, enableEffects) {
imageFetcher.loadImage(elem, source).then(function () {
- var fillingVibrant = false;//fillVibrant(elem, source);
-
- if (enableFade && enableEffects !== false && !fillingVibrant) {
+ if (enableFade && enableEffects !== false) {
fadeIn(elem);
}
@@ -40,131 +38,6 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings',
});
}
- function fillVibrant(img, url, canvas, canvasContext) {
-
- var vibrantElement = img.getAttribute('data-vibrant');
- if (!vibrantElement) {
- return false;
- }
-
- if (window.Vibrant) {
- fillVibrantOnLoaded(img, url, vibrantElement, canvas, canvasContext);
- return true;
- }
-
- require(['vibrant'], function () {
- fillVibrantOnLoaded(img, url, vibrantElement, canvas, canvasContext);
- });
- return true;
- }
-
- function fillVibrantOnLoaded(img, url, vibrantElement) {
-
- vibrantElement = document.getElementById(vibrantElement);
- if (!vibrantElement) {
- return;
- }
-
- requestIdleCallback(function () {
-
- //var now = new Date().getTime();
- getVibrantInfoFromElement(img, url).then(function (vibrantInfo) {
-
- var swatch = vibrantInfo.split('|');
- //console.log('vibrant took ' + (new Date().getTime() - now) + 'ms');
- if (swatch.length) {
-
- var index = 0;
- var style = vibrantElement.style;
- style.backgroundColor = swatch[index];
- style.color = swatch[index + 1];
-
- var classList = vibrantElement.classList;
-
- if (classList.contains('cardFooter')) {
- classList.add('cardFooter-vibrant');
- } else {
- classList.add('vibrant');
- }
- }
- });
- });
- /*
- * Results into:
- * Vibrant #7a4426
- * Muted #7b9eae
- * DarkVibrant #348945
- * DarkMuted #141414
- * LightVibrant #f3ccb4
- */
- }
-
- function getVibrantInfoFromElement(elem, url) {
-
- return new Promise(function (resolve, reject) {
-
- require(['vibrant'], function () {
-
- if (elem.tagName === 'IMG') {
- resolve(getVibrantInfo(elem, url));
- return;
- }
-
- var img = new Image();
- img.onload = function () {
- resolve(getVibrantInfo(img, url));
- };
- img.src = url;
- });
- });
- }
-
- function getSettingsKey(url) {
-
- var parts = url.split('://');
- url = parts[parts.length - 1];
-
- url = url.substring(url.indexOf('/') + 1);
-
- url = url.split('?')[0];
-
- var cacheKey = 'vibrant31';
- //cacheKey = 'vibrant' + new Date().getTime();
- return cacheKey + url;
- }
-
- function getCachedVibrantInfo(url) {
-
- return appSettings.get(getSettingsKey(url));
- }
-
- function getVibrantInfo(img, url) {
-
- var value = getCachedVibrantInfo(url);
- if (value) {
- return value;
- }
-
- var vibrant = new Vibrant(img);
- var swatches = vibrant.swatches();
-
- value = '';
- var swatch = swatches.DarkVibrant;
- value += getSwatchString(swatch);
-
- appSettings.set(getSettingsKey(url), value);
-
- return value;
- }
-
- function getSwatchString(swatch) {
-
- if (swatch) {
- return swatch.getHex() + '|' + swatch.getBodyTextColor() + '|' + swatch.getTitleTextColor();
- }
- return '||';
- }
-
function fadeIn(elem) {
var cssClass = 'lazy-image-fadein';
@@ -248,8 +121,6 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings',
self.lazyImage = fillImage;
self.lazyChildren = lazyChildren;
self.getPrimaryImageAspectRatio = getPrimaryImageAspectRatio;
- self.getCachedVibrantInfo = getCachedVibrantInfo;
- self.getVibrantInfoFromElement = getVibrantInfoFromElement;
return self;
});
\ No newline at end of file
diff --git a/src/components/inputmanager.js b/src/components/inputManager.js
similarity index 100%
rename from src/components/inputmanager.js
rename to src/components/inputManager.js
diff --git a/src/components/layoutmanager.js b/src/components/layoutManager.js
similarity index 100%
rename from src/components/layoutmanager.js
rename to src/components/layoutManager.js
diff --git a/src/components/pluginmanager.js b/src/components/pluginManager.js
similarity index 100%
rename from src/components/pluginmanager.js
rename to src/components/pluginManager.js
diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js
index 4c02ba3c6e..e339224679 100644
--- a/src/components/viewContainer.js
+++ b/src/components/viewContainer.js
@@ -1,121 +1,262 @@
-define(["browser", "dom", "layoutManager", "css!components/viewManager/viewContainer"], function(browser, dom, layoutManager) {
+define(["browser", "dom", "layoutManager", "css!components/viewManager/viewContainer"], function (browser, dom, layoutManager) {
"use strict";
function setControllerClass(view, options) {
- if (options.controllerFactory) return Promise.resolve();
+ if (options.controllerFactory) {
+ return Promise.resolve();
+ }
+
var controllerUrl = view.getAttribute("data-controller");
- return controllerUrl ? (0 === controllerUrl.indexOf("__plugin/") && (controllerUrl = controllerUrl.substring("__plugin/".length)), controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl), getRequirePromise([controllerUrl]).then(function(ControllerFactory) {
- options.controllerFactory = ControllerFactory
- })) : Promise.resolve()
+
+ if (controllerUrl) {
+ if (0 === controllerUrl.indexOf("__plugin/")) {
+ controllerUrl = controllerUrl.substring("__plugin/".length);
+ }
+
+ controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl);
+ return getRequirePromise([controllerUrl]).then(function (ControllerFactory) {
+ options.controllerFactory = ControllerFactory;
+ });
+ }
+
+ return Promise.resolve();
}
function getRequirePromise(deps) {
- return new Promise(function(resolve, reject) {
- require(deps, resolve)
- })
+ return new Promise(function (resolve, reject) {
+ require(deps, resolve);
+ });
}
function loadView(options) {
if (!options.cancel) {
- var selected = selectedPageIndex,
- previousAnimatable = -1 === selected ? null : allPages[selected],
- pageIndex = selected + 1;
- pageIndex >= pageContainerCount && (pageIndex = 0);
- var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage"),
- newViewInfo = normalizeNewView(options, isPluginpage),
- newView = newViewInfo.elem,
- dependencies = "string" == typeof newView ? null : newView.getAttribute("data-require");
- return dependencies = dependencies ? dependencies.split(",") : [], isPluginpage && dependencies.push("legacy/dashboard"), newViewInfo.hasjQuerySelect && dependencies.push("legacy/selectmenu"), newViewInfo.hasjQueryChecked && dependencies.push("fnchecked"), newViewInfo.hasjQuery && dependencies.push("jQuery"), (isPluginpage || newView.classList && newView.classList.contains("type-interior")) && dependencies.push("dashboardcss"), new Promise(function(resolve, reject) {
- dependencies.join(",");
- require(dependencies, function() {
- var currentPage = allPages[pageIndex];
- currentPage && triggerDestroy(currentPage);
- var view = newView;
- "string" == typeof view && (view = document.createElement("div"), view.innerHTML = newView), view.classList.add("mainAnimatedPage"), currentPage ? newViewInfo.hasScript && window.$ ? (view = $(view).appendTo(mainAnimatedPages)[0], mainAnimatedPages.removeChild(currentPage)) : mainAnimatedPages.replaceChild(view, currentPage) : newViewInfo.hasScript && window.$ ? view = $(view).appendTo(mainAnimatedPages)[0] : mainAnimatedPages.appendChild(view), options.type && view.setAttribute("data-type", options.type);
- var properties = [];
- options.fullscreen && properties.push("fullscreen"), properties.length && view.setAttribute("data-properties", properties.join(","));
- allPages[pageIndex] = view, setControllerClass(view, options).then(function() {
- onBeforeChange && onBeforeChange(view, !1, options), beforeAnimate(allPages, pageIndex, selected), selectedPageIndex = pageIndex, currentUrls[pageIndex] = options.url, !options.cancel && previousAnimatable && afterAnimate(allPages, pageIndex), window.$ && ($.mobile = $.mobile || {}, $.mobile.activePage = view), resolve(view)
- })
- })
- })
+ var selected = selectedPageIndex;
+ var previousAnimatable = -1 === selected ? null : allPages[selected];
+ var pageIndex = selected + 1;
+
+ if (pageIndex >= pageContainerCount) {
+ pageIndex = 0;
+ }
+
+ var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage");
+ var newViewInfo = normalizeNewView(options, isPluginpage);
+ var newView = newViewInfo.elem;
+
+
+ if (isPluginpage) {
+ require(["legacy/dashboard"]);
+ }
+
+ if (newViewInfo.hasjQuerySelect) {
+ require(["legacy/selectmenu"]);
+ }
+
+ if (newViewInfo.hasjQueryChecked) {
+ require(["fnchecked"]);
+ }
+
+ return new Promise(function (resolve) {
+ var currentPage = allPages[pageIndex];
+
+ if (currentPage) {
+ triggerDestroy(currentPage);
+ }
+
+ var view = newView;
+
+ if ("string" == typeof view) {
+ view = document.createElement("div");
+ view.innerHTML = newView;
+ }
+
+ view.classList.add("mainAnimatedPage");
+
+ if (currentPage) {
+ if (newViewInfo.hasScript && window.$) {
+ view = $(view).appendTo(mainAnimatedPages)[0];
+ mainAnimatedPages.removeChild(currentPage);
+ } else {
+ mainAnimatedPages.replaceChild(view, currentPage);
+ }
+ } else {
+ if (newViewInfo.hasScript && window.$) {
+ view = $(view).appendTo(mainAnimatedPages)[0];
+ } else {
+ mainAnimatedPages.appendChild(view);
+ }
+ }
+
+ if (options.type) {
+ view.setAttribute("data-type", options.type);
+ }
+
+ var properties = [];
+
+ if (options.fullscreen) {
+ properties.push("fullscreen");
+ }
+
+ if (properties.length) {
+ view.setAttribute("data-properties", properties.join(","));
+ }
+
+ allPages[pageIndex] = view;
+ setControllerClass(view, options).then(function () {
+ if (onBeforeChange) {
+ onBeforeChange(view, false, options);
+ }
+
+ beforeAnimate(allPages, pageIndex, selected);
+ selectedPageIndex = pageIndex;
+ currentUrls[pageIndex] = options.url;
+
+ if (!options.cancel && previousAnimatable) {
+ afterAnimate(allPages, pageIndex);
+ }
+
+ if (window.$) {
+ $.mobile = $.mobile || {};
+ $.mobile.activePage = view;
+ }
+
+ resolve(view);
+ });
+ });
}
}
function replaceAll(str, find, replace) {
- return str.split(find).join(replace)
+ return str.split(find).join(replace);
}
function parseHtml(html, hasScript) {
- hasScript && (html = replaceAll(html, "\x3c!--