Outlook_Addin_LLM/node_modules/@griffel/react/renderToStyleElements.cjs.js

68 lines
1.9 KiB
JavaScript

'use strict';
var core = require('@griffel/core');
var React = require('react');
function _interopNamespaceCompat(e) {
if (e && typeof e === 'object' && 'default' in e) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React);
/**
* This method returns a list of <style> React elements with the rendered CSS. This is useful for Server-Side rendering.
*
* @public
*/
function renderToStyleElements(renderer) {
const stylesheets = Object.values(renderer.stylesheets)
// first sort: bucket names
.sort((a, b) => {
return core.styleBucketOrdering.indexOf(a.bucketName) - core.styleBucketOrdering.indexOf(b.bucketName);
})
// second sort: media queries
.sort((a, b) => {
const mediaA = a.elementAttributes['media'];
const mediaB = b.elementAttributes['media'];
if (mediaA && mediaB) {
return renderer.compareMediaQueries(mediaA, mediaB);
}
if (mediaA || mediaB) {
return mediaA ? 1 : -1;
}
return 0;
});
return stylesheets.map(stylesheet => {
const cssRules = stylesheet.cssRules();
// don't want to create any empty style elements
if (!cssRules.length) {
return null;
}
return /*#__PURE__*/React__namespace.createElement('style', Object.assign({
key: stylesheet.bucketName
}, stylesheet.elementAttributes, {
'data-make-styles-rehydration': 'true',
dangerouslySetInnerHTML: {
__html: cssRules.join('')
}
}));
}).filter(Boolean);
}
exports.renderToStyleElements = renderToStyleElements;
//# sourceMappingURL=renderToStyleElements.cjs.js.map