{"ast":null,"code":"import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n rule = rule;\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1 // $FlowFixMe[prop-missing]\n\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n .addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;","map":{"version":3,"sources":["/app/node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js"],"names":["_extends","warning","separatorRegExp","parentRegExp","refRegExp","jssNested","getReplaceRef","container","sheet","match","key","rule","getRule","selector","process","env","NODE_ENV","options","meta","toString","replaceParentRefs","nestedProp","parentProp","parentSelectors","split","nestedSelectors","result","i","length","parent","j","nested","indexOf","replace","getOptions","prevOptions","index","nestingLevel","undefined","name","onProcessStyle","style","type","styleRule","replaceRef","prop","isNested","isNestedConditional","addRule"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,oCAArB;AACA,OAAOC,OAAP,MAAoB,cAApB;AAEA,IAAIC,eAAe,GAAG,UAAtB;AACA,IAAIC,YAAY,GAAG,IAAnB;AACA,IAAIC,SAAS,GAAG,aAAhB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASC,SAAT,GAAqB;AACnB;AACA,WAASC,aAAT,CAAuBC,SAAvB,EAAkCC,KAAlC,EAAyC;AACvC,WAAO,UAAUC,KAAV,EAAiBC,GAAjB,EAAsB;AAC3B,UAAIC,IAAI,GAAGJ,SAAS,CAACK,OAAV,CAAkBF,GAAlB,KAA0BF,KAAK,IAAIA,KAAK,CAACI,OAAN,CAAcF,GAAd,CAA9C;;AAEA,UAAIC,IAAJ,EAAU;AACRA,QAAAA,IAAI,GAAGA,IAAP;AACA,eAAOA,IAAI,CAACE,QAAZ;AACD;;AAEDC,MAAAA,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwCf,OAAO,CAAC,KAAD,EAAQ,gDAAgDS,GAAhD,GAAsD,UAAtD,IAAoEH,SAAS,CAACU,OAAV,CAAkBC,IAAlB,IAA0BX,SAAS,CAACY,QAAV,EAA9F,IAAsH,KAA9H,CAA/C,GAAsL,KAAK,CAA3L;AACA,aAAOT,GAAP;AACD,KAVD;AAWD;;AAED,WAASU,iBAAT,CAA2BC,UAA3B,EAAuCC,UAAvC,EAAmD;AACjD,QAAIC,eAAe,GAAGD,UAAU,CAACE,KAAX,CAAiBtB,eAAjB,CAAtB;AACA,QAAIuB,eAAe,GAAGJ,UAAU,CAACG,KAAX,CAAiBtB,eAAjB,CAAtB;AACA,QAAIwB,MAAM,GAAG,EAAb;;AAEA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,eAAe,CAACK,MAApC,EAA4CD,CAAC,EAA7C,EAAiD;AAC/C,UAAIE,MAAM,GAAGN,eAAe,CAACI,CAAD,CAA5B;;AAEA,WAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,eAAe,CAACG,MAApC,EAA4CE,CAAC,EAA7C,EAAiD;AAC/C,YAAIC,MAAM,GAAGN,eAAe,CAACK,CAAD,CAA5B;AACA,YAAIJ,MAAJ,EAAYA,MAAM,IAAI,IAAV,CAFmC,CAEnB;;AAE5BA,QAAAA,MAAM,IAAIK,MAAM,CAACC,OAAP,CAAe,GAAf,MAAwB,CAAC,CAAzB,GAA6BD,MAAM,CAACE,OAAP,CAAe9B,YAAf,EAA6B0B,MAA7B,CAA7B,GAAoEA,MAAM,GAAG,GAAT,GAAeE,MAA7F;AACD;AACF;;AAED,WAAOL,MAAP;AACD;;AAED,WAASQ,UAAT,CAAoBvB,IAApB,EAA0BJ,SAA1B,EAAqC4B,WAArC,EAAkD;AAChD;AACA,QAAIA,WAAJ,EAAiB,OAAOnC,QAAQ,CAAC,EAAD,EAAKmC,WAAL,EAAkB;AAChDC,MAAAA,KAAK,EAAED,WAAW,CAACC,KAAZ,GAAoB,CADqB,CACnB;;AADmB,KAAlB,CAAf;AAIjB,QAAIC,YAAY,GAAG1B,IAAI,CAACM,OAAL,CAAaoB,YAAhC;AACAA,IAAAA,YAAY,GAAGA,YAAY,KAAKC,SAAjB,GAA6B,CAA7B,GAAiCD,YAAY,GAAG,CAA/D;;AAEA,QAAIpB,OAAO,GAAGjB,QAAQ,CAAC,EAAD,EAAKW,IAAI,CAACM,OAAV,EAAmB;AACvCoB,MAAAA,YAAY,EAAEA,YADyB;AAEvCD,MAAAA,KAAK,EAAE7B,SAAS,CAACyB,OAAV,CAAkBrB,IAAlB,IAA0B,CAFM,CAEJ;;AAFI,KAAnB,CAAtB;;AAMA,WAAOM,OAAO,CAACsB,IAAf;AACA,WAAOtB,OAAP;AACD;;AAED,WAASuB,cAAT,CAAwBC,KAAxB,EAA+B9B,IAA/B,EAAqCH,KAArC,EAA4C;AAC1C,QAAIG,IAAI,CAAC+B,IAAL,KAAc,OAAlB,EAA2B,OAAOD,KAAP;AAC3B,QAAIE,SAAS,GAAGhC,IAAhB;AACA,QAAIJ,SAAS,GAAGoC,SAAS,CAAC1B,OAAV,CAAkBY,MAAlC;AACA,QAAIZ,OAAJ;AACA,QAAI2B,UAAJ;;AAEA,SAAK,IAAIC,IAAT,IAAiBJ,KAAjB,EAAwB;AACtB,UAAIK,QAAQ,GAAGD,IAAI,CAACb,OAAL,CAAa,GAAb,MAAsB,CAAC,CAAtC;AACA,UAAIe,mBAAmB,GAAGF,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAtC;AACA,UAAI,CAACC,QAAD,IAAa,CAACC,mBAAlB,EAAuC;AACvC9B,MAAAA,OAAO,GAAGiB,UAAU,CAACS,SAAD,EAAYpC,SAAZ,EAAuBU,OAAvB,CAApB;;AAEA,UAAI6B,QAAJ,EAAc;AACZ,YAAIjC,QAAQ,GAAGO,iBAAiB,CAACyB,IAAD,EAAOF,SAAS,CAAC9B,QAAjB,CAAhC,CADY,CACgD;AAC5D;;AAEA,YAAI,CAAC+B,UAAL,EAAiBA,UAAU,GAAGtC,aAAa,CAACC,SAAD,EAAYC,KAAZ,CAA1B,CAJL,CAImD;;AAE/DK,QAAAA,QAAQ,GAAGA,QAAQ,CAACoB,OAAT,CAAiB7B,SAAjB,EAA4BwC,UAA5B,CAAX;AACArC,QAAAA,SAAS,CAACyC,OAAV,CAAkBnC,QAAlB,EAA4B4B,KAAK,CAACI,IAAD,CAAjC,EAAyC7C,QAAQ,CAAC,EAAD,EAAKiB,OAAL,EAAc;AAC7DJ,UAAAA,QAAQ,EAAEA;AADmD,SAAd,CAAjD;AAGD,OAVD,MAUO,IAAIkC,mBAAJ,EAAyB;AAC9B;AACAxC,QAAAA,SAAS,CAACyC,OAAV,CAAkBH,IAAlB,EAAwB,EAAxB,EAA4B5B,OAA5B,EAAqC;AACrC;AACA;AACA;AAHA,SAIC+B,OAJD,CAISL,SAAS,CAACjC,GAJnB,EAIwB+B,KAAK,CAACI,IAAD,CAJ7B,EAIqC;AACnChC,UAAAA,QAAQ,EAAE8B,SAAS,CAAC9B;AADe,SAJrC;AAOD;;AAED,aAAO4B,KAAK,CAACI,IAAD,CAAZ;AACD;;AAED,WAAOJ,KAAP;AACD;;AAED,SAAO;AACLD,IAAAA,cAAc,EAAEA;AADX,GAAP;AAGD;;AAED,eAAenC,SAAf","sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n rule = rule;\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1 // $FlowFixMe[prop-missing]\n\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n .addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n"]},"metadata":{},"sourceType":"module"}