{"version":3,"file":"jss.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/is-in-browser/dist/module.js","../../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../src/utils/cloneStyle.js","../src/utils/createRule.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../src/utils/toCssValue.js","../src/utils/toCss.js","../src/utils/escape.js","../src/plugins/styleRule.js","../src/plugins/conditionalRule.js","../src/plugins/keyframesRule.js","../src/plugins/keyframeRule.js","../src/plugins/fontFaceRule.js","../src/plugins/viewportRule.js","../src/plugins/simpleRule.js","../src/plugins/index.js","../src/RuleList.js","../src/StyleSheet.js","../src/PluginsRegistry.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../src/SheetsRegistry.js","../src/sheets.js","../src/utils/globalThis.js","../src/utils/moduleId.js","../src/utils/createGenerateId.js","../src/DomRenderer.js","../src/Jss.js","../src/utils/getDynamicStyles.js","../src/SheetsManager.js","../src/index.js"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import type {JssStyle} from '../types'\n\nconst plainObjectConstrurctor = {}.constructor\n\nexport default function cloneStyle(style: JssStyle): JssStyle {\n if (style == null || typeof style !== 'object') return style\n if (Array.isArray(style)) return style.map(cloneStyle)\n if (style.constructor !== plainObjectConstrurctor) return style\n\n const newStyle = {}\n for (const name in style) {\n newStyle[name] = cloneStyle(style[name])\n }\n return newStyle\n}\n","// @flow\nimport warning from 'tiny-warning'\nimport type {Rule, RuleOptions, JssStyle} from '../types'\nimport cloneStyle from './cloneStyle'\n\n/**\n * Create a rule instance.\n */\nexport default function createRule(\n name: string = 'unnamed',\n decl: JssStyle,\n options: RuleOptions\n): Rule | null {\n const {jss} = options\n const declCopy = cloneStyle(decl)\n\n const rule = jss.plugins.onCreateRule(name, declCopy, options)\n if (rule) return rule\n\n // It is an at-rule and it has no instance.\n if (name[0] === '@') {\n warning(false, `[JSS] Unknown rule ${name}`)\n }\n\n return null\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","// @flow\n\nimport type {FixMeAny} from '../types'\n\nconst join = (value, by) => {\n let result = ''\n for (let i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break\n if (result) result += by\n result += value[i]\n }\n return result\n}\n\ntype ToCssValue = (FixMeAny, boolean | void) => string\n\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\nconst toCssValue: ToCssValue = (value, ignoreImportant = false) => {\n if (!Array.isArray(value)) return value\n\n let cssValue = ''\n\n // Support space separated values via `[['5px', '10px']]`.\n if (Array.isArray(value[0])) {\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '!important') break\n if (cssValue) cssValue += ', '\n cssValue += join(value[i], ' ')\n }\n } else cssValue = join(value, ', ')\n\n // Add !important, because it was ignored.\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important'\n }\n\n return cssValue\n}\n\nexport default toCssValue\n","// @flow\nimport toCssValue from './toCssValue'\nimport type {ToCssOptions, JssStyle} from '../types'\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str: string, indent: number): string {\n let result = ''\n for (let index = 0; index < indent; index++) result += ' '\n return result + str\n}\n\n/**\n * Converts a Rule to CSS string.\n */\nexport default function toCss(\n selector?: string,\n style: JssStyle,\n options: ToCssOptions = ({}: any)\n): string {\n let result = ''\n\n if (!style) return result\n\n let {indent = 0} = options\n const {fallbacks} = style\n\n if (selector) indent++\n\n // Apply fallbacks first.\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (let index = 0; index < fallbacks.length; index++) {\n const fallback = fallbacks[index]\n for (const prop in fallback) {\n const value = fallback[prop]\n if (value != null) {\n if (result) result += '\\n'\n result += indentStr(`${prop}: ${toCssValue(value)};`, indent)\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (const prop in fallbacks) {\n const value = fallbacks[prop]\n if (value != null) {\n if (result) result += '\\n'\n result += indentStr(`${prop}: ${toCssValue(value)};`, indent)\n }\n }\n }\n }\n\n for (const prop in style) {\n const value = style[prop]\n if (value != null && prop !== 'fallbacks') {\n if (result) result += '\\n'\n result += indentStr(`${prop}: ${toCssValue(value)};`, indent)\n }\n }\n\n // Allow empty style in this case, because properties will be added dynamically.\n if (!result && !options.allowEmpty) return result\n\n // When rule is being stringified before selector was defined.\n if (!selector) return result\n\n indent--\n\n if (result) result = `\\n${result}\\n`\n\n return indentStr(`${selector} {${result}`, indent) + indentStr('}', indent)\n}\n","const escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g\nconst nativeEscape = typeof CSS !== 'undefined' && CSS.escape\n\nexport default str => (nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1'))\n","// @flow\nimport warning from 'tiny-warning'\nimport toCss from '../utils/toCss'\nimport toCssValue from '../utils/toCssValue'\nimport escape from '../utils/escape'\nimport type {\n CSSStyleRule,\n HTMLElementWithStyleMap,\n ToCssOptions,\n RuleOptions,\n UpdateOptions,\n Renderer as RendererInterface,\n JssStyle,\n JssValue,\n BaseRule\n} from '../types'\n\nexport class BaseStyleRule implements BaseRule {\n type: string = 'style'\n\n key: string\n\n isProcessed: boolean = false\n\n style: JssStyle\n\n renderer: RendererInterface | null\n\n renderable: ?Object\n\n options: RuleOptions\n\n constructor(key: string, style: JssStyle, options: RuleOptions) {\n const {sheet, Renderer} = options\n this.key = key\n this.options = options\n this.style = style\n if (sheet) this.renderer = sheet.renderer\n else if (Renderer) this.renderer = new Renderer()\n }\n\n /**\n * Get or set a style property.\n */\n prop(name: string, value?: JssValue, options?: UpdateOptions): this | string {\n // It's a getter.\n if (value === undefined) return this.style[name]\n\n // Don't do anything if the value has not changed.\n const force = options ? options.force : false\n if (!force && this.style[name] === value) return this\n\n let newValue = value\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this)\n }\n\n const isEmpty = newValue == null || newValue === false\n const isDefined = name in this.style\n\n // Value is empty and wasn't defined before.\n if (isEmpty && !isDefined && !force) return this\n\n // We are going to remove this value.\n const remove = isEmpty && isDefined\n\n if (remove) delete this.style[name]\n else this.style[name] = newValue\n\n // Renderable is defined if StyleSheet option `link` is true.\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name)\n else this.renderer.setProperty(this.renderable, name, newValue)\n return this\n }\n\n const {sheet} = this.options\n if (sheet && sheet.attached) {\n warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".')\n }\n return this\n }\n}\n\nexport class StyleRule extends BaseStyleRule {\n selectorText: string\n\n id: ?string\n\n renderable: ?CSSStyleRule\n\n constructor(key: string, style: JssStyle, options: RuleOptions) {\n super(key, style, options)\n const {selector, scoped, sheet, generateId} = options\n if (selector) {\n this.selectorText = selector\n } else if (scoped !== false) {\n this.id = generateId(this, sheet)\n this.selectorText = `.${escape(this.id)}`\n }\n }\n\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n set selector(selector: string): void {\n if (selector === this.selectorText) return\n\n this.selectorText = selector\n\n const {renderer, renderable} = this\n\n if (!renderable || !renderer) return\n\n const hasChanged = renderer.setSelector(renderable, selector)\n\n // If selector setter is not implemented, rerender the rule.\n if (!hasChanged) {\n renderer.replaceRule(renderable, this)\n }\n }\n\n /**\n * Get selector string.\n */\n get selector(): string {\n return this.selectorText\n }\n\n /**\n * Apply rule to an element inline.\n */\n applyTo(renderable: HTMLElementWithStyleMap): this {\n const {renderer} = this\n if (renderer) {\n const json = this.toJSON()\n for (const prop in json) {\n renderer.setProperty(renderable, prop, json[prop])\n }\n }\n return this\n }\n\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n toJSON(): Object {\n const json = {}\n for (const prop in this.style) {\n const value = this.style[prop]\n if (typeof value !== 'object') json[prop] = value\n else if (Array.isArray(value)) json[prop] = toCssValue(value)\n }\n return json\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options?: ToCssOptions): string {\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const opts = link ? {...options, allowEmpty: true} : options\n return toCss(this.selectorText, this.style, opts)\n }\n}\n\nexport default {\n onCreateRule(name: string, style: JssStyle, options: RuleOptions): StyleRule | null {\n if (name[0] === '@' || (options.parent && options.parent.type === 'keyframes')) {\n return null\n }\n return new StyleRule(name, style, options)\n }\n}\n","// @flow\nimport RuleList from '../RuleList'\nimport type {CSSMediaRule, Rule, RuleOptions, ToCssOptions, JssStyle, ContainerRule} from '../types'\n\nconst defaultToStringOptions = {\n indent: 1,\n children: true\n}\n\nconst atRegExp = /@([\\w-]+)/\n\n/**\n * Conditional rule for @media, @supports\n */\nexport class ConditionalRule implements ContainerRule {\n type: string = 'conditional'\n\n at: string\n\n key: string\n\n query: string\n\n rules: RuleList\n\n options: RuleOptions\n\n isProcessed: boolean = false\n\n renderable: ?CSSMediaRule\n\n constructor(key: string, styles: Object, options: RuleOptions) {\n this.key = key\n const atMatch = key.match(atRegExp)\n this.at = atMatch ? atMatch[1] : 'unknown'\n // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n this.query = options.name || `@${this.at}`\n this.options = options\n this.rules = new RuleList({...options, parent: this})\n\n for (const name in styles) {\n this.rules.add(name, styles[name])\n }\n\n this.rules.process()\n }\n\n /**\n * Get a rule.\n */\n getRule(name: string): Rule {\n return this.rules.get(name)\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule: Rule): number {\n return this.rules.indexOf(rule)\n }\n\n /**\n * Create and register rule, run plugins.\n */\n addRule(name: string, style: JssStyle, options?: RuleOptions): Rule | null {\n const rule = this.rules.add(name, style, options)\n if (!rule) return null\n this.options.jss.plugins.onProcessRule(rule)\n return rule\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options?: ToCssOptions = defaultToStringOptions): string {\n if (options.indent == null) options.indent = defaultToStringOptions.indent\n if (options.children == null) options.children = defaultToStringOptions.children\n if (options.children === false) {\n return `${this.query} {}`\n }\n const children = this.rules.toString(options)\n return children ? `${this.query} {\\n${children}\\n}` : ''\n }\n}\n\nconst keyRegExp = /@media|@supports\\s+/\n\nexport default {\n onCreateRule(key: string, styles: JssStyle, options: RuleOptions): ConditionalRule | null {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null\n }\n}\n","// @flow\nimport warning from 'tiny-warning'\nimport RuleList from '../RuleList'\nimport type {\n CSSKeyframesRule,\n JssStyle,\n RuleOptions,\n ToCssOptions,\n ContainerRule,\n KeyframesMap,\n Plugin\n} from '../types'\nimport escape from '../utils/escape'\n\nconst defaultToStringOptions = {\n indent: 1,\n children: true\n}\n\nconst nameRegExp = /@keyframes\\s+([\\w-]+)/\n\n/**\n * Rule for @keyframes\n */\nexport class KeyframesRule implements ContainerRule {\n type: string = 'keyframes'\n\n at: string = '@keyframes'\n\n key: string\n\n name: string\n\n id: string\n\n rules: RuleList\n\n options: RuleOptions\n\n isProcessed: boolean = false\n\n renderable: ?CSSKeyframesRule\n\n constructor(key: string, frames: Object, options: RuleOptions) {\n const nameMatch = key.match(nameRegExp)\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1]\n } else {\n this.name = 'noname'\n warning(false, `[JSS] Bad keyframes name ${key}`)\n }\n this.key = `${this.type}-${this.name}`\n this.options = options\n const {scoped, sheet, generateId} = options\n this.id = scoped === false ? this.name : escape(generateId(this, sheet))\n this.rules = new RuleList({...options, parent: this})\n\n for (const name in frames) {\n this.rules.add(name, frames[name], {\n ...options,\n parent: this\n })\n }\n\n this.rules.process()\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options?: ToCssOptions = defaultToStringOptions): string {\n if (options.indent == null) options.indent = defaultToStringOptions.indent\n if (options.children == null) options.children = defaultToStringOptions.children\n if (options.children === false) {\n return `${this.at} ${this.id} {}`\n }\n let children = this.rules.toString(options)\n if (children) children = `\\n${children}\\n`\n return `${this.at} ${this.id} {${children}}`\n }\n}\n\nconst keyRegExp = /@keyframes\\s+/\n\nconst refRegExp = /\\$([\\w-]+)/g\n\nconst findReferencedKeyframe = (val, keyframes) => {\n if (typeof val === 'string') {\n return val.replace(refRegExp, (match, name) => {\n if (name in keyframes) {\n return keyframes[name]\n }\n\n warning(false, `[JSS] Referenced keyframes rule \"${name}\" is not defined.`)\n\n return match\n })\n }\n\n return val\n}\n\n/**\n * Replace the reference for a animation name.\n */\nconst replaceRef = (style: JssStyle, prop: string, keyframes: KeyframesMap) => {\n const value = style[prop]\n const refKeyframe = findReferencedKeyframe(value, keyframes)\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe\n }\n}\n\nconst plugin: Plugin = {\n onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp.test(key)\n ? new KeyframesRule(key, frames, options)\n : null\n },\n\n // Animation name ref replacer.\n onProcessStyle: (style, rule, sheet) => {\n if (rule.type !== 'style' || !sheet) return style\n\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes)\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes)\n return style\n },\n\n onChangeValue(val, prop, rule) {\n const {sheet} = rule.options\n\n if (!sheet) {\n return val\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes)\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes)\n default:\n return val\n }\n }\n}\n\nexport default plugin\n","// @flow\nimport toCss from '../utils/toCss'\nimport type {JssStyle, RuleOptions, ToCssOptions, CSSKeyframeRule} from '../types'\nimport {BaseStyleRule} from './styleRule'\n\nexport class KeyframeRule extends BaseStyleRule {\n renderable: ?CSSKeyframeRule\n\n /**\n * Generates a CSS string.\n */\n toString(options?: ToCssOptions): string {\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const opts = link ? {...options, allowEmpty: true} : options\n return toCss(this.key, this.style, opts)\n }\n}\n\nexport default {\n onCreateRule(key: string, style: JssStyle, options: RuleOptions): KeyframeRule | null {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options)\n }\n return null\n }\n}\n","// @flow\nimport toCss from '../utils/toCss'\nimport type {CSSFontFaceRule, RuleOptions, JssStyle, ToCssOptions, BaseRule} from '../types'\n\nexport class FontFaceRule implements BaseRule {\n type: string = 'font-face'\n\n at: string = '@font-face'\n\n key: string\n\n style: JssStyle\n\n options: RuleOptions\n\n isProcessed: boolean = false\n\n renderable: ?CSSFontFaceRule\n\n constructor(key: string, style: JssStyle, options: RuleOptions) {\n this.key = key\n this.style = style\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options?: ToCssOptions): string {\n if (Array.isArray(this.style)) {\n let str = ''\n for (let index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index])\n if (this.style[index + 1]) str += '\\n'\n }\n return str\n }\n\n return toCss(this.at, this.style, options)\n }\n}\n\nconst keyRegExp = /@font-face/\n\nexport default {\n onCreateRule(key: string, style: JssStyle, options: RuleOptions): FontFaceRule | null {\n return keyRegExp.test(key) ? new FontFaceRule(key, style, options) : null\n }\n}\n","// @flow\nimport toCss from '../utils/toCss'\nimport type {CSSViewportRule, RuleOptions, JssStyle, ToCssOptions, BaseRule} from '../types'\n\nexport class ViewportRule implements BaseRule {\n type: string = 'viewport'\n\n at: string = '@viewport'\n\n key: string\n\n style: JssStyle\n\n options: RuleOptions\n\n isProcessed: boolean = false\n\n renderable: ?CSSViewportRule\n\n constructor(key: string, style: JssStyle, options: RuleOptions) {\n this.key = key\n this.style = style\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options?: ToCssOptions): string {\n return toCss(this.key, this.style, options)\n }\n}\n\nexport default {\n onCreateRule(key: string, style: JssStyle, options: RuleOptions): ViewportRule | null {\n return key === '@viewport' || key === '@-ms-viewport'\n ? new ViewportRule(key, style, options)\n : null\n }\n}\n","// @flow\nimport type {\n CSSCharsetRule,\n CSSImportRule,\n CSSNamespaceRule,\n RuleOptions,\n JssStyle,\n ToCssOptions,\n BaseRule\n} from '../types'\n\nexport class SimpleRule implements BaseRule {\n type: string = 'simple'\n\n key: string\n\n value: string | Array\n\n options: RuleOptions\n\n isProcessed: boolean = false\n\n renderable: ?CSSCharsetRule | CSSImportRule | CSSNamespaceRule\n\n constructor(key: string, value: string, options: RuleOptions) {\n this.key = key\n this.value = value\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n toString(options?: ToCssOptions): string {\n if (Array.isArray(this.value)) {\n let str = ''\n for (let index = 0; index < this.value.length; index++) {\n str += `${this.key} ${this.value[index]};`\n if (this.value[index + 1]) str += '\\n'\n }\n return str\n }\n\n return `${this.key} ${this.value};`\n }\n}\n\nconst keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n}\n\nexport default {\n onCreateRule(key: string, value: JssStyle, options: RuleOptions): SimpleRule | null {\n return key in keysMap ? new SimpleRule(key, value, options) : null\n }\n}\n","// @flow\nimport pluginStyleRule, {StyleRule} from './styleRule'\nimport pluginConditionalRule, {ConditionalRule} from './conditionalRule'\nimport pluginKeyframesRule, {KeyframesRule} from './keyframesRule'\nimport pluginKeyframeRule, {KeyframeRule} from './keyframeRule'\nimport pluginFontFaceRule, {FontFaceRule} from './fontFaceRule'\nimport pluginViewportRule, {ViewportRule} from './viewportRule'\nimport pluginSimpleRule, {SimpleRule} from './simpleRule'\n\nexport const plugins = [\n pluginStyleRule,\n pluginConditionalRule,\n pluginKeyframesRule,\n pluginKeyframeRule,\n pluginFontFaceRule,\n pluginViewportRule,\n pluginSimpleRule\n]\n\nexport {\n StyleRule,\n ConditionalRule,\n KeyframesRule,\n KeyframeRule,\n FontFaceRule,\n ViewportRule,\n SimpleRule\n}\n","// @flow\nimport createRule from './utils/createRule'\nimport {StyleRule, KeyframesRule} from './plugins/index'\nimport type {\n RuleListOptions,\n ToCssOptions,\n Rule,\n RuleOptions,\n JssStyle,\n Classes,\n KeyframesMap,\n UpdateArguments,\n UpdateOptions\n} from './types'\nimport escape from './utils/escape'\n\nconst defaultUpdateOptions = {\n process: true\n}\n\nconst forceUpdateOptions = {\n force: true,\n process: true\n}\n\n/**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\nexport default class RuleList {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n map: {[key: string]: Rule} = {}\n\n // Original styles object.\n raw: {[key: string]: JssStyle} = {}\n\n // Used to ensure correct rules order.\n index: Array = []\n\n counter: number = 0\n\n options: RuleListOptions\n\n classes: Classes\n\n keyframes: KeyframesMap\n\n constructor(options: RuleListOptions) {\n this.options = options\n this.classes = options.classes\n this.keyframes = options.keyframes\n }\n\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n add(name: string, decl: JssStyle, ruleOptions?: RuleOptions): Rule | null {\n const {parent, sheet, jss, Renderer, generateId, scoped} = this.options\n const options = {\n classes: this.classes,\n parent,\n sheet,\n jss,\n Renderer,\n generateId,\n scoped,\n name,\n keyframes: this.keyframes,\n selector: undefined,\n ...ruleOptions\n }\n\n // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n let key = name\n if (name in this.raw) {\n key = `${name}-d${this.counter++}`\n }\n\n // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n this.raw[key] = decl\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = `.${escape(this.classes[key])}`\n }\n\n const rule = createRule(key, decl, options)\n\n if (!rule) return null\n\n this.register(rule)\n\n const index = options.index === undefined ? this.index.length : options.index\n this.index.splice(index, 0, rule)\n\n return rule\n }\n\n /**\n * Get a rule.\n */\n get(name: string): Rule {\n return this.map[name]\n }\n\n /**\n * Delete a rule.\n */\n remove(rule: Rule): void {\n this.unregister(rule)\n delete this.raw[rule.key]\n this.index.splice(this.index.indexOf(rule), 1)\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule: Rule): number {\n return this.index.indexOf(rule)\n }\n\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n process(): void {\n const {plugins} = this.options.jss\n // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n this.index.slice(0).forEach(plugins.onProcessRule, plugins)\n }\n\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n register(rule: Rule): void {\n this.map[rule.key] = rule\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule\n if (rule.id) this.classes[rule.key] = rule.id\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id\n }\n }\n\n /**\n * Unregister a rule.\n */\n unregister(rule: Rule): void {\n delete this.map[rule.key]\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector]\n delete this.classes[rule.key]\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name]\n }\n }\n\n /**\n * Update the function values with a new data.\n */\n update(...args: UpdateArguments): void {\n let name\n let data\n let options\n\n if (typeof args[0] === 'string') {\n name = args[0]\n // $FlowFixMe[invalid-tuple-index]\n data = args[1]\n // $FlowFixMe[invalid-tuple-index]\n options = args[2]\n } else {\n data = args[0]\n // $FlowFixMe[invalid-tuple-index]\n options = args[1]\n name = null\n }\n\n if (name) {\n this.updateOne(this.map[name], data, options)\n } else {\n for (let index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options)\n }\n }\n }\n\n /**\n * Execute plugins, update rule props.\n */\n updateOne(rule: Rule, data: Object, options?: UpdateOptions = defaultUpdateOptions) {\n const {\n jss: {plugins},\n sheet\n } = this.options\n\n // It is a rules container like for e.g. ConditionalRule.\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options)\n return\n }\n\n const styleRule: StyleRule = (rule: any)\n const {style} = styleRule\n\n plugins.onUpdate(data, rule, sheet, options)\n\n // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n if (options.process && style && style !== styleRule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(styleRule.style, styleRule, sheet)\n\n // Update and add props.\n for (const prop in styleRule.style) {\n const nextValue = styleRule.style[prop]\n const prevValue = style[prop]\n // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n if (nextValue !== prevValue) {\n styleRule.prop(prop, nextValue, forceUpdateOptions)\n }\n }\n\n // Remove props.\n for (const prop in style) {\n const nextValue = styleRule.style[prop]\n const prevValue = style[prop]\n // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n if (nextValue == null && nextValue !== prevValue) {\n styleRule.prop(prop, null, forceUpdateOptions)\n }\n }\n }\n }\n\n /**\n * Convert rules to a CSS string.\n */\n toString(options?: ToCssOptions): string {\n let str = ''\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n\n for (let index = 0; index < this.index.length; index++) {\n const rule = this.index[index]\n const css = rule.toString(options)\n\n // No need to render an empty rule.\n if (!css && !link) continue\n\n if (str) str += '\\n'\n str += css\n }\n\n return str\n }\n}\n","// @flow\nimport RuleList from './RuleList'\nimport type {\n InternalStyleSheetOptions,\n Rule,\n ToCssOptions,\n RuleOptions,\n StyleSheetOptions,\n JssStyle,\n Classes,\n KeyframesMap,\n JssStyles,\n Renderer,\n UpdateArguments,\n UpdateOptions\n} from './types'\n\nexport default class StyleSheet {\n options: InternalStyleSheetOptions\n\n deployed: boolean\n\n attached: boolean\n\n rules: RuleList\n\n renderer: Renderer | null\n\n classes: Classes\n\n keyframes: KeyframesMap\n\n queue: ?Array\n\n constructor(styles: JssStyles, options: StyleSheetOptions) {\n this.attached = false\n this.deployed = false\n this.classes = {}\n this.keyframes = {}\n this.options = {\n ...options,\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n }\n if (options.Renderer) {\n this.renderer = new options.Renderer(this)\n }\n this.rules = new RuleList(this.options)\n\n for (const name in styles) {\n this.rules.add(name, styles[name])\n }\n\n this.rules.process()\n }\n\n /**\n * Attach renderable to the render tree.\n */\n attach(): this {\n if (this.attached) return this\n if (this.renderer) this.renderer.attach()\n this.attached = true\n // Order is important, because we can't use insertRule API if style element is not attached.\n if (!this.deployed) this.deploy()\n return this\n }\n\n /**\n * Remove renderable from render tree.\n */\n detach(): this {\n if (!this.attached) return this\n if (this.renderer) this.renderer.detach()\n this.attached = false\n return this\n }\n\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n addRule(name: string, decl: JssStyle, options?: RuleOptions): Rule | null {\n const {queue} = this\n\n // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n if (this.attached && !queue) this.queue = []\n\n const rule = this.rules.add(name, decl, options)\n\n if (!rule) return null\n\n this.options.jss.plugins.onProcessRule(rule)\n\n if (this.attached) {\n if (!this.deployed) return rule\n // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n if (queue) queue.push(rule)\n else {\n this.insertRule(rule)\n if (this.queue) {\n this.queue.forEach(this.insertRule, this)\n this.queue = undefined\n }\n }\n return rule\n }\n\n // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n this.deployed = false\n\n return rule\n }\n\n /**\n * Insert rule into the StyleSheet\n */\n insertRule(rule: Rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule)\n }\n }\n\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n addRules(styles: JssStyles, options?: RuleOptions): Array {\n const added = []\n for (const name in styles) {\n const rule = this.addRule(name, styles[name], options)\n if (rule) added.push(rule)\n }\n return added\n }\n\n /**\n * Get a rule by name.\n */\n getRule(name: string): Rule {\n return this.rules.get(name)\n }\n\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n deleteRule(name: string | Rule): boolean {\n const rule = typeof name === 'object' ? name : this.rules.get(name)\n\n if (\n !rule ||\n // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n (this.attached && !rule.renderable)\n ) {\n return false\n }\n\n this.rules.remove(rule)\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable)\n }\n\n return true\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule: Rule): number {\n return this.rules.indexOf(rule)\n }\n\n /**\n * Deploy pure CSS string to a renderable.\n */\n deploy(): this {\n if (this.renderer) this.renderer.deploy()\n this.deployed = true\n return this\n }\n\n /**\n * Update the function values with a new data.\n */\n update(...args: UpdateArguments): this {\n this.rules.update(...args)\n return this\n }\n\n /**\n * Updates a single rule.\n */\n updateOne(rule: Rule, data: Object, options?: UpdateOptions): this {\n this.rules.updateOne(rule, data, options)\n return this\n }\n\n /**\n * Convert rules to a CSS string.\n */\n toString(options?: ToCssOptions): string {\n return this.rules.toString(options)\n }\n}\n","// @flow\nimport warning from 'tiny-warning'\nimport type StyleSheet from './StyleSheet'\nimport type {\n Plugin,\n Rule,\n RuleOptions,\n UpdateOptions,\n JssStyle,\n JssValue,\n OnCreateRule,\n OnProcessRule,\n OnProcessStyle,\n OnProcessSheet,\n OnChangeValue,\n OnUpdate\n} from './types'\nimport type {StyleRule, BaseStyleRule} from './plugins/styleRule'\n\ntype Registry = {\n onCreateRule: Array,\n onProcessRule: Array,\n onProcessStyle: Array,\n onProcessSheet: Array,\n onChangeValue: Array,\n onUpdate: Array\n}\n\nexport default class PluginsRegistry {\n plugins: {\n internal: Array,\n external: Array\n } = {\n internal: [],\n external: []\n }\n\n registry: Registry\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n onCreateRule(name: string, decl: JssStyle, options: RuleOptions): Rule | null {\n for (let i = 0; i < this.registry.onCreateRule.length; i++) {\n const rule = this.registry.onCreateRule[i](name, decl, options)\n if (rule) return rule\n }\n\n return null\n }\n\n /**\n * Call `onProcessRule` hooks.\n */\n onProcessRule(rule: Rule): void {\n if (rule.isProcessed) return\n const {sheet} = rule.options\n for (let i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet)\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet)\n\n rule.isProcessed = true\n }\n\n /**\n * Call `onProcessStyle` hooks.\n */\n onProcessStyle(style: JssStyle, rule: Rule, sheet?: StyleSheet): void {\n for (let i = 0; i < this.registry.onProcessStyle.length; i++) {\n // $FlowFixMe[prop-missing]\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet)\n }\n }\n\n /**\n * Call `onProcessSheet` hooks.\n */\n onProcessSheet(sheet: StyleSheet): void {\n for (let i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet)\n }\n }\n\n /**\n * Call `onUpdate` hooks.\n */\n onUpdate(data: Object, rule: Rule, sheet?: StyleSheet, options: UpdateOptions): void {\n for (let i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options)\n }\n }\n\n /**\n * Call `onChangeValue` hooks.\n */\n onChangeValue(value: JssValue, prop: string, rule: StyleRule | BaseStyleRule): JssValue {\n let processedValue = value\n for (let i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule)\n }\n return processedValue\n }\n\n /**\n * Register a plugin.\n */\n use(newPlugin: Plugin, options: {queue: 'internal' | 'external'} = {queue: 'external'}): void {\n const plugins = this.plugins[options.queue]\n\n // Avoids applying same plugin twice, at least based on ref.\n if (plugins.indexOf(newPlugin) !== -1) {\n return\n }\n\n plugins.push(newPlugin)\n\n this.registry = [...this.plugins.external, ...this.plugins.internal].reduce(\n (registry: Registry, plugin: Plugin) => {\n for (const name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name])\n } else {\n warning(false, `[JSS] Unknown hook \"${name}\".`)\n }\n }\n return registry\n },\n {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n }\n )\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// @flow\nimport type {ToCssOptions} from './types'\nimport type StyleSheet from './StyleSheet'\n\n/**\n * Sheets registry to access them all at one place.\n */\nexport default class SheetsRegistry {\n registry: Array = []\n\n /**\n * Current highest index number.\n */\n get index(): number {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index\n }\n\n /**\n * Register a Style Sheet.\n */\n add(sheet: StyleSheet): void {\n const {registry} = this\n const {index} = sheet.options\n\n if (registry.indexOf(sheet) !== -1) return\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet)\n return\n }\n\n // Find a position.\n for (let i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet)\n return\n }\n }\n }\n\n /**\n * Reset the registry.\n */\n reset(): void {\n this.registry = []\n }\n\n /**\n * Remove a Style Sheet.\n */\n remove(sheet: StyleSheet): void {\n const index = this.registry.indexOf(sheet)\n this.registry.splice(index, 1)\n }\n\n /**\n * Convert all attached sheets to a CSS string.\n */\n toString({attached, ...options}: {|attached?: boolean, ...ToCssOptions|} = {}): string {\n let css = ''\n for (let i = 0; i < this.registry.length; i++) {\n const sheet = this.registry[i]\n if (attached != null && sheet.attached !== attached) {\n continue\n }\n if (css) css += '\\n'\n css += sheet.toString(options)\n }\n return css\n }\n}\n","// @flow\nimport SheetsRegistry from './SheetsRegistry'\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\nconst registry: SheetsRegistry = new SheetsRegistry()\nexport default registry\n","/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nexport default (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined' && window.Math === Math\n ? window\n : typeof self !== 'undefined' && self.Math === Math\n ? self\n : Function('return this')())\n","import globalThis from './globalThis'\n\nconst ns = '2f1acc6c3a606b082e5eef5e54414ffb'\nif (globalThis[ns] == null) globalThis[ns] = 0\n\n// Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\nexport default globalThis[ns]++\n","// @flow\nimport warning from 'tiny-warning'\nimport type {Rule} from '../types'\nimport StyleSheet from '../StyleSheet'\nimport moduleId from './moduleId'\n\nconst maxRules = 1e10\n\nexport type CreateGenerateIdOptions = {|\n minify: boolean\n|}\nexport type GenerateId = (rule: Rule, sheet?: StyleSheet) => string\n\nexport type CreateGenerateId = (options?: CreateGenerateIdOptions) => GenerateId\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\nconst createGenerateId: CreateGenerateId = (options = {}) => {\n let ruleCounter = 0\n\n const generateId: GenerateId = (rule, sheet) => {\n ruleCounter += 1\n\n if (ruleCounter > maxRules) {\n warning(false, `[JSS] You might have a memory leak. Rule counter is at ${ruleCounter}.`)\n }\n\n let jssId = ''\n let prefix = ''\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix\n }\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id)\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return `${prefix || 'c'}${moduleId}${jssId}${ruleCounter}`\n }\n\n return `${prefix + rule.key}-${moduleId}${jssId ? `-${jssId}` : ''}-${ruleCounter}`\n }\n\n return generateId\n}\n\nexport default createGenerateId\n","// @flow\nimport warning from 'tiny-warning'\nimport StyleSheet from './StyleSheet'\nimport sheets from './sheets'\nimport toCssValue from './utils/toCssValue'\nimport type {\n CSSStyleRule,\n CSSMediaRule,\n CSSKeyframesRule,\n CSSKeyframeRule,\n HTMLElementWithStyleMap,\n AnyCSSRule,\n Rule,\n RuleList,\n ContainerRule,\n JssValue,\n InsertionPoint\n} from './types'\n\ntype PriorityOptions = {\n index: number,\n insertionPoint?: InsertionPoint\n}\n\n/**\n * Cache the value from the first time a function is called.\n */\nconst memoize = (fn: () => Value): (() => Value) => {\n let value\n return () => {\n if (!value) value = fn()\n return value\n }\n}\n\ntype GetPropertyValue = (HTMLElementWithStyleMap | CSSStyleRule | CSSKeyframeRule, string) => string\n\n/**\n * Get a style property value.\n */\nconst getPropertyValue: GetPropertyValue = (cssRule, prop) => {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop)\n }\n return cssRule.style.getPropertyValue(prop)\n } catch (err) {\n // IE may throw if property is unknown.\n return ''\n }\n}\n\ntype SetProperty = (\n HTMLElementWithStyleMap | CSSStyleRule | CSSKeyframeRule,\n string,\n JssValue\n) => boolean\n\n/**\n * Set a style property.\n */\nconst setProperty: SetProperty = (cssRule, prop, value) => {\n try {\n let cssValue = ((value: any): string)\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true)\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important')\n return true\n }\n }\n\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue)\n } else {\n cssRule.style.setProperty(prop, cssValue)\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false\n }\n return true\n}\n\ntype RemoveProperty = (HTMLElementWithStyleMap | CSSStyleRule | CSSKeyframeRule, string) => void\n\n/**\n * Remove a style property.\n */\nconst removeProperty: RemoveProperty = (cssRule, prop) => {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop)\n } else {\n cssRule.style.removeProperty(prop)\n }\n } catch (err) {\n warning(\n false,\n `[JSS] DOMException \"${err.message}\" was thrown. Tried to remove property \"${prop}\".`\n )\n }\n}\n\ntype SetSelector = (CSSStyleRule, string) => boolean\n\n/**\n * Set the selector.\n */\nconst setSelector: SetSelector = (cssRule, selectorText) => {\n cssRule.selectorText = selectorText\n\n // Return false if setter was not successful.\n // Currently works in chrome only.\n return cssRule.selectorText === selectorText\n}\n\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\nconst getHead = memoize((): HTMLElement => (document.querySelector('head'): any))\n\n/**\n * Find attached sheet with an index higher than the passed one.\n */\nfunction findHigherSheet(registry: Array, options: PriorityOptions): StyleSheet | null {\n for (let i = 0; i < registry.length; i++) {\n const sheet = registry[i]\n if (\n sheet.attached &&\n sheet.options.index > options.index &&\n sheet.options.insertionPoint === options.insertionPoint\n ) {\n return sheet\n }\n }\n return null\n}\n\n/**\n * Find attached sheet with the highest index.\n */\nfunction findHighestSheet(\n registry: Array,\n options: PriorityOptions\n): StyleSheet | null {\n for (let i = registry.length - 1; i >= 0; i--) {\n const sheet = registry[i]\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet\n }\n }\n return null\n}\n\n/**\n * Find a comment with \"jss\" inside.\n */\nfunction findCommentNode(text: string): Node | null {\n const head = getHead()\n for (let i = 0; i < head.childNodes.length; i++) {\n const node = head.childNodes[i]\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node\n }\n }\n return null\n}\n\ntype PrevNode = {\n parent: ?Node,\n node: ?Node\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options: PriorityOptions): PrevNode | false {\n const {registry} = sheets\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n let sheet = findHigherSheet(registry, options)\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n }\n }\n\n // Otherwise insert after the last attached.\n sheet = findHighestSheet(registry, options)\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n }\n }\n }\n\n // Try to find a comment placeholder if registry is empty.\n const {insertionPoint} = options\n if (insertionPoint && typeof insertionPoint === 'string') {\n const comment = findCommentNode(insertionPoint)\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n }\n }\n\n // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n warning(false, `[JSS] Insertion point \"${insertionPoint}\" not found.`)\n }\n\n return false\n}\n\n/**\n * Insert style element into the DOM.\n */\nfunction insertStyle(style: HTMLElement, options: PriorityOptions) {\n const {insertionPoint} = options\n const nextNode = findPrevNode(options)\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node)\n\n return\n }\n\n // Works with iframes and any node types.\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n const insertionPointElement: HTMLElement = (insertionPoint: any)\n const {parentNode} = insertionPointElement\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling)\n else warning(false, '[JSS] Insertion point is not in the DOM.')\n return\n }\n\n getHead().appendChild(style)\n}\n\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\nconst getNonce = memoize(\n (): ?string => {\n const node = document.querySelector('meta[property=\"csp-nonce\"]')\n return node ? node.getAttribute('content') : null\n }\n)\n\nconst insertRule = (\n container: CSSStyleSheet | CSSMediaRule | CSSKeyframesRule,\n rule: string,\n index: number\n): false | any => {\n try {\n if ('insertRule' in container) {\n const c = ((container: any): CSSStyleSheet)\n c.insertRule(rule, index)\n }\n // Keyframes rule.\n else if ('appendRule' in container) {\n const c = ((container: any): CSSKeyframesRule)\n c.appendRule(rule)\n }\n } catch (err) {\n warning(false, `[JSS] ${err.message}`)\n return false\n }\n return container.cssRules[index]\n}\n\nconst getValidRuleInsertionIndex = (\n container: CSSStyleSheet | CSSMediaRule | CSSKeyframesRule,\n index?: number\n): number => {\n const maxIndex = container.cssRules.length\n // In case previous insertion fails, passed index might be wrong\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex\n }\n return index\n}\n\nconst createStyle = (): HTMLElement => {\n const el = document.createElement('style')\n // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n el.textContent = '\\n'\n return el\n}\n\nexport default class DomRenderer {\n getPropertyValue: GetPropertyValue = getPropertyValue\n\n setProperty: SetProperty = setProperty\n\n removeProperty: RemoveProperty = removeProperty\n\n setSelector: SetSelector = setSelector\n\n // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n element: any\n\n sheet: StyleSheet | void\n\n hasInsertedRules: boolean = false\n\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n cssRules: AnyCSSRule[] = []\n\n constructor(sheet?: StyleSheet) {\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet)\n\n this.sheet = sheet\n const {media, meta, element} = this.sheet ? this.sheet.options : {}\n this.element = element || createStyle()\n this.element.setAttribute('data-jss', '')\n if (media) this.element.setAttribute('media', media)\n if (meta) this.element.setAttribute('data-meta', meta)\n const nonce = getNonce()\n if (nonce) this.element.setAttribute('nonce', nonce)\n }\n\n /**\n * Insert style element into render tree.\n */\n attach(): void {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return\n\n insertStyle(this.element, this.sheet.options)\n\n // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n const deployed = Boolean(this.sheet && this.sheet.deployed)\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false\n this.deploy()\n }\n }\n\n /**\n * Remove style element from render tree.\n */\n detach(): void {\n if (!this.sheet) return\n const {parentNode} = this.element\n if (parentNode) parentNode.removeChild(this.element)\n // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n if (this.sheet.options.link) {\n this.cssRules = []\n this.element.textContent = '\\n'\n }\n }\n\n /**\n * Inject CSS string into element.\n */\n deploy(): void {\n const {sheet} = this\n if (!sheet) return\n if (sheet.options.link) {\n this.insertRules(sheet.rules)\n return\n }\n this.element.textContent = `\\n${sheet.toString()}\\n`\n }\n\n /**\n * Insert RuleList into an element.\n */\n\n insertRules(rules: RuleList, nativeParent?: CSSStyleSheet | CSSMediaRule | CSSKeyframesRule) {\n for (let i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent)\n }\n }\n\n /**\n * Insert a rule into element.\n */\n insertRule(\n rule: Rule,\n index?: number,\n nativeParent?: CSSStyleSheet | CSSMediaRule | CSSKeyframesRule = this.element.sheet\n ): false | CSSStyleSheet | AnyCSSRule {\n if (rule.rules) {\n const parent: ContainerRule = (rule: any)\n let latestNativeParent = nativeParent\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n const insertionIndex = getValidRuleInsertionIndex(nativeParent, index)\n // We need to render the container without children first.\n latestNativeParent = insertRule(\n nativeParent,\n parent.toString({children: false}),\n insertionIndex\n )\n if (latestNativeParent === false) {\n return false\n }\n this.refCssRule(rule, insertionIndex, latestNativeParent)\n }\n this.insertRules(parent.rules, latestNativeParent)\n return latestNativeParent\n }\n\n const ruleStr = rule.toString()\n\n if (!ruleStr) return false\n\n const insertionIndex = getValidRuleInsertionIndex(nativeParent, index)\n const nativeRule = insertRule(nativeParent, ruleStr, insertionIndex)\n if (nativeRule === false) {\n return false\n }\n\n this.hasInsertedRules = true\n this.refCssRule(rule, insertionIndex, nativeRule)\n\n return nativeRule\n }\n\n refCssRule(rule: Rule, index: number, cssRule: any) {\n rule.renderable = cssRule\n // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules[index] = cssRule\n }\n }\n\n /**\n * Delete a rule.\n */\n deleteRule(cssRule: AnyCSSRule): boolean {\n const {sheet} = this.element\n const index = this.indexOf(cssRule)\n if (index === -1) return false\n sheet.deleteRule(index)\n this.cssRules.splice(index, 1)\n return true\n }\n\n /**\n * Get index of a CSS Rule.\n */\n indexOf(cssRule: AnyCSSRule): number {\n return this.cssRules.indexOf(cssRule)\n }\n\n /**\n * Generate a new CSS rule and replace the existing one.\n *\n * Only used for some old browsers because they can't set a selector.\n */\n replaceRule(cssRule: AnyCSSRule, rule: Rule): false | CSSStyleSheet | AnyCSSRule {\n const index = this.indexOf(cssRule)\n if (index === -1) return false\n this.element.sheet.deleteRule(index)\n this.cssRules.splice(index, 1)\n return this.insertRule(rule, index)\n }\n\n /**\n * Get all rules elements.\n */\n getRules(): CSSRuleList {\n return this.element.sheet.cssRules\n }\n}\n","// @flow\nimport isInBrowser from 'is-in-browser'\nimport StyleSheet from './StyleSheet'\nimport PluginsRegistry from './PluginsRegistry'\nimport sheets from './sheets'\nimport {plugins as internalPlugins} from './plugins/index'\nimport createGenerateIdDefault from './utils/createGenerateId'\nimport createRule from './utils/createRule'\nimport DomRenderer from './DomRenderer'\nimport type {\n Rule,\n RuleFactoryOptions,\n RuleOptions,\n StyleSheetFactoryOptions,\n Plugin,\n JssOptions,\n InternalJssOptions,\n JssStyle\n} from './types'\nimport type {GenerateId} from './utils/createGenerateId'\n\nlet instanceCounter = 0\n\nexport default class Jss {\n id: number = instanceCounter++\n\n version: string | void = process.env.VERSION\n\n plugins: PluginsRegistry = new PluginsRegistry()\n\n options: InternalJssOptions = {\n id: {minify: false},\n createGenerateId: createGenerateIdDefault,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n }\n\n generateId: GenerateId = createGenerateIdDefault({minify: false})\n\n constructor(options?: JssOptions) {\n for (let i = 0; i < internalPlugins.length; i++) {\n this.plugins.use(internalPlugins[i], {queue: 'internal'})\n }\n this.setup(options)\n }\n\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n setup(options?: JssOptions = {}): this {\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId\n }\n\n if (options.id) {\n this.options.id = {\n ...this.options.id,\n ...options.id\n }\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id)\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer\n }\n\n // eslint-disable-next-line prefer-spread\n if (options.plugins) this.use.apply(this, options.plugins)\n\n return this\n }\n\n /**\n * Create a Style Sheet.\n */\n createStyleSheet(styles: Object, options: StyleSheetFactoryOptions = ({}: any)): StyleSheet {\n let {index} = options\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1\n }\n const sheet = new StyleSheet(styles, {\n ...options,\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index\n })\n this.plugins.onProcessSheet(sheet)\n\n return sheet\n }\n\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n removeStyleSheet(sheet: StyleSheet): this {\n sheet.detach()\n sheets.remove(sheet)\n return this\n }\n\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n createRule(name: string, style?: JssStyle = {}, options?: RuleFactoryOptions = {}): Rule | null {\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n // $FlowFixMe[incompatible-call]\n return this.createRule(undefined, name, style)\n }\n\n // $FlowFixMe[incompatible-type]\n const ruleOptions: RuleOptions = {...options, name, jss: this, Renderer: this.options.Renderer}\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId\n if (!ruleOptions.classes) ruleOptions.classes = {}\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {}\n\n const rule = createRule(name, style, ruleOptions)\n\n if (rule) this.plugins.onProcessRule(rule)\n\n return rule\n }\n\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n use(...plugins: Array): this {\n plugins.forEach(plugin => {\n this.plugins.use(plugin)\n })\n\n return this\n }\n}\n","/**\n * Extracts a styles object with only props that contain function values.\n */\nexport default function getDynamicStyles(styles: Object): Object | null {\n let to = null\n\n for (const key in styles) {\n const value = styles[key]\n const type = typeof value\n\n if (type === 'function') {\n if (!to) to = {}\n to[key] = value\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n const extracted = getDynamicStyles(value)\n if (extracted) {\n if (!to) to = {}\n to[key] = extracted\n }\n }\n }\n\n return to\n}\n","// @flow\nimport warn from 'tiny-warning'\nimport type StyleSheet from './StyleSheet'\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\nexport default class SheetsManager {\n length: number = 0\n\n sheets: WeakMap<\n Object,\n {\n refs: number,\n sheet: StyleSheet\n }\n > = new WeakMap()\n\n get size(): number {\n return this.length\n }\n\n get(key: Object): ?StyleSheet {\n const entry = this.sheets.get(key)\n return entry && entry.sheet\n }\n\n add(key: Object, sheet: StyleSheet) {\n if (this.sheets.has(key)) return\n\n this.length++\n\n this.sheets.set(key, {\n sheet,\n refs: 0\n })\n }\n\n manage(key: Object): ?StyleSheet {\n const entry = this.sheets.get(key)\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach()\n }\n\n entry.refs++\n\n return entry.sheet\n }\n\n warn(false, \"[JSS] SheetsManager: can't find sheet to manage\")\n\n return undefined\n }\n\n unmanage(key: Object) {\n const entry = this.sheets.get(key)\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--\n\n if (entry.refs === 0) entry.sheet.detach()\n }\n } else {\n warn(false, \"SheetsManager: can't find sheet to unmanage\")\n }\n }\n}\n","// @flow\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nimport Jss from './Jss'\nimport type StyleSheet from './StyleSheet'\nimport type {\n ConditionalRule,\n KeyframesRule,\n StyleRule,\n ViewportRule,\n SimpleRule,\n FontFaceRule\n} from './plugins'\nimport type {JssOptions} from './types'\n\n/**\n * Export types for better typing inside plugins and integrations.\n */\nexport type {\n StyleSheetFactoryOptions,\n JssValue,\n JssOptions,\n JssStyle,\n Plugin,\n RuleListOptions,\n Rule,\n Renderer,\n RuleOptions,\n UpdateOptions,\n Classes,\n BaseRule,\n ContainerRule\n} from './types'\nexport type {GenerateId, CreateGenerateId, CreateGenerateIdOptions} from './utils/createGenerateId'\n\nexport type {\n Jss,\n StyleSheet,\n ConditionalRule,\n KeyframesRule,\n StyleRule,\n ViewportRule,\n SimpleRule,\n FontFaceRule\n}\n\n/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\nexport const hasCSSTOMSupport: boolean = typeof CSS === 'object' && CSS != null && 'number' in CSS\n\n/**\n * Extracts a styles object with only rules that contain function values.\n */\nexport {default as getDynamicStyles} from './utils/getDynamicStyles'\n\n/**\n * Converts JSS array value to a CSS string.\n */\nexport {default as toCssValue} from './utils/toCssValue'\n\n/**\n * Create a rule instance.\n */\nexport {default as createRule} from './utils/createRule'\n\n/**\n * SheetsRegistry for SSR.\n */\nexport {default as SheetsRegistry} from './SheetsRegistry'\n\n/**\n * SheetsManager for react-jss and co.\n */\nexport {default as SheetsManager} from './SheetsManager'\n\n/**\n * RuleList for plugins.\n */\nexport {default as RuleList} from './RuleList'\n\n/**\n * Default global SheetsRegistry instance.\n */\nexport {default as sheets} from './sheets'\n\n/**\n * Class name generator creator.\n */\nexport {default as createGenerateId} from './utils/createGenerateId'\n\n/**\n * Creates a new instance of Jss.\n */\nexport const create = (options?: JssOptions): Jss => new Jss(options)\n\n/**\n * A global Jss instance.\n */\nconst jss: Jss = create()\nexport default jss\n"],"names":["plainObjectConstrurctor","constructor","cloneStyle","style","Array","isArray","map","newStyle","name","createRule","decl","options","jss","declCopy","rule","plugins","onCreateRule","warning","join","value","by","result","i","length","toCssValue","ignoreImportant","cssValue","indentStr","str","indent","index","toCss","selector","fallbacks","fallback","prop","allowEmpty","escapeRegex","nativeEscape","CSS","escape","replace","BaseStyleRule","key","type","isProcessed","renderer","renderable","sheet","Renderer","undefined","force","newValue","process","onChangeValue","isEmpty","isDefined","remove","removeProperty","setProperty","attached","StyleRule","selectorText","id","scoped","generateId","applyTo","json","toJSON","toString","link","opts","hasChanged","setSelector","replaceRule","parent","defaultToStringOptions","children","atRegExp","ConditionalRule","styles","at","query","rules","atMatch","match","RuleList","add","getRule","get","indexOf","addRule","onProcessRule","keyRegExp","test","nameRegExp","KeyframesRule","frames","nameMatch","refRegExp","findReferencedKeyframe","val","keyframes","replaceRef","refKeyframe","plugin","onProcessStyle","KeyframeRule","FontFaceRule","ViewportRule","SimpleRule","keysMap","pluginStyleRule","pluginConditionalRule","pluginKeyframesRule","pluginKeyframeRule","pluginFontFaceRule","pluginViewportRule","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","raw","counter","classes","ruleOptions","register","splice","unregister","slice","forEach","update","data","updateOne","styleRule","onUpdate","nextValue","prevValue","css","StyleSheet","deployed","queue","attach","deploy","detach","push","insertRule","addRules","added","deleteRule","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","reduce","SheetsRegistry","reset","globalThis","window","Math","self","Function","ns","maxRules","createGenerateId","ruleCounter","jssId","prefix","classNamePrefix","String","minify","moduleId","memoize","fn","getPropertyValue","cssRule","attributeStyleMap","err","set","delete","message","getHead","document","querySelector","findHigherSheet","insertionPoint","findHighestSheet","findCommentNode","text","head","childNodes","node","nodeType","nodeValue","trim","findPrevNode","sheets","element","parentNode","nextSibling","comment","insertStyle","nextNode","insertBefore","insertionPointElement","appendChild","getNonce","getAttribute","container","c","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","createStyle","el","createElement","textContent","DomRenderer","hasInsertedRules","media","meta","setAttribute","nonce","Boolean","removeChild","insertRules","nativeParent","latestNativeParent","insertionIndex","refCssRule","ruleStr","nativeRule","getRules","instanceCounter","Jss","version","createGenerateIdDefault","isInBrowser","internalPlugins","setup","apply","createStyleSheet","removeStyleSheet","getDynamicStyles","to","extracted","SheetsManager","WeakMap","entry","has","refs","manage","warn","unmanage","hasCSSTOMSupport","create"],"mappings":"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"}