{"version":3,"sources":["webpack://web/./Scripts/react/react-mount/components.tsx","webpack://web/./Scripts/react/react-mount/ReactMount.tsx","webpack://web/./Scripts/react/react-mount/index.tsx"],"names":["TestMount","lazy","then","c","default","PayBill","DefaultPaymentMethod","AddAHead","GetAQuote","PaymentMethodSelector","PayBillConfirmation","AddProductToProductFeedModal","ModifyAStyle","SubmitASketch","SubmitACadDesign","SubmitAWaxOrResinModel","Resubmit","ResubmitWithOracleAlert","StullerPayPdpCallout","StullerPayFinancingTerms","StullerPayCheckoutIneligibleModal","StullerPayCheckoutOracleDownModal","ShipDateStatus","ShipCompleteOptionSelector","StullerPayDashboard","PdpToolbar","PdpImageSection","CadCamProjectTracker","PdpCisBadgeContainer","PasswordSetLinkExpired","ShippingDocumentsModal","MarketplaceProfile","UseNewPageBanner","withSuspense","component","Component","props","_jsx","Suspense","Object","fallback","LoadingIndicator","loading","position","children","components","ReactMountPortal","memo","target","name","createPortal","node","document","querySelector","render","BrowserRouter","ApolloProvider","client","useState","portals","setPortals","useMutationObserver","removeTargets","portal","body","contains","push","length","ps","filter","p","some","t","useStullerEventListener","event","detail","_a","newP","index","findIndex","console","error","map","i"],"mappings":"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","file":"react-mount.256e2efff9688be00b24.react.bundle.js","sourcesContent":["import { LoadingIndicator } from '@web/shared-ui-components'\nimport { lazy, ReactElement, Suspense } from 'react'\nconst TestMount = lazy(async () => await import('./TestMount').then(c => ({ default: c.TestMount })))\nconst PayBill = lazy(async () => await import('@web/receivables-pay-bill').then(c => ({ default: c.PayBill })))\nconst DefaultPaymentMethod = lazy(async () => await import('@web/payment-methods').then(c => ({ default: c.DefaultPaymentMethod })))\nconst AddAHead = lazy(async () => await import('@web/products').then(c => ({ default: c.AddAHead })))\nconst GetAQuote = lazy(async () => await import('@web/quote').then(c => ({ default: c.GetAQuote })))\nconst PaymentMethodSelector = lazy(async () => await import('@web/payment-methods').then(c => ({ default: c.PaymentMethodSelector })))\nconst PayBillConfirmation = lazy(async () => await import('@web/receivables-pay-bill').then(c => ({ default: c.PayBillConfirmation })))\nconst AddProductToProductFeedModal = lazy(async () => await import('@web/products').then(c => ({ default: c.AddProductToProductFeedModal })))\nconst ModifyAStyle = lazy(async () => await import('@web/cadcam-modify-a-style').then(c => ({ default: c.ModifyAStyle })))\nconst SubmitASketch = lazy(async () => await import('@web/cadcam-submit-a-sketch').then(c => ({ default: c.SubmitASketch })))\nconst SubmitACadDesign = lazy(async () => await import('@web/cadcam-submit-a-cad-design').then(c => ({ default: c.SubmitACadDesign })))\nconst SubmitAWaxOrResinModel = lazy(async () => await import('libs/cadcam/feature/submit-a-wax-or-resin-model').then(c => ({ default: c.SubmitAWaxOrResinModel })))\nconst Resubmit = lazy(async () => await import('@web/cadcam-resubmit').then(c => ({ default: c.Resubmit })))\nconst ResubmitWithOracleAlert = lazy(async () => await import('@web/cadcam-resubmit').then(c => ({ default: c.ResubmitWithOracleAlert })))\nconst StullerPayPdpCallout = lazy(async () => (await import('@web/payment-methods').then(c => ({ default: c.StullerPayPdpCallout }))))\nconst StullerPayFinancingTerms = lazy(async () => (await import('@web/payment-methods').then(c => ({ default: c.StullerPayFinancingTerms }))))\nconst StullerPayCheckoutIneligibleModal = lazy(async () => (await import('@web/payment-methods').then(c => ({ default: c.StullerPayCheckoutIneligibleModal }))))\nconst StullerPayCheckoutOracleDownModal = lazy(async () => (await import('@web/payment-methods').then(c => ({ default: c.StullerPayCheckoutOracleDownModal }))))\nconst ShipDateStatus = lazy(async () => (await import('@web/shipments').then(c => ({ default: c.ShipDateStatus }))))\nconst ShipCompleteOptionSelector = lazy(async () => (await import('@web/shipment-methods').then(c => ({ default: c.ShipCompleteOptionSelector }))))\nconst StullerPayDashboard = lazy(async () => (await import('libs/receivables/feature/stullerpay-dashboard').then(c => ({ default: c.StullerPayDashboard }))))\nconst PdpToolbar = lazy(async () => (await import('@web/pdp').then(c => ({ default: c.PdpToolbar }))))\nconst PdpImageSection = lazy(async () => (await import('@web/pdp').then(c => ({ default: c.PdpImageSection }))))\nconst CadCamProjectTracker = lazy(async () => (await import('@web/cadcam-project-details').then(c => ({ default: c.CadCamProjectTracker }))))\nconst PdpCisBadgeContainer = lazy(async () => (await import('@web/pdp').then(c => ({ default: c.PdpCisBadgeContainer }))))\nconst PasswordSetLinkExpired = lazy(async () => (await import('@web/users').then(c => ({ default: c.PasswordSetLinkExpired }))))\nconst ShippingDocumentsModal = lazy(async () => (await import('@web/cadcam-project-details').then(c => ({ default: c.ShippingDocumentsModal }))))\nconst MarketplaceProfile = lazy(async () => await import('@web/marketplace-solutions-profile').then(c => ({ default: c.MarketplaceProfile })))\nconst UseNewPageBanner = lazy(async () => await import('@web/piloting').then(c => ({ default: c.UseNewPageBanner })))\n\n/**\n * HOC to add Suspense w/ loading indicator for each component\n */\nfunction withSuspense (component): (props: any) => ReactElement {\n  const Component = component\n\n  return (props) => (\n    <Suspense fallback={<LoadingIndicator loading position='inline' />}>\n      <Component {...props} />\n    </Suspense>\n  )\n}\n\n/**\n * React components that can be used for react mount\n */\nconst components = {\n  TestMount: withSuspense(TestMount),\n  DefaultPaymentMethod: withSuspense(DefaultPaymentMethod),\n  PayBill: withSuspense(PayBill),\n  AddAHead: withSuspense(AddAHead),\n  GetAQuote: withSuspense(GetAQuote),\n  PaymentMethodSelector: withSuspense(PaymentMethodSelector),\n  PayBillConfirmation: withSuspense(PayBillConfirmation),\n  AddProductToProductFeedModal: withSuspense(AddProductToProductFeedModal),\n  ModifyAStyle: withSuspense(ModifyAStyle),\n  SubmitASketch: withSuspense(SubmitASketch),\n  SubmitACadDesign: withSuspense(SubmitACadDesign),\n  SubmitAWaxOrResinModel: withSuspense(SubmitAWaxOrResinModel),\n  Resubmit: withSuspense(Resubmit),\n  ResubmitWithOracleAlert: withSuspense(ResubmitWithOracleAlert),\n  StullerPayPdpCallout: withSuspense(StullerPayPdpCallout),\n  StullerPayFinancingTerms: withSuspense(StullerPayFinancingTerms),\n  StullerPayCheckoutIneligibleModal: withSuspense(StullerPayCheckoutIneligibleModal),\n  StullerPayCheckoutOracleDownModal: withSuspense(StullerPayCheckoutOracleDownModal),\n  ShipDateStatus: withSuspense(ShipDateStatus),\n  ShipCompleteOptionSelector: withSuspense(ShipCompleteOptionSelector),\n  StullerPayDashboard: withSuspense(StullerPayDashboard),\n  PdpToolbar: withSuspense(PdpToolbar),\n  PdpImageSection: withSuspense(PdpImageSection),\n  CadCamProjectTracker: withSuspense(CadCamProjectTracker),\n  PdpCisBadgeContainer: withSuspense(PdpCisBadgeContainer),\n  PasswordSetLinkExpired: withSuspense(PasswordSetLinkExpired),\n  ShippingDocumentsModal: withSuspense(ShippingDocumentsModal),\n  MarketplaceProfile: withSuspense(MarketplaceProfile),\n  UseNewPageBanner: withSuspense(UseNewPageBanner)\n}\n\nexport {\n  components\n}\n","import { memo, ReactElement, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { useStullerEventListener, StullerEvents } from '@web/shared-util-stuller-events'\nimport { useMutationObserver } from '@web/shared-util-hooks'\nimport { components } from './components'\n\n/**\n * An individual React mount via `createPortal`\n */\nconst ReactMountPortal = memo(({ target, name, props }: StullerEvents['react-mount']): ReactElement => {\n  const Component = components[name]\n\n  return createPortal(<Component {...props ?? {}} />, target)\n})\n\n/**\n * Listens for Stuller events to mount React components to elements\n */\nfunction ReactMount (): ReactElement {\n  const [portals, setPortals] = useState<Array<StullerEvents['react-mount']>>([])\n\n  // Watch for changes to the DOM to remove portals when the elements are removed\n  useMutationObserver(() => {\n    const removeTargets: HTMLElement[] = []\n    for (const portal of portals) {\n      if (!document.body.contains(portal.target)) {\n        removeTargets.push(portal.target)\n      }\n    }\n\n    if (removeTargets.length > 0) {\n      setPortals(ps => ps.filter(p => !removeTargets.some(t => t === p.target)))\n    }\n  })\n\n  // Wait for events to add new mounts\n  useStullerEventListener('react-mount', event => {\n    const { target, name } = event.detail ?? {}\n\n    if (event.detail == null || target == null || !document.body.contains(target)) {\n      console.error('react-mount target not found for', name)\n      return\n    }\n\n    if (name == null || components[name] == null) {\n      console.error('react-mount component name not found')\n      return\n    }\n\n    // If info sent looks good, add/replace new React mount\n    setPortals(ps => {\n      const newP = [...ps]\n\n      if (event.detail != null) {\n        const index = ps.findIndex(p => p.target === target)\n\n        if (index > -1) {\n          newP[index] = event.detail\n        } else {\n          newP.push(event.detail)\n        }\n      }\n\n      return newP\n    })\n  })\n\n  return (\n    <>\n      {portals.map((p, i) => <ReactMountPortal key={i} {...p} />)}\n    </>\n  )\n}\n\nexport {\n  ReactMount\n}\n","import { ReactElement, ReactNode } from 'react'\nimport { render } from 'react-dom'\nimport { BrowserRouter } from 'react-router-dom'\nimport { client, ApolloProvider } from '@web/shared-data-access-apollo'\nimport { ReactMount } from './ReactMount'\n\ninterface AppProps {\n  /**\n   * Children of element\n   */\n  children: ReactNode\n}\n\n/**\n * React entry for components\n */\nfunction App ({ children }: AppProps): ReactElement {\n  return (\n    <BrowserRouter>\n      <ApolloProvider client={client}>\n        {children}\n      </ApolloProvider>\n    </BrowserRouter>\n  )\n}\n\n// Start the react components app\nconst node = document.querySelector('#react-mount-react-container')\n\nrender(<App><ReactMount /></App>, node)\n"],"sourceRoot":""}