{"ast":null,"code":"var slice = Array.prototype.slice;\nexport default function createOrderedCSSStyleSheet(sheet) {\n  var groups = {};\n  var selectors = {};\n\n  if (sheet != null) {\n    var group;\n    slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n      var cssText = cssRule.cssText;\n\n      if (cssText.indexOf('stylesheet-group') > -1) {\n        group = decodeGroupRule(cssRule);\n        groups[group] = {\n          start: i,\n          rules: [cssText]\n        };\n      } else {\n        var selectorText = getSelectorText(cssText);\n\n        if (selectorText != null) {\n          selectors[selectorText] = true;\n          groups[group].rules.push(cssText);\n        }\n      }\n    });\n  }\n\n  function sheetInsert(sheet, group, text) {\n    var orderedGroups = getOrderedGroups(groups);\n    var groupIndex = orderedGroups.indexOf(group);\n    var nextGroupIndex = groupIndex + 1;\n    var nextGroup = orderedGroups[nextGroupIndex];\n    var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n    var isInserted = insertRuleAt(sheet, text, position);\n\n    if (isInserted) {\n      if (groups[group].start == null) {\n        groups[group].start = position;\n      }\n\n      for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n        var groupNumber = orderedGroups[i];\n        var previousStart = groups[groupNumber].start;\n        groups[groupNumber].start = previousStart + 1;\n      }\n    }\n\n    return isInserted;\n  }\n\n  var OrderedCSSStyleSheet = {\n    getTextContent: function getTextContent() {\n      return getOrderedGroups(groups).map(function (group) {\n        var rules = groups[group].rules;\n        return rules.join('\\n');\n      }).join('\\n');\n    },\n    insert: function insert(cssText, groupValue) {\n      var group = Number(groupValue);\n\n      if (groups[group] == null) {\n        var markerRule = encodeGroupRule(group);\n        groups[group] = {\n          start: null,\n          rules: [markerRule]\n        };\n\n        if (sheet != null) {\n          sheetInsert(sheet, group, markerRule);\n        }\n      }\n\n      var selectorText = getSelectorText(cssText);\n      selectors[selectorText] = true;\n      groups[group].rules.push(cssText);\n\n      if (sheet != null) {\n        var isInserted = sheetInsert(sheet, group, cssText);\n\n        if (!isInserted) {\n          groups[group].rules.pop();\n        }\n      }\n    }\n  };\n  return OrderedCSSStyleSheet;\n}\n\nfunction encodeGroupRule(group) {\n  return '[stylesheet-group=\"' + group + '\"]{}';\n}\n\nfunction decodeGroupRule(cssRule) {\n  return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n  return Object.keys(obj).map(Number).sort(function (a, b) {\n    return a > b ? 1 : -1;\n  });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n  var selector = cssText.split('{')[0].trim();\n  return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n  try {\n    root.insertRule(cssText, position);\n    return true;\n  } catch (e) {\n    return false;\n  }\n}","map":{"version":3,"sources":["/Users/nishan/Desktop/oss/responsive-breakpoints/example/node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js"],"names":["slice","Array","prototype","createOrderedCSSStyleSheet","sheet","groups","selectors","group","call","cssRules","forEach","cssRule","i","cssText","indexOf","decodeGroupRule","start","rules","selectorText","getSelectorText","push","sheetInsert","text","orderedGroups","getOrderedGroups","groupIndex","nextGroupIndex","nextGroup","position","length","isInserted","insertRuleAt","groupNumber","previousStart","OrderedCSSStyleSheet","getTextContent","map","join","insert","groupValue","Number","markerRule","encodeGroupRule","pop","split","obj","Object","keys","sort","a","b","pattern","selector","trim","replace","root","insertRule","e"],"mappings":"AAQA,IAAIA,KAAK,GAAGC,KAAK,CAACC,SAAN,CAAgBF,KAA5B;AAiBA,eAAe,SAASG,0BAAT,CAAoCC,KAApC,EAA2C;AACxD,MAAIC,MAAM,GAAG,EAAb;AACA,MAAIC,SAAS,GAAG,EAAhB;;AAKA,MAAIF,KAAK,IAAI,IAAb,EAAmB;AACjB,QAAIG,KAAJ;AACAP,IAAAA,KAAK,CAACQ,IAAN,CAAWJ,KAAK,CAACK,QAAjB,EAA2BC,OAA3B,CAAmC,UAAUC,OAAV,EAAmBC,CAAnB,EAAsB;AACvD,UAAIC,OAAO,GAAGF,OAAO,CAACE,OAAtB;;AAEA,UAAIA,OAAO,CAACC,OAAR,CAAgB,kBAAhB,IAAsC,CAAC,CAA3C,EAA8C;AAC5CP,QAAAA,KAAK,GAAGQ,eAAe,CAACJ,OAAD,CAAvB;AACAN,QAAAA,MAAM,CAACE,KAAD,CAAN,GAAgB;AACdS,UAAAA,KAAK,EAAEJ,CADO;AAEdK,UAAAA,KAAK,EAAE,CAACJ,OAAD;AAFO,SAAhB;AAID,OAND,MAMO;AACL,YAAIK,YAAY,GAAGC,eAAe,CAACN,OAAD,CAAlC;;AAEA,YAAIK,YAAY,IAAI,IAApB,EAA0B;AACxBZ,UAAAA,SAAS,CAACY,YAAD,CAAT,GAA0B,IAA1B;AACAb,UAAAA,MAAM,CAACE,KAAD,CAAN,CAAcU,KAAd,CAAoBG,IAApB,CAAyBP,OAAzB;AACD;AACF;AACF,KAjBD;AAkBD;;AAED,WAASQ,WAAT,CAAqBjB,KAArB,EAA4BG,KAA5B,EAAmCe,IAAnC,EAAyC;AACvC,QAAIC,aAAa,GAAGC,gBAAgB,CAACnB,MAAD,CAApC;AACA,QAAIoB,UAAU,GAAGF,aAAa,CAACT,OAAd,CAAsBP,KAAtB,CAAjB;AACA,QAAImB,cAAc,GAAGD,UAAU,GAAG,CAAlC;AACA,QAAIE,SAAS,GAAGJ,aAAa,CAACG,cAAD,CAA7B;AAEA,QAAIE,QAAQ,GACVD,SAAS,IAAI,IAAb,IAAqBtB,MAAM,CAACsB,SAAD,CAAN,CAAkBX,KAAlB,IAA2B,IAAhD,GACIX,MAAM,CAACsB,SAAD,CAAN,CAAkBX,KADtB,GAEIZ,KAAK,CAACK,QAAN,CAAeoB,MAHrB;AAIA,QAAIC,UAAU,GAAGC,YAAY,CAAC3B,KAAD,EAAQkB,IAAR,EAAcM,QAAd,CAA7B;;AAEA,QAAIE,UAAJ,EAAgB;AAEd,UAAIzB,MAAM,CAACE,KAAD,CAAN,CAAcS,KAAd,IAAuB,IAA3B,EAAiC;AAC/BX,QAAAA,MAAM,CAACE,KAAD,CAAN,CAAcS,KAAd,GAAsBY,QAAtB;AACD;;AAED,WAAK,IAAIhB,CAAC,GAAGc,cAAb,EAA6Bd,CAAC,GAAGW,aAAa,CAACM,MAA/C,EAAuDjB,CAAC,IAAI,CAA5D,EAA+D;AAC7D,YAAIoB,WAAW,GAAGT,aAAa,CAACX,CAAD,CAA/B;AACA,YAAIqB,aAAa,GAAG5B,MAAM,CAAC2B,WAAD,CAAN,CAAoBhB,KAAxC;AACAX,QAAAA,MAAM,CAAC2B,WAAD,CAAN,CAAoBhB,KAApB,GAA4BiB,aAAa,GAAG,CAA5C;AACD;AACF;;AAED,WAAOH,UAAP;AACD;;AAED,MAAII,oBAAoB,GAAG;AAIzBC,IAAAA,cAAc,EAAE,SAASA,cAAT,GAA0B;AACxC,aAAOX,gBAAgB,CAACnB,MAAD,CAAhB,CACJ+B,GADI,CACA,UAAU7B,KAAV,EAAiB;AACpB,YAAIU,KAAK,GAAGZ,MAAM,CAACE,KAAD,CAAN,CAAcU,KAA1B;AACA,eAAOA,KAAK,CAACoB,IAAN,CAAW,IAAX,CAAP;AACD,OAJI,EAKJA,IALI,CAKC,IALD,CAAP;AAMD,KAXwB;AAgBzBC,IAAAA,MAAM,EAAE,SAASA,MAAT,CAAgBzB,OAAhB,EAAyB0B,UAAzB,EAAqC;AAC3C,UAAIhC,KAAK,GAAGiC,MAAM,CAACD,UAAD,CAAlB;;AAEA,UAAIlC,MAAM,CAACE,KAAD,CAAN,IAAiB,IAArB,EAA2B;AACzB,YAAIkC,UAAU,GAAGC,eAAe,CAACnC,KAAD,CAAhC;AAEAF,QAAAA,MAAM,CAACE,KAAD,CAAN,GAAgB;AACdS,UAAAA,KAAK,EAAE,IADO;AAEdC,UAAAA,KAAK,EAAE,CAACwB,UAAD;AAFO,SAAhB;;AAKA,YAAIrC,KAAK,IAAI,IAAb,EAAmB;AACjBiB,UAAAA,WAAW,CAACjB,KAAD,EAAQG,KAAR,EAAekC,UAAf,CAAX;AACD;AACF;;AAID,UAAIvB,YAAY,GAAGC,eAAe,CAACN,OAAD,CAAlC;AAIAP,MAAAA,SAAS,CAACY,YAAD,CAAT,GAA0B,IAA1B;AACAb,MAAAA,MAAM,CAACE,KAAD,CAAN,CAAcU,KAAd,CAAoBG,IAApB,CAAyBP,OAAzB;;AAEA,UAAIT,KAAK,IAAI,IAAb,EAAmB;AACjB,YAAI0B,UAAU,GAAGT,WAAW,CAACjB,KAAD,EAAQG,KAAR,EAAeM,OAAf,CAA5B;;AAEA,YAAI,CAACiB,UAAL,EAAiB;AAGfzB,UAAAA,MAAM,CAACE,KAAD,CAAN,CAAcU,KAAd,CAAoB0B,GAApB;AACD;AAEF;AACF;AAnDwB,GAA3B;AAqDA,SAAOT,oBAAP;AACD;;AAKD,SAASQ,eAAT,CAAyBnC,KAAzB,EAAgC;AAC9B,SAAO,wBAAwBA,KAAxB,GAAgC,MAAvC;AACD;;AAED,SAASQ,eAAT,CAAyBJ,OAAzB,EAAkC;AAChC,SAAO6B,MAAM,CAAC7B,OAAO,CAACO,YAAR,CAAqB0B,KAArB,CAA2B,MAA3B,EAAmC,CAAnC,CAAD,CAAb;AACD;;AAED,SAASpB,gBAAT,CAA0BqB,GAA1B,EAA+B;AAC7B,SAAOC,MAAM,CAACC,IAAP,CAAYF,GAAZ,EACJT,GADI,CACAI,MADA,EAEJQ,IAFI,CAEC,UAAUC,CAAV,EAAaC,CAAb,EAAgB;AACpB,WAAOD,CAAC,GAAGC,CAAJ,GAAQ,CAAR,GAAY,CAAC,CAApB;AACD,GAJI,CAAP;AAKD;;AAED,IAAIC,OAAO,GAAG,cAAd;;AAEA,SAAShC,eAAT,CAAyBN,OAAzB,EAAkC;AAChC,MAAIuC,QAAQ,GAAGvC,OAAO,CAAC+B,KAAR,CAAc,GAAd,EAAmB,CAAnB,EAAsBS,IAAtB,EAAf;AACA,SAAOD,QAAQ,KAAK,EAAb,GAAkBA,QAAQ,CAACE,OAAT,CAAiBH,OAAjB,EAA0B,IAA1B,CAAlB,GAAoD,IAA3D;AACD;;AAED,SAASpB,YAAT,CAAsBwB,IAAtB,EAA4B1C,OAA5B,EAAqCe,QAArC,EAA+C;AAC7C,MAAI;AAEF2B,IAAAA,IAAI,CAACC,UAAL,CAAgB3C,OAAhB,EAAyBe,QAAzB;AACA,WAAO,IAAP;AACD,GAJD,CAIE,OAAO6B,CAAP,EAAU;AAGV,WAAO,KAAP;AACD;AACF","sourcesContent":["/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n *\n */\nvar slice = Array.prototype.slice;\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\n\nexport default function createOrderedCSSStyleSheet(sheet) {\n  var groups = {};\n  var selectors = {};\n  /**\n   * Hydrate approximate record from any existing rules in the sheet.\n   */\n\n  if (sheet != null) {\n    var group;\n    slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n      var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n      if (cssText.indexOf('stylesheet-group') > -1) {\n        group = decodeGroupRule(cssRule);\n        groups[group] = {\n          start: i,\n          rules: [cssText],\n        };\n      } else {\n        var selectorText = getSelectorText(cssText);\n\n        if (selectorText != null) {\n          selectors[selectorText] = true;\n          groups[group].rules.push(cssText);\n        }\n      }\n    });\n  }\n\n  function sheetInsert(sheet, group, text) {\n    var orderedGroups = getOrderedGroups(groups);\n    var groupIndex = orderedGroups.indexOf(group);\n    var nextGroupIndex = groupIndex + 1;\n    var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n    var position =\n      nextGroup != null && groups[nextGroup].start != null\n        ? groups[nextGroup].start\n        : sheet.cssRules.length;\n    var isInserted = insertRuleAt(sheet, text, position);\n\n    if (isInserted) {\n      // Set the starting index of the new group\n      if (groups[group].start == null) {\n        groups[group].start = position;\n      } // Increment the starting index of all subsequent groups\n\n      for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n        var groupNumber = orderedGroups[i];\n        var previousStart = groups[groupNumber].start;\n        groups[groupNumber].start = previousStart + 1;\n      }\n    }\n\n    return isInserted;\n  }\n\n  var OrderedCSSStyleSheet = {\n    /**\n     * The textContent of the style sheet.\n     */\n    getTextContent: function getTextContent() {\n      return getOrderedGroups(groups)\n        .map(function (group) {\n          var rules = groups[group].rules;\n          return rules.join('\\n');\n        })\n        .join('\\n');\n    },\n\n    /**\n     * Insert a rule into the style sheet\n     */\n    insert: function insert(cssText, groupValue) {\n      var group = Number(groupValue); // Create a new group.\n\n      if (groups[group] == null) {\n        var markerRule = encodeGroupRule(group); // Create the internal record.\n\n        groups[group] = {\n          start: null,\n          rules: [markerRule],\n        }; // Update CSSOM.\n\n        if (sheet != null) {\n          sheetInsert(sheet, group, markerRule);\n        }\n      } // selectorText is more reliable than cssText for insertion checks. The\n      // browser excludes vendor-prefixed properties and rewrites certain values\n      // making cssText more likely to be different from what was inserted.\n\n      var selectorText = getSelectorText(cssText);\n\n      // if (selectorText != null && selectors[selectorText] == null) {\n      // Update the internal records.\n      selectors[selectorText] = true;\n      groups[group].rules.push(cssText); // Update CSSOM.\n\n      if (sheet != null) {\n        var isInserted = sheetInsert(sheet, group, cssText);\n\n        if (!isInserted) {\n          // Revert internal record change if a rule was rejected (e.g.,\n          // unrecognized pseudo-selector)\n          groups[group].rules.pop();\n        }\n        // }\n      }\n    },\n  };\n  return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n  return '[stylesheet-group=\"' + group + '\"]{}';\n}\n\nfunction decodeGroupRule(cssRule) {\n  return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n  return Object.keys(obj)\n    .map(Number)\n    .sort(function (a, b) {\n      return a > b ? 1 : -1;\n    });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n  var selector = cssText.split('{')[0].trim();\n  return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n  try {\n    // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n    root.insertRule(cssText, position);\n    return true;\n  } catch (e) {\n    // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n    // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n    return false;\n  }\n}\n"]},"metadata":{},"sourceType":"module"}