{"version":3,"file":"super-jss.mjs","sources":["../../../projects/super-jss/src/lib/core/core-methods.ts","../../../projects/super-jss/src/lib/services/sj-theme.service.ts","../../../projects/super-jss/src/lib/directives/sj.directive.ts","../../../projects/super-jss/src/public-api.ts","../../../projects/super-jss/src/super-jss.ts"],"sourcesContent":["import {\n    ResponsiveStyle,\n    SjBreakPoints,\n    SjStyle,\n    SjTheme,\n    SjShorthandStyle, SjShorthandCustomStyle,\n} from \"../models/interfaces\";\n\n/**\n * Determines the current breakpoint based on the screen width and defined breakpoints.\n * @param {SjBreakPoints} breakpoints - The defined breakpoints in the theme.\n * @param {number} screenWidth - The current width of the screen.\n * @returns {string} - The current breakpoint key.\n */\n\nexport const getCurrentBreakpoint = (breakpoints:SjBreakPoints,screenWidth: number): string => {\n    let bp = 'xs'\n    for (const key of Object.keys(breakpoints)) {\n        const breakpoint = key as keyof SjBreakPoints;\n        bp = breakpoints[breakpoint] <= screenWidth ? breakpoint : bp;\n    }\n    return bp;\n}\n\n/**\n * Resolves the appropriate style for a given screen width from a set of responsive styles.\n * @param {ResponsiveStyle} responsiveStyle - The responsive styles to choose from.\n * @param {SjTheme} sjTheme - The current theme context.\n * @param {number} screenWidth - The current width of the screen.\n * @returns {string | undefined} - The resolved style value.\n */\nconst getStyleByScreenWidth = (responsiveStyle: ResponsiveStyle, sjTheme:SjTheme, screenWidth: number): string | undefined => {\n    let styleInBreakpoint: string | number | undefined;\n    let rStyle: ResponsiveStyle = responsiveStyle;\n    rStyle['xs'] = rStyle['xs'] === undefined ? 'initial' : rStyle['xs'];\n    rStyle = reOrderResponsiveStyle(rStyle);\n    Object.keys(rStyle).forEach(key => {\n        styleInBreakpoint = (sjTheme.breakpoints[key as keyof SjBreakPoints] <= screenWidth) ?\n          rStyle[key as keyof ResponsiveStyle] :\n          styleInBreakpoint;\n    });\n    if(typeof styleInBreakpoint === 'number'){\n        styleInBreakpoint = sjTheme.spacing(styleInBreakpoint);\n    }\n    return styleInBreakpoint;\n}\n\n/**\n * Reorders responsive style to ensure 'xs' is always first for priority.\n * @param {ResponsiveStyle} responsiveStyle - The original responsive style object.\n * @returns {ResponsiveStyle} - The reordered responsive style object.\n */\nconst reOrderResponsiveStyle = (responsiveStyle: ResponsiveStyle): ResponsiveStyle => {\n    let reorderedValue: ResponsiveStyle = { xs: responsiveStyle['xs'] };\n    Object.keys(responsiveStyle).forEach(key => {\n        if (key !== 'xs') {\n            reorderedValue[key  as keyof ResponsiveStyle] = responsiveStyle[key as keyof ResponsiveStyle];\n        }\n    });\n    return reorderedValue;\n};\n\n// Mapping of shorthand style keys to their corresponding CSS properties.\nconst shorthandMappings: { [key: string]: keyof CSSStyleDeclaration } = {\n    // Padding and Margin\n    p: 'padding',\n    pt: 'paddingTop',\n    pr: 'paddingRight',\n    pb: 'paddingBottom',\n    pl: 'paddingLeft',\n    m: 'margin',\n    mt: 'marginTop',\n    mr: 'marginRight',\n    mb: 'marginBottom',\n    ml: 'marginLeft',\n\n    // Sizes\n    w: 'width',\n    h: 'height',\n    minW: 'minWidth',\n    minH: 'minHeight',\n    maxW: 'maxWidth',\n    maxH: 'maxHeight',\n\n    // Borders\n    b: 'border',\n    bt: 'borderTop',\n    br: 'borderRight',\n    bb: 'borderBottom',\n    bl: 'borderLeft',\n    bs: 'borderStyle',\n    bw: 'borderWidth',\n    bc: 'borderColor',\n    brad: 'borderRadius',\n\n    // Colors\n    bg: 'backgroundColor',\n    c: 'color',\n\n    // Flexbox\n    d: 'display',\n    fxDir: 'flexDirection',\n    fxWrap: 'flexWrap',\n    fxFlow: 'flexFlow',\n    fxJustify: 'justifyContent',\n    fxAItems: 'alignItems',\n    fxAContent: 'alignContent',\n    fxOrder: 'order',\n    fxGrow: 'flexGrow',\n    fxShrink: 'flexShrink',\n    fxBasis: 'flexBasis',\n    fxASelf: 'alignSelf',\n};\n\n/**\n * Determines if the given key is a custom shorthand key.\n * @param {string} key - The key to check.\n * @returns {boolean} - True if the key is a custom shorthand key, false otherwise.\n */\nconst isCustomShorthandKey = (key: string): key is keyof SjShorthandCustomStyle => {\n    return key === 'px' || key === 'py' || key === 'mx' || key === 'my' || key === 'bx' || key === 'by';\n}\n\n/**\n * Gets the CSS properties that correspond to the given custom shorthand key.\n * @param {keyof SjShorthandCustomStyle} key - The custom shorthand key.\n * @returns {Array<keyof CSSStyleDeclaration>} - The CSS properties that correspond to the given custom shorthand key.\n */\n\nfunction getCssPropertiesForCustomShorthand(key: keyof SjShorthandCustomStyle): Array<keyof CSSStyleDeclaration> {\n    switch (key) {\n        case 'px':\n            return ['paddingLeft', 'paddingRight'];\n        case 'py':\n            return ['paddingTop', 'paddingBottom'];\n        case 'mx':\n            return ['marginLeft', 'marginRight'];\n        case 'my':\n            return ['marginTop', 'marginBottom'];\n        case 'bx':\n            return ['borderLeft', 'borderRight'];\n        case 'by':\n            return ['borderTop', 'borderBottom'];\n\n    }\n}\n\n/**\n * Applies a custom shorthand style to the given element.\n * @param element\n * @param key\n * @param sjStyle\n * @param screenWidth\n * @param theme\n */\n\nfunction applySjCustomShorthand(element: HTMLElement, key: keyof SjShorthandCustomStyle, sjStyle: SjStyle, screenWidth: number, theme: SjTheme): void {\n  //let cssProperties: Array<keyof CSSStyleDeclaration>;\n  let cssProperties = getCssPropertiesForCustomShorthand(key);\n  let cssKey = key as keyof SjShorthandCustomStyle;\n  let value = sjStyle[cssKey];\n  cssProperties.forEach(cssProperty => {\n      const cssDeclaration: Partial<CSSStyleDeclaration> = {\n          [cssProperty]: typeof value === 'string' ? value\n            : typeof value === 'number' ? theme.spacing(value)\n              : getStyleByScreenWidth(value as ResponsiveStyle, theme, screenWidth)\n      };\n      applyCssStyle(element, cssDeclaration, theme);\n  });\n}\n\n/**\n * applies a Sjstyle to the given element.\n * @param element\n * @param key\n * @param sjStyle\n * @param screenWidth\n * @param theme\n */\nfunction applySjStyle(element: HTMLElement, key: keyof SjStyle, sjStyle: SjStyle, screenWidth: number, theme: SjTheme): void {\n    let cssKey = key as keyof CSSStyleDeclaration | keyof SjShorthandStyle;\n    let value = sjStyle[cssKey];\n    cssKey = shorthandMappings[cssKey] || cssKey;\n    const cssDeclaration: Partial<CSSStyleDeclaration>= {[cssKey]:\n          typeof value === 'string' ? value :\n            typeof value === 'number' ? theme.spacing(value) :\n              getStyleByScreenWidth(value as ResponsiveStyle, theme, screenWidth)\n    }\n    applyCssStyle(element, cssDeclaration, theme);\n}\n\nexport const applyResponsiveStyle = (element: HTMLElement, sjStyle: SjStyle, screenWidth: number, theme:SjTheme): void => {\n    if (typeof sjStyle === 'object' && sjStyle !== null) {\n        Object.keys(sjStyle).forEach(key => {\n            isCustomShorthandKey(key) ?\n              applySjCustomShorthand(element, key, sjStyle, screenWidth, theme) :\n              applySjStyle(element, key as keyof CSSStyleDeclaration | keyof SjShorthandStyle, sjStyle, screenWidth, theme)\n        });\n    }\n};\n\n/**\n * this is the last step in the process of applying styles to the element.\n * Applies a css style to the given html element.\n * @param element\n * @param styleValue\n * @param theme\n */\nconst applyCssStyle = (element: HTMLElement, styleValue: Partial<CSSStyleDeclaration>, theme:SjTheme): void => {\n    Object.keys(styleValue).forEach(key => {\n        const cssKey = key as keyof CSSStyleDeclaration;\n        // Skip read-only properties\n        if (cssKey === 'length' || cssKey === 'parentRule') {\n            return;\n        }\n        // Apply each style property to the element, using type assertion\n        let value = styleValue[cssKey];\n        if (value !== undefined) {\n            value = resolveThemeColor(value as string, theme);\n            (element.style as any)[cssKey] = value;\n        }\n    });\n};\n\n/**\n * Resolves a theme color value to a specific color.\n * @param value\n * @param theme\n */\nconst resolveThemeColor = (value: string, theme: SjTheme): string => {\n    const themeKeyParts = value.split('.');\n    if (themeKeyParts.length === 1 && value in theme.palette || value in theme.colors) {\n        // If only 'primary', 'secondary', etc., use the '.main' shade by default\n       // return theme.palette[value as keyof typeof theme.palette].main;\n        if (value in theme.colors) {\n            const colorObject = theme.colors[value as keyof typeof theme.colors];\n            return typeof colorObject === 'object' ? colorObject['500'] : colorObject;\n        }\n\n        // If only 'primary', 'secondary', etc., use the '.main' shade by default\n        if (value in theme.palette) {\n            return theme.palette[value as keyof typeof theme.palette].main;\n        }\n    } else if (themeKeyParts.length === 2) {\n        // For specific shades like 'primary.light'\n        const colorCategory = themeKeyParts[0];\n        const colorShade = themeKeyParts[1];\n\n        if (colorCategory in theme.colors) {\n            const colorObject = theme.colors[colorCategory as keyof typeof theme.colors];\n            return typeof colorObject === 'object' ? colorObject[colorShade as keyof typeof colorObject] : colorObject;\n        }\n\n        if (colorCategory in theme.palette) {\n            const colorObject = theme.palette[colorCategory as keyof typeof theme.palette];\n            return colorObject[colorShade as keyof typeof colorObject] || value;\n        }\n    }\n\n    // Return the original value if it doesn't match the theme structure\n    return value;\n}\n\n/**\n *  applies typography styles to the given html element.\n * @param el\n * @param theme\n * @param screenWidth\n */\nexport const applyTypography = (el: HTMLElement, theme: SjTheme, screenWidth: number) => {\n    // Loop through each typography style in the theme\n    if(theme.typography[el.nodeName as keyof typeof theme.typography]){\n\n        Object.keys(theme.typography).forEach(key => {\n            // Set the default style to the default typography style\n            const jss: SjStyle = { marginBlockStart: '0', marginBlockEnd: '0', ...theme.typography.default };\n            // Get the specific style for the current element if it exists\n            const specificStyle: SjStyle | undefined = theme.typography[key as keyof typeof theme.typography];\n            // If the current element matches the current typography style, apply the style to the element\n\n            if (el.nodeName === key && specificStyle) {\n\n                applyResponsiveStyle(el, { ...jss, ...specificStyle }, screenWidth, theme);\n            }\n        });\n    }\n};\n","import {Injectable, computed, signal, OnDestroy, WritableSignal, Inject, PLATFORM_ID, OnInit} from '@angular/core';\nimport {SjBreakPoints, SjColors, SjPalette, SjTypography} from '../models/interfaces';\nimport {getCurrentBreakpoint} from \"../core/core-methods\";\nimport {isPlatformBrowser} from \"@angular/common\";\n@Injectable({\n  providedIn: 'root'\n})\nexport class SjThemeService implements OnInit, OnDestroy{\n\n  // Signals to manage reactive state for breakpoints and theme configurations\n  breakpoints = signal({xs: 0, sm: 600, md: 960, lg: 1280, xl: 1920, xxl: 2560});\n  typography: WritableSignal<SjTypography> = signal({\n    default: {fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif', fontSize: 1, lineHeight: 1.6},\n    H1: {fontSize: {xs: 2.5, md: 3.5}, fontWeight: '600', lineHeight: 4},\n    H2: {fontSize: {xs: 2, md: 3}, fontWeight: '600', lineHeight: 3.5},\n    H3: {fontSize: {xs: 1.75, md: 2.5}, fontWeight: '600', lineHeight: 3},\n    H4: {fontSize: {xs: 1.5, md: 2}, fontWeight: '600', lineHeight: 2},\n    H5: {fontSize: {xs: 1.25, md: 1.75}, fontWeight: '600', lineHeight: 2},\n    H6: {fontSize: {xs: 1, md: 1.25}, fontWeight: '600', lineHeight: 1.5},\n    P: {fontSize: 1, fontWeight: 'normal', lineHeight: 1.4},\n    SPAN: {fontSize: 0.9, fontWeight: 'normal', lineHeight: 1.2},\n    STRONG: {fontSize: 1, fontWeight: 'bold', lineHeight: 1.2},\n    BODY: {fontSize: 1, fontWeight: 'normal', lineHeight: 1.2},\n    CAPTION: {fontSize: 0.8, fontWeight: 'normal', lineHeight: 1.2},\n  });\n  colors = signal({\n    blue: {\n    50: '#E3F2FD',\n    100: '#BBDEFB',\n    200: '#90CAF9',\n    300: '#64B5F6',\n    400: '#42A5F5',\n    500: '#3498DB',\n    600: '#2E86C1',\n    700: '#1976D2',\n    800: '#1565C0',\n    900: '#0D47A1',\n    contrast: '#c26d29'\n  },\n    indigo: {\n    50: '#E8EAF6',\n    100: '#C5CAE9',\n    200: '#9FA8DA',\n    300: '#7986CB',\n    400: '#5C6BC0',\n    500: '#3F51B5',\n    600: '#3949AB',\n    700: '#303F9F',\n    800: '#283593',\n    900: '#1A237E',\n    contrast: '#f59242'\n  },\n    purple: {\n    50: '#F3E5F5',\n    100: '#E1BEE7',\n    200: '#CE93D8',\n    300: '#BA68C8',\n    400: '#AB47BC',\n    500: '#9C27B0',\n    600: '#8E24AA',\n    700: '#7B1FA2',\n    800: '#6A1B9A',\n    900: '#4A148C',\n    contrast: '#f59242'\n  },\n    pink: {\n      50: '#FCE4EC',\n      100: '#F8BBD0',\n      200: '#F48FB1',\n      300: '#F06292',\n      400: '#EC407A',\n      500: '#E91E63',\n      600: '#D81B60',\n      700: '#C2185B',\n      800: '#AD1457',\n      900: '#880E4F',\n      contrast: '#f59242'\n    },\n    red: {\n      50: '#FFEBEE',\n      100: '#FFCDD2',\n      200: '#EF9A9A',\n      300: '#E57373',\n      400: '#EF5350',\n      500: '#E74C3C',\n      600: '#E53935',\n      700: '#D32F2F',\n      800: '#C62828',\n      900: '#771010',\n      contrast: '#f59242'\n    },\n    orange: {\n      50: '#FFF3E0',\n      100: '#FFE0B2',\n      200: '#FFCC80',\n      300: '#FFB74D',\n      400: '#FFA726',\n      500: '#F39C12',\n      600: '#FB8C00',\n      700: '#F57C00',\n      800: '#EF6C00',\n      900: '#bb4600',\n      contrast: '#f59242'\n    },\n    yellow: {\n      50: '#FFFDE7',\n      100: '#FFF9C4',\n      200: '#FFF59D',\n      300: '#FFF176',\n      400: '#FFEE58',\n      500: '#FFEB3B',\n      600: '#FDD835',\n      700: '#FBC02D',\n      800: '#F9A825',\n      900: '#F57F17',\n      contrast: '#f59242'\n    },\n    green: {\n      50: '#E8F5E9',\n      100: '#C8E6C9',\n      200: '#A5D6A7',\n      300: '#81C784',\n      400: '#66BB6A',\n      500: '#4CAF50',\n      600: '#43A047',\n      700: '#388E3C',\n      800: '#2E7D32',\n      900: '#1B5E20',\n      contrast: '#f59242'\n    },\n    teal: {\n      50: '#E0F2F1',\n      100: '#B2DFDB',\n      200: '#80CBC4',\n      300: '#4DB6AC',\n      400: '#26A69A',\n      500: '#009688',\n      600: '#00897B',\n      700: '#00796B',\n      800: '#00695C',\n      900: '#004D40',\n      contrast: '#f59242'\n    },\n    cyan: {\n      50: '#E0F7FA',\n      100: '#B2EBF2',\n      200: '#80DEEA',\n      300: '#4DD0E1',\n      400: '#26C6DA',\n      500: '#00BCD4',\n      600: '#00ACC1',\n      700: '#0097A7',\n      800: '#00838F',\n      900: '#006064',\n      contrast: '#f59242'\n    },\n    gray: {\n      50: '#FAFAFA',\n      100: '#F5F5F5',\n      200: '#EEEEEE',\n      300: '#E0E0E0',\n      400: '#BDBDBD',\n      500: '#9E9E9E',\n      600: '#757575',\n      700: '#616161',\n      800: '#424242',\n      900: '#212121',\n      contrast: '#f59242'\n    },\n    black: '#000000',\n    white: '#FFFFFF'\n  });\n\n  // Palette signal for managing theme's color palette\n  private palette = signal({\n      primary: {\n        main: this.colors().blue[500],\n        light: this.colors().blue[300],\n        dark: this.colors().blue[700],\n        contrast: this.colors().yellow[500]\n      },\n      secondary: {\n        main: this.colors().orange[500],\n        light: this.colors().orange[300],\n        dark: this.colors().orange[700],\n        contrast: this.colors().blue[300],\n      },\n      tertiary: {\n        main: this.colors().red[500],\n        light: this.colors().red[300],\n        dark: this.colors().red[700],\n        contrast: this.colors().white,\n      },\n      success: {\n        main: this.colors().green[500],\n        light: this.colors().green[300],\n        dark: this.colors().green[700],\n        contrast: this.colors().gray[50],\n      },\n      info: {\n        main: this.colors().cyan[500],\n        light: this.colors().cyan[300],\n        dark: this.colors().cyan[700],\n        contrast: this.colors().gray[50],\n      },\n      warning: {\n        main: this.colors().orange[500],\n        light: this.colors().orange[300],\n        dark: this.colors().orange[700],\n        contrast: this.colors().gray[50],\n      },\n      error: {\n        main: this.colors().red[500],\n        light: this.colors().red[300],\n        dark: this.colors().red[700],\n        contrast: this.colors().gray[50],\n      },\n      dark: {\n        main: this.colors().gray[800],\n        light: this.colors().gray[600],\n        dark: this.colors().black,\n        contrast: this.colors().gray[50],\n      },\n      neutral: {\n        main: this.colors().gray[500],\n        light: this.colors().gray[300],\n        dark: this.colors().gray[700],\n        contrast: this.colors().gray[50],\n      },\n      light: {\n        main: this.colors().gray[200],\n        light: this.colors().gray[50],\n        dark: this.colors().gray[400],\n        contrast: this.colors().gray[900],\n      }\n    })\n\n  spacing = signal((factor: number): string => `${factor}rem`);\n\n  sjTheme = computed(() => {\n    return {\n      breakpoints: this.breakpoints(),\n      spacing: this.spacing(),\n      typography: this.typography(),\n      colors: this.colors(),\n      palette: this.palette(),\n    }\n  });\n\n  // Signal to track the current breakpoint\n  currentBreakpoint = signal('xs');\n\n  /**\n   * Constructor to set up event listeners for window resize and load events.\n   * This is necessary to update the theme according to the window size.\n   */\n\n  isPlatformBrowser = signal(isPlatformBrowser(this.platformId) && typeof window !== 'undefined');\n  currentWidth = computed(() => this.isPlatformBrowser() ? window.innerWidth : 1024);\n\n  constructor(@Inject(PLATFORM_ID) private platformId: Object) {}\n\n  ngOnInit() {\n    if(this.isPlatformBrowser()){\n      window.addEventListener('resize', () => this.updateRender());\n      window.addEventListener('load', () => this.updateRender());\n    }\n    else{\n      this.updateRender();\n    }\n  }\n\n  /**\n   * Updates the rendering based on the current window size.\n   * This function sets the current breakpoint according to the window width.\n   */\n  updateRender(){\n    this.currentBreakpoint.set(getCurrentBreakpoint(this.sjTheme().breakpoints, this.currentWidth()));\n  }\n\n  /**\n   * Sets a new color for the theme.\n   * @param colors\n   */\n  public setColors(colors: Partial<SjColors>) {\n    this.colors.set({ ...this.colors(), ...colors });  }\n\n  /**\n   * Sets a new spacing scale.\n   * @param newScale Function that defines the spacing scale.\n   */\n  public setSpacing(newScale: (factor: number) => string): void {\n    this.spacing.set(newScale);\n  }\n\n\n  /**\n   * Sets a new palette for the theme.\n   * @param palette Partial configuration for the theme's palette.\n   */\n  public setPalette(palette: Partial<SjPalette>) {\n    this.palette.set({ ...this.palette(), ...palette });  }\n\n  /**\n   * Sets new breakpoints for the theme.\n   * @param breakpoints Partial configuration for the theme's breakpoints.\n   */\n  public setBreakpoints(breakpoints: Partial<SjBreakPoints>) {\n    this.breakpoints.set({...this.breakpoints(), ...breakpoints});\n  }\n\n  /**\n   * Sets new typography for the theme.\n   * @param typo Partial configuration for the theme's typography.\n   */\n  public setTypography(typo: Partial<SjTypography>) {\n    this.typography.set({ ...this.typography(), ...typo});  }\n\n  /**\n   * Lifecycle hook that is called when the service is destroyed.\n   * Removes event listeners for resize and load to prevent memory leaks.\n   */\n  ngOnDestroy() {\n    if(this.isPlatformBrowser()){\n      window.removeEventListener('resize', this.updateRender);\n      window.removeEventListener('load', this.updateRender);\n    }\n  }\n\n}\n\n\n\n\n","import {\n  Directive,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ViewContainerRef,\n  effect,\n} from \"@angular/core\";\nimport { applyResponsiveStyle, applyTypography } from \"../core/core-methods\";\nimport { SjStyle } from \"../models/interfaces\";\nimport { SjThemeService } from \"../services\";\n\n/**\n * Directive for applying dynamic styles, implementing SJSS (Super JavaScript Stylesheets) principles.\n * This directive handles responsive and typography styles dynamically.\n */\n@Directive({\n  standalone: true, // Marks this directive as standalone, not requiring an NgModule.\n  selector: '[sj]' // The selector to be used for applying this directive in templates.\n})\nexport class SjDirective implements OnChanges {\n  /**\n   * The style object or array of style objects to be applied.\n   * It can be a single style object or an array of style objects for responsive design.\n   */\n  @Input() sj: SjStyle | SjStyle[] | undefined;\n\n  /**\n   * Constructs the SjDirective.\n   *\n   * @param vcr The ViewContainerRef provides access to the host element.\n   * @param sjt The SjThemeService for accessing theme-related functionalities.\n   */\n  constructor(public vcr: ViewContainerRef, private sjt: SjThemeService) {\n    // Initialize effect to re-render styles when the current breakpoint changes.\n\n    effect(() => {\n      if (this.sjt.currentBreakpoint()) {\n        this.renderStyles();\n      }\n    });\n  }\n\n  /**\n   * Renders the styles on the host element.\n   * This method applies both typography and responsive styles.\n   */\n  private renderStyles(): void {\n    // Apply typography styles based on the current theme and window width.\n    applyTypography(this.vcr.element.nativeElement, this.sjt.sjTheme(), this.sjt.currentWidth());\n\n    // Check if 'sj' input is defined.\n    if (this.sj) {\n      // Apply responsive styles. If 'sj' is an array, loop through each style object.\n      if (Array.isArray(this.sj)) {\n        this.sj.forEach(style =>\n          applyResponsiveStyle(\n            this.vcr.element.nativeElement,\n            style as SjStyle,\n            this.sjt.currentWidth(),\n            this.sjt.sjTheme()\n          )\n        );\n      } else {\n        applyResponsiveStyle(\n          this.vcr.element.nativeElement,\n          this.sj as SjStyle,\n          this.sjt.currentWidth(),\n          this.sjt.sjTheme()\n        );\n      }\n    }\n  }\n\n  /**\n   * Lifecycle hook that is called when any data-bound property of a directive changes.\n   * @param changes Object of changes.\n   */\n  ngOnChanges(changes: SimpleChanges): void {\n    // Re-render styles when any @Input properties change.\n      this.renderStyles();\n  }\n}\n","/*\n * Public API Surface of super-jss\n */\nexport * from './lib/index';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SjThemeService"],"mappings":"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"}