angular-material-css-vars-legacy
Version:
Little library to use css variables for @angular/material for legacy components
1 lines • 47.8 kB
Source Map (JSON)
{"version":3,"file":"angular-material-css-vars-legacy.mjs","sources":["../../../projects/material-css-vars/src/lib/model.ts","../../../projects/material-css-vars/src/lib/default-cfg.const.ts","../../../projects/material-css-vars/src/mat-css-config-token.const.ts","../../../projects/material-css-vars/src/lib/material-css-vars.service.ts","../../../projects/material-css-vars/src/lib/material-css-vars.module.ts","../../../projects/material-css-vars/src/public-api.ts","../../../projects/material-css-vars/src/angular-material-css-vars-legacy.ts"],"sourcesContent":["export type HueValue\n = '50'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n | 'A100'\n | 'A200'\n | 'A400'\n | 'A700'\n ;\n\nexport enum MatCssPalettePrefix {\n Primary = '--palette-primary-',\n Accent = '--palette-accent-',\n Warn = '--palette-warn-',\n}\n\nexport interface MatCssHueColorMapItem {\n hue: HueValue;\n isLight: boolean;\n color: {\n r: number;\n g: number;\n b: number;\n a: number;\n str: string;\n };\n}\n\nexport interface MatCssHueColorContrastMapItem extends MatCssHueColorMapItem {\n contrast: {\n r: number;\n g: number;\n b: number;\n a: number;\n str: string;\n };\n}\n\nexport interface MaterialCssColorMapperEntry {\n name: HueValue;\n map: [number, number, number];\n}\n\nexport interface MaterialCssVariablesConfig {\n isAutoContrast: boolean;\n isAlternativeColorAlgorithm: boolean;\n\n darkThemeClass: string;\n lightThemeClass: string;\n\n colorMap: MaterialCssColorMapperEntry[];\n sortedHues: HueValue[];\n\n isDarkTheme?: boolean;\n primary?: string;\n accent?: string;\n warn?: string;\n}\n\nexport enum MaterialCssVariables {\n 'Primary50' = '--palette-primary-50',\n 'Primary100' = '--palette-primary-100',\n 'Primary200' = '--palette-primary-200',\n 'Primary300' = '--palette-primary-300',\n 'Primary400' = '--palette-primary-400',\n 'Primary500' = '--palette-primary-500',\n 'Primary600' = '--palette-primary-600',\n 'Primary700' = '--palette-primary-700',\n 'Primary800' = '--palette-primary-800',\n 'Primary900' = '--palette-primary-900',\n 'PrimaryA100' = '--palette-primary-A100',\n 'PrimaryA200' = '--palette-primary-A200',\n 'PrimaryA400' = '--palette-primary-A400',\n 'PrimaryA700' = '--palette-primary-A700',\n\n 'PrimaryContrast50' = '--palette-primary-contrast-50',\n 'PrimaryContrast100' = '--palette-primary-contrast-100',\n 'PrimaryContrast200' = '--palette-primary-contrast-200',\n 'PrimaryContrast300' = '--palette-primary-contrast-300',\n 'PrimaryContrast400' = '--palette-primary-contrast-400',\n 'PrimaryContrast500' = '--palette-primary-contrast-500',\n 'PrimaryContrast600' = '--palette-primary-contrast-600',\n 'PrimaryContrast700' = '--palette-primary-contrast-700',\n 'PrimaryContrast800' = '--palette-primary-contrast-800',\n 'PrimaryContrast900' = '--palette-primary-contrast-900',\n 'PrimaryContrastA100' = '--palette-primary-contrast-A100',\n 'PrimaryContrastA200' = '--palette-primary-contrast-A200',\n 'PrimaryContrastA400' = '--palette-primary-contrast-A400',\n 'PrimaryContrastA700' = '--palette-primary-contrast-A700',\n\n // ACCENT\n 'Accent50' = '--palette-accent-50',\n 'Accent100' = '--palette-accent-100',\n 'Accent200' = '--palette-accent-200',\n 'Accent300' = '--palette-accent-300',\n 'Accent400' = '--palette-accent-400',\n 'Accent500' = '--palette-accent-500',\n 'Accent600' = '--palette-accent-600',\n 'Accent700' = '--palette-accent-700',\n 'Accent800' = '--palette-accent-800',\n 'Accent900' = '--palette-accent-900',\n 'AccentA100' = '--palette-accent-A100',\n 'AccentA200' = '--palette-accent-A200',\n 'AccentA400' = '--palette-accent-A400',\n 'AccentA700' = '--palette-accent-A700',\n 'DarkAccentText' = '--dark-accent-text',\n 'LightAccentText' = '--light-accent-text',\n\n // WARN\n 'Warn50' = '--palette-warn-50',\n 'Warn100' = '--palette-warn-100',\n 'Warn200' = '--palette-warn-200',\n 'Warn300' = '--palette-warn-300',\n 'Warn400' = '--palette-warn-400',\n 'Warn500' = '--palette-warn-500',\n 'Warn600' = '--palette-warn-600',\n 'Warn700' = '--palette-warn-700',\n 'Warn800' = '--palette-warn-800',\n 'Warn900' = '--palette-warn-900',\n 'WarnA100' = '--palette-warn-A100',\n 'WarnA200' = '--palette-warn-A200',\n 'WarnA400' = '--palette-warn-A400',\n 'WarnA700' = '--palette-warn-A700',\n 'DarkWarnText' = '--dark-warn-text',\n 'LightWarnText' = '--light-warn-text',\n\n // BACKGROUND\n 'BackgroundStatusBar' = '--palette-background-status-bar',\n 'BackgroundAppBar' = '--palette-background-app-bar',\n 'BackgroundBackground' = '--palette-background-background',\n 'BackgroundHover' = '--palette-background-hover',\n 'BackgroundHoverAlpha' = '--palette-background-hover-alpha',\n 'BackgroundCard' = '--palette-background-card',\n 'BackgroundDialog' = '--palette-background-dialog',\n 'BackgroundDisabledButton' = '--palette-background-disabled-button',\n 'BackgroundDisabledButtonAlpha' = '--palette-background-disabled-button-alpha',\n 'BackgroundRaisedButton' = '--palette-background-raised-button',\n 'BackgroundFocusedButton' = '--palette-background-focused-button',\n 'BackgroundFocusedButtonAlpha' = '--palette-background-focused-button-alpha',\n 'BackgroundSelectedButton' = '--palette-background-selected-button',\n 'BackgroundSelectedDisabledButton' = '--palette-background-selected-disabled-button',\n 'BackgroundDisabledButtonToggle' = '--palette-background-disabled-button-toggle',\n 'BackgroundUnselectedChip' = '--palette-background-unselected-chip',\n 'BackgroundDisabledListOption' = '--palette-background-disabled-list-option',\n\n // FOREGROUND\n 'ForegroundBase' = '--palette-foreground-base',\n 'ForegroundDivider' = '--palette-foreground-divider',\n 'ForegroundDividerAlpha' = '--palette-foreground-divider-alpha',\n 'ForegroundDividers' = '--palette-foreground-dividers',\n 'ForegroundDividersAlpha' = '--palette-foreground-dividers-alpha',\n 'ForegroundDisabled' = '--palette-foreground-disabled',\n 'ForegroundDisabledAlpha' = '--palette-foreground-disabled-alpha',\n 'ForegroundDisabledButton' = '--palette-foreground-disabled-button',\n 'ForegroundDisabledButtonAlpha' = '--palette-foreground-disabled-button-alpha',\n 'ForegroundDisabledText' = '--palette-foreground-disabled-text',\n 'ForegroundDisabledTextAlpha' = '--palette-foreground-disabled-text-alpha',\n 'ForegroundElevation' = '--palette-foreground-elevation',\n 'ForegroundHintText' = '--palette-foreground-hint-text',\n 'ForegroundHintTextAlpha' = '--palette-foreground-hint-text-alpha',\n 'ForegroundSecondaryText' = '--palette-foreground-secondary-text',\n 'ForegroundSecondaryTextAlpha' = '--palette-foreground-secondary-text-alpha',\n 'ForegroundIcon' = '--palette-foreground-icon',\n 'ForegroundIconAlpha' = '--palette-foreground-icon-alpha',\n 'ForegroundIcons' = '--palette-foreground-icons',\n 'ForegroundIconsAlpha' = '--palette-foreground-icons-alpha',\n 'ForegroundText' = '--palette-foreground-text',\n 'ForegroundTextAlpha' = '--palette-foreground-text-alpha',\n 'ForegroundSliderMin' = '--palette-foreground-slider-min',\n 'ForegroundSliderMinAlpha' = '--palette-foreground-slider-min-alpha',\n 'ForegroundSliderOff' = '--palette-foreground-slider-off',\n 'ForegroundSliderOffAlpha' = '--palette-foreground-slider-off-alpha',\n 'ForegroundSliderOffActive' = '--palette-foreground-slider-off-active',\n 'ForegroundSliderOffActiveAlpha' = '--palette-foreground-slider-off-active-alpha',\n\n // BACKGROUND DARK\n 'BackgroundStatusBarDark' = '--palette-background-status-bar-dark',\n 'BackgroundAppBarDark' = '--palette-background-app-bar-dark',\n 'BackgroundBackgroundDark' = '--palette-background-background-dark',\n 'BackgroundHoverDark' = '--palette-background-hover-dark',\n 'BackgroundHoverDarkAlpha' = '--palette-background-hover-dark-alpha',\n 'BackgroundCardDark' = '--palette-background-card-dark',\n 'BackgroundDialogDark' = '--palette-background-dialog-dark',\n 'BackgroundDisabledButtonDark' = '--palette-background-disabled-button-dark',\n 'BackgroundDisabledButtonDarkAlpha' = '--palette-background-disabled-button-dark-alpha',\n 'BackgroundRaisedButtonDark' = '--palette-background-raised-button-dark',\n 'BackgroundFocusedButtonDark' = '--palette-background-focused-button-dark',\n 'BackgroundFocusedButtonDarkAlpha' = '--palette-background-focused-button-dark-alpha',\n 'BackgroundSelectedButtonDark' = '--palette-background-selected-button-dark',\n 'BackgroundSelectedDisabledButtonDark' = '--palette-background-selected-disabled-button-dark',\n 'BackgroundDisabledButtonToggleDark' = '--palette-background-disabled-button-toggle-dark',\n 'BackgroundUnselectedChipDark' = '--palette-background-unselected-chip-dark',\n 'BackgroundDisabledListOptionDark' = '--palette-background-disabled-list-option-dark',\n\n // FOREGROUND DARK\n 'ForegroundBaseDark' = '--palette-foreground-base-dark',\n 'ForegroundDividerDark' = '--palette-foreground-divider-dark',\n 'ForegroundDividerDarkAlpha' = '--palette-foreground-divider-dark-alpha',\n 'ForegroundDividersDark' = '--palette-foreground-dividers-dark',\n 'ForegroundDividersDarkAlpha' = '--palette-foreground-dividers-dark-alpha',\n 'ForegroundDisabledDark' = '--palette-foreground-disabled-dark',\n 'ForegroundDisabledDarkAlpha' = '--palette-foreground-disabled-dark-alpha',\n 'ForegroundDisabledButtonDark' = '--palette-foreground-disabled-button-dark',\n 'ForegroundDisabledButtonDarkAlpha' = '--palette-foreground-disabled-button-dark-alpha',\n 'ForegroundDisabledTextDark' = '--palette-foreground-disabled-text-dark',\n 'ForegroundDisabledTextDarkAlpha' = '--palette-foreground-disabled-text-dark-alpha',\n 'ForegroundElevationDark' = '--palette-foreground-elevation-dark',\n 'ForegroundHintTextDark' = '--palette-foreground-hint-text-dark',\n 'ForegroundHintTextDarkAlpha' = '--palette-foreground-hint-text-dark-alpha',\n 'ForegroundSecondaryTextDark' = '--palette-foreground-secondary-text-dark',\n 'ForegroundSecondaryTextAlphaDark' = '--palette-foreground-secondary-text-alpha-dark',\n 'ForegroundIconDark' = '--palette-foreground-icon-dark',\n 'ForegroundIconDarkAlpha' = '--palette-foreground-icon-dark-alpha',\n 'ForegroundIconsDark' = '--palette-foreground-icons-dark',\n 'ForegroundIconsDarkAlpha' = '--palette-foreground-icons-dark-alpha',\n 'ForegroundTextDark' = '--palette-foreground-text-dark',\n 'ForegroundTextDarkAlpha' = '--palette-foreground-text-dark-alpha',\n 'ForegroundSliderMinDark' = '--palette-foreground-slider-min-dark',\n 'ForegroundSliderMinDarkAlpha' = '--palette-foreground-slider-min-dark-alpha',\n 'ForegroundSliderOffDark' = '--palette-foreground-slider-off-dark',\n 'ForegroundSliderOffDarkAlpha' = '--palette-foreground-slider-off-dark-alpha',\n 'ForegroundSliderOffActiveDark' = '--palette-foreground-slider-off-active-dark',\n 'ForegroundSliderOffActiveDarkAlpha' = '--palette-foreground-slider-off-active-dark-alpha',\n}\n","import {MaterialCssVariablesConfig} from './model';\n\nexport const DEFAULT_MAT_CSS_CFG: MaterialCssVariablesConfig = {\n isAutoContrast: true,\n isAlternativeColorAlgorithm: false,\n darkThemeClass: 'isDarkTheme',\n lightThemeClass: 'isLightTheme',\n colorMap: [\n {name: '50', map: [52, 0, 0]},\n {name: '100', map: [37, 0, 0]},\n {name: '200', map: [26, 0, 0]},\n {name: '300', map: [12, 0, 0]},\n {name: '400', map: [6, 0, 0]},\n {name: '500', map: [0, 0, 0]},\n {name: '600', map: [0, 6, 0]},\n {name: '700', map: [0, 12, 0]},\n {name: '800', map: [0, 18, 0]},\n {name: '900', map: [0, 24, 0]},\n {name: 'A100', map: [50, 0, 30]},\n {name: 'A200', map: [30, 0, 30]},\n {name: 'A400', map: [10, 0, 15]},\n {name: 'A700', map: [5, 0, 5]},\n ],\n sortedHues: [\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n ]\n};\n","import {InjectionToken} from '@angular/core';\nimport {MaterialCssVariablesConfig} from './lib/model';\n\nexport const MATERIAL_CSS_VARS_CFG = new InjectionToken<MaterialCssVariablesConfig>('Mat Css Config');\n","import {Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2} from '@angular/core';\nimport {Numberify, RGBA, TinyColor} from '@ctrl/tinycolor';\nimport {\n HueValue,\n MatCssHueColorContrastMapItem,\n MatCssHueColorMapItem,\n MatCssPalettePrefix,\n MaterialCssVariables,\n MaterialCssVariablesConfig\n} from './model';\nimport {DOCUMENT} from '@angular/common';\nimport {DEFAULT_MAT_CSS_CFG} from './default-cfg.const';\nimport {MATERIAL_CSS_VARS_CFG} from '../mat-css-config-token.const';\n\ninterface CssVariable {\n name: string;\n val: string;\n}\n\n// @see: https://github.com/angular/angular/issues/20351\n/** @dynamic */\n@Injectable({\n providedIn: 'root'\n})\nexport class MaterialCssVarsService {\n private static CONTRAST_PREFIX = 'contrast-';\n private static DARK_TEXT_VAR = '--dark-primary-text';\n private static LIGHT_TEXT_VAR = '--light-primary-text';\n\n private renderer: Renderer2;\n private ROOT: HTMLElement;\n\n // This should be readonly from the outside\n cfg: MaterialCssVariablesConfig;\n primary: string;\n accent: string;\n warn: string;\n isDarkTheme: boolean;\n contrastColorThresholdPrimary: HueValue = '400';\n contrastColorThresholdAccent: HueValue = '400';\n contrastColorThresholdWarn: HueValue = '400';\n isAutoContrast = false;\n\n constructor(\n rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private document: Document,\n @Inject(MATERIAL_CSS_VARS_CFG) cfg: MaterialCssVariablesConfig,\n ) {\n this.renderer = rendererFactory.createRenderer(null, null);\n this.ROOT = this.document.documentElement;\n\n this.cfg = {\n ...DEFAULT_MAT_CSS_CFG,\n ...cfg,\n };\n this.isAutoContrast = this.cfg.isAutoContrast;\n\n if (this.cfg.isDarkTheme) {\n this.setDarkTheme(this.cfg.isDarkTheme);\n }\n if (this.cfg.primary) {\n this.setPrimaryColor(this.cfg.primary);\n }\n if (this.cfg.accent) {\n this.setAccentColor(this.cfg.accent);\n }\n if (this.cfg.warn) {\n this.setWarnColor(this.cfg.warn);\n }\n }\n\n setPrimaryColor(hex: string) {\n this.primary = hex;\n const varPrefix = MatCssPalettePrefix.Primary;\n const stylePrimary = this._computePaletteColors(varPrefix, this.primary);\n this._setStyle(stylePrimary);\n\n if (this.isAutoContrast) {\n this._recalculateAndSetContrastColor(varPrefix);\n }\n }\n\n setAccentColor(hex: string) {\n this.accent = hex;\n const varPrefix = MatCssPalettePrefix.Accent;\n const styleAccent = this._computePaletteColors(varPrefix, this.accent);\n this._setStyle(styleAccent);\n\n if (this.isAutoContrast) {\n this._recalculateAndSetContrastColor(varPrefix);\n }\n }\n\n setWarnColor(hex: string) {\n this.warn = hex;\n const varPrefix = MatCssPalettePrefix.Warn;\n const styleWarn = this._computePaletteColors(varPrefix, this.warn);\n this._setStyle(styleWarn);\n\n if (this.isAutoContrast) {\n this._recalculateAndSetContrastColor(varPrefix);\n }\n }\n\n setVariable(cssVarName: MaterialCssVariables, value: string) {\n this._setStyle([{\n name: cssVarName,\n val: value,\n }]);\n }\n\n setDarkTheme(isDark: boolean) {\n if (isDark) {\n this.document.body.classList.remove(this.cfg.lightThemeClass);\n this.document.body.classList.add(this.cfg.darkThemeClass);\n } else {\n this.document.body.classList.remove(this.cfg.darkThemeClass);\n this.document.body.classList.add(this.cfg.lightThemeClass);\n }\n this.isDarkTheme = isDark;\n }\n\n setAutoContrastEnabled(val: boolean) {\n this.isAutoContrast = val;\n if (val) {\n this._recalculateAndSetContrastColor(MatCssPalettePrefix.Primary);\n this._recalculateAndSetContrastColor(MatCssPalettePrefix.Accent);\n this._recalculateAndSetContrastColor(MatCssPalettePrefix.Warn);\n } else {\n this.setContrastColorThresholdPrimary(this.contrastColorThresholdPrimary);\n this.setContrastColorThresholdAccent(this.contrastColorThresholdAccent);\n this.setContrastColorThresholdWarn(this.contrastColorThresholdWarn);\n }\n }\n\n setContrastColorThresholdPrimary(threshold: HueValue) {\n this.contrastColorThresholdPrimary = threshold;\n this.setContrastColorThreshold(threshold, MatCssPalettePrefix.Primary);\n }\n\n setContrastColorThresholdAccent(threshold: HueValue) {\n this.contrastColorThresholdAccent = threshold;\n this.setContrastColorThreshold(threshold, MatCssPalettePrefix.Accent);\n }\n\n setContrastColorThresholdWarn(threshold: HueValue) {\n this.contrastColorThresholdWarn = threshold;\n this.setContrastColorThreshold(threshold, MatCssPalettePrefix.Warn);\n }\n\n setContrastColorThreshold(threshold: HueValue, palettePrefix: MatCssPalettePrefix) {\n let color = MaterialCssVarsService.DARK_TEXT_VAR;\n const updates = this.cfg.sortedHues.map((hue) => {\n if (hue === threshold) {\n color = MaterialCssVarsService.LIGHT_TEXT_VAR;\n }\n return {\n val: this._getCssVarValue(color),\n name: `${palettePrefix + MaterialCssVarsService.CONTRAST_PREFIX}${hue}-rgb`,\n };\n });\n this._setStyle(updates);\n }\n\n /**\n * Generate palette color based on traditional values\n */\n setAlternativeColorAlgorithm(traditional: boolean): void {\n this.cfg.isAlternativeColorAlgorithm = traditional;\n this.setPrimaryColor(this.primary);\n this.setAccentColor(this.accent);\n this.setWarnColor(this.warn);\n }\n\n /** @deprecated use setContrastColorThresholdPrimary instead */\n changeContrastColorThresholdPrimary(threshold: HueValue) {\n this.setContrastColorThresholdPrimary(threshold);\n }\n\n /** @deprecated use setContrastColorThresholdAccent instead */\n changeContrastColorThresholdAccent(threshold: HueValue) {\n this.setContrastColorThresholdAccent(threshold);\n }\n\n /** @deprecated use setContrastColorThresholdWarn instead */\n changeContrastColorThresholdWarn(threshold: HueValue) {\n this.setContrastColorThresholdWarn(threshold);\n }\n\n /** @deprecated use setContrastColorThreshold instead */\n changeContrastColorThreshold(threshold: HueValue, palettePrefix: MatCssPalettePrefix) {\n this.setContrastColorThreshold(threshold, palettePrefix);\n }\n\n getPaletteForColor(hex: string): MatCssHueColorMapItem[] {\n if (this.cfg.isAlternativeColorAlgorithm) {\n return this.getTraditionalPaletteForColor(hex);\n } else {\n return this.getConstantinPaletteForColor(hex);\n }\n }\n\n private getTraditionalPaletteForColor(hex: string): MatCssHueColorMapItem[] {\n return this.cfg.colorMap.map(item => {\n const mappedColor = new TinyColor(hex)\n .lighten(item.map[0])\n .darken(item.map[1])\n .saturate(item.map[2]);\n const c = new TinyColor(mappedColor);\n return {\n hue: item.name,\n isLight: c.isLight(),\n color: {\n ...c.toRgb(),\n str: `rgb(${c.toRgb().r},${c.toRgb().g},${c.toRgb().b})`\n }\n };\n });\n }\n\n private getConstantinPaletteForColor(hex: string): MatCssHueColorMapItem[] {\n return this.cfg.colorMap.map((item) => {\n const c = this.computePalletTriad(hex, item.name);\n return {\n hue: item.name,\n isLight: c.isLight,\n color: {\n ...c.rgb,\n str: `rgb(${c.rgb.r},${c.rgb.g},${c.rgb.b})`\n }\n };\n });\n }\n\n getPaletteWithContrastForColor(hex: string): MatCssHueColorContrastMapItem[] {\n const lightText = this._getCssVarValue(MaterialCssVarsService.LIGHT_TEXT_VAR);\n const darkText = this._getCssVarValue(MaterialCssVarsService.DARK_TEXT_VAR);\n const palette = this.getPaletteForColor(hex);\n\n // TODO handle non auto case\n return palette.map((item) => {\n const contrastStr = item.isLight\n ? lightText\n : darkText;\n\n const sLight = contrastStr.split(',').map(v => +v);\n const cco = {r: sLight[0], g: sLight[1], b: sLight[2], a: 1};\n return {\n ...item,\n contrast: {\n ...cco,\n str: `${cco.r},${cco.g},${cco.b}`\n },\n };\n });\n }\n\n private _computePaletteColors(prefix: MatCssPalettePrefix, hex: string): CssVariable[] {\n return this.getPaletteForColor(hex).map(item => {\n const c = item.color;\n return {\n name: `${prefix}${item.hue}`,\n val: `${c.r}, ${c.g}, ${c.b}`\n };\n });\n }\n\n private _recalculateAndSetContrastColor(palettePrefix: MatCssPalettePrefix) {\n const updates = this._calculateContrastColorsForCurrentValues(palettePrefix)\n .map(({contrastColorVar, hue}) => {\n return {\n val: this._getCssVarValue(contrastColorVar),\n name: `${palettePrefix + MaterialCssVarsService.CONTRAST_PREFIX}${hue}-rgb`,\n };\n });\n this._setStyle(updates);\n }\n\n private _calculateContrastColorsForCurrentValues(palettePrefix: MatCssPalettePrefix):\n { contrastColorVar: string, hue: HueValue }[] {\n return this.cfg.sortedHues.map((hue) => {\n const hueVarVal = this._getCssVarValue(`${palettePrefix}${hue}`);\n const c = new TinyColor(`rgb(${hueVarVal})`);\n const contrastColorVar = c.isDark()\n ? MaterialCssVarsService.LIGHT_TEXT_VAR\n : MaterialCssVarsService.DARK_TEXT_VAR;\n return {\n contrastColorVar,\n hue,\n };\n });\n }\n\n private _setStyle(vars: CssVariable[]) {\n vars.forEach(s => {\n this.renderer.setStyle(this.ROOT, s.name, s.val, RendererStyleFlags2.DashCase);\n });\n }\n\n private _getCssVarValue(v: string): string {\n return getComputedStyle(this.ROOT).getPropertyValue(v);\n }\n\n /**\n * Compute pallet colors based on a Triad (Constantin)\n * see: https://github.com/mbitson/mcg\n */\n private computePalletTriad(hex: string, hue: HueValue) {\n const baseLight = new TinyColor('#ffffff');\n const baseDark = this.multiply(new TinyColor(hex).toRgb(), new TinyColor(hex).toRgb());\n const baseTriad = new TinyColor(hex).tetrad();\n let color: { rgb: Numberify<RGBA>, isLight: boolean };\n\n switch (hue) {\n case '50':\n color = this.getColorObject(baseLight.mix(hex, 12));\n break;\n case '100':\n color = this.getColorObject(baseLight.mix(hex, 30));\n break;\n case '200':\n color = this.getColorObject(baseLight.mix(hex, 50));\n break;\n case '300':\n color = this.getColorObject(baseLight.mix(hex, 70));\n break;\n case '400':\n color = this.getColorObject(baseLight.mix(hex, 85));\n break;\n case '500':\n color = this.getColorObject(baseLight.mix(hex, 100));\n break;\n case '600':\n color = this.getColorObject(baseDark.mix(hex, 87));\n break;\n case '700':\n color = this.getColorObject(baseDark.mix(hex, 70));\n break;\n case '800':\n color = this.getColorObject(baseDark.mix(hex, 54));\n break;\n case '900':\n color = this.getColorObject(baseDark.mix(hex, 25));\n break;\n case 'A100':\n color = this.getColorObject(baseDark.mix(baseTriad[4], 15).saturate(80).lighten(65));\n break;\n case 'A200':\n color = this.getColorObject(baseDark.mix(baseTriad[4], 15).saturate(80).lighten(55));\n break;\n case 'A400':\n color = this.getColorObject(baseDark.mix(baseTriad[4], 15).saturate(100).lighten(45));\n break;\n case 'A700':\n color = this.getColorObject(baseDark.mix(baseTriad[4], 15).saturate(100).lighten(40));\n break;\n default:\n break;\n }\n return color;\n }\n\n private multiply(rgb1: Numberify<RGBA>, rgb2: Numberify<RGBA>): TinyColor {\n rgb1.b = Math.floor(rgb1.b * rgb2.b / 255);\n rgb1.g = Math.floor(rgb1.g * rgb2.g / 255);\n rgb1.r = Math.floor(rgb1.r * rgb2.r / 255);\n return new TinyColor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b);\n }\n\n private getColorObject(value: TinyColor) {\n const c = new TinyColor(value);\n return {rgb: c.toRgb(), isLight: c.isLight()};\n }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MaterialCssVariablesConfig} from './model';\nimport {MATERIAL_CSS_VARS_CFG} from '../mat-css-config-token.const';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class MaterialCssVarsModule {\n static forRoot(config?: Partial<MaterialCssVariablesConfig>): ModuleWithProviders<MaterialCssVarsModule> {\n return {\n ngModule: MaterialCssVarsModule,\n providers: [{provide: MATERIAL_CSS_VARS_CFG, useValue: config}]\n };\n }\n}\n","/*\n * Public API Surface of material-css-vars\n */\n\nexport * from './lib/material-css-vars.service';\nexport * from './lib/material-css-vars.module';\nexport * from './lib/model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}