import _extends from "@babel/runtime/helpers/esm/extends"; import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck"; import _createClass from "@babel/runtime/helpers/esm/createClass"; import React from 'react'; import { SheetsRegistry } from 'jss'; import StylesProvider from '../StylesProvider'; import createGenerateClassName from '../createGenerateClassName'; var ServerStyleSheets = /*#__PURE__*/function () { function ServerStyleSheets() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, ServerStyleSheets); this.options = options; } _createClass(ServerStyleSheets, [{ key: "collect", value: function collect(children) { // This is needed in order to deduplicate the injection of CSS in the page. var sheetsManager = new Map(); // This is needed in order to inject the critical CSS. this.sheetsRegistry = new SheetsRegistry(); // A new class name generator var generateClassName = createGenerateClassName(); return /*#__PURE__*/React.createElement(StylesProvider, _extends({ sheetsManager: sheetsManager, serverGenerateClassName: generateClassName, sheetsRegistry: this.sheetsRegistry }, this.options), children); } }, { key: "toString", value: function toString() { return this.sheetsRegistry ? this.sheetsRegistry.toString() : ''; } }, { key: "getStyleElement", value: function getStyleElement(props) { return /*#__PURE__*/React.createElement('style', _extends({ id: 'jss-server-side', key: 'jss-server-side', dangerouslySetInnerHTML: { __html: this.toString() } }, props)); } }]); return ServerStyleSheets; }(); export { ServerStyleSheets as default };