UNPKG

react-native-web-internals

Version:

React Native for Web

44 lines (43 loc) 2.07 kB
import canUseDOM from "../../modules/canUseDOM.native.js"; import createCSSStyleSheet from "./createCSSStyleSheet.native.js"; import createOrderedCSSStyleSheet from "./createOrderedCSSStyleSheet.native.js"; var defaultId = "react-native-stylesheet", roots = /* @__PURE__ */new WeakMap(), sheets = [], initialRules = [ // minimal top-level reset "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}", "body{margin:0;}", // minimal form pseudo-element reset "button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}", "input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}"]; function createSheet(root) { var id = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultId, sheet; if (canUseDOM) { var rootNode = root != null ? root.getRootNode() : document; if (sheets.length === 0) sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id)), initialRules.forEach(function (rule) { sheet.insert(rule, 0); }), roots.set(rootNode, sheets.length), sheets.push(sheet);else { var index = roots.get(rootNode); if (index == null) { var initialSheet = sheets[0], textContent = initialSheet != null ? initialSheet.getTextContent() : ""; sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent)), roots.set(rootNode, sheets.length), sheets.push(sheet); } else sheet = sheets[index]; } } else sheets.length === 0 ? (sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id)), initialRules.forEach(function (rule) { sheet.insert(rule, 0); }), sheets.push(sheet)) : sheet = sheets[0]; return { getTextContent() { return sheet.getTextContent(); }, id, insert(cssText, groupValue) { sheets.forEach(function (s) { s.insert(cssText, groupValue); }); } }; } export { createSheet }; //# sourceMappingURL=index.native.js.map