Provides a managed dynamic style sheet / element useful in configuring global CSS variables. When creating an instance of TJSStyleManager you must provide a "document key" / string for the style element added. The style element can be accessed via document[docKey].

Instances of TJSStyleManager can also be versioned by supplying a positive integer greater than or equal to 1 via the 'version' option. This version number is assigned to the associated style element. When a TJSStyleManager instance is created and there is an existing instance with a version that is lower than the current instance all CSS rules are removed letting the higher version take precedence. This isn't a perfect system and requires thoughtful construction of CSS variables exposed, but allows multiple independently compiled TRL packages to load the latest CSS variables. It is recommended to always set overwrite option of TJSStyleManager.setProperty and TJSStyleManager.setProperties to false when loading initial values.

Constructors

  • Parameters

    • Optionalopts: {
          document?: Document;
          id: string;
          layerName?: string;
          rules?: { [key: string]: string };
          version?: number;
      }

      Options.

      • Optionaldocument?: Document

        Target document to load styles into.

      • id: string

        Required CSS ID providing a link to a specific style sheet element.

      • OptionallayerName?: string

        Optional CSS layer name defining the top level CSS rule.

      • Optionalrules?: { [key: string]: string }

        Optional CSS Rules configuration.

      • Optionalversion?: number

        An integer representing the version / level of styles being managed.

    Returns TJSStyleManager

Accessors

  • get version(): number
  • Returns number

    Returns the version of this instance.

Methods

  • Provides a copy constructor to duplicate an existing TJSStyleManager instance into a new document.

    Note: This is used to support the PopOut module.

    Parameters

    • Optionaldocument: Document

      Target browser document to clone into.

    Returns TJSStyleManager

    New style manager instance or undefined if not connected.

  • Retrieves an associated CSSRuleManager by name.

    Parameters

    • ruleName: string

      Rule name.

    Returns CSSRuleManager

    Associated rule manager for given name or undefined if the rule name is not defined or manager is unconnected.

  • Returns whether a CSSRuleManger exists for the given name.

    Parameters

    • ruleName: string

      Rule name.

    Returns boolean

    Is there a CSS rule manager with the given name.

  • Determines if this TJSStyleManager is still connected / available.

    Returns boolean

    Is TJSStyleManager connected.