UNPKG

turnilo

Version:

Business intelligence, data exploration and visualization web application for Druid, formerly known as Swiv and Pivot

145 lines 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chronoshift_1 = require("chronoshift"); const functional_1 = require("../../utils/functional/functional"); const general_1 = require("../../utils/general/general"); const colors_1 = require("../colors/colors"); const external_view_1 = require("../external-view/external-view"); const locale_1 = require("../locale/locale"); const url_shortener_1 = require("../url-shortener/url-shortener"); exports.DEFAULT_TITLE = "Turnilo (%v)"; exports.DEFAULT_TIMEZONES = [ new chronoshift_1.Timezone("America/Juneau"), new chronoshift_1.Timezone("America/Los_Angeles"), new chronoshift_1.Timezone("America/Yellowknife"), new chronoshift_1.Timezone("America/Phoenix"), new chronoshift_1.Timezone("America/Denver"), new chronoshift_1.Timezone("America/Mexico_City"), new chronoshift_1.Timezone("America/Chicago"), new chronoshift_1.Timezone("America/New_York"), new chronoshift_1.Timezone("America/Argentina/Buenos_Aires"), chronoshift_1.Timezone.UTC, new chronoshift_1.Timezone("Asia/Jerusalem"), new chronoshift_1.Timezone("Europe/Paris"), new chronoshift_1.Timezone("Asia/Kathmandu"), new chronoshift_1.Timezone("Asia/Hong_Kong"), new chronoshift_1.Timezone("Asia/Seoul"), new chronoshift_1.Timezone("Pacific/Guam") ]; const availableCssVariables = [ "background-base", "background-brand-light", "background-brand-text", "background-brand", "background-dark", "background-light", "background-lighter", "background-lightest", "background-medium", "border-darker", "border-extra-light", "border-light", "border-medium", "border-super-light", "brand-hover", "brand-selected", "brand", "button-primary-active", "button-primary-hover", "button-secondary-active", "button-secondary-hover", "button-secondary", "button-warn-active", "button-warn-hover", "button-warn", "danger", "dark", "date-range-picker-selected", "drop-area-indicator", "error", "grid-line-color", "highlight-border", "highlight", "hover", "icon-hover", "icon-light", "item-dimension-hover", "item-dimension-text", "item-dimension", "item-measure-hover", "item-measure-text", "item-measure", "negative", "pinboard-icon", "positive", "text-default-color", "text-light", "text-lighter", "text-lighterish", "text-lightest", "text-link", "text-medium", "text-standard" ]; function verifyCssVariables(cssVariables, logger) { return Object.keys(cssVariables) .filter(variableName => { const valid = availableCssVariables.indexOf(variableName) > -1; if (!valid) { logger.warn(`Unsupported css variables "${variableName}" found.`); } return valid; }) .reduce((variables, key) => { return functional_1.assoc(variables, key, cssVariables[key]); }, {}); } function readVisualizationColors(config) { if (general_1.isNil(config.visualizationColors)) return colors_1.DEFAULT_COLORS; return { ...colors_1.DEFAULT_COLORS, ...config.visualizationColors }; } function fromConfig(config = {}, logger) { const { title = exports.DEFAULT_TITLE, headerBackground, customLogoSvg, externalViews: configExternalViews, timezones: configTimezones, urlShortener, sentryDSN, cssVariables = {}, locale, messages = {} } = config; const timezones = Array.isArray(configTimezones) ? configTimezones.map(chronoshift_1.Timezone.fromJS) : exports.DEFAULT_TIMEZONES; const externalViews = Array.isArray(configExternalViews) ? configExternalViews.map(external_view_1.ExternalView.fromJS) : []; const visualizationColors = readVisualizationColors(config); return { title, headerBackground, customLogoSvg, sentryDSN, cssVariables: verifyCssVariables(cssVariables, logger), urlShortener: url_shortener_1.fromConfig(urlShortener), timezones, locale: locale_1.fromConfig(locale, logger), messages, externalViews, visualizationColors }; } exports.fromConfig = fromConfig; function serialize(customization) { const { customLogoSvg, timezones, headerBackground, locale, externalViews, sentryDSN, urlShortener, messages, visualizationColors } = customization; return { customLogoSvg, externalViews, hasUrlShortener: general_1.isTruthy(urlShortener), headerBackground, sentryDSN, locale: locale_1.serialize(locale), timezones: timezones.map(t => t.toJS()), messages, visualizationColors }; } exports.serialize = serialize; function getTitle({ title }, version) { return title.replace(/%v/g, version); } exports.getTitle = getTitle; //# sourceMappingURL=customization.js.map