{"version":3,"file":"ModalsContext.mjs","sources":["../../../../src/components/Modal/ModalsContext.tsx"],"sourcesContent":["import { Component } from 'react';\nimport * as React from 'react';\n\nexport interface ModalsContextState {\n  component: React.ComponentType<any> | null;\n  props: any;\n  showModal: <T>(component: React.ComponentType<T>, props: T) => void;\n  hideModal: () => void;\n}\n\nexport const ModalsContext = React.createContext<ModalsContextState>({\n  component: null,\n  props: {},\n  showModal: () => {},\n  hideModal: () => {},\n});\n\ninterface ModalsProviderProps {\n  children: React.ReactNode;\n  /** Set default component to render as modal. Useful when rendering modals from Angular */\n  component?: React.ComponentType<any> | null;\n  /** Set default component props. Useful when rendering modals from Angular */\n  props?: any;\n}\n\n/**\n * @deprecated.\n * Not the real implementation used by core.\n */\nexport class ModalsProvider extends Component<ModalsProviderProps, ModalsContextState> {\n  constructor(props: ModalsProviderProps) {\n    super(props);\n    this.state = {\n      component: props.component || null,\n      props: props.props || {},\n      showModal: this.showModal,\n      hideModal: this.hideModal,\n    };\n  }\n\n  showModal = <T,>(component: React.ComponentType<T>, props: T) => {\n    this.setState({\n      component,\n      props,\n    });\n  };\n\n  hideModal = () => {\n    this.setState({\n      component: null,\n      props: {},\n    });\n  };\n\n  render() {\n    return <ModalsContext.Provider value={this.state}>{this.props.children}</ModalsContext.Provider>;\n  }\n}\n\nexport const ModalRoot = () => (\n  <ModalsContext.Consumer>\n    {({ component: Component, props }) => {\n      return Component ? <Component {...props} /> : null;\n    }}\n  </ModalsContext.Consumer>\n);\n\nexport const ModalsController = ModalsContext.Consumer;\n"],"names":[],"mappings":";;;AAUa,MAAA,aAAA,GAAgB,MAAM,aAAkC,CAAA;AAAA,EACnE,SAAW,EAAA,IAAA;AAAA,EACX,OAAO,EAAC;AAAA,EACR,WAAW,MAAM;AAAA,GAAC;AAAA,EAClB,WAAW,MAAM;AAAA;AACnB,CAAC;AAoD+B,aAAc,CAAA;;;;"}