{"version":3,"sources":["../src/decorator/private/DecoratorComposer.tsx","../src/decorator/private/createDecoratorComposer.tsx","../src/decorator/private/ActivityBorderDecoratorMiddleware.ts","../src/decorator/private/ActivityDecorator.tsx"],"sourcesContent":["import { memo } from 'react';\nimport createDecoratorComposer from './createDecoratorComposer';\n\nexport const DecoratorComposer = memo(createDecoratorComposer());\n\nDecoratorComposer.displayName = 'DecoratorComposer';\n","import React, { useMemo, type ReactNode } from 'react';\nimport {\n  ActivityBorderDecoratorMiddlewareProvider,\n  activityBorderDecoratorTypeName,\n  initActivityBorderDecoratorMiddleware,\n  type ActivityBorderDecoratorMiddleware\n} from './ActivityBorderDecoratorMiddleware';\n\ntype DecoratorMiddlewareInit = typeof activityBorderDecoratorTypeName;\n\nexport type DecoratorComposerComponent = (\n  props: Readonly<{\n    children?: ReactNode;\n    middleware?: DecoratorMiddleware[];\n  }>\n) => React.JSX.Element;\n\nexport type DecoratorMiddleware = (\n  init: DecoratorMiddlewareInit\n) => ReturnType<ActivityBorderDecoratorMiddleware> | false;\n\nconst EMPTY_ARRAY = [];\n\nexport default (): DecoratorComposerComponent =>\n  ({ children, middleware = EMPTY_ARRAY }) => {\n    const borderMiddlewares = useMemo(\n      () => initActivityBorderDecoratorMiddleware(middleware, activityBorderDecoratorTypeName),\n      [middleware]\n    );\n\n    return (\n      <ActivityBorderDecoratorMiddlewareProvider middleware={borderMiddlewares}>\n        {children}\n      </ActivityBorderDecoratorMiddlewareProvider>\n    );\n  };\n","import { type EmptyObject } from 'type-fest';\n\nimport ActivityDecoratorRequest from './activityDecoratorRequest';\nimport templateMiddleware from './templateMiddleware';\n\nconst {\n  initMiddleware: initActivityBorderDecoratorMiddleware,\n  Provider: ActivityBorderDecoratorMiddlewareProvider,\n  Proxy: ActivityBorderDecoratorMiddlewareProxy,\n  types\n} = templateMiddleware<typeof activityBorderDecoratorTypeName, ActivityDecoratorRequest, EmptyObject>(\n  'ActivityBorderDecoratorMiddleware'\n);\n\ntype ActivityBorderDecoratorMiddleware = typeof types.middleware;\ntype ActivityBorderDecoratorMiddlewareInit = typeof types.init;\ntype ActivityBorderDecoratorMiddlewareProps = typeof types.props;\ntype ActivityBorderDecoratorMiddlewareRequest = typeof types.request;\n\nconst activityBorderDecoratorTypeName = 'activity border' as const;\n\nexport {\n  ActivityBorderDecoratorMiddlewareProvider,\n  ActivityBorderDecoratorMiddlewareProxy,\n  activityBorderDecoratorTypeName,\n  initActivityBorderDecoratorMiddleware,\n  type ActivityBorderDecoratorMiddleware,\n  type ActivityBorderDecoratorMiddlewareInit,\n  type ActivityBorderDecoratorMiddlewareProps,\n  type ActivityBorderDecoratorMiddlewareRequest\n};\n","import { WebChatActivity } from 'botframework-webchat-core';\nimport React, { Fragment, memo, useMemo, type ReactNode } from 'react';\nimport { ActivityDecoratorRequest } from '..';\nimport { ActivityBorderDecoratorMiddlewareProxy } from './ActivityBorderDecoratorMiddleware';\n\nconst ActivityDecoratorFallback = memo(({ children }) => <Fragment>{children}</Fragment>);\n\nActivityDecoratorFallback.displayName = 'ActivityDecoratorFallback';\n\nconst supportedActivityRoles: ActivityDecoratorRequest['from'][] = ['bot', 'channel', 'user', undefined];\nconst supportedActivityStates: ActivityDecoratorRequest['state'][] = ['informative', 'completion', undefined];\n\nfunction ActivityDecorator({ children, activity }: Readonly<{ activity?: WebChatActivity; children?: ReactNode }>) {\n  const request = useMemo<ActivityDecoratorRequest>(\n    () => ({\n      from: supportedActivityRoles.includes(activity?.from?.role) ? activity?.from?.role : undefined,\n      state: supportedActivityStates.includes(activity?.channelData?.streamType)\n        ? activity?.channelData?.streamType\n        : undefined\n    }),\n    [activity]\n  );\n\n  return (\n    <ActivityBorderDecoratorMiddlewareProxy fallbackComponent={ActivityDecoratorFallback} request={request}>\n      {children}\n    </ActivityBorderDecoratorMiddlewareProxy>\n  );\n}\n\nexport default memo(ActivityDecorator);\n"],"mappings":"sEAAA,OAAS,QAAAA,MAAY,QCArB,OAAOC,GAAS,WAAAC,MAA+B,QCK/C,GAAM,CACJ,eAAgBC,EAChB,SAAUC,EACV,MAAOC,EACP,MAAAC,CACF,EAAIC,EACF,mCACF,EAOMC,EAAkC,kBDExC,IAAMC,EAAc,CAAC,EAEdC,EAAQ,IACb,CAAC,CAAE,SAAAC,EAAU,WAAAC,EAAaH,CAAY,IAAM,CAC1C,IAAMI,EAAoBC,EACxB,IAAMC,EAAsCH,EAAYI,CAA+B,EACvF,CAACJ,CAAU,CACb,EAEA,OACEK,EAAA,cAACC,EAAA,CAA0C,WAAYL,GACpDF,CACH,CAEJ,EDhCK,IAAMQ,EAAoBC,EAAKC,EAAwB,CAAC,EAE/DF,EAAkB,YAAc,oBGJhC,OAAOG,GAAS,YAAAC,EAAU,QAAAC,EAAM,WAAAC,MAA+B,QAI/D,IAAMC,EAA4BC,EAAK,CAAC,CAAE,SAAAC,CAAS,IAAMC,EAAA,cAACC,EAAA,KAAUF,CAAS,CAAW,EAExFF,EAA0B,YAAc,4BAExC,IAAMK,EAA6D,CAAC,MAAO,UAAW,OAAQ,MAAS,EACjGC,EAA+D,CAAC,cAAe,aAAc,MAAS,EAE5G,SAASC,EAAkB,CAAE,SAAAL,EAAU,SAAAM,CAAS,EAAmE,CACjH,IAAMC,EAAUC,EACd,KAAO,CACL,KAAML,EAAuB,SAASG,GAAU,MAAM,IAAI,EAAIA,GAAU,MAAM,KAAO,OACrF,MAAOF,EAAwB,SAASE,GAAU,aAAa,UAAU,EACrEA,GAAU,aAAa,WACvB,MACN,GACA,CAACA,CAAQ,CACX,EAEA,OACEL,EAAA,cAACQ,EAAA,CAAuC,kBAAmBX,EAA2B,QAASS,GAC5FP,CACH,CAEJ,CAEA,IAAOU,EAAQX,EAAKM,CAAiB","names":["memo","React","useMemo","initActivityBorderDecoratorMiddleware","ActivityBorderDecoratorMiddlewareProvider","ActivityBorderDecoratorMiddlewareProxy","types","templateMiddleware","activityBorderDecoratorTypeName","EMPTY_ARRAY","createDecoratorComposer_default","children","middleware","borderMiddlewares","useMemo","initActivityBorderDecoratorMiddleware","activityBorderDecoratorTypeName","React","ActivityBorderDecoratorMiddlewareProvider","DecoratorComposer","memo","createDecoratorComposer_default","React","Fragment","memo","useMemo","ActivityDecoratorFallback","memo","children","React","Fragment","supportedActivityRoles","supportedActivityStates","ActivityDecorator","activity","request","useMemo","ActivityBorderDecoratorMiddlewareProxy","ActivityDecorator_default"]}