UNPKG

@grafana/ui

Version:
105 lines (97 loc) 3.78 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var hoistNonReactStatics = require('hoist-non-react-statics'); var memoize = require('micro-memoize'); var React = require('react'); var data = require('@grafana/data'); var stylesFactory = require('./stylesFactory.cjs'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } 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 hoistNonReactStatics__default = /*#__PURE__*/_interopDefaultCompat(hoistNonReactStatics); var memoize__default = /*#__PURE__*/_interopDefaultCompat(memoize); var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React); "use strict"; let ThemeContextMock = null; const memoizedStyleCreators = /* @__PURE__ */ new WeakMap(); const withTheme = (Component) => { const WithTheme = (props) => { const ContextComponent = ThemeContextMock || data.ThemeContext; return ( // @ts-ignore /* @__PURE__ */ jsxRuntime.jsx(ContextComponent.Consumer, { children: (theme) => /* @__PURE__ */ jsxRuntime.jsx(Component, { ...props, theme: theme.v1 }) }) ); }; WithTheme.displayName = `WithTheme(${Component.displayName})`; hoistNonReactStatics__default.default(WithTheme, Component); return WithTheme; }; const withTheme2 = (Component) => { const WithTheme = (props) => { const ContextComponent = ThemeContextMock || data.ThemeContext; return ( // @ts-ignore /* @__PURE__ */ jsxRuntime.jsx(ContextComponent.Consumer, { children: (theme) => /* @__PURE__ */ jsxRuntime.jsx(Component, { ...props, theme }) }) ); }; WithTheme.displayName = `WithTheme(${Component.displayName})`; hoistNonReactStatics__default.default(WithTheme, Component); return WithTheme; }; function useTheme() { return React.useContext(ThemeContextMock || data.ThemeContext).v1; } function useTheme2() { return React.useContext(ThemeContextMock || data.ThemeContext); } function useStyles(getStyles) { const theme = useTheme(); let memoizedStyleCreator = memoizedStyleCreators.get(getStyles); if (!memoizedStyleCreator) { memoizedStyleCreator = stylesFactory.stylesFactory(getStyles); memoizedStyleCreators.set(getStyles, memoizedStyleCreator); } return memoizedStyleCreator(theme); } function useStyles2(getStyles, ...additionalArguments) { const theme = useTheme2(); if (!theme.colors.background.elevated) { theme.colors.background.elevated = theme.colors.mode === "light" ? theme.colors.background.primary : theme.colors.background.secondary; } let memoizedStyleCreator = memoizedStyleCreators.get(getStyles); if (!memoizedStyleCreator) { memoizedStyleCreator = memoize__default.default(getStyles, { maxSize: 10 }); memoizedStyleCreators.set(getStyles, memoizedStyleCreator); } return memoizedStyleCreator(theme, ...additionalArguments); } const mockThemeContext = (theme) => { ThemeContextMock = React__namespace.createContext(theme); return () => { ThemeContextMock = null; }; }; exports.mockThemeContext = mockThemeContext; exports.useStyles = useStyles; exports.useStyles2 = useStyles2; exports.useTheme = useTheme; exports.useTheme2 = useTheme2; exports.withTheme = withTheme; exports.withTheme2 = withTheme2; //# sourceMappingURL=ThemeContext.cjs.map