123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- "use strict";
-
- function _interopDefault(ex) {
- return ex && "object" == typeof ex && "default" in ex ? ex.default : ex;
- }
-
- Object.defineProperty(exports, "__esModule", {
- value: !0
- });
-
- var sheet = require("@emotion/sheet"), Stylis = _interopDefault(require("@emotion/stylis")), weakMemoize = _interopDefault(require("@emotion/weak-memoize")), delimiter = "/*|*/", needle = delimiter + "}";
-
- function toSheet(block) {
- block && Sheet.current.insert(block + "}");
- }
-
- var Sheet = {
- current: null
- }, ruleSheet = function(context, content, selectors, parents, line, column, length, ns, depth, at) {
- switch (context) {
- case 1:
- switch (content.charCodeAt(0)) {
- case 64:
- return Sheet.current.insert(content + ";"), "";
-
- case 108:
- if (98 === content.charCodeAt(2)) return "";
- }
- break;
-
- case 2:
- if (0 === ns) return content + delimiter;
- break;
-
- case 3:
- switch (ns) {
- case 102:
- case 112:
- return Sheet.current.insert(selectors[0] + content), "";
-
- default:
- return content + (0 === at ? delimiter : "");
- }
-
- case -2:
- content.split(needle).forEach(toSheet);
- }
- }, removeLabel = function(context, content) {
- if (1 === context && 108 === content.charCodeAt(0) && 98 === content.charCodeAt(2)) return "";
- }, isBrowser = "undefined" != typeof document, rootServerStylisCache = {}, getServerStylisCache = isBrowser ? void 0 : weakMemoize(function() {
- var getCache = weakMemoize(function() {
- return {};
- }), prefixTrueCache = {}, prefixFalseCache = {};
- return function(prefix) {
- return void 0 === prefix || !0 === prefix ? prefixTrueCache : !1 === prefix ? prefixFalseCache : getCache(prefix);
- };
- }), createCache = function(options) {
- void 0 === options && (options = {});
- var stylisOptions, key = options.key || "css";
- void 0 !== options.prefix && (stylisOptions = {
- prefix: options.prefix
- });
- var container, _insert, stylis = new Stylis(stylisOptions), inserted = {};
- if (isBrowser) {
- container = options.container || document.head;
- var nodes = document.querySelectorAll("style[data-emotion-" + key + "]");
- Array.prototype.forEach.call(nodes, function(node) {
- node.getAttribute("data-emotion-" + key).split(" ").forEach(function(id) {
- inserted[id] = !0;
- }), node.parentNode !== container && container.appendChild(node);
- });
- }
- if (isBrowser) stylis.use(options.stylisPlugins)(ruleSheet), _insert = function(selector, serialized, sheet, shouldCache) {
- var name = serialized.name;
- Sheet.current = sheet, stylis(selector, serialized.styles), shouldCache && (cache.inserted[name] = !0);
- }; else {
- stylis.use(removeLabel);
- var serverStylisCache = rootServerStylisCache;
- (options.stylisPlugins || void 0 !== options.prefix) && (stylis.use(options.stylisPlugins),
- serverStylisCache = getServerStylisCache(options.stylisPlugins || rootServerStylisCache)(options.prefix));
- _insert = function(selector, serialized, sheet, shouldCache) {
- var name = serialized.name, rules = function(selector, serialized) {
- var name = serialized.name;
- return void 0 === serverStylisCache[name] && (serverStylisCache[name] = stylis(selector, serialized.styles)),
- serverStylisCache[name];
- }(selector, serialized);
- return void 0 === cache.compat ? (shouldCache && (cache.inserted[name] = !0), rules) : shouldCache ? void (cache.inserted[name] = rules) : rules;
- };
- }
- var cache = {
- key: key,
- sheet: new sheet.StyleSheet({
- key: key,
- container: container,
- nonce: options.nonce,
- speedy: options.speedy
- }),
- nonce: options.nonce,
- inserted: inserted,
- registered: {},
- insert: _insert
- };
- return cache;
- };
-
- exports.default = createCache;
|