{"version":3,"file":"WithCSS.mjs","names":["React","PureComponent","createHoc","CSSinJS","getStylesheet","raw","normaliseCss","obj","Object","keys","reduce","acc","key","result","undefined","WithCssContext","createContext","Provider","initNanoCss","options","arguments","length","EnhancedWithCSS","_PureComponent","_inherits","_super","_createSuper","props","context","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","dynamicClassName","_createClass","value","render","_this$props","children","_this$props$className","className","state","getDerivedStateFromProps","_CSSinJS$cache","_CSSinJS","cleanCss","css","cache"],"sources":["../../src/enhances/WithCSS.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { NanoOptions } from '@phytonmk/nano-css';\nimport { CssLikeObject } from '@phytonmk/nano-css/types/common';\nimport createHoc from '../createHoc';\nimport CSSinJS from '../CSSinJS';\nimport { UnknownProperties } from '../core';\n\nconst getStylesheet = () => CSSinJS().raw;\n\n/**\n * Function to clear the nano CSS styles object from keys with undefined value\n * @param {Object} obj - nano CSS styles object\n * @returns {Object}\n */\nfunction normaliseCss(obj: CssLikeObject) {\n  return Object.keys(obj).reduce((acc: any, key) => {\n    const result = acc;\n    if (obj[key] !== undefined) {\n      result[key] = obj[key];\n    }\n    return result;\n  }, {});\n}\n\nconst WithCssContext = React.createContext<NanoOptions>({});\nconst { Provider } = WithCssContext;\n\nfunction initNanoCss(options: NanoOptions = {}) {\n  return CSSinJS(options);\n}\n\n/** @deprecated */\nexport interface IEnhancedWithCSSProps extends EnhancedWithCSSProps, UnknownProperties {}\nexport type EnhancedWithCSSProps = {\n  className?: string;\n  css?: {};\n\n  children(props: { className: string | undefined }): React.ReactNode;\n};\n\nclass EnhancedWithCSS extends PureComponent<IEnhancedWithCSSProps> {\n  static contextType = WithCssContext;\n\n  static defaultProps = {\n    css: {},\n  };\n\n  state = {\n    dynamicClassName: '',\n  };\n\n  static getDerivedStateFromProps(props: any) {\n    const cleanCss = normaliseCss(props.css);\n    return {\n      dynamicClassName: Object.keys(cleanCss).length ? CSSinJS().cache?.(cleanCss) : '',\n    };\n  }\n\n  constructor(props: any, context: any) {\n    super(props, context);\n\n    initNanoCss(context);\n  }\n\n  render() {\n    const { children, className = '' } = this.props;\n    const { dynamicClassName } = this.state;\n    return children({\n      className: className + dynamicClassName || undefined,\n    });\n  }\n}\n\nexport { getStylesheet, EnhancedWithCSS, Provider, WithCssContext, initNanoCss, normaliseCss };\nexport default createHoc(EnhancedWithCSS);\n"],"mappings":"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"}